@sjakobi: All of Dhall’s operators (except for `.`

and the proposed `≡`

operator for equivalence) form `Monoid`

s, meaning that they are associative and have some identity element. For each such operator I tried to add the corresponding `mconcat`

to the Prelude where possible. For example, the `mconcat`

for the `+`

operator is `Natural/sum`

and the `mconcat`

for `#`

is `List/concat`

.

I added `Bool/{even,odd}`

since they provide the `mconcat`

for `==`

and `!=`

, respectively. They exist purely for symmetry and are not motivated by a practical use case. When naming them I tried to come up with an intuitive description of what they did. It turns out that the easiest way to reason about their behavior is to think of them in terms of counting either `False`

s or `True`

s, respectively, thus the descriptions and names.