Yeah, while the ability to provide a pointer seems meaningful, it might be illusory.  If our value is None, then a pointer to the inside Option&lt;i32&gt; is... what?<p>Edited to add:  With your proposed encoding, the memory contents of an Option&lt;Option&lt;i32&gt;&gt; is identical to an Option&lt;i32&gt; precisely when there is an Option&lt;i32&gt; to speak about.  And when there is no Option&lt;i32&gt;, you can tell that with one comparison, rather than by backing out an unknown number of levels.  I like it.