module HaskellWorks.Data.Streams.Internal.Bundle where

import HaskellWorks.Data.Streams.Internal.Chunk (Chunk)

import qualified HaskellWorks.Data.Streams.Stream as S

type Size = Int

data Bundle a = Bundle
  { forall a. Bundle a -> Size
bundleSize   :: Size
  , forall a. Bundle a -> Stream a
bundleElems  :: S.Stream a
  , forall a. Bundle a -> Stream (Chunk a)
bundleChunks :: S.Stream (Chunk a)
  }