patch applied (ghc-fc2): Straightened out implicit coercions for indexed types

chak at cse.unsw.edu.au chak at cse.unsw.edu.au
Tue Sep 5 12:19:41 EDT 2006


Mon Sep  4 20:46:14 PDT 2006  Manuel M T Chakravarty <chak at cse.unsw.edu.au>
  * Straightened out implicit coercions for indexed types
  - HscTypes.implicitTyThings and LoadIface.ifaceDeclSubBndrs now
    include the coercion of indexed data/newtypes.
  - Name generation for the internal names of indexed data/newtypes now uses
    the same counter that generates the dfun unique indexes (ie, class and type
    instances are counted with the one counter).  We could make this two 
    separate counters if that's what's preferred.
  - The unique index of a data/newtype instances needs to go into the iface, so
    that we can generate the same names on slurping in the iface as when the
    original module was generated.  This is a bit yucky, but I don't see a way
    to avoid that (other than putting the full blown internal tycon name and 
    coercion name into the iface, which IMHO would be worse).
  - The predicate for when a datacon has a wrapper didn't take GADT
    equations nor whether it comes froma  family instance into account.
  
  *** WARNING!  This patch changed the interface file format. ***
  ***           Please recompile from scratch.                ***

    M ./compiler/basicTypes/MkId.lhs -8 +8
    M ./compiler/basicTypes/OccName.lhs -8 +7
    M ./compiler/iface/BuildTyCl.lhs -7 +7
    M ./compiler/iface/IfaceSyn.lhs -8 +10
    M ./compiler/iface/LoadIface.lhs -7 +22
    M ./compiler/iface/MkIface.lhs -11 +12
    M ./compiler/iface/TcIface.lhs -3 +3
    M ./compiler/main/HscTypes.lhs -7 +10
    M ./compiler/typecheck/TcInstDcls.lhs -2 +2
    M ./compiler/typecheck/TcTyClsDecls.lhs -1 +2
    M ./compiler/types/Coercion.lhs -2 +2
    M ./compiler/types/TyCon.lhs -13 +19


More information about the Cvs-ghc mailing list