Chains
Chains allow multiple expressions to be appended together.
Simple chains
A chain is written as a series of expressions delimited by arrows ->.
The final expression determines the value of the chain as a whole.
-- This entire chain evaluates to 8, the result of the final expression.
2 + 5 -> cos(2) -> max(2, 4, 6, 8)
Forward passing
Wolf stores the result of the previous expression in that.
This allows previous expressions to be used in the next expression.
-- `that` is replaced with 4, so this whole chain evaluates to 14.
2 + 2 -> that + 10
Automatic chaining
If that is being passed as .0 to a function, the fat arrow => can be used to omit it.
-- Manual:
(2, 5) -> max(that) -> log2(that) -> ceil(that) -> exp2(that)
-- Automatic:
(2, 5) => max() => log2() => ceil() => exp2()
You may mix thin arrows and fat arrows in the same chain.
(2, 5) => max -> 10 / that