generic-aeson-0.2.0.9: Derivation of Aeson instances using GHC generics.

Safe HaskellSafe
LanguageHaskell98

Generics.Generic.IsEnum

Description

Test if a data type is an enumeration (only zero-argument constructors) generically using GHC.Generics.

Synopsis

Documentation

isEnum :: forall a. (Generic a, GIsEnum (Rep a)) => Proxy a -> Bool #

Generically test if a data type is an enumeration.

class GIsEnum f where #

Class for testing if the functors from GHC.Generics are enumerations. You generally don't need to give any custom instances. Just call isEnum.

Minimal complete definition

gIsEnum

Methods

gIsEnum :: Proxy (f a) -> Bool #

Instances

GIsEnum Par1 # 

Methods

gIsEnum :: Proxy * (Par1 a) -> Bool #

GIsEnum (V1 *) # 

Methods

gIsEnum :: Proxy * (V1 * a) -> Bool #

GIsEnum (U1 *) # 

Methods

gIsEnum :: Proxy * (U1 * a) -> Bool #

GIsEnum (Rec1 * f) # 

Methods

gIsEnum :: Proxy * (Rec1 * f a) -> Bool #

GIsEnum (K1 * i a) # 

Methods

gIsEnum :: Proxy * (K1 * i a a) -> Bool #

(GIsEnum f, GIsEnum g) => GIsEnum ((:+:) * f g) # 

Methods

gIsEnum :: Proxy * ((* :+: f) g a) -> Bool #

(GIsEnum f, GIsEnum g) => GIsEnum ((:*:) * f g) # 

Methods

gIsEnum :: Proxy * ((* :*: f) g a) -> Bool #

GIsEnum f => GIsEnum (M1 * D c f) # 

Methods

gIsEnum :: Proxy * (M1 * D c f a) -> Bool #

GIsEnum f => GIsEnum (M1 * C c f) # 

Methods

gIsEnum :: Proxy * (M1 * C c f a) -> Bool #

GIsEnum (M1 * S c a) # 

Methods

gIsEnum :: Proxy * (M1 * S c a a) -> Bool #