Changes between Version 167 and Version 168 of TypeFunctionsStatus

Aug 27, 2007 1:34:13 PM (10 years ago)



  • TypeFunctionsStatus

    v167 v168  
    55'''Debugging of type family patch:'''
    66 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.
     7 0. The tests `tcfail068` and `rw` used to raise more type errors right away.  Now, we see less recovery.
    78 0. To fix Roman's GADT1 test, proceed as follows (as suggested by SPJ):
    89   * `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.
    9293Unexpected failures:
    9394   Refl2(normal)
    94   Simple5a(normal)
     95   Simple5a(normal)
     96   break001(ghci)
     97   break006(ghci)
     98   print019(ghci)
     99   rw(normal)
    95100   tcfail065(normal)
    96101   tcfail068(normal)
    106111 * Relf2: VALID. Type family BUG.
    107112 * Simple5a: VALID.  Error message changed.
    108  * ~~Simple5a~~: VALID. Changed error message for data families, BUT the new error message is cryptic.
    109113 * ~~break001~~: INVALID.  GHC panic instead of printing error message about ambiguous variable.
    110114 * ~~break006~~: INVALID.  Seems to be the same problem as break001.
    111115 * ~~print019~~: INVALID.  Seems to be the same problem as break001.
    112  * ~~rw~~: VALID. Changed error message for GADTs.  Seems to be the same behaviour as in Simple5a.
     116 * rw: VALID. Changed error message.  Reports one error less.  Other one is pruned, but still raised if the first one is removed.
    113117 * ~~tc210~~: INVALID (matching `forall a.a -> Int` against `Int -> Int fails).
    114118 * ~~tc211~~: INVALID (tests impredicative types).