text-show-3.11.2: Efficient conversion of values into Text

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

TextShow.TH

Contents

- Orphan instances

Description

Functions to mechanically derive `TextShow`, `TextShow1`, or `TextShow2` instances, or to splice `show`-related expressions into Haskell source code. You need to enable the `TemplateHaskell` language extension in order to use this module.

Since: 2

Synopsis

- data Options = Options {
  - genTextMethods :: GenTextMethods
  - emptyCaseBehavior :: Bool
  }
- defaultOptions :: Options
- deriveTextShow :: Name -> Q [Dec]
- deriveTextShow1 :: Name -> Q [Dec]
- makeShowbPrec :: Name -> Q Exp
- deriveTextShow2 :: Name -> Q [Dec]
- makeShowt :: Name -> Q Exp
- makeShowtPrec :: Name -> Q Exp
- makeShowtlPrec :: Name -> Q Exp
- makeLiftShowbPrec :: Name -> Q Exp
- makeLiftShowbPrec2 :: Name -> Q Exp
- data GenTextMethods
  - = AlwaysTextMethods
  - | SometimesTextMethods
  - | NeverTextMethods
- makeShowtl :: Name -> Q Exp
- makeShowtList :: Name -> Q Exp
- makeShowtlList :: Name -> Q Exp
- makeShowb :: Name -> Q Exp
- makeShowbList :: Name -> Q Exp
- makePrintT :: Name -> Q Exp
- makePrintTL :: Name -> Q Exp
- makeHPrintT :: Name -> Q Exp
- makeHPrintTL :: Name -> Q Exp
- makeShowbPrec1 :: Name -> Q Exp
- makeShowbPrec2 :: Name -> Q Exp
- deriveTextShowOptions :: Options -> Name -> Q [Dec]
- deriveTextShow1Options :: Options -> Name -> Q [Dec]
- deriveTextShow2Options :: Options -> Name -> Q [Dec]

# Documentation

data Options Source #

Options that specify how to derive `TextShow` instances using Template Haskell.

Since: 3.4

Constructors

Options |

Fields

- genTextMethods :: GenTextMethods

  When Template Haskell should generate definitions for methods which return `Text`?

  Since: 3.4

- emptyCaseBehavior :: Bool

  If `True`, derived instances for empty data types (i.e., ones with no data constructors) will use the `EmptyCase` language extension. If `False`, derived instances will simply use `seq` instead.

  Since: 3.7

#### Instances

Instances details

Data Options Source # |

Instance details

Defined in TextShow.Options

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Options -> c Options Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Options Source #

toConstr :: Options -> Constr Source #

dataTypeOf :: Options -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Options) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Options) Source #

gmapT :: (forall b. Data b => b -> b) -> Options -> Options Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Options -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Options -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Options -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Options -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Options -> m Options Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Options -> m Options Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Options -> m Options Source #

Generic Options Source # |

Instance details

Defined in TextShow.Options

Associated Types

type Rep Options |

Instance details

Defined in TextShow.Options

type Rep Options = D1 ('MetaData "Options" "TextShow.Options" "text-show-3.11.2-6QP1f2fw3tuAgHoJVd7xTB" 'False) (C1 ('MetaCons "Options" 'PrefixI 'True) (S1 ('MetaSel ('Just "genTextMethods") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 GenTextMethods) :*: S1 ('MetaSel ('Just "emptyCaseBehavior") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))

Methods

from :: Options -> Rep Options x Source #

to :: Rep Options x -> Options Source #

Read Options Source # |
Instance details Defined in TextShow.Options Methods readsPrec :: Int -> ReadS Options Source # readList :: ReadS [Options] Source # readPrec :: ReadPrec Options Source # readListPrec :: ReadPrec [Options] Source #
Show Options Source # |
Instance details Defined in TextShow.Options Methods showsPrec :: Int -> Options -> ShowS Source # show :: Options -> String Source # showList :: [Options] -> ShowS Source #
Eq Options Source # |
Instance details Defined in TextShow.Options Methods (==) :: Options -> Options -> Bool Source # (/=) :: Options -> Options -> Bool Source #
Ord Options Source # |
Instance details Defined in TextShow.Options Methods compare :: Options -> Options -> Ordering Source # (<) :: Options -> Options -> Bool Source # (<=) :: Options -> Options -> Bool Source # (>) :: Options -> Options -> Bool Source # (>=) :: Options -> Options -> Bool Source # max :: Options -> Options -> Options Source # min :: Options -> Options -> Options Source #
TextShow Options Source # |

Instance details

Defined in TextShow.TH

Methods

showbPrec :: Int -> Options -> Builder Source #

showb :: Options -> Builder Source #

showbList :: [Options] -> Builder Source #

showtPrec :: Int -> Options -> Text Source #

showt :: Options -> Text Source #

showtList :: [Options] -> Text Source #

showtlPrec :: Int -> Options -> Text Source #

showtl :: Options -> Text Source #

showtlList :: [Options] -> Text Source #

Lift Options Source # |
Instance details Defined in TextShow.Options Methods lift :: Quote m => Options -> m Exp Source # liftTyped :: forall (m :: Type -> Type). Quote m => Options -> Code m Options Source #
type Rep Options Source # |

Instance details

Defined in TextShow.Options

type Rep Options = D1 ('MetaData "Options" "TextShow.Options" "text-show-3.11.2-6QP1f2fw3tuAgHoJVd7xTB" 'False) (C1 ('MetaCons "Options" 'PrefixI 'True) (S1 ('MetaSel ('Just "genTextMethods") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 GenTextMethods) :*: S1 ('MetaSel ('Just "emptyCaseBehavior") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool)))

defaultOptions :: Options Source #

Sensible default `Options`.

Since: 3.4

deriveTextShow :: Name -> Q [Dec] Source #

Generates a `TextShow` instance declaration for the given data type or data family instance.

Since: 2

deriveTextShow1 :: Name -> Q [Dec] Source #

Generates a `TextShow1` instance declaration for the given data type or data family instance.

Since: 2

makeShowbPrec :: Name -> Q Exp Source #

Generates a lambda expression which behaves like `showbPrec` (without requiring a `TextShow` instance).

Since: 2

deriveTextShow2 :: Name -> Q [Dec] Source #

Generates a `TextShow2` instance declaration for the given data type or data family instance.

Since: 2

makeShowt :: Name -> Q Exp Source #

Generates a lambda expression which behaves like `showt` (without requiring a `TextShow` instance).

Since: 2

makeShowtPrec :: Name -> Q Exp Source #

Generates a lambda expression which behaves like `showtPrec` (without requiring a `TextShow` instance).

Since: 2

makeShowtlPrec :: Name -> Q Exp Source #

Generates a lambda expression which behaves like `showtlPrec` (without requiring a `TextShow` instance).

Since: 2

makeLiftShowbPrec :: Name -> Q Exp Source #

Generates a lambda expression which behaves like `liftShowbPrec` (without requiring a `TextShow1` instance).

Since: 3

makeLiftShowbPrec2 :: Name -> Q Exp Source #

Generates a lambda expression which behaves like `liftShowbPrec2` (without requiring a `TextShow2` instance).

Since: 3

data GenTextMethods Source #

When should Template Haskell generate implementations for the methods of `TextShow` which return `Text`?

Since: 3.4

Constructors

AlwaysTextMethods | Always generate them.
SometimesTextMethods | Only generate when `text-show` feels it's appropriate.
NeverTextMethods | Never generate them under any circumstances.

#### Instances

Instances details

Data GenTextMethods Source # |

Instance details

Defined in TextShow.Options

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> GenTextMethods -> c GenTextMethods Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c GenTextMethods Source #

toConstr :: GenTextMethods -> Constr Source #

dataTypeOf :: GenTextMethods -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c GenTextMethods) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c GenTextMethods) Source #

gmapT :: (forall b. Data b => b -> b) -> GenTextMethods -> GenTextMethods Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> GenTextMethods -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> GenTextMethods -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> GenTextMethods -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> GenTextMethods -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> GenTextMethods -> m GenTextMethods Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> GenTextMethods -> m GenTextMethods Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> GenTextMethods -> m GenTextMethods Source #

Bounded GenTextMethods Source # |
Instance details Defined in TextShow.Options Methods minBound :: GenTextMethods Source # maxBound :: GenTextMethods Source #
Enum GenTextMethods Source # |

Instance details

Defined in TextShow.Options

Methods

succ :: GenTextMethods -> GenTextMethods Source #

pred :: GenTextMethods -> GenTextMethods Source #

toEnum :: Int -> GenTextMethods Source #

fromEnum :: GenTextMethods -> Int Source #

enumFrom :: GenTextMethods -> [GenTextMethods] Source #

enumFromThen :: GenTextMethods -> GenTextMethods -> [GenTextMethods] Source #

enumFromTo :: GenTextMethods -> GenTextMethods -> [GenTextMethods] Source #

enumFromThenTo :: GenTextMethods -> GenTextMethods -> GenTextMethods -> [GenTextMethods] Source #

Generic GenTextMethods Source # |

Instance details

Defined in TextShow.Options

Associated Types

type Rep GenTextMethods |
Instance details Defined in TextShow.Options type Rep GenTextMethods = D1 ('MetaData "GenTextMethods" "TextShow.Options" "text-show-3.11.2-6QP1f2fw3tuAgHoJVd7xTB" 'False) (C1 ('MetaCons "AlwaysTextMethods" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "SometimesTextMethods" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NeverTextMethods" 'PrefixI 'False) (U1 :: Type -> Type)))

Methods

from :: GenTextMethods -> Rep GenTextMethods x Source #

to :: Rep GenTextMethods x -> GenTextMethods Source #

Ix GenTextMethods Source # |

Instance details

Defined in TextShow.Options

Methods

range :: (GenTextMethods, GenTextMethods) -> [GenTextMethods] Source #

index :: (GenTextMethods, GenTextMethods) -> GenTextMethods -> Int Source #

unsafeIndex :: (GenTextMethods, GenTextMethods) -> GenTextMethods -> Int Source #

inRange :: (GenTextMethods, GenTextMethods) -> GenTextMethods -> Bool Source #

rangeSize :: (GenTextMethods, GenTextMethods) -> Int Source #

unsafeRangeSize :: (GenTextMethods, GenTextMethods) -> Int Source #

Read GenTextMethods Source # |
Instance details Defined in TextShow.Options Methods readsPrec :: Int -> ReadS GenTextMethods Source # readList :: ReadS [GenTextMethods] Source # readPrec :: ReadPrec GenTextMethods Source # readListPrec :: ReadPrec [GenTextMethods] Source #
Show GenTextMethods Source # |
Instance details Defined in TextShow.Options Methods showsPrec :: Int -> GenTextMethods -> ShowS Source # show :: GenTextMethods -> String Source # showList :: [GenTextMethods] -> ShowS Source #
Eq GenTextMethods Source # |
Instance details Defined in TextShow.Options Methods (==) :: GenTextMethods -> GenTextMethods -> Bool Source # (/=) :: GenTextMethods -> GenTextMethods -> Bool Source #
Ord GenTextMethods Source # |

Instance details

Defined in TextShow.Options

Methods

compare :: GenTextMethods -> GenTextMethods -> Ordering Source #

(<) :: GenTextMethods -> GenTextMethods -> Bool Source #

(<=) :: GenTextMethods -> GenTextMethods -> Bool Source #

(>) :: GenTextMethods -> GenTextMethods -> Bool Source #

(>=) :: GenTextMethods -> GenTextMethods -> Bool Source #

max :: GenTextMethods -> GenTextMethods -> GenTextMethods Source #

min :: GenTextMethods -> GenTextMethods -> GenTextMethods Source #

TextShow GenTextMethods Source # |

Instance details

Defined in TextShow.TH

Methods

showbPrec :: Int -> GenTextMethods -> Builder Source #

showb :: GenTextMethods -> Builder Source #

showbList :: [GenTextMethods] -> Builder Source #

showtPrec :: Int -> GenTextMethods -> Text Source #

showt :: GenTextMethods -> Text Source #

showtList :: [GenTextMethods] -> Text Source #

showtlPrec :: Int -> GenTextMethods -> Text Source #

showtl :: GenTextMethods -> Text Source #

showtlList :: [GenTextMethods] -> Text Source #

Lift GenTextMethods Source # |
Instance details Defined in TextShow.Options Methods lift :: Quote m => GenTextMethods -> m Exp Source # liftTyped :: forall (m :: Type -> Type). Quote m => GenTextMethods -> Code m GenTextMethods Source #
type Rep GenTextMethods Source # |
Instance details Defined in TextShow.Options type Rep GenTextMethods = D1 ('MetaData "GenTextMethods" "TextShow.Options" "text-show-3.11.2-6QP1f2fw3tuAgHoJVd7xTB" 'False) (C1 ('MetaCons "AlwaysTextMethods" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "SometimesTextMethods" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NeverTextMethods" 'PrefixI 'False) (U1 :: Type -> Type)))

makeShowtl :: Name -> Q Exp Source #

Generates a lambda expression which behaves like `showtl` (without requiring a `TextShow` instance).

Since: 2

makeShowtList :: Name -> Q Exp Source #

Generates a lambda expression which behaves like `showtList` (without requiring a `TextShow` instance).

Since: 2

makeShowtlList :: Name -> Q Exp Source #

Generates a lambda expression which behaves like `showtlList` (without requiring a `TextShow` instance).

Since: 2

makeShowb :: Name -> Q Exp Source #

Generates a lambda expression which behaves like `showb` (without requiring a `TextShow` instance).

Since: 2

makeShowbList :: Name -> Q Exp Source #

Generates a lambda expression which behaves like `showbList` (without requiring a `TextShow` instance).

Since: 2

makePrintT :: Name -> Q Exp Source #

Generates a lambda expression which behaves like `printT` (without requiring a `TextShow` instance).

Since: 2

makePrintTL :: Name -> Q Exp Source #

Generates a lambda expression which behaves like `printTL` (without requiring a `TextShow` instance).

Since: 2

makeHPrintT :: Name -> Q Exp Source #

Generates a lambda expression which behaves like `hPrintT` (without requiring a `TextShow` instance).

Since: 2

makeHPrintTL :: Name -> Q Exp Source #

Generates a lambda expression which behaves like `hPrintTL` (without requiring a `TextShow` instance).

Since: 2

makeShowbPrec1 :: Name -> Q Exp Source #

Generates a lambda expression which behaves like `showbPrec1` (without requiring a `TextShow1` instance).

Since: 2

makeShowbPrec2 :: Name -> Q Exp Source #

Generates a lambda expression which behaves like `showbPrec2` (without requiring a `TextShow2` instance).

Since: 2

deriveTextShowOptions :: Options -> Name -> Q [Dec] Source #

Like `deriveTextShow`, but takes an `Options` argument.

Since: 3.4

deriveTextShow1Options :: Options -> Name -> Q [Dec] Source #

Like `deriveTextShow1`, but takes an `Options` argument.

Since: 3.4

deriveTextShow2Options :: Options -> Name -> Q [Dec] Source #

Like `deriveTextShow2`, but takes an `Options` argument.

Since: 3.4

# Orphan instances

TextShow GenTextMethods Source # |

Instance details

Methods

showbPrec :: Int -> GenTextMethods -> Builder Source #

showb :: GenTextMethods -> Builder Source #

showbList :: [GenTextMethods] -> Builder Source #

showtPrec :: Int -> GenTextMethods -> Text Source #

showt :: GenTextMethods -> Text Source #

showtList :: [GenTextMethods] -> Text Source #

showtlPrec :: Int -> GenTextMethods -> Text Source #

showtl :: GenTextMethods -> Text Source #

showtlList :: [GenTextMethods] -> Text Source #

TextShow Options Source # |
Instance details Methods showbPrec :: Int -> Options -> Builder Source # showb :: Options -> Builder Source # showbList :: [Options] -> Builder Source # showtPrec :: Int -> Options -> Text Source # showt :: Options -> Text Source # showtList :: [Options] -> Text Source # showtlPrec :: Int -> Options -> Text Source # showtl :: Options -> Text Source # showtlList :: [Options] -> Text Source #