| Copyright | (C) 2014-2016 Ryan Scott |
|---|---|
| License | BSD-style (see the file LICENSE) |
| Maintainer | Ryan Scott |
| Stability | Provisional |
| Portability | GHC |
| Safe Haskell | None |
| Language | Haskell2010 |
TextShow.Instances
Contents
Description
Class re-exports
class TextShow a where
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 Builders 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
Methods
Arguments
| :: Int | The operator precedence of the enclosing context (a number
from |
| -> a | The value to be converted to 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=showbPrec0
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 showbChars).
Since: 2
Arguments
| :: Int | The operator precedence of the enclosing context (a number
from |
| -> a | The value to be converted to a strict |
| -> Text |
Converts a value to a strict Text with the given precedence. This
can be overridden for efficiency, but it should satisfy:
showtPrecp =toStrict.showtlPrecp
Since: 3
Converts a value to a strict Text. This can be overridden for
efficiency, but it should satisfy:
showt=toStrict.showtl
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
Arguments
| :: Int | The operator precedence of the enclosing context (a number
from |
| -> a | The value to be converted to a lazy |
| -> Text |
Converts a value to a lazy Text with the given precedence. This
can be overridden for efficiency, but it should satisfy:
showtlPrecp =toLazyText.showbPrecp
Since: 3
Converts a value to a lazy Text. This can be overridden for
efficiency, but it should satisfy:
showtl=toLazyText.showb
Since: 3
Converts a list of values to a lazy Text. This can be overridden for
efficiency, but it should satisfy:
showtlList=toLazyText.showbList
Since: 3
Instances
| Show a => TextShow (FromStringShow a) | |
| TextShow a => TextShow (FromTextShow a) | |
| (TextShow1 f, TextShow a) => TextShow (FromTextShow1 * f a) | |
| (TextShow2 f, TextShow a, TextShow b) => TextShow (FromTextShow2 * * f a b) |
class TextShow1 f where
Lifting of the TextShow class to unary type constructors.
Since: 2
Minimal complete definition
Methods
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
Instances
| TextShow1 FromStringShow | |
| TextShow1 FromTextShow | |
| TextShow1 f => TextShow1 (FromTextShow1 * f) | |
| (TextShow2 f, TextShow a) => TextShow1 (FromTextShow2 * * f a) |
class TextShow2 f where
Lifting of the TextShow class to binary type constructors.
Since: 2
Minimal complete definition
Methods
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
Instances
| TextShow2 f => TextShow2 (FromTextShow2 * * f) |
Module re-export
module TextShow