js-good-parts 0.0.2 → 0.0.3
raw patch · 2 files changed
+67/−1 lines, 2 files
Files
js-good-parts.cabal view
@@ -1,5 +1,5 @@ Name: js-good-parts-Version: 0.0.2+Version: 0.0.3 Cabal-Version: >= 1.6 Synopsis: Javascript: The Good Parts -- AST & Pretty Printer Category: Language, Javascript@@ -28,3 +28,4 @@ Exposed-Modules: Language.JavaScript.AST Language.JavaScript.Pretty Other-Modules: Language.JavaScript.NonEmptyList+ Text.PrettyPrint.Leijen.PrettyPrec
+ src/Text/PrettyPrint/Leijen/PrettyPrec.hs view
@@ -0,0 +1,65 @@+{-# OPTIONS_GHC -Wall -fno-warn-orphans #-}+----------------------------------------------------------------------+-- |+-- Module : Text.PrettyPrint.Leijen.PrettyPrec+-- Copyright : (c) Conal Elliott 2009+-- License : BSD+--+-- Maintainer : conal@conal.net+-- Stability : experimental+--+-- Pretty class with precedence+----------------------------------------------------------------------++module Text.PrettyPrint.Leijen.PrettyPrec( + PrettyPrec(..)+) where++import Data.Ratio (Ratio)++import Text.PrettyPrint.Leijen++-- | Pretty printing with precedence. A cross between 'Show' and 'Pretty'.+-- The 'prettyPrec' method defaults to discarding the context precedence+-- and invoking 'pretty'. The reason 'PrettyPrec' derives from Pretty is+-- that so that this default is possible.+--+-- To make a 'Show' instance for a 'PrettyPrec' instance 'Foo', define+--+-- instance Show Foo where showsPrec p e = showsPrec p (prettyPrec p e)++class Pretty a => PrettyPrec a where+ prettyPrec :: Int -> a -> Doc+ prettyPrec = const pretty -- default++instance PrettyPrec Doc+instance PrettyPrec ()+instance PrettyPrec Bool+instance PrettyPrec Char+instance PrettyPrec Int+instance PrettyPrec Integer+instance PrettyPrec Float+instance PrettyPrec Double++-- Orphan. Missing from wl-pprint+instance (Integral a, Show a) => Pretty (Ratio a) where+ pretty = text . show++instance Pretty a => PrettyPrec [a]++instance (Pretty a,Pretty b) => PrettyPrec (a,b)++instance (Pretty a,Pretty b,Pretty c) => PrettyPrec (a,b,c)++instance PrettyPrec a => PrettyPrec (Maybe a) where+ prettyPrec p = maybe empty (prettyPrec p)++instance (Integral a, Show a) => PrettyPrec (Ratio a) where+ prettyPrec = const (text . show)++{--------------------------------------------------------------------+ 'Show' helpers+--------------------------------------------------------------------}++pageWidth :: Int+pageWidth = 80