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


-- | Efficient conversion of values into Text
--   
--   <tt>text-show</tt> offers a replacement for the <tt>Show</tt>
--   typeclass intended for use with <tt>Text</tt> instead of
--   <tt>String</tt>s. This package was created in the spirit of
--   <tt><a>bytestring-show</a></tt>.
--   
--   At the moment, <tt>text-show</tt> provides instances for most data
--   types in the <tt><a>array</a></tt>, <tt><a>base</a></tt>,
--   <tt><a>bytestring</a></tt>, and <tt><a>text</a></tt> packages.
--   Therefore, much of the source code for <tt>text-show</tt> consists of
--   borrowed code from those packages in order to ensure that the
--   behaviors of <tt>Show</tt> and <tt>TextShow</tt> coincide.
--   
--   For most uses, simply importing <a>TextShow</a> will suffice:
--   
--   <pre>
--   module Main where
--   
--   import TextShow
--   
--   main :: IO ()
--   main = printT (Just "Hello, World!")
--   </pre>
--   
--   If you desire it, there are also monomorphic versions of the
--   <tt>showb</tt> function available in the submodules of
--   <a>TextShow</a>. See the <a>naming conventions</a> page for more
--   information.
--   
--   Support for automatically deriving <tt>TextShow</tt> instances can be
--   found in the <a>TextShow.TH</a> and <a>TextShow.Generic</a> modules.
@package text-show
@version 3.4.1.1


-- | Monomorphic <tt>TextShow</tt> function for <tt>ConsoleEvent</tt>. This
--   module only exports functions if using Windows, and not using GHCJS.
--   
--   <i>Since: 2</i>
module TextShow.GHC.Conc.Windows


-- | Monomorphic <tt>TextShow</tt> functions for data types in the
--   <tt>OldTypeable</tt> module. This module only exports functions if
--   using <tt>base-4.7</tt>.
--   
--   <i>Since: 2</i>
module TextShow.Data.OldTypeable


-- | Monomorphic <a>TextShow</a> functions for strict <a>ST</a> values.
--   
--   <i>Since: 2</i>
module TextShow.Control.Monad.ST

-- | Convert a strict <a>ST</a> value to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbST :: ST s a -> Builder
instance TextShow.Classes.TextShow (GHC.ST.ST s a)
instance TextShow.Classes.TextShow1 (GHC.ST.ST s)
instance TextShow.Classes.TextShow2 GHC.ST.ST


-- | Monomorphic <a>TextShow</a> function for <a>Compose</a>.
--   
--   <i>Since: 3</i>
module TextShow.Data.Functor.Compose

-- | Convert a <a>Compose</a> value to a <a>Builder</a> with the given show
--   functions and precedence.
--   
--   <i>Since: 3</i>
liftShowbComposePrec :: (TextShow1 f, TextShow1 g) => (Int -> a -> Builder) -> ([a] -> Builder) -> Int -> Compose f g a -> Builder
instance (TextShow.Classes.TextShow1 f, TextShow.Classes.TextShow1 g, TextShow.Classes.TextShow a) => TextShow.Classes.TextShow (Data.Functor.Compose.Compose f g a)
instance (TextShow.Classes.TextShow1 f, TextShow.Classes.TextShow1 g) => TextShow.Classes.TextShow1 (Data.Functor.Compose.Compose f g)


-- | Monomorphic <a>TextShow</a> function for <a>Identity</a> values.
--   
--   <i>Since: 2</i>
module TextShow.Data.Functor.Identity

-- | Convert an <a>Identity</a> value to a <a>Builder</a> with the given
--   show function and precedence.
--   
--   <i>Since: 3</i>
liftShowbIdentityPrec :: (Int -> a -> Builder) -> Int -> Identity a -> Builder
instance TextShow.Classes.TextShow a => TextShow.Classes.TextShow (Data.Functor.Identity.Identity a)
instance TextShow.Classes.TextShow1 Data.Functor.Identity.Identity


-- | Monomorphic <a>TextShow</a> functions for integral types.
--   
--   <i>Since: 2</i>
module TextShow.Data.Integral

-- | Convert an <a>Int</a> to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2</i>
showbIntPrec :: Int -> Int -> Builder

-- | Convert an <a>Int8</a> to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2</i>
showbInt8Prec :: Int -> Int8 -> Builder

-- | Convert an <a>Int16</a> to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2</i>
showbInt16Prec :: Int -> Int16 -> Builder

-- | Convert an <a>Int32</a> to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2</i>
showbInt32Prec :: Int -> Int32 -> Builder

-- | Convert an <a>Int64</a> to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2</i>
showbInt64Prec :: Int -> Int64 -> Builder

-- | Convert an <a>Integer</a> to a <a>Builder</a> with the given
--   precedence.
--   
--   <i>Since: 2</i>
showbIntegerPrec :: Int -> Integer -> Builder

-- | Convert an <a>Integral</a> type to a <a>Builder</a> with the given
--   precedence.
--   
--   <i>Since: 2</i>
showbIntegralPrec :: Integral a => Int -> a -> Builder

-- | Shows a <i>non-negative</i> <a>Integral</a> number using the base
--   specified by the first argument, and the character representation
--   specified by the second.
--   
--   <i>Since: 2</i>
showbIntAtBase :: (Integral a, TextShow a) => a -> (Int -> Char) -> a -> Builder

-- | Show <i>non-negative</i> <a>Integral</a> numbers in base 2.
--   
--   <i>Since: 2</i>
showbBin :: (Integral a, TextShow a) => a -> Builder

-- | Show <i>non-negative</i> <a>Integral</a> numbers in base 16.
--   
--   <i>Since: 2</i>
showbHex :: (Integral a, TextShow a) => a -> Builder

-- | Show <i>non-negative</i> <a>Integral</a> numbers in base 8.
--   
--   <i>Since: 2</i>
showbOct :: (Integral a, TextShow a) => a -> Builder

-- | Convert a <a>Word</a> to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2</i>
showbWord :: Word -> Builder

-- | Convert a <a>Word8</a> to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2</i>
showbWord8 :: Word8 -> Builder

-- | Convert a <a>Word16</a> to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2</i>
showbWord16 :: Word16 -> Builder

-- | Convert a <a>Word32</a> to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2</i>
showbWord32 :: Word32 -> Builder

-- | Convert a <a>Word64</a> to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2</i>
showbWord64 :: Word64 -> Builder
instance TextShow.Classes.TextShow GHC.Types.Int
instance TextShow.Classes.TextShow GHC.Int.Int8
instance TextShow.Classes.TextShow GHC.Int.Int16
instance TextShow.Classes.TextShow GHC.Int.Int32
instance TextShow.Classes.TextShow GHC.Int.Int64
instance TextShow.Classes.TextShow GHC.Integer.Type.Integer
instance TextShow.Classes.TextShow GHC.Types.Word
instance TextShow.Classes.TextShow GHC.Word.Word8
instance TextShow.Classes.TextShow GHC.Word.Word16
instance TextShow.Classes.TextShow GHC.Word.Word32
instance TextShow.Classes.TextShow GHC.Word.Word64


-- | Monomorphic <a>Show</a> function for <a>Fixed</a> values.
--   
--   <i>Since: 2</i>
module TextShow.Data.Fixed

-- | Convert a <a>Fixed</a> value to a <a>Builder</a>, where the first
--   argument indicates whether to chop off trailing zeroes.
--   
--   <i>Since: 2</i>
showbFixed :: HasResolution a => Bool -> Fixed a -> Builder
instance Data.Fixed.HasResolution a => TextShow.Classes.TextShow (Data.Fixed.Fixed a)


-- | Monomorphic <a>TextShow</a> function for <a>Ratio</a> values.
--   
--   <i>Since: 2</i>
module TextShow.Data.Ratio

-- | Convert a <a>Ratio</a> to a <a>Builder</a> with the given precedence.
--   
--   Note that on <tt>base-4.3.0.0</tt>, this function must have a
--   <tt>(<a>Show</a> a, <a>Integral</a> a)</tt> constraint instead of just
--   a <tt>(<a>Show</a> a)</tt> constraint.
--   
--   <i>Since: 2</i>
showbRatioPrec :: TextShow a => Int -> Ratio a -> Builder
instance TextShow.Classes.TextShow a => TextShow.Classes.TextShow (GHC.Real.Ratio a)
instance TextShow.Classes.TextShow1 GHC.Real.Ratio


-- | Monomorphic <a>TextShow</a> function for <a>Void</a> values.
--   
--   <i>Since: 2</i>
module TextShow.Data.Void

-- | Since <a>Void</a> values logically don't exist, attempting to convert
--   one to a <a>Builder</a> will never terminate.
--   
--   <i>Since: 2</i>
showbVoid :: Void -> Builder
instance TextShow.Classes.TextShow Data.Void.Void


-- | Monomorphic <a>TextShow</a> functions for pointer types used in the
--   Haskell Foreign Function Interface (FFI).
--   
--   <i>Since: 2</i>
module TextShow.Foreign.Ptr

-- | Convert a <a>Ptr</a> to a <a>Builder</a>. Note that this does not
--   require the parameterized type to be an instance of <a>Show</a>
--   itself.
--   
--   <i>Since: 2</i>
showbPtr :: Ptr a -> Builder

-- | Convert a <a>FunPtr</a> to a <a>Builder</a>. Note that this does not
--   require the parameterized type to be an instance of <a>Show</a>
--   itself.
--   
--   <i>Since: 2</i>
showbFunPtr :: FunPtr a -> Builder

-- | Convert an <a>IntPtr</a> to a <a>Builder</a> with the given
--   precedence.
--   
--   <i>Since: 2</i>
showbIntPtrPrec :: Int -> IntPtr -> Builder

-- | Convert a <a>WordPtr</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbWordPtr :: WordPtr -> Builder

-- | Convert a <a>ForeignPtr</a> to a <a>Builder</a>. Note that this does
--   not require the parameterized type to be an instance of <a>Show</a>
--   itself.
--   
--   <i>Since: 2</i>
showbForeignPtr :: ForeignPtr a -> Builder
instance TextShow.Classes.TextShow (GHC.Ptr.Ptr a)
instance TextShow.Classes.TextShow1 GHC.Ptr.Ptr
instance TextShow.Classes.TextShow (GHC.Ptr.FunPtr a)
instance TextShow.Classes.TextShow1 GHC.Ptr.FunPtr
instance TextShow.Classes.TextShow Foreign.Ptr.IntPtr
instance TextShow.Classes.TextShow Foreign.Ptr.WordPtr
instance TextShow.Classes.TextShow (GHC.ForeignPtr.ForeignPtr a)
instance TextShow.Classes.TextShow1 GHC.ForeignPtr.ForeignPtr


-- | Optional <a>TextShow</a>, <a>TextShow1</a>, and <a>TextShow2</a>
--   instances for functions.
--   
--   <i>Since: 2</i>
module TextShow.Functions

-- | Convert a function to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbFunction :: (a -> b) -> Builder
instance TextShow.Classes.TextShow (a -> b)
instance TextShow.Classes.TextShow1 ((->) a)
instance TextShow.Classes.TextShow2 (->)


-- | Monomorphic <a>TextShow</a> function for <a>Fingerprint</a> values.
--   This module only exports functions if using <tt>base-4.4.0.0</tt> or
--   later.
--   
--   <i>Since: 2</i>
module TextShow.GHC.Fingerprint

-- | Convert a <a>Fingerprint</a> to a <a>Builder</a>. This function is
--   only available with <tt>base-4.4.0.0</tt> or later.
--   
--   <i>Since: 2</i>
showbFingerprint :: Fingerprint -> Builder
instance TextShow.Classes.TextShow GHC.Fingerprint.Type.Fingerprint


-- | Monomorphic <a>TextShow</a> function for <a>Natural</a>s.
--   
--   <i>Since: 2</i>
module TextShow.Numeric.Natural

-- | Convert a <a>Natural</a> to a <a>Builder</a> with the given
--   precedence.
--   
--   <i>Since: 2</i>
showbNaturalPrec :: Int -> Natural -> Builder
instance TextShow.Classes.TextShow GHC.Natural.Natural


-- | Monomorphic <a>TextShow</a> functions for <a>Exception</a>s.
--   
--   <i>Since: 2</i>
module TextShow.Control.Exception

-- | Convert a <a>SomeException</a> value to a <a>Builder</a> with the
--   given precedence.
--   
--   <i>Since: 2</i>
showbSomeExceptionPrec :: Int -> SomeException -> Builder

-- | Convert an <a>IOException</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbIOException :: IOException -> Builder

-- | Convert an <a>ArithException</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbArithException :: ArithException -> Builder

-- | Convert an <a>ArrayException</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbArrayException :: ArrayException -> Builder

-- | Convert an <a>AssertionFailed</a> exception to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbAssertionFailed :: AssertionFailed -> Builder

-- | Convert a <a>SomeAsyncException</a> value to a <a>Builder</a>. This
--   function is only available with <tt>base-4.7.0.0</tt> or later.
--   
--   <i>Since: 2</i>
showbSomeAsyncException :: SomeAsyncException -> Builder

-- | Convert an <a>AsyncException</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbAsyncException :: AsyncException -> Builder

-- | Convert a <a>NonTermination</a> exception to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbNonTermination :: NonTermination -> Builder

-- | Convert a <a>NestedAtomically</a> exception to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbNestedAtomically :: NestedAtomically -> Builder

-- | Convert a <a>BlockedIndefinitelyOnMVar</a> exception to a
--   <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbBlockedIndefinitelyOnMVar :: BlockedIndefinitelyOnMVar -> Builder

-- | Convert a <a>BlockedIndefinitelyOnSTM</a> exception to a
--   <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbBlockedIndefinitelyOnSTM :: BlockedIndefinitelyOnSTM -> Builder

-- | Convert an <a>AllocationLimitExceeded</a> exception to a
--   <a>Builder</a>. This function is only available with
--   <tt>base-4.8.0.0</tt> or later.
--   
--   <i>Since: 2</i>
showbAllocationLimitExceeded :: AllocationLimitExceeded -> Builder

-- | Convert a <a>TypeError</a> to a <a>Builder</a>. This function is only
--   available with <tt>base-4.9.0.0</tt> or later.
--   
--   <i>Since: 3</i>
showbTypeError :: TypeError -> Builder

-- | Convert a <a>Deadlock</a> exception to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbDeadlock :: Deadlock -> Builder

-- | Convert a <a>NoMethodError</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbNoMethodError :: NoMethodError -> Builder

-- | Convert a <a>PatternMatchFail</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbPatternMatchFail :: PatternMatchFail -> Builder

-- | Convert a <a>RecConError</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbRecConError :: RecConError -> Builder

-- | Convert a <a>RecSelError</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbRecSelError :: RecSelError -> Builder

-- | Convert a <a>RecUpdError</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbRecUpdError :: RecUpdError -> Builder

-- | Convert an <a>ErrorCall</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbErrorCall :: ErrorCall -> Builder

-- | Convert a <a>MaskingState</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbMaskingState :: MaskingState -> Builder
instance TextShow.Classes.TextShow GHC.IO.MaskingState
instance TextShow.Classes.TextShow GHC.Exception.SomeException
instance TextShow.Classes.TextShow GHC.IO.Exception.IOException
instance TextShow.Classes.TextShow GHC.Exception.ArithException
instance TextShow.Classes.TextShow GHC.IO.Exception.ArrayException
instance TextShow.Classes.TextShow GHC.IO.Exception.AssertionFailed
instance TextShow.Classes.TextShow GHC.IO.Exception.SomeAsyncException
instance TextShow.Classes.TextShow GHC.IO.Exception.AsyncException
instance TextShow.Classes.TextShow Control.Exception.Base.NonTermination
instance TextShow.Classes.TextShow Control.Exception.Base.NestedAtomically
instance TextShow.Classes.TextShow GHC.IO.Exception.BlockedIndefinitelyOnMVar
instance TextShow.Classes.TextShow GHC.IO.Exception.BlockedIndefinitelyOnSTM
instance TextShow.Classes.TextShow GHC.IO.Exception.AllocationLimitExceeded
instance TextShow.Classes.TextShow Control.Exception.Base.TypeError
instance TextShow.Classes.TextShow GHC.IO.Exception.Deadlock
instance TextShow.Classes.TextShow Control.Exception.Base.NoMethodError
instance TextShow.Classes.TextShow Control.Exception.Base.PatternMatchFail
instance TextShow.Classes.TextShow Control.Exception.Base.RecConError
instance TextShow.Classes.TextShow Control.Exception.Base.RecSelError
instance TextShow.Classes.TextShow Control.Exception.Base.RecUpdError
instance TextShow.Classes.TextShow GHC.Exception.ErrorCall


-- | Monomorphic <tt>TextShow</tt> function for <a>Bool</a> values.
--   
--   <i>Since: 2</i>
module TextShow.Data.Bool

-- | Convert a <a>Bool</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbBool :: Bool -> Builder
instance TextShow.Classes.TextShow GHC.Types.Bool


-- | Monomorphic <a>TextShow</a> functions for <a>Char</a> and
--   <a>String</a>.
--   
--   <i>Since: 2</i>
module TextShow.Data.Char

-- | Convert a <a>Char</a> to a <a>Builder</a> (surrounded by single
--   quotes).
--   
--   <i>Since: 2</i>
showbChar :: Char -> Builder

-- | Convert a <a>Char</a> to a <a>Builder</a> (without single quotes).
--   
--   <i>Since: 2</i>
showbLitChar :: Char -> Builder

-- | Convert a <a>String</a> to a <a>Builder</a> (surrounded by double
--   quotes).
--   
--   <i>Since: 2</i>
showbString :: String -> Builder

-- | Convert a <a>String</a> to a <a>Builder</a> (without double quotes).
--   
--   <i>Since: 2</i>
showbLitString :: String -> Builder

-- | Convert a <a>GeneralCategory</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbGeneralCategory :: GeneralCategory -> Builder

-- | A table of ASCII control characters that needs to be escaped with a
--   backslash.
--   
--   <i>Since: 2</i>
asciiTabB :: Array Int Builder
instance TextShow.Classes.TextShow GHC.Unicode.GeneralCategory
instance TextShow.Classes.TextShow GHC.Types.Char


-- | Exports <a>showbListWith</a>, <a>showtListWith</a>, and
--   <a>showtlListWith</a>.
module TextShow.Data.List

-- | Converts a list of values into a <a>Builder</a> in which the values
--   are surrounded by square brackets and each value is separated by a
--   comma. The function argument controls how each element is shown.
--   
--   <tt><a>showbListWith</a> <a>showb</a></tt> is the default
--   implementation of <a>showbList</a> save for a few special cases (e.g.,
--   <a>String</a>).
--   
--   <i>Since: 2</i>
showbListWith :: (a -> Builder) -> [a] -> Builder

-- | Converts a list of values into a strict <a>Text</a> in which the
--   values are surrounded by square brackets and each value is separated
--   by a comma. The function argument controls how each element is shown.
--   
--   <i>Since: 3.4</i>
showtListWith :: (a -> Text) -> [a] -> Text

-- | Converts a list of values into a lazy <a>Text</a> in which the values
--   are surrounded by square brackets and each value is separated by a
--   comma. The function argument controls how each element is shown.
--   
--   <i>Since: 3.4</i>
showtlListWith :: (a -> Text) -> [a] -> Text
instance TextShow.Classes.TextShow a => TextShow.Classes.TextShow [a]
instance TextShow.Classes.TextShow1 []


-- | Monomorphic <a>TextShow</a> functions for <a>Const</a> and
--   <a>ZipList</a>.
--   
--   <i>Since: 2</i>
module TextShow.Control.Applicative

-- | Convert a <a>Const</a> value to a <a>Builder</a> with the given show
--   function and precedence.
--   
--   <i>Since: 3</i>
liftShowbConstPrec :: (Int -> a -> Builder) -> Int -> Const a b -> Builder

-- | Convert a <a>ZipList</a> to a <a>Builder</a> with the given show
--   function and precedence.
--   
--   <i>Since: 3</i>
liftShowbZipListPrec :: ([a] -> Builder) -> Int -> ZipList a -> Builder
instance TextShow.Classes.TextShow1 Control.Applicative.ZipList
instance TextShow.Classes.TextShow a0 => TextShow.Classes.TextShow (Control.Applicative.ZipList a0)
instance TextShow.Classes.TextShow a => TextShow.Classes.TextShow (Data.Functor.Const.Const a b)
instance TextShow.Classes.TextShow a => TextShow.Classes.TextShow1 (Data.Functor.Const.Const a)
instance TextShow.Classes.TextShow2 Data.Functor.Const.Const


-- | Monomorphic <a>TextShow</a> functions for data types in the
--   <tt>bytestring</tt> library.
--   
--   <i>Since: 2</i>
module TextShow.Data.ByteString

-- | Convert a strict <a>ByteString</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbByteStringStrict :: ByteString -> Builder

-- | Convert a lazy <a>ByteString</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbByteStringLazy :: ByteString -> Builder

-- | Convert a lazy <a>ByteString</a> to a <a>Builder</a> with the given
--   precedence.
--   
--   With <tt>bytestring-0.10.0.0</tt> or later, this function ignores the
--   precedence argument, since lazy <a>ByteString</a>s are printed out
--   identically to <a>String</a>s. On earlier versions of
--   <tt>bytestring</tt>, however, lazy <a>ByteString</a>s can be printed
--   with parentheses (e.g., <tt>Chunk "example" Empty</tt> vs. <tt>(Chunk
--   "example" Empty)</tt>) depending on the precedence.
--   
--   <i>Since: 2</i>
showbByteStringLazyPrec :: Int -> ByteString -> Builder

-- | Convert a <a>ShortByteString</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbShortByteString :: ShortByteString -> Builder
instance TextShow.Classes.TextShow Data.ByteString.Internal.ByteString
instance TextShow.Classes.TextShow Data.ByteString.Lazy.Internal.ByteString
instance TextShow.Classes.TextShow Data.ByteString.Short.Internal.ShortByteString


-- | Monomorphic <a>TextShow</a> functions for data types in the
--   <tt>Typeable</tt> module.
--   
--   <i>Since: 2</i>
module TextShow.Data.Typeable

-- | Convert a <a>TyCon</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbTyCon :: TyCon -> Builder

-- | Convert a <a>TypeRep</a> to a <a>Builder</a> with the given
--   precedence.
--   
--   <i>Since: 2</i>
showbTypeRepPrec :: Int -> TypeRep -> Builder

-- | Convert a <a>TrName</a> to a <a>Builder</a>. This function is only
--   available with <tt>base-4.9.0.0</tt> or later.
--   
--   <i>Since: 3</i>
showbTrName :: TrName -> Builder

-- | Convert a <a>Module</a> to a <a>Builder</a>. This function is only
--   available with <tt>base-4.9.0.0</tt> or later.
--   
--   <i>Since: 3</i>
showbModule :: Module -> Builder
instance TextShow.Classes.TextShow Data.Typeable.Internal.TypeRep
instance TextShow.Classes.TextShow GHC.Types.TyCon
instance TextShow.Classes.TextShow GHC.Types.TrName
instance TextShow.Classes.TextShow GHC.Types.Module


-- | Monomorphic <a>TextShow</a> function for <a>Dynamic</a>.
--   
--   <i>Since: 2</i>
module TextShow.Data.Dynamic

-- | Convert a <a>Dynamic</a> value to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbDynamic :: Dynamic -> Builder
instance TextShow.Classes.TextShow Data.Dynamic.Dynamic


-- | Monomorphic <a>TextShow</a> functions for data types in the
--   <tt>GHC.TypeLits</tt> module. This module only exports functions if
--   using <tt>base-4.6.0.0</tt> or later.
--   
--   <i>Since: 2</i>
module TextShow.GHC.TypeLits

-- | Convert a <a>SomeNat</a> value to a <a>Builder</a> with the given
--   precedence. This function is only available with <tt>base-4.7.0.0</tt>
--   or later.
--   
--   <i>Since: 2</i>
showbSomeNatPrec :: Int -> SomeNat -> Builder

-- | Convert a <a>SomeSymbol</a> value to a <a>Builder</a> with the given
--   precedence. This function is only available with <tt>base-4.7.0.0</tt>
--   or later.
--   
--   <i>Since: 2</i>
showbSomeSymbol :: SomeSymbol -> Builder
instance TextShow.Classes.TextShow GHC.TypeLits.SomeNat
instance TextShow.Classes.TextShow GHC.TypeLits.SomeSymbol


-- | Monomorphic <a>TextShow</a> functions for data types in the
--   <tt>Data.Data</tt> module.
--   
--   <i>Since: 2</i>
module TextShow.Data.Data

-- | Convert a <a>Constr</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbConstr :: Constr -> Builder

-- | Convert a <a>ConstrRep</a> to a <a>Builder</a> with the given
--   precedence.
--   
--   <i>Since: 2</i>
showbConstrRepPrec :: Int -> ConstrRep -> Builder

-- | Convert a <a>DataRep</a> to a <a>Builder</a> with the given
--   precedence.
--   
--   <i>Since: 2</i>
showbDataRepPrec :: Int -> DataRep -> Builder

-- | Convert a <a>DataType</a> to a <a>Builder</a> with the given
--   precedence.
--   
--   <i>Since: 2</i>
showbDataTypePrec :: Int -> DataType -> Builder

-- | Convert a <a>Fixity</a> value to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbFixity :: Fixity -> Builder
instance TextShow.Classes.TextShow Data.Data.Fixity
instance TextShow.Classes.TextShow Data.Data.Constr
instance TextShow.Classes.TextShow Data.Data.ConstrRep
instance TextShow.Classes.TextShow Data.Data.DataRep
instance TextShow.Classes.TextShow Data.Data.DataType


-- | Monomorphic <tt>TextShow</tt> function for <a>Either</a> values.
--   
--   <i>Since: 2</i>
module TextShow.Data.Either

-- | Convert a <a>Either</a> value to a <a>Builder</a> with the given show
--   functions and precedence.
--   
--   <i>Since: 3</i>
liftShowbEitherPrec2 :: (Int -> a -> Builder) -> (Int -> b -> Builder) -> Int -> Either a b -> Builder
instance TextShow.Classes.TextShow2 Data.Either.Either
instance TextShow.Classes.TextShow a0 => TextShow.Classes.TextShow1 (Data.Either.Either a0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0) => TextShow.Classes.TextShow (Data.Either.Either a0 b0)


-- | Monomorphic <a>TextShow</a> functions for floating-point types.
--   
--   <i>Since: 2</i>
module TextShow.Data.Floating

-- | Convert a <a>RealFloat</a> value to a <a>Builder</a> with the given
--   precedence.
--   
--   <i>Since: 2</i>
showbRealFloatPrec :: RealFloat a => Int -> a -> Builder

-- | Convert a <a>Float</a> to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2</i>
showbFloatPrec :: Int -> Float -> Builder

-- | Convert a <a>Double</a> to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2</i>
showbDoublePrec :: Int -> Double -> Builder

-- | Show a signed <a>RealFloat</a> value using scientific (exponential)
--   notation (e.g. <tt>2.45e2</tt>, <tt>1.5e-3</tt>).
--   
--   In the call <tt><a>showbEFloat</a> digs val</tt>, if <tt>digs</tt> is
--   <a>Nothing</a>, the value is shown to full precision; if <tt>digs</tt>
--   is <tt><a>Just</a> d</tt>, then at most <tt>d</tt> digits after the
--   decimal point are shown.
--   
--   <i>Since: 2</i>
showbEFloat :: RealFloat a => Maybe Int -> a -> Builder

-- | Show a signed <a>RealFloat</a> value using standard decimal notation
--   (e.g. <tt>245000</tt>, <tt>0.0015</tt>).
--   
--   In the call <tt><a>showbFFloat</a> digs val</tt>, if <tt>digs</tt> is
--   <a>Nothing</a>, the value is shown to full precision; if <tt>digs</tt>
--   is <tt><a>Just</a> d</tt>, then at most <tt>d</tt> digits after the
--   decimal point are shown.
--   
--   <i>Since: 2</i>
showbFFloat :: RealFloat a => Maybe Int -> a -> Builder

-- | Show a signed <a>RealFloat</a> value using standard decimal notation
--   for arguments whose absolute value lies between <tt>0.1</tt> and
--   <tt>9,999,999</tt>, and scientific notation otherwise.
--   
--   In the call <tt><a>showbGFloat</a> digs val</tt>, if <tt>digs</tt> is
--   <a>Nothing</a>, the value is shown to full precision; if <tt>digs</tt>
--   is <tt><a>Just</a> d</tt>, then at most <tt>d</tt> digits after the
--   decimal point are shown.
--   
--   <i>Since: 2</i>
showbGFloat :: RealFloat a => Maybe Int -> a -> Builder

-- | Show a signed <a>RealFloat</a> value using standard decimal notation
--   (e.g. <tt>245000</tt>, <tt>0.0015</tt>).
--   
--   This behaves as <tt>showFFloat</tt>, except that a decimal point is
--   always guaranteed, even if not needed.
--   
--   <i>Since: 2</i>
showbFFloatAlt :: RealFloat a => Maybe Int -> a -> Builder

-- | Show a signed <a>RealFloat</a> value using standard decimal notation
--   for arguments whose absolute value lies between <tt>0.1</tt> and
--   <tt>9,999,999</tt>, and scientific notation otherwise.
--   
--   This behaves as <tt>showFFloat</tt>, except that a decimal point is
--   always guaranteed, even if not needed.
--   
--   <i>Since: 2</i>
showbGFloatAlt :: RealFloat a => Maybe Int -> a -> Builder

-- | Convert an <a>FPFormat</a> value to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbFPFormat :: FPFormat -> Builder

-- | Control the rendering of floating point numbers.
data FPFormat :: *

-- | Scientific notation (e.g. <tt>2.3e123</tt>).
Exponent :: FPFormat

-- | Standard decimal notation.
Fixed :: FPFormat

-- | Use decimal notation for values between <tt>0.1</tt> and
--   <tt>9,999,999</tt>, and scientific notation otherwise.
Generic :: FPFormat

-- | Like <a>formatRealFloatAltB</a>, except that the decimal is only shown
--   for arguments whose absolute value is between <tt>0.1</tt> and
--   <tt>9,999,999</tt>.
--   
--   <i>Since: 2</i>
formatRealFloatB :: RealFloat a => FPFormat -> Maybe Int -> a -> Builder

-- | Converts a <a>RealFloat</a> value to a Builder, specifying if a
--   decimal point should always be shown.
--   
--   <i>Since: 2</i>
formatRealFloatAltB :: RealFloat a => FPFormat -> Maybe Int -> Bool -> a -> Builder
instance TextShow.Classes.TextShow Data.Text.Lazy.Builder.RealFloat.FPFormat
instance TextShow.Classes.TextShow GHC.Types.Float
instance TextShow.Classes.TextShow GHC.Types.Double


-- | Monomorphic <a>TextShow</a> function for <tt>Ratio</tt> values.
--   
--   Due to use of the <tt>DatatypeContexts</tt> extension, there is no
--   <tt>TextShow1 Complex</tt> instance on <tt>base-4.3.0.0</tt>.
--   
--   <i>Since: 2</i>
module TextShow.Data.Complex

-- | Convert a <a>Complex</a> value to a <a>Builder</a> with the given
--   precedence.
--   
--   Note that on <tt>base-4.3.0.0</tt>, this function must have a
--   <tt>(<a>TextShow</a> a, <a>RealFloat</a> a)</tt> constraint instead of
--   just a <tt>(<a>TextShow</a> a)</tt> constraint.
--   
--   <i>Since: 2</i>
showbComplexPrec :: TextShow a => Int -> Complex a -> Builder
instance TextShow.Classes.TextShow1 Data.Complex.Complex
instance TextShow.Classes.TextShow a => TextShow.Classes.TextShow (Data.Complex.Complex a)


-- | Monomorphic <a>TextShow</a> functions for Haskell newtypes
--   corresponding to C types in the Foreign Function Interface (FFI).
--   
--   <i>Since: 2</i>
module TextShow.Foreign.C.Types

-- | Convert a <a>CChar</a> to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2</i>
showbCCharPrec :: Int -> CChar -> Builder

-- | Convert a <a>CSChar</a> to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2</i>
showbCSCharPrec :: Int -> CSChar -> Builder

-- | Convert a <a>CUChar</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbCUChar :: CUChar -> Builder

-- | Convert a <a>CShort</a> to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2</i>
showbCShortPrec :: Int -> CShort -> Builder

-- | Convert a <a>CUShort</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbCUShort :: CUShort -> Builder

-- | Convert a <a>CInt</a> to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2</i>
showbCIntPrec :: Int -> CInt -> Builder

-- | Convert a <a>CUInt</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbCUInt :: CUInt -> Builder

-- | Convert a <a>CLong</a> to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2</i>
showbCLongPrec :: Int -> CLong -> Builder

-- | Convert a <a>CULong</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbCULong :: CULong -> Builder

-- | Convert a <a>CPtrdiff</a> to a <a>Builder</a> with the given
--   precedence.
--   
--   <i>Since: 2</i>
showbCPtrdiffPrec :: Int -> CPtrdiff -> Builder

-- | Convert a <a>CSize</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbCSize :: CSize -> Builder

-- | Convert a <a>CWchar</a> to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2</i>
showbCWcharPrec :: Int -> CWchar -> Builder

-- | Convert a <a>CSigAtomic</a> to a <a>Builder</a> with the given
--   precedence.
--   
--   <i>Since: 2</i>
showbCSigAtomicPrec :: Int -> CSigAtomic -> Builder

-- | Convert a <a>CLLong</a> to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2</i>
showbCLLongPrec :: Int -> CLLong -> Builder

-- | Convert a <a>CULLong</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbCULLong :: CULLong -> Builder

-- | Convert a <a>CIntPtr</a> to a <a>Builder</a> with the given
--   precedence.
--   
--   <i>Since: 2</i>
showbCIntPtrPrec :: Int -> CIntPtr -> Builder

-- | Convert a <a>CUIntPtr</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbCUIntPtr :: CUIntPtr -> Builder

-- | Convert a <a>CIntMax</a> to a <a>Builder</a> with the given
--   precedence.
--   
--   <i>Since: 2</i>
showbCIntMaxPrec :: Int -> CIntMax -> Builder

-- | Convert a <a>CUIntMax</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbCUIntMax :: CUIntMax -> Builder

-- | Convert a <a>CClock</a> to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2</i>
showbCClockPrec :: Int -> CClock -> Builder

-- | Convert a <a>CTime</a> to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2</i>
showbCTimePrec :: Int -> CTime -> Builder

-- | Convert a <a>CUSeconds</a> value to a <a>Builder</a>. This function is
--   only available with <tt>base-4.4.0.0</tt> or later.
--   
--   <i>Since: 2</i>
showbCUSeconds :: CUSeconds -> Builder

-- | Convert a <a>CSUSeconds</a> value to a <a>Builder</a> with the given
--   precedence. This function is only available with <tt>base-4.4.0.0</tt>
--   or later.
--   
--   <i>Since: 2</i>
showbCSUSecondsPrec :: Int -> CSUSeconds -> Builder

-- | Convert a <a>CFloat</a> to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2</i>
showbCFloatPrec :: Int -> CFloat -> Builder

-- | Convert a <a>CDouble</a> to a <a>Builder</a> with the given
--   precedence.
--   
--   <i>Since: 2</i>
showbCDoublePrec :: Int -> CDouble -> Builder
instance TextShow.Classes.TextShow Foreign.C.Types.CChar
instance TextShow.Classes.TextShow Foreign.C.Types.CSChar
instance TextShow.Classes.TextShow Foreign.C.Types.CUChar
instance TextShow.Classes.TextShow Foreign.C.Types.CShort
instance TextShow.Classes.TextShow Foreign.C.Types.CUShort
instance TextShow.Classes.TextShow Foreign.C.Types.CInt
instance TextShow.Classes.TextShow Foreign.C.Types.CUInt
instance TextShow.Classes.TextShow Foreign.C.Types.CLong
instance TextShow.Classes.TextShow Foreign.C.Types.CULong
instance TextShow.Classes.TextShow Foreign.C.Types.CPtrdiff
instance TextShow.Classes.TextShow Foreign.C.Types.CSize
instance TextShow.Classes.TextShow Foreign.C.Types.CWchar
instance TextShow.Classes.TextShow Foreign.C.Types.CSigAtomic
instance TextShow.Classes.TextShow Foreign.C.Types.CLLong
instance TextShow.Classes.TextShow Foreign.C.Types.CULLong
instance TextShow.Classes.TextShow Foreign.C.Types.CIntPtr
instance TextShow.Classes.TextShow Foreign.C.Types.CUIntPtr
instance TextShow.Classes.TextShow Foreign.C.Types.CIntMax
instance TextShow.Classes.TextShow Foreign.C.Types.CUIntMax
instance TextShow.Classes.TextShow Foreign.C.Types.CClock
instance TextShow.Classes.TextShow Foreign.C.Types.CTime
instance TextShow.Classes.TextShow Foreign.C.Types.CUSeconds
instance TextShow.Classes.TextShow Foreign.C.Types.CSUSeconds
instance TextShow.Classes.TextShow Foreign.C.Types.CFloat
instance TextShow.Classes.TextShow Foreign.C.Types.CDouble


-- | Monomorphic <a>TextShow</a> functions for concurrency-related data
--   types.
--   
--   <i>Since: 2</i>
module TextShow.Control.Concurrent

-- | Convert a <a>ThreadId</a> to a <a>Builder</a> with the given
--   precedence.
--   
--   <i>Since: 2</i>
showbThreadIdPrec :: Int -> ThreadId -> Builder

-- | Convert a <a>ThreadStatus</a> to a <a>Builder</a> with the given
--   precedence.
--   
--   <i>Since: 2</i>
showbThreadStatusPrec :: Int -> ThreadStatus -> Builder

-- | Convert a <a>BlockReason</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbBlockReason :: BlockReason -> Builder
instance TextShow.Classes.TextShow GHC.Conc.Sync.BlockReason
instance TextShow.Classes.TextShow GHC.Conc.Sync.ThreadStatus
instance TextShow.Classes.TextShow GHC.Conc.Sync.ThreadId


-- | Monomorphic <a>TextShow</a> functions for Haskell equivalents of POSIX
--   data types. Note that these functions are only available if the
--   operating system supports them, so some OSes (e.g., Windows) will not
--   be able to use all of the functions in this module.
--   
--   <i>Since: 2</i>
module TextShow.System.Posix.Types

-- | Convert an <a>Fd</a> to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2</i>
showbFdPrec :: Int -> Fd -> Builder

-- | Convert a <a>CDev</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbCDev :: CDev -> Builder

-- | Convert a <a>CIno</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbCIno :: CIno -> Builder

-- | Convert a <a>CMode</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbCMode :: CMode -> Builder

-- | Convert a <a>COff</a> to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2</i>
showbCOffPrec :: Int -> COff -> Builder

-- | Convert a <a>CPid</a> to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2</i>
showbCPidPrec :: Int -> CPid -> Builder

-- | Convert a <a>CSsize</a> to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2</i>
showbCSsizePrec :: Int -> CSsize -> Builder

-- | Convert a <a>CGid</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbCGid :: CGid -> Builder

-- | Convert a <a>CNlink</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbCNlink :: CNlink -> Builder

-- | Convert a <a>CUid</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbCUid :: CUid -> Builder

-- | Convert a <a>CCc</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbCCc :: CCc -> Builder

-- | Convert a <a>CSpeed</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbCSpeed :: CSpeed -> Builder

-- | Convert a <a>CTcflag</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbCTcflag :: CTcflag -> Builder

-- | Convert a <a>CRLim</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbCRLim :: CRLim -> Builder
instance TextShow.Classes.TextShow System.Posix.Types.CDev
instance TextShow.Classes.TextShow System.Posix.Types.CIno
instance TextShow.Classes.TextShow System.Posix.Types.CMode
instance TextShow.Classes.TextShow System.Posix.Types.COff
instance TextShow.Classes.TextShow System.Posix.Types.CPid
instance TextShow.Classes.TextShow System.Posix.Types.CSsize
instance TextShow.Classes.TextShow System.Posix.Types.CGid
instance TextShow.Classes.TextShow System.Posix.Types.CNlink
instance TextShow.Classes.TextShow System.Posix.Types.CUid
instance TextShow.Classes.TextShow System.Posix.Types.CCc
instance TextShow.Classes.TextShow System.Posix.Types.CSpeed
instance TextShow.Classes.TextShow System.Posix.Types.CTcflag
instance TextShow.Classes.TextShow System.Posix.Types.CRLim
instance TextShow.Classes.TextShow System.Posix.Types.Fd


-- | Monomorphic <a>TextShow</a> function for <a>Product</a>.
--   
--   <i>Since: 3</i>
module TextShow.Data.Functor.Product

-- | Convert a <a>Product</a> value to a <a>Builder</a> with the given show
--   functions and precedence.
--   
--   <i>Since: 3</i>
liftShowbProductPrec :: (TextShow1 f, TextShow1 g) => (Int -> a -> Builder) -> ([a] -> Builder) -> Int -> Product f g a -> Builder
instance (TextShow.Classes.TextShow1 f0, TextShow.Classes.TextShow1 g0) => TextShow.Classes.TextShow1 (Data.Functor.Product.Product f0 g0)
instance (TextShow.Classes.TextShow1 f, TextShow.Classes.TextShow1 g, TextShow.Classes.TextShow a) => TextShow.Classes.TextShow (Data.Functor.Product.Product f g a)


-- | Monomorphic <a>TextShow</a> function for <a>Sum</a>.
--   
--   <i>Since: 3</i>
module TextShow.Data.Functor.Sum

-- | Convert a <a>Sum</a> value to a <a>Builder</a> with the given show
--   functions and precedence.
--   
--   <i>Since: 3</i>
liftShowbSumPrec :: (TextShow1 f, TextShow1 g) => (Int -> a -> Builder) -> ([a] -> Builder) -> Int -> Sum f g a -> Builder
instance (TextShow.Classes.TextShow1 f0, TextShow.Classes.TextShow1 g0) => TextShow.Classes.TextShow1 (Data.Functor.Sum.Sum f0 g0)
instance (TextShow.Classes.TextShow1 f, TextShow.Classes.TextShow1 g, TextShow.Classes.TextShow a) => TextShow.Classes.TextShow (Data.Functor.Sum.Sum f g a)


-- | Monomorphic <tt>TextShow</tt> function for <a>NonEmpty</a> lists.
--   
--   <i>Since: 3</i>
module TextShow.Data.List.NonEmpty

-- | Convert a <a>NonEmpty</a> value to a <a>Builder</a> with the given
--   show functions and precedence.
--   
--   <i>Since: 3</i>
liftShowbNonEmptyPrec :: (Int -> a -> Builder) -> ([a] -> Builder) -> Int -> NonEmpty a -> Builder
instance TextShow.Classes.TextShow1 Data.List.NonEmpty.NonEmpty
instance TextShow.Classes.TextShow a0 => TextShow.Classes.TextShow (Data.List.NonEmpty.NonEmpty a0)


-- | Monomorphic <tt>TextShow</tt> function for <a>Maybe</a> values.
--   
--   <i>Since: 2</i>
module TextShow.Data.Maybe

-- | Convert a <a>Maybe</a> value to a <a>Builder</a> with the given show
--   function and precedence.
--   
--   <i>Since: 3</i>
liftShowbMaybePrec :: (Int -> a -> Builder) -> Int -> Maybe a -> Builder
instance TextShow.Classes.TextShow1 GHC.Base.Maybe
instance TextShow.Classes.TextShow a0 => TextShow.Classes.TextShow (GHC.Base.Maybe a0)


-- | Monomorphic <a>Show</a> functions for <a>Monoid</a>-related newtypes.
--   
--   <i>Since: 2</i>
module TextShow.Data.Monoid

-- | Convert an <a>All</a> value to a <a>Builder</a> with the given
--   precedence.
--   
--   <i>Since: 2</i>
showbAllPrec :: Int -> All -> Builder

-- | Convert an <a>Any</a> value to a <a>Builder</a> with the given
--   precedence.
--   
--   <i>Since: 2</i>
showbAnyPrec :: Int -> Any -> Builder

-- | Convert a <a>Dual</a> value to a <a>Builder</a> with the given show
--   function and precedence.
--   
--   <i>Since: 3</i>
liftShowbDualPrec :: (Int -> a -> Builder) -> Int -> Dual a -> Builder

-- | Convert a <a>First</a> value to a <a>Builder</a> with the given show
--   function and precedence.
--   
--   <i>Since: 3</i>
liftShowbFirstPrec :: (Int -> a -> Builder) -> Int -> First a -> Builder

-- | Convert a <a>Last</a> value to a <a>Builder</a> with the given show
--   function and precedence.
--   
--   <i>Since: 3</i>
liftShowbLastPrec :: (Int -> a -> Builder) -> Int -> Last a -> Builder

-- | Convert a <a>Product</a> value to a <a>Builder</a> with the given show
--   function and precedence.
--   
--   <i>Since: 3</i>
liftShowbProductPrec :: (Int -> a -> Builder) -> Int -> Product a -> Builder

-- | Convert a <a>Sum</a> value to a <a>Builder</a> with the given show
--   function and precedence.
--   
--   <i>Since: 3</i>
liftShowbSumPrec :: (Int -> a -> Builder) -> Int -> Sum a -> Builder

-- | Convert an <a>Alt</a> value to a <a>Builder</a> with the given
--   precedence. This function is only available with <tt>base-4.8.0.0</tt>
--   or later.
--   
--   <i>Since: 2</i>
showbAltPrec :: TextShow (f a) => Int -> Alt f a -> Builder

-- | Convert an <a>Alt</a> value to a <a>Builder</a> with the given show
--   function and precedence. This function is only available with
--   <tt>base-4.8.0.0</tt> or later.
--   
--   <i>Since: 3</i>
liftShowbAltPrec :: TextShow1 f => (Int -> a -> Builder) -> ([a] -> Builder) -> Int -> Alt f a -> Builder
instance TextShow.Classes.TextShow1 f0 => TextShow.Classes.TextShow1 (Data.Monoid.Alt f0)
instance TextShow.Classes.TextShow1 Data.Monoid.Sum
instance TextShow.Classes.TextShow (f a) => TextShow.Classes.TextShow (Data.Monoid.Alt f a)
instance TextShow.Classes.TextShow a0 => TextShow.Classes.TextShow (Data.Monoid.Sum a0)
instance TextShow.Classes.TextShow1 Data.Monoid.Product
instance TextShow.Classes.TextShow a0 => TextShow.Classes.TextShow (Data.Monoid.Product a0)
instance TextShow.Classes.TextShow1 Data.Monoid.Last
instance TextShow.Classes.TextShow a0 => TextShow.Classes.TextShow (Data.Monoid.Last a0)
instance TextShow.Classes.TextShow1 Data.Monoid.First
instance TextShow.Classes.TextShow a0 => TextShow.Classes.TextShow (Data.Monoid.First a0)
instance TextShow.Classes.TextShow1 Data.Monoid.Dual
instance TextShow.Classes.TextShow a0 => TextShow.Classes.TextShow (Data.Monoid.Dual a0)
instance TextShow.Classes.TextShow Data.Monoid.Any
instance TextShow.Classes.TextShow Data.Monoid.All


-- | Monomorphic <tt>TextShow</tt> functions for <a>Ordering</a> and
--   <a>Down</a>.
--   
--   <i>Since: 2</i>
module TextShow.Data.Ord

-- | Convert a <a>Ordering</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbOrdering :: Ordering -> Builder

-- | Convert a <a>Down</a> value to a <a>Builder</a> with the given show
--   function and precedence.
--   
--   <i>Since: 3</i>
liftShowbDownPrec :: (Int -> a -> Builder) -> Int -> Down a -> Builder
instance TextShow.Classes.TextShow1 Data.Ord.Down
instance TextShow.Classes.TextShow a0 => TextShow.Classes.TextShow (Data.Ord.Down a0)
instance TextShow.Classes.TextShow GHC.Types.Ordering


-- | Monomorphic <a>TextShow</a> function for <a>Proxy</a> values.
--   
--   <i>Since: 2</i>
module TextShow.Data.Proxy

-- | Convert a <a>Proxy</a> type to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbProxy :: Proxy s -> Builder
instance TextShow.Classes.TextShow1 Data.Proxy.Proxy
instance forall k (s :: k). TextShow.Classes.TextShow (Data.Proxy.Proxy s)


-- | Monomorphic <tt>TextShow</tt> functions for data types in the
--   <a>Data.Semigroup</a> module.
--   
--   <i>Since: 3</i>
module TextShow.Data.Semigroup

-- | Convert a <a>Min</a> value to a <a>Builder</a> with the given show
--   function and precedence.
--   
--   <i>Since: 3</i>
liftShowbMinPrec :: (Int -> a -> Builder) -> Int -> Min a -> Builder

-- | Convert a <a>Max</a> value to a <a>Builder</a> with the given show
--   function and precedence.
--   
--   <i>Since: 3</i>
liftShowbMaxPrec :: (Int -> a -> Builder) -> Int -> Max a -> Builder

-- | Convert a <a>First</a> value to a <a>Builder</a> with the given show
--   function and precedence.
--   
--   <i>Since: 3</i>
liftShowbFirstPrec :: (Int -> a -> Builder) -> Int -> First a -> Builder

-- | Convert a <a>Last</a> value to a <a>Builder</a> with the given show
--   function and precedence.
--   
--   <i>Since: 3</i>
liftShowbLastPrec :: (Int -> a -> Builder) -> Int -> Last a -> Builder

-- | Convert a <a>WrappedMonoid</a> to a <a>Builder</a> with the given show
--   function and precedence.
--   
--   <i>Since: 3</i>
liftShowbWrappedMonoidPrec :: (Int -> m -> Builder) -> Int -> WrappedMonoid m -> Builder

-- | Convert an <a>Option</a> value to a <a>Builder</a> with the given show
--   function and precedence.
--   
--   <i>Since: 3</i>
liftShowbOptionPrec :: (Int -> a -> Builder) -> Int -> Option a -> Builder

-- | Convert an <a>Arg</a> value to a <a>Builder</a> with the given show
--   functions and precedence.
--   
--   <i>Since: 3</i>
liftShowbArgPrec2 :: (Int -> a -> Builder) -> (Int -> b -> Builder) -> Int -> Arg a b -> Builder
instance TextShow.Classes.TextShow2 Data.Semigroup.Arg
instance TextShow.Classes.TextShow a0 => TextShow.Classes.TextShow1 (Data.Semigroup.Arg a0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0) => TextShow.Classes.TextShow (Data.Semigroup.Arg a0 b0)
instance TextShow.Classes.TextShow1 Data.Semigroup.Option
instance TextShow.Classes.TextShow a0 => TextShow.Classes.TextShow (Data.Semigroup.Option a0)
instance TextShow.Classes.TextShow1 Data.Semigroup.WrappedMonoid
instance TextShow.Classes.TextShow m0 => TextShow.Classes.TextShow (Data.Semigroup.WrappedMonoid m0)
instance TextShow.Classes.TextShow1 Data.Semigroup.Last
instance TextShow.Classes.TextShow a0 => TextShow.Classes.TextShow (Data.Semigroup.Last a0)
instance TextShow.Classes.TextShow1 Data.Semigroup.First
instance TextShow.Classes.TextShow a0 => TextShow.Classes.TextShow (Data.Semigroup.First a0)
instance TextShow.Classes.TextShow1 Data.Semigroup.Max
instance TextShow.Classes.TextShow a0 => TextShow.Classes.TextShow (Data.Semigroup.Max a0)
instance TextShow.Classes.TextShow1 Data.Semigroup.Min
instance TextShow.Classes.TextShow a0 => TextShow.Classes.TextShow (Data.Semigroup.Min a0)


-- | Monomorphic <a>TextShow</a> functions for <tt>Text</tt> types.
--   
--   <i>Since: 2</i>
module TextShow.Data.Text

-- | Convert a strict <a>Text</a> to a <a>Builder</a>. <a>showbText</a>
--   should not be confused with <tt>fromText</tt>, as <a>showbText</a>
--   escapes certain characters (such as double quotes).
--   
--   <i>Since: 2</i>
showbText :: Text -> Builder

-- | Convert a lazy <a>Text</a> to a <a>Builder</a>. <a>showbTextLazy</a>
--   should not be confused with <tt>fromTextLazy</tt>, as
--   <a>showbTextLazy</a> escapes certain characters (such as double
--   quotes).
--   
--   <i>Since: 2</i>
showbTextLazy :: Text -> Builder

-- | Show a <a>Builder</a> as if it were a <a>String</a> (i.e., escape
--   certain characters, such as double quotes).
--   
--   <i>Since: 2</i>
showbBuilder :: Builder -> Builder

-- | Convert an <a>I16</a> value to a <a>Builder</a> with the given
--   precedence.
--   
--   <i>Since: 2</i>
showbI16Prec :: Int -> I16 -> Builder

-- | Convert a <a>UnicodeException</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbUnicodeException :: UnicodeException -> Builder

-- | Convert a <a>Decoding</a> value to a <a>Builder</a> with the given
--   precedence. This function is only available with <tt>text-1.0.0.0</tt>
--   or later.
--   
--   <i>Since: 2</i>
showbDecodingPrec :: Int -> Decoding -> Builder

-- | Convert a <a>Size</a> value to a <a>Builder</a> with the given
--   precedence. This function is only available with <tt>text-1.1.0.0</tt>
--   or later.
--   
--   <i>Since: 2</i>
showbSizePrec :: Int -> Size -> Builder
instance TextShow.Classes.TextShow Data.Text.Internal.Fusion.Size.Size
instance TextShow.Classes.TextShow Data.Text.Foreign.I16
instance TextShow.Classes.TextShow Data.Text.Encoding.Error.UnicodeException
instance TextShow.Classes.TextShow Data.Text.Encoding.Decoding
instance TextShow.Classes.TextShow Data.Text.Internal.Text
instance TextShow.Classes.TextShow Data.Text.Internal.Lazy.Text
instance TextShow.Classes.TextShow Data.Text.Internal.Builder.Builder


-- | Monomorphic <a>TextShow</a> functions for tuple types.
--   
--   <i>Since: 2</i>
module TextShow.Data.Tuple

-- | Converts <tt>()</tt> into a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbUnit :: () -> Builder

-- | Converts a 2-tuple into a <a>Builder</a> with the given show
--   functions.
--   
--   <i>Since: 3</i>
liftShowb2Tuple2 :: (a -> Builder) -> (b -> Builder) -> (a, b) -> Builder

-- | Converts a 3-tuple into a <a>Builder</a> with the given show
--   functions.
--   
--   <i>Since: 3</i>
liftShowb3Tuple2 :: TextShow a => (b -> Builder) -> (c -> Builder) -> (a, b, c) -> Builder

-- | Converts a 4-tuple into a <a>Builder</a> with the given show
--   functions.
--   
--   <i>Since: 3</i>
liftShowb4Tuple2 :: (TextShow a, TextShow b) => (c -> Builder) -> (d -> Builder) -> (a, b, c, d) -> Builder

-- | Converts a 5-tuple into a <a>Builder</a> with the given show
--   functions.
--   
--   <i>Since: 3</i>
liftShowb5Tuple2 :: (TextShow a, TextShow b, TextShow c) => (d -> Builder) -> (e -> Builder) -> (a, b, c, d, e) -> Builder

-- | Converts a 6-tuple into a <a>Builder</a> with the given show
--   functions.
--   
--   <i>Since: 3</i>
liftShowb6Tuple2 :: (TextShow a, TextShow b, TextShow c, TextShow d) => (e -> Builder) -> (f -> Builder) -> (a, b, c, d, e, f) -> Builder

-- | Converts a 7-tuple into a <a>Builder</a> with the given show
--   functions.
--   
--   <i>Since: 3</i>
liftShowb7Tuple2 :: (TextShow a, TextShow b, TextShow c, TextShow d, TextShow e) => (f -> Builder) -> (g -> Builder) -> (a, b, c, d, e, f, g) -> Builder

-- | Converts an 8-tuple into a <a>Builder</a> with the given show
--   functions.
--   
--   <i>Since: 3</i>
liftShowb8Tuple2 :: (TextShow a, TextShow b, TextShow c, TextShow d, TextShow e, TextShow f) => (g -> Builder) -> (h -> Builder) -> (a, b, c, d, e, f, g, h) -> Builder

-- | Converts a 9-tuple into a <a>Builder</a> with the given show
--   functions.
--   
--   <i>Since: 3</i>
liftShowb9Tuple2 :: (TextShow a, TextShow b, TextShow c, TextShow d, TextShow e, TextShow f, TextShow g) => (h -> Builder) -> (i -> Builder) -> (a, b, c, d, e, f, g, h, i) -> Builder

-- | Converts a 10-tuple into a <a>Builder</a> with the given show
--   functions.
--   
--   <i>Since: 3</i>
liftShowb10Tuple2 :: (TextShow a, TextShow b, TextShow c, TextShow d, TextShow e, TextShow f, TextShow g, TextShow h) => (i -> Builder) -> (j -> Builder) -> (a, b, c, d, e, f, g, h, i, j) -> Builder

-- | Converts an 11-tuple into a <a>Builder</a> with the given show
--   functions.
--   
--   <i>Since: 3</i>
liftShowb11Tuple2 :: (TextShow a, TextShow b, TextShow c, TextShow d, TextShow e, TextShow f, TextShow g, TextShow h, TextShow i) => (j -> Builder) -> (k -> Builder) -> (a, b, c, d, e, f, g, h, i, j, k) -> Builder

-- | Converts a 12-tuple into a <a>Builder</a> with the given show
--   functions.
--   
--   <i>Since: 3</i>
liftShowb12Tuple2 :: (TextShow a, TextShow b, TextShow c, TextShow d, TextShow e, TextShow f, TextShow g, TextShow h, TextShow i, TextShow j) => (k -> Builder) -> (l -> Builder) -> (a, b, c, d, e, f, g, h, i, j, k, l) -> Builder

-- | Converts a 13-tuple into a <a>Builder</a> with the given show
--   functions.
--   
--   <i>Since: 3</i>
liftShowb13Tuple2 :: (TextShow a, TextShow b, TextShow c, TextShow d, TextShow e, TextShow f, TextShow g, TextShow h, TextShow i, TextShow j, TextShow k) => (l -> Builder) -> (m -> Builder) -> (a, b, c, d, e, f, g, h, i, j, k, l, m) -> Builder

-- | Converts a 14-tuple into a <a>Builder</a> with the given show
--   functions.
--   
--   <i>Since: 3</i>
liftShowb14Tuple2 :: (TextShow a, TextShow b, TextShow c, TextShow d, TextShow e, TextShow f, TextShow g, TextShow h, TextShow i, TextShow j, TextShow k, TextShow l) => (m -> Builder) -> (n -> Builder) -> (a, b, c, d, e, f, g, h, i, j, k, l, m, n) -> Builder

-- | Converts a 15-tuple into a <a>Builder</a> with the given show
--   functions.
--   
--   <i>Since: 3</i>
liftShowb15Tuple2 :: (TextShow a, TextShow b, TextShow c, TextShow d, TextShow e, TextShow f, TextShow g, TextShow h, TextShow i, TextShow j, TextShow k, TextShow l, TextShow m) => (n -> Builder) -> (o -> Builder) -> (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) -> Builder
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0, TextShow.Classes.TextShow d0, TextShow.Classes.TextShow e0, TextShow.Classes.TextShow f0, TextShow.Classes.TextShow g0, TextShow.Classes.TextShow h0, TextShow.Classes.TextShow i0, TextShow.Classes.TextShow j0, TextShow.Classes.TextShow k0, TextShow.Classes.TextShow l0, TextShow.Classes.TextShow m0) => TextShow.Classes.TextShow2 ((,,,,,,,,,,,,,,) a0 b0 c0 d0 e0 f0 g0 h0 i0 j0 k0 l0 m0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0, TextShow.Classes.TextShow d0, TextShow.Classes.TextShow e0, TextShow.Classes.TextShow f0, TextShow.Classes.TextShow g0, TextShow.Classes.TextShow h0, TextShow.Classes.TextShow i0, TextShow.Classes.TextShow j0, TextShow.Classes.TextShow k0, TextShow.Classes.TextShow l0) => TextShow.Classes.TextShow2 ((,,,,,,,,,,,,,) a0 b0 c0 d0 e0 f0 g0 h0 i0 j0 k0 l0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0, TextShow.Classes.TextShow d0, TextShow.Classes.TextShow e0, TextShow.Classes.TextShow f0, TextShow.Classes.TextShow g0, TextShow.Classes.TextShow h0, TextShow.Classes.TextShow i0, TextShow.Classes.TextShow j0, TextShow.Classes.TextShow k0) => TextShow.Classes.TextShow2 ((,,,,,,,,,,,,) a0 b0 c0 d0 e0 f0 g0 h0 i0 j0 k0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0, TextShow.Classes.TextShow d0, TextShow.Classes.TextShow e0, TextShow.Classes.TextShow f0, TextShow.Classes.TextShow g0, TextShow.Classes.TextShow h0, TextShow.Classes.TextShow i0, TextShow.Classes.TextShow j0) => TextShow.Classes.TextShow2 ((,,,,,,,,,,,) a0 b0 c0 d0 e0 f0 g0 h0 i0 j0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0, TextShow.Classes.TextShow d0, TextShow.Classes.TextShow e0, TextShow.Classes.TextShow f0, TextShow.Classes.TextShow g0, TextShow.Classes.TextShow h0, TextShow.Classes.TextShow i0) => TextShow.Classes.TextShow2 ((,,,,,,,,,,) a0 b0 c0 d0 e0 f0 g0 h0 i0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0, TextShow.Classes.TextShow d0, TextShow.Classes.TextShow e0, TextShow.Classes.TextShow f0, TextShow.Classes.TextShow g0, TextShow.Classes.TextShow h0) => TextShow.Classes.TextShow2 ((,,,,,,,,,) a0 b0 c0 d0 e0 f0 g0 h0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0, TextShow.Classes.TextShow d0, TextShow.Classes.TextShow e0, TextShow.Classes.TextShow f0, TextShow.Classes.TextShow g0) => TextShow.Classes.TextShow2 ((,,,,,,,,) a0 b0 c0 d0 e0 f0 g0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0, TextShow.Classes.TextShow d0, TextShow.Classes.TextShow e0, TextShow.Classes.TextShow f0) => TextShow.Classes.TextShow2 ((,,,,,,,) a0 b0 c0 d0 e0 f0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0, TextShow.Classes.TextShow d0, TextShow.Classes.TextShow e0) => TextShow.Classes.TextShow2 ((,,,,,,) a0 b0 c0 d0 e0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0, TextShow.Classes.TextShow d0) => TextShow.Classes.TextShow2 ((,,,,,) a0 b0 c0 d0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0) => TextShow.Classes.TextShow2 ((,,,,) a0 b0 c0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0) => TextShow.Classes.TextShow2 ((,,,) a0 b0)
instance TextShow.Classes.TextShow a0 => TextShow.Classes.TextShow2 ((,,) a0)
instance TextShow.Classes.TextShow2 (,)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0, TextShow.Classes.TextShow d0, TextShow.Classes.TextShow e0, TextShow.Classes.TextShow f0, TextShow.Classes.TextShow g0, TextShow.Classes.TextShow h0, TextShow.Classes.TextShow i0, TextShow.Classes.TextShow j0, TextShow.Classes.TextShow k0, TextShow.Classes.TextShow l0, TextShow.Classes.TextShow m0, TextShow.Classes.TextShow n0) => TextShow.Classes.TextShow1 ((,,,,,,,,,,,,,,) a0 b0 c0 d0 e0 f0 g0 h0 i0 j0 k0 l0 m0 n0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0, TextShow.Classes.TextShow d0, TextShow.Classes.TextShow e0, TextShow.Classes.TextShow f0, TextShow.Classes.TextShow g0, TextShow.Classes.TextShow h0, TextShow.Classes.TextShow i0, TextShow.Classes.TextShow j0, TextShow.Classes.TextShow k0, TextShow.Classes.TextShow l0, TextShow.Classes.TextShow m0) => TextShow.Classes.TextShow1 ((,,,,,,,,,,,,,) a0 b0 c0 d0 e0 f0 g0 h0 i0 j0 k0 l0 m0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0, TextShow.Classes.TextShow d0, TextShow.Classes.TextShow e0, TextShow.Classes.TextShow f0, TextShow.Classes.TextShow g0, TextShow.Classes.TextShow h0, TextShow.Classes.TextShow i0, TextShow.Classes.TextShow j0, TextShow.Classes.TextShow k0, TextShow.Classes.TextShow l0) => TextShow.Classes.TextShow1 ((,,,,,,,,,,,,) a0 b0 c0 d0 e0 f0 g0 h0 i0 j0 k0 l0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0, TextShow.Classes.TextShow d0, TextShow.Classes.TextShow e0, TextShow.Classes.TextShow f0, TextShow.Classes.TextShow g0, TextShow.Classes.TextShow h0, TextShow.Classes.TextShow i0, TextShow.Classes.TextShow j0, TextShow.Classes.TextShow k0) => TextShow.Classes.TextShow1 ((,,,,,,,,,,,) a0 b0 c0 d0 e0 f0 g0 h0 i0 j0 k0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0, TextShow.Classes.TextShow d0, TextShow.Classes.TextShow e0, TextShow.Classes.TextShow f0, TextShow.Classes.TextShow g0, TextShow.Classes.TextShow h0, TextShow.Classes.TextShow i0, TextShow.Classes.TextShow j0) => TextShow.Classes.TextShow1 ((,,,,,,,,,,) a0 b0 c0 d0 e0 f0 g0 h0 i0 j0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0, TextShow.Classes.TextShow d0, TextShow.Classes.TextShow e0, TextShow.Classes.TextShow f0, TextShow.Classes.TextShow g0, TextShow.Classes.TextShow h0, TextShow.Classes.TextShow i0) => TextShow.Classes.TextShow1 ((,,,,,,,,,) a0 b0 c0 d0 e0 f0 g0 h0 i0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0, TextShow.Classes.TextShow d0, TextShow.Classes.TextShow e0, TextShow.Classes.TextShow f0, TextShow.Classes.TextShow g0, TextShow.Classes.TextShow h0) => TextShow.Classes.TextShow1 ((,,,,,,,,) a0 b0 c0 d0 e0 f0 g0 h0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0, TextShow.Classes.TextShow d0, TextShow.Classes.TextShow e0, TextShow.Classes.TextShow f0, TextShow.Classes.TextShow g0) => TextShow.Classes.TextShow1 ((,,,,,,,) a0 b0 c0 d0 e0 f0 g0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0, TextShow.Classes.TextShow d0, TextShow.Classes.TextShow e0, TextShow.Classes.TextShow f0) => TextShow.Classes.TextShow1 ((,,,,,,) a0 b0 c0 d0 e0 f0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0, TextShow.Classes.TextShow d0, TextShow.Classes.TextShow e0) => TextShow.Classes.TextShow1 ((,,,,,) a0 b0 c0 d0 e0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0, TextShow.Classes.TextShow d0) => TextShow.Classes.TextShow1 ((,,,,) a0 b0 c0 d0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0) => TextShow.Classes.TextShow1 ((,,,) a0 b0 c0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0) => TextShow.Classes.TextShow1 ((,,) a0 b0)
instance TextShow.Classes.TextShow a0 => TextShow.Classes.TextShow1 ((,) a0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0, TextShow.Classes.TextShow d0, TextShow.Classes.TextShow e0, TextShow.Classes.TextShow f0, TextShow.Classes.TextShow g0, TextShow.Classes.TextShow h0, TextShow.Classes.TextShow i0, TextShow.Classes.TextShow j0, TextShow.Classes.TextShow k0, TextShow.Classes.TextShow l0, TextShow.Classes.TextShow m0, TextShow.Classes.TextShow n0, TextShow.Classes.TextShow o0) => TextShow.Classes.TextShow (a0, b0, c0, d0, e0, f0, g0, h0, i0, j0, k0, l0, m0, n0, o0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0, TextShow.Classes.TextShow d0, TextShow.Classes.TextShow e0, TextShow.Classes.TextShow f0, TextShow.Classes.TextShow g0, TextShow.Classes.TextShow h0, TextShow.Classes.TextShow i0, TextShow.Classes.TextShow j0, TextShow.Classes.TextShow k0, TextShow.Classes.TextShow l0, TextShow.Classes.TextShow m0, TextShow.Classes.TextShow n0) => TextShow.Classes.TextShow (a0, b0, c0, d0, e0, f0, g0, h0, i0, j0, k0, l0, m0, n0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0, TextShow.Classes.TextShow d0, TextShow.Classes.TextShow e0, TextShow.Classes.TextShow f0, TextShow.Classes.TextShow g0, TextShow.Classes.TextShow h0, TextShow.Classes.TextShow i0, TextShow.Classes.TextShow j0, TextShow.Classes.TextShow k0, TextShow.Classes.TextShow l0, TextShow.Classes.TextShow m0) => TextShow.Classes.TextShow (a0, b0, c0, d0, e0, f0, g0, h0, i0, j0, k0, l0, m0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0, TextShow.Classes.TextShow d0, TextShow.Classes.TextShow e0, TextShow.Classes.TextShow f0, TextShow.Classes.TextShow g0, TextShow.Classes.TextShow h0, TextShow.Classes.TextShow i0, TextShow.Classes.TextShow j0, TextShow.Classes.TextShow k0, TextShow.Classes.TextShow l0) => TextShow.Classes.TextShow (a0, b0, c0, d0, e0, f0, g0, h0, i0, j0, k0, l0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0, TextShow.Classes.TextShow d0, TextShow.Classes.TextShow e0, TextShow.Classes.TextShow f0, TextShow.Classes.TextShow g0, TextShow.Classes.TextShow h0, TextShow.Classes.TextShow i0, TextShow.Classes.TextShow j0, TextShow.Classes.TextShow k0) => TextShow.Classes.TextShow (a0, b0, c0, d0, e0, f0, g0, h0, i0, j0, k0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0, TextShow.Classes.TextShow d0, TextShow.Classes.TextShow e0, TextShow.Classes.TextShow f0, TextShow.Classes.TextShow g0, TextShow.Classes.TextShow h0, TextShow.Classes.TextShow i0, TextShow.Classes.TextShow j0) => TextShow.Classes.TextShow (a0, b0, c0, d0, e0, f0, g0, h0, i0, j0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0, TextShow.Classes.TextShow d0, TextShow.Classes.TextShow e0, TextShow.Classes.TextShow f0, TextShow.Classes.TextShow g0, TextShow.Classes.TextShow h0, TextShow.Classes.TextShow i0) => TextShow.Classes.TextShow (a0, b0, c0, d0, e0, f0, g0, h0, i0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0, TextShow.Classes.TextShow d0, TextShow.Classes.TextShow e0, TextShow.Classes.TextShow f0, TextShow.Classes.TextShow g0, TextShow.Classes.TextShow h0) => TextShow.Classes.TextShow (a0, b0, c0, d0, e0, f0, g0, h0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0, TextShow.Classes.TextShow d0, TextShow.Classes.TextShow e0, TextShow.Classes.TextShow f0, TextShow.Classes.TextShow g0) => TextShow.Classes.TextShow (a0, b0, c0, d0, e0, f0, g0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0, TextShow.Classes.TextShow d0, TextShow.Classes.TextShow e0, TextShow.Classes.TextShow f0) => TextShow.Classes.TextShow (a0, b0, c0, d0, e0, f0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0, TextShow.Classes.TextShow d0, TextShow.Classes.TextShow e0) => TextShow.Classes.TextShow (a0, b0, c0, d0, e0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0, TextShow.Classes.TextShow d0) => TextShow.Classes.TextShow (a0, b0, c0, d0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0, TextShow.Classes.TextShow c0) => TextShow.Classes.TextShow (a0, b0, c0)
instance (TextShow.Classes.TextShow a0, TextShow.Classes.TextShow b0) => TextShow.Classes.TextShow (a0, b0)
instance TextShow.Classes.TextShow ()


-- | Monomorphic <a>TextShow</a> function for <a>Array</a> values.
--   
--   <i>Since: 2</i>
module TextShow.Data.Array

-- | Convert an <a>Array</a> value to a <a>Builder</a> with the given
--   precedence.
--   
--   <i>Since: 2</i>
showbArrayPrec :: (TextShow i, TextShow e, Ix i) => Int -> Array i e -> Builder

-- | Convert a <a>UArray</a> value to a <a>Builder</a> with the given
--   precedence.
--   
--   <i>Since: 2</i>
showbUArrayPrec :: (IArray UArray e, Ix i, TextShow i, TextShow e) => Int -> UArray i e -> Builder

-- | Convert an <a>IArray</a> instance to a <a>Builder</a> with the given
--   precedence.
--   
--   <i>Since: 2</i>
showbIArrayPrec :: (IArray a e, Ix i, TextShow i, TextShow e) => Int -> a i e -> Builder
instance (TextShow.Classes.TextShow i, TextShow.Classes.TextShow e, GHC.Arr.Ix i) => TextShow.Classes.TextShow (GHC.Arr.Array i e)
instance (Data.Array.Base.IArray Data.Array.Base.UArray e, GHC.Arr.Ix i, TextShow.Classes.TextShow i, TextShow.Classes.TextShow e) => TextShow.Classes.TextShow (Data.Array.Base.UArray i e)


-- | Monomorphic <a>TextShow</a> function for representational equality.
--   This module only exports functions if using <tt>base-4.7.0.0</tt> or
--   later.
--   
--   <i>Since: 2</i>
module TextShow.Data.Type.Coercion

-- | Convert a representational equality value to a <a>Builder</a>. This
--   function is only available with <tt>base-4.7.0.0</tt> or later.
--   
--   <i>Since: 2</i>
showbCoercion :: Coercion a b -> Builder
instance TextShow.Classes.TextShow2 Data.Type.Coercion.Coercion
instance forall k (a0 :: k) (b0 :: k). TextShow.Classes.TextShow (Data.Type.Coercion.Coercion a0 b0)
instance TextShow.Classes.TextShow1 (Data.Type.Coercion.Coercion a)


-- | Monomorphic <a>TextShow</a> function for propositional equality. This
--   module only exports functions if using <tt>base-4.7.0.0</tt> or later.
--   
--   <i>Since: 2</i>
module TextShow.Data.Type.Equality

-- | Convert a propositional equality value to a <a>Builder</a>. This
--   function is only available with <tt>base-4.7.0.0</tt> or later.
--   
--   <i>Since: 2</i>
showbPropEquality :: (a :~: b) -> Builder
instance TextShow.Classes.TextShow2 (Data.Type.Equality.:~:)
instance forall k (a0 :: k) (b0 :: k). TextShow.Classes.TextShow (a0 Data.Type.Equality.:~: b0)
instance TextShow.Classes.TextShow1 ((Data.Type.Equality.:~:) a)


-- | Monomorphic <tt>TextShow</tt> functions for <a>Version</a>.
--   
--   <i>Since: 2</i>
module TextShow.Data.Version

-- | Convert a <a>Version</a> to a <a>Builder</a> with the given
--   precedence.
--   
--   <i>Since: 2</i>
showbVersionPrec :: Int -> Version -> Builder

-- | Provides one possible concrete representation for <a>Version</a>. For
--   a version with <a>versionBranch</a> <tt>= [1,2,3]</tt> and
--   <a>versionTags</a> <tt>= ["tag1","tag2"]</tt>, the output will be
--   <tt>1.2.3-tag1-tag2</tt>.
--   
--   <i>Since: 2</i>
showbVersionConcrete :: Version -> Builder
instance TextShow.Classes.TextShow Data.Version.Version


-- | Monomorphic <a>TextShow</a> functions for data types in the
--   <tt>Event</tt> module. This module only exports functions if using
--   <tt>base-4.4.0.0</tt> on a platform other than Windows or GHCJS.
--   
--   <i>Since: 2</i>
module TextShow.GHC.Event

-- | Convert an <a>Event</a> to a <a>Builder</a>. This function is only
--   available with <tt>base-4.4.0.0</tt> or later and is not available on
--   Windows.
--   
--   <i>Since: 2</i>
showbEvent :: Event -> Builder

-- | Convert an <a>FdKey</a> to a <a>Builder</a> with the given precedence.
--   This function is only available with <tt>base-4.4.0.0</tt> or later
--   and is not available on Windows.
--   
--   <i>Since: 2</i>
showbFdKeyPrec :: Int -> FdKey -> Builder

-- | Convert a <a>Lifetime</a> to a <a>Builder</a>. This function is only
--   available with <tt>base-4.8.1.0</tt> or later and is not available on
--   Windows.
--   
--   <i>Since: 2</i>
showbLifetime :: Lifetime -> Builder
instance TextShow.Classes.TextShow GHC.Event.Internal.Lifetime
instance TextShow.Classes.TextShow GHC.Event.Manager.FdKey
instance TextShow.Classes.TextShow GHC.Event.Unique.Unique
instance TextShow.Classes.TextShow GHC.Event.Internal.Event


-- | Monomorphic <a>TextShow</a> functions for generics-related data types.
--   
--   <i>Since: 2</i>
module TextShow.GHC.Generics

-- | Convert a <a>U1</a> value to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbU1 :: U1 p -> Builder

-- | Convert a <a>Par1</a> value to a <a>Builder</a> with the given show
--   function and precedence.
--   
--   <i>Since: 3</i>
liftShowbPar1Prec :: (Int -> p -> Builder) -> Int -> Par1 p -> Builder

-- | Convert a <a>Rec1</a> value to a <a>Builder</a> with the given
--   precedence.
--   
--   <i>Since: 2</i>
showbRec1Prec :: TextShow (f p) => Int -> Rec1 f p -> Builder

-- | Convert a <a>Rec1</a> value to a <a>Builder</a> with the given show
--   function and precedence.
--   
--   <i>Since: 3</i>
liftShowbRec1Prec :: TextShow1 f => (Int -> p -> Builder) -> ([p] -> Builder) -> Int -> Rec1 f p -> Builder

-- | Convert a <a>K1</a> value to a <a>Builder</a> with the given show
--   function and precedence.
--   
--   <i>Since: 3</i>
liftShowbK1Prec :: (Int -> c -> Builder) -> Int -> K1 i c p -> Builder

-- | Convert an <a>M1</a> value to a <a>Builder</a> with the given
--   precedence.
--   
--   <i>Since: 2</i>
showbM1Prec :: TextShow (f p) => Int -> M1 i c f p -> Builder

-- | Convert an <a>M1</a> value to a <a>Builder</a> with the given show
--   function and precedence.
--   
--   <i>Since: 3</i>
liftShowbM1Prec :: TextShow1 f => (Int -> p -> Builder) -> ([p] -> Builder) -> Int -> M1 i c f p -> Builder

-- | Convert a '(:+:)' value to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2</i>
showbSumTypePrec :: (TextShow (f p), TextShow (g p)) => Int -> (f :+: g) p -> Builder

-- | Convert a '(:+:)' value to a <a>Builder</a> with the given show
--   function and precedence.
--   
--   <i>Since: 3</i>
liftShowbSumTypePrec :: (TextShow1 f, TextShow1 g) => (Int -> p -> Builder) -> ([p] -> Builder) -> Int -> (f :+: g) p -> Builder

-- | Convert a '(:*:)' value to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2</i>
showbProductTypePrec :: (TextShow (f p), TextShow (g p)) => Int -> (f :*: g) p -> Builder

-- | Convert a '(:*:)' value to a <a>Builder</a> with the given show
--   function and precedence.
--   
--   <i>Since: 3</i>
liftShowbProductTypePrec :: (TextShow1 f, TextShow1 g) => (Int -> p -> Builder) -> ([p] -> Builder) -> Int -> (f :*: g) p -> Builder

-- | Convert a '(:.:)' value to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2</i>
showbCompFunctorsPrec :: TextShow (f (g p)) => Int -> (f :.: g) p -> Builder

-- | Convert a '(:.:)' value to a <a>Builder</a> with the given show
--   function and precedence.
--   
--   <i>Since: 3</i>
liftShowbCompFunctorsPrec :: (TextShow1 f, TextShow1 g) => (Int -> p -> Builder) -> ([p] -> Builder) -> Int -> (f :.: g) p -> Builder

-- | Convert a <a>Fixity</a> value to a <a>Builder</a> with the given
--   precedence.
--   
--   <i>Since: 2</i>
showbFixityPrec :: Int -> Fixity -> Builder

-- | Convert an <a>Associativity</a> value to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbAssociativity :: Associativity -> Builder

-- | Convert a <a>SourceUnpackedness</a> value to a <a>Builder</a>. This
--   function is only available with <tt>base-4.9.0.0</tt> or later.
--   
--   <i>Since: 3</i>
showbSourceUnpackedness :: SourceUnpackedness -> Builder

-- | Convert a <a>SourceStrictness</a> value to a <a>Builder</a>. This
--   function is only available with <tt>base-4.9.0.0</tt> or later.
--   
--   <i>Since: 3</i>
showbSourceStrictness :: SourceStrictness -> Builder

-- | Convert a <a>DecidedStrictness</a> value to a <a>Builder</a>. This
--   function is only available with <tt>base-4.9.0.0</tt> or later.
--   
--   <i>Since: 3</i>
showbDecidedStrictness :: DecidedStrictness -> Builder

-- | Convert a <a>UChar</a> to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2.1.2</i>
showbUCharPrec :: Int -> UChar p -> Builder

-- | Convert a <a>UDouble</a> to a <a>Builder</a> with the given
--   precedence.
--   
--   <i>Since: 2.1.2</i>
showbUDoublePrec :: Int -> UDouble p -> Builder

-- | Convert a <a>UFloat</a> to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2.1.2</i>
showbUFloatPrec :: Int -> UFloat p -> Builder

-- | Convert a <a>UInt</a> to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2.1.2</i>
showbUIntPrec :: Int -> UInt p -> Builder

-- | Convert a <a>UWord</a> to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2.1.2</i>
showbUWordPrec :: Int -> UWord p -> Builder
instance TextShow.Classes.TextShow GHC.Generics.DecidedStrictness
instance TextShow.Classes.TextShow GHC.Generics.SourceStrictness
instance TextShow.Classes.TextShow GHC.Generics.SourceUnpackedness
instance TextShow.Classes.TextShow GHC.Generics.Associativity
instance TextShow.Classes.TextShow GHC.Generics.Fixity
instance TextShow.Classes.TextShow1 (GHC.Generics.URec GHC.Types.Word)
instance TextShow.Classes.TextShow1 (GHC.Generics.URec GHC.Types.Int)
instance TextShow.Classes.TextShow (GHC.Generics.UWord p)
instance TextShow.Classes.TextShow1 (GHC.Generics.URec GHC.Types.Float)
instance TextShow.Classes.TextShow (GHC.Generics.UInt p)
instance TextShow.Classes.TextShow1 (GHC.Generics.URec GHC.Types.Double)
instance TextShow.Classes.TextShow (GHC.Generics.UFloat p)
instance TextShow.Classes.TextShow1 (GHC.Generics.URec GHC.Types.Char)
instance TextShow.Classes.TextShow (GHC.Generics.UDouble p)
instance (TextShow.Classes.TextShow1 f0, TextShow.Classes.TextShow1 g0) => TextShow.Classes.TextShow1 (f0 GHC.Generics.:.: g0)
instance TextShow.Classes.TextShow (GHC.Generics.UChar p)
instance (TextShow.Classes.TextShow1 f0, TextShow.Classes.TextShow1 g0) => TextShow.Classes.TextShow1 (f0 GHC.Generics.:*: g0)
instance TextShow.Classes.TextShow (f (g p)) => TextShow.Classes.TextShow ((GHC.Generics.:.:) f g p)
instance (TextShow.Classes.TextShow1 f0, TextShow.Classes.TextShow1 g0) => TextShow.Classes.TextShow1 (f0 GHC.Generics.:+: g0)
instance (TextShow.Classes.TextShow (f p), TextShow.Classes.TextShow (g p)) => TextShow.Classes.TextShow ((GHC.Generics.:*:) f g p)
instance TextShow.Classes.TextShow1 f0 => TextShow.Classes.TextShow1 (GHC.Generics.Rec1 f0)
instance TextShow.Classes.TextShow c => TextShow.Classes.TextShow (GHC.Generics.K1 i c p)
instance TextShow.Classes.TextShow c => TextShow.Classes.TextShow1 (GHC.Generics.K1 i c)
instance TextShow.Classes.TextShow2 (GHC.Generics.K1 i)
instance TextShow.Classes.TextShow (f p) => TextShow.Classes.TextShow (GHC.Generics.M1 i c f p)
instance TextShow.Classes.TextShow1 f => TextShow.Classes.TextShow1 (GHC.Generics.M1 i c f)
instance (TextShow.Classes.TextShow (f p), TextShow.Classes.TextShow (g p)) => TextShow.Classes.TextShow ((GHC.Generics.:+:) f g p)
instance TextShow.Classes.TextShow1 GHC.Generics.Par1
instance TextShow.Classes.TextShow (f p) => TextShow.Classes.TextShow (GHC.Generics.Rec1 f p)
instance TextShow.Classes.TextShow p0 => TextShow.Classes.TextShow (GHC.Generics.Par1 p0)
instance TextShow.Classes.TextShow1 GHC.Generics.U1
instance TextShow.Classes.TextShow (GHC.Generics.U1 p)


-- | Monomorphic <a>TextShow</a> functions for data types in the
--   <a>Flags</a> module. This module only exports functions if using
--   <tt>base-4.8.0.0</tt> or later.
--   
--   <i>Since: 2</i>
module TextShow.GHC.RTS.Flags

-- | Convert an <a>RTSFlags</a> value to a <a>Builder</a> with the given
--   precedence. This function is only available with <tt>base-4.8.0.0</tt>
--   or later.
--   
--   <i>Since: 2</i>
showbRTSFlagsPrec :: Int -> RTSFlags -> Builder

-- | Convert a <a>GCFlags</a> value to a <a>Builder</a> with the given
--   precedence. This function is only available with <tt>base-4.8.0.0</tt>
--   or later.
--   
--   <i>Since: 2</i>
showbGCFlagsPrec :: Int -> GCFlags -> Builder

-- | Convert a <a>ConcFlags</a> value to a <a>Builder</a> with the given
--   precedence. This function is only available with <tt>base-4.8.0.0</tt>
--   or later.
--   
--   <i>Since: 2</i>
showbConcFlagsPrec :: Int -> ConcFlags -> Builder

-- | Convert a <a>MiscFlags</a> value to a <a>Builder</a> with the given
--   precedence. This function is only available with <tt>base-4.8.0.0</tt>
--   or later.
--   
--   <i>Since: 2</i>
showbMiscFlagsPrec :: Int -> MiscFlags -> Builder

-- | Convert a <a>DebugFlags</a> value to a <a>Builder</a> with the given
--   precedence.
--   
--   <i>Since: 2</i>
showbDebugFlagsPrec :: Int -> DebugFlags -> Builder

-- | Convert a <a>CCFlags</a> value to a <a>Builder</a> with the given
--   precedence. This function is only available with <tt>base-4.8.0.0</tt>
--   or later.
--   
--   <i>Since: 2</i>
showbCCFlagsPrec :: Int -> CCFlags -> Builder

-- | Convert a <a>ProfFlags</a> value to a <a>Builder</a> with the given
--   precedence. This function is only available with <tt>base-4.8.0.0</tt>
--   or later.
--   
--   <i>Since: 2</i>
showbProfFlagsPrec :: Int -> ProfFlags -> Builder

-- | Convert a <a>TraceFlags</a> value to a <a>Builder</a> with the given
--   precedence. This function is only available with <tt>base-4.8.0.0</tt>
--   or later.
--   
--   <i>Since: 2</i>
showbTraceFlagsPrec :: Int -> TraceFlags -> Builder

-- | Convert a <a>TickyFlags</a> value to a <a>Builder</a> with the given
--   precedence. This function is only available with <tt>base-4.8.0.0</tt>
--   or later.
--   
--   <i>Since: 2</i>
showbTickyFlagsPrec :: Int -> TickyFlags -> Builder

-- | Convert a <a>GiveGCStats</a> value to a <a>Builder</a>. This function
--   is only available with <tt>base-4.8.2.0</tt> or later.
--   
--   <i>Since: 2.1</i>
showbGiveGCStats :: GiveGCStats -> Builder

-- | Convert a <a>DoCostCentres</a> value to a <a>Builder</a>. This
--   function is only available with <tt>base-4.8.2.0</tt> or later.
--   
--   <i>Since: 2.1</i>
showbDoCostCentres :: DoCostCentres -> Builder

-- | Convert a <a>DoHeapProfile</a> value to a <a>Builder</a>. This
--   function is only available with <tt>base-4.8.2.0</tt> or later.
--   
--   <i>Since: 2.1</i>
showbDoHeapProfile :: DoHeapProfile -> Builder

-- | Convert a <a>DoTrace</a> value to a <a>Builder</a>. This function is
--   only available with <tt>base-4.8.2.0</tt> or later.
--   
--   <i>Since: 2.1</i>
showbDoTrace :: DoTrace -> Builder
instance TextShow.Classes.TextShow GHC.RTS.Flags.DoTrace
instance TextShow.Classes.TextShow GHC.RTS.Flags.DoHeapProfile
instance TextShow.Classes.TextShow GHC.RTS.Flags.DoCostCentres
instance TextShow.Classes.TextShow GHC.RTS.Flags.GiveGCStats
instance TextShow.Classes.TextShow GHC.RTS.Flags.TickyFlags
instance TextShow.Classes.TextShow GHC.RTS.Flags.TraceFlags
instance TextShow.Classes.TextShow GHC.RTS.Flags.ProfFlags
instance TextShow.Classes.TextShow GHC.RTS.Flags.CCFlags
instance TextShow.Classes.TextShow GHC.RTS.Flags.DebugFlags
instance TextShow.Classes.TextShow GHC.RTS.Flags.MiscFlags
instance TextShow.Classes.TextShow GHC.RTS.Flags.ConcFlags
instance TextShow.Classes.TextShow GHC.RTS.Flags.GCFlags
instance TextShow.Classes.TextShow GHC.RTS.Flags.RTSFlags


-- | Monomorphic <a>TextShow</a> functions for <a>CallStack</a> and
--   <a>SrcLoc</a> values. This module only exports functions if using
--   <tt>base-4.8.1.0</tt> or later.
--   
--   <i>Since: 3.0.1</i>
module TextShow.GHC.Stack

-- | Convert a <a>CallStack</a> to a <a>Builder</a> with the given
--   precedence. This function is only available with <tt>base-4.8.1.0</tt>
--   or later. With <tt>base-4.9</tt> or later, this function ignores the
--   precedence argument.
--   
--   <i>Since: 3.0.1</i>
showbCallStackPrec :: Int -> CallStack -> Builder

-- | Convert a <a>SrcLoc</a> to a <a>Builder</a> with the given precedence.
--   This function is only available with <tt>base-4.8.1.0</tt> or later.
--   
--   <i>Since: 3.0.1</i>
showbSrcLocPrec :: Int -> SrcLoc -> Builder
instance TextShow.Classes.TextShow GHC.Stack.Types.SrcLoc
instance TextShow.Classes.TextShow GHC.Stack.Types.CallStack


-- | Monomorphic <tt>TextShow</tt> function for <a>StaticPtrInfo</a>
--   values. This module only exports functions if using
--   <tt>base-4.8.0.0</tt> or later.
--   
--   <i>Since: 2</i>
module TextShow.GHC.StaticPtr

-- | Convert a <a>StaticPtrInfo</a> value to a <a>Builder</a> with the
--   given precedence. This function is only available with
--   <tt>base-4.8.0.0</tt> or later.
--   
--   <i>Since: 2</i>
showbStaticPtrInfoPrec :: Int -> StaticPtrInfo -> Builder
instance TextShow.Classes.TextShow GHC.StaticPtr.StaticPtrInfo


-- | Monomorphic <tt>TextShow</tt> function for <a>GCStats</a>. This module
--   only exports functions if using <tt>base-4.5.0.0</tt> or later.
--   
--   <i>Since: 2</i>
module TextShow.GHC.Stats

-- | Convert a <a>GCStats</a> value to a <a>Builder</a> with the given
--   precedence. This function is only available with <tt>base-4.5.0.0</tt>
--   or later.
--   
--   <i>Since: 2</i>
showbGCStatsPrec :: Int -> GCStats -> Builder
instance TextShow.Classes.TextShow GHC.Stats.GCStats


-- | Monomorphic <tt>TextShow</tt> function for <a>ExitCode</a>.
--   
--   <i>Since: 2</i>
module TextShow.System.Exit

-- | Convert an <a>ExitCode</a> to a <a>Builder</a> with the given
--   precedence.
--   
--   <i>Since: 2</i>
showbExitCodePrec :: Int -> ExitCode -> Builder
instance TextShow.Classes.TextShow GHC.IO.Exception.ExitCode


-- | Monomorphic <a>TextShow</a> function for <a>IO</a>-related data types.
--   
--   <i>Since: 2</i>
module TextShow.System.IO

-- | Convert a <a>Handle</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbHandle :: Handle -> Builder

-- | Convert an <a>IOMode</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbIOMode :: IOMode -> Builder

-- | Convert a <a>BufferMode</a> to a <a>Builder</a> with the given
--   precedence.
--   
--   <i>Since: 2</i>
showbBufferModePrec :: Int -> BufferMode -> Builder

-- | Convert a <a>HandlePosn</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbHandlePosn :: HandlePosn -> Builder

-- | Convert a <a>SeekMode</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbSeekMode :: SeekMode -> Builder

-- | Convert a <a>TextEncoding</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbTextEncoding :: TextEncoding -> Builder

-- | Convert a <a>CodingProgress</a> to a <a>Builder</a>. This function is
--   only available with <tt>base-4.4.0.0</tt> or later.
--   
--   <i>Since: 2</i>
showbCodingProgress :: CodingProgress -> Builder

-- | Convert a <a>CodingFailureMode</a> value to a <a>Builder</a>. This
--   function is only available with <tt>base-4.4.0.0</tt> or later.
--   
--   <i>Since: 2</i>
showbCodingFailureMode :: CodingFailureMode -> Builder

-- | Convert a <a>Newline</a> to a <a>Builder</a>.
--   
--   <i>Since: 2</i>
showbNewline :: Newline -> Builder

-- | Convert a <a>NewlineMode</a> to a <a>Builder</a> with the given
--   precedence.
--   
--   <i>Since: 2</i>
showbNewlineModePrec :: Int -> NewlineMode -> Builder
instance TextShow.Classes.TextShow GHC.IO.Handle.Types.NewlineMode
instance TextShow.Classes.TextShow GHC.IO.Handle.Types.Newline
instance TextShow.Classes.TextShow GHC.IO.Encoding.Failure.CodingFailureMode
instance TextShow.Classes.TextShow GHC.IO.Encoding.Types.CodingProgress
instance TextShow.Classes.TextShow GHC.IO.Device.SeekMode
instance TextShow.Classes.TextShow GHC.IO.Encoding.Types.TextEncoding
instance TextShow.Classes.TextShow GHC.IO.Handle.Types.BufferMode
instance TextShow.Classes.TextShow GHC.IO.Handle.HandlePosn
instance TextShow.Classes.TextShow GHC.IO.IOMode.IOMode
instance TextShow.Classes.TextShow GHC.IO.Handle.Types.Handle


-- | Monomorphic <tt>TextShow</tt> function for <a>Lexeme</a> (and
--   <a>Number</a>, if using a recent-enough version of <tt>base</tt>).
--   
--   <i>Since: 2</i>
module TextShow.Text.Read

-- | Convert a <a>Lexeme</a> to a <a>Builder</a> with the given precedence.
--   
--   <i>Since: 2</i>
showbLexemePrec :: Int -> Lexeme -> Builder

-- | Convert a <a>Number</a> to a <a>Builder</a> with the given precedence.
--   This function is only available with <tt>base-4.7.0.0</tt> or later.
--   
--   <i>Since: 2</i>
showbNumberPrec :: Int -> Number -> Builder
instance TextShow.Classes.TextShow Text.Read.Lex.Number
instance TextShow.Classes.TextShow Text.Read.Lex.Lexeme


-- | Functions for tracing and monitoring execution.
--   
--   These can be useful for investigating bugs or performance problems.
--   They should <i>not</i> be used in production code.
--   
--   If you do not wish to require <a>TextShow</a> instances for your
--   <tt>trace</tt> functions, the <a>TextShow.Debug.Trace.TH</a> and
--   <a>Text.Show.Text.Debug.Trace.Generic</a> modules exist to convert the
--   input to a debug message using Template Haskell or generics,
--   respectively.
--   
--   <i>Since: 2</i>
module TextShow.Debug.Trace

-- | The <a>tracet</a> function outputs the trace message given as its
--   first argument, before returning the second argument as its result.
--   
--   For example, this returns the value of <tt>f x</tt> but first outputs
--   the message.
--   
--   <pre>
--   tracet ("calling f with x = " &lt;&gt; showt x) (f x)
--   </pre>
--   
--   The <a>tracet</a> function should <i>only</i> be used for debugging,
--   or for monitoring execution. The function is not referentially
--   transparent: its type indicates that it is a pure function but it has
--   the side effect of outputting the trace message.
--   
--   <i>Since: 2</i>
tracet :: Text -> a -> a

-- | Like <a>tracet</a> but accepts a lazy <a>Text</a> argument.
--   
--   <i>Since: 2</i>
tracetl :: Text -> a -> a

-- | Like <a>tracet</a> but returns the message instead of a third value.
--   
--   <i>Since: 2</i>
tracetId :: Text -> Text

-- | Like <a>tracetId</a> but accepts a lazy <a>Text</a> argument.
--   
--   <i>Since: 2</i>
tracetlId :: Text -> Text

-- | Like <a>tracet</a>, but uses <a>showt</a> on the argument to convert
--   it to a <a>Text</a>.
--   
--   This makes it convenient for printing the values of interesting
--   variables or expressions inside a function. For example here we print
--   the value of the variables <tt>x</tt> and <tt>z</tt>:
--   
--   <pre>
--   f x y =
--       traceTextShow (x, z) $ result
--     where
--       z = ...
--       ...
--   </pre>
--   
--   <i>Since: 2</i>
traceTextShow :: TextShow a => a -> b -> b

-- | Like <a>traceTextShow</a> but returns the shown value instead of a
--   third value.
--   
--   <i>Since: 2</i>
traceTextShowId :: TextShow a => a -> a

-- | Like <a>tracet</a> but additionally prints a call stack if one is
--   available.
--   
--   In the current GHC implementation, the call stack is only availble if
--   the program was compiled with <tt>-prof</tt>; otherwise
--   <a>tracetStack</a> behaves exactly like <a>tracet</a>. Entries in the
--   call stack correspond to <tt>SCC</tt> annotations, so it is a good
--   idea to use <tt>-fprof-auto</tt> or <tt>-fprof-auto-calls</tt> to add
--   SCC annotations automatically.
--   
--   <i>Since: 2</i>
tracetStack :: Text -> a -> a

-- | Like <a>tracetStack</a> but accepts a lazy <a>Text</a> argument.
--   
--   <i>Since: 2</i>
tracetlStack :: Text -> a -> a

-- | The <a>tracetIO</a> function outputs the trace message from the IO
--   monad. This sequences the output with respect to other IO actions.
--   
--   <i>Since: 2</i>
tracetIO :: Text -> IO ()

-- | Like <a>tracetIO</a> but accepts a lazy <a>Text</a> argument.
--   
--   <i>Since: 2</i>
tracetlIO :: Text -> IO ()

-- | Like <a>tracet</a> but returning unit in an arbitrary
--   <a>Applicative</a> context. Allows for convenient use in do-notation.
--   Note that the application of <a>tracet</a> is not an action in the
--   <a>Applicative</a> context, as <a>tracetIO</a> is in the <a>IO</a>
--   type.
--   
--   <pre>
--   ... = do
--     x &lt;- ...
--     tracetM $ "x: " &lt;&gt; showt x
--     y &lt;- ...
--     tracetM $ "y: " &lt;&gt; showt y
--   </pre>
--   
--   <i>Since: 2</i>
tracetM :: Applicative f => Text -> f ()

-- | Like <a>tracetM</a> but accepts a lazy <a>Text</a> argument.
tracetlM :: Applicative f => Text -> f ()

-- | Like <a>tracetM</a>, but uses <a>showt</a> on the argument to convert
--   it to a <a>Text</a>.
--   
--   <pre>
--   ... = do
--     x &lt;- ...
--     traceTextShowM x
--     y &lt;- ...
--     traceTextShowM $ x + y
--   </pre>
--   
--   <i>Since: 2</i>
traceTextShowM :: (TextShow a, Applicative f) => a -> f ()

-- | The <a>tracetEvent</a> function behaves like <a>tracet</a> with the
--   difference that the message is emitted to the eventlog, if eventlog
--   profiling is available and enabled at runtime.
--   
--   It is suitable for use in pure code. In an IO context use
--   <a>tracetEventIO</a> instead.
--   
--   Note that when using GHC's SMP runtime, it is possible (but rare) to
--   get duplicate events emitted if two CPUs simultaneously evaluate the
--   same thunk that uses <a>traceEvent</a>.
--   
--   <i>Since: 2</i>
tracetEvent :: Text -> a -> a

-- | Like <a>tracetEvent</a> but accepts a lazy <a>Text</a> argument.
--   
--   <i>Since: 2</i>
tracetlEvent :: Text -> a -> a

-- | The <a>tracetEventIO</a> function emits a message to the eventlog, if
--   eventlog profiling is available and enabled at runtime.
--   
--   Compared to <a>tracetEvent</a>, <a>tracetEventIO</a> sequences the
--   event with respect to other IO actions.
--   
--   <i>Since: 2</i>
tracetEventIO :: Text -> IO ()

-- | Like <a>tracetEventIO</a> but accepts a lazy <a>Text</a> argument.
--   
--   <i>Since: 2</i>
tracetlEventIO :: Text -> IO ()

-- | The <a>tracetMarker</a> function emits a marker to the eventlog, if
--   eventlog profiling is available and enabled at runtime. The
--   <a>Text</a> is the name of the marker. The name is just used in the
--   profiling tools to help you keep clear which marker is which.
--   
--   This function is suitable for use in pure code. In an IO context use
--   <a>tracetMarkerIO</a> instead.
--   
--   Note that when using GHC's SMP runtime, it is possible (but rare) to
--   get duplicate events emitted if two CPUs simultaneously evaluate the
--   same thunk that uses <a>traceMarker</a>.
--   
--   <i>Since: 2</i>
tracetMarker :: Text -> a -> a

-- | Like <a>tracetMarker</a> but accepts a lazy <a>Text</a> argument.
--   
--   <i>Since: 2</i>
tracetlMarker :: Text -> a -> a

-- | The <a>tracetMarkerIO</a> function emits a marker to the eventlog, if
--   eventlog profiling is available and enabled at runtime.
--   
--   Compared to <a>tracetMarker</a>, <a>tracetMarkerIO</a> sequences the
--   event with respect to other IO actions.
--   
--   <i>Since: 2</i>
tracetMarkerIO :: Text -> IO ()

-- | Like <a>tracetMarkerIO</a> but accepts a lazy <a>Text</a> argument.
--   
--   <i>Since: 2</i>
tracetlMarkerIO :: Text -> IO ()


-- | Functions that splice traces into source code which take an arbitrary
--   data type or data family instance as an argument (even if it is not an
--   instance of <tt>TextShow</tt>). You need to enable the
--   <tt>TemplateHaskell</tt> language extension in order to use this
--   module.
--   
--   <i>Since: 2</i>
module TextShow.Debug.Trace.TH

-- | Generates a lambda expression which behaves like <a>traceTextShow</a>
--   (without requiring a <tt>TextShow</tt> instance).
--   
--   <i>Since: 2</i>
makeTraceTextShow :: Name -> Q Exp

-- | Generates a lambda expression which behaves like
--   <a>traceTextShowId</a> (without requiring a <tt>TextShow</tt>
--   instance).
--   
--   <i>Since: 2</i>
makeTraceTextShowId :: Name -> Q Exp

-- | Generates a lambda expression which behaves like <a>traceTextShowM</a>
--   (without requiring a <tt>TextShow</tt> instance).
--   
--   <i>Since: 2</i>
makeTraceTextShowM :: Name -> Q Exp


-- | Generic versions of <a>TextShow</a> and <a>TextShow1</a> class
--   functions, as an alternative to <a>TextShow.TH</a>, which uses
--   Template Haskell. Because there is no <tt>Generic2</tt> class,
--   <tt>TextShow2</tt> cannot be implemented generically.
--   
--   This implementation is loosely based off of the
--   <tt>Generics.Deriving.Show</tt> module from the
--   <tt>generic-deriving</tt> library.
--   
--   <i>Since: 2</i>
module TextShow.Generic

-- | A <a>Generic</a> implementation of <a>showt</a>.
--   
--   <i>Since: 2</i>
genericShowt :: (Generic a, GTextShowT Zero (Rep a)) => a -> Text

-- | A <a>Generic</a> implementation of <a>showtl</a>.
--   
--   <i>Since: 2</i>
genericShowtl :: (Generic a, GTextShowTL Zero (Rep a)) => a -> Text

-- | A <a>Generic</a> implementation of <tt>showPrect</tt>.
--   
--   <i>Since: 2</i>
genericShowtPrec :: (Generic a, GTextShowT Zero (Rep a)) => Int -> a -> Text

-- | A <a>Generic</a> implementation of <a>showtlPrec</a>.
--   
--   <i>Since: 2</i>
genericShowtlPrec :: (Generic a, GTextShowTL Zero (Rep a)) => Int -> a -> Text

-- | A <a>Generic</a> implementation of <a>showtList</a>.
--   
--   <i>Since: 2</i>
genericShowtList :: (Generic a, GTextShowT Zero (Rep a)) => [a] -> Text

-- | A <a>Generic</a> implementation of <a>showtlList</a>.
--   
--   <i>Since: 2</i>
genericShowtlList :: (Generic a, GTextShowTL Zero (Rep a)) => [a] -> Text

-- | A <a>Generic</a> implementation of <a>showb</a>.
--   
--   <i>Since: 2</i>
genericShowb :: (Generic a, GTextShowB Zero (Rep a)) => a -> Builder

-- | A <a>Generic</a> implementation of <a>showbPrec</a>.
--   
--   <i>Since: 2</i>
genericShowbPrec :: (Generic a, GTextShowB Zero (Rep a)) => Int -> a -> Builder

-- | A <a>Generic</a> implementation of <a>showbList</a>.
--   
--   <i>Since: 2</i>
genericShowbList :: (Generic a, GTextShowB Zero (Rep a)) => [a] -> Builder

-- | A <a>Generic</a> implementation of <tt>printT</tt>.
--   
--   <i>Since: 2</i>
genericPrintT :: (Generic a, GTextShowT Zero (Rep a)) => a -> IO ()

-- | A <a>Generic</a> implementation of <tt>printTL</tt>.
--   
--   <i>Since: 2</i>
genericPrintTL :: (Generic a, GTextShowTL Zero (Rep a)) => a -> IO ()

-- | A <a>Generic</a> implementation of <tt>hPrintT</tt>.
--   
--   <i>Since: 2</i>
genericHPrintT :: (Generic a, GTextShowT Zero (Rep a)) => Handle -> a -> IO ()

-- | A <a>Generic</a> implementation of <tt>hPrintTL</tt>.
--   
--   <i>Since: 2</i>
genericHPrintTL :: (Generic a, GTextShowTL Zero (Rep a)) => Handle -> a -> IO ()

-- | A <a>Generic1</a> implementation of <a>genericLiftShowbPrec</a>.
--   
--   <i>Since: 2</i>
genericLiftShowbPrec :: (Generic1 f, GTextShowB One (Rep1 f)) => (Int -> a -> Builder) -> ([a] -> Builder) -> Int -> f a -> Builder

-- | A 'Generic'/'Generic1' implementation of <tt>showbPrec1</tt>.
--   
--   <i>Since: 2</i>
genericShowbPrec1 :: (Generic a, Generic1 f, GTextShowB Zero (Rep a), GTextShowB One (Rep1 f)) => Int -> f a -> Builder

-- | Class of generic representation types that can be converted to a
--   <a>Builder</a>. The <tt>arity</tt> type variable indicates which type
--   class is used. <tt><a>GTextShowB</a> <a>Zero</a></tt> indicates
--   <a>TextShow</a> behavior, and <tt><a>GTextShowB</a> <a>One</a></tt>
--   indicates <a>TextShow1</a> behavior. <i>Since: 3.4</i>
class GTextShowB arity f

-- | This is used as the default generic implementation of <a>showbPrec</a>
--   (if the <tt>arity</tt> is <a>Zero</a>) or <a>liftShowbPrec</a> (if the
--   <tt>arity</tt> is <a>One</a>).
gShowbPrec :: GTextShowB arity f => ShowFunsB arity a -> Int -> f a -> Builder

-- | Class of generic representation types for which the <a>ConType</a> has
--   been determined. The <tt>arity</tt> type variable indicates which type
--   class is used. <tt><a>GTextShowConB</a> <a>Zero</a></tt> indicates
--   <a>TextShow</a> behavior, and <tt><a>GTextShowConB</a> <a>One</a></tt>
--   indicates <a>TextShow1</a> behavior.
class GTextShowConB arity f

-- | Convert value of a specific <a>ConType</a> to a <a>Builder</a> with
--   the given precedence.
gShowbPrecCon :: GTextShowConB arity f => ConType -> ShowFunsB arity a -> Int -> f a -> Builder

-- | A <a>ShowFunsB</a> value either stores nothing (for <a>TextShow</a>)
--   or it stores the two function arguments that show occurrences of the
--   type parameter (for <a>TextShow1</a>). <i>Since: 3.4</i>
data ShowFunsB arity a
[NoShowFunsB] :: ShowFunsB Zero a
[Show1FunsB] :: (Int -> a -> Builder) -> ([a] -> Builder) -> ShowFunsB One a

-- | Class of generic representation types that can be converted to a
--   <a>Text</a>. The <tt>arity</tt> type variable indicates which type
--   class is used. <tt><a>GTextShowT</a> <a>Zero</a></tt> indicates
--   <a>TextShow</a> behavior, and <tt><a>GTextShowT</a> <a>One</a></tt>
--   indicates <a>TextShow1</a> behavior. <i>Since: 3.4</i>
class GTextShowT arity f

-- | This is used as the default generic implementation of <a>showtPrec</a>
--   (if the <tt>arity</tt> is <a>Zero</a>) or <a>liftShowtPrec</a> (if the
--   <tt>arity</tt> is <a>One</a>).
gShowtPrec :: GTextShowT arity f => ShowFunsT arity a -> Int -> f a -> Text

-- | Class of generic representation types for which the <a>ConType</a> has
--   been determined. The <tt>arity</tt> type variable indicates which type
--   class is used. <tt><a>GTextShowConT</a> <a>Zero</a></tt> indicates
--   <a>TextShow</a> behavior, and <tt><a>GTextShowConT</a> <a>One</a></tt>
--   indicates <a>TextShow1</a> behavior.
class GTextShowConT arity f

-- | Convert value of a specific <a>ConType</a> to a <a>Text</a> with the
--   given precedence.
gShowtPrecCon :: GTextShowConT arity f => ConType -> ShowFunsT arity a -> Int -> f a -> Text

-- | A <a>ShowFunsT</a> value either stores nothing (for <a>TextShow</a>)
--   or it stores the two function arguments that show occurrences of the
--   type parameter (for <a>TextShow1</a>). <i>Since: 3.4</i>
data ShowFunsT arity a
[NoShowFunsT] :: ShowFunsT Zero a
[Show1FunsT] :: (Int -> a -> Text) -> ([a] -> Text) -> ShowFunsT One a

-- | Class of generic representation types that can be converted to a
--   <a>Text</a>. The <tt>arity</tt> type variable indicates which type
--   class is used. <tt><a>GTextShowTL</a> <a>Zero</a></tt> indicates
--   <a>TextShow</a> behavior, and <tt><a>GTextShowTL</a> <a>One</a></tt>
--   indicates <a>TextShow1</a> behavior. <i>Since: 3.4</i>
class GTextShowTL arity f

-- | This is used as the default generic implementation of
--   <a>showtlPrec</a> (if the <tt>arity</tt> is <a>Zero</a>) or
--   <a>liftShowtlPrec</a> (if the <tt>arity</tt> is <a>One</a>).
gShowtlPrec :: GTextShowTL arity f => ShowFunsTL arity a -> Int -> f a -> Text

-- | Class of generic representation types for which the <a>ConType</a> has
--   been determined. The <tt>arity</tt> type variable indicates which type
--   class is used. <tt><a>GTextShowConTL</a> <a>Zero</a></tt> indicates
--   <a>TextShow</a> behavior, and <tt><a>GTextShowConTL</a>
--   <a>One</a></tt> indicates <a>TextShow1</a> behavior.
class GTextShowConTL arity f

-- | Convert value of a specific <a>ConType</a> to a <a>Text</a> with the
--   given precedence.
gShowtlPrecCon :: GTextShowConTL arity f => ConType -> ShowFunsTL arity a -> Int -> f a -> Text

-- | A <a>ShowFunsTL</a> value either stores nothing (for <a>TextShow</a>)
--   or it stores the two function arguments that show occurrences of the
--   type parameter (for <a>TextShow1</a>). <i>Since: 3.4</i>
data ShowFunsTL arity a
[NoShowFunsTL] :: ShowFunsTL Zero a
[Show1FunsTL] :: (Int -> a -> Text) -> ([a] -> Text) -> ShowFunsTL One a

-- | Class of generic representation types that represent a constructor
--   with zero or more fields.
class IsNullary f
isNullary :: IsNullary f => f a -> Bool

-- | Whether a constructor is a record (<a>Rec</a>), a tuple (<a>Tup</a>),
--   is prefix (<a>Pref</a>), or infix (<a>Inf</a>).
--   
--   <i>Since: 2</i>
data ConType
Rec :: ConType
Tup :: ConType
Pref :: ConType
Inf :: String -> ConType

-- | A type-level indicator that <a>TextShow</a> is being derived
--   generically.
--   
--   <i>Since: 3.2</i>
data Zero

-- | A type-level indicator that <a>TextShow1</a> is being derived
--   generically.
--   
--   <i>Since: 3.2</i>
data One
instance TextShow.Classes.TextShow TextShow.Generic.ConType
instance Language.Haskell.TH.Syntax.Lift TextShow.Generic.ConType
instance GHC.Generics.Generic TextShow.Generic.ConType
instance GHC.Show.Show TextShow.Generic.ConType
instance GHC.Read.Read TextShow.Generic.ConType
instance GHC.Classes.Ord TextShow.Generic.ConType
instance GHC.Classes.Eq TextShow.Generic.ConType
instance Data.Data.Data TextShow.Generic.ConType
instance Data.Functor.Contravariant.Contravariant (TextShow.Generic.ShowFunsB arity)
instance TextShow.Generic.GTextShowB arity f => TextShow.Generic.GTextShowB arity (GHC.Generics.D1 d f)
instance TextShow.Generic.GTextShowB TextShow.Generic.Zero GHC.Generics.V1
instance TextShow.Generic.GTextShowB TextShow.Generic.One GHC.Generics.V1
instance (TextShow.Generic.GTextShowB arity f, TextShow.Generic.GTextShowB arity g) => TextShow.Generic.GTextShowB arity (f GHC.Generics.:+: g)
instance (GHC.Generics.Constructor c, TextShow.Generic.GTextShowConB arity f, TextShow.Generic.IsNullary f) => TextShow.Generic.GTextShowB arity (GHC.Generics.C1 c f)
instance TextShow.Generic.GTextShowConB arity GHC.Generics.U1
instance TextShow.Generic.GTextShowConB TextShow.Generic.One GHC.Generics.Par1
instance TextShow.Classes.TextShow c => TextShow.Generic.GTextShowConB arity (GHC.Generics.K1 i c)
instance TextShow.Classes.TextShow1 f => TextShow.Generic.GTextShowConB TextShow.Generic.One (GHC.Generics.Rec1 f)
instance (GHC.Generics.Selector s, TextShow.Generic.GTextShowConB arity f) => TextShow.Generic.GTextShowConB arity (GHC.Generics.S1 s f)
instance (TextShow.Generic.GTextShowConB arity f, TextShow.Generic.GTextShowConB arity g) => TextShow.Generic.GTextShowConB arity (f GHC.Generics.:*: g)
instance (TextShow.Classes.TextShow1 f, TextShow.Generic.GTextShowConB TextShow.Generic.One g) => TextShow.Generic.GTextShowConB TextShow.Generic.One (f GHC.Generics.:.: g)
instance TextShow.Generic.GTextShowConB arity GHC.Generics.UChar
instance TextShow.Generic.GTextShowConB arity GHC.Generics.UDouble
instance TextShow.Generic.GTextShowConB arity GHC.Generics.UFloat
instance TextShow.Generic.GTextShowConB arity GHC.Generics.UInt
instance TextShow.Generic.GTextShowConB arity GHC.Generics.UWord
instance Data.Functor.Contravariant.Contravariant (TextShow.Generic.ShowFunsT arity)
instance TextShow.Generic.GTextShowT arity f => TextShow.Generic.GTextShowT arity (GHC.Generics.D1 d f)
instance TextShow.Generic.GTextShowT TextShow.Generic.Zero GHC.Generics.V1
instance TextShow.Generic.GTextShowT TextShow.Generic.One GHC.Generics.V1
instance (TextShow.Generic.GTextShowT arity f, TextShow.Generic.GTextShowT arity g) => TextShow.Generic.GTextShowT arity (f GHC.Generics.:+: g)
instance (GHC.Generics.Constructor c, TextShow.Generic.GTextShowConT arity f, TextShow.Generic.IsNullary f) => TextShow.Generic.GTextShowT arity (GHC.Generics.C1 c f)
instance TextShow.Generic.GTextShowConT arity GHC.Generics.U1
instance TextShow.Generic.GTextShowConT TextShow.Generic.One GHC.Generics.Par1
instance TextShow.Classes.TextShow c => TextShow.Generic.GTextShowConT arity (GHC.Generics.K1 i c)
instance TextShow.Classes.TextShow1 f => TextShow.Generic.GTextShowConT TextShow.Generic.One (GHC.Generics.Rec1 f)
instance (GHC.Generics.Selector s, TextShow.Generic.GTextShowConT arity f) => TextShow.Generic.GTextShowConT arity (GHC.Generics.S1 s f)
instance (TextShow.Generic.GTextShowConT arity f, TextShow.Generic.GTextShowConT arity g) => TextShow.Generic.GTextShowConT arity (f GHC.Generics.:*: g)
instance (TextShow.Classes.TextShow1 f, TextShow.Generic.GTextShowConT TextShow.Generic.One g) => TextShow.Generic.GTextShowConT TextShow.Generic.One (f GHC.Generics.:.: g)
instance TextShow.Generic.GTextShowConT arity GHC.Generics.UChar
instance TextShow.Generic.GTextShowConT arity GHC.Generics.UDouble
instance TextShow.Generic.GTextShowConT arity GHC.Generics.UFloat
instance TextShow.Generic.GTextShowConT arity GHC.Generics.UInt
instance TextShow.Generic.GTextShowConT arity GHC.Generics.UWord
instance Data.Functor.Contravariant.Contravariant (TextShow.Generic.ShowFunsTL arity)
instance TextShow.Generic.GTextShowTL arity f => TextShow.Generic.GTextShowTL arity (GHC.Generics.D1 d f)
instance TextShow.Generic.GTextShowTL TextShow.Generic.Zero GHC.Generics.V1
instance TextShow.Generic.GTextShowTL TextShow.Generic.One GHC.Generics.V1
instance (TextShow.Generic.GTextShowTL arity f, TextShow.Generic.GTextShowTL arity g) => TextShow.Generic.GTextShowTL arity (f GHC.Generics.:+: g)
instance (GHC.Generics.Constructor c, TextShow.Generic.GTextShowConTL arity f, TextShow.Generic.IsNullary f) => TextShow.Generic.GTextShowTL arity (GHC.Generics.C1 c f)
instance TextShow.Generic.GTextShowConTL arity GHC.Generics.U1
instance TextShow.Generic.GTextShowConTL TextShow.Generic.One GHC.Generics.Par1
instance TextShow.Classes.TextShow c => TextShow.Generic.GTextShowConTL arity (GHC.Generics.K1 i c)
instance TextShow.Classes.TextShow1 f => TextShow.Generic.GTextShowConTL TextShow.Generic.One (GHC.Generics.Rec1 f)
instance (GHC.Generics.Selector s, TextShow.Generic.GTextShowConTL arity f) => TextShow.Generic.GTextShowConTL arity (GHC.Generics.S1 s f)
instance (TextShow.Generic.GTextShowConTL arity f, TextShow.Generic.GTextShowConTL arity g) => TextShow.Generic.GTextShowConTL arity (f GHC.Generics.:*: g)
instance (TextShow.Classes.TextShow1 f, TextShow.Generic.GTextShowConTL TextShow.Generic.One g) => TextShow.Generic.GTextShowConTL TextShow.Generic.One (f GHC.Generics.:.: g)
instance TextShow.Generic.GTextShowConTL arity GHC.Generics.UChar
instance TextShow.Generic.GTextShowConTL arity GHC.Generics.UDouble
instance TextShow.Generic.GTextShowConTL arity GHC.Generics.UFloat
instance TextShow.Generic.GTextShowConTL arity GHC.Generics.UInt
instance TextShow.Generic.GTextShowConTL arity GHC.Generics.UWord
instance TextShow.Generic.IsNullary GHC.Generics.U1
instance TextShow.Generic.IsNullary GHC.Generics.Par1
instance TextShow.Generic.IsNullary (GHC.Generics.K1 i c)
instance TextShow.Generic.IsNullary f => TextShow.Generic.IsNullary (GHC.Generics.S1 s f)
instance TextShow.Generic.IsNullary (GHC.Generics.Rec1 f)
instance TextShow.Generic.IsNullary (f GHC.Generics.:*: g)
instance TextShow.Generic.IsNullary (f GHC.Generics.:.: g)
instance TextShow.Generic.IsNullary GHC.Generics.UChar
instance TextShow.Generic.IsNullary GHC.Generics.UDouble
instance TextShow.Generic.IsNullary GHC.Generics.UFloat
instance TextShow.Generic.IsNullary GHC.Generics.UInt
instance TextShow.Generic.IsNullary GHC.Generics.UWord


-- | Functions that trace the values of <a>Generic</a> instances (even if
--   they are not instances of <tt>TextShow</tt>).
--   
--   <i>Since: 2</i>
module TextShow.Debug.Trace.Generic

-- | A <a>Generic</a> implementation of <a>traceTextShow</a>.
--   
--   <i>Since: 2</i>
genericTraceTextShow :: (Generic a, GTextShowT Zero (Rep a)) => a -> b -> b

-- | A <a>Generic</a> implementation of <a>traceTextShowId</a>.
--   
--   <i>Since: 2</i>
genericTraceTextShowId :: (Generic a, GTextShowT Zero (Rep a)) => a -> a

-- | A <a>Generic</a> implementation of <tt>traceShowM</tt>.
--   
--   <i>Since: 2</i>
genericTraceTextShowM :: (Generic a, GTextShowT Zero (Rep a), Applicative f) => a -> f ()


-- | Functions to mechanically derive <tt>TextShow</tt>,
--   <tt>TextShow1</tt>, or <tt>TextShow2</tt> instances, or to splice
--   <tt>show</tt>-related expressions into Haskell source code. You need
--   to enable the <tt>TemplateHaskell</tt> language extension in order to
--   use this module.
--   
--   <i>Since: 2</i>
module TextShow.TH

-- | Generates a <a>TextShow</a> instance declaration for the given data
--   type or data family instance.
--   
--   <i>Since: 2</i>
deriveTextShow :: Name -> Q [Dec]

-- | Generates a <a>TextShow1</a> instance declaration for the given data
--   type or data family instance.
--   
--   <i>Since: 2</i>
deriveTextShow1 :: Name -> Q [Dec]

-- | Generates a <a>TextShow2</a> instance declaration for the given data
--   type or data family instance.
--   
--   <i>Since: 2</i>
deriveTextShow2 :: Name -> Q [Dec]

-- | Generates a lambda expression which behaves like <a>showt</a> (without
--   requiring a <a>TextShow</a> instance).
--   
--   <i>Since: 2</i>
makeShowt :: Name -> Q Exp

-- | Generates a lambda expression which behaves like <a>showtl</a>
--   (without requiring a <a>TextShow</a> instance).
--   
--   <i>Since: 2</i>
makeShowtl :: Name -> Q Exp

-- | Generates a lambda expression which behaves like <a>showtPrec</a>
--   (without requiring a <a>TextShow</a> instance).
--   
--   <i>Since: 2</i>
makeShowtPrec :: Name -> Q Exp

-- | Generates a lambda expression which behaves like <a>showtlPrec</a>
--   (without requiring a <a>TextShow</a> instance).
--   
--   <i>Since: 2</i>
makeShowtlPrec :: Name -> Q Exp

-- | Generates a lambda expression which behaves like <a>showtList</a>
--   (without requiring a <a>TextShow</a> instance).
--   
--   <i>Since: 2</i>
makeShowtList :: Name -> Q Exp

-- | Generates a lambda expression which behaves like <a>showtlList</a>
--   (without requiring a <a>TextShow</a> instance).
--   
--   <i>Since: 2</i>
makeShowtlList :: Name -> Q Exp

-- | Generates a lambda expression which behaves like <a>showb</a> (without
--   requiring a <a>TextShow</a> instance).
--   
--   <i>Since: 2</i>
makeShowb :: Name -> Q Exp

-- | Generates a lambda expression which behaves like <a>showbPrec</a>
--   (without requiring a <a>TextShow</a> instance).
--   
--   <i>Since: 2</i>
makeShowbPrec :: Name -> Q Exp

-- | Generates a lambda expression which behaves like <a>showbList</a>
--   (without requiring a <a>TextShow</a> instance).
--   
--   <i>Since: 2</i>
makeShowbList :: Name -> Q Exp

-- | Generates a lambda expression which behaves like <tt>printT</tt>
--   (without requiring a <a>TextShow</a> instance).
--   
--   <i>Since: 2</i>
makePrintT :: Name -> Q Exp

-- | Generates a lambda expression which behaves like <tt>printTL</tt>
--   (without requiring a <a>TextShow</a> instance).
--   
--   <i>Since: 2</i>
makePrintTL :: Name -> Q Exp

-- | Generates a lambda expression which behaves like <tt>hPrintT</tt>
--   (without requiring a <a>TextShow</a> instance).
--   
--   <i>Since: 2</i>
makeHPrintT :: Name -> Q Exp

-- | Generates a lambda expression which behaves like <tt>hPrintTL</tt>
--   (without requiring a <a>TextShow</a> instance).
--   
--   <i>Since: 2</i>
makeHPrintTL :: Name -> Q Exp

-- | Generates a lambda expression which behaves like <a>liftShowbPrec</a>
--   (without requiring a <a>TextShow1</a> instance).
--   
--   <i>Since: 3</i>
makeLiftShowbPrec :: Name -> Q Exp

-- | Generates a lambda expression which behaves like <tt>showbPrec1</tt>
--   (without requiring a <a>TextShow1</a> instance).
--   
--   <i>Since: 2</i>
makeShowbPrec1 :: Name -> Q Exp

-- | Generates a lambda expression which behaves like <a>liftShowbPrec2</a>
--   (without requiring a <a>TextShow2</a> instance).
--   
--   <i>Since: 3</i>
makeLiftShowbPrec2 :: Name -> Q Exp

-- | Generates a lambda expression which behaves like <tt>showbPrec2</tt>
--   (without requiring a <a>TextShow2</a> instance).
--   
--   <i>Since: 2</i>
makeShowbPrec2 :: Name -> Q Exp

-- | Options that specify how to derive <tt>TextShow</tt> instances using
--   Template Haskell.
--   
--   <i>Since: 3.4</i>
newtype Options
Options :: GenTextMethods -> Options

-- | When Template Haskell should generate definitions for methods which
--   return <tt>Text</tt>?
[genTextMethods] :: Options -> GenTextMethods

-- | Sensible default <a>Options</a>.
--   
--   <i>Since: 3.4</i>
defaultOptions :: Options

-- | When should Template Haskell generate implementations for the methods
--   of <tt>TextShow</tt> which return <tt>Text</tt>?
--   
--   <i>Since: 3.4</i>
data GenTextMethods

-- | Always generate them.
AlwaysTextMethods :: GenTextMethods

-- | Only generate when <tt>text-show</tt> feels it's appropriate.
SometimesTextMethods :: GenTextMethods

-- | Never generate them under any circumstances.
NeverTextMethods :: GenTextMethods

-- | Like <a>deriveTextShow</a>, but takes an <a>Options</a> argument.
--   
--   <i>Since: 3.4</i>
deriveTextShowOptions :: Options -> Name -> Q [Dec]

-- | Like <a>deriveTextShow1</a>, but takes an <a>Options</a> argument.
--   
--   <i>Since: 3.4</i>
deriveTextShow1Options :: Options -> Name -> Q [Dec]

-- | Like <a>deriveTextShow2</a>, but takes an <a>Options</a> argument.
--   
--   <i>Since: 3.4</i>
deriveTextShow2Options :: Options -> Name -> Q [Dec]
instance TextShow.Classes.TextShow TextShow.Options.GenTextMethods
instance TextShow.Classes.TextShow TextShow.Options.Options


-- | Efficiently convert from values to <tt>Text</tt> via <a>Builder</a>s.
--   
--   <i>Since: 2</i>
module TextShow

-- | Conversion of values to <tt>Text</tt>. Because there are both strict
--   and lazy <tt>Text</tt> variants, the <a>TextShow</a> class
--   deliberately avoids using <tt>Text</tt> in its functions. Instead,
--   <a>showbPrec</a>, <a>showb</a>, and <a>showbList</a> all return
--   <a>Builder</a>, an efficient intermediate form that can be converted
--   to either kind of <tt>Text</tt>.
--   
--   <a>Builder</a> is a <a>Monoid</a>, so it is useful to use the
--   <a>mappend</a> (or <a>&lt;&gt;</a>) function to combine
--   <a>Builder</a>s when creating <a>TextShow</a> instances. As an
--   example:
--   
--   <pre>
--   import Data.Monoid
--   import TextShow
--   
--   data Example = Example Int Int
--   instance TextShow Example where
--       showb (Example i1 i2) = showb i1 &lt;&gt; showbSpace &lt;&gt; showb i2
--   </pre>
--   
--   If you do not want to create <a>TextShow</a> instances manually, you
--   can alternatively use the <a>TextShow.TH</a> module to automatically
--   generate default <a>TextShow</a> instances using Template Haskell, or
--   the <a>TextShow.Generic</a> module to quickly define <a>TextShow</a>
--   instances using <tt>genericShowbPrec</tt>.
--   
--   <i>Since: 2</i>
class TextShow a where showbPrec _ = showb showb = showbPrec 0 showbList = showbListWith showb showtPrec p = toStrict . showtlPrec p showt = showtPrec 0 showtList = toStrict . showtlList showtlPrec p = toLazyText . showbPrec p showtl = showtlPrec 0 showtlList = toLazyText . showbList

-- | Convert a value to a <a>Builder</a> with the given predence.
--   
--   <i>Since: 2</i>
showbPrec :: TextShow a => Int -> a -> Builder

-- | Converts a value to a strict <a>Text</a>. If you hand-define this, it
--   should satisfy:
--   
--   <pre>
--   <a>showb</a> = <a>showbPrec</a> 0
--   </pre>
--   
--   <i>Since: 2</i>
showb :: TextShow a => a -> Builder

-- | Converts a list of values to a <a>Builder</a>. By default, this is
--   defined as <tt>'showbList = <a>showbListWith</a> <a>showb</a></tt>,
--   but it can be overridden to allow for specialized displaying of lists
--   (e.g., lists of <a>Char</a>s).
--   
--   <i>Since: 2</i>
showbList :: TextShow a => [a] -> Builder

-- | Converts a value to a strict <a>Text</a> with the given precedence.
--   This can be overridden for efficiency, but it should satisfy:
--   
--   <pre>
--   <a>showtPrec</a> p = <a>toStrict</a> . <a>showtlPrec</a> p
--   </pre>
--   
--   <i>Since: 3</i>
showtPrec :: TextShow a => Int -> a -> Text

-- | Converts a value to a strict <a>Text</a>. This can be overridden for
--   efficiency, but it should satisfy:
--   
--   <pre>
--   <a>showt</a> = <a>showtPrec</a> 0
--   <a>showt</a> = <a>toStrict</a> . <a>showtl</a>
--   </pre>
--   
--   The first equation is the default definition of <a>showt</a>.
--   
--   <i>Since: 3</i>
showt :: TextShow a => a -> Text

-- | Converts a list of values to a strict <a>Text</a>. This can be
--   overridden for efficiency, but it should satisfy:
--   
--   <pre>
--   <a>showtList</a> = <a>toStrict</a> . <a>showtlList</a>
--   </pre>
--   
--   <i>Since: 3</i>
showtList :: TextShow a => [a] -> Text

-- | Converts a value to a lazy <a>Text</a> with the given precedence. This
--   can be overridden for efficiency, but it should satisfy:
--   
--   <pre>
--   <a>showtlPrec</a> p = <a>toLazyText</a> . <a>showbPrec</a> p
--   </pre>
--   
--   <i>Since: 3</i>
showtlPrec :: TextShow a => Int -> a -> Text

-- | Converts a value to a lazy <a>Text</a>. This can be overridden for
--   efficiency, but it should satisfy:
--   
--   <pre>
--   <a>showtl</a> = <a>showtlPrec</a> 0
--   <a>showtl</a> = <a>toLazyText</a> . <a>showb</a>
--   </pre>
--   
--   The first equation is the default definition of <a>showtl</a>.
--   
--   <i>Since: 3</i>
showtl :: TextShow a => a -> Text

-- | Converts a list of values to a lazy <a>Text</a>. This can be
--   overridden for efficiency, but it should satisfy:
--   
--   <pre>
--   <a>showtlList</a> = <a>toLazyText</a> . <a>showbList</a>
--   </pre>
--   
--   <i>Since: 3</i>
showtlList :: TextShow a => [a] -> Text

-- | Surrounds <a>Builder</a> output with parentheses if the <a>Bool</a>
--   parameter is <a>True</a>.
--   
--   <i>Since: 2</i>
showbParen :: Bool -> Builder -> Builder

-- | Surrounds strict <a>Text</a> output with parentheses if the
--   <a>Bool</a> parameter is <a>True</a>.
--   
--   <i>Since: 3.4</i>
showtParen :: Bool -> Text -> Text

-- | Surrounds lazy <a>Text</a> output with parentheses if the <a>Bool</a>
--   parameter is <a>True</a>.
--   
--   <i>Since: 3.4</i>
showtlParen :: Bool -> Text -> Text

-- | Construct a <a>Builder</a> containing a single space character.
--   
--   <i>Since: 2</i>
showbSpace :: Builder

-- | Construct a strict <a>Text</a> containing a single space character.
--   
--   <i>Since: 3.4</i>
showtSpace :: Text

-- | Construct a lazy <a>Text</a> containing a single space character.
--   
--   <i>Since: 3.4</i>
showtlSpace :: Text

-- | Lifting of the <a>TextShow</a> class to unary type constructors.
--   
--   <i>Since: 2</i>
class TextShow1 f where liftShowbList sp sl = showbListWith (liftShowbPrec sp sl 0)

-- | <a>showbPrec</a> function for an application of the type constructor
--   based on <a>showbPrec</a> and <a>showbList</a> functions for the
--   argument type.
--   
--   <i>Since: 3</i>
liftShowbPrec :: TextShow1 f => (Int -> a -> Builder) -> ([a] -> Builder) -> Int -> f a -> Builder

-- | <a>showbList</a> function for an application of the type constructor
--   based on <a>showbPrec</a> and <a>showbList</a> functions for the
--   argument type. The default implementation using standard list syntax
--   is correct for most types.
--   
--   <i>Since: 3</i>
liftShowbList :: TextShow1 f => (Int -> a -> Builder) -> ([a] -> Builder) -> [f a] -> Builder

-- | Lift the standard <a>showbPrec</a> and <a>showbList</a> functions
--   through the type constructor.
--   
--   <i>Since: 2</i>
showbPrec1 :: (TextShow1 f, TextShow a) => Int -> f a -> Builder

-- | <tt><a>showbUnaryWith</a> sp n p x</tt> produces the <a>Builder</a>
--   representation of a unary data constructor with name <tt>n</tt> and
--   argument <tt>x</tt>, in precedence context <tt>p</tt>, using the
--   function <tt>sp</tt> to show occurrences of the type argument.
--   
--   <i>Since: 2</i>
showbUnaryWith :: (Int -> a -> Builder) -> Builder -> Int -> a -> Builder

-- | <a>showtPrec</a> function for an application of the type constructor
--   based on <a>showtPrec</a> and <a>showtList</a> functions for the
--   argument type.
--   
--   The current implementation is based on <a>liftShowbPrec</a>
--   internally.
--   
--   <i>Since: 3.4</i>
liftShowtPrec :: TextShow1 f => (Int -> a -> Text) -> ([a] -> Text) -> Int -> f a -> Text

-- | <a>showtlPrec</a> function for an application of the type constructor
--   based on <a>showtlPrec</a> and <a>showtlList</a> functions for the
--   argument type.
--   
--   The current implementation is based on <a>liftShowbPrec</a>
--   internally.
--   
--   <i>Since: 3.4</i>
liftShowtlPrec :: TextShow1 f => (Int -> a -> Text) -> ([a] -> Text) -> Int -> f a -> Text

-- | Lifting of the <a>TextShow</a> class to binary type constructors.
--   
--   <i>Since: 2</i>
class TextShow2 f where liftShowbList2 sp1 sl1 sp2 sl2 = showbListWith (liftShowbPrec2 sp1 sl1 sp2 sl2 0)

-- | <a>showbPrec</a> function for an application of the type constructor
--   based on <a>showbPrec</a> and <a>showbList</a> functions for the
--   argument types.
--   
--   <i>Since: 3</i>
liftShowbPrec2 :: TextShow2 f => (Int -> a -> Builder) -> ([a] -> Builder) -> (Int -> b -> Builder) -> ([b] -> Builder) -> Int -> f a b -> Builder

-- | <a>showbList</a> function for an application of the type constructor
--   based on <a>showbPrec</a> and <a>showbList</a> functions for the
--   argument types. The default implementation using standard list syntax
--   is correct for most types.
--   
--   <i>Since: 3</i>
liftShowbList2 :: TextShow2 f => (Int -> a -> Builder) -> ([a] -> Builder) -> (Int -> b -> Builder) -> ([b] -> Builder) -> [f a b] -> Builder

-- | Lift two <a>showbPrec</a> functions through the type constructor.
--   
--   <i>Since: 2</i>
showbPrec2 :: (TextShow2 f, TextShow a, TextShow b) => Int -> f a b -> Builder

-- | <tt><a>showbBinaryWith</a> sp n p x y</tt> produces the <a>Builder</a>
--   representation of a binary data constructor with name <tt>n</tt> and
--   arguments <tt>x</tt> and <tt>y</tt>, in precedence context <tt>p</tt>,
--   using the functions <tt>sp1</tt> and <tt>sp2</tt> to show occurrences
--   of the type arguments.
--   
--   <i>Since: 2</i>
showbBinaryWith :: (Int -> a -> Builder) -> (Int -> b -> Builder) -> Builder -> Int -> a -> b -> Builder

-- | <a>showtPrec</a> function for an application of the type constructor
--   based on <a>showtPrec</a> and <a>showtList</a> functions for the
--   argument type.
--   
--   The current implementation is based on <a>liftShowbPrec2</a>
--   internally.
--   
--   <i>Since: 3.4</i>
liftShowtPrec2 :: TextShow2 f => (Int -> a -> Text) -> ([a] -> Text) -> (Int -> b -> Text) -> ([b] -> Text) -> Int -> f a b -> Text

-- | <a>showtlPrec</a> function for an application of the type constructor
--   based on <a>showtlPrec</a> and <a>showtlList</a> functions for the
--   argument type.
--   
--   The current implementation is based on <a>liftShowbPrec2</a>
--   internally.
--   
--   <i>Since: 3.4</i>
liftShowtlPrec2 :: TextShow2 f => (Int -> a -> Text) -> ([a] -> Text) -> (Int -> b -> Text) -> ([b] -> Text) -> Int -> f a b -> Text

-- | A <tt>Builder</tt> is an efficient way to build lazy <tt>Text</tt>
--   values. There are several functions for constructing builders, but
--   only one to inspect them: to extract any data, you have to turn them
--   into lazy <tt>Text</tt> values using <tt>toLazyText</tt>.
--   
--   Internally, a builder constructs a lazy <tt>Text</tt> by filling
--   arrays piece by piece. As each buffer is filled, it is 'popped' off,
--   to become a new chunk of the resulting lazy <tt>Text</tt>. All this is
--   hidden from the user of the <tt>Builder</tt>.
data Builder :: *

-- | Convert a <a>Builder</a> to a strict <a>Text</a>.
--   
--   <i>Since: 2</i>
toText :: Builder -> Text

-- | <i>O(n).</i> Extract a lazy <tt>Text</tt> from a <tt>Builder</tt> with
--   a default buffer size. The construction work takes place if and when
--   the relevant part of the lazy <tt>Text</tt> is demanded.
toLazyText :: Builder -> Text

-- | <i>O(n).</i> Extract a lazy <tt>Text</tt> from a <tt>Builder</tt>,
--   using the given size for the initial buffer. The construction work
--   takes place if and when the relevant part of the lazy <tt>Text</tt> is
--   demanded.
--   
--   If the initial buffer is too small to hold all data, subsequent
--   buffers will be the default buffer size.
toLazyTextWith :: Int -> Builder -> Text

-- | Convert a <a>Builder</a> to a <a>String</a> (without surrounding it
--   with double quotes, as <a>show</a> would).
--   
--   <i>Since: 2</i>
toString :: Builder -> String

-- | <i>O(1).</i> A <tt>Builder</tt> taking a single character, satisfying
--   
--   <ul>
--   <li><pre><a>toLazyText</a> (<a>singleton</a> c) = <a>singleton</a>
--   c</pre></li>
--   </ul>
singleton :: Char -> Builder

-- | <i>O(1).</i> A <tt>Builder</tt> taking a <a>Text</a>, satisfying
--   
--   <ul>
--   <li><pre><a>toLazyText</a> (<a>fromText</a> t) = <a>fromChunks</a>
--   [t]</pre></li>
--   </ul>
fromText :: Text -> Builder

-- | <i>O(1).</i> A <tt>Builder</tt> taking a lazy <tt>Text</tt>,
--   satisfying
--   
--   <ul>
--   <li><pre><a>toLazyText</a> (<a>fromLazyText</a> t) = t</pre></li>
--   </ul>
fromLazyText :: Text -> Builder

-- | <i>O(1).</i> A Builder taking a <tt>String</tt>, satisfying
--   
--   <ul>
--   <li><pre><a>toLazyText</a> (<a>fromString</a> s) = <a>fromChunks</a>
--   [S.pack s]</pre></li>
--   </ul>
fromString :: String -> Builder

-- | <i>O(1).</i> Pop the strict <tt>Text</tt> we have constructed so far,
--   if any, yielding a new chunk in the result lazy <tt>Text</tt>.
flush :: Builder

-- | Computes the length of a <a>Builder</a>.
--   
--   <i>Since: 2</i>
lengthB :: Builder -> Int64

-- | Merges several <a>Builder</a>s, separating them by newlines.
--   
--   <i>Since: 2</i>
unlinesB :: [Builder] -> Builder

-- | Merges several <a>Builder</a>s, separating them by spaces.
--   
--   <i>Since: 2</i>
unwordsB :: [Builder] -> Builder

-- | Writes a value's strict <a>Text</a> representation to the standard
--   output, followed by a newline.
--   
--   <i>Since: 2</i>
printT :: TextShow a => a -> IO ()

-- | Writes a value's lazy <a>Text</a> representation to the standard
--   output, followed by a newline.
--   
--   <i>Since: 2</i>
printTL :: TextShow a => a -> IO ()

-- | Writes a value's strict <a>Text</a> representation to a file handle,
--   followed by a newline.
--   
--   <i>Since: 2</i>
hPrintT :: TextShow a => Handle -> a -> IO ()

-- | Writes a value's lazy <a>Text</a> representation to a file handle,
--   followed by a newline.
--   
--   <i>Since: 2</i>
hPrintTL :: TextShow a => Handle -> a -> IO ()

-- | The <a>TextShow</a> instance for <a>FromStringShow</a> is based on its
--   <tt>String</tt> <a>Show</a> instance. That is,
--   
--   <pre>
--   showbPrec p (<a>FromStringShow</a> x) = <a>showsToShowb</a> <a>showsPrec</a> p x
--   </pre>
--   
--   <i>Since: 2</i>
newtype FromStringShow a
FromStringShow :: a -> FromStringShow a
[fromStringShow] :: FromStringShow a -> a

-- | The <tt>String</tt> <a>Show</a> instance for <a>FromTextShow</a> is
--   based on its <a>TextShow</a> instance. That is,
--   
--   <pre>
--   showsPrec p (<a>FromTextShow</a> x) = <a>showbToShows</a> <a>showbPrec</a> p x
--   </pre>
--   
--   <i>Since: 2</i>
newtype FromTextShow a
FromTextShow :: a -> FromTextShow a
[fromTextShow] :: FromTextShow a -> a

-- | The <a>TextShow1</a> instance for <a>FromStringShow1</a> is based on
--   its <tt>String</tt> <a>Show1</a> instance. That is,
--   
--   <pre>
--   <a>liftShowbPrec</a> sp sl p (<a>FromStringShow1</a> x) =
--       <a>showsPrecToShowbPrec</a> (<a>liftShowsPrec</a> (<a>showbPrecToShowsPrec</a> sp)
--                                               (<a>showbToShows</a>         sl))
--                              p x
--   </pre>
--   
--   <i>Since: 3</i>
newtype FromStringShow1 f a
FromStringShow1 :: f a -> FromStringShow1 f a
[fromStringShow1] :: FromStringShow1 f a -> f a

-- | The <tt>String</tt> <a>Show1</a> instance for <a>FromTextShow1</a> is
--   based on its <a>TextShow1</a> instance. That is,
--   
--   <pre>
--   <a>liftShowsPrec</a> sp sl p (<a>FromTextShow1</a> x) =
--       <a>showbPrecToShowsPrec</a> (<a>liftShowbPrec</a> (<a>showsPrecToShowbPrec</a> sp)
--                                               (<a>showsToShowb</a>         sl))
--                              p x
--   </pre>
--   
--   <i>Since: 3</i>
newtype FromTextShow1 f a
FromTextShow1 :: f a -> FromTextShow1 f a
[fromTextShow1] :: FromTextShow1 f a -> f a

-- | The <a>TextShow2</a> instance for <a>FromStringShow2</a> is based on
--   its <tt>String</tt> <a>Show2</a> instance. That is,
--   
--   <pre>
--   <a>liftShowbPrec2</a> sp1 sl1 sp2 sl2 p (<a>FromStringShow2</a> x) =
--       <a>showsPrecToShowbPrec</a> (<a>liftShowsPrec2</a> (<a>showbPrecToShowsPrec</a> sp1)
--                                                (<a>showbToShows</a>         sl1)
--                                                (<a>showbPrecToShowsPrec</a> sp2)
--                                                (<a>showbToShows</a>         sl2))
--                              p x
--   </pre>
--   
--   <i>Since: 3</i>
newtype FromStringShow2 f a b
FromStringShow2 :: f a b -> FromStringShow2 f a b
[fromStringShow2] :: FromStringShow2 f a b -> f a b

-- | The <tt>String</tt> <a>Show2</a> instance for <a>FromTextShow2</a> is
--   based on its <a>TextShow2</a> instance. That is,
--   
--   <pre>
--   liftShowsPrec2 sp1 sl1 sp2 sl2 p (<a>FromTextShow2</a> x) =
--       <a>showbPrecToShowsPrec</a> (<a>liftShowbPrec2</a> (<a>showsPrecToShowbPrec</a> sp1)
--                                                (<a>showsToShowb</a>         sl1)
--                                                (<a>showsPrecToShowbPrec</a> sp2)
--                                                (<a>showsToShowb</a>         sl2))
--                              p x
--   </pre>
--   
--   <i>Since: 3</i>
newtype FromTextShow2 f a b
FromTextShow2 :: f a b -> FromTextShow2 f a b
[fromTextShow2] :: FromTextShow2 f a b -> f a b

-- | Convert a precedence-aware <a>ShowS</a>-based show function to a
--   <a>Builder</a>-based one.
--   
--   <i>Since: 3</i>
showsPrecToShowbPrec :: (Int -> a -> ShowS) -> Int -> a -> Builder

-- | Convert a <a>ShowS</a>-based show function to a <a>Builder</a>-based
--   one.
--   
--   <i>Since: 3</i>
showsToShowb :: (a -> ShowS) -> a -> Builder

-- | Convert a precedence-aware <a>Builder</a>-based show function to a
--   <a>ShowS</a>-based one.
--   
--   <i>Since: 3</i>
showbPrecToShowsPrec :: (Int -> a -> Builder) -> Int -> a -> ShowS

-- | Convert a <a>Builder</a>-based show function to a <a>ShowS</a>-based
--   one.
--   
--   <i>Since: 3</i>
showbToShows :: (a -> Builder) -> a -> ShowS

-- | Convert a precedence-aware, strict <a>Text</a>-based show function to
--   a <a>Builder</a>-based one.
--   
--   <i>Since: 3.4</i>
showtPrecToShowbPrec :: (Int -> a -> Text) -> Int -> a -> Builder

-- | Convert a precedence-aware, lazy <a>Text</a>-based show function to a
--   <a>Builder</a>-based one.
--   
--   <i>Since: 3.4</i>
showtlPrecToShowbPrec :: (Int -> a -> Text) -> Int -> a -> Builder

-- | Convert a strict <a>Text</a>-based show function to a
--   <a>Builder</a>-based one.
--   
--   <i>Since: 3.4</i>
showtToShowb :: (a -> Text) -> a -> Builder

-- | Convert a lazy <a>Text</a>-based show function to a
--   <a>Builder</a>-based one.
--   
--   <i>Since: 3.4</i>
showtlToShowb :: (a -> Text) -> a -> Builder

-- | Convert a precedence-aware <a>Builder</a>-based show function to a
--   strict <a>Text</a>-based one.
--   
--   <i>Since: 3.4</i>
showbPrecToShowtPrec :: (Int -> a -> Builder) -> Int -> a -> Text

-- | Convert a precedence-aware <a>Builder</a>-based show function to a
--   lazy <a>Text</a>-based one.
--   
--   <i>Since: 3.4</i>
showbPrecToShowtlPrec :: (Int -> a -> Builder) -> Int -> a -> Text

-- | Convert a <a>Builder</a>-based show function to a strict
--   <a>Text</a>-based one.
--   
--   <i>Since: 3</i>
showbToShowt :: (a -> Builder) -> a -> Text

-- | Convert a <a>Builder</a>-based show function to a lazy
--   <a>Text</a>-based one.
--   
--   <i>Since: 3</i>
showbToShowtl :: (a -> Builder) -> a -> Text
