ambiguous_method.m:022: In declaration for function `e'/0: ambiguous_method.m:022: error in type class constraints: type variable `E' ambiguous_method.m:022: occurs in the constraints, but is not determined by ambiguous_method.m:022: the function's argument or result types. ambiguous_method.m:022: All types occurring in typeclass constraints must be ambiguous_method.m:022: fully determined. A type is fully determined if one ambiguous_method.m:022: of the following holds: ambiguous_method.m:022: 1) All type variables occurring in the type are ambiguous_method.m:022: determined. ambiguous_method.m:022: 2) The type occurs in a constraint argument, that ambiguous_method.m:022: argument is in the range of some functional ambiguous_method.m:022: dependency for that class, and the types in all of ambiguous_method.m:022: the domain arguments for that functional dependency ambiguous_method.m:022: are fully determined. ambiguous_method.m:022: A type variable is determined if one of the following ambiguous_method.m:022: holds: ambiguous_method.m:022: 1) The type variable occurs in the argument types of ambiguous_method.m:022: the predicate, function, or constructor which is ambiguous_method.m:022: constrained. ambiguous_method.m:022: 2) The type variable occurs in a type which is fully ambiguous_method.m:022: determined. ambiguous_method.m:022: See the "Functional dependencies" section of the ambiguous_method.m:022: reference manual for details.