mirror of
https://github.com/unisonweb/unison.git
synced 2024-10-04 13:47:26 +03:00
14 lines
383 B
Plaintext
14 lines
383 B
Plaintext
--Abort
|
|
structural ability Abort where
|
|
Abort : forall a . () -> {Abort} a
|
|
eff : forall a b . (a -> b) -> b -> Request Abort a -> b
|
|
eff f z = cases
|
|
{ Abort.Abort _ -> k } -> z
|
|
{ a } -> f a
|
|
-- heff : Nat
|
|
heff = handle Abort.Abort () with eff (x -> x Nat.+ 2) 1
|
|
hudy : Nat
|
|
hudy = handle 42 with eff (x -> x Nat.+ 2) 1
|
|
bork : () -> {Abort} Nat
|
|
bork = u -> 1 Nat.+ (Abort.Abort ())
|