-- 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