packages feed

groom (empty) → 0.1

raw patch · 3 files changed

+51/−0 lines, 3 filesdep +basedep +haskell-src-extssetup-changed

Dependencies added: base, haskell-src-exts

Files

+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
+ Text/Groom.hs view
@@ -0,0 +1,12 @@+module Text.Groom (groom, groomString) where++import Language.Haskell.Exts.Parser+import Language.Haskell.Exts.Pretty++groomString :: String -> String+groomString s = case parseExp s of+    ParseOk x -> prettyPrint x+    ParseFailed{} -> s++groom :: Show a => a -> String+groom = groomString . show
+ groom.cabal view
@@ -0,0 +1,37 @@+Name:               groom+Version:            0.1+Synopsis:           Slightly prettier printing for well-behaved Show+                    instances.+Description:        Automatically derived Show instances are an easy way+                    to inspect data in your program.  However, for large+                    data-structures, the resulting output lacks+                    whitespace, making it unreadable.  Groom offers an+                    replacement to `show' called `groom' which attempts+                    to pretty-print the output of `show'.  For example:+                    .+                    > let x = parseExp "foobar 1 [1,2]"+                    > in do+                    >   putStrLn (show x)+                    >   putStrLn (groom x)+                    .+                    results in:+                    .+                    > ParseOk (App (App (Var (UnQual (Ident "foobar"))) (Lit (Int 1))) (List [Lit (Int 1),Lit (Int 2)]))+                    > ParseOk+                    >   (App (App (Var (UnQual (Ident "foobar"))) (Lit (Int 1)))+                    >      (List [Lit (Int 1), Lit (Int 2)]))+                    .+                    Groom works only on Show instances that output valid+                    Haskell code; if Groom can't understand its input,+                    it will not make any changes.+License:            PublicDomain+Author:             Edward Z. Yang+Maintainer:         ezyang@mit.edu+Category:           Text+Build-type:         Simple+Cabal-version:      >=1.2++Library+  Exposed-modules:      Text.Groom+  Build-depends:        haskell-src-exts >= 1.0.0 && < 1.10,+                        base >= 3 && < 5