Simplify pattern matching by making Match a little bit polymorphic