Portability | GHC |
---|---|

Stability | experimental |

Maintainer | bos@serpentine.com, rtomharper@googlemail.com, duncan@haskell.org |

Functions used frequently when reading textual data.

# Documentation

type Reader a = Text -> Either String (a, Text)Source

Read some text, and if the read succeeds, return its value and the remaining text.

hexadecimal :: Integral a => Reader aSource

Read a hexadecimal number, with optional leading `"0x"`

. This
function is case insensitive.

This function does not handle leading sign characters. If you need
to handle signed input, use

.
`signed`

`hexadecimal`

signed :: Num a => Reader a -> Reader aSource

Read a leading sign character (`'-'`

or `'+'`

) and apply it
to the result of applying the given reader.

rational :: RealFloat a => Reader aSource

Read a rational number.

This function accepts an optional leading sign character.

Read a rational number.

This function accepts an optional leading sign character.

*Note*: This function is almost ten times faster than `rational`

,
but is slightly less accurate.

The `Double`

type supports about 16 decimal places of accuracy.
For 94.2% of numbers, this function and `rational`

give identical
results, but for the remaining 5.8%, this function loses precision
around the 15th decimal place. For 0.001% of numbers, this
function will lose precision at the 13th or 14th decimal place.