base-4.8.2.0: Basic libraries

Data.Ord

Description

Orderings

Synopsis

# Documentation

class Eq a => Ord a where Source

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.

Minimal complete definition: either `compare` or `<=`. Using `compare` can be more efficient for complex types.

Minimal complete definition

Methods

compare :: a -> a -> Ordering Source

(<) :: a -> a -> Bool infix 4 Source

(<=) :: a -> a -> Bool infix 4 Source

(>) :: a -> a -> Bool infix 4 Source

(>=) :: a -> a -> Bool infix 4 Source

max :: a -> a -> a Source

min :: a -> a -> a Source

Instances

 Ord () Ord a => Ord [a] Integral a => Ord (Ratio a) Ord (Ptr a) Ord (FunPtr a) Ord (U1 p) Ord p => Ord (Par1 p) Ord a => Ord (Maybe a) Ord a => Ord (Down a) Ord a => Ord (Last a) Ord a => Ord (First a) Ord a => Ord (Product a) Ord a => Ord (Sum a) Ord a => Ord (Dual a) Ord a => Ord (ZipList a) Ord (Fixed a) Ord a => Ord (Identity a) (Ord a, Ord b) => Ord (Either a b) Ord (f p) => Ord (Rec1 f p) (Ord a, Ord b) => Ord (a, b) Ord (Proxy k s) Ord a => Ord (Const a b) Ord c => Ord (K1 i c p) (Ord (f p), Ord (g p)) => Ord ((:+:) f g p) (Ord (f p), Ord (g p)) => Ord ((:*:) f g p) Ord (f (g p)) => Ord ((:.:) f g p) (Ord a, Ord b, Ord c) => Ord (a, b, c) Ord ((:~:) k a b) Ord (Coercion k a b) Ord (f a) => Ord (Alt k f a) Ord (f p) => Ord (M1 i c f p) (Ord a, Ord b, Ord c, Ord d) => Ord (a, b, c, d) (Ord a, Ord b, Ord c, Ord d, Ord e) => Ord (a, b, c, d, e) (Ord a, Ord b, Ord c, Ord d, Ord e, Ord f) => Ord (a, b, c, d, e, f) (Ord a, Ord b, Ord c, Ord d, Ord e, Ord f, Ord g) => Ord (a, b, c, d, e, f, g) (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) (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) (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) (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) (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) (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) (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) (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)

data Ordering :: * Source

Constructors

 LT EQ GT

Instances

 type Rep Ordering type (==) Ordering a b

newtype Down a Source

The `Down` type allows you to reverse sort order conveniently. A value of type `Down a` contains a value of type `a` (represented as `Down a`). If `a` has an `Ord` instance associated with it then comparing two values thus wrapped will give you the opposite of their normal sort order. This is particularly useful when sorting in generalised list comprehensions, as in: `then sortWith by Down x`

Provides `Show` and `Read` instances (since: 4.7.0.0).

Since: 4.6.0.0

Constructors

 Down a

Instances

 Eq a => Eq (Down a) Ord a => Ord (Down a) Read a => Read (Down a) Show a => Show (Down a)

comparing :: Ord a => (b -> a) -> b -> b -> Ordering Source

`comparing p x y = compare (p x) (p y)`

Useful combinator for use in conjunction with the `xxxBy` family of functions from Data.List, for example:

`  ... sortBy (comparing fst) ...`