#ListToRow Source

class ListToRow :: forall k. RowList k -> Row k -> Constraintclass ListToRow list row | list -> row

Convert a RowList to a row of types. The inverse of this operation is RowToList.


#RowListRemove Source

class RowListRemove :: forall k. Symbol -> RowList k -> RowList k -> Constraintclass RowListRemove label input output | label input -> output

Remove all occurences of a given label from a RowList


#RowListSet Source

class RowListSet :: forall k. Symbol -> k -> RowList k -> RowList k -> Constraintclass RowListSet label typ input output | label typ input -> output

Add a label to a RowList after removing other occurences.


#RowListNub Source

class RowListNub :: forall k. RowList k -> RowList k -> Constraintclass RowListNub input output | input -> output

Remove label duplicates, keeps earlier occurrences.


#RowListAppend Source

class RowListAppend :: forall k. RowList k -> RowList k -> RowList k -> Constraintclass RowListAppend lhs rhs out | lhs rhs -> out


Re-exports from Prim.RowList


data RowList :: Type -> Type

A type level list representation of a row of types.


data Nil :: forall (k :: Type). RowList k

The empty RowList.


data Cons :: forall (k :: Type). Symbol -> k -> RowList k -> RowList k

Constructs a new RowList from a label, a type, and an existing tail RowList. E.g: Cons "x" Int (Cons "y" Int Nil).


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.