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)