Correct substitution into theta types (after merge)
[ghc-hetmet.git] / compiler / hsSyn / HsBinds.lhs
index 900b800..300f683 100644 (file)
@@ -84,9 +84,7 @@ data HsBind id
                                -- (with a free type variable a').  The coercion will take
                                -- a CoreExpr of this type and convert it to a CoreExpr of
                                -- type         Int -> forall a'. a' -> a'
-                               -- Notice that the coercion captures the free a'.  That's
-                               -- why coercions are (CoreExpr -> CoreExpr), rather than
-                               -- just CoreExpr (with a functional type)
+                               -- Notice that the coercion captures the free a'.
 
        bind_fvs :: NameSet     -- After the renamer, this contains a superset of the 
                                -- Names of the other binders in this binding group that 
@@ -318,11 +316,12 @@ data ExprCoFn
        -- Non-empty bindings, so that the identity coercion
        -- is always exactly CoHole
   | CoLet (LHsBinds Id)                -- let binds in []
-                               -- (ould be nicer to be core bindings)
+                               -- (would be nicer to be core bindings)
 
 instance Outputable ExprCoFn where 
   ppr co_fn = pprCoFn (ptext SLIT("<>")) co_fn
 
+pprCoFn :: SDoc -> ExprCoFn -> SDoc
 pprCoFn it CoHole = it
 pprCoFn it (CoCompose f1 f2) = pprCoFn (pprCoFn it f2) f1
 pprCoFn it (ExprCoFn co)     = it <+> ptext SLIT("`cast`") <+> pprParendType co