blob: 237aefe697e56ecdcf4ab8732cb07ebd98dfdc05 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
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
|