     |--&gt; ( s &gt;= S(LowestT) ) &amp;&amp; ( s &lt;= S(HighestT) )
              |                   |--&gt; not subranged |--&gt; NONE
              |
              |--&gt; unsig_to_unsig |--&gt; subranged     |--&gt; ( s &gt;= S(LowestT) ) &amp;&amp; ( s &lt;= S(HighestT) )
              |                   |--&gt; not subranged |--&gt; NONE
              |
              |--&gt; sig_to_unsig   |--&gt; pos subranged     |--&gt; ( s &gt;= S(0) ) &amp;&amp; ( s &lt;= S(HighestT) )
              |        