Didn't like the complexity of the functional approach. Some matchers
don't work well with typed values. Considered a more OOP approach.