Changes between Version 269 and Version 270 of TypeFunctionsStatus


Ignore:
Timestamp:
Nov 19, 2007 10:12:53 AM (6 years ago)
Author:
chak
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • TypeFunctionsStatus

    v269 v270  
    3232'''Debugging of type families:''' 
    3333 0. To move GADT type checking from refinements to equalities, proceed as follows (as suggested by SPJ): 
    34     * Implemented this as follows in `TcPat.tcConPat:579:` 
     34    * Results: 
     35      * Impact on testsuite:  
    3536{{{ 
    36 -             eq_spec' = substEqSpec tenv eq_spec 
    37 +             eq_spec' = [] 
    38 +              eq_preds = [mkEqPred (mkTyVarTy tv, ty) | (tv, ty) <- eq_spec] 
    39 +             theta'   = substTheta  tenv (eq_theta ++ dict_theta ++ eq_preds) 
     37== indexed-types/ == 
     38Unexpected passes: 
     39   GADT4(normal) 
     40   GADT5(normal) 
     41   GADT7(normal) 
     42Unexpected failures: 
     43   GADT3(normal) -- ok, just tickles a known bug 
     44 
     45== typecheck/ == 
     46Unexpected failures: 
     47   tcfail167(normal)  -- Doesn't produce inaccessible case alternative message anymore. 
     48   tcfail172(normal)  -- Passes the non-rigid context example...is this good or bad? 
     49 
     50== gadt/ == 
     51Unexpected failures: 
     52   Session(normal)  -- maybe same problem as in equal 
     53   arrow(normal)  -- maybe same problem as in equal 
     54   doaitse(normal)  -- maybe same problem as in equal 
     55   equal(normal)   -- GADT givens (from pattern matching) don't seem to be used to discharge GADT wanteds (demanded by rhs) 
     56   gadt13(normal)  --  Passes the non-rigid context example...is this good or bad? 
     57   gadt18(normal)  -- GADT equalities not properly propagated in class instances 
     58   gadt21(normal)  -- OK!  Appears to just be a different error message. 
     59   gadt22(normal)  -- CoreLint failure 
     60   gadt7(normal)    --  Passes the non-rigid context example...is this good or bad? 
     61   gadt9(normal)  -- seems like the problem with equal 
     62   lazypatok(normal)  -- May actually be better than before! 
     63   nbe(normal)  --  maybe same problem as in equal 
     64   set(normal)  -- Urgh!  Context reduction stack overflow 
     65   tc(normal) 
     66   termination(normal) 
     67   while(normal) -- maybe same problem as equal 
    4068}}} 
    41     * Results: 
    42       * Works in principle. 
    43       * Immediately fixes the tests GADT4, GADT5 & GADT7.  GADT3 fals, but that is due to another known bug. 
    44       * Unfortunately, it breaks a whole lot of tests in `gadt/`. 
    45       * The remaining problems are partially due to ~~(1) the splitBoxyXXX function issue mentioned above,~~ (2) the occurs check issue mentioned below, (3) the same problem exhibited by GADT9 (with or without this change), (4) some problems getting hold of the right given class constraints, and (5) some random stuff that I haven't looked at more closely. 
    4669    * Handling of cases expression scrutinising GADTs:  
    4770      * implement proposal where we infer a rigidity flag for case scutinees and pass that down when type checking the patterns,