The Ord class is used for totally ordered datatypes.
Instances of Ord can be derived for any user-defined datatype whose constituent types are in Ord. The declared order of the constructors in the data declaration determines the ordering in derived Ord instances. The Ordering datatype allows a single comparison to determine the precise ordering of two objects.
Ord, as defined by the Haskell report, implements a total order and has the following properties:
- Comparability
x <= y || y <= x=
- Transitivity
if
x <= y && y <= z=
, then
x <= z=
- Reflexivity
x <= x=
- Antisymmetry
if
x <= y && y <= x=
, then
x == y=
The following operator interactions are expected to hold:
x >= y=y <= xx < y=x <= y && x /= yx > y=y < xx < y=compare x y == LTx > y=compare x y == GTx == y=compare x y == EQmin x y == if x <= y then x else y= Truemax x y == if x >= y then x else y= True
Note that (7.) and (8.) do not require min and max to return either of
their arguments. The result is merely required to equal one of the
arguments in terms of (==). Users who expect a stronger guarantee are advised
to write their own min and/or max functions.
The nuance of the above distinction is not always fully internalized by
developers, and in the past (tracing back to the Haskell 1.4 Report) the
specification for Ord asserted the stronger property that (min x y, max x
y) = (x, y) or (y, x), or in other words, that min and max will
return one of their arguments, using argument order as the tie-breaker if
the arguments are equal by comparison. A few list and
Foldable functions have behavior that is best understood
with this assumption in mind: all variations of minimumBy and maximumBy
(which can't use min and max in their implementations) are written such
that minimumBy compare and maximumBy compare are respectively
equivalent to minimum and maximum (which do use min and max) only if
min and max adhere to this tie-breaking convention. Otherwise, if there
are multiple least or largest elements in a container, minimum and
maximum may not return the same one that minimumBy compare and
maximumBy compare do (though they should return something that is
equal). (This is relevant for types with non-extensional equality, like
Arg, but also in cases where the precise reference held
matters for memory-management reasons.) Unless there is a reason to deviate,
it is less confusing for implementors of Ord to respect this same
convention (as the default definitions of min and max do).
Minimal complete definition: either compare or <=. Using compare can be more efficient for complex types.
Instances246Ord, …
Ord ByteArrayDefined in base-4.22.0.0 · Data.Array.ByteNon-lexicographic ordering. This compares the lengths of the byte arrays first and uses a lexicographic ordering if the lengths are equal. Subject to change between major versions.
Ord VoidDefined in ghc-internal-9.1401.0 · GHC.Internal.BaseOrd BigNatDefined in ghc-internal-9.1401.0 · GHC.Internal.Bignum.BigNatOrd IntegerDefined in ghc-internal-9.1401.0 · GHC.Internal.Bignum.IntegerOrd NaturalDefined in ghc-internal-9.1401.0 · GHC.Internal.Bignum.NaturalOrd ByteOrderDefined in ghc-internal-9.1401.0 · GHC.Internal.ByteOrderOrd ClosureTypeDefined in ghc-internal-9.1401.0 · GHC.Internal.ClosureTypesOrd BlockReasonDefined in ghc-internal-9.1401.0 · GHC.Internal.Conc.SyncOrd ThreadIdDefined in ghc-internal-9.1401.0 · GHC.Internal.Conc.SyncOrd ThreadStatusDefined in ghc-internal-9.1401.0 · GHC.Internal.Conc.SyncOrd AllDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalOrd AnyDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalOrd SomeTypeRepDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.Typeable.InternalOrd UniqueDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.UniqueOrd VersionDefined in ghc-internal-9.1401.0 · GHC.Internal.Data.VersionOrd TimeoutKeyDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.TimeOutOrd UniqueDefined in ghc-internal-9.1401.0 · GHC.Internal.Event.UniqueOrd ErrorCallDefined in ghc-internal-9.1401.0 · GHC.Internal.ExceptionOrd ArithExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.Exception.TypeOrd FingerprintDefined in ghc-internal-9.1401.0 · GHC.Internal.Fingerprint.TypeOrd CBoolDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CClockDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CDoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CFloatDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CIntDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CIntMaxDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CIntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CLLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CPtrdiffDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CSCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CSUSecondsDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CShortDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CSigAtomicDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CSizeDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CTimeDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CUCharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CUIntDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CUIntMaxDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CUIntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CULLongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CULongDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CUSecondsDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CUShortDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd CWcharDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.TypesOrd IntPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.PtrOrd WordPtrDefined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.PtrOrd AssociativityDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd DecidedStrictnessDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd FixityDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd SourceStrictnessDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd SourceUnpackednessDefined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd PrimTypeDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresOrd TsoFlagsDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresOrd WhatNextDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresOrd WhyBlockedDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ClosuresOrd HalfWordDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.InfoTable.TypesOrd CostCentreDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ProfInfo.TypesOrd CostCentreStackDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ProfInfo.TypesOrd IndexTableDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ProfInfo.TypesOrd StgTSOProfInfoDefined in ghc-internal-9.1401.0 · GHC.Internal.Heap.ProfInfo.TypesOrd SeekModeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.DeviceOrd ArrayExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionOrd AsyncExceptionDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionOrd ExitCodeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.ExceptionOrd BufferModeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Handle.TypesOrd NewlineDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Handle.TypesOrd NewlineModeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.Handle.TypesOrd IOModeDefined in ghc-internal-9.1401.0 · GHC.Internal.IO.IOModeOrd Int16Defined in ghc-internal-9.1401.0 · GHC.Internal.IntOrd Int32Defined in ghc-internal-9.1401.0 · GHC.Internal.IntOrd Int64Defined in ghc-internal-9.1401.0 · GHC.Internal.IntOrd Int8Defined in ghc-internal-9.1401.0 · GHC.Internal.IntOrd ExtensionDefined in ghc-internal-9.1401.0 · GHC.Internal.LanguageExtensionsOrd ByteOffsetDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.ConstantsOrd WordOffsetDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.ConstantsOrd ByteOffsetDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.ConstantsProfOrd WordOffsetDefined in ghc-internal-9.1401.0 · GHC.Internal.Stack.ConstantsProfOrd CBlkCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CBlkSizeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CCcDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CClockIdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CDevDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CFsBlkCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CFsFilCntDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CGidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CIdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CInoDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CKeyDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CModeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CNfdsDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CNlinkDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd COffDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CPidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CRLimDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CSocklenDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CSpeedDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CSsizeDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CTcflagDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CTimerDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd CUidDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd FdDefined in ghc-internal-9.1401.0 · GHC.Internal.System.Posix.TypesOrd AnnLookupDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd AnnTargetDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd BangDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd BndrVisDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd BodyDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd BytesDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd CallconvDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd ClauseDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd ConDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd DecDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd DecidedStrictnessDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd DerivClauseDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd DerivStrategyDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd DocLocDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd ExpDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd FamilyResultSigDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd FixityDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd FixityDirectionDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd ForeignDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd FunDepDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd GuardDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd InfoDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd InjectivityAnnDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd InlineDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd LitDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd LocDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd MatchDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd ModNameDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd ModuleDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd ModuleInfoDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd NameDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd NameFlavourDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd NameSpaceDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd NamespaceSpecifierDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd OccNameDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd OverlapDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd PatDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd PatSynArgsDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd PatSynDirDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd PhasesDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd PkgNameDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd PragmaDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd RangeDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd RoleDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd RuleBndrDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd RuleMatchDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd SafetyDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd SourceStrictnessDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd SourceUnpackednessDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd SpecificityDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd StmtDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd TyLitDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd TySynEqnDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd TypeDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd TypeFamilyHeadDefined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd SomeCharDefined in ghc-internal-9.1401.0 · GHC.Internal.TypeLitsOrd SomeSymbolDefined in ghc-internal-9.1401.0 · GHC.Internal.TypeLitsOrd SomeNatDefined in ghc-internal-9.1401.0 · GHC.Internal.TypeNatsOrd BoolDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesOrd CharDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesOrd DoubleDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesIEEE 754 Double-precision type includes not only numbers, but also positive and negative infinities and a special element called
NaN(which can be quiet or signal).IEEE 754-2008, section 5.11 requires that if at least one of arguments of <=, <, >, >= is
NaNthen the result of the comparison is False, andinstanceOrd Double complies with this requirement. This violates the reflexivity: bothNaN<=NaNandNaN>=NaNare False.IEEE 754-2008, section 5.10 defines
totalOrderpredicate. Unfortunately, compare on Doubles violates the IEEE standard and does not define a total order. More specifically, both compareNaNxand comparexNaNalways return GT.Thus, users must be extremely cautious when using
instanceOrd Double. For instance, one should avoid ordered containers with keys represented by Double, because data loss and corruption may happen. An IEEE-compliant compare is available infp-ieeepackage asTotallyOrderednewtype.Moving further, the behaviour of min and max with regards to
NaNis also non-compliant. IEEE 754-2008, section 5.3.1 defines that quietNaNshould be treated as a missing data byminNumandmaxNumfunctions, for example,minNum(NaN, 1) = minNum(1, NaN) = 1. Some languages such as Java deviate from the standard implementingminNum(NaN, 1) = minNum(1, NaN) = NaN. However, min / max inbaseare even worse: minNaN1 is 1, but min 1NaNisNaN.IEEE 754-2008 compliant min / max can be found in
ieee754package underminNum/maxNumnames. Implementations compliant withminimumNumber/maximumNumberfrom a newer IEEE 754-2019, section 9.6 are available fromfp-ieeepackage.Ord FloatDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesOrd IntDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesOrd OrderingDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesOrd TyConDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesOrd WordDefined in ghc-internal-9.1401.0 · GHC.Internal.ClassesOrd GeneralCategoryDefined in ghc-internal-9.1401.0 · GHC.Internal.UnicodeOrd Word16Defined in ghc-internal-9.1401.0 · GHC.Internal.WordOrd Word32Defined in ghc-internal-9.1401.0 · GHC.Internal.WordOrd Word64Defined in ghc-internal-9.1401.0 · GHC.Internal.WordOrd Word8Defined in ghc-internal-9.1401.0 · GHC.Internal.WordOrd ()Defined in ghc-internal-9.1401.0 · GHC.Internal.ClassesOrd (ConstPtr a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Foreign.C.ConstPtrOrd (ForeignPtr a)Defined in ghc-internal-9.1401.0 · GHC.Internal.ForeignPtrOrd (FunPtr a)Defined in ghc-internal-9.1401.0 · GHC.Internal.PtrOrd (Ptr a)Defined in ghc-internal-9.1401.0 · GHC.Internal.PtrOrd (SChar c)Defined in ghc-internal-9.1401.0 · GHC.Internal.TypeLitsOrd (SSymbol s)Defined in ghc-internal-9.1401.0 · GHC.Internal.TypeLitsOrd (SNat n)Defined in ghc-internal-9.1401.0 · GHC.Internal.TypeNatsOrd a => Ord (First a)Defined in base-4.22.0.0 · Data.SemigroupOrd a => Ord (Last a)Defined in base-4.22.0.0 · Data.SemigroupOrd a => Ord (Max a)Defined in base-4.22.0.0 · Data.SemigroupOrd a => Ord (Min a)Defined in base-4.22.0.0 · Data.SemigroupOrd a => Ord (NonEmpty a)Defined in ghc-internal-9.1401.0 · GHC.Internal.BaseOrd a => Ord (Identity a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.IdentityOrd a => Ord (First a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidOrd a => Ord (Last a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidOrd a => Ord (Down a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.OrdOrd a => Ord (Dual a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalOrd a => Ord (Product a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalOrd a => Ord (Sum a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalOrd a => Ord (ZipList a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Functor.ZipListOrd a => Ord (Maybe a)Defined in ghc-internal-9.1401.0 · GHC.Internal.MaybeOrd a => Ord (a)Defined in ghc-internal-9.1401.0 · GHC.Internal.ClassesOrd a => Ord [a]Defined in ghc-internal-9.1401.0 · GHC.Internal.ClassesOrd flag => Ord (TyVarBndr flag)Defined in ghc-internal-9.1401.0 · GHC.Internal.TH.SyntaxOrd m => Ord (WrappedMonoid m)Defined in base-4.22.0.0 · Data.SemigroupOrd p => Ord (Par1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsIntegral a => Ord (Ratio a)Defined in ghc-internal-9.1401.0 · GHC.Internal.RealOrd (Fixed a)Defined in base-4.22.0.0 · Data.FixedOrd (Proxy s)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.ProxyOrd (TypeRep a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Typeable.InternalOrd (U1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd (V1 p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd a => Ord (Arg a b)Defined in base-4.22.0.0 · Data.Semigroup(Ord a, Ord b) => Ord (Either a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Either(Ord a, Ord b) => Ord (a, b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes(Ix i, Ord e) => Ord (Array i e)Defined in ghc-internal-9.1401.0 · GHC.Internal.ArrOrd (Coercion a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.CoercionOrd (URec Char p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd (URec Double p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd (URec Float p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd (URec Int p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd (URec Word p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd (URec (Ptr ()) p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd (a :~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.EqualityOrd (f a) => Ord (Ap f a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.MonoidOrd (f a) => Ord (Alt f a)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Semigroup.InternalOrd (f p) => Ord (Rec1 f p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd a => Ord (Const a b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Functor.Const(Ord a, Ord b, Ord c) => Ord (a, b, c)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes(Generic1 f, Ord (Rep1 f a)) => Ord (Generically1 f a)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd (a :~~: b)Defined in ghc-internal-9.1401.0 · GHC.Internal.Data.Type.EqualityOrd c => Ord (K1 i c p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Ord (f a), Ord (g a)) => Ord (Product f g a)Defined in base-4.22.0.0 · Data.Functor.Product(Ord (f a), Ord (g a)) => Ord (Sum f g a)Defined in base-4.22.0.0 · Data.Functor.Sum(Ord (f p), Ord (g p)) => Ord ((:*:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Ord (f p), Ord (g p)) => Ord ((:+:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Ord a, Ord b, Ord c, Ord d) => Ord (a, b, c, d)Defined in ghc-internal-9.1401.0 · GHC.Internal.ClassesOrd (f (g a)) => Ord (Compose f g a)Defined in base-4.22.0.0 · Data.Functor.ComposeOrd (f (g p)) => Ord ((:.:) f g p)Defined in ghc-internal-9.1401.0 · GHC.Internal.GenericsOrd (f p) => Ord (M1 i c f p)Defined in ghc-internal-9.1401.0 · GHC.Internal.Generics(Ord a, Ord b, Ord c, Ord d, Ord e) => Ord (a, b, c, d, e)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f) => Ord (a, b, c, d, e, f)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g) => Ord (a, b, c, d, e, f, g)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h) => Ord (a, b, c, d, e, f, g, h)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h, Ord i) => Ord (a, b, c, d, e, f, g, h, i)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h, Ord i, Ord j) => Ord (a, b, c, d, e, f, g, h, i, j)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h, Ord i, Ord j, Ord k) => Ord (a, b, c, d, e, f, g, h, i, j, k)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h, Ord i, Ord j, Ord k, Ord l) => Ord (a, b, c, d, e, f, g, h, i, j, k, l)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h, Ord i, Ord j, Ord k, Ord l, Ord m) => Ord (a, b, c, d, e, f, g, h, i, j, k, l, m)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h, Ord i, Ord j, Ord k, Ord l, Ord m, Ord n) => Ord (a, b, c, d, e, f, g, h, i, j, k, l, m, n)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g, Ord h, Ord i, Ord j, Ord k, Ord l, Ord m, Ord n, Ord o) => Ord (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)Defined in ghc-internal-9.1401.0 · GHC.Internal.Classes