generic-lexicographic-order-0.1.0.0: Derive Bounded and Enum for sum types and Enum for product types
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Lexicographic.Generic.Internal

Documentation

class GBounded ra where Source #

Methods

gminBound :: ra x Source #

gmaxBound :: ra x Source #

Instances

Instances details
GBounded (U1 :: Type -> Type) Source # 
Instance details

Defined in Data.Lexicographic.Generic.Internal

Bounded a => GBounded (K1 _m a :: Type -> Type) Source # 
Instance details

Defined in Data.Lexicographic.Generic.Internal

Methods

gminBound :: K1 _m a x Source #

gmaxBound :: K1 _m a x Source #

(GBounded ra, GBounded rb) => GBounded (ra :+: rb) Source # 
Instance details

Defined in Data.Lexicographic.Generic.Internal

Methods

gminBound :: (ra :+: rb) x Source #

gmaxBound :: (ra :+: rb) x Source #

(GBounded ra, GBounded rb) => GBounded (ra :*: rb) Source # 
Instance details

Defined in Data.Lexicographic.Generic.Internal

Methods

gminBound :: (ra :*: rb) x Source #

gmaxBound :: (ra :*: rb) x Source #

GBounded ra => GBounded (M1 _d _m ra) Source # 
Instance details

Defined in Data.Lexicographic.Generic.Internal

Methods

gminBound :: M1 _d _m ra x Source #

gmaxBound :: M1 _d _m ra x Source #

class GEnum ra where Source #

Methods

gfromEnum :: ra x -> Int Source #

gtoEnum :: Int -> ra x Source #

Instances

Instances details
GEnum (U1 :: Type -> Type) Source # 
Instance details

Defined in Data.Lexicographic.Generic.Internal

Methods

gfromEnum :: U1 x -> Int Source #

gtoEnum :: Int -> U1 x Source #

Enum a => GEnum (K1 _m a :: Type -> Type) Source # 
Instance details

Defined in Data.Lexicographic.Generic.Internal

Methods

gfromEnum :: K1 _m a x -> Int Source #

gtoEnum :: Int -> K1 _m a x Source #

(GBounded ra, GEnum ra, GBounded rb, GEnum rb) => GEnum (ra :+: rb) Source # 
Instance details

Defined in Data.Lexicographic.Generic.Internal

Methods

gfromEnum :: (ra :+: rb) x -> Int Source #

gtoEnum :: Int -> (ra :+: rb) x Source #

(GBoundEnum ra, GBoundEnum rb) => GEnum (ra :*: rb) Source # 
Instance details

Defined in Data.Lexicographic.Generic.Internal

Methods

gfromEnum :: (ra :*: rb) x -> Int Source #

gtoEnum :: Int -> (ra :*: rb) x Source #

GEnum ra => GEnum (M1 _d _m ra) Source # 
Instance details

Defined in Data.Lexicographic.Generic.Internal

Methods

gfromEnum :: M1 _d _m ra x -> Int Source #

gtoEnum :: Int -> M1 _d _m ra x Source #

class (GBounded ra, GEnum ra) => GBoundEnum ra where Source #

Methods

gcardinality :: p (ra x) -> Int Source #

Instances

Instances details
GBoundEnum (U1 :: Type -> Type) Source # 
Instance details

Defined in Data.Lexicographic.Generic.Internal

Methods

gcardinality :: p (U1 x) -> Int Source #

(Bounded a, Enum a) => GBoundEnum (K1 _m a :: Type -> Type) Source # 
Instance details

Defined in Data.Lexicographic.Generic.Internal

Methods

gcardinality :: p (K1 _m a x) -> Int Source #

(GBoundEnum ra, GBoundEnum rb) => GBoundEnum (ra :+: rb) Source # 
Instance details

Defined in Data.Lexicographic.Generic.Internal

Methods

gcardinality :: p ((ra :+: rb) x) -> Int Source #

(GBoundEnum ra, GBoundEnum rb) => GBoundEnum (ra :*: rb) Source # 
Instance details

Defined in Data.Lexicographic.Generic.Internal

Methods

gcardinality :: p ((ra :*: rb) x) -> Int Source #

GBoundEnum ra => GBoundEnum (M1 _d _m ra) Source # 
Instance details

Defined in Data.Lexicographic.Generic.Internal

Methods

gcardinality :: p (M1 _d _m ra x) -> Int Source #