Module

Type.Data.Ordering

#OProxy

data OProxy (ordering :: Ordering)

Value proxy for Ordering types

Constructors

#IsOrdering

class IsOrdering (ordering :: Ordering)  where

Class for reflecting a type level Ordering at the value level

Members

Instances

#reifyOrdering

reifyOrdering :: forall r. Ordering -> (forall o. IsOrdering o => OProxy o -> r) -> r

Use a value level Ordering as a type-level Ordering

#Append

class Append (lhs :: Ordering) (rhs :: Ordering) (output :: Ordering) | lhs -> rhs output

Append two Ordering types together Reflective of the semigroup for value level Ordering

Instances

#append

append :: forall l r o. Append l r o => OProxy l -> OProxy r -> OProxy o

#Invert

class Invert (ordering :: Ordering) (result :: Ordering) | ordering -> result

Invert an Ordering

Instances

#invert

invert :: forall i o. Invert i o => OProxy i -> OProxy o

#equals

equals :: forall l r o. Equals l r o => OProxy l -> OProxy r -> BProxy o

Re-exports from Prim.Ordering

#LT

data LT :: Ordering

The 'less than' ordering type.

#GT

data GT :: Ordering

The 'greater than' ordering type.

#EQ

data EQ :: Ordering

The 'equal to' ordering type.

#Ordering

kind Ordering

The Ordering kind represents the three possibilites of comparing two types of the same kind: LT (less than), EQ (equal to), and GT (greater than).