
On 12 July 2012 15:35, Yves Parès
I remember this discussion, lazy vectors would also enable an implementation of bytestring and (maybe) text only with unboxed vectors, unifying it all: type ByteString = Vector Word8
Yes, I would like to add a lazy storable vector to vector-bytestring[1] to make the API 100% consistent with bytestring. Ideally we would have a type like: data Lazy vector a = Empty | Chuck {-# UNPACK #-} !(vector a) (Lazy vector a) Unfortunately GHC can't unpack polymorphic fields. The next best thing is to use a type family which for each type of vector would return its lazy version (where the vector is unpacked in the cons cell). Then we would need a class for common operations on those lazy vectors. Regards, Bas [1] http://hackage.haskell.org/package/vector-bytestring https://github.com/basvandijk/vector-bytestring