On Mon, May 2, 2011 at 3:01 PM, Alexey Khudyakov <alexey.sklad...@gmail.com> wrote: > Hello everyone! > > Haskell have nice automatically derivable Show type class. It's quite useful > for debugging with one exception. String representation of even moderately > large value is completely unreadable (example below). > > My question is there any tool for reformatting result of show so it could be > read by human beings? > >
You could use the 'groom' package on Hackage: http://hackage.haskell.org/package/groom It works best for the derived show instances. Antoine > > Real life example of world salad produced by show > >> Module (SrcLoc {srcFilename = "rec.hs", srcLine = 1, srcColumn = 1}) >> (ModuleName "Main") [OptionsPragma (SrcLoc {srcFilename = "rec.hs", >> srcLine = 1, srcColumn = 1}) (Just GHC) "-F -pgmF ./preprocessor "] >> Nothing (Just [EVar (UnQual (Ident "main"))]) [] [DataDecl (SrcLoc >> {srcFilename = "rec.hs", srcLine = 3, srcColumn = 1}) DataType [] >> (Ident "Foo") [] [QualConDecl (SrcLoc {srcFilename = "rec.hs", >> srcLine = 3, srcColumn = 12}) [] [] (RecDecl (Ident "Foo") [([Ident >> "asd"],UnBangedTy (TyCon (UnQual (Ident "Int")))),([Ident >> "fgh"],UnBangedTy (TyCon (UnQual (Ident "String"))))])] [(UnQual >> ... > > _______________________________________________ > Haskell-Cafe mailing list > Haskell-Cafe@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe > _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe