@@ -705,10 +705,22 @@ p_hsExpr = \case
705705 HsTick {} -> notImplemented "HsTick"
706706 HsBinTick {} -> notImplemented "HsBinTick"
707707 HsTickPragma {} -> notImplemented "HsTickPragma"
708+ -- These four constructs should never appear in correct programs.
709+ -- See: https://github.com/tweag/ormolu/issues/343
708710 EWildPat NoExt -> txt "_"
709− EAsPat {} -> notImplemented "EAsPat"
710− EViewPat {} -> notImplemented "EViewPat"
711− ELazyPat {} -> notImplemented "ELazyPat"
711+ EAsPat NoExt n p -> do
712+ p_rdrName n
713+ txt "@"
714+ located p p_hsExpr
715+ EViewPat NoExt p e -> do
716+ located p p_hsExpr
717+ space
718+ txt "->"
719+ breakpoint
720+ inci (located e p_hsExpr)
721+ ELazyPat NoExt p -> do
722+ txt "~"
723+ located p p_hsExpr
712724 HsWrap {} -> notImplemented "HsWrap"
713725 XExpr {} -> notImplemented "XExpr"
714726