This is to account for the case of, say class Function<R> { fun invoke(): R } it would be a shame to put @Nullable on the return type of the function, and force all callers to check for null, so we put no annotations