mirror of
https://github.com/unisonweb/unison.git
synced 2024-09-25 01:08:30 +03:00
15 lines
393 B
Plaintext
15 lines
393 B
Plaintext
--Abort
|
|
effect Abort where
|
|
Abort : forall a . () -> {Abort} a
|
|
eff : forall a b . (a -> b) -> b -> Effect Abort a -> b
|
|
eff f z e = case e of
|
|
{ Abort.Abort _ -> k } -> z
|
|
{ a } -> f a
|
|
-- heff : UInt64
|
|
heff = handle eff (x -> x UInt64.+ 2) 1 in Abort.Abort ()
|
|
hudy : UInt64
|
|
hudy = handle eff (x -> x UInt64.+ 2) 1 in 42
|
|
bork : () -> {Abort} UInt64
|
|
bork = u -> 1 UInt64.+ (Abort.Abort ())
|
|
()
|