Changes between Version 378 and Version 379 of TypeFunctionsStatus
- Timestamp:
- 09/29/08 20:39:41 (5 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
TypeFunctionsStatus
v378 v379 68 68 0. Comments: 69 69 * When we raise a mismatch error in `TcSimplify` for unresolvable equalities, we effectively tidy the two non-matching types twice. Add a comment to highlight this and say way it is ok (i.e., they are never grouped together with `groupErrs` or similar). 70 0. `:t` in ghci doesn't print equalities in contexts properly.71 70 0. RankN: When can foralls appear in equalities? What constraints does that place on GADTs? Also, the code in `TcTyFuns` doesn't really deal with rank-n types properly, esp `decompRule`. Also test `Simple14` & `GADT10`. 72 0. CONCEPTUAL issue: At least with `skolemOccurs`, the policy of not zonking the types embedded in the kinds of coercion type variables does no longer work. This becomes, for example in the test `Simple13`, apparent. The skolem introduced in `skolemOccurs` finds its way into variable kinds (which is visible when inspecting them during `TcMType.zonk_tc_tyvar`).73 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.74 0. In `TcTyFuns.genericNormaliseInst`, we need to figure out what to do with `ImplicInst`, `Method`, and `LitInst` dictionaries.75 0. ghc falls over if a bang pattern is put at an argument of type `F a`.76 71 0. Fix export list problem (ie, export of data constructors introduced by orphan data instances): 77 72 * Change `HscTypes.IfaceExport` to use `Name` instead of `OccName`. … … 81 76 0. Eliminate code duplication between `tcTyClDecl1` and `tcFamInstDecl1`. The code for vanilla data/newtype declarations and the code for data/newtype instances has many commonalities. 82 77 0. Fix everything in the testsuite. 83 0. The tests `tcfail068` and `rw` used to raise more type errors right away. Now, we see less recovery.84 78 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. 85 79 0. Consider … … 98 92 }}} 99 93 It seems a bit complicated to come up with the most general type. The relevant code is in `TcExpr.tcExpr` in STEP 4 of the `RecordUpd` case. 100 0. Can we support101 {{{102 {-# LANGUAGE TypeFamilies, TypeOperators, GADTs, RankNTypes, FlexibleContexts #-}103 module Equality( (:=:), eq_elim, eq_refl ) where104 105 data a:=: b where106 EQUAL :: a :=: a107 108 eq_refl :: a :=: a109 eq_refl = EQUAL110 111 eq_elim :: (a~b) => a :=: b -> (a~b => p) -> p112 eq_elim EQUAL p = p113 }}}114 94 115 95
