Changes between Version 21 and Version 22 of FunctionalDependencies


Ignore:
Timestamp:
Apr 13, 2006 7:59:01 PM (9 years ago)
Author:
ross@…
Comment:

amendments from Iaxor

Legend:

Unmodified
Added
Removed
Modified
  • FunctionalDependencies

    v21 v22  
    1515== References == 
    1616 * [http://www.cse.ogi.edu/~mpj/pubs/fundeps.html Type Classes with Functional Dependencies] by Mark P. Jones, in ESOP 2000. A semi-formal 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. 
    1718 * [http://research.microsoft.com/Users/simonpj/Papers/fd-chr/ 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. 
    1819 * [http://cvs.haskell.org/Hugs/pages/hugsman/exts.html#sect7.1.1 Multiple parameter classes] in the Hugs 98 User Manual 
    1920 * [http://www.haskell.org//pipermail/haskell-prime/2006-February/000289.html Problems] with functional dependencies (email) by SPJ + paper. [http://www.haskell.org/pipermail/haskell/2000-December/006324.html See also]. 
    2021 * AssociatedTypes are an alternative solution. 
     22 
    2123== Tickets == 
    2224[[TicketQuery(description~=FunctionalDependencies)]] 
     
    132134Given the constraint ``C [a] b Bool, C [a] c d``, 
    133135 * 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] b d``. 
     136 * if we first reduce using the instances, we obtain ``B a b, C [a] c d``. 
    135137(GHC and Hugs yield the former, because they defer context reduction: see FlexibleContexts). 
    136138