abstract Agent > Agent_abs_NameToGenerator { void impl { for (AIConcept c : aiConcepts()) if (check(c.name)) gen(c); } abstract bool check(S name); abstract void gen(AIConcept c); }