Make Literals and LiteralPatterns covariant
Handle LiteralPatterns correctly everywhere
It was a type parameter in disguise after all