@@ -575,24 +575,28 @@ p_hsExpr = \case
575575p_patSynBind :: PatSynBind GhcPs GhcPs -> R ()
576576p_patSynBind PSB {..} = do
577577 txt "pattern "
578+ let nonEmptySynDetails = \case
579+ PrefixCon (_:_) -> True
580+ RecCon (_:_) -> True
581+ _ -> False
578582 case psb_dir of
579583 Unidirectional -> do
580584 p_rdrName psb_id
581− space
585+ when (nonEmptySynDetails psb_args) space
582586 p_patSynDetails psb_args
583587 txt " <-"
584588 breakpoint
585589 inci (located psb_def p_pat)
586590 ImplicitBidirectional -> do
587591 p_rdrName psb_id
588− space
592+ when (nonEmptySynDetails psb_args) space
589593 p_patSynDetails psb_args
590594 txt " ="
591595 breakpoint
592− located psb_def p_pat
596+ inci (located psb_def p_pat)
593597 ExplicitBidirectional mgroup -> do
594598 p_rdrName psb_id
595− space
599+ when (nonEmptySynDetails psb_args) space
596600 p_patSynDetails psb_args
597601 txt " <-"
598602 breakpoint