Comments only
[ghc-hetmet.git] / compiler / typecheck / TcRnTypes.lhs
index ebf4101..86f1dfc 100644 (file)
@@ -28,7 +28,7 @@ module TcRnTypes(
        ArrowCtxt(NoArrowCtxt), newArrowScope, escapeArrowScope,
 
        -- Insts
-       Inst(..), InstOrigin(..), InstLoc(..), 
+       Inst(..), EqInstCo, InstOrigin(..), InstLoc(..), 
        pprInstLoc, pprInstArising, instLocSpan, instLocOrigin,
        LIE, emptyLIE, unitLIE, plusLIE, consLIE, instLoc, instSpan,
        plusLIEs, mkLIE, isEmptyLIE, lieToList, listToLIE,
@@ -208,11 +208,6 @@ data TcGblEnv
                -- The binds, rules and foreign-decl fiels are collected
                -- initially in un-zonked form and are finally zonked in tcRnSrcDecls
 
-               -- The next fields accumulate the payload of the
-               -- module The binds, rules and foreign-decl fiels are
-               -- collected initially in un-zonked form and are
-               -- finally zonked in tcRnSrcDecls
-
         tcg_rn_imports :: Maybe [LImportDecl Name],
         tcg_rn_exports :: Maybe [Located (IE Name)],
        tcg_rn_decls :: Maybe (HsGroup Name),   -- renamed decls, maybe
@@ -700,27 +695,26 @@ data Inst
                                  --    co :: ty1 ~ ty2
        tci_left  :: TcType,      -- ty1    -- both types are...
        tci_right :: TcType,      -- ty2    -- ...free of boxes
-       tci_co    :: Either       -- co
-                       TcTyVar   --  - a wanted equation, with a hole, to be 
-                                 --    filled with a witness for the equality;
-                                  --    for equation arising from deferring
-                                  --    unification, 'ty1' is the actual and
-                                  --    'ty2' the expected type
-                       Coercion, --  - a given equation, with a coercion
-                                 --    witnessing the equality;
-                                 --    a coercion that originates from a
-                                 --    signature or a GADT is a CoVar, but
-                                  --    after normalisation of coercions, they
-                                 --    can be arbitrary Coercions involving
-                                  --    constructors and pseudo-constructors 
-                                  --    like sym and trans.
+       tci_co    :: EqInstCo,            -- co
        tci_loc   :: InstLoc,
 
        tci_name  :: Name       -- Debugging help only: this makes it easier to
                                -- follow where a constraint is used in a morass
-                               -- of trace messages!  Unlike other Insts, it has
-                               -- no semantic significance whatsoever.
+                               -- of trace messages!  Unlike other Insts, it 
+                                -- has no semantic significance whatsoever.
     }
+
+type EqInstCo = Either           -- Distinguish between given and wanted coercions
+                 TcTyVar   --  - a wanted equation, with a hole, to be filled
+                           --    with a witness for the equality; for equation
+                            --    arising from deferring unification, 'ty1' is
+                            --    the actual and 'ty2' the expected type
+                 Coercion  --  - a given equation, with a coercion witnessing
+                            --    the equality; a coercion that originates
+                            --    from a signature or a GADT is a CoVar, but
+                            --    after normalisation of coercions, they can
+                           --    be arbitrary Coercions involving constructors 
+                            --    and pseudo-constructors like sym and trans.
 \end{code}
 
 @Insts@ are ordered by their class/type info, rather than by their