-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Pretty Print containers in a tabular format
--   
--   Please see README.md
@package pptable
@version 0.2.0.0


-- | Module implements the default methods for Tabulate
module Text.PrettyPrint.Tabulate

-- | The elements in a Traverserable should be an instance of Tabulate to
--   be displayed in a tabular format
class (Data a) => Tabulate a

-- | Generic function that will be provided by the GTabulate class.
ppTable :: (Tabulate a, (Boxable f)) => f a -> IO ()

-- | Generic function that will be provided by the GTabulate class.
ppTable :: (Tabulate a, Boxable f, Generic a, GTabulate (Rep a)) => f a -> IO ()

-- | Class that can be derived by a <a>Traversable</a> to create a list of
--   <tt>Box</tt> values and print as a Table. Default instances for List,
--   Map and Vector are already provided.
class Boxable b
toBox :: (Boxable b, Data a, Generic a, GTabulate (Rep a)) => b a -> [[Box]]
printTable :: (Boxable b, Data a, Generic a, GTabulate (Rep a)) => b a -> IO ()

-- | Class that implements formatting using printf. Default instances for
--   String, Char, Int, Integer, Double and Float are provided. For types
--   that are not an instance of this class <a>show</a> is used.
class CellValueFormatter a
instance Text.PrettyPrint.Tabulate.Boxable []
instance Text.PrettyPrint.Tabulate.Boxable Data.Vector.Vector
instance GHC.Show.Show k => Text.PrettyPrint.Tabulate.Boxable (Data.Map.Internal.Map k)
instance Text.PrettyPrint.Tabulate.CellValueFormatter a => Text.PrettyPrint.Tabulate.GTabulate (GHC.Generics.K1 i a)
instance Text.PrettyPrint.Tabulate.CellValueFormatter GHC.Integer.Type.Integer
instance Text.PrettyPrint.Tabulate.CellValueFormatter GHC.Types.Int
instance Text.PrettyPrint.Tabulate.CellValueFormatter GHC.Types.Float
instance Text.PrettyPrint.Tabulate.CellValueFormatter GHC.Base.String
instance Text.PrettyPrint.Tabulate.CellValueFormatter GHC.Types.Double
instance Text.PrettyPrint.Tabulate.CellValueFormatter GHC.Types.Bool
instance Text.PrettyPrint.Tabulate.GTabulate GHC.Generics.U1
instance (Text.PrettyPrint.Tabulate.GTabulate a, Text.PrettyPrint.Tabulate.GTabulate b) => Text.PrettyPrint.Tabulate.GTabulate (a GHC.Generics.:*: b)
instance (Text.PrettyPrint.Tabulate.GTabulate a, Text.PrettyPrint.Tabulate.GTabulate b) => Text.PrettyPrint.Tabulate.GTabulate (a GHC.Generics.:+: b)
instance Text.PrettyPrint.Tabulate.GTabulate a => Text.PrettyPrint.Tabulate.GTabulate (GHC.Generics.M1 i c a)


-- | Example usage of ppTable library
module Text.PrettyPrint.Tabulate.Example
