static S structureToJava(O o) { if (o == null) ret "null"; if (o instanceof Bool || o instanceof Number) ret str(o); if (o instanceof S) ret quote(o); if (o instanceof LinkedHashMap) ret structureToJava_map("litorderedmap", o); if (o instanceof HashMap) ret structureToJava_map("litmap", o); if (o instanceof TreeMap) ret structureToJava_map("littreemap", o); if (o instanceof L) ret "ll(" + join(", ", map((L) o, f structureToJava)) + ")"; fail("boohoo " + className(o)); } static S structureToJava_map(S type, O o) { ret type + "(" + join(", ", mapMapToList((Map) o, func(O a, O b) { structureToJava(a) + ", " + structureToJava(b) })) + ")"; }