@inthehands Yeah, I definitely agree with these criticisms of nil. And yup, adding a special instance for your type-specific special value (linked list node, the symbol :end, etc) is generally much better than nil, for all the reasons you say.
Ruby's doesn't have the same LSP problems (no type declarations => you're not violating a type declaration) but of course nil is still bad.