diff --git a/src/Stream.hs b/src/Stream.hs index 2d1b5d7..1de142d 100644 --- a/src/Stream.hs +++ b/src/Stream.hs @@ -10,10 +10,12 @@ import Data.List (intercalate) data Stream a = Stream [(a, Stream a)] deriving Show -instance Monoid (Stream a) where - mempty = fromList [] - mappend (Stream []) b = b - mappend (Stream pairs) b = Stream $ (\(a, stream) -> (a, stream `mappend` b)) <$> pairs +empty :: Stream a +empty = fromList [] + +append :: Stream a -> Stream a -> Stream a +append (Stream []) b = b +append (Stream pairs) b = Stream $ (\(a, stream) -> (a, stream `append` b)) <$> pairs fromList :: [a] -> Stream a fromList [] = Stream []