title: 'ABCMeta' object is not subscriptable when trying to annotate a hash variable
body: <p>The following <code>dataclass</code>:</p>
  
  <pre><code>from abc import ABC
  from collections.abc import Mapping
  from dataclasses import dataclass, field
  
  @dataclass(eq=True, order=True, frozen=True)
  class Expression(Node, ABC):
      def node(self):
          raise NotImplementedError
  </code></pre>
  
  <p>is used as a base class for:</p>
  
  <pre><code>@dataclass(eq=True, frozen=True)
  class HashLiteral(Expression):
      pairs: Mapping[Expression, Expression]
      ...
  </code></pre>
  
  <p><code>Node</code> is defined as:</p>
  
  <pre><code>@dataclass(eq=True, frozen=True)
  class Node:
      def __str__(self) -&gt; str:
          raise NotImplementedError
  </code></pre>
  
  <p>When trying to use the <code>HashLiteral</code> class I get the error:</p>
  
  <pre><code>pairs: Mapping[Expression, Expression]
  TypeError: 'ABCMeta' object is not subscriptable
  </code></pre>
  
  <p>What is wrong with my annotation of <code>pairs</code> above?</p>