@NotNull
    @Override
    public Type transform(@NotNull State s) {
        Type typeval = Type.UNKNOWN;
        if (exceptions != null) {
            typeval = resolveUnion(exceptions, s);
        }
        if (binder != null) {
            Binder.bind(s, binder, typeval);
        }

        Type ret = Type.UNKNOWN;

        if (handler != null) {
            ret = UnionType.union(ret, transformExpr(handler, s));
        }

        if (orelse != null) {
            ret = UnionType.union(ret, transformExpr(orelse, s));
        }

        return ret;
    }