Changes between Version 309 and Version 310 of TypeFunctionsStatus

Apr 7, 2008 7:54:49 AM (8 years ago)



  • TypeFunctionsStatus

    v309 v310  
    3434 0. Allow repeated variable occurrences in lhses of type instances (see paper).
    3535 0. Replacing GADT refinements by explicit equality constraints:
    36     * CLEANUP:
    37      * `TcGadt.tcUnifyTys` can now probably be replaced again by the non-side-effecting unifier that was in `types/Unify.hs` (recover from previous repo states).
    38      * What else?
    3936    * Regressions that remain to be fixed:
    4037      * `gadt/lazypatok` needs to be fixed (are irrefutable patterns really ok, see]?)
    4643      * if a pattern has a GADT constructor (ie, any constraints in the data constructor signature), the scutinee must be rigid,
    4744      * we  need to know of types whether they are rigid (not only whether they contain unification variables, but by a flag in the environment that indicates whether the computation of that type involved non-rigid type variables)
    48     * In `TcUnify`, make all occurs checks more elaborate.  They should only '''defer''' if the checked variable occurs as part of an argument to a type family application; in other cases, still fail right away.  DONE?
    4945    * Re `tcfail167`, SPJ proposes that could generate a better error message, at least most of the time.  If the "expected type" of a pattern is 's', and we meet a constructor with result type (T t1, then one could imagine a 2-step process:
    5046      1. check that 's' is (or can be made to be) of form (T ....)
    166162 * Enforce syntactic constraints on type instances needed to ensure the termination of constraint entailment checking.
    167163 * Equality constraint normalisation and coercion term generation.
     164 * GADT type checking implemented with equality and implication constraints.
    169166== Desugaring ==