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 (==).
Minimal complete definition: either compare or <=. Using compare can be more efficient for complex types.
Instances352Ord, …
Ord ByteArrayDefined in base-4.20.2.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 OptionsDefined in bifunctors-5.6.2 · Data.Bifunctor.THOrd ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Internal.TypeOrd ByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Lazy.InternalOrd ShortByteStringDefined in bytestring-0.12.2.0 · Data.ByteString.Short.InternalLexicographic order.
Ord IntSetDefined in containers-0.7 · Data.IntSet.InternalOrd BigNatDefined in ghc-bignum-1.3 · GHC.Num.BigNatOrd IntegerDefined in ghc-bignum-1.3 · GHC.Num.IntegerOrd NaturalDefined in ghc-bignum-1.3 · GHC.Num.NaturalOrd ExtensionDefined in ghc-boot-th-9.10.3 · GHC.LanguageExtensions.TypeOrd VoidDefined in ghc-internal-9.1003.0 · GHC.Internal.BaseOrd ByteOrderDefined in ghc-internal-9.1003.0 · GHC.Internal.ByteOrderOrd ClosureTypeDefined in ghc-internal-9.1003.0 · GHC.Internal.ClosureTypesOrd BlockReasonDefined in ghc-internal-9.1003.0 · GHC.Internal.Conc.SyncOrd ThreadIdDefined in ghc-internal-9.1003.0 · GHC.Internal.Conc.SyncOrd ThreadStatusDefined in ghc-internal-9.1003.0 · GHC.Internal.Conc.SyncOrd AllDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalOrd AnyDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalOrd SomeTypeRepDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.Typeable.InternalOrd UniqueDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.UniqueOrd VersionDefined in ghc-internal-9.1003.0 · GHC.Internal.Data.VersionOrd TimeoutKeyDefined in ghc-internal-9.1003.0 · GHC.Internal.Event.TimeOutOrd UniqueDefined in ghc-internal-9.1003.0 · GHC.Internal.Event.UniqueOrd ErrorCallDefined in ghc-internal-9.1003.0 · GHC.Internal.ExceptionOrd ArithExceptionDefined in ghc-internal-9.1003.0 · GHC.Internal.Exception.TypeOrd FingerprintDefined in ghc-internal-9.1003.0 · GHC.Internal.Fingerprint.TypeOrd CBoolDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CClockDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CDoubleDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CFloatDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CIntMaxDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CIntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CLLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CPtrdiffDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CSCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CSUSecondsDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CShortDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CSigAtomicDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CSizeDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CTimeDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CUCharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CUIntDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CUIntMaxDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CUIntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CULLongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CULongDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CUSecondsDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CUShortDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd CWcharDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.TypesOrd IntPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.PtrOrd WordPtrDefined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.PtrOrd AssociativityDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd DecidedStrictnessDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd FixityDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd SourceStrictnessDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd SourceUnpackednessDefined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd SeekModeDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.DeviceOrd ArrayExceptionDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.ExceptionOrd AsyncExceptionDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.ExceptionOrd ExitCodeDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.ExceptionOrd BufferModeDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.Handle.TypesOrd NewlineDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.Handle.TypesOrd NewlineModeDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.Handle.TypesOrd IOModeDefined in ghc-internal-9.1003.0 · GHC.Internal.IO.IOModeOrd Int16Defined in ghc-internal-9.1003.0 · GHC.Internal.IntOrd Int32Defined in ghc-internal-9.1003.0 · GHC.Internal.IntOrd Int64Defined in ghc-internal-9.1003.0 · GHC.Internal.IntOrd Int8Defined in ghc-internal-9.1003.0 · GHC.Internal.IntOrd CBlkCntDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CBlkSizeDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CCcDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CClockIdDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CDevDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CFsBlkCntDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CFsFilCntDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CGidDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CIdDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CInoDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CKeyDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CModeDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CNfdsDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CNlinkDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd COffDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CPidDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CRLimDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CSocklenDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CSpeedDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CSsizeDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CTcflagDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CTimerDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd CUidDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd FdDefined in ghc-internal-9.1003.0 · GHC.Internal.System.Posix.TypesOrd SomeCharDefined in ghc-internal-9.1003.0 · GHC.Internal.TypeLitsOrd SomeSymbolDefined in ghc-internal-9.1003.0 · GHC.Internal.TypeLitsOrd SomeNatDefined in ghc-internal-9.1003.0 · GHC.Internal.TypeNatsOrd GeneralCategoryDefined in ghc-internal-9.1003.0 · GHC.Internal.UnicodeOrd Word16Defined in ghc-internal-9.1003.0 · GHC.Internal.WordOrd Word32Defined in ghc-internal-9.1003.0 · GHC.Internal.WordOrd Word64Defined in ghc-internal-9.1003.0 · GHC.Internal.WordOrd Word8Defined in ghc-internal-9.1003.0 · GHC.Internal.WordOrd BoolDefined in ghc-prim-0.12.0 · GHC.ClassesOrd CharDefined in ghc-prim-0.12.0 · GHC.ClassesOrd DoubleDefined in ghc-prim-0.12.0 · GHC.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-prim-0.12.0 · GHC.ClassesOrd IntDefined in ghc-prim-0.12.0 · GHC.ClassesOrd OrderingDefined in ghc-prim-0.12.0 · GHC.ClassesOrd TyConDefined in ghc-prim-0.12.0 · GHC.ClassesOrd WordDefined in ghc-prim-0.12.0 · GHC.ClassesOrd OptionsDefined in invariant-0.6.4 · Data.Functor.Invariant.THOrd InvariantClassDefined in invariant-0.6.4 · Data.Functor.Invariant.TH.InternalOrd OsCharDefined in os-string-2.0.7 · System.OsString.Internal.TypesByte ordering of the internal representation.
Ord OsStringDefined in os-string-2.0.7 · System.OsString.Internal.TypesByte ordering of the internal representation.
Ord PosixCharDefined in os-string-2.0.7 · System.OsString.Internal.TypesOrd PosixStringDefined in os-string-2.0.7 · System.OsString.Internal.TypesOrd WindowsCharDefined in os-string-2.0.7 · System.OsString.Internal.TypesOrd WindowsStringDefined in os-string-2.0.7 · System.OsString.Internal.TypesOrd PrettyLevelDefined in pretty-1.1.3.6 · Text.PrettyPrint.Annotated.HughesPJClassOrd PrettyLevelDefined in pretty-1.1.3.6 · Text.PrettyPrint.HughesPJClassOrd CardinalityDefined in random-1.2.1.3 · System.Random.GFiniteOrd ScientificDefined in scientific-0.3.8.0 · Data.ScientificScientific numbers can be safely compared for ordering. No magnitude
10^eis calculated so there's no risk of a blowup in space or time when comparing scientific numbers coming from untrusted sources.Ord AnnLookupDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd AnnTargetDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd BangDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd BndrVisDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd BodyDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd BytesDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd CallconvDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd ClauseDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd ConDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd DecDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd DecidedStrictnessDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd DerivClauseDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd DerivStrategyDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd DocLocDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd ExpDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd FamilyResultSigDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd FixityDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd FixityDirectionDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd ForeignDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd FunDepDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd GuardDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd InfoDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd InjectivityAnnDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd InlineDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd LitDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd LocDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd MatchDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd ModNameDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd ModuleDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd ModuleInfoDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd NameDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd NameFlavourDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd NameSpaceDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd NamespaceSpecifierDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd OccNameDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd OverlapDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd PatDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd PatSynArgsDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd PatSynDirDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd PhasesDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd PkgNameDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd PragmaDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd RangeDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd RoleDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd RuleBndrDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd RuleMatchDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd SafetyDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd SourceStrictnessDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd SourceUnpackednessDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd SpecificityDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd StmtDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd TyLitDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd TySynEqnDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd TypeDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd TypeFamilyHeadDefined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd I8Defined in text-2.1.3 · Data.Text.ForeignOrd TextDefined in text-2.1.3 · Data.Text · orphanOrd BuilderDefined in text-2.1.3 · Data.Text.Internal.BuilderOrd TextDefined in text-2.1.3 · Data.Text.Lazy · orphanOrd ConstructorVariantDefined in th-abstraction-0.7.1.0 · Language.Haskell.TH.DatatypeOrd DatatypeVariantDefined in th-abstraction-0.7.1.0 · Language.Haskell.TH.DatatypeOrd FieldStrictnessDefined in th-abstraction-0.7.1.0 · Language.Haskell.TH.DatatypeOrd StrictnessDefined in th-abstraction-0.7.1.0 · Language.Haskell.TH.DatatypeOrd UnpackednessDefined in th-abstraction-0.7.1.0 · Language.Haskell.TH.DatatypeOrd DayDefined in time-1.12.2 · Data.Time.Calendar.DaysOrd MonthDefined in time-1.12.2 · Data.Time.Calendar.MonthOrd QuarterDefined in time-1.12.2 · Data.Time.Calendar.QuarterOrd QuarterOfYearDefined in time-1.12.2 · Data.Time.Calendar.QuarterOrd DayOfWeekDefined in time-1.12.2 · Data.Time.Calendar.WeekOrd AbsoluteTimeDefined in time-1.12.2 · Data.Time.Clock.Internal.AbsoluteTimeOrd DiffTimeDefined in time-1.12.2 · Data.Time.Clock.Internal.DiffTimeOrd NominalDiffTimeDefined in time-1.12.2 · Data.Time.Clock.Internal.NominalDiffTimeOrd SystemTimeDefined in time-1.12.2 · Data.Time.Clock.Internal.SystemTimeOrd UTCTimeDefined in time-1.12.2 · Data.Time.Clock.Internal.UTCTimeOrd UniversalTimeDefined in time-1.12.2 · Data.Time.Clock.Internal.UniversalTimeOrd TimeLocaleDefined in time-1.12.2 · Data.Time.Format.LocaleOrd LocalTimeDefined in time-1.12.2 · Data.Time.LocalTime.Internal.LocalTimeOrd TimeOfDayDefined in time-1.12.2 · Data.Time.LocalTime.Internal.TimeOfDayOrd TimeZoneDefined in time-1.12.2 · Data.Time.LocalTime.Internal.TimeZoneOrd UUIDDefined in uuid-types-1.0.6 · Data.UUID.Types.InternalOrd UnpackedUUIDDefined in uuid-types-1.0.6 · Data.UUID.Types.InternalOrd ()Defined in ghc-prim-0.12.0 · GHC.ClassesIntegral a => Ord (Ratio a)Defined in ghc-internal-9.1003.0 · GHC.Internal.RealOrd (ConstPtr a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Foreign.C.ConstPtrOrd (ForeignPtr a)Defined in ghc-internal-9.1003.0 · GHC.Internal.ForeignPtrOrd (FunPtr a)Defined in ghc-internal-9.1003.0 · GHC.Internal.PtrOrd (Ptr a)Defined in ghc-internal-9.1003.0 · GHC.Internal.PtrOrd (SChar c)Defined in ghc-internal-9.1003.0 · GHC.Internal.TypeLitsOrd (SSymbol s)Defined in ghc-internal-9.1003.0 · GHC.Internal.TypeLitsOrd (SNat n)Defined in ghc-internal-9.1003.0 · GHC.Internal.TypeNatsOrd a => Ord (First a)Defined in base-4.20.2.0 · Data.SemigroupOrd a => Ord (Last a)Defined in base-4.20.2.0 · Data.SemigroupOrd a => Ord (Max a)Defined in base-4.20.2.0 · Data.SemigroupOrd a => Ord (Min a)Defined in base-4.20.2.0 · Data.SemigroupOrd a => Ord (IntMap a)Defined in containers-0.7 · Data.IntMap.InternalOrd a => Ord (Seq a)Defined in containers-0.7 · Data.Sequence.InternalOrd a => Ord (ViewL a)Defined in containers-0.7 · Data.Sequence.InternalOrd a => Ord (ViewR a)Defined in containers-0.7 · Data.Sequence.InternalOrd a => Ord (Intersection a)Defined in containers-0.7 · Data.Set.InternalOrd a => Ord (Set a)Defined in containers-0.7 · Data.Set.InternalOrd a => Ord (Tree a)Defined in containers-0.7 · Data.TreeOrd a => Ord (DNonEmpty a)Defined in dlist-1.0 · Data.DList.DNonEmpty.InternalOrd a => Ord (DList a)Defined in dlist-1.0 · Data.DList.InternalOrd a => Ord (NonEmpty a)Defined in ghc-internal-9.1003.0 · GHC.Internal.BaseOrd a => Ord (Identity a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.IdentityOrd a => Ord (First a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidOrd a => Ord (Last a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidOrd a => Ord (Down a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.OrdOrd a => Ord (Dual a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalOrd a => Ord (Product a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalOrd a => Ord (Sum a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalOrd a => Ord (ZipList a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Functor.ZipListOrd a => Ord (Maybe a)Defined in ghc-internal-9.1003.0 · GHC.Internal.MaybeOrd a => Ord (Hashed a)Defined in hashable-1.4.7.0 · Data.Hashable.ClassOrd a => Ord (Array a)Defined in primitive-0.9.1.0 · Data.Primitive.ArrayLexicographic ordering. Subject to change between major versions.
Ord a => Ord (SmallArray a)Defined in primitive-0.9.1.0 · Data.Primitive.SmallArrayLexicographic ordering. Subject to change between major versions.
Ord a => Ord (Stream a)Defined in text-2.1.3 · Data.Text.Internal.Fusion.TypesOrd a => Ord (HashSet a)Defined in unordered-containers-0.2.21 · Data.HashSet.InternalOrd a => Ord (Vector a)Defined in vector-0.13.2.0 · Data.VectorOrd a => Ord (Vector a)Defined in vector-0.13.2.0 · Data.Vector.StrictOrd a => Ord (a)Defined in ghc-prim-0.12.0 · GHC.ClassesOrd a => Ord [a]Defined in ghc-prim-0.12.0 · GHC.ClassesOrd flag => Ord (TyVarBndr flag)Defined in template-haskell-2.22.0.0 · Language.Haskell.TH.SyntaxOrd g => Ord (StateGen g)Defined in random-1.2.1.3 · System.Random.InternalOrd g => Ord (AtomicGen g)Defined in random-1.2.1.3 · System.Random.StatefulOrd g => Ord (IOGen g)Defined in random-1.2.1.3 · System.Random.StatefulOrd g => Ord (STGen g)Defined in random-1.2.1.3 · System.Random.StatefulOrd g => Ord (TGen g)Defined in random-1.2.1.3 · System.Random.StatefulOrd m => Ord (WrappedMonoid m)Defined in base-4.20.2.0 · Data.SemigroupOrd p => Ord (Par1 p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Storable a, Ord a) => Ord (Vector a)Defined in vector-0.13.2.0 · Data.Vector.Storable(Ord a, Prim a) => Ord (PrimArray a)Defined in primitive-0.9.1.0 · Data.Primitive.PrimArrayLexicographic ordering. Subject to change between major versions.
(Prim a, Ord a) => Ord (Vector a)Defined in vector-0.13.2.0 · Data.Vector.Primitive(Unbox a, Ord a) => Ord (Vector a)Defined in vector-0.13.2.0 · Data.Vector.Unboxed · orphanOrd (Fixed a)Defined in base-4.20.2.0 · Data.FixedOrd (Proxy s)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.ProxyOrd (TypeRep a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Typeable.InternalOrd (U1 p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd (V1 p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd a => Ord (Arg a b)Defined in base-4.20.2.0 · Data.SemigroupOrd m => Ord (Over m a)Defined in selective-0.7.0.1 · Control.SelectiveOrd m => Ord (Under m a)Defined in selective-0.7.0.1 · Control.SelectiveOrd m => Ord (Over m a)Defined in selective-0.7.0.1 · Control.Selective.MultiOrd m => Ord (Under m a)Defined in selective-0.7.0.1 · Control.Selective.Multi(Ord1 f, Ord a) => Ord (Ap f a)Defined in free-5.2 · Control.Applicative.Free(Ord1 f, Ord a) => Ord (Cofree f a)Defined in free-5.2 · Control.Comonad.Cofree(Ord1 f, Ord a) => Ord (Free f a)Defined in free-5.2 · Control.Monad.Free(Ord1 f, Ord a) => Ord (Free f a)Defined in free-5.2 · Control.Monad.Free.Ap(Ord1 f, Ord a) => Ord (Coyoneda f a)Defined in kan-extensions-5.2.7 · Data.Functor.Coyoneda(Ord1 f, Ord a) => Ord (Yoneda f a)Defined in kan-extensions-5.2.7 · Data.Functor.Yoneda(Ord1 f, Ord a) => Ord (Lift f a)Defined in transformers-0.6.1.1 · Control.Applicative.Lift(Ord1 m, Ord a) => Ord (IterT m a)Defined in free-5.2 · Control.Monad.Trans.Iter(Ord1 m, Ord a) => Ord (MaybeT m a)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Maybe(Ord1 w, Ord a) => Ord (CoiterT w a)Defined in free-5.2 · Control.Comonad.Trans.Coiter(Ix i, Ord e) => Ord (Array i e)Defined in ghc-internal-9.1003.0 · GHC.Internal.Arr(Ix ix, Ord e, IArray UArray e) => Ord (UArray ix e)Defined in array-0.5.8.0 · Data.Array.Base(Ord a, Ord b) => Ord (Either a b)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Either(Ord a, Ord b) => Ord (a, b)Defined in ghc-prim-0.12.0 · GHC.Classes(Ord e, Ord a) => Ord (Validation e a)Defined in either-5.0.3 · Data.Either.Validation(Ord e, Ord a) => Ord (Validation e a)Defined in selective-0.7.0.1 · Control.Selective(Ord k, Ord v) => Ord (Map k v)Defined in containers-0.7 · Data.Map.Internal(Ord k, Ord v) => Ord (HashMap k v)Defined in unordered-containers-0.2.21 · Data.HashMap.InternalThe ordering is total and consistent with the Eq instance. However, nothing else about the ordering is specified, and it may change from version to version of either this package or of
hashable.(GOrd (Rep1 f a), Generic1 f) => Ord (FunctorClassesDefault f a)Defined in transformers-compat-0.7.2 · Data.Functor.Classes.Generic.InternalOrd (Coercion a b)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Type.CoercionOrd (URec Char p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd (URec Double p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd (URec Float p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd (URec Int p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd (URec Word p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd (URec (Ptr ()) p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd (a :~: b)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Type.EqualityOrd (bi a b) => Ord (Biap bi a b)Defined in bifunctors-5.6.2 · Data.Bifunctor.BiapOrd (f a) => Ord (Ap f a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.MonoidOrd (f a) => Ord (Alt f a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Semigroup.InternalOrd (f a) => Ord (WrappedContravariant f a)Defined in invariant-0.6.4 · Data.Functor.InvariantOrd (f a) => Ord (WrappedFunctor f a)Defined in invariant-0.6.4 · Data.Functor.InvariantOrd (f p) => Ord (Rec1 f p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd (p (Fix p a) a) => Ord (Fix p a)Defined in bifunctors-5.6.2 · Data.Bifunctor.FixOrd (p a a) => Ord (Join p a)Defined in bifunctors-5.6.2 · Data.Bifunctor.JoinOrd (w (CofreeF f a (CofreeT f w a))) => Ord (CofreeT f w a)Defined in free-5.2 · Control.Comonad.Trans.CofreeOrd a => Ord (Const a b)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Functor.ConstOrd a => Ord (Constant a b)Defined in transformers-0.6.1.1 · Data.Functor.ConstantOrd a => Ord (Bundle Id v a)Defined in vector-0.13.2.0 · Data.Vector.Fusion.Bundle · orphanOrd b => Ord (Tagged s b)Defined in tagged-0.8.9 · Data.Tagged(Ord1 f, Ord1 m, Ord a) => Ord (FreeT f m a)Defined in free-5.2 · Control.Monad.Trans.Free(Ord1 f, Ord1 m, Ord a) => Ord (FreeT f m a)Defined in free-5.2 · Control.Monad.Trans.Free.Ap(Ord1 f, Ord a) => Ord (Backwards f a)Defined in transformers-0.6.1.1 · Control.Applicative.Backwards(Ord1 f, Ord a) => Ord (IdentityT f a)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Identity(Ord1 f, Ord a) => Ord (Reverse f a)Defined in transformers-0.6.1.1 · Data.Functor.Reverse(Ord1 f, Ord e, Ord a) => Ord (ExceptT e f a)Defined in selective-0.7.0.1 · Control.Selective.Trans.Except(Functor f, Monad m, Ord1 f, Ord1 m, Ord a) => Ord (FT f m a)Defined in free-5.2 · Control.Monad.Trans.Free.Church(Generic1 f, Ord (Rep1 f a)) => Ord (Generically1 f a)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Ord a, Ord (f b)) => Ord (CofreeF f a b)Defined in free-5.2 · Control.Comonad.Trans.Cofree(Ord a, Ord (f b)) => Ord (FreeF f a b)Defined in free-5.2 · Control.Monad.Trans.Free(Ord a, Ord (f b)) => Ord (FreeF f a b)Defined in free-5.2 · Control.Monad.Trans.Free.Ap(Ord a, Ord b, Ord c) => Ord (a, b, c)Defined in ghc-prim-0.12.0 · GHC.Classes(Ord e, Ord1 m, Ord a) => Ord (ExceptT e m a)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Except(Ord w, Ord1 m, Ord a) => Ord (WriterT w m a)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.Lazy(Ord w, Ord1 m, Ord a) => Ord (WriterT w m a)Defined in transformers-0.6.1.1 · Control.Monad.Trans.Writer.StrictOrd (a :~~: b)Defined in ghc-internal-9.1003.0 · GHC.Internal.Data.Type.EqualityOrd c => Ord (K1 i c p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Ord (f a), Ord (g a)) => Ord (Product f g a)Defined in base-4.20.2.0 · Data.Functor.Product(Ord (f a), Ord (g a)) => Ord (Sum f g a)Defined in base-4.20.2.0 · Data.Functor.Sum(Ord (f p), Ord (g p)) => Ord ((:*:) f g p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Ord (f p), Ord (g p)) => Ord ((:+:) f g p)Defined in ghc-internal-9.1003.0 · GHC.Internal.Generics(Ord a, Ord b, Ord c, Ord d) => Ord (a, b, c, d)Defined in ghc-prim-0.12.0 · GHC.ClassesOrd (f (g a)) => Ord (Compose f g a)Defined in base-4.20.2.0 · Data.Functor.ComposeOrd (f (g p)) => Ord ((:.:) f g p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd (f a) => Ord (Clown f a b)Defined in bifunctors-5.6.2 · Data.Bifunctor.ClownOrd (f p) => Ord (M1 i c f p)Defined in ghc-internal-9.1003.0 · GHC.Internal.GenericsOrd (g b) => Ord (Joker g a b)Defined in bifunctors-5.6.2 · Data.Bifunctor.JokerOrd (p a b) => Ord (WrappedBifunctor p a b)Defined in bifunctors-5.6.2 · Data.Bifunctor.WrappedOrd (p a b) => Ord (WrappedProfunctor p a b)Defined in invariant-0.6.4 · Data.Functor.InvariantOrd (p b a) => Ord (Flip p a b)Defined in bifunctors-5.6.2 · Data.Bifunctor.Flip(Ord a, Ord b, Ord c, Ord d, Ord e) => Ord (a, b, c, d, e)Defined in ghc-prim-0.12.0 · GHC.Classes(Ord (f a b), Ord (g a b)) => Ord (Product f g a b)Defined in bifunctors-5.6.2 · Data.Bifunctor.Product(Ord (p a b), Ord (q a b)) => Ord (Sum p q a b)Defined in bifunctors-5.6.2 · Data.Bifunctor.Sum(Ord a, Ord b, Ord c, Ord d, Ord e, Ord f) => Ord (a, b, c, d, e, f)Defined in ghc-prim-0.12.0 · GHC.ClassesOrd (f (p a b)) => Ord (Tannen f p a b)Defined in bifunctors-5.6.2 · Data.Bifunctor.Tannen(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-prim-0.12.0 · GHC.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-prim-0.12.0 · GHC.ClassesOrd (p (f a) (g b)) => Ord (Biff p f g a b)Defined in bifunctors-5.6.2 · Data.Bifunctor.Biff(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-prim-0.12.0 · GHC.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-prim-0.12.0 · GHC.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-prim-0.12.0 · GHC.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-prim-0.12.0 · GHC.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-prim-0.12.0 · GHC.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-prim-0.12.0 · GHC.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-prim-0.12.0 · GHC.Classes