Ideas for improvement
More formal treatment
Most-specific matching? Needs lookupLessSpecific and lookupMoreSpecific....
Finding unifiers
Doing non-linear matching through deferred equality constraints
Polytypic derivation of matching lookup à la Hinze?
Efficient fromList(With) by partitioning
Implemented that, but it's slower. Perhaps It would be faster if we used a mutable array that we'd partition as we go. Somehow.