Re-exports from Type.Data.Boolean


data True :: Boolean

The 'True' boolean type.


data False :: Boolean

The 'False' boolean type.

#BProxy Source

data BProxy bool


#IsBoolean Source

class IsBoolean bool  where



#reifyBoolean Source

reifyBoolean :: forall r. Boolean -> (forall proxy o. IsBoolean o => proxy o -> r) -> r

Use a value level Boolean as a type-level Boolean

Re-exports from Type.Data.Ordering


data Ordering :: Type

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

#OProxy Source

data OProxy ordering



data LT :: Ordering

The 'less than' ordering type.


data GT :: Ordering

The 'greater than' ordering type.


data EQ :: Ordering

The 'equal to' ordering type.

#IsOrdering Source

class IsOrdering ordering  where



#reifyOrdering Source

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

Use a value level Ordering as a type-level Ordering

Re-exports from Type.Data.Symbol

#SProxy Source

data SProxy sym



class Append (left :: Symbol) (right :: Symbol) (appended :: Symbol) | left right -> appended, right appended -> left, appended left -> right

Compiler solved type class for appending Symbols together.


class Compare (left :: Symbol) (right :: Symbol) (ordering :: Ordering) | left right -> ordering

Compiler solved type class for comparing two Symbols. Produces an Ordering.

#IsSymbol Source

class IsSymbol (sym :: Symbol)  where

A class for known symbols


#reifySymbol Source

reifySymbol :: forall proxy r. String -> (forall sym. IsSymbol sym => proxy sym -> r) -> r

#compare Source

compare :: forall proxy l r o. Compare l r o => proxy l -> proxy r -> Proxy o

#append Source

append :: forall proxy l r o. Append l r o => proxy l -> proxy r -> Proxy o

Re-exports from Type.Equality


class (Coercible a b) <= TypeEquals a b | a -> b, b -> a


  • TypeEquals a a


to :: forall a b. TypeEquals a b => a -> b


from :: forall a b. TypeEquals a b => b -> a

Re-exports from Type.Proxy

#Proxy Source

data Proxy a


Re-exports from Type.Row

#RProxy Source

data RProxy row



class Lacks (label :: Symbol) (row :: Row k) 

The Lacks type class asserts that a label does not occur in a given row.


class Union (left :: Row k) (right :: Row k) (union :: Row k) | left right -> union, right union -> left, union left -> right

The Union type class is used to compute the union of two rows of types (left-biased, including duplicates).

The third type argument represents the union of the first two.

Re-exports from Type.RowList

#RLProxy Source

data RLProxy rowlist


#ListToRow Source

class ListToRow list row | list -> row



class RowToList (row :: Row k) (list :: RowList k) | row -> list

Compiler solved type class for generating a RowList from a closed row of types. Entries are sorted by label and duplicates are preserved in the order they appeared in the row.