public Type resolve(Scope s, int tag) {
        Type tp1 = Indexer.idx.builtins.unknown;
        Type tp2 = Indexer.idx.builtins.unknown;
        Type tph = Indexer.idx.builtins.unknown;

        for (ExceptHandler h: handlers) {
            tph = UnionType.union(tph, resolveExpr(h, s, tag));
        }

        if (body != null) tp1 = resolveExpr(body, s, tag);
        if (orelse != null) tp2 = resolveExpr(orelse, s, tag);

        return UnionType.union(tp1, UnionType.union(tp2, tph));
    }