&gt; In a language like Rust, direct casts mean &quot;reinterpret these bits&quot;, and the two are represented differently, so that wouldn&#x27;t work.<p>What&#x27;s the representation of an optional then? Doesn&#x27;t make use of some generic concept like subclasses or unions? Surely you have a generic syntax for &quot;assume this union is this particular member&quot; or &quot;assume this base class is this particular subclass&quot; or the like?<p>&gt; I&#x27;m not sure that it&#x27;s any more verbose or scary looking, though.<p>I guess the point is that I want all cast-like operations to look alike (or at least to have a way to consistently distinguish them from ordinary methods) so that I can flag them all up consistently in code reviews, linters etc.