-- | /O(1)/ First element of a vector in a monad. See 'indexM' for an
-- explanation of why this is useful.
headM :: (Monad m, G.Vector (Vector k) (Rec (TaggedFunctor Identity) rs))
  => (Vector k) (Rec (TaggedFunctor Identity) rs) -> m (Rec (TaggedFunctor Identity) rs)
headM = G.headM
headM :: (Monad m, G.Vector (Vector k) (Rec (TaggedFunctor Identity) rs))
  => (Vector k) (Rec (TaggedFunctor Identity) rs) -> m (Rec (TaggedFunctor Identity) rs)
headM = G.headM
headM = G.headM