{-# LANGUAGE RankNTypes #-} module HaskellWorks.Data.Streams.Internal.Chunk where import Control.Monad.Primitive import qualified Data.Vector.Storable as DVS data Chunk a = Chunk { forall a. Chunk a -> Int chunkSize :: Int , forall a. Chunk a -> forall (m :: * -> *). PrimMonad m => MVector (PrimState m) a -> m () chunkWrite :: forall m. PrimMonad m => DVS.MVector (PrimState m) a -> m () }