hoogle-4.0: src/Data/Binary/Defer/Vector.hs
-- TODO: Should probably use ByteString instead?
module Data.Binary.Defer.Vector(
Vector, toList, fromList
) where
import Control.Monad
import Data.Binary.Defer
newtype Vector a = Vector [a]
instance BinaryDefer a => BinaryDefer (Vector a) where
put (Vector xs) = putDefer $ do
putInt (length xs)
mapM_ put xs
get = getDefer $ do
i <- getInt
liftM Vector $ replicateM i get
toList :: Vector a -> [a]
toList (Vector xs) = xs
fromList :: [a] -> Vector a
fromList = Vector