O beaCall(BEA c, S method, O... args) {
  ret cCall(c, method, args);
}

O beaCallOpt(BEA c, S method, O... args) {
  ret cCallOpt(c, method, args);
}

O beaPcall(BEA c, S method, O... args) {
  ret cPcall(c, method, args);
}

O beaCall(Concept.Ref ref, S method, O... args) {
  ret cCall(ref, method, args);
}

O beaPcall(Concept.Ref ref, S method, O... args) {
  ret cPcall(ref, method, args);
}

O beaCall(long id, S method, O... args) {
  ret cCall(beaMod().beaGet(id), method, args);
}

O beaPcall(long id, S method, O... args) {
  ret cPcall(beaMod().beaGet(id), method, args);
}

O beaCallOpt(long id, S method, O... args) {
  ret cCallOpt(beaMod().beaGet(id), method, args);
}

<A extends BEA> A beaGet(Class<A> c, S key, GazelleBEA.Req req) {
  ret optCast(c, beaGet(key, req));
}

!include #1031725 // Additions of ExtendedBEAObject