unison/unison-src/transcripts/abilities.md
2024-06-25 11:11:07 -07:00

545 B

scratch/main> builtins.merge

Some random ability stuff to ensure things work.


unique ability A where
  one : Nat ->{A} Nat
  two : Nat -> Nat ->{A} Nat
  three : Nat -> Nat -> Nat ->{A} Nat
  four : Nat ->{A} (Nat -> Nat -> Nat -> Nat)

ha : Request {A} r -> r
ha = cases
  { x } -> x
  { one i -> c } -> handle c (i+1) with ha
  { two i j -> c } -> handle c (i+j) with ha
  { three i j k -> c } -> handle c (i+j+k) with ha
  { four i -> c } -> handle c (j k l -> i+j+k+l) with ha
scratch/main> add