The primitive data types in Orc are Booleans, numbers, strings,
and a unit value signal
.
Orc also has structured values: lists, tuples, records, and algebraic datatypes.
Functions are values, called closures.
Additionally, sites are themselves values, and may be passed to sites or returned by sites.
All of the preceding values are immutable. Orc also has access to mutable state through sites.
The Standard Library includes many such sites, e.g. Ref
and Channel
.
Orc sites may create and manipulate many more kinds of values, such as Java objects, XML documents, video files, relational databases, etc. In fact, all of the built-in datatypes could be implemented by external sites.