title: Define an empty Dict where the values are the subtype of an abstract type
body: <p>I've got an abstract type, with subtypes.
  I'd like to make and add to a Dict that holds the subtypes.
  Is this doable?
  What's a better way of achieving this?</p>
  <p>Example:</p>
  <pre><code>abstract type Cat end
  
  struct Lion &lt;: Cat
     manecolour
  end
  
  struct Tiger &lt;: Cat
     stripewidth
  end
  
  cats = Dict{Int, &lt;:Cat}()
  </code></pre>
  <p>gives</p>
  <pre><code>ERROR: MethodError: no method matching Dict{Int64,var&quot;#s3&quot;} where var&quot;#s3&quot;&lt;:Cat()
  </code></pre>
  <p>What's the more correct way of doing this?</p>