Portability | Non-portable (type synonym instances) |
---|---|

Stability | Experimental |

Maintainer | Dan Doel |

Efficiently convert from values to lazy byte strings.

- class Show a where
- show :: Show a => a -> ByteString
- putAscii :: Char -> Put
- putUTF8 :: Char -> Put
- putAsciiStr :: String -> Put
- putUTF8Str :: String -> Put
- unsafePutDigit :: Int -> Put
- putDigit :: Int -> Put
- showpIntAtBase :: Integral a => a -> (Int -> Char) -> a -> Put
- showpGFloat :: RealFloat a => Maybe Int -> a -> Put
- showpFFloat :: RealFloat a => Maybe Int -> a -> Put
- showpEFloat :: RealFloat a => Maybe Int -> a -> Put
- unlinesP :: [Put] -> Put
- unwordsP :: [Put] -> Put
- showpParen :: Bool -> Put -> Put
- print :: Show a => a -> IO ()
- type Put = PutM ()
- newtype PutM a = Put {
- unPut :: PairS a

- runPut :: Put -> ByteString

# The Show class

showpPrec :: Int -> a -> PutSource

Encodes a value to an efficient byte string builder. The precedence is used to determine where to put parentheses in a shown expression involving operators.

Values of type Put can be efficiently combined, so the showp functions are available for showing multiple values before producing an output byte string.

Encodes a value to an efficient byte string builder. Values of type Put can be efficiently combined, so this is available for building strings from multiple values.

Allows for specialized display of lists of values. This is used, for example, when showing arrays of Chars.

Show Bool | |

Show Char | |

Show Double | |

Show Float | |

Show Int | |

Show Int8 | |

Show Int16 | |

Show Int32 | |

Show Int64 | |

Show Integer | |

Show Ordering | |

Show Word | |

Show Word8 | |

Show Word16 | |

Show Word32 | |

Show Word64 | |

Show () | |

Show Put | |

Show a => Show [a] | |

(Show a, Integral a) => Show (Ratio a) | |

(Show a, RealFloat a) => Show (Complex a) | |

Show a => Show (Maybe a) | |

Show e => Show (Set e) | |

(Show a, Show b) => Show (Either a b) | |

(Show a, Show b) => Show (a, b) | |

(Show i, Show e, Ix i) => Show (Array i e) | |

(Show k, Show v) => Show (Map k v) | |

(Show a, Show b, Show c) => Show (a, b, c) | |

(Show a, Show b, Show c, Show d) => Show (a, b, c, d) | |

(Show a, Show b, Show c, Show d, Show e) => Show (a, b, c, d, e) | |

(Show a, Show b, Show c, Show d, Show e, Show f) => Show (a, b, c, d, e, f) | |

(Show a, Show b, Show c, Show d, Show e, Show f, Show g) => Show (a, b, c, d, e, f, g) |

show :: Show a => a -> ByteStringSource

Encode a single value into a byte string

# Putting Chars

# Putting Strings

putAsciiStr :: String -> PutSource

Writes a string of ascii characters to a byte string

putUTF8Str :: String -> PutSource

Writes a string of unicode characters to a byte string, properly UTF-8 encoded

# Putting digits

unsafePutDigit :: Int -> PutSource

Puts the decimal digit corresponding to the given Int without checking that it is in the interval [0,9]

# Putting integers

showpIntAtBase :: Integral a => a -> (Int -> Char) -> a -> PutSource

Shows an Integral number using the base specified by the first argument and the chracter representation specified by the second.

# Putting floats

showpGFloat :: RealFloat a => Maybe Int -> a -> PutSource

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.

showpFFloat :: RealFloat a => Maybe Int -> a -> PutSource

Show a signed RealFloat value using decimal notation. The optional integer can be used to specify precision.

showpEFloat :: RealFloat a => Maybe Int -> a -> PutSource

Show a signed RealFloat value using scientific (exponential) notation. The optional integer can be used to specify precision.

# Combining builders

showpParen :: Bool -> Put -> PutSource

A utility function for surrounding output by parentheses conditionally.

# Printing values

# Put

newtype PutM a

The PutM type. A Writer monad over the efficient Builder monoid.

runPut :: Put -> ByteString

Run the `Put`

monad with a serialiser