=== Application ===
When applying a role `p` to some argument `a`,
it is written `p(a)`.

Sometimes, application returns a 1-avatar.
To get the inner value of a 1-avatar, one can use `.` in front:

  .p(a)

Application is treated as unique by default.
This means that when writing:

  p(b) : f
  (a, p(b))

This adds the following expressions:

  f(a) = p(b)
  f(a) => p(b)

To make application non-unique, use the following trick:

  q'(b) : f
  p(b) = q'(b)
  (a, q'(.p(b)))

This only adds the following expression:

  f(a) => q'(b)
