Syntax
Object section syntax allows for members to be declared underneath it. It must have a type that it inherits from. It should not have anything after the type specifier.
Currently, object section syntax does not support nested object definitions.
Each member should start with a permission, then have a name, then a type specifier. After that,
they can have an optional initialization value.
Arf supports bitfields, like in C, although it is done with an amperseand symbol. This is a member of type integer with a width of 1:
Semantics
The "type" of an object type definition is what object it inherits. Most objects
will inherit from Obj, which is a blank object.
Object definitions have a list of members, preceded by a permission. Members can
have simple or complex initializations, or none at all. These act as the default
values for those members.