*Types and are Values*

As mentioned before, values of duplicates fields are combined. This process is called unification. Unification can also be written explicitly with the `&`

operator.

There is always a single unique result, possibly bottom, for unifying any two CUE values.

Unification is commutative, associative, and idempotent. In other words, order doesn't matter and unifying a given set of values in any order always gives the same result.

*unification.cue:*

a: { x: 1, y: 2 } b: { y: 2, z: 3 } c: { x: 1, z: 4 } q: a & b & c r: b & c & a s: c & b & a

`$ cue eval -i unification.cue`

a: { x: 1 y: 2 } b: { y: 2 z: 3 } c: { x: 1 z: 4 } q: { x: 1 y: 2 z: _|_ /* conflicting values 3 and 4 */ } r: { x: 1 y: 2 z: _|_ /* conflicting values 3 and 4 */ } s: { x: 1 y: 2 z: _|_ /* conflicting values 4 and 3 */ }