// MetaTransformer that understands Transformable and List static MetaTransformer metaTransformer_transformableAndList() { ret new MetaTransformer(new MetaTransformer.StructureHandler() { public O transform(O o, IF1 recurse) { if (o cast Transformable) ret o.transformUsing(recurse); if (o cast L) ret map_ping(recurse, o); null; } public void visit(O o, IVF1 recurse) { if (o cast Visitable) o.visitUsing(recurse); else if (o cast L) for ping (O x : o) recurse.get(x); } }); }