Multi-parameter type class
About
Basically, type classes which can take multiple arguments, such as:
class Foo a b
Without Functional dependencies or Associated types, these multi-parameter type classes may cause too much ambiguity to pass the type-checker.