Since this thread is now a wall of text and many things were not said clearly enough, I made a monologue to summarize our discussion so far:
Me in post #1: I get that Nothing
and Missing
serve different purposes, but can we somehow fulfill these difference usecases with just one type?
You in post #2: No.
Me in post #7: Ahh, I get it. The type is a behavioral contract. I accept the premise of two distinct types.
Me in post #9: But can we then distill concrete guidelines for when exactly one should use one or the other type for a specific purpose?
Me in post #15: The classic interpretation to use Missing
when has a value (but it is unknown) and Nothing
when has no value is definitely flawed for the listed reasons.
Many good inputs to the discussion so far…