HaRe-0.6: tools/base/pretty/PrettyStd.hs
module PrettyStd where
import PrettyPrint2
import Ratio
-- Predefined instances:
instance Printable Bool where wrap = ppi
instance Printable Int where wrap = ppi
instance Printable Integer where wrap = ppi
instance Printable Float where wrap = ppi
instance Printable Double where wrap = ppi
instance Integral a => Printable (Ratio a) where wrap = ppi
instance Printable a => Printable (Maybe a) where
ppi (Just a) = ppi a
ppi Nothing = empty
wrap (Just a) = wrap a
wrap Nothing = empty
instance Printable () where
ppi () = parens empty
wrap = ppi
instance (Printable a, Printable b) => Printable (a, b) where
ppi (a, b) = parens $ ppi a <> ',' <+> ppi b
wrap = ppi
instance (Printable a, Printable b, Printable c) => Printable (a, b, c) where
ppi (a, b, c) = parens $ ppi a <> ',' <+>
ppi b <> ',' <+>
ppi c
wrap = ppi
instance (Printable a, Printable b, Printable c, Printable d) =>
Printable (a, b, c, d) where
ppi (a, b, c, d) = parens $ ppi a <> ',' <+>
ppi b <> ',' <+>
ppi c <> ',' <+>
ppi d
wrap = ppi
instance (Printable a, Printable b, Printable c, Printable d, Printable e) =>
Printable (a, b, c, d, e) where
ppi (a, b, c, d, e) = parens $ ppi a <> ',' <+>
ppi b <> ',' <+>
ppi c <> ',' <+>
ppi d <> ',' <+>
ppi e
wrap = ppi