module VectorExtras.Generic ( module Basics, fromFoldable, ) where import Data.Vector.Generic hiding (foldl') import qualified VectorExtras.Accumulator as VAcc import VectorExtras.Basics.Generic as Basics import VectorExtras.Prelude fromFoldable :: (Foldable f, Vector v a) => f a -> v a fromFoldable :: f a -> v a fromFoldable = Accumulator a -> v a forall (v :: * -> *) a. Vector v a => Accumulator a -> v a VAcc.toVector (Accumulator a -> v a) -> (f a -> Accumulator a) -> f a -> v a forall k (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k). Category cat => cat b c -> cat a b -> cat a c . (Accumulator a -> a -> Accumulator a) -> Accumulator a -> f a -> Accumulator a forall (t :: * -> *) b a. Foldable t => (b -> a -> b) -> b -> t a -> b foldl' ((a -> Accumulator a -> Accumulator a) -> Accumulator a -> a -> Accumulator a forall a b c. (a -> b -> c) -> b -> a -> c flip a -> Accumulator a -> Accumulator a forall a. a -> Accumulator a -> Accumulator a VAcc.add) Accumulator a forall a. Accumulator a VAcc.init