Changes between Version 202 and Version 203 of TypeFunctionsStatus


Ignore:
Timestamp:
Sep 10, 2007 7:22:54 AM (7 years ago)
Author:
chak
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TypeFunctionsStatus

    v202 v203  
    44 
    55'''Debugging of type families:''' 
    6  0. Check that the restrictions on equality constraints in instance and class contexts are enforced.  We should have tests for that in the testsuite.  Document the exact restrictions on the Haskell wiki tutorial page. 
    7  0. To fix `Simple8`: 
    8    * Fix tcLookupFamInst to gracefully handle this case.  (This requires some care to not violate assumptions made by other  clients of this function, as it is also used for data families,  but I see no fundamental problem.) 
    9    * Issue a warning if there are two identical instances (as per  Roman's suggestion). 
    106 0. `boxySplitTyConApp` and friends must be able to deal with `orig_ty`s that have outermost type family applications; i.e., they need to try to normalise and possibly have to defer.  They also need to defer on skolems.  Consequently, they also need to return a coercion.  This , in particular, affects the treatment of literal lists, parallel arrays, and tuples in`TcExpr.tcExpr` is fishy. 
    117 0. We would need swapInsts for wanted constraints.  However, an alternative is to get rid of swapInst altogether and to make substInst a bit smarter (so it also applies wrongly-oriented equalities properly). 
    12  0. Fix export list problem (ie, export of data constructors introduced by orphan data instances): 
    13    * Change `HscTypes.IfaceExport` to use `Name` instead of `OccName`. 
    14    * Then, there is also no need for the grouping of the identifiers by module anymore (but sort it to avoid spurious iface changes dur to re-ordering when re-compiling). 
    15    * We still need to have the name parent map, though. 
    16    * See email for example. 
    17  0. Allow data family GADT instances. 
    18  0. Fix everything in the testsuite. 
    19  0. Can't we now allow non-left-linear declarations; e.g., `instance type F a a = ..`? 
    20  0. Fix core-lint breakage in cholewo-eval. 
    21  0. The tests `tcfail068` and `rw` used to raise more type errors right away.  Now, we see less recovery. 
    228 0. To move GADT type checking from refinements to equalities, proceed as follows (as suggested by SPJ): 
    239    * Implemented this as follows in `TcPat.tcConPat:579:` 
     
    3521    * 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. 
    3622    * `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). 
     23 0. Check that the restrictions on equality constraints in instance and class contexts are enforced.  We should have tests for that in the testsuite.  Document the exact restrictions on the Haskell wiki tutorial page. 
     24 0. To fix `Simple8`: 
     25   * Fix tcLookupFamInst to gracefully handle this case.  (This requires some care to not violate assumptions made by other  clients of this function, as it is also used for data families,  but I see no fundamental problem.) 
     26   * Issue a warning if there are two identical instances (as per  Roman's suggestion). 
     27 0. When `Simple13` is compiled with a compiler that was built with `-DDEBUG`, it prints a warning about not matching types being used during constructing a trans coercion. 
     28 0. Fix export list problem (ie, export of data constructors introduced by orphan data instances): 
     29   * Change `HscTypes.IfaceExport` to use `Name` instead of `OccName`. 
     30   * Then, there is also no need for the grouping of the identifiers by module anymore (but sort it to avoid spurious iface changes dur to re-ordering when re-compiling). 
     31   * We still need to have the name parent map, though. 
     32   * See email for example. 
     33 0. Allow data family GADT instances. 
     34 0. Fix everything in the testsuite. 
     35 0. Can't we now allow non-left-linear declarations; e.g., `instance type F a a = ..`? 
     36 0. Fix core-lint breakage in cholewo-eval. 
     37 0. The tests `tcfail068` and `rw` used to raise more type errors right away.  Now, we see less recovery. 
    3738 0. What about filtering the `EqInst`s in `TcSimplify.addSCs`.  We need them, don't we?  But they give rise to `Var`s, not `Id`s, and we haven't got selectors. 
    3839