title: Mypy method definition is incompatible with definition in base class
body: <p>I have a parent class that does something and two child classes that wrap a method in orthogonal ways.  When I try to combine the two child classes, mypy complains with the following error.</p>
  
  <blockquote>
    <p>Definition of "run" in base class "Foo" is incompatible with
    definition in base class "Bar"</p>
  </blockquote>
  
  <p>How are the two classes "incompatible" and how do I modify my code to appease mypy?  Can I do it without making</p>
  
  <pre><code>class Parent:
      def run(self, a, b):
          pass
  
  
  class Foo(Parent):
      def run(self, a, b, foo=None, **kwargs):
          print('foo', foo)
          super().run(a, b, **kwargs)
  
  
  class Bar(Parent):
      def run(self, a, b, bar=None, **kwargs):
          print('bar', bar)
          super().run(a, b, **kwargs)
  
  
  class C(Foo, Bar):
      pass
  </code></pre>