assert pos && concat : pos + "," + concat;
assert count == 0 && unary && concat: count+" - "+unary+" - "+concat;
    private void addAdd(Symbol clasz, int count) {        Name name = Names.ADD;        Symbol symbol = clasz.lookup(name);        assert symbol != Symbol.NONE : Debug.show(clasz) + "." + name;        Symbol[] alts = symbol.alternativeSymbols();        // !!! assert count + 2 == alts.length : (count + 2) + " != " + alts.length;        boolean pos = false;        boolean concat = false;        for (int i = 0; i < alts.length; i++) {            switch (alts[i].type()) {            case MethodType(Symbol[] vparams, _):                if (vparams.length == 0) {                    // !!! System.out.println("!!! Ignoring pico bridge method " + Debug.show(clasz) + "." + name);                    break;                }                if (vparams[0].type().equals(definitions.STRING_TYPE())) {                    addPrimitive(alts[i], Primitive.CONCAT);                    assert !concat;                    concat = true;                } else {                    addPrimitive(alts[i], Primitive.ADD);                    count--;                }                break;            case PolyType(Symbol[] tparams, _):                addPrimitive(alts[i], Primitive.POS);                assert !pos;                pos = true;                break;            default:                System.out.println("!!! symbol = " + Debug.show(alts[i]));                throw Debug.abort("illegal case" , alts[i].type());            }        }        assert pos && concat : pos + "," + concat;    }