title: F# Subtype Discriminated Unions
body: <p>I have a DU like this:</p>
  
  <pre><code>type Food =
  | Beer
  | Bacon
  | Apple
  | Cherry
  </code></pre>
  
  <p>I want to add a characteristic to the DU to flag if the food is a fruit or not.  I first thought of something like this:</p>
  
  <pre><code>type NonFruit = NonFruit
  type Fruit = Fruit
  
  type Food =
  | Beer of NonFruit
  | Bacon of NonFruit
  | Apple of Fruit
  | Cherry of Fruit
  </code></pre>
  
  <p>And then a method like this:</p>
  
  <p>let fruitChecker (myFood:Food) =
      match myFood with
      | :? NonFruit -> "No"
      | :? Fruit -> "yes"</p>
  
  <p>But the compiler is yelling at me:</p>
  
  <blockquote>
    <p>The type 'Food' does not have any proper subtypes and cannot be used
    as the source</p>
  </blockquote>
  
  <p>Am I approaching the problem incorrectly?</p>
  
  <p>Thanks</p>