Pretty-Print tuples
authorJoachim Breitner <mail@joachim-breitner.de>
Thu, 20 Dec 2012 10:49:10 +0000 (10:49 +0000)
committerJoachim Breitner <mail@joachim-breitner.de>
Thu, 20 Dec 2012 10:49:10 +0000 (10:49 +0000)
src/GHC/HeapView.hs

index 0187e4c..6a0ded7 100644 (file)
@@ -604,6 +604,10 @@ isCons :: GenClosure b -> Maybe (b, b)
 isCons (ConsClosure { name = ":", dataArgs = [], ptrArgs = [h,t]}) = Just (h,t)
 isCons _ = Nothing
 
+isTup1 :: GenClosure b -> Maybe (b, b)
+isTup1 (ConsClosure { name = "(,)", dataArgs = [], ptrArgs = [h,t]}) = Just (h,t)
+isTup1 _ = Nothing
+
 isNil :: GenClosure b -> Bool
 isNil (ConsClosure { name = "[]", dataArgs = [], ptrArgs = []}) = True
 isNil _ = False
@@ -619,6 +623,8 @@ ppPrintClosure showBox prec c = case c of
         ["C#", show ch]
     _ | Just (h,t) <- isCons c -> addBraces (5 <= prec) $
         showBox 5 h ++ " : " ++ showBox 4 t
+    _ | Just (l,r) <- isTup1 c ->
+        "(" ++ showBox 0 l ++ "," ++ showBox 0 r ++ ")"
     ConsClosure {..} -> app $
         name : map (showBox 10) ptrArgs ++ map show dataArgs
     ThunkClosure {..} -> app $