[add clearer Show instance for Val
John Meacham <john@repetae.net>**20051025153559] hunk ./Grin/Grin.hs 157
-    deriving(Eq,Show,Ord)
+    deriving(Eq,Ord)
hunk ./Grin/Grin.hs 165
+instance Show Val where
+    -- showsPrec _ s | Just st <- fromVal s = text $ show (st::String)
+    showsPrec _ (NodeC t []) = parens $ (fromAtom t)
+    showsPrec _ (NodeC t vs) = parens $ (fromAtom t) <+> hsep (map shows vs)
+    showsPrec _ (NodeV (V i) vs) = parens $ char 't' <> tshow i <+> hsep (map shows vs)
+    showsPrec _ (Tag t) = (fromAtom t)
+    showsPrec _ (Var (V i) t)
+        | TyPtr _ <- t = char 'p' <> tshow i
+        | TyNode <- t = char 'n' <> tshow i
+        | Ty _ <- t  = char 'l' <> tshow i
+        | TyTag <- t  = char 't' <> tshow i
+        | otherwise = char 'v' <> tshow i
+    showsPrec _ (Lit i t) | t == tCharzh, i >= 0x20 && i < 0x7f, Just x <- toIntegral i = tshow (chr x)
+    showsPrec _ (Lit i _)  = tshow i
+    showsPrec _ (Tup xs)  = tupled $ map shows xs
+    showsPrec _ (Const v) = char '&' <> shows v
+    showsPrec _ (Addr _) = text "<ref>"