mod41.hs:3:18: Illegal instance declaration for ‘Eq (Either a a)’ (All instance types must be of the form (T a1 ... an) where a1 ... an are *distinct type variables*, and each type variable appears at most once in the instance head. Use FlexibleInstances if you want to disable this.) In the instance declaration for ‘Eq (Either a a)’