Copyright | (C) 2014-2017 Ryan Scott |
---|---|
License | BSD-style (see the file LICENSE) |
Maintainer | Ryan Scott |
Stability | Provisional |
Portability | GHC |
Safe Haskell | None |
Language | Haskell2010 |
Class re-exports
Conversion of values to Text
. Because there are both strict and lazy Text
variants, the TextShow
class deliberately avoids using Text
in its functions.
Instead, showbPrec
, showb
, and showbList
all return Builder
, an
efficient intermediate form that can be converted to either kind of Text
.
Builder
is a Monoid
, so it is useful to use the mappend
(or <>
) function
to combine Builder
s when creating TextShow
instances. As an example:
import Data.Monoid import TextShow data Example = Example Int Int instance TextShow Example where showb (Example i1 i2) = showb i1 <> showbSpace <> showb i2
If you do not want to create TextShow
instances manually, you can alternatively
use the TextShow.TH module to automatically generate default TextShow
instances using Template Haskell, or the TextShow.Generic module to
quickly define TextShow
instances using genericShowbPrec
.
Since: 2
showbPrec :: Int -> a -> Builder #
Convert a value to a Builder
with the given predence.
Since: 2
Converts a value to a strict Text
. If you hand-define this, it should
satisfy:
showb
=showbPrec
0
Since: 2
Converts a list of values to a Builder
. By default, this is defined as
'showbList =
, but it can be overridden to allow
for specialized displaying of lists (e.g., lists of showbListWith
showb
Char
s).
Since: 2
showtPrec :: Int -> a -> Text #
Converts a value to a strict Text
with the given precedence. This
can be overridden for efficiency, but it should satisfy:
showtPrec
p =toStrict
.showtlPrec
p
Since: 3
Converts a value to a strict Text
. This can be overridden for
efficiency, but it should satisfy:
showt
=showtPrec
0showt
=toStrict
.showtl
The first equation is the default definition of showt
.
Since: 3
Converts a list of values to a strict Text
. This can be overridden for
efficiency, but it should satisfy:
showtList
=toStrict
.showtlList
Since: 3
showtlPrec :: Int -> a -> Text #
Converts a value to a lazy Text
with the given precedence. This
can be overridden for efficiency, but it should satisfy:
showtlPrec
p =toLazyText
.showbPrec
p
Since: 3
Converts a value to a lazy Text
. This can be overridden for
efficiency, but it should satisfy:
showtl
=showtlPrec
0showtl
=toLazyText
.showb
The first equation is the default definition of showtl
.
Since: 3
showtlList :: [a] -> Text #
Converts a list of values to a lazy Text
. This can be overridden for
efficiency, but it should satisfy:
showtlList
=toLazyText
.showbList
Since: 3
Show a => TextShow (FromStringShow a) | |
TextShow a => TextShow (FromTextShow a) | |
(Show1 f, Show a) => TextShow (FromStringShow1 * f a) | Not available if using |
(TextShow1 f, TextShow a) => TextShow (FromTextShow1 * f a) | |
(Show2 f, Show a, Show b) => TextShow (FromStringShow2 * * f a b) | Not available if using |
(TextShow2 f, TextShow a, TextShow b) => TextShow (FromTextShow2 * * f a b) | |
Lifting of the TextShow
class to unary type constructors.
Since: 2
liftShowbPrec :: (Int -> a -> Builder) -> ([a] -> Builder) -> Int -> f a -> Builder #
showbPrec
function for an application of the type constructor
based on showbPrec
and showbList
functions for the argument type.
Since: 3
liftShowbList :: (Int -> a -> Builder) -> ([a] -> Builder) -> [f a] -> Builder #
TextShow1 FromStringShow | |
TextShow1 FromTextShow | |
Show1 f => TextShow1 (FromStringShow1 * f) | Not available if using |
TextShow1 f => TextShow1 (FromTextShow1 * f) | |
(Show2 f, Show a) => TextShow1 (FromStringShow2 * * f a) | Not available if using |
(TextShow2 f, TextShow a) => TextShow1 (FromTextShow2 * * f a) | |
Lifting of the TextShow
class to binary type constructors.
Since: 2
liftShowbPrec2 :: (Int -> a -> Builder) -> ([a] -> Builder) -> (Int -> b -> Builder) -> ([b] -> Builder) -> Int -> f a b -> Builder #
showbPrec
function for an application of the type constructor
based on showbPrec
and showbList
functions for the argument types.
Since: 3
liftShowbList2 :: (Int -> a -> Builder) -> ([a] -> Builder) -> (Int -> b -> Builder) -> ([b] -> Builder) -> [f a b] -> Builder #
Show2 f => TextShow2 (FromStringShow2 * * f) | Not available if using |
TextShow2 f => TextShow2 (FromTextShow2 * * f) | |