sclass Meta implements IMeta { // We allocate one extra field for each Java object to make it // reasoning-compatible. We couldn't go for 0 extra fields and // there are no half fields in Java... so there you go. // Also, if you don't use any meta data, you are probably not // reasoning about anything. The point of reasoning in JavaX is // to attach information to objects directly used in the program. // So here it is. The field. // We also have IMeta to retrofit foreign classes (rare but // probably useful) // generic meta value of any kind (e.g. Map with extra field values) // volatile to avoid synchronization volatile O meta; // ...and the interface methods public void _setMeta(O meta) { this.meta = meta; } public O _getMeta() { ret meta; } }