Changes between Version 178 and Version 179 of TypeFunctionsStatus


Ignore:
Timestamp:
Aug 29, 2007 12:26:14 PM (8 years ago)
Author:
chak
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TypeFunctionsStatus

    v178 v179  
    77 0. Fix core-lint breakage in cholewo-eval. 
    88 0. The tests `tcfail068` and `rw` used to raise more type errors right away.  Now, we see less recovery. 
    9  0. To fix Roman's GADT1 test, proceed as follows (as suggested by SPJ): 
    10    * `TcGadt.uUnrefined`: the occurs check needs to be more subtle.  If the variable occurs, but does so under a type family application, do not fail, but just defer. 
    11    * This requires a function `Types.tyVarsOfTypeDefinite` that returns only those variables not occurring under type family applications. 
    12    * Moreover, the unification monad `UM` must be extended to be able to collect `EqInst` for later insertion into the LIE. 
    13    * We may have to do the same for other occurs checks. 
    14    * And we '''definitely''' need the whole deferral machinery for the GADT unification in `TcGadt`. 
     9 0. To move GADT type checking from refinements to using equalities, proceed as follows (as suggested by SPJ): 
     10    * In `TcPat.tcConPat`: 
     11      * set `eq_spec' = []`, to get an empty refinement 
     12      * add the equalities from `eq_spec` to `theta'` (to propagate them instead of the refinement) 
     13    * Test whether this works (it basically disables the refinement mechanism without deleting it) 
     14    * In `TcUnify`, make all occurs checks more elaborate.  They should only '''defer''' if the checked variable occurs as part of an argument to a type family application; in other cases, still fail right away. 
     15    * `TcGadt.tcUnifyTys` can now probably be replaced again by the non-side-effecting unifier that was in `types/Unify.hs` (recover from previous repo states). 
    1516 
    1617'''Current:''' 
    1718 * Add more details about type families to the !HaskellWiki page; especially, the constraints on decidable type instances and -fallow-undecidable-instances. 
    18  * Add some wiki documentation of how inference with type families works. 
     19 * Add some trac wiki documentation of how inference with type families works. 
    1920 
    2021== Parsing and Renaming ==