Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- newtype GenericLexicographicOrder a = GenericLexicographicOrder a
- genericMinBound :: (Generic a, GBounded (Rep a)) => a
- genericMaxBound :: (Generic a, GBounded (Rep a)) => a
- genericFromEnum :: (Generic a, GEnum (Rep a)) => a -> Int
- genericToEnum :: (Generic a, GEnum (Rep a)) => Int -> a
- class GBounded ra
- class GEnum ra
- class Generic a
- type family Rep a :: Type -> Type
Documentation
newtype GenericLexicographicOrder a Source #
Derive generic instances of Bounded
and Enum
for sum types, and Enum
instances for product types, based on the instances of the components.
These instances are designed to cohere with the stock-derived Ord
instance.
data A = A1 Bool | A2 Ordering deriving (Generic, Ord) deriving (Bounded, Enum) via GenericLexicographicOrder A
>>>
[minBound .. maxBound] :: [A]
[A1 False, A1 True, A2 LT, A2 EQ, A2 GT]
>>>
succ (A1 maxBound)
A2 LT
>>>
pred (A2 minBound)
A1 True
>>>
A1 maxBound < A2 minBound
True
Instances
Representable types of kind *
.
This class is derivable in GHC with the DeriveGeneric
flag on.
A Generic
instance must satisfy the following laws:
from
.to
≡id
to
.from
≡id
Instances
Generic Bool | Since: base-4.6.0.0 |
Generic Ordering | Since: base-4.6.0.0 |
Generic () | Since: base-4.6.0.0 |
Generic ExitCode | |
Generic All | Since: base-4.7.0.0 |
Generic Any | Since: base-4.7.0.0 |
Generic Fixity | Since: base-4.7.0.0 |
Generic Associativity | Since: base-4.7.0.0 |
Defined in GHC.Generics type Rep Associativity :: Type -> Type # from :: Associativity -> Rep Associativity x # to :: Rep Associativity x -> Associativity # | |
Generic SourceUnpackedness | Since: base-4.9.0.0 |
Defined in GHC.Generics type Rep SourceUnpackedness :: Type -> Type # from :: SourceUnpackedness -> Rep SourceUnpackedness x # to :: Rep SourceUnpackedness x -> SourceUnpackedness # | |
Generic SourceStrictness | Since: base-4.9.0.0 |
Defined in GHC.Generics type Rep SourceStrictness :: Type -> Type # from :: SourceStrictness -> Rep SourceStrictness x # to :: Rep SourceStrictness x -> SourceStrictness # | |
Generic DecidedStrictness | Since: base-4.9.0.0 |
Defined in GHC.Generics type Rep DecidedStrictness :: Type -> Type # from :: DecidedStrictness -> Rep DecidedStrictness x # to :: Rep DecidedStrictness x -> DecidedStrictness # | |
Generic [a] | Since: base-4.6.0.0 |
Generic (Maybe a) | Since: base-4.6.0.0 |
Generic (Par1 p) | Since: base-4.7.0.0 |
Generic (ZipList a) | Since: base-4.7.0.0 |
Generic (Identity a) | Since: base-4.8.0.0 |
Generic (First a) | Since: base-4.7.0.0 |
Generic (Last a) | Since: base-4.7.0.0 |
Generic (Dual a) | Since: base-4.7.0.0 |
Generic (Endo a) | Since: base-4.7.0.0 |
Generic (Sum a) | Since: base-4.7.0.0 |
Generic (Product a) | Since: base-4.7.0.0 |
Generic (Down a) | Since: base-4.12.0.0 |
Generic (NonEmpty a) | Since: base-4.6.0.0 |
Generic (GenericLexicographicOrder a) Source # | |
Defined in Data.Lexicographic.Generic type Rep (GenericLexicographicOrder a) :: Type -> Type # from :: GenericLexicographicOrder a -> Rep (GenericLexicographicOrder a) x # to :: Rep (GenericLexicographicOrder a) x -> GenericLexicographicOrder a # | |
Generic (Either a b) | Since: base-4.6.0.0 |
Generic (V1 p) | Since: base-4.9.0.0 |
Generic (U1 p) | Since: base-4.7.0.0 |
Generic (a, b) | Since: base-4.6.0.0 |
Generic (WrappedMonad m a) | Since: base-4.7.0.0 |
Defined in Control.Applicative type Rep (WrappedMonad m a) :: Type -> Type # from :: WrappedMonad m a -> Rep (WrappedMonad m a) x # to :: Rep (WrappedMonad m a) x -> WrappedMonad m a # | |
Generic (Proxy t) | Since: base-4.6.0.0 |
Generic (Rec1 f p) | Since: base-4.7.0.0 |
Generic (URec (Ptr ()) p) | Since: base-4.9.0.0 |
Generic (URec Char p) | Since: base-4.9.0.0 |
Generic (URec Double p) | Since: base-4.9.0.0 |
Generic (URec Float p) | |
Generic (URec Int p) | Since: base-4.9.0.0 |
Generic (URec Word p) | Since: base-4.9.0.0 |
Generic (a, b, c) | Since: base-4.6.0.0 |
Generic (WrappedArrow a b c) | Since: base-4.7.0.0 |
Defined in Control.Applicative type Rep (WrappedArrow a b c) :: Type -> Type # from :: WrappedArrow a b c -> Rep (WrappedArrow a b c) x # to :: Rep (WrappedArrow a b c) x -> WrappedArrow a b c # | |
Generic (Kleisli m a b) | Since: base-4.14.0.0 |
Generic (Const a b) | Since: base-4.9.0.0 |
Generic (Ap f a) | Since: base-4.12.0.0 |
Generic (Alt f a) | Since: base-4.8.0.0 |
Generic (K1 i c p) | Since: base-4.7.0.0 |
Generic ((f :+: g) p) | Since: base-4.7.0.0 |
Generic ((f :*: g) p) | Since: base-4.7.0.0 |
Generic (a, b, c, d) | Since: base-4.6.0.0 |
Generic (M1 i c f p) | Since: base-4.7.0.0 |
Generic ((f :.: g) p) | Since: base-4.7.0.0 |
Generic (a, b, c, d, e) | Since: base-4.6.0.0 |
Generic (a, b, c, d, e, f) | Since: base-4.6.0.0 |
Generic (a, b, c, d, e, f, g) | Since: base-4.6.0.0 |
type family Rep a :: Type -> Type #
Generic representation type