You&#x27;re right... in that we can fudge around these things with &quot;fuzziness&quot;, but I don&#x27;t think that&#x27;s sufficient.<p>Btw, I didn&#x27;t mean that types should be the <i>arbiter</i> of &quot;a | b&quot;, just that it should <i>guide</i> the search process. Obviously, you should always be <i>allowed</i> to really choose &quot;c&quot; even if the system determined &quot;b&quot;. But our UI could be <i>so</i> much efficient if the system chose &quot;b&quot; <i>most</i> of the time.<p>EDIT: Classic case, btw: &quot;find ... -print0 | xargs -0 ...&quot;. Unless we have <i>pervasive</i> and <i>dependent</i> types, how is any formalism going to know that?