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 idof the typed thing ornilwhen 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.