summaryrefslogtreecommitdiff
path: root/dhall/src/errors/HandlerNotAFunction.txt
blob: ff874439a6d0725f9ff3f9a62f1c55ad3245d9f5 (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                                     │
    └─────────────────────────────────────────────────────────────────────┘


... as long as each handler is a function

For example, the following expression is $_NOT valid:


    ┌─────────────────────────────────────────┐
    │ merge { Foo = True } < Foo = 1 > : Bool │
    └─────────────────────────────────────────┘
                    ⇧
                    Invalid: Not a function


Your handler for this alternative:

↳ $txt0

... has the following type:

↳ $txt1

... which is not the type of a function