@@ -575,24 +575,28 @@ p_hsExpr = \case
575p_patSynBind :: PatSynBind GhcPs GhcPs -> R ()
575p_patSynBind :: PatSynBind GhcPs GhcPs -> R ()
576p_patSynBind PSB {..} = do
576p_patSynBind PSB {..} = do
577 txt "pattern "
577 txt "pattern "
578+ let nonEmptySynDetails = \case
579+ PrefixCon (_:_) -> True
580+ RecCon (_:_) -> True
578 case psb_dir of
582 case psb_dir of
579 Unidirectional -> do
583 Unidirectional -> do
580 p_rdrName psb_id
584 p_rdrName psb_id
581− space
585+ when (nonEmptySynDetails psb_args) space
582 p_patSynDetails psb_args
586 p_patSynDetails psb_args
583 txt " <-"
587 txt " <-"
584 breakpoint
588 breakpoint
585 inci (located psb_def p_pat)
589 inci (located psb_def p_pat)
586 ImplicitBidirectional -> do
590 ImplicitBidirectional -> do
587 p_rdrName psb_id
591 p_rdrName psb_id
588− space
592+ when (nonEmptySynDetails psb_args) space
589 p_patSynDetails psb_args
593 p_patSynDetails psb_args
591 breakpoint
595 breakpoint
592− located psb_def p_pat
596+ inci (located psb_def p_pat)
593 ExplicitBidirectional mgroup -> do
597 ExplicitBidirectional mgroup -> do
594 p_rdrName psb_id
598 p_rdrName psb_id
595− space
599+ when (nonEmptySynDetails psb_args) space
596 p_patSynDetails psb_args
600 p_patSynDetails psb_args
597 txt " <-"
601 txt " <-"
598 breakpoint
602 breakpoint