Changes between Version 21 and Version 22 of FunctionalDependencies
 Timestamp:
 Apr 13, 2006 7:59:01 PM (12 years ago)
Legend:
 Unmodified
 Added
 Removed
 Modified

FunctionalDependencies
v21 v22 15 15 == References == 16 16 * [http://www.cse.ogi.edu/~mpj/pubs/fundeps.html Type Classes with Functional Dependencies] by Mark P. Jones, in ESOP 2000. A semiformal description of a more restricted system than implemented by GHC and Hugs. 17 * [http://www.cse.ogi.edu/~mpj/pubs/improve.html Simplifying and Improving Qualified Types] by Mark P. Jones (extended version of an FPCA'95 paper), provides background and theory on "improvement" of types. 17 18 * [http://research.microsoft.com/Users/simonpj/Papers/fdchr/ Understanding functional dependencies via Constraint Handling Rules] by Martin Sulzmann, Gregory J. Duck, Simon Peyton Jones, and Peter J. Stuckey, September 2005. This paper explains explores the restrictions required to guarantee sound, complete and decidable type inference in the presence of functional dependencies. 18 19 * [http://cvs.haskell.org/Hugs/pages/hugsman/exts.html#sect7.1.1 Multiple parameter classes] in the Hugs 98 User Manual 19 20 * [http://www.haskell.org//pipermail/haskellprime/2006February/000289.html Problems] with functional dependencies (email) by SPJ + paper. [http://www.haskell.org/pipermail/haskell/2000December/006324.html See also]. 20 21 * AssociatedTypes are an alternative solution. 22 21 23 == Tickets == 22 24 [[TicketQuery(description~=FunctionalDependencies)]] … … 132 134 Given the constraint ``C [a] b Bool, C [a] c d``, 133 135 * if we apply the dependency first, and then reduce using the instances, we obtain ``b = c, B a b, C [a] b d``. 134 * if we first reduce using the instances, we obtain ``B a b, C [a] bd``.136 * if we first reduce using the instances, we obtain ``B a b, C [a] c d``. 135 137 (GHC and Hugs yield the former, because they defer context reduction: see FlexibleContexts). 136 138