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

-- | Efficient conversion of values into readable byte strings.
--   
--   Efficient conversion of values into readable byte strings.
@package bytestring-show
@version 0.3.5.4

-- | Efficiently convert from values to lazy byte strings.
module Text.Show.ByteString

-- | Conversion of values to readable byte strings. Minimal complete
--   definition: showp or showpPrec
class Show a where showpPrec _ = showp showp = showpPrec 0 showpList [] = putWord8 91 >> putWord8 93 showpList (x : xs) = putWord8 91 >> showp x >> go xs where go (y : ys) = putWord8 44 >> showp y >> go ys go [] = putWord8 93
showpPrec :: Show a => Int -> a -> Put
showp :: Show a => a -> Put
showpList :: Show a => [a] -> Put

-- | Encode a single value into a byte string
show :: Show a => a -> ByteString

-- | Writes a single Char to a byte string, assuming it's ascii.
putAscii :: Char -> Put

-- | Writes a single Char to a byte string, properly UTF-8 encoded
putUTF8 :: Char -> Put

-- | Writes a string of ascii characters to a byte string
putAsciiStr :: String -> Put

-- | Writes a string of unicode characters to a byte string, properly UTF-8
--   encoded
putUTF8Str :: String -> Put

-- | Puts the decimal digit corresponding to the given Int without checking
--   that it is in the interval [0,9]
unsafePutDigit :: Int -> Put

-- | Puts the digit corresponding to the Int passed in.
putDigit :: Int -> Put

-- | Shows an Integral number using the base specified by the first
--   argument and the chracter representation specified by the second.
showpIntAtBase :: Integral a => a -> (Int -> Char) -> a -> Put

-- | Show a signed RealFloat value using decimal notation when the absolute
--   value lies between 0.1 and 9,999,999, and scientific notation
--   otherwise. The optional integer can be used to specify precision.
showpGFloat :: RealFloat a => Maybe Int -> a -> Put

-- | Show a signed RealFloat value using decimal notation. The optional
--   integer can be used to specify precision.
showpFFloat :: RealFloat a => Maybe Int -> a -> Put

-- | Show a signed RealFloat value using scientific (exponential) notation.
--   The optional integer can be used to specify precision.
showpEFloat :: RealFloat a => Maybe Int -> a -> Put

-- | Merge several string builders, separating them by newlines
unlinesP :: [Put] -> Put

-- | Merge several string builders, separating them by spaces
unwordsP :: [Put] -> Put

-- | A utility function for surrounding output by parentheses
--   conditionally.
showpParen :: Bool -> Put -> Put

-- | Print a value to the standard output
print :: Show a => a -> IO ()

-- | Put merely lifts Builder into a Writer monad, applied to ().
type Put = PutM ()

-- | The PutM type. A Writer monad over the efficient Builder monoid.
newtype PutM a :: * -> *
Put :: PairS a -> PutM a
unPut :: PutM a -> PairS a

-- | Run the Put monad with a serialiser
runPut :: Put -> ByteString
instance Show e => Show (Set e)
instance (Show k, Show v) => Show (Map k v)
instance (Show i, Show e, Ix i) => Show (Array i e)
instance (Show a, Show b, Show c, Show d, Show e, Show f, Show g) => Show (a, b, c, d, e, f, g)
instance (Show a, Show b, Show c, Show d, Show e, Show f) => Show (a, b, c, d, e, f)
instance (Show a, Show b, Show c, Show d, Show e) => Show (a, b, c, d, e)
instance (Show a, Show b, Show c, Show d) => Show (a, b, c, d)
instance (Show a, Show b, Show c) => Show (a, b, c)
instance (Show a, Show b) => Show (a, b)
instance Show Ordering
instance (Show a, Show b) => Show (Either a b)
instance Show a => Show (Maybe a)
instance (Show a, RealFloat a) => Show (Complex a)
instance (Show a, Integral a) => Show (Ratio a)
instance Show Double
instance Show Float
instance Show Integer
instance Show Word64
instance Show Word32
instance Show Word16
instance Show Word8
instance Show Word
instance Show Int64
instance Show Int32
instance Show Int16
instance Show Int8
instance Show Int
instance Show a => Show [a]
instance Show Bool
instance Show Char
instance Show ()
instance Show Put
