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

419 B

scratch/main> builtins.merge
structural ability Ask where ask : Nat

ability Zoot where
  zoot : Nat

Ask.provide : '{Zoot} Nat -> '{Ask} r -> r
Ask.provide answer asker =
  h = cases
    {r}                 -> r
    {Ask.ask -> resume} -> handle resume !answer with h
  handle !asker with h

dialog = Ask.provide 'zoot '("Awesome number: " ++ Nat.toText Ask.ask ++ "!")

> dialog