Safe Haskell | None |
---|---|
Language | Haskell2010 |
Ord
Synopsis
- class Eq a => Ord a where
- data Ordering
- newtype Comparison a = Comparison {
- getComparison :: a -> a -> Ordering
- defaultComparison :: Ord a => Comparison a
- comparing :: Ord a => (b -> a) -> b -> b -> Ordering
- newtype Down a = Down a
- newtype Min a = Min {
- getMin :: a
- newtype Max a = Max {
- getMax :: a
- data Arg a b = Arg a b
- type ArgMin a b = Min (Arg a b)
- type ArgMax a b = Max (Arg a b)
- class Eq1 f => Ord1 (f :: * -> *) where
- compare1 :: (Ord1 f, Ord a) => f a -> f a -> Ordering
- liftCompareDefault :: (GOrd1 NonV4 (Rep1 f), Generic1 f) => (a -> b -> Ordering) -> f a -> f b -> Ordering
- class Eq2 f => Ord2 (f :: * -> * -> *) where
- compare2 :: (Ord2 f, Ord a, Ord b) => f a b -> f a b -> Ordering
Documentation
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 #
(<) :: a -> a -> Bool infix 4 #
(<=) :: a -> a -> Bool infix 4 #
(>) :: a -> a -> Bool infix 4 #
Instances
Instances
Bounded Ordering | Since: base-2.1 |
Enum Ordering | Since: base-2.1 |
Eq Ordering | |
Data Ordering | Since: base-4.0.0.0 |
Defined in Data.Data Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Ordering -> c Ordering # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Ordering # toConstr :: Ordering -> Constr # dataTypeOf :: Ordering -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Ordering) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Ordering) # gmapT :: (forall b. Data b => b -> b) -> Ordering -> Ordering # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Ordering -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Ordering -> r # gmapQ :: (forall d. Data d => d -> u) -> Ordering -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Ordering -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Ordering -> m Ordering # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Ordering -> m Ordering # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Ordering -> m Ordering # | |
Ord Ordering | |
Defined in GHC.Classes | |
Read Ordering | Since: base-2.1 |
Show Ordering | |
Ix Ordering | Since: base-2.1 |
Defined in GHC.Arr | |
Generic Ordering | |
Semigroup Ordering | Since: base-4.9.0.0 |
Monoid Ordering | Since: base-2.1 |
Hashable Ordering | |
Defined in Data.Hashable.Class | |
ToJSON Ordering | |
Defined in Data.Aeson.Types.ToJSON | |
FromJSON Ordering | |
NFData Ordering | |
Defined in Control.DeepSeq | |
AsEmpty Ordering | |
Defined in Control.Lens.Empty | |
Meet Ordering | Orderings form a semilattice. Idempotence: x /\ x == (x :: Ordering) Associativity: a /\ (b /\ c) == (a /\ b) /\ (c :: Ordering) Commutativity: a /\ b == b /\ (a :: Ordering) Identity: upperBound /\ a == (a :: Ordering) Absorption: lowerBound /\ a == (lowerBound :: Ordering) |
Upper Ordering | |
Defined in Data.Semilattice.Upper Methods upperBound :: Ordering # | |
Join Ordering | Orderings form a semilattice. Idempotence: x \/ x == (x :: Ordering) Associativity: a \/ (b \/ c) == (a \/ b) \/ (c :: Ordering) Commutativity: a \/ b == b \/ (a :: Ordering) Identity: lowerBound \/ a == (a :: Ordering) Absorption: upperBound \/ a == (upperBound :: Ordering) |
Lower Ordering | |
Defined in Data.Semilattice.Lower Methods lowerBound :: Ordering # | |
Serialise Ordering | Since: serialise-0.2.0.0 |
HasTypes Ordering a | |
Defined in Data.Generics.Product.Types Methods types_ :: Traversal' Ordering a | |
() :=> (Bounded Ordering) | |
() :=> (Enum Ordering) | |
() :=> (Read Ordering) | |
() :=> (Show Ordering) | |
() :=> (Semigroup Ordering) | |
() :=> (Monoid Ordering) | |
type Rep Ordering | |
newtype Comparison a #
Defines a total ordering on a type as per compare
This condition is not checked by the types. You must ensure that the supplied values are valid total orderings yourself.
Constructors
Comparison | |
Fields
|
Instances
defaultComparison :: Ord a => Comparison a #
Compare using compare
comparing :: Ord a => (b -> a) -> b -> b -> Ordering #
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) ...
The Down
type allows you to reverse sort order conveniently. A value of type
contains a value of type Down
aa
(represented as
).
If Down
aa
has an
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: Ord
then sortWith by
Down
x
Since: base-4.6.0.0
Constructors
Down a |
Instances
Monad Down | Since: base-4.11.0.0 |
Functor Down | Since: base-4.11.0.0 |
Applicative Down | Since: base-4.11.0.0 |
NFData1 Down | Since: deepseq-1.4.3.0 |
Defined in Control.DeepSeq | |
Apply Down | |
Bind Down | |
Eq a => Eq (Down a) | |
Num a => Num (Down a) | Since: base-4.11.0.0 |
Ord a => Ord (Down a) | Since: base-4.6.0.0 |
Read a => Read (Down a) | Since: base-4.7.0.0 |
Show a => Show (Down a) | Since: base-4.7.0.0 |
Semigroup a => Semigroup (Down a) | Since: base-4.11.0.0 |
Monoid a => Monoid (Down a) | Since: base-4.11.0.0 |
NFData a => NFData (Down a) | Since: deepseq-1.4.0.0 |
Defined in Control.DeepSeq | |
Wrapped (Down a) | |
Serialise a => Serialise (Down a) | Since: serialise-0.2.0.0 |
t ~ Down b => Rewrapped (Down a) t | |
Defined in Control.Lens.Wrapped | |
type Rep (Down a) | |
Defined in Generics.Deriving.Instances | |
type Unwrapped (Down a) | |
Defined in Control.Lens.Wrapped | |
type Rep1 Down | |
Defined in Generics.Deriving.Instances |
Instances
Monad Min | Since: base-4.9.0.0 |
Functor Min | Since: base-4.9.0.0 |
MonadFix Min | Since: base-4.9.0.0 |
Defined in Data.Semigroup | |
Applicative Min | Since: base-4.9.0.0 |
Foldable Min | Since: base-4.9.0.0 |
Defined in Data.Semigroup Methods fold :: Monoid m => Min m -> m # foldMap :: Monoid m => (a -> m) -> Min a -> m # foldr :: (a -> b -> b) -> b -> Min a -> b # foldr' :: (a -> b -> b) -> b -> Min a -> b # foldl :: (b -> a -> b) -> b -> Min a -> b # foldl' :: (b -> a -> b) -> b -> Min a -> b # foldr1 :: (a -> a -> a) -> Min a -> a # foldl1 :: (a -> a -> a) -> Min a -> a # elem :: Eq a => a -> Min a -> Bool # maximum :: Ord a => Min a -> a # | |
Traversable Min | Since: base-4.9.0.0 |
Distributive Min | |
ToJSON1 Min | |
Defined in Data.Aeson.Types.ToJSON Methods liftToJSON :: (a -> Value) -> ([a] -> Value) -> Min a -> Value # liftToJSONList :: (a -> Value) -> ([a] -> Value) -> [Min a] -> Value # liftToEncoding :: (a -> Encoding) -> ([a] -> Encoding) -> Min a -> Encoding # liftToEncodingList :: (a -> Encoding) -> ([a] -> Encoding) -> [Min a] -> Encoding # | |
FromJSON1 Min | |
NFData1 Min | Since: deepseq-1.4.3.0 |
Defined in Control.DeepSeq | |
Apply Min | |
Traversable1 Min | |
Pointed Min | |
Defined in Data.Pointed | |
Copointed Min | |
Defined in Data.Copointed | |
Foldable1 Min | |
Bind Min | |
Extend Min | |
Bounded a => Bounded (Min a) | |
Enum a => Enum (Min a) | Since: base-4.9.0.0 |
Eq a => Eq (Min a) | |
Data a => Data (Min a) | |
Defined in Data.Semigroup Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Min a -> c (Min a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Min a) # dataTypeOf :: Min a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Min a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Min a)) # gmapT :: (forall b. Data b => b -> b) -> Min a -> Min a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Min a -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Min a -> r # gmapQ :: (forall d. Data d => d -> u) -> Min a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Min a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Min a -> m (Min a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Min a -> m (Min a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Min a -> m (Min a) # | |
Num a => Num (Min a) | Since: base-4.9.0.0 |
Ord a => Ord (Min a) | |
Read a => Read (Min a) | |
Show a => Show (Min a) | |
Generic (Min a) | |
Ord a => Semigroup (Min a) | Since: base-4.9.0.0 |
(Ord a, Bounded a) => Monoid (Min a) | Since: base-4.9.0.0 |
Hashable a => Hashable (Min a) | |
Defined in Data.Hashable.Class | |
ToJSON a => ToJSON (Min a) | |
Defined in Data.Aeson.Types.ToJSON | |
FromJSON a => FromJSON (Min a) | |
NFData a => NFData (Min a) | Since: deepseq-1.4.2.0 |
Defined in Control.DeepSeq | |
Wrapped (Min a) | |
Ord a => Meet (Min a) | The greatest lowerBound bound gives rise to a meet semilattice. Idempotence: x /\ x == (x :: Min Int) Associativity: a /\ (b /\ c) == (a /\ b) /\ (c :: Min Int) Commutativity: a /\ b == b /\ (a :: Min Int) Identity: upperBound /\ a == (a :: Min Int) Absorption: lowerBound /\ a == (lowerBound :: Min Int) |
Upper a => Upper (Min a) | |
Defined in Data.Semilattice.Upper Methods upperBound :: Min a # | |
Lower a => Lower (Min a) | |
Defined in Data.Semilattice.Lower Methods lowerBound :: Min a # | |
Serialise a => Serialise (Min a) | Since: serialise-0.2.0.0 |
Generic1 Min | |
t ~ Min b => Rewrapped (Min a) t | |
Defined in Control.Lens.Wrapped | |
type Rep (Min a) | |
Defined in Data.Semigroup | |
type Unwrapped (Min a) | |
Defined in Control.Lens.Wrapped | |
type Rep1 Min | |
Defined in Data.Semigroup |
Instances
Monad Max | Since: base-4.9.0.0 |
Functor Max | Since: base-4.9.0.0 |
MonadFix Max | Since: base-4.9.0.0 |
Defined in Data.Semigroup | |
Applicative Max | Since: base-4.9.0.0 |
Foldable Max | Since: base-4.9.0.0 |
Defined in Data.Semigroup Methods fold :: Monoid m => Max m -> m # foldMap :: Monoid m => (a -> m) -> Max a -> m # foldr :: (a -> b -> b) -> b -> Max a -> b # foldr' :: (a -> b -> b) -> b -> Max a -> b # foldl :: (b -> a -> b) -> b -> Max a -> b # foldl' :: (b -> a -> b) -> b -> Max a -> b # foldr1 :: (a -> a -> a) -> Max a -> a # foldl1 :: (a -> a -> a) -> Max a -> a # elem :: Eq a => a -> Max a -> Bool # maximum :: Ord a => Max a -> a # | |
Traversable Max | Since: base-4.9.0.0 |
Distributive Max | |
ToJSON1 Max | |
Defined in Data.Aeson.Types.ToJSON Methods liftToJSON :: (a -> Value) -> ([a] -> Value) -> Max a -> Value # liftToJSONList :: (a -> Value) -> ([a] -> Value) -> [Max a] -> Value # liftToEncoding :: (a -> Encoding) -> ([a] -> Encoding) -> Max a -> Encoding # liftToEncodingList :: (a -> Encoding) -> ([a] -> Encoding) -> [Max a] -> Encoding # | |
FromJSON1 Max | |
NFData1 Max | Since: deepseq-1.4.3.0 |
Defined in Control.DeepSeq | |
Apply Max | |
Traversable1 Max | |
Pointed Max | |
Defined in Data.Pointed | |
Copointed Max | |
Defined in Data.Copointed | |
Foldable1 Max | |
Bind Max | |
Extend Max | |
Bounded a => Bounded (Max a) | |
Enum a => Enum (Max a) | Since: base-4.9.0.0 |
Eq a => Eq (Max a) | |
Data a => Data (Max a) | |
Defined in Data.Semigroup Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Max a -> c (Max a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Max a) # dataTypeOf :: Max a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Max a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Max a)) # gmapT :: (forall b. Data b => b -> b) -> Max a -> Max a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Max a -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Max a -> r # gmapQ :: (forall d. Data d => d -> u) -> Max a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Max a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Max a -> m (Max a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Max a -> m (Max a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Max a -> m (Max a) # | |
Num a => Num (Max a) | Since: base-4.9.0.0 |
Ord a => Ord (Max a) | |
Read a => Read (Max a) | |
Show a => Show (Max a) | |
Generic (Max a) | |
Ord a => Semigroup (Max a) | Since: base-4.9.0.0 |
(Ord a, Bounded a) => Monoid (Max a) | Since: base-4.9.0.0 |
Hashable a => Hashable (Max a) | |
Defined in Data.Hashable.Class | |
ToJSON a => ToJSON (Max a) | |
Defined in Data.Aeson.Types.ToJSON | |
FromJSON a => FromJSON (Max a) | |
NFData a => NFData (Max a) | Since: deepseq-1.4.2.0 |
Defined in Control.DeepSeq | |
Wrapped (Max a) | |
Upper a => Upper (Max a) | |
Defined in Data.Semilattice.Upper Methods upperBound :: Max a # | |
Ord a => Join (Max a) | The least upperBound bound gives rise to a join semilattice. Idempotence: x \/ x == (x :: Max Int) Associativity: a \/ (b \/ c) == (a \/ b) \/ (c :: Max Int) Commutativity: a \/ b == b \/ (a :: Max Int) Identity: lowerBound \/ a == (a :: Max Int) Absorption: upperBound \/ a == (upperBound :: Max Int) |
Lower a => Lower (Max a) | |
Defined in Data.Semilattice.Lower Methods lowerBound :: Max a # | |
Serialise a => Serialise (Max a) | Since: serialise-0.2.0.0 |
Generic1 Max | |
t ~ Max b => Rewrapped (Max a) t | |
Defined in Control.Lens.Wrapped | |
type Rep (Max a) | |
Defined in Data.Semigroup | |
type Unwrapped (Max a) | |
Defined in Control.Lens.Wrapped | |
type Rep1 Max | |
Defined in Data.Semigroup |
Arg
isn't itself a Semigroup
in its own right, but it can be
placed inside Min
and Max
to compute an arg min or arg max.
Constructors
Arg a b |
Instances
Bitraversable Arg | Since: base-4.10.0.0 |
Defined in Data.Semigroup Methods bitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> Arg a b -> f (Arg c d) # | |
Bifoldable Arg | Since: base-4.10.0.0 |
Bifunctor Arg | Since: base-4.9.0.0 |
NFData2 Arg | Since: deepseq-1.4.3.0 |
Defined in Control.DeepSeq | |
Bitraversable1 Arg | |
Defined in Data.Semigroup.Traversable.Class Methods bitraverse1 :: Apply f => (a -> f b) -> (c -> f d) -> Arg a c -> f (Arg b d) # bisequence1 :: Apply f => Arg (f a) (f b) -> f (Arg a b) # | |
Bifoldable1 Arg | |
Defined in Data.Semigroup.Foldable.Class | |
Biapply Arg | |
Functor (Arg a) | Since: base-4.9.0.0 |
Foldable (Arg a) | Since: base-4.9.0.0 |
Defined in Data.Semigroup Methods fold :: Monoid m => Arg a m -> m # foldMap :: Monoid m => (a0 -> m) -> Arg a a0 -> m # foldr :: (a0 -> b -> b) -> b -> Arg a a0 -> b # foldr' :: (a0 -> b -> b) -> b -> Arg a a0 -> b # foldl :: (b -> a0 -> b) -> b -> Arg a a0 -> b # foldl' :: (b -> a0 -> b) -> b -> Arg a a0 -> b # foldr1 :: (a0 -> a0 -> a0) -> Arg a a0 -> a0 # foldl1 :: (a0 -> a0 -> a0) -> Arg a a0 -> a0 # elem :: Eq a0 => a0 -> Arg a a0 -> Bool # maximum :: Ord a0 => Arg a a0 -> a0 # minimum :: Ord a0 => Arg a a0 -> a0 # | |
Traversable (Arg a) | Since: base-4.9.0.0 |
Comonad (Arg e) | |
NFData a => NFData1 (Arg a) | Since: deepseq-1.4.3.0 |
Defined in Control.DeepSeq | |
Default a => Pointed (Arg a) | |
Defined in Data.Pointed | |
Copointed (Arg a) | |
Defined in Data.Copointed | |
Generic1 (Arg a :: * -> *) | |
Eq a => Eq (Arg a b) | Since: base-4.9.0.0 |
(Data a, Data b) => Data (Arg a b) | |
Defined in Data.Semigroup Methods gfoldl :: (forall d b0. Data d => c (d -> b0) -> d -> c b0) -> (forall g. g -> c g) -> Arg a b -> c (Arg a b) # gunfold :: (forall b0 r. Data b0 => c (b0 -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Arg a b) # toConstr :: Arg a b -> Constr # dataTypeOf :: Arg a b -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Arg a b)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Arg a b)) # gmapT :: (forall b0. Data b0 => b0 -> b0) -> Arg a b -> Arg a b # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Arg a b -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Arg a b -> r # gmapQ :: (forall d. Data d => d -> u) -> Arg a b -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Arg a b -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Arg a b -> m (Arg a b) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Arg a b -> m (Arg a b) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Arg a b -> m (Arg a b) # | |
Ord a => Ord (Arg a b) | Since: base-4.9.0.0 |
(Read a, Read b) => Read (Arg a b) | |
(Show a, Show b) => Show (Arg a b) | |
Generic (Arg a b) | |
(Hashable a, Hashable b) => Hashable (Arg a b) | |
Defined in Data.Hashable.Class | |
(NFData a, NFData b) => NFData (Arg a b) | Since: deepseq-1.4.2.0 |
Defined in Control.DeepSeq | |
type Rep1 (Arg a :: * -> *) | |
Defined in Data.Semigroup type Rep1 (Arg a :: * -> *) = D1 (MetaData "Arg" "Data.Semigroup" "base" False) (C1 (MetaCons "Arg" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1)) | |
type Rep (Arg a b) | |
Defined in Data.Semigroup type Rep (Arg a b) = D1 (MetaData "Arg" "Data.Semigroup" "base" False) (C1 (MetaCons "Arg" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 b))) |
class Eq1 f => Ord1 (f :: * -> *) where #
Lifting of the Ord
class to unary type constructors.
Since: base-4.9.0.0
Minimal complete definition
Methods
liftCompare :: (a -> b -> Ordering) -> f a -> f b -> Ordering #
Lift a compare
function through the type constructor.
The function will usually be applied to a comparison function, but the more general type ensures that the implementation uses it to compare elements of the first container with elements of the second.
Since: base-4.9.0.0
Instances
Ord1 [] | Since: base-4.9.0.0 |
Defined in Data.Functor.Classes Methods liftCompare :: (a -> b -> Ordering) -> [a] -> [b] -> Ordering # | |
Ord1 Maybe | Since: base-4.9.0.0 |
Defined in Data.Functor.Classes | |
Ord1 Identity | Since: base-4.9.0.0 |
Defined in Data.Functor.Classes | |
Ord1 NonEmpty | Since: base-4.10.0.0 |
Defined in Data.Functor.Classes | |
Ord1 IntMap | Since: containers-0.5.9 |
Defined in Data.IntMap.Internal | |
Ord1 Tree | Since: containers-0.5.9 |
Ord1 Seq | Since: containers-0.5.9 |
Defined in Data.Sequence.Internal | |
Ord1 Set | Since: containers-0.5.9 |
Defined in Data.Set.Internal | |
Ord1 Hashed | |
Defined in Data.Hashable.Class | |
Ord1 HashSet | |
Defined in Data.HashSet | |
Ord1 Vector | |
Defined in Data.Vector | |
Ord1 SmallArray | Since: primitive-0.6.4.0 |
Defined in Data.Primitive.SmallArray Methods liftCompare :: (a -> b -> Ordering) -> SmallArray a -> SmallArray b -> Ordering # | |
Ord1 Array | Since: primitive-0.6.4.0 |
Defined in Data.Primitive.Array | |
Ord a => Ord1 (Either a) | Since: base-4.9.0.0 |
Defined in Data.Functor.Classes | |
Ord a => Ord1 ((,) a) | Since: base-4.9.0.0 |
Defined in Data.Functor.Classes Methods liftCompare :: (a0 -> b -> Ordering) -> (a, a0) -> (a, b) -> Ordering # | |
Ord k => Ord1 (HashMap k) | |
Defined in Data.HashMap.Base | |
Ord k => Ord1 (Map k) | Since: containers-0.5.9 |
Defined in Data.Map.Internal | |
Ord1 (Proxy :: * -> *) | Since: base-4.9.0.0 |
Defined in Data.Functor.Classes | |
Ord1 m => Ord1 (MaybeT m) | |
Defined in Control.Monad.Trans.Maybe | |
Ord1 f => Ord1 (Cofree f) | |
Defined in Control.Comonad.Cofree | |
Ord1 f => Ord1 (Free f) | |
Defined in Control.Monad.Free | |
Ord1 f => Ord1 (Yoneda f) | |
Defined in Data.Functor.Yoneda | |
Ord a => Ord1 (Const a :: * -> *) | Since: base-4.9.0.0 |
Defined in Data.Functor.Classes | |
Ord1 f => Ord1 (IdentityT f) | |
Defined in Control.Monad.Trans.Identity | |
(Ord e, Ord1 m) => Ord1 (ExceptT e m) | |
Defined in Control.Monad.Trans.Except | |
(Ord1 f, Ord a) => Ord1 (FreeF f a) | |
Defined in Control.Monad.Trans.Free | |
(Ord1 f, Ord1 m) => Ord1 (FreeT f m) | |
Defined in Control.Monad.Trans.Free | |
(Ord e, Ord1 m) => Ord1 (ErrorT e m) | |
Defined in Control.Monad.Trans.Error | |
Ord1 f => Ord1 (Backwards f) | |
Defined in Control.Applicative.Backwards | |
Ord1 (Tagged s) | |
Defined in Data.Tagged | |
(Ord1 f, Ord1 g) => Ord1 (Product f g) | Since: base-4.9.0.0 |
Defined in Data.Functor.Product | |
(Ord1 f, Ord1 g) => Ord1 (Sum f g) | Since: base-4.9.0.0 |
Defined in Data.Functor.Sum | |
(Ord1 f, Ord1 g) => Ord1 (Compose f g) | Since: base-4.9.0.0 |
Defined in Data.Functor.Compose |
compare1 :: (Ord1 f, Ord a) => f a -> f a -> Ordering #
Lift the standard compare
function through the type constructor.
Since: base-4.9.0.0
liftCompareDefault :: (GOrd1 NonV4 (Rep1 f), Generic1 f) => (a -> b -> Ordering) -> f a -> f b -> Ordering #
A sensible default liftCompare
implementation for Generic1
instances.
class Eq2 f => Ord2 (f :: * -> * -> *) where #
Lifting of the Ord
class to binary type constructors.
Since: base-4.9.0.0
Minimal complete definition
Methods
liftCompare2 :: (a -> b -> Ordering) -> (c -> d -> Ordering) -> f a c -> f b d -> Ordering #
Lift compare
functions through the type constructor.
The function will usually be applied to comparison functions, but the more general type ensures that the implementation uses them to compare elements of the first container with elements of the second.
Since: base-4.9.0.0
Instances
Ord2 Either | Since: base-4.9.0.0 |
Defined in Data.Functor.Classes | |
Ord2 (,) | Since: base-4.9.0.0 |
Defined in Data.Functor.Classes Methods liftCompare2 :: (a -> b -> Ordering) -> (c -> d -> Ordering) -> (a, c) -> (b, d) -> Ordering # | |
Ord2 HashMap | |
Defined in Data.HashMap.Base | |
Ord2 Map | Since: containers-0.5.9 |
Defined in Data.Map.Internal | |
Ord2 (Const :: * -> * -> *) | Since: base-4.9.0.0 |
Defined in Data.Functor.Classes | |
Ord1 f => Ord2 (FreeF f) | |
Defined in Control.Monad.Trans.Free | |
Ord2 (Tagged :: * -> * -> *) | |
Defined in Data.Tagged |