generic-deriving-1.12.3: Generic programming library for generalised deriving.

Safe HaskellTrustworthy
LanguageHaskell2010

Generics.Deriving.Show

Contents

Synopsis

Generic show class

class GShow a where #

Methods

gshowsPrec :: Int -> a -> ShowS #

gshowsPrec :: (Generic a, GShow' (Rep a)) => Int -> a -> ShowS #

gshows :: a -> ShowS #

gshow :: a -> String #

gshowList :: [a] -> ShowS #

Instances

GShow Bool # 
GShow Char # 
GShow Double # 
GShow Float # 
GShow Int # 

Methods

gshowsPrec :: Int -> Int -> ShowS #

gshows :: Int -> ShowS #

gshow :: Int -> String #

gshowList :: [Int] -> ShowS #

GShow Int8 # 
GShow Int16 # 
GShow Int32 # 
GShow Int64 # 
GShow Integer # 
GShow Ordering # 
GShow Word # 
GShow Word8 # 
GShow Word16 # 
GShow Word32 # 
GShow Word64 # 
GShow () # 

Methods

gshowsPrec :: Int -> () -> ShowS #

gshows :: () -> ShowS #

gshow :: () -> String #

gshowList :: [()] -> ShowS #

GShow Handle # 
GShow Natural # 
GShow Void # 
GShow Version # 
GShow HandlePosn # 
GShow Fd # 

Methods

gshowsPrec :: Int -> Fd -> ShowS #

gshows :: Fd -> ShowS #

gshow :: Fd -> String #

gshowList :: [Fd] -> ShowS #

GShow ExitCode # 
GShow IOErrorType # 
GShow BufferMode # 
GShow WordPtr # 
GShow IntPtr # 
GShow CChar # 
GShow CSChar # 
GShow CUChar # 
GShow CShort # 
GShow CUShort # 
GShow CInt # 
GShow CUInt # 
GShow CLong # 
GShow CULong # 
GShow CLLong # 
GShow CULLong # 
GShow CFloat # 
GShow CDouble # 
GShow CPtrdiff # 
GShow CSize # 
GShow CWchar # 
GShow CSigAtomic # 
GShow CClock # 
GShow CTime # 
GShow CUSeconds # 
GShow CSUSeconds # 
GShow CIntPtr # 
GShow CUIntPtr # 
GShow CIntMax # 
GShow CUIntMax # 
GShow SeekMode # 
GShow All # 

Methods

gshowsPrec :: Int -> All -> ShowS #

gshows :: All -> ShowS #

gshow :: All -> String #

gshowList :: [All] -> ShowS #

GShow Any # 

Methods

gshowsPrec :: Int -> Any -> ShowS #

gshows :: Any -> ShowS #

gshow :: Any -> String #

gshowList :: [Any] -> ShowS #

GShow Fixity # 
GShow Associativity # 
GShow IOError # 
GShow IOMode # 
GShow GeneralCategory # 
GShow a => GShow [a] # 

Methods

gshowsPrec :: Int -> [a] -> ShowS #

gshows :: [a] -> ShowS #

gshow :: [a] -> String #

gshowList :: [[a]] -> ShowS #

GShow a => GShow (Maybe a) # 

Methods

gshowsPrec :: Int -> Maybe a -> ShowS #

gshows :: Maybe a -> ShowS #

gshow :: Maybe a -> String #

gshowList :: [Maybe a] -> ShowS #

GShow (Ptr a) # 

Methods

gshowsPrec :: Int -> Ptr a -> ShowS #

gshows :: Ptr a -> ShowS #

gshow :: Ptr a -> String #

gshowList :: [Ptr a] -> ShowS #

GShow (FunPtr a) # 

Methods

gshowsPrec :: Int -> FunPtr a -> ShowS #

gshows :: FunPtr a -> ShowS #

gshow :: FunPtr a -> String #

gshowList :: [FunPtr a] -> ShowS #

GShow (U1 p) # 

Methods

gshowsPrec :: Int -> U1 p -> ShowS #

gshows :: U1 p -> ShowS #

gshow :: U1 p -> String #

gshowList :: [U1 p] -> ShowS #

GShow p => GShow (Par1 p) # 

Methods

gshowsPrec :: Int -> Par1 p -> ShowS #

gshows :: Par1 p -> ShowS #

gshow :: Par1 p -> String #

gshowList :: [Par1 p] -> ShowS #

GShow (UChar p) # 

Methods

gshowsPrec :: Int -> UChar p -> ShowS #

gshows :: UChar p -> ShowS #

gshow :: UChar p -> String #

gshowList :: [UChar p] -> ShowS #

GShow (UDouble p) # 
GShow (UFloat p) # 

Methods

gshowsPrec :: Int -> UFloat p -> ShowS #

gshows :: UFloat p -> ShowS #

gshow :: UFloat p -> String #

gshowList :: [UFloat p] -> ShowS #

GShow (UInt p) # 

Methods

gshowsPrec :: Int -> UInt p -> ShowS #

gshows :: UInt p -> ShowS #

gshow :: UInt p -> String #

gshowList :: [UInt p] -> ShowS #

GShow (UWord p) # 

Methods

gshowsPrec :: Int -> UWord p -> ShowS #

gshows :: UWord p -> ShowS #

gshow :: UWord p -> String #

gshowList :: [UWord p] -> ShowS #

GShow (ForeignPtr a) # 
GShow a => GShow (Identity a) # 
GShow a => GShow (Min a) # 

Methods

gshowsPrec :: Int -> Min a -> ShowS #

gshows :: Min a -> ShowS #

gshow :: Min a -> String #

gshowList :: [Min a] -> ShowS #

GShow a => GShow (Max a) # 

Methods

gshowsPrec :: Int -> Max a -> ShowS #

gshows :: Max a -> ShowS #

gshow :: Max a -> String #

gshowList :: [Max a] -> ShowS #

GShow a => GShow (First a) # 

Methods

gshowsPrec :: Int -> First a -> ShowS #

gshows :: First a -> ShowS #

gshow :: First a -> String #

gshowList :: [First a] -> ShowS #

GShow a => GShow (Last a) # 

Methods

gshowsPrec :: Int -> Last a -> ShowS #

gshows :: Last a -> ShowS #

gshow :: Last a -> String #

gshowList :: [Last a] -> ShowS #

GShow m => GShow (WrappedMonoid m) # 
GShow a => GShow (Option a) # 

Methods

gshowsPrec :: Int -> Option a -> ShowS #

gshows :: Option a -> ShowS #

gshow :: Option a -> String #

gshowList :: [Option a] -> ShowS #

GShow a => GShow (NonEmpty a) # 
GShow a => GShow (Complex a) # 
GShow a => GShow (ZipList a) # 
GShow a => GShow (Dual a) # 

Methods

gshowsPrec :: Int -> Dual a -> ShowS #

gshows :: Dual a -> ShowS #

gshow :: Dual a -> String #

gshowList :: [Dual a] -> ShowS #

GShow a => GShow (Sum a) # 

Methods

gshowsPrec :: Int -> Sum a -> ShowS #

gshows :: Sum a -> ShowS #

gshow :: Sum a -> String #

gshowList :: [Sum a] -> ShowS #

GShow a => GShow (Product a) # 
GShow a => GShow (First a) # 

Methods

gshowsPrec :: Int -> First a -> ShowS #

gshows :: First a -> ShowS #

gshow :: First a -> String #

gshowList :: [First a] -> ShowS #

GShow a => GShow (Last a) # 

Methods

gshowsPrec :: Int -> Last a -> ShowS #

gshows :: Last a -> ShowS #

gshow :: Last a -> String #

gshowList :: [Last a] -> ShowS #

GShow a => GShow (Down a) # 

Methods

gshowsPrec :: Int -> Down a -> ShowS #

gshows :: Down a -> ShowS #

gshow :: Down a -> String #

gshowList :: [Down a] -> ShowS #

(Generic a, GShow' (Rep a)) => GShow (Default a) #

For example, with this type:

newtype TestShow = TestShow Bool
  deriving (GShow) via (Default Bool)

gshow for TestShow would produce the same string as gshow for Bool.

In this example, TestShow requires no Generic instance, as the constraint on gshowsPrec from Default Bool is Generic Bool.

In general, when using a newtype wrapper, the instance can be derived via the wrapped type, as here (via Default Bool rather than Default TestShow).

(GShow a, GShow b) => GShow (Either a b) # 

Methods

gshowsPrec :: Int -> Either a b -> ShowS #

gshows :: Either a b -> ShowS #

gshow :: Either a b -> String #

gshowList :: [Either a b] -> ShowS #

GShow (f p) => GShow (Rec1 f p) # 

Methods

gshowsPrec :: Int -> Rec1 f p -> ShowS #

gshows :: Rec1 f p -> ShowS #

gshow :: Rec1 f p -> String #

gshowList :: [Rec1 f p] -> ShowS #

(GShow a, GShow b) => GShow (a, b) # 

Methods

gshowsPrec :: Int -> (a, b) -> ShowS #

gshows :: (a, b) -> ShowS #

gshow :: (a, b) -> String #

gshowList :: [(a, b)] -> ShowS #

(GShow a, GShow b) => GShow (Arg a b) # 

Methods

gshowsPrec :: Int -> Arg a b -> ShowS #

gshows :: Arg a b -> ShowS #

gshow :: Arg a b -> String #

gshowList :: [Arg a b] -> ShowS #

GShow (Proxy * s) # 

Methods

gshowsPrec :: Int -> Proxy * s -> ShowS #

gshows :: Proxy * s -> ShowS #

gshow :: Proxy * s -> String #

gshowList :: [Proxy * s] -> ShowS #

GShow c => GShow (K1 i c p) # 

Methods

gshowsPrec :: Int -> K1 i c p -> ShowS #

gshows :: K1 i c p -> ShowS #

gshow :: K1 i c p -> String #

gshowList :: [K1 i c p] -> ShowS #

(GShow (f p), GShow (g p)) => GShow ((:+:) f g p) # 

Methods

gshowsPrec :: Int -> (f :+: g) p -> ShowS #

gshows :: (f :+: g) p -> ShowS #

gshow :: (f :+: g) p -> String #

gshowList :: [(f :+: g) p] -> ShowS #

(GShow (f p), GShow (g p)) => GShow ((:*:) f g p) # 

Methods

gshowsPrec :: Int -> (f :*: g) p -> ShowS #

gshows :: (f :*: g) p -> ShowS #

gshow :: (f :*: g) p -> String #

gshowList :: [(f :*: g) p] -> ShowS #

GShow (f (g p)) => GShow ((:.:) f g p) # 

Methods

gshowsPrec :: Int -> (f :.: g) p -> ShowS #

gshows :: (f :.: g) p -> ShowS #

gshow :: (f :.: g) p -> String #

gshowList :: [(f :.: g) p] -> ShowS #

(GShow a, GShow b, GShow c) => GShow (a, b, c) # 

Methods

gshowsPrec :: Int -> (a, b, c) -> ShowS #

gshows :: (a, b, c) -> ShowS #

gshow :: (a, b, c) -> String #

gshowList :: [(a, b, c)] -> ShowS #

GShow a => GShow (Const * a b) # 

Methods

gshowsPrec :: Int -> Const * a b -> ShowS #

gshows :: Const * a b -> ShowS #

gshow :: Const * a b -> String #

gshowList :: [Const * a b] -> ShowS #

GShow (f a) => GShow (Alt * f a) # 

Methods

gshowsPrec :: Int -> Alt * f a -> ShowS #

gshows :: Alt * f a -> ShowS #

gshow :: Alt * f a -> String #

gshowList :: [Alt * f a] -> ShowS #

GShow (f p) => GShow (M1 i c f p) # 

Methods

gshowsPrec :: Int -> M1 i c f p -> ShowS #

gshows :: M1 i c f p -> ShowS #

gshow :: M1 i c f p -> String #

gshowList :: [M1 i c f p] -> ShowS #

(GShow a, GShow b, GShow c, GShow d) => GShow (a, b, c, d) # 

Methods

gshowsPrec :: Int -> (a, b, c, d) -> ShowS #

gshows :: (a, b, c, d) -> ShowS #

gshow :: (a, b, c, d) -> String #

gshowList :: [(a, b, c, d)] -> ShowS #

(GShow a, GShow b, GShow c, GShow d, GShow e) => GShow (a, b, c, d, e) # 

Methods

gshowsPrec :: Int -> (a, b, c, d, e) -> ShowS #

gshows :: (a, b, c, d, e) -> ShowS #

gshow :: (a, b, c, d, e) -> String #

gshowList :: [(a, b, c, d, e)] -> ShowS #

(GShow a, GShow b, GShow c, GShow d, GShow e, GShow f) => GShow (a, b, c, d, e, f) # 

Methods

gshowsPrec :: Int -> (a, b, c, d, e, f) -> ShowS #

gshows :: (a, b, c, d, e, f) -> ShowS #

gshow :: (a, b, c, d, e, f) -> String #

gshowList :: [(a, b, c, d, e, f)] -> ShowS #

(GShow a, GShow b, GShow c, GShow d, GShow e, GShow f, GShow g) => GShow (a, b, c, d, e, f, g) # 

Methods

gshowsPrec :: Int -> (a, b, c, d, e, f, g) -> ShowS #

gshows :: (a, b, c, d, e, f, g) -> ShowS #

gshow :: (a, b, c, d, e, f, g) -> String #

gshowList :: [(a, b, c, d, e, f, g)] -> ShowS #

Default definition

gshowsPrecdefault :: (Generic a, GShow' (Rep a)) => Int -> a -> ShowS #

Internal show class

class GShow' f where #

Minimal complete definition

gshowsPrec'

Methods

gshowsPrec' :: Type -> Int -> f a -> ShowS #

isNullary :: f a -> Bool #

Instances

GShow' V1 # 

Methods

gshowsPrec' :: Type -> Int -> V1 a -> ShowS #

isNullary :: V1 a -> Bool #

GShow' U1 # 

Methods

gshowsPrec' :: Type -> Int -> U1 a -> ShowS #

isNullary :: U1 a -> Bool #

GShow' UChar # 

Methods

gshowsPrec' :: Type -> Int -> UChar a -> ShowS #

isNullary :: UChar a -> Bool #

GShow' UDouble # 

Methods

gshowsPrec' :: Type -> Int -> UDouble a -> ShowS #

isNullary :: UDouble a -> Bool #

GShow' UFloat # 

Methods

gshowsPrec' :: Type -> Int -> UFloat a -> ShowS #

isNullary :: UFloat a -> Bool #

GShow' UInt # 

Methods

gshowsPrec' :: Type -> Int -> UInt a -> ShowS #

isNullary :: UInt a -> Bool #

GShow' UWord # 

Methods

gshowsPrec' :: Type -> Int -> UWord a -> ShowS #

isNullary :: UWord a -> Bool #

GShow c => GShow' (K1 i c) # 

Methods

gshowsPrec' :: Type -> Int -> K1 i c a -> ShowS #

isNullary :: K1 i c a -> Bool #

(GShow' a, GShow' b) => GShow' ((:+:) a b) # 

Methods

gshowsPrec' :: Type -> Int -> (a :+: b) a -> ShowS #

isNullary :: (a :+: b) a -> Bool #

(GShow' a, GShow' b) => GShow' ((:*:) a b) # 

Methods

gshowsPrec' :: Type -> Int -> (a :*: b) a -> ShowS #

isNullary :: (a :*: b) a -> Bool #

GShow' a => GShow' (M1 D d a) # 

Methods

gshowsPrec' :: Type -> Int -> M1 D d a a -> ShowS #

isNullary :: M1 D d a a -> Bool #

(GShow' a, Constructor Meta c) => GShow' (M1 C c a) # 

Methods

gshowsPrec' :: Type -> Int -> M1 C c a a -> ShowS #

isNullary :: M1 C c a a -> Bool #

(Selector Meta s, GShow' a) => GShow' (M1 S s a) # 

Methods

gshowsPrec' :: Type -> Int -> M1 S s a a -> ShowS #

isNullary :: M1 S s a a -> Bool #