| Safe Haskell | Safe |
|---|---|
| Language | Haskell2010 |
Agda.Utils.PartialOrd
Contents
- data PartialOrdering
- leqPO :: PartialOrdering -> PartialOrdering -> Bool
- oppPO :: PartialOrdering -> PartialOrdering
- orPO :: PartialOrdering -> PartialOrdering -> PartialOrdering
- seqPO :: PartialOrdering -> PartialOrdering -> PartialOrdering
- fromOrdering :: Ordering -> PartialOrdering
- fromOrderings :: [Ordering] -> PartialOrdering
- toOrderings :: PartialOrdering -> [Ordering]
- type Comparable a = a -> a -> PartialOrdering
- class PartialOrd a where
- comparableOrd :: Ord a => Comparable a
- related :: PartialOrd a => a -> PartialOrdering -> a -> Bool
- newtype Pointwise a = Pointwise {
- pointwise :: a
- newtype Inclusion a = Inclusion {
- inclusion :: a
Documentation
data PartialOrdering #
The result of comparing two things (of the same type).
Constructors
| POLT | Less than. |
| POLE | Less or equal than. |
| POEQ | Equal |
| POGE | Greater or equal. |
| POGT | Greater than. |
| POAny | No information (incomparable). |
Instances
| Bounded PartialOrdering # | |
| Enum PartialOrdering # | |
| Eq PartialOrdering # | |
| Show PartialOrdering # | |
| Semigroup PartialOrdering # | Partial ordering forms a monoid under sequencing. |
| Monoid PartialOrdering # | |
| PartialOrd PartialOrdering # | Less is ``less general'' (i.e., more precise). |
leqPO :: PartialOrdering -> PartialOrdering -> Bool #
Comparing the information content of two elements of
PartialOrdering. More precise information is smaller.
Includes equality: x .leqPO x == True
oppPO :: PartialOrdering -> PartialOrdering #
Opposites.
related a po b iff related b (oppPO po) a.
orPO :: PartialOrdering -> PartialOrdering -> PartialOrdering #
Combining two pieces of information (picking the least information). Used for the dominance ordering on tuples.
orPO is associative, commutative, and idempotent.
orPO has dominant element POAny, but no neutral element.
seqPO :: PartialOrdering -> PartialOrdering -> PartialOrdering #
Chains (transitivity) x R y S z.
seqPO is associative, commutative, and idempotent.
seqPO has dominant element POAny and neutral element (unit) POEQ.
fromOrdering :: Ordering -> PartialOrdering #
Embed Ordering.
fromOrderings :: [Ordering] -> PartialOrdering #
Represent a non-empty disjunction of Orderings as PartialOrdering.
toOrderings :: PartialOrdering -> [Ordering] #
A PartialOrdering information is a disjunction of Ordering informations.
Comparison with partial result
type Comparable a = a -> a -> PartialOrdering #
class PartialOrd a where #
Decidable partial orderings.
Minimal complete definition
Methods
comparable :: Comparable a #
Instances
| PartialOrd Int # | |
| PartialOrd Integer # | |
| PartialOrd () # | |
| PartialOrd PartialOrdering # | Less is ``less general'' (i.e., more precise). |
| PartialOrd Order # | Information order: When having comparable call-matrices, we keep the lesser one. Call graph completion works toward losing the good calls, tending towards Unknown (the least information). |
| PartialOrd a => PartialOrd (Maybe a) # |
Partial ordering for |
| Ord a => PartialOrd (Inclusion [a]) # | Sublist for ordered lists. |
| Ord a => PartialOrd (Inclusion (Set a)) # | Sets are partially ordered by inclusion. |
| PartialOrd a => PartialOrd (Pointwise [a]) # | The pointwise ordering for lists of the same length. There are other partial orderings for lists, e.g., prefix, sublist, subset, lexicographic, simultaneous order. |
| PartialOrd (CallMatrixAug cinfo) # | |
| PartialOrd a => PartialOrd (CallMatrix' a) # | |
| (PartialOrd a, PartialOrd b) => PartialOrd (Either a b) # | Partial ordering for disjoint sums: |
| (PartialOrd a, PartialOrd b) => PartialOrd (a, b) # | Pointwise partial ordering for tuples.
|
| (Ord i, PartialOrd a) => PartialOrd (Matrix i a) # | Pointwise comparison. Only matrices with the same dimension are comparable. |
comparableOrd :: Ord a => Comparable a #
Any Ord is a PartialOrd.
related :: PartialOrd a => a -> PartialOrdering -> a -> Bool #
Are two elements related in a specific way?
related a o b holds iff comparable a b is contained in o.
Totally ordered types.
Generic partially ordered types.
Pointwise comparison wrapper.
Inclusion comparison wrapper.