module LhsTooManyPatterns; type T := | A : T; f : T → T; f A x := A;