-- | Finalizer function for getting head of the vector.
-head :: forall n a. Arity n => ContVec (S n) a -> a
+head :: forall n a. Arity (S n) => ContVec (S n) a -> a
+-- NOTE: we need constraint `Arity (S n)' instead of `Arity n' because
+-- `Vector v' entails `Arity (Dim v)' and GHC cannot figure out
+-- that `Arity (S n)' ⇒ `Arity n'