summaryrefslogtreecommitdiff
path: root/dhall/src/errors/FieldCollision.txt
blob: 2b2d260db90c4daad1914211a4e509480feb4609 (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
33
34
35
36
37
38
39
40
41
42
43
Explanation: You can combine records if they don't share any fields in common,
like this:


    ┌───────────────────────────────────────────┐
    │ { foo = 1, bar = "ABC" } ∧ { baz = True } │
    └───────────────────────────────────────────┘


    ┌────────────────────────────────────────┐
    │ λ(r : { baz : Bool}) → { foo = 1 } ∧ r │
    └────────────────────────────────────────┘


... but you cannot merge two records that share the same field

For example, the following expression is $_NOT valid:


    ┌───────────────────────────────────────────┐
    │ { foo = 1, bar = "ABC" } ∧ { foo = True } │  Invalid: Colliding ❰foo❱ fields
    └───────────────────────────────────────────┘


You combined two records that share the following field:

↳ $txt0

... which is not allowed

Some common reasons why you might get this error:

● You tried to use ❰∧❱ to update a field's value, like this:


    ┌────────────────────────────────────────┐
    │ { foo = 1, bar = "ABC" } ∧ { foo = 2 } │
    └────────────────────────────────────────┘
                                   ⇧
                                   Invalid attempt to update ❰foo❱'s value to ❰2❱

  Field updates are intentionally not allowed as the Dhall language discourages
  patch-oriented programming