title: OCaml pattern matching with int and bool
body: <pre><code>let disting v =
    match v with
    | int -&gt; (*expression1*)
    | bool -&gt; (*expression2*)
    | _ -&gt; (*expression3*)
  </code></pre>
  
  <p>Whenever I run the code, <code>disting true</code> and <code>disting false</code> also turns out expression1. The result is vice versa with this code</p>
  
  <pre><code>let disting v =
    match v with
    | bool -&gt; (*expression2*)
    | int -&gt; (*expression1*)    
    | _ -&gt; (*expression3*)
  </code></pre>
  
  <p>This one also have similar problem. How can I get the result I want?</p>