import Bag
import Outputable
import FastString
+
+import Data.Maybe
\end{code}
#if defined(GHCI)
dsLExpr (L loc expr@(HsWrap w (HsVar v)))
| idName v `elem` [breakpointName, breakpointCondName, breakpointAutoName]
+ , WpTyApp ty <- simpWrapper w
= do areBreakpointsEnabled <- breakpoints_enabled
if areBreakpointsEnabled
then do
- L _ breakpointExpr <- mkBreakpointExpr loc v
+ L _ breakpointExpr <- mkBreakpointExpr loc v ty
dsLExpr (L loc $ HsWrap w breakpointExpr)
else putSrcSpanDs loc $ dsExpr expr
+ where simpWrapper (WpCompose w1 WpHole) = w1
+ simpWrapper (WpCompose WpHole w1) = w1
+ simpWrapper w = w
#endif
dsLExpr (L loc e) = putSrcSpanDs loc $ dsExpr e
constructor @C@, setting all of @C@'s fields to bottom.
\begin{code}
-dsExpr (RecordCon (L _ data_con_id) con_expr rbinds)
+dsExpr (RecordCon (L _ data_con_id) con_expr (HsRecordBinds rbinds))
= dsExpr con_expr `thenDs` \ con_expr' ->
let
(arg_tys, _) = tcSplitFunTys (exprType con_expr')
dictionaries.
\begin{code}
-dsExpr (RecordUpd record_expr [] record_in_ty record_out_ty)
+dsExpr (RecordUpd record_expr (HsRecordBinds []) record_in_ty record_out_ty)
= dsLExpr record_expr
-dsExpr expr@(RecordUpd record_expr rbinds record_in_ty record_out_ty)
+dsExpr expr@(RecordUpd record_expr (HsRecordBinds rbinds) record_in_ty record_out_ty)
= dsLExpr record_expr `thenDs` \ record_expr' ->
-- Desugar the rbinds, and generate let-bindings if