Implement parsing. Deforestation to follow.
Remove boolean properties.
Abstract a protocol for combinators.
Parsers are combinators.
Implement deforestation.
Merge branch 'deforestation' into parsing
Tidying.
Rename all the things.
Parsing is done over copyable objects.
Derivatives are memoized.
Implement constructor functions.
Kleene’s least fixed point theorem.
Memoize & fix deforestation.
Compaction is memoized.
Concatenation compacts.
The derivative is memoized recursively.
Alternation compacts.
Descriptions.
Repetition compacts.
Reductions compact.