19 lines
434 B
Haskell
19 lines
434 B
Haskell
module Main where
|
|
|
|
import Data.Monoid
|
|
import Mem
|
|
|
|
f' :: Num a => Mem a String
|
|
f' = Mem $ \s -> ("hi", s + 1)
|
|
|
|
main :: IO ()
|
|
main = do
|
|
let rmzero = runMem mempty 0
|
|
rmleft = runMem (f' <> mempty) 0
|
|
rmright = runMem (mempty <> f') 0
|
|
print $ (rmleft :: (String, Int))
|
|
print $ (rmright :: (String, Int))
|
|
print $ (rmzero :: (String, Int))
|
|
print $ rmleft == runMem f' 0
|
|
print $ rmright == runMem f' 0
|