|Version 2 (modified by ijones, 8 years ago) (diff)|
Multi Parameter Type Classes Dilemma
MultiParamTypeClasses are very useful, but mostly in the context of FunctionalDependencies. They are particularly used in the monad transformer library found in fptools. The dilemma is that functional dependencies are "very, very tricky" (spj). AssociatedTypes are promising but unproven. Without a solution, Haskell' will be somewhat obsolete before it gets off the ground.
Options for solving the dilemma
- Examine a limited version of functional dependencies (are there any concrete proposals?)
- Put AssociatedTypes on the fast-track for sainthood
- Punt: declare FunctionalDependencies as an extension and figure out a way to "bless" extensions
Options that don't actually solve the dilemma
- Standardize without MultiParamTypeClasses or FunctionalDependencies
- Standardize FunctionalDependencies even though they are tricky.