// magic cast - bad actually. should remove static A cget(O c, S field) { c = derefRef(c); O o = getOpt(c, field); if (o instanceof Concept.Ref) ret (A) ((Concept.Ref) o).get(); ret (A) o; } static A mapMethodLike cget(S field, O c) { ret cget(c, field); }