A typed thing is a thing with predefined properties and/or methods with are defined by a Type. When creating a typed thing, all defined properties of the Type are guaranteed to exist with a value matching the type definition.

Most, but not all, functions of a thing work on typed things as well. Next to the functions below, a typed thing may have additional methods which are defined by the Type.


Function Description
assign Copies properties from a typed thing.
copy Copy a typed thing as a new thing. The Type is not preserved.
dup Duplicate a typed thing while preserving the Type.
each Iterate over all properties of a typed thing.
equals Test if two things are equal.
filter Return a new thing with properties that pass a given test.
get Return the value of a property on a typed thing by a given property name.
has Determine if a typed thing has a given property.
id Return id of the typed thing or nil when the typed thing is not stored.
keys Return a list with all the property names of a typed thing.
len Return the number of items.
map Return a list with the results of calling a provided closure on every property.
set Set a property of a typed thing to a new value.
values Return a list with all the property values of a typed thing.
vmap Returns a new thing with equal keys but values as a result of a given closure.
to_thing Converts a typed thing to a non-typed thing.
wrap Wrap the typed thing with a Type.

Most of the above functions correspond to those of a thing. For that reason, they are only listed under the data type thing.