module VectorBuilder.Vector where
import Data.Vector.Generic
import qualified VectorBuilder.Core.Builder as A
import qualified VectorBuilder.MVector as B
import VectorBuilder.Prelude
{-# INLINE build #-}
build :: (Vector vector element) => A.Builder element -> vector element
build :: forall (vector :: * -> *) element.
Vector vector element =>
Builder element -> vector element
build Builder element
builder =
forall a. (forall s. ST s a) -> a
runST (forall (vector :: * -> * -> *) element s.
MVector vector element =>
Builder element -> ST s (vector s element)
B.build Builder element
builder forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= forall (m :: * -> *) (v :: * -> *) a.
(PrimMonad m, Vector v a) =>
Mutable v (PrimState m) a -> m (v a)
unsafeFreeze)