Changes between Version 147 and Version 148 of TypeFunctionsStatus
- Timestamp:
- 08/20/07 20:04:30 (6 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
TypeFunctionsStatus
v147 v148 4 4 5 5 '''Current:''' 6 1. Dictionary handling for equational constraints: 6 1. Dictionary handling for equational constraints: ['''Which of that has Tom done?'''] 7 7 * Where do we check the details of the formation of equational constraints? (In `check_pred_ty`?) 8 8 * 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.) 9 9 * 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`. 10 10 * 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?'''] 12 12 4. Well-formedness checks for equational constraints (i.e., anything beyond the type arguments being boxed, rank 0 types) 13 13 … … 34 34 * 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.) 35 35 36 Todo (high-level): 36 Todo (high-level): ['''Tom has done much of this.'''] 37 37 1. Type checking of type functions (and hence, associated type synonyms); routines in `TcUnify` that need to be extended: 38 38 * `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. … … 73 73 * Generation and plumbing through of rough matches. 74 74 * Equational constraints in contexts. 75 76 == Testsuite == 77 78 Current `validate` result: 79 {{{ 80 Unexpected passes: 81 Class1(normal) 82 83 Unexpected 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) 99 }}} 100 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.
