Changes between Version 98 and Version 99 of TypeFunctionsStatus

Oct 14, 2006 7:53:51 PM (11 years ago)



  • TypeFunctionsStatus

    v98 v99  
    88   3. When compiling a new module `K`, union the sets from direct imports, plus `K` itself if it has family instances.  If that union is a subset of any of the incoming ones, nothing to do!  Otherwise, further checking needed.
    99   4. Further checking can be brute-force or intelligently to minimise the number of checks.  ''Brute-force:'' Take the `FamInst`s of all family-instance modules that are in the complement of the intersection of the sets of family-instance modules contained in each imported module and add `K` if it has imports.  Check this whole set using the check from Point (1).  ''Intelligently:'' Compute the set of all module pairs that have already been checked for overlap (as they both occur in the family-instance module list of any import) and subtract that from the set of all pairs of visible family-instance modules.  These are the critical module pairs.  Check any pair of instances coming from two different modules in a critical module pair.
     10 * Where should the family instance consistency check go for GHCi?  `tcGetModuleExports`?  (Where is that function called?)
    1011 * There really is no reason anymore to disallow family instances where all arguments are type variables.  Such instances are rarely useful, but may be when creating stub files or so; so why disallow them.  Check that they are working.