base-4.7.0.0: Basic libraries

Copyright(c) The University of Glasgow 2005
LicenseBSD-style (see the file libraries/base/LICENSE)
Maintainerlibraries@haskell.org
Stabilitystable
Portabilityportable
Safe HaskellTrustworthy
LanguageHaskell2010

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.

Methods

compare :: a -> a -> Ordering Source

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

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

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

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

max :: a -> a -> a Source

min :: a -> a -> a Source

Instances

Ord Bool 
Ord Char 
Ord Double 
Ord Float 
Ord Int 
Ord Int8 
Ord Int16 
Ord Int32 
Ord Int64 
Ord Integer 
Ord Ordering 
Ord Word 
Ord Word8 
Ord Word16 
Ord Word32 
Ord Word64 
Ord () 
Ord Fingerprint 
Ord TyCon 
Ord TypeRep 
Ord Associativity 
Ord Fixity 
Ord Arity 
Ord Any 
Ord All 
Ord ArithException 
Ord ErrorCall 
Ord CUIntMax 
Ord CIntMax 
Ord CUIntPtr 
Ord CIntPtr 
Ord CSUSeconds 
Ord CUSeconds 
Ord CTime 
Ord CClock 
Ord CSigAtomic 
Ord CWchar 
Ord CSize 
Ord CPtrdiff 
Ord CDouble 
Ord CFloat 
Ord CULLong 
Ord CLLong 
Ord CULong 
Ord CLong 
Ord CUInt 
Ord CInt 
Ord CUShort 
Ord CShort 
Ord CUChar 
Ord CSChar 
Ord CChar 
Ord GeneralCategory 
Ord IntPtr 
Ord WordPtr 
Ord SeekMode 
Ord NewlineMode 
Ord Newline 
Ord BufferMode 
Ord ExitCode 
Ord ArrayException 
Ord AsyncException 
Ord Fd 
Ord CRLim 
Ord CTcflag 
Ord CSpeed 
Ord CCc 
Ord CUid 
Ord CNlink 
Ord CGid 
Ord CSsize 
Ord CPid 
Ord COff 
Ord CMode 
Ord CIno 
Ord CDev 
Ord ThreadStatus 
Ord BlockReason 
Ord ThreadId 
Ord IOMode 
Ord TyCon 
Ord TypeRep 
Ord TypeRepKey 
Ord SomeSymbol 
Ord SomeNat 
Ord Version 
Ord Unique 
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 (ForeignPtr a) 
Ord a => Ord (ZipList a) 
Ord (Fixed 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 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 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

Bounded Ordering 
Enum Ordering 
Eq Ordering 
Data Ordering 
Ord Ordering 
Read Ordering 
Show Ordering 
Ix Ordering 
Generic Ordering 
Typeable Ordering 
Monoid Ordering 
Typeable * Ordering 
type Rep Ordering = D1 D1Ordering ((:+:) (C1 C1_0Ordering U1) ((:+:) (C1 C1_1Ordering U1) (C1 C1_2Ordering U1))) 
type (==) Ordering a b = EqOrdering 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

Since: 4.6.0.0 Show and Read instances Since: 4.7.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) ...