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.Generic
Description
Generic versions of TextShow
and TextShow1
class functions, as an alternative to
TextShow.TH, which uses Template Haskell. Because there is no Generic2
class, TextShow2
cannot be implemented generically.
This implementation is loosely based off of the Generics.Deriving.Show
module
from the generic-deriving
library.
Since: 2
Synopsis
- newtype FromGeneric a = FromGeneric {
- fromGeneric :: a
- newtype FromGeneric1 f a = FromGeneric1 {
- fromGeneric1 :: f a
- genericShowt :: (Generic a, GTextShowT Zero (Rep a)) => a -> Text
- genericShowtl :: (Generic a, GTextShowTL Zero (Rep a)) => a -> Text
- genericShowtPrec :: (Generic a, GTextShowT Zero (Rep a)) => Int -> a -> Text
- genericShowtlPrec :: (Generic a, GTextShowTL Zero (Rep a)) => Int -> a -> Text
- genericShowtList :: (Generic a, GTextShowT Zero (Rep a)) => [a] -> Text
- genericShowtlList :: (Generic a, GTextShowTL Zero (Rep a)) => [a] -> Text
- genericShowb :: (Generic a, GTextShowB Zero (Rep a)) => a -> Builder
- genericShowbPrec :: (Generic a, GTextShowB Zero (Rep a)) => Int -> a -> Builder
- genericShowbList :: (Generic a, GTextShowB Zero (Rep a)) => [a] -> Builder
- genericPrintT :: (Generic a, GTextShowT Zero (Rep a)) => a -> IO ()
- genericPrintTL :: (Generic a, GTextShowTL Zero (Rep a)) => a -> IO ()
- genericHPrintT :: (Generic a, GTextShowT Zero (Rep a)) => Handle -> a -> IO ()
- genericHPrintTL :: (Generic a, GTextShowTL Zero (Rep a)) => Handle -> a -> IO ()
- genericLiftShowbPrec :: (Generic1 f, GTextShowB One (Rep1 f)) => (Int -> a -> Builder) -> ([a] -> Builder) -> Int -> f a -> Builder
- genericShowbPrec1 :: (Generic a, Generic1 f, GTextShowB Zero (Rep a), GTextShowB One (Rep1 f)) => Int -> f a -> Builder
- class GTextShowB arity f where
- gShowbPrec :: ShowFunsB arity a -> Int -> f a -> Builder
- class GTextShowConB arity f where
- gShowbPrecCon :: ConType -> ShowFunsB arity a -> Int -> f a -> Builder
- data ShowFunsB arity a where
- NoShowFunsB :: ShowFunsB Zero a
- Show1FunsB :: (Int -> a -> Builder) -> ([a] -> Builder) -> ShowFunsB One a
- class GTextShowT arity f where
- gShowtPrec :: ShowFunsT arity a -> Int -> f a -> Text
- class GTextShowConT arity f where
- gShowtPrecCon :: ConType -> ShowFunsT arity a -> Int -> f a -> Text
- data ShowFunsT arity a where
- NoShowFunsT :: ShowFunsT Zero a
- Show1FunsT :: (Int -> a -> Text) -> ([a] -> Text) -> ShowFunsT One a
- class GTextShowTL arity f where
- gShowtlPrec :: ShowFunsTL arity a -> Int -> f a -> Text
- class GTextShowConTL arity f where
- gShowtlPrecCon :: ConType -> ShowFunsTL arity a -> Int -> f a -> Text
- data ShowFunsTL arity a where
- NoShowFunsTL :: ShowFunsTL Zero a
- Show1FunsTL :: (Int -> a -> Text) -> ([a] -> Text) -> ShowFunsTL One a
- class IsNullary f where
- isNullary :: f a -> Bool
- data ConType
- data Zero
- data One
Generic adapter newtypes
newtype FromGeneric a Source #
An adapter newtype, suitable for DerivingVia
.
The TextShow
instance for FromGeneric
leverages a Generic
-based
default. That is,
showbPrec
p (FromGeneric
x) =genericShowbPrec
p x
Since: 3.7.4
Constructors
FromGeneric | |
Fields
|
Instances
Functor FromGeneric Source # | |
Defined in TextShow.Generic Methods fmap :: (a -> b) -> FromGeneric a -> FromGeneric b # (<$) :: a -> FromGeneric b -> FromGeneric a # | |
Foldable FromGeneric Source # | |
Defined in TextShow.Generic Methods fold :: Monoid m => FromGeneric m -> m foldMap :: Monoid m => (a -> m) -> FromGeneric a -> m foldMap' :: Monoid m => (a -> m) -> FromGeneric a -> m foldr :: (a -> b -> b) -> b -> FromGeneric a -> b foldr' :: (a -> b -> b) -> b -> FromGeneric a -> b foldl :: (b -> a -> b) -> b -> FromGeneric a -> b foldl' :: (b -> a -> b) -> b -> FromGeneric a -> b foldr1 :: (a -> a -> a) -> FromGeneric a -> a foldl1 :: (a -> a -> a) -> FromGeneric a -> a toList :: FromGeneric a -> [a] null :: FromGeneric a -> Bool length :: FromGeneric a -> Int elem :: Eq a => a -> FromGeneric a -> Bool maximum :: Ord a => FromGeneric a -> a minimum :: Ord a => FromGeneric a -> a sum :: Num a => FromGeneric a -> a product :: Num a => FromGeneric a -> a | |
Traversable FromGeneric Source # | |
Defined in TextShow.Generic Methods traverse :: Applicative f => (a -> f b) -> FromGeneric a -> f (FromGeneric b) sequenceA :: Applicative f => FromGeneric (f a) -> f (FromGeneric a) mapM :: Monad m => (a -> m b) -> FromGeneric a -> m (FromGeneric b) # sequence :: Monad m => FromGeneric (m a) -> m (FromGeneric a) # | |
Eq a => Eq (FromGeneric a) Source # | |
Defined in TextShow.Generic | |
Data a => Data (FromGeneric a) Source # | |
Defined in TextShow.Generic Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> FromGeneric a -> c (FromGeneric a) gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (FromGeneric a) toConstr :: FromGeneric a -> Constr dataTypeOf :: FromGeneric a -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (FromGeneric a)) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (FromGeneric a)) gmapT :: (forall b. Data b => b -> b) -> FromGeneric a -> FromGeneric a gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> FromGeneric a -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> FromGeneric a -> r gmapQ :: (forall d. Data d => d -> u) -> FromGeneric a -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> FromGeneric a -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> FromGeneric a -> m (FromGeneric a) gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> FromGeneric a -> m (FromGeneric a) gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> FromGeneric a -> m (FromGeneric a) | |
Ord a => Ord (FromGeneric a) Source # | |
Defined in TextShow.Generic Methods compare :: FromGeneric a -> FromGeneric a -> Ordering (<) :: FromGeneric a -> FromGeneric a -> Bool (<=) :: FromGeneric a -> FromGeneric a -> Bool (>) :: FromGeneric a -> FromGeneric a -> Bool (>=) :: FromGeneric a -> FromGeneric a -> Bool max :: FromGeneric a -> FromGeneric a -> FromGeneric a min :: FromGeneric a -> FromGeneric a -> FromGeneric a | |
Read a => Read (FromGeneric a) Source # | |
Defined in TextShow.Generic Methods readsPrec :: Int -> ReadS (FromGeneric a) readList :: ReadS [FromGeneric a] readPrec :: ReadPrec (FromGeneric a) readListPrec :: ReadPrec [FromGeneric a] | |
Show a => Show (FromGeneric a) Source # | |
Defined in TextShow.Generic Methods showsPrec :: Int -> FromGeneric a -> ShowS show :: FromGeneric a -> String showList :: [FromGeneric a] -> ShowS | |
Generic (FromGeneric a) Source # | |
Defined in TextShow.Generic Associated Types type Rep (FromGeneric a) :: Type -> Type | |
Lift a => Lift (FromGeneric a) Source # | |
Defined in TextShow.Generic Methods lift :: FromGeneric a -> Q Exp # | |
(Generic a, GTextShowB Zero (Rep a)) => TextShow (FromGeneric a) Source # | Since: 3.7.4 |
Defined in TextShow.Generic Methods showbPrec :: Int -> FromGeneric a -> Builder Source # showb :: FromGeneric a -> Builder Source # showbList :: [FromGeneric a] -> Builder Source # showtPrec :: Int -> FromGeneric a -> Text Source # showt :: FromGeneric a -> Text Source # showtList :: [FromGeneric a] -> Text Source # showtlPrec :: Int -> FromGeneric a -> Text Source # showtl :: FromGeneric a -> Text Source # showtlList :: [FromGeneric a] -> Text Source # | |
Generic1 FromGeneric Source # | |
Defined in TextShow.Generic Associated Types type Rep1 FromGeneric :: k -> Type Methods from1 :: forall (a :: k). FromGeneric a -> Rep1 FromGeneric a to1 :: forall (a :: k). Rep1 FromGeneric a -> FromGeneric a | |
type Rep (FromGeneric a) Source # | |
Defined in TextShow.Generic type Rep (FromGeneric a) = D1 ('MetaData "FromGeneric" "TextShow.Generic" "text-show-3.8.5-BFQFALvclzMKTsbD03aZ33" 'True) (C1 ('MetaCons "FromGeneric" 'PrefixI 'True) (S1 ('MetaSel ('Just "fromGeneric") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) | |
type Rep1 FromGeneric Source # | |
Defined in TextShow.Generic type Rep1 FromGeneric = D1 ('MetaData "FromGeneric" "TextShow.Generic" "text-show-3.8.5-BFQFALvclzMKTsbD03aZ33" 'True) (C1 ('MetaCons "FromGeneric" 'PrefixI 'True) (S1 ('MetaSel ('Just "fromGeneric") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) Par1)) |
newtype FromGeneric1 f a Source #
An adapter newtype, suitable for DerivingVia
.
The TextShow1
instance for FromGeneric1
leverages a Generic1
-based
default. That is,
liftShowbPrec
sp sl p (FromGeneric1
x) =genericLiftShowbPrec
sp sl p x
Since: 3.7.4
Constructors
FromGeneric1 | |
Fields
|
Instances
Generic1 (FromGeneric1 f :: k -> Type) Source # | |
Defined in TextShow.Generic Associated Types type Rep1 (FromGeneric1 f) :: k -> Type Methods from1 :: forall (a :: k0). FromGeneric1 f a -> Rep1 (FromGeneric1 f) a to1 :: forall (a :: k0). Rep1 (FromGeneric1 f) a -> FromGeneric1 f a | |
Functor f => Functor (FromGeneric1 f) Source # | |
Defined in TextShow.Generic Methods fmap :: (a -> b) -> FromGeneric1 f a -> FromGeneric1 f b # (<$) :: a -> FromGeneric1 f b -> FromGeneric1 f a # | |
Foldable f => Foldable (FromGeneric1 f) Source # | |
Defined in TextShow.Generic Methods fold :: Monoid m => FromGeneric1 f m -> m foldMap :: Monoid m => (a -> m) -> FromGeneric1 f a -> m foldMap' :: Monoid m => (a -> m) -> FromGeneric1 f a -> m foldr :: (a -> b -> b) -> b -> FromGeneric1 f a -> b foldr' :: (a -> b -> b) -> b -> FromGeneric1 f a -> b foldl :: (b -> a -> b) -> b -> FromGeneric1 f a -> b foldl' :: (b -> a -> b) -> b -> FromGeneric1 f a -> b foldr1 :: (a -> a -> a) -> FromGeneric1 f a -> a foldl1 :: (a -> a -> a) -> FromGeneric1 f a -> a toList :: FromGeneric1 f a -> [a] null :: FromGeneric1 f a -> Bool length :: FromGeneric1 f a -> Int elem :: Eq a => a -> FromGeneric1 f a -> Bool maximum :: Ord a => FromGeneric1 f a -> a minimum :: Ord a => FromGeneric1 f a -> a sum :: Num a => FromGeneric1 f a -> a product :: Num a => FromGeneric1 f a -> a | |
Traversable f => Traversable (FromGeneric1 f) Source # | |
Defined in TextShow.Generic Methods traverse :: Applicative f0 => (a -> f0 b) -> FromGeneric1 f a -> f0 (FromGeneric1 f b) sequenceA :: Applicative f0 => FromGeneric1 f (f0 a) -> f0 (FromGeneric1 f a) mapM :: Monad m => (a -> m b) -> FromGeneric1 f a -> m (FromGeneric1 f b) # sequence :: Monad m => FromGeneric1 f (m a) -> m (FromGeneric1 f a) # | |
(Generic1 f, GTextShowB One (Rep1 f)) => TextShow1 (FromGeneric1 f) Source # | Since: 3.7.4 |
Defined in TextShow.Generic Methods liftShowbPrec :: (Int -> a -> Builder) -> ([a] -> Builder) -> Int -> FromGeneric1 f a -> Builder Source # liftShowbList :: (Int -> a -> Builder) -> ([a] -> Builder) -> [FromGeneric1 f a] -> Builder Source # | |
Eq (f a) => Eq (FromGeneric1 f a) Source # | |
Defined in TextShow.Generic Methods (==) :: FromGeneric1 f a -> FromGeneric1 f a -> Bool (/=) :: FromGeneric1 f a -> FromGeneric1 f a -> Bool | |
(Data (f a), Typeable f, Typeable a) => Data (FromGeneric1 f a) Source # | |
Defined in TextShow.Generic Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> FromGeneric1 f a -> c (FromGeneric1 f a) gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (FromGeneric1 f a) toConstr :: FromGeneric1 f a -> Constr dataTypeOf :: FromGeneric1 f a -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (FromGeneric1 f a)) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (FromGeneric1 f a)) gmapT :: (forall b. Data b => b -> b) -> FromGeneric1 f a -> FromGeneric1 f a gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> FromGeneric1 f a -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> FromGeneric1 f a -> r gmapQ :: (forall d. Data d => d -> u) -> FromGeneric1 f a -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> FromGeneric1 f a -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> FromGeneric1 f a -> m (FromGeneric1 f a) gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> FromGeneric1 f a -> m (FromGeneric1 f a) gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> FromGeneric1 f a -> m (FromGeneric1 f a) | |
Ord (f a) => Ord (FromGeneric1 f a) Source # | |
Defined in TextShow.Generic Methods compare :: FromGeneric1 f a -> FromGeneric1 f a -> Ordering (<) :: FromGeneric1 f a -> FromGeneric1 f a -> Bool (<=) :: FromGeneric1 f a -> FromGeneric1 f a -> Bool (>) :: FromGeneric1 f a -> FromGeneric1 f a -> Bool (>=) :: FromGeneric1 f a -> FromGeneric1 f a -> Bool max :: FromGeneric1 f a -> FromGeneric1 f a -> FromGeneric1 f a min :: FromGeneric1 f a -> FromGeneric1 f a -> FromGeneric1 f a | |
Read (f a) => Read (FromGeneric1 f a) Source # | |
Defined in TextShow.Generic Methods readsPrec :: Int -> ReadS (FromGeneric1 f a) readList :: ReadS [FromGeneric1 f a] readPrec :: ReadPrec (FromGeneric1 f a) readListPrec :: ReadPrec [FromGeneric1 f a] | |
Show (f a) => Show (FromGeneric1 f a) Source # | |
Defined in TextShow.Generic Methods showsPrec :: Int -> FromGeneric1 f a -> ShowS show :: FromGeneric1 f a -> String showList :: [FromGeneric1 f a] -> ShowS | |
Generic (FromGeneric1 f a) Source # | |
Defined in TextShow.Generic Associated Types type Rep (FromGeneric1 f a) :: Type -> Type Methods from :: FromGeneric1 f a -> Rep (FromGeneric1 f a) x to :: Rep (FromGeneric1 f a) x -> FromGeneric1 f a | |
Lift (f a) => Lift (FromGeneric1 f a) Source # | |
Defined in TextShow.Generic Methods lift :: FromGeneric1 f a -> Q Exp # | |
type Rep1 (FromGeneric1 f :: k -> Type) Source # | |
Defined in TextShow.Generic type Rep1 (FromGeneric1 f :: k -> Type) = D1 ('MetaData "FromGeneric1" "TextShow.Generic" "text-show-3.8.5-BFQFALvclzMKTsbD03aZ33" 'True) (C1 ('MetaCons "FromGeneric1" 'PrefixI 'True) (S1 ('MetaSel ('Just "fromGeneric1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec1 f))) | |
type Rep (FromGeneric1 f a) Source # | |
Defined in TextShow.Generic type Rep (FromGeneric1 f a) = D1 ('MetaData "FromGeneric1" "TextShow.Generic" "text-show-3.8.5-BFQFALvclzMKTsbD03aZ33" 'True) (C1 ('MetaCons "FromGeneric1" 'PrefixI 'True) (S1 ('MetaSel ('Just "fromGeneric1") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (f a)))) |
Generic show
functions
TextShow
instances can be easily defined for data types that are Generic
instances.
If you are using GHC 8.6 or later, the easiest way to do this is to use the
DerivingVia
extension.
{-# LANGUAGE DeriveGeneric, DerivingVia #-} import GHC.Generics import TextShow import TextShow.Generic data D a = D a deriving (Generic
,Generic1
) derivingTextShow
viaFromGeneric
(D a) derivingTextShow1
viaFromGeneric1
D
Or, if you are using a version of GHC older than 8.6, one can alternatively define these instances like so:
instanceTextShow
a =>TextShow
(D a) whereshowbPrec
=genericShowbPrec
instanceTextShow1
D whereliftShowbPrec
=genericLiftShowbPrec
Understanding a compiler error
Suppose you intend to define a TextShow
instance via FromGeneric
:
data Oops = Oops derivingTextShow
viaFromGeneric
Oops -- forgot to add "deriving Generic" here!
If you forget to add a deriving
clause to your data type, at
compile-time, you might get an error message that begins roughly as follows:Generic
No instance for (GTextShowB
Zero
(Rep
Oops))
This error can be confusing, but don't let it intimidate you. The correct fix is
simply to add the missing "deriving
" clause.Generic
Similarly, if the compiler complains about not having an instance for (
, add a "GTextShowB
One
(Rep1
Oops1))deriving
" clause.Generic1
genericShowt :: (Generic a, GTextShowT Zero (Rep a)) => a -> Text Source #
A Generic
implementation of showt
.
Since: 2
genericShowtl :: (Generic a, GTextShowTL Zero (Rep a)) => a -> Text Source #
A Generic
implementation of showtl
.
Since: 2
genericShowtPrec :: (Generic a, GTextShowT Zero (Rep a)) => Int -> a -> Text Source #
A Generic
implementation of showPrect
.
Since: 2
genericShowtlPrec :: (Generic a, GTextShowTL Zero (Rep a)) => Int -> a -> Text Source #
A Generic
implementation of showtlPrec
.
Since: 2
genericShowtList :: (Generic a, GTextShowT Zero (Rep a)) => [a] -> Text Source #
A Generic
implementation of showtList
.
Since: 2
genericShowtlList :: (Generic a, GTextShowTL Zero (Rep a)) => [a] -> Text Source #
A Generic
implementation of showtlList
.
Since: 2
genericShowb :: (Generic a, GTextShowB Zero (Rep a)) => a -> Builder Source #
A Generic
implementation of showb
.
Since: 2
genericShowbPrec :: (Generic a, GTextShowB Zero (Rep a)) => Int -> a -> Builder Source #
A Generic
implementation of showbPrec
.
Since: 2
genericShowbList :: (Generic a, GTextShowB Zero (Rep a)) => [a] -> Builder Source #
A Generic
implementation of showbList
.
Since: 2
genericPrintT :: (Generic a, GTextShowT Zero (Rep a)) => a -> IO () Source #
A Generic
implementation of printT
.
Since: 2
genericPrintTL :: (Generic a, GTextShowTL Zero (Rep a)) => a -> IO () Source #
A Generic
implementation of printTL
.
Since: 2
genericHPrintT :: (Generic a, GTextShowT Zero (Rep a)) => Handle -> a -> IO () Source #
A Generic
implementation of hPrintT
.
Since: 2
genericHPrintTL :: (Generic a, GTextShowTL Zero (Rep a)) => Handle -> a -> IO () Source #
A Generic
implementation of hPrintTL
.
Since: 2
genericLiftShowbPrec :: (Generic1 f, GTextShowB One (Rep1 f)) => (Int -> a -> Builder) -> ([a] -> Builder) -> Int -> f a -> Builder Source #
A Generic1
implementation of genericLiftShowbPrec
.
Since: 2
genericShowbPrec1 :: (Generic a, Generic1 f, GTextShowB Zero (Rep a), GTextShowB One (Rep1 f)) => Int -> f a -> Builder Source #
A Generic
/Generic1
implementation of showbPrec1
.
Since: 2
Internals
Builder
class GTextShowB arity f where Source #
Class of generic representation types that can be converted to a Builder
. The arity
type variable indicates which type class is used.
indicates GTextShowB
Zero
TextShow
behavior, and
indicates GTextShowB
One
TextShow1
behavior. Since: 3.4
Methods
gShowbPrec :: ShowFunsB arity a -> Int -> f a -> Builder Source #
This is used as the default generic implementation of showbPrec
(if the arity
is Zero
) or liftShowbPrec
(if the arity
is One
).
Instances
GTextShowB One (V1 :: Type -> Type) Source # | |
Defined in TextShow.Generic | |
GTextShowB Zero (V1 :: Type -> Type) Source # | |
Defined in TextShow.Generic | |
(Constructor c, GTextShowConB arity f, IsNullary f) => GTextShowB arity (C1 c f) Source # | |
Defined in TextShow.Generic Methods gShowbPrec :: ShowFunsB arity a -> Int -> C1 c f a -> Builder Source # | |
(GTextShowB arity f, GTextShowB arity g) => GTextShowB arity (f :+: g) Source # | |
Defined in TextShow.Generic Methods gShowbPrec :: ShowFunsB arity a -> Int -> (f :+: g) a -> Builder Source # | |
GTextShowB arity f => GTextShowB arity (D1 d f) Source # | |
Defined in TextShow.Generic Methods gShowbPrec :: ShowFunsB arity a -> Int -> D1 d f a -> Builder Source # |
class GTextShowConB arity f where Source #
Class of generic representation types for which the ConType
has been determined. The arity
type variable indicates which type class is used.
indicates GTextShowConB
Zero
TextShow
behavior, and
indicates GTextShowConB
One
TextShow1
behavior.
Instances
GTextShowConB One Par1 Source # | |
Defined in TextShow.Generic | |
GTextShowConB arity (UWord :: Type -> Type) Source # | |
Defined in TextShow.Generic | |
GTextShowConB arity (UInt :: Type -> Type) Source # | |
Defined in TextShow.Generic | |
GTextShowConB arity (UFloat :: Type -> Type) Source # | |
Defined in TextShow.Generic | |
GTextShowConB arity (UDouble :: Type -> Type) Source # | |
Defined in TextShow.Generic | |
GTextShowConB arity (UChar :: Type -> Type) Source # | |
Defined in TextShow.Generic | |
GTextShowConB arity (U1 :: Type -> Type) Source # | |
Defined in TextShow.Generic | |
TextShow1 f => GTextShowConB One (Rec1 f) Source # | |
Defined in TextShow.Generic | |
(GTextShowConB arity f, GTextShowConB arity g) => GTextShowConB arity (f :*: g) Source # | |
Defined in TextShow.Generic | |
(Selector s, GTextShowConB arity f) => GTextShowConB arity (S1 s f) Source # | |
Defined in TextShow.Generic | |
TextShow c => GTextShowConB arity (K1 i c :: Type -> Type) Source # | |
Defined in TextShow.Generic | |
(TextShow1 f, GTextShowConB One g) => GTextShowConB One (f :.: g) Source # | |
Defined in TextShow.Generic |
data ShowFunsB arity a where Source #
A ShowFunsB
value either stores nothing (for TextShow
) or it stores the two function arguments that show occurrences of the type parameter (for TextShow1
). Since: 3.4
Constructors
NoShowFunsB :: ShowFunsB Zero a | |
Show1FunsB :: (Int -> a -> Builder) -> ([a] -> Builder) -> ShowFunsB One a |
Strict Text
class GTextShowT arity f where Source #
Class of generic representation types that can be converted to a Text
. The arity
type variable indicates which type class is used.
indicates GTextShowT
Zero
TextShow
behavior, and
indicates GTextShowT
One
TextShow1
behavior. Since: 3.4
Methods
gShowtPrec :: ShowFunsT arity a -> Int -> f a -> Text Source #
This is used as the default generic implementation of showtPrec
(if the arity
is Zero
) or liftShowtPrec
(if the arity
is One
).
Instances
GTextShowT One (V1 :: Type -> Type) Source # | |
Defined in TextShow.Generic Methods gShowtPrec :: ShowFunsT One a -> Int -> V1 a -> Text Source # | |
GTextShowT Zero (V1 :: Type -> Type) Source # | |
Defined in TextShow.Generic Methods gShowtPrec :: ShowFunsT Zero a -> Int -> V1 a -> Text Source # | |
(Constructor c, GTextShowConT arity f, IsNullary f) => GTextShowT arity (C1 c f) Source # | |
Defined in TextShow.Generic Methods gShowtPrec :: ShowFunsT arity a -> Int -> C1 c f a -> Text Source # | |
(GTextShowT arity f, GTextShowT arity g) => GTextShowT arity (f :+: g) Source # | |
Defined in TextShow.Generic Methods gShowtPrec :: ShowFunsT arity a -> Int -> (f :+: g) a -> Text Source # | |
GTextShowT arity f => GTextShowT arity (D1 d f) Source # | |
Defined in TextShow.Generic Methods gShowtPrec :: ShowFunsT arity a -> Int -> D1 d f a -> Text Source # |
class GTextShowConT arity f where Source #
Class of generic representation types for which the ConType
has been determined. The arity
type variable indicates which type class is used.
indicates GTextShowConT
Zero
TextShow
behavior, and
indicates GTextShowConT
One
TextShow1
behavior.
Methods
gShowtPrecCon :: ConType -> ShowFunsT arity a -> Int -> f a -> Text Source #
Convert value of a specific ConType
to a Text
with the given precedence.
Instances
GTextShowConT One Par1 Source # | |
Defined in TextShow.Generic | |
GTextShowConT arity (UWord :: Type -> Type) Source # | |
Defined in TextShow.Generic Methods gShowtPrecCon :: ConType -> ShowFunsT arity a -> Int -> UWord a -> Text Source # | |
GTextShowConT arity (UInt :: Type -> Type) Source # | |
Defined in TextShow.Generic Methods gShowtPrecCon :: ConType -> ShowFunsT arity a -> Int -> UInt a -> Text Source # | |
GTextShowConT arity (UFloat :: Type -> Type) Source # | |
Defined in TextShow.Generic Methods gShowtPrecCon :: ConType -> ShowFunsT arity a -> Int -> UFloat a -> Text Source # | |
GTextShowConT arity (UDouble :: Type -> Type) Source # | |
Defined in TextShow.Generic Methods gShowtPrecCon :: ConType -> ShowFunsT arity a -> Int -> UDouble a -> Text Source # | |
GTextShowConT arity (UChar :: Type -> Type) Source # | |
Defined in TextShow.Generic Methods gShowtPrecCon :: ConType -> ShowFunsT arity a -> Int -> UChar a -> Text Source # | |
GTextShowConT arity (U1 :: Type -> Type) Source # | |
Defined in TextShow.Generic Methods gShowtPrecCon :: ConType -> ShowFunsT arity a -> Int -> U1 a -> Text Source # | |
TextShow1 f => GTextShowConT One (Rec1 f) Source # | |
Defined in TextShow.Generic | |
(GTextShowConT arity f, GTextShowConT arity g) => GTextShowConT arity (f :*: g) Source # | |
Defined in TextShow.Generic Methods gShowtPrecCon :: ConType -> ShowFunsT arity a -> Int -> (f :*: g) a -> Text Source # | |
(Selector s, GTextShowConT arity f) => GTextShowConT arity (S1 s f) Source # | |
Defined in TextShow.Generic Methods gShowtPrecCon :: ConType -> ShowFunsT arity a -> Int -> S1 s f a -> Text Source # | |
TextShow c => GTextShowConT arity (K1 i c :: Type -> Type) Source # | |
Defined in TextShow.Generic Methods gShowtPrecCon :: ConType -> ShowFunsT arity a -> Int -> K1 i c a -> Text Source # | |
(TextShow1 f, GTextShowConT One g) => GTextShowConT One (f :.: g) Source # | |
Defined in TextShow.Generic |
data ShowFunsT arity a where Source #
A ShowFunsT
value either stores nothing (for TextShow
) or it stores the two function arguments that show occurrences of the type parameter (for TextShow1
). Since: 3.4
Constructors
NoShowFunsT :: ShowFunsT Zero a | |
Show1FunsT :: (Int -> a -> Text) -> ([a] -> Text) -> ShowFunsT One a |
Lazy Text
class GTextShowTL arity f where Source #
Class of generic representation types that can be converted to a Text
. The arity
type variable indicates which type class is used.
indicates GTextShowTL
Zero
TextShow
behavior, and
indicates GTextShowTL
One
TextShow1
behavior. Since: 3.4
Methods
gShowtlPrec :: ShowFunsTL arity a -> Int -> f a -> Text Source #
This is used as the default generic implementation of showtlPrec
(if the arity
is Zero
) or liftShowtlPrec
(if the arity
is One
).
Instances
GTextShowTL One (V1 :: Type -> Type) Source # | |
Defined in TextShow.Generic Methods gShowtlPrec :: ShowFunsTL One a -> Int -> V1 a -> Text Source # | |
GTextShowTL Zero (V1 :: Type -> Type) Source # | |
Defined in TextShow.Generic Methods gShowtlPrec :: ShowFunsTL Zero a -> Int -> V1 a -> Text Source # | |
(Constructor c, GTextShowConTL arity f, IsNullary f) => GTextShowTL arity (C1 c f) Source # | |
Defined in TextShow.Generic Methods gShowtlPrec :: ShowFunsTL arity a -> Int -> C1 c f a -> Text Source # | |
(GTextShowTL arity f, GTextShowTL arity g) => GTextShowTL arity (f :+: g) Source # | |
Defined in TextShow.Generic Methods gShowtlPrec :: ShowFunsTL arity a -> Int -> (f :+: g) a -> Text Source # | |
GTextShowTL arity f => GTextShowTL arity (D1 d f) Source # | |
Defined in TextShow.Generic Methods gShowtlPrec :: ShowFunsTL arity a -> Int -> D1 d f a -> Text Source # |
class GTextShowConTL arity f where Source #
Class of generic representation types for which the ConType
has been determined. The arity
type variable indicates which type class is used.
indicates GTextShowConTL
Zero
TextShow
behavior, and
indicates GTextShowConTL
One
TextShow1
behavior.
Methods
gShowtlPrecCon :: ConType -> ShowFunsTL arity a -> Int -> f a -> Text Source #
Convert value of a specific ConType
to a Text
with the given precedence.
Instances
GTextShowConTL One Par1 Source # | |
Defined in TextShow.Generic Methods gShowtlPrecCon :: ConType -> ShowFunsTL One a -> Int -> Par1 a -> Text Source # | |
GTextShowConTL arity (UWord :: Type -> Type) Source # | |
Defined in TextShow.Generic Methods gShowtlPrecCon :: ConType -> ShowFunsTL arity a -> Int -> UWord a -> Text Source # | |
GTextShowConTL arity (UInt :: Type -> Type) Source # | |
Defined in TextShow.Generic Methods gShowtlPrecCon :: ConType -> ShowFunsTL arity a -> Int -> UInt a -> Text Source # | |
GTextShowConTL arity (UFloat :: Type -> Type) Source # | |
Defined in TextShow.Generic Methods gShowtlPrecCon :: ConType -> ShowFunsTL arity a -> Int -> UFloat a -> Text Source # | |
GTextShowConTL arity (UDouble :: Type -> Type) Source # | |
Defined in TextShow.Generic Methods gShowtlPrecCon :: ConType -> ShowFunsTL arity a -> Int -> UDouble a -> Text Source # | |
GTextShowConTL arity (UChar :: Type -> Type) Source # | |
Defined in TextShow.Generic Methods gShowtlPrecCon :: ConType -> ShowFunsTL arity a -> Int -> UChar a -> Text Source # | |
GTextShowConTL arity (U1 :: Type -> Type) Source # | |
Defined in TextShow.Generic Methods gShowtlPrecCon :: ConType -> ShowFunsTL arity a -> Int -> U1 a -> Text Source # | |
TextShow1 f => GTextShowConTL One (Rec1 f) Source # | |
Defined in TextShow.Generic Methods gShowtlPrecCon :: ConType -> ShowFunsTL One a -> Int -> Rec1 f a -> Text Source # | |
(GTextShowConTL arity f, GTextShowConTL arity g) => GTextShowConTL arity (f :*: g) Source # | |
Defined in TextShow.Generic Methods gShowtlPrecCon :: ConType -> ShowFunsTL arity a -> Int -> (f :*: g) a -> Text Source # | |
(Selector s, GTextShowConTL arity f) => GTextShowConTL arity (S1 s f) Source # | |
Defined in TextShow.Generic Methods gShowtlPrecCon :: ConType -> ShowFunsTL arity a -> Int -> S1 s f a -> Text Source # | |
TextShow c => GTextShowConTL arity (K1 i c :: Type -> Type) Source # | |
Defined in TextShow.Generic Methods gShowtlPrecCon :: ConType -> ShowFunsTL arity a -> Int -> K1 i c a -> Text Source # | |
(TextShow1 f, GTextShowConTL One g) => GTextShowConTL One (f :.: g) Source # | |
Defined in TextShow.Generic Methods gShowtlPrecCon :: ConType -> ShowFunsTL One a -> Int -> (f :.: g) a -> Text Source # |
data ShowFunsTL arity a where Source #
A ShowFunsTL
value either stores nothing (for TextShow
) or it stores the two function arguments that show occurrences of the type parameter (for TextShow1
). Since: 3.4
Constructors
NoShowFunsTL :: ShowFunsTL Zero a | |
Show1FunsTL :: (Int -> a -> Text) -> ([a] -> Text) -> ShowFunsTL One a |
Instances
Contravariant (ShowFunsTL arity) Source # | |
Defined in TextShow.Generic Methods contramap :: (a -> b) -> ShowFunsTL arity b -> ShowFunsTL arity a (>$) :: b -> ShowFunsTL arity b -> ShowFunsTL arity a |
Other internals
class IsNullary f where Source #
Class of generic representation types that represent a constructor with zero or more fields.
Instances
IsNullary (UWord :: k -> Type) Source # | |
Defined in TextShow.Generic | |
IsNullary (UInt :: k -> Type) Source # | |
Defined in TextShow.Generic | |
IsNullary (UFloat :: k -> Type) Source # | |
Defined in TextShow.Generic | |
IsNullary (UDouble :: k -> Type) Source # | |
Defined in TextShow.Generic | |
IsNullary (UChar :: k -> Type) Source # | |
Defined in TextShow.Generic | |
IsNullary (U1 :: k -> Type) Source # | |
Defined in TextShow.Generic | |
IsNullary (Rec1 f :: k -> Type) Source # | |
Defined in TextShow.Generic | |
IsNullary (f :*: g :: k -> Type) Source # | |
Defined in TextShow.Generic | |
IsNullary f => IsNullary (S1 s f :: k -> Type) Source # | |
Defined in TextShow.Generic | |
IsNullary (K1 i c :: k -> Type) Source # | |
Defined in TextShow.Generic | |
IsNullary (f :.: g :: k -> Type) Source # | |
Defined in TextShow.Generic | |
IsNullary Par1 Source # | |
Defined in TextShow.Generic |
Instances
Eq ConType Source # | |
Data ConType Source # | |
Defined in TextShow.Generic Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ConType -> c ConType gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ConType dataTypeOf :: ConType -> DataType dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ConType) dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ConType) gmapT :: (forall b. Data b => b -> b) -> ConType -> ConType gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ConType -> r gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ConType -> r gmapQ :: (forall d. Data d => d -> u) -> ConType -> [u] gmapQi :: Int -> (forall d. Data d => d -> u) -> ConType -> u gmapM :: Monad m => (forall d. Data d => d -> m d) -> ConType -> m ConType gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ConType -> m ConType gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ConType -> m ConType | |
Ord ConType Source # | |
Read ConType Source # | |
Defined in TextShow.Generic | |
Show ConType Source # | |
Generic ConType Source # | |
Lift ConType Source # | |
Defined in TextShow.Generic | |
TextShow ConType Source # | |
Defined in TextShow.Generic Methods showbPrec :: Int -> ConType -> Builder Source # showb :: ConType -> Builder Source # showbList :: [ConType] -> Builder Source # showtPrec :: Int -> ConType -> Text Source # showt :: ConType -> Text Source # showtList :: [ConType] -> Text Source # showtlPrec :: Int -> ConType -> Text Source # showtl :: ConType -> Text Source # showtlList :: [ConType] -> Text Source # | |
type Rep ConType Source # | |
Defined in TextShow.Generic type Rep ConType = D1 ('MetaData "ConType" "TextShow.Generic" "text-show-3.8.5-BFQFALvclzMKTsbD03aZ33" 'False) ((C1 ('MetaCons "Rec" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Tup" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "Pref" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "Inf" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String)))) |
A type-level indicator that TextShow
is being derived generically.
Since: 3.2
Instances
GTextShowTL Zero (V1 :: Type -> Type) Source # | |
Defined in TextShow.Generic Methods gShowtlPrec :: ShowFunsTL Zero a -> Int -> V1 a -> Text Source # | |
GTextShowT Zero (V1 :: Type -> Type) Source # | |
Defined in TextShow.Generic Methods gShowtPrec :: ShowFunsT Zero a -> Int -> V1 a -> Text Source # | |
GTextShowB Zero (V1 :: Type -> Type) Source # | |
Defined in TextShow.Generic |
A type-level indicator that TextShow1
is being derived generically.
Since: 3.2