concept Entity > NamedConcept {
}
abstract concept AbstractJavaObjectEntity > Entity {
abstract A object();
}
concept TransientJavaObjectEntity > AbstractJavaObjectEntity {
gettable transient A object;
}
concept PersistentJavaObjectEntity > AbstractJavaObjectEntity {
gettable A object;
}
concept ConceptEntity extends AbstractJavaObjectEntity {
new Ref concept;
A object() { ret concept!; }
}