Changes between Version 378 and Version 379 of TypeFunctionsStatus

Sep 30, 2008 3:39:41 AM (7 years ago)



  • TypeFunctionsStatus

    v378 v379  
    6868 0. Comments:
    6969   * 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.
    7170 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`.
    7671 0. Fix export list problem (ie, export of data constructors introduced by orphan data instances):
    7772   * Change `HscTypes.IfaceExport` to use `Name` instead of `OccName`.
    8176 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.
    8277 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.
    8478 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.
    8579 0. Consider
    9993  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 support
    101 {{{
    102 {-# LANGUAGE TypeFamilies, TypeOperators, GADTs,  RankNTypes, FlexibleContexts #-}
    103 module Equality( (:=:), eq_elim, eq_refl ) where
    105 data a:=: b where
    106   EQUAL :: a :=: a
    108 eq_refl :: a :=: a
    109 eq_refl = EQUAL
    111 eq_elim :: (a~b) => a :=: b -> (a~b => p) -> p
    112 eq_elim EQUAL p = p
    113 }}}