@Nullable
    public Type firstUseful() {
        for (Type type : types) {
            if (!type.isUnknownType() && type != Type.NIL) {
                return type;
            }
        }
        return null;
    }