summaryrefslogtreecommitdiff
path: root/src/errors/UnusedHandler.txt
blob: 2e46a12cf0f8ee9d8081151ddac587c001d286d9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Explanation: You can ❰merge❱ the alternatives of a union using a record with one
handler per alternative, like this:


    ┌─────────────────────────────────────────────────────────────────────┐
    │     let union    = < Left = +2 | Right : Bool >                     │
    │ in  let handlers = { Left = Natural/even, Right = λ(x : Bool) → x } │
    │ in  merge handlers union : Bool                                     │
    └─────────────────────────────────────────────────────────────────────┘


... but you must provide exactly one handler per alternative in the union.  You
cannot supply extra handlers

For example, the following expression is $_NOT valid:


    ┌───────────────────────────────────────┐
    │     let union    = < Left = +2 >      │  The ❰Right❱ alternative is missing
    │ in  let handlers =                    │ 
    │             { Left  = Natural/even    │
    │             , Right = λ(x : Bool) → x │  Invalid: ❰Right❱ handler isn't used
    │             }                         │
    │ in  merge handlers union : Bool       │
    └───────────────────────────────────────┘


You provided the following handlers:

↳ $txt0

... which had no matching alternatives in the union you tried to ❰merge❱