@@ -231,7 +231,9 @@ p_hsExpr = \case
231231 located x p_hsExpr
232232 space
233233 located op p_hsExpr
234− breakpoint
234+ if isPrefixBlockExpr (unL y)
235+ then space
236+ else breakpoint
235237 inci (located y p_hsExpr)
236238 NegApp NoExt e _ -> do
237239 txt "-"
@@ -437,10 +439,14 @@ getGRHSSpan (XGRHS NoExt) = notImplemented "XGRHS"
437439-- case expressions.
438440
439441isPrefixBlock :: [LGRHS GhcPs (LHsExpr GhcPs)] -> Bool
440−isPrefixBlock [(L _ (GRHS NoExt _ (L _ e)))] =
441− case e of
442− HsLam NoExt _ -> True
443− HsDo NoExt _ _ -> True
444− HsLamCase NoExt _ -> True
445− _ -> False
442+isPrefixBlock [(L _ (GRHS NoExt _ (L _ e)))] = isPrefixBlockExpr e
446443isPrefixBlock _ = False
444+
445+-- | Similar to 'isPrefixBlock', but just for checking 'HsExpr' directly.
446+
447+isPrefixBlockExpr :: HsExpr GhcPs -> Bool
448+isPrefixBlockExpr = \case
449+ HsLam NoExt _ -> True
450+ HsDo NoExt _ _ -> True
451+ HsLamCase NoExt _ -> True
452+ _ -> False