Changes between Version 87 and Version 88 of TypeFunctionsStatus

Sep 13, 2006 8:30:56 PM (11 years ago)



  • TypeFunctionsStatus

    v87 v88  
    3131 * RHS of a `type instance` must be a tau type.
    3232 * Check that patterns of type indexes don't contain type functions.
     33 * We probably need to replicate quite a bit of the infrastructure used to maintain class instances for type instances.  In particular, we need to suck all home package instances into a field in the `TcGblEnv` similar to `tcg_inst_env` and all external instances in a field in `Hsc.ExternalPackageState` similar to `eps_inst_env`.
    3334 * Construct `InstInfo` for type equation in `tcIdxTyInstDecl1`.
    3435 * 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.)
    5556     * `IfaceInst` contains the instance declaration information for interfaces.
    5657    '''Answer:''' We don't put anything extra into interface files.  Instead, we derive the information corresponding to`IfaceInst` list in `ModIface` and the `Instance` list in `ModDetails` from the interface declarations and type environment, respectively.  I.e., it is the type instances that carry the whole payload.
     58    '''Update:''' We may actually want to put a rough match signature in the iface seperate from the full instance declaration, so we can delay type checking the full instance declaration until we get a rough match.  (This makes only sense for `type instance`s, not for `data instance`s, as the latter are loaded when their constructors are mentioned.  Well actually, it does make sense for `data instance`s as far as loading them for overlap checking is concerned.)
    5759 3. Desugar type functions and equality constraints.