-- | /O(n)/ Scan over a non-empty vector
--
-- > scanl f <x1,...,xn> = <y1,...,yn>
-- >   where y1 = x1
-- >         yi = f y(i-1) xi
--
scanl1 :: G.Vector (Vector k) (Rec (TaggedFunctor Identity) rs)
  => (Rec (TaggedFunctor Identity) rs -> Rec (TaggedFunctor Identity) rs -> Rec (TaggedFunctor Identity) rs) -> (Vector k) (Rec (TaggedFunctor Identity) rs) -> (Vector k) (Rec (TaggedFunctor Identity) rs)
scanl1 = G.scanl1
scanl1 :: G.Vector (Vector k) (Rec (TaggedFunctor Identity) rs)
  => (Rec (TaggedFunctor Identity) rs -> Rec (TaggedFunctor Identity) rs -> Rec (TaggedFunctor Identity) rs) -> (Vector k) (Rec (TaggedFunctor Identity) rs) -> (Vector k) (Rec (TaggedFunctor Identity) rs)
scanl1 = G.scanl1
scanl1 = G.scanl1