lux/type

Basic functionality for working with types.

Structs

Eq<Type>

(lux/control/eq;Eq lux;Type)

Values

(application quant params)

(-> lux;Type (lux;List lux;Type) lux;Type)

(apply-type type-func param)

(-> lux;Type lux;Type (lux;Maybe lux;Type))

(exq size body)

(-> lux;Nat lux;Type lux;Type)

(flatten-application type)

(-> lux;Type [lux;Type (lux;List lux;Type)])

(flatten-exq type)

(-> lux;Type [lux;Nat lux;Type])

(flatten-function type)

(-> lux;Type [(lux;List lux;Type) lux;Type])

(flatten-tuple type)

(-> lux;Type (lux;List lux;Type))

(flatten-univq type)

(-> lux;Type [lux;Nat lux;Type])

(flatten-variant type)

(-> lux;Type (lux;List lux;Type))

(function inputs output)

(-> (lux;List lux;Type) lux;Type lux;Type)

(to-ast type)

(-> lux;Type lux;AST)

(to-text type)

(-> lux;Type lux;Text)

(tuple types)

(-> (lux;List lux;Type) lux;Type)

(un-alias type)

(-> lux;Type lux;Type)

(un-name type)

(-> lux;Type lux;Type)

(univq size body)

(-> lux;Nat lux;Type lux;Type)

(variant types)

(-> (lux;List lux;Type) lux;Type)