static bool eqic(S a, S b) { ifdef eqic_lower ret compareIgnoreCase_lower(a, b) != 0; endifdef ifndef eqic_lower if ((a == null) != (b == null)) ret false; if (a == null) ret true; ret a.equalsIgnoreCase(b); endifndef } ifclass Symbol static bool eqic(Symbol a, Symbol b) { ret eq(a, b); } static bool eqic(Symbol a, S b) { ret eqic(asString(a), b); } endif static bool eqic(char a, char b) { if (a == b) true; ifndef eqic_lower char u1 = Character.toUpperCase(a); char u2 = Character.toUpperCase(b); if (u1 == u2) true; endifndef ret Character.toLowerCase(u1) == Character.toLowerCase(u2); }