The “Option types” page seems to be some weird list of implementations/languages that are lawful, but with random languages with wildly different semantics like C#, Perl 6, Java or Julia thrown in.
It also claims that nullable types are practically the same as option types, and the “Nullable types” page itself isn’t much better. “Nullable types” is also some weird mixture of “in many languages
null can be assigned to most types” and “what’s
It feels like the whole topic is an incoherent mess – almost like someone wanted to write an article about “banks”, but had to cover both “bank as ” and “bank as ”.
Looking at this purely from a taxonomy perspective and trying to draw from largely established naming patterns – would it makes sense to document different things separately, and with a more precise terminology along the lines of
String foo = nullcompiles”?
What do you think about this, and how would your bullet-proof definitions of these names look like?