unison/unison-src/tests/state1.u
Rúnar Óli Bjarnason 16ca2932d0 Fixed console.uu
2018-08-23 14:56:50 -04:00

16 lines
400 B
Plaintext

--State1 effect
effect State se2 where
put : ∀ se . se -> {State se} ()
get : ∀ se . () -> {State se} se
-- state : ∀ s a . s -> Effect (State s) a -> (s, a)
state woot eff = case eff of
{ State.put snew -> k } -> handle (state snew) in k ()
{ State.get () -> k } -> handle state woot in k woot
{ a } -> (woot, a)
blah : ∀ s a . s -> Effect (State s) a -> (s, a)
blah = state
()