Module ErrorRenderingUtils.UserFriendlyNullable
"Effectively nullable values" from the user perspective. Depending on context, convention, and mode, Nullsafe treats such and such things as nullable or non-null. At some point this needs to be explain to the user.
type t=|ExplainablyNullable of explainably_nullable_kindValue that is nullable according to nullsafe semantics and conventions. It can be nullable because of an explicit annotation, models, default nullability conventions, etc.
|UntrustedNonnull of untrusted_kindValue is not nullable per se, but we still can not treat it as non-null in current mode. From the user perspective, it is a very different case: violations of this type need to be explained in a way so that it is clear why exactly can not nullsafe trust it in this context.
and explainably_nullable_kind=|Nullable|Nulland untrusted_kind=|ThirdPartyNonnull|UncheckedNonnull|LocallyCheckedNonnull
val from_nullability : Nullability.t -> t option