OccTyping
This class is used as a workaround for cases where we want to have a struct field that otherwise would break the rule that a struct cannot contain itself.
Basically, this lets us sort of pretend of have referential transparency by wrapping a struct in a class that forwards all methods to the struct.