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 }}}