The consequence of this is that the types need their members to be `mutable`, which is ugly.
The consequence of this is that the types need their members to be
mutable, which is ugly.