HORIZON HASKELLDocslts/ghc-9.10.xc74966e2026-09-27Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · c74966e · 2026-09-27

Modulelinear-base-0.4.0Haskell2010

Data.Ord.Linear.Internal.Ord

  • 1 type
  • 1 class
  • 2 values
classclass Eq a => Ord a where
#

Linear Orderings

Linear orderings provide a strict order. The laws for (<=) for all a,b,c:

  • reflexivity: a \leq a

  • antisymmetry: (a \leq b) \land (b \leq a) \rightarrow (a = b)

  • transitivity: (a \leq b) \land (b \leq c) \rightarrow (a \leq c)

and these "agree" with <:

  • x <= y = not (y > x)

  • x >= y = not (y < x)

Unlike in the non-linear setting, a linear compare doesn't follow from <= since it requires calls: one to <= and one to ==. However, from a linear compare it is easy to implement the others. Hence, the minimal complete definition only contains compare.

Methods

  • compare :: a %1 -> a %1 -> Orderinginfix 4

    compare x y returns an Ordering which is one of GT (greater than), EQ (equal), or LT (less than) which should be understood as "x is (compare x y) y".

  • (<=) :: a %1 -> a %1 -> Boolinfix 4
  • (<) :: a %1 -> a %1 -> Boolinfix 4
  • (>) :: a %1 -> a %1 -> Boolinfix 4
  • (>=) :: a %1 -> a %1 -> Boolinfix 4
Instances22Ord, …
  • Ord Int16Defined in linear-base-0.4.0 · Data.Ord.Linear.Internal.Ord
  • Ord Int32Defined in linear-base-0.4.0 · Data.Ord.Linear.Internal.Ord
  • Ord Int64Defined in linear-base-0.4.0 · Data.Ord.Linear.Internal.Ord
  • Ord Int8Defined in linear-base-0.4.0 · Data.Ord.Linear.Internal.Ord
  • Ord Word16Defined in linear-base-0.4.0 · Data.Ord.Linear.Internal.Ord
  • Ord Word32Defined in linear-base-0.4.0 · Data.Ord.Linear.Internal.Ord
  • Ord Word64Defined in linear-base-0.4.0 · Data.Ord.Linear.Internal.Ord
  • Ord Word8Defined in linear-base-0.4.0 · Data.Ord.Linear.Internal.Ord
  • Ord BoolDefined in linear-base-0.4.0 · Data.Ord.Linear.Internal.Ord
  • Ord CharDefined in linear-base-0.4.0 · Data.Ord.Linear.Internal.Ord
  • Ord DoubleDefined in linear-base-0.4.0 · Data.Ord.Linear.Internal.Ord
  • Ord IntDefined in linear-base-0.4.0 · Data.Ord.Linear.Internal.Ord
  • Ord OrderingDefined in linear-base-0.4.0 · Data.Ord.Linear.Internal.Ord
  • Ord ()Defined in linear-base-0.4.0 · Data.Ord.Linear.Internal.Ord
  • Ord a => Ord (Ur a)Defined in linear-base-0.4.0 · Data.Ord.Linear.Internal.Ord
  • (Ord a, Movable a) => Ord (MovableOrd a)Defined in linear-base-0.4.0 · Data.Ord.Linear.Internal.Ord
  • (Consumable a, Ord a) => Ord (Maybe a)Defined in linear-base-0.4.0 · Data.Ord.Linear.Internal.Ord
  • (Consumable a, Ord a) => Ord [a]Defined in linear-base-0.4.0 · Data.Ord.Linear.Internal.Ord
  • (Ord a, Ord b) => Ord (a, b)Defined in linear-base-0.4.0 · Data.Ord.Linear.Internal.Ord
  • (Consumable a, Consumable b, Ord a, Ord b) => Ord (Either a b)Defined in linear-base-0.4.0 · Data.Ord.Linear.Internal.Ord
  • (Ord a, Ord b, Ord c) => Ord (a, b, c)Defined in linear-base-0.4.0 · Data.Ord.Linear.Internal.Ord
  • (Ord a, Ord b, Ord c, Ord d) => Ord (a, b, c, d)Defined in linear-base-0.4.0 · Data.Ord.Linear.Internal.Ord
datadata Ordering
#
Instances30Bounded, Enum, Data, Read, Show, Ix, …
valuemin :: (Dupable a, Ord a) => a %1 -> a %1 -> a
#

min x y returns the smaller input, or y in case of a tie.

valuemax :: (Dupable a, Ord a) => a %1 -> a %1 -> a
#

max x y returns the larger input, or y in case of a tie.