mirror of
https://github.com/unisonweb/unison.git
synced 2024-09-23 16:28:02 +03:00
21 lines
434 B
Plaintext
21 lines
434 B
Plaintext
effect State s where
|
|
get : Nat -> {State s} s
|
|
set : s -> {State s} ()
|
|
|
|
effect Console where
|
|
read : () -> {Console} (Optional Text)
|
|
write : Text -> {Console} ()
|
|
|
|
fst x = case x of Pair.Pair a _ -> a
|
|
|
|
snd x = case x of Pair.Pair _ (Pair.Pair b _) -> b
|
|
|
|
namespace Console where
|
|
|
|
simulate : Effect Console a -> {State ([Text], [Text])} a
|
|
simulate c = case c of
|
|
{Console.read _ -> k} -> k Optional.None
|
|
|
|
Console.simulate
|
|
|