Represent a match as a formula in propositional logic that encodes whether the match matches (abstractly: we only consider types)
Interface with user-defined match monad?
if there's a match
in scope, we use this as the match strategy, assuming it conforms to MatchStrategy as defined below:
Optimize and analyze matches based on their TreeMaker-representation.
The patmat translation doesn't rely on this, so it could be disabled in principle.
TODO: split out match analysis