From 52a4f7c11c1608b7b287d9d5b06084d12605099c Mon Sep 17 00:00:00 2001 From: Lennart Spitzner Date: Sat, 6 Aug 2016 14:07:13 +0200 Subject: [PATCH] Implement pattern cases: {..} and ~ --- src/Language/Haskell/Brittany/Layouters/Pattern.hs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/Language/Haskell/Brittany/Layouters/Pattern.hs b/src/Language/Haskell/Brittany/Layouters/Pattern.hs index 1ce89cc..48e0100 100644 --- a/src/Language/Haskell/Brittany/Layouters/Pattern.hs +++ b/src/Language/Haskell/Brittany/Layouters/Pattern.hs @@ -73,6 +73,12 @@ layoutPat lpat@(L _ pat) = docWrapNode lpat $ case pat of , docSeparator , docLit $ Text.pack "}" ] + ConPatIn lname (RecCon (HsRecFields [] (Just 0))) -> do + let t = lrdrNameToText lname + docSeq + [ appSep $ docLit t + , docLit $ Text.pack "{..}" + ] TuplePat args boxity _ -> do argDocs <- docSharedWrapper layoutPat `mapM` args case boxity of @@ -113,6 +119,9 @@ layoutPat lpat@(L _ pat) = docWrapNode lpat $ case pat of BangPat pat1 -> do patDoc <- docSharedWrapper layoutPat pat1 docSeq [docLit $ Text.pack "!", patDoc] + LazyPat pat1 -> do + patDoc <- docSharedWrapper layoutPat pat1 + docSeq [docLit $ Text.pack "~", patDoc] NPat llit@(L _ (OverLit olit _ _ _)) _ _ _ -> do docWrapNode llit $ allocateNode $ overLitValBriDoc olit