static S n2(long l) { ret formatWithThousands(l); } static S n2(Collection l) { ret n2(l(l)); } static n2(double l, S singular) { ret n2(l, singular, singular + "s"); } static n2(double l, S singular, S plural) { if (fraction(l) == 0) ret n2((long) l, singular, plural); else ret l + " " + plural; } static S n2(long l, S singular, S plural) { ret n_fancy2(l, singular, plural); } static S n2(long l, S singular) { ret n_fancy2(l, singular, singular + "s"); } static S n2(Collection l, S singular) { ret n2(l(l), singular); } static S n2(Collection l, S singular, S plural) { ret n_fancy2(l, singular, plural); } static S n2(Map m, S singular, S plural) { ret n_fancy2(m, singular, plural); } static S n2(Map m, S singular) { ret n2(l(m), singular); } static S n2(O[] a, S singular) { ret n2(l(a), singular); } static S n2(O[] a, S singular, S plural) { ret n_fancy2(a, singular, plural); } ifclass MultiSet static S n2(MultiSet ms, S singular, S plural) { ret n_fancy2(ms, singular, plural); } endif