module Data.Sequences.Lazy where
import qualified Data.ByteString as S
import qualified Data.ByteString.Lazy as L
import Data.Sequences
import qualified Data.Text as T
import qualified Data.Text.Lazy as TL
class (IsSequence lazy, IsSequence strict) => LazySequence lazy strict | lazy -> strict, strict -> lazy where
toChunks :: lazy -> [strict]
fromChunks :: [strict] -> lazy
toStrict :: lazy -> strict
fromStrict :: strict -> lazy
instance LazySequence L.ByteString S.ByteString where
toChunks = L.toChunks
fromChunks = L.fromChunks
toStrict = S.concat . L.toChunks
fromStrict = L.fromChunks . return
instance LazySequence TL.Text T.Text where
toChunks = TL.toChunks
fromChunks = TL.fromChunks
toStrict = TL.toStrict
fromStrict = TL.fromStrict