Fix do-notation so that it works with -DDEBUG
[ghc-hetmet.git] / compiler / hsSyn / HsBinds.lhs
index 2fa2959..211a3c1 100644 (file)
@@ -343,8 +343,8 @@ data HsWrapper
 
   | WpApp Var                  -- [] d         the 'd' is a type-class dictionary
   | WpTyApp Type               -- [] t         the 't' is a type or corecion
-  | WpLam Id                   -- \d. []       the 'd' is a type-class dictionary
-  | WpTyLam TyVar              -- \a. []       the 'a' is a type or coercion variable
+  | WpLam Var                  -- \d. []       the 'd' is a type-class dictionary or coercion variable
+  | WpTyLam TyVar              -- \a. []       the 'a' is a type variable (not coercion var)
   | WpInline                   -- inline_me []   Wrap inline around the thing
 
        -- Non-empty bindings, so that the identity coercion
@@ -454,9 +454,6 @@ data Prag
   | SpecPrag   
        (HsExpr Id)     -- An expression, of the given specialised type, which
        PostTcType      -- specialises the polymorphic function
-       [Id]            -- Dicts mentioned free in the expression
-                       --   Apr07: I think this is pretty useless
-                       --          see Note [Const rule dicts] in DsBinds
        InlineSpec      -- Inlining spec for the specialised function
 
 isInlinePrag (InlinePrag _) = True
@@ -573,7 +570,7 @@ pprSpec :: (Outputable id, Outputable ty) => id -> ty -> InlineSpec -> SDoc
 pprSpec var ty inl = sep [ptext SLIT("SPECIALIZE") <+> ppr inl <+> pprVarSig var ty]
 
 pprPrag :: Outputable id => id -> LPrag -> SDoc
-pprPrag var (L _ (InlinePrag inl))         = ppr inl <+> ppr var
-pprPrag var (L _ (SpecPrag expr ty _ inl)) = pprSpec var ty inl
+pprPrag var (L _ (InlinePrag inl))       = ppr inl <+> ppr var
+pprPrag var (L _ (SpecPrag expr ty inl)) = pprSpec var ty inl
 \end{code}