1
0
Files

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