Hi all,
import Data.Monoiddata Stream a= Chunks [a]| EOFderiving (Show, Eq)instance Monad Stream wherereturn = Chunks . returnChunks xs >>= f = mconcat (fmap f xs)EOF >>= _ = EOFinstance Monoid (Stream a) wheremempty = Chunks memptymappend (Chunks xs) (Chunks ys) = Chunks (xs ++ ys)mappend _ _ = EOF
import Data.Monoiddata Stream a= Chunks [a]| EOFderiving (Show, Eq)instance Monad Stream wherereturn x = Chunks [x]Chunks xs >>= f = mconcat (fmap f xs)EOF >>= _ = EOFinstance Monoid (Stream a) wheremempty = Chunks []mappend (Chunks xs) (Chunks ys) = Chunks (xs ++ ys)mappend _ _ = EOF