import {-# SOURCE #-} HsPat ( LPat )
import HsTypes
-import PprCore
+import PprCore ()
import Coercion
import Type
import Name
-- Recursive by default
| ValBindsOut -- After renaming
- [(RecFlag, LHsBinds id)] -- Dependency analysed
+ [(RecFlag, LHsBinds id)] -- Dependency analysed, later bindings
+ -- in the list may depend on earlier
+ -- ones.
[LSig Name]
type LHsBinds id = Bag (LHsBind id)
-- Before renaming, and after typechecking,
-- the field is unused; it's just an error thunk
- fun_tick :: Maybe Int -- This is the (optional) module-local tick number.
+ fun_tick :: Maybe (Int,[id]) -- This is the (optional) module-local tick number.
}
| PatBind { -- The pattern is never a simple variable;
pprValBindsForUser :: (OutputableBndr id1, OutputableBndr id2)
=> LHsBinds id1 -> [LSig id2] -> SDoc
pprValBindsForUser binds sigs
- = vcat (map snd (sort_by_loc decls))
+ = pprDeeperList vcat (map snd (sort_by_loc decls))
where
decls :: [(SrcSpan, SDoc)]
pprLHsBinds :: OutputableBndr id => LHsBinds id -> SDoc
pprLHsBinds binds
| isEmptyLHsBinds binds = empty
- | otherwise = lbrace <+> vcat (map ppr (bagToList binds)) <+> rbrace
+ | otherwise = lbrace <+> pprDeeperList vcat (map ppr (bagToList binds)) <+> rbrace
------------
emptyLocalBinds :: HsLocalBinds a
(LHsExpr id)
instance (OutputableBndr id) => Outputable (HsIPBinds id) where
- ppr (IPBinds bs ds) = vcat (map ppr bs)
+ ppr (IPBinds bs ds) = pprDeeperList vcat (map ppr bs)
$$ pprLHsBinds ds
instance (OutputableBndr id) => Outputable (IPBind id) where
| WpCo Coercion -- A cast: [] `cast` co
-- Guaranteedn not the identity coercion
- | WpApp Var -- [] x; the xi are dicts or coercions
- | WpTyApp Type -- [] t
- | WpLam Id -- \x. []; the xi are dicts or coercions
- | WpTyLam TyVar -- \a. []
+ | 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
-- Non-empty bindings, so that the identity coercion
-- is always exactly WpHole