- Andrew Bromage: Ralf Hinze has produced a more efficient nondeterminism monad using the technique of Deriving From Specifications. Note that this requires universally-quantified types?, which is not in Haskell 98.
- Stefan Ljungstrand: I'm sorry but I can't see any use of multi-parameter type classes above. Perhaps you meant multi-parameter type constructors? (curried!) which already is in Haskell 98 AFAIK (but not in SML e.g.)
- Andrew Bromage: My mistake. The earlier version I had there did indeed use multi-parameter type-classes, but then I switched to this version.