2020-11-11 20:33:46 +03:00
|
|
|
|
|
|
|
```ucm:hide
|
2024-06-12 01:22:09 +03:00
|
|
|
scratch/main> builtins.merge
|
2020-11-11 20:33:46 +03:00
|
|
|
```
|
|
|
|
|
|
|
|
```unison:error
|
2024-01-06 03:58:47 +03:00
|
|
|
structural ability Ask where ask : Nat
|
2020-11-11 20:33:46 +03:00
|
|
|
|
2024-01-06 03:58:47 +03:00
|
|
|
ability Zoot where
|
2020-11-11 20:33:46 +03:00
|
|
|
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
|
|
|
|
```
|