Changes between Version 147 and Version 148 of TypeFunctionsStatus

Aug 21, 2007 3:04:30 AM (8 years ago)



  • TypeFunctionsStatus

    v147 v148  
    6  1. Dictionary handling for equational constraints: 
     6 1. Dictionary handling for equational constraints: ['''Which of that has Tom done?'''] 
    77   * Where do we check the details of the formation of equational constraints?  (In `check_pred_ty`?) 
    88   * In the case for ordinary instances in `TcInstDcls.tcInstDecl2`, filter the ids of the super class equalities out of `map instToId sc_dicts`.  (They don't appear explicitly in the `Hs' representation of the methods binding.) 
    99   * Similarly with `map instToId meth_dicts` in `TcClassDcl.tcMethodBind`  Maybe we just need a special function to replace all occurences of `map instToId`?  Occurs also in `TcPat.tcConPat`. 
    1010   * We also have `map instToId` in `TcUnify.tcGen`, but here I am not sure yet whether we cans imply drop the coercion variables or have to do something else. 
    11  3. `TcSimplify`: Handle the presence of `EqPred`s in the given set, due to appearing in signature contexts.  (Including that `instToId` doesn't work on `EqPred`s.) 
     11 3. `TcSimplify`: Handle the presence of `EqPred`s in the given set, due to appearing in signature contexts.  (Including that `instToId` doesn't work on `EqPred`s.)  ['''Did Tom do that?'''] 
    1212 4. Well-formedness checks for equational constraints (i.e., anything beyond the type arguments being boxed, rank 0 types) 
    3434 * If an associated synonym has a default definition, use that in the instances.  In contrast to methods, this cannot be overridden by a specialised definition.  (Confluence requires that any specialised version is extensionally the same as the default.) 
    36 Todo (high-level): 
     36Todo (high-level): ['''Tom has done much of this.'''] 
    3737 1. Type checking of type functions (and hence, associated type synonyms); routines in `TcUnify` that need to be extended: 
    3838   * `boxySplitTyConApp`: The second argument (`BoxyRhoType`) can be a synonym family application.  Then, we must produce a wanted coercion and return a `HsWrapper` value that applies that coercion. 
    7373 * Generation and plumbing through of rough matches. 
    7474 * Equational constraints in contexts. 
     76== Testsuite == 
     78Current `validate` result: 
     80Unexpected passes: 
     81   Class1(normal) 
     83Unexpected failures: 
     84   Refl2(normal) 
     85   Simple5a(normal) 
     86   break001(ghci) 
     87   break006(ghci) 
     88   print019(ghci) 
     89   rw(normal) 
     90   tc210(normal) 
     91   tc211(normal) 
     92   tcfail046(normal) 
     93   tcfail071(normal) 
     94   tcfail102(normal) 
     95   tcfail128(normal) 
     96   tcfail145(normal) 
     97   tcfail153(normal) 
     98   while(normal) 
     101 * Class1: Ok.  (Only marked to fail in head to keep validate happy.) 
     102 * Relf2: Type family BUG. 
     103 * Simple5a: Changed error message for data families, BUT the new error message is cryptic and indicates a much too complicated treatment of data families. 
     104 * break001: INVALID.  GHC panic instead of printing error message about ambiguous variable. 
     105 * break006: INVALID.  Seems to be the same problem as break001. 
     106 * print019: INVALID.  Seems to be the same problem as break001. 
     107 * rw: Changed error message for GADTs.  Seems to be the same behaviour as in Simple5a.  
     108 * tc210: INVALID (matching `forall a.a -> Int` against `Int -> Int fails). 
     109 * tc211: INVALID (tests impredicative types). 
     110 * tcfail046: Changed error message, BUT the new error message has one more type synonym unfolding, which should be avoided. 
     111 * tcfail071: Changed error message (has now only one of two parts).  Unsure whether the lack of the second part signals regress.