<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I tried using the <code class="notranslate">@types/react-redux</code> package and had problems.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I tried using the latest stable version of tsc. <a href="https://www.npmjs.com/package/typescript" rel="nofollow">https://www.npmjs.com/package/typescript</a></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have a question that is inappropriate for <a href="https://stackoverflow.com/" rel="nofollow">StackOverflow</a>.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> <a href="https://github.com/blog/821-mention-somebody-they-re-notified">Mention</a> the authors (see <code class="notranslate">Definitions by:</code> in <code class="notranslate">index.d.ts</code>) so they can respond.
<ul dir="auto">
<li>Authors: <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/surgeboris/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/surgeboris">@surgeboris</a></li>
</ul>
</li>
</ul>
<p dir="auto">The following (self-contained) component stopped working after upgrading @types/react-redux from v6.0.9 to v6.0.10:</p>
<div class="highlight highlight-source-tsx notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="import * as React from &quot;react&quot;;
import { connect } from &quot;react-redux&quot;;
import { Dispatch } from &quot;redux&quot;;

interface Item {
  id: number;
  content: string;
}

interface RootState {
  items: Item[];
}

interface StateProps {
  items: RootState[&quot;items&quot;];
}

interface DispatchProps {
  remove: (item: Item) =&gt; () =&gt; void;
}

function BaseItemList({ items, remove }: StateProps &amp; DispatchProps) {
  return (
    &lt;ol&gt;
      {items.map((item) =&gt; (
        &lt;li key={item.id}&gt;
          {item.content}

          &lt;button onClick={remove(item)}&gt;
            Remove
          &lt;/button&gt;
        &lt;/li&gt;
      ))}
    &lt;/ol&gt;
  );
}

const mapStateToProps = ({ items }: RootState): StateProps =&gt; ({ items });

const mapDispatchToProps = (dispatch: Dispatch): DispatchProps =&gt; ({
  remove: (item) =&gt; () =&gt; dispatch({ type: &quot;REMOVE_ITEM&quot;, item }),
});

export const ItemList = connect(mapStateToProps, mapDispatchToProps)(BaseItemList);"><pre class="notranslate"><span class="pl-k">import</span> <span class="pl-c1">*</span> <span class="pl-k">as</span> <span class="pl-smi">React</span> <span class="pl-k">from</span> <span class="pl-s">"react"</span><span class="pl-kos">;</span>
<span class="pl-k">import</span> <span class="pl-kos">{</span> <span class="pl-s1">connect</span> <span class="pl-kos">}</span> <span class="pl-k">from</span> <span class="pl-s">"react-redux"</span><span class="pl-kos">;</span>
<span class="pl-k">import</span> <span class="pl-kos">{</span> <span class="pl-smi">Dispatch</span> <span class="pl-kos">}</span> <span class="pl-k">from</span> <span class="pl-s">"redux"</span><span class="pl-kos">;</span>

<span class="pl-k">interface</span> <span class="pl-smi">Item</span> <span class="pl-kos">{</span>
  <span class="pl-c1">id</span>: <span class="pl-smi">number</span><span class="pl-kos">;</span>
  <span class="pl-c1">content</span>: <span class="pl-smi">string</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span>

<span class="pl-k">interface</span> <span class="pl-smi">RootState</span> <span class="pl-kos">{</span>
  <span class="pl-c1">items</span>: <span class="pl-smi">Item</span><span class="pl-kos">[</span><span class="pl-kos">]</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span>

<span class="pl-k">interface</span> <span class="pl-smi">StateProps</span> <span class="pl-kos">{</span>
  <span class="pl-c1">items</span>: <span class="pl-smi">RootState</span><span class="pl-kos">[</span><span class="pl-s">"items"</span><span class="pl-kos">]</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span>

<span class="pl-k">interface</span> <span class="pl-smi">DispatchProps</span> <span class="pl-kos">{</span>
  <span class="pl-c1">remove</span>: <span class="pl-kos">(</span><span class="pl-s1">item</span>: <span class="pl-smi">Item</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-smi"><span class="pl-k">void</span></span><span class="pl-kos">;</span>
<span class="pl-kos">}</span>

<span class="pl-k">function</span> <span class="pl-smi">BaseItemList</span><span class="pl-kos">(</span><span class="pl-kos">{</span> items<span class="pl-kos">,</span> remove <span class="pl-kos">}</span>: <span class="pl-smi">StateProps</span> <span class="pl-c1">&amp;</span> <span class="pl-smi">DispatchProps</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
  <span class="pl-k">return</span> <span class="pl-kos">(</span>
    <span class="pl-c1">&lt;</span><span class="pl-ent">ol</span><span class="pl-c1">&gt;</span>
      <span class="pl-kos">{</span><span class="pl-s1">items</span><span class="pl-kos">.</span><span class="pl-en">map</span><span class="pl-kos">(</span><span class="pl-kos">(</span><span class="pl-s1">item</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">(</span>
        <span class="pl-c1">&lt;</span><span class="pl-ent">li</span> <span class="pl-c1">key</span><span class="pl-c1">=</span><span class="pl-kos">{</span><span class="pl-s1">item</span><span class="pl-kos">.</span><span class="pl-c1">id</span><span class="pl-kos">}</span><span class="pl-c1">&gt;</span>
          <span class="pl-kos">{</span><span class="pl-s1">item</span><span class="pl-kos">.</span><span class="pl-c1">content</span><span class="pl-kos">}</span>

          <span class="pl-c1">&lt;</span><span class="pl-ent">button</span> <span class="pl-c1">onClick</span><span class="pl-c1">=</span><span class="pl-kos">{</span><span class="pl-en">remove</span><span class="pl-kos">(</span><span class="pl-s1">item</span><span class="pl-kos">)</span><span class="pl-kos">}</span><span class="pl-c1">&gt;</span>
            Remove
          <span class="pl-c1">&lt;</span><span class="pl-c1">/</span><span class="pl-ent">button</span><span class="pl-c1">&gt;</span>
        <span class="pl-c1">&lt;</span><span class="pl-c1">/</span><span class="pl-ent">li</span><span class="pl-c1">&gt;</span>
      <span class="pl-kos">)</span><span class="pl-kos">)</span><span class="pl-kos">}</span>
    <span class="pl-c1">&lt;</span><span class="pl-c1">/</span><span class="pl-ent">ol</span><span class="pl-c1">&gt;</span>
  <span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span>

<span class="pl-k">const</span> <span class="pl-en">mapStateToProps</span> <span class="pl-c1">=</span> <span class="pl-kos">(</span><span class="pl-kos">{</span> items <span class="pl-kos">}</span>: <span class="pl-smi">RootState</span><span class="pl-kos">)</span>: <span class="pl-smi">StateProps</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">(</span><span class="pl-kos">{</span> items <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span>

<span class="pl-k">const</span> <span class="pl-en">mapDispatchToProps</span> <span class="pl-c1">=</span> <span class="pl-kos">(</span><span class="pl-s1">dispatch</span>: <span class="pl-smi">Dispatch</span><span class="pl-kos">)</span>: <span class="pl-smi">DispatchProps</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">(</span><span class="pl-kos">{</span>
  <span class="pl-en">remove</span>: <span class="pl-kos">(</span><span class="pl-s1">item</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">(</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-en">dispatch</span><span class="pl-kos">(</span><span class="pl-kos">{</span> <span class="pl-c1">type</span>: <span class="pl-s">"REMOVE_ITEM"</span><span class="pl-kos">,</span> item <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span>

<span class="pl-k">export</span> <span class="pl-k">const</span> <span class="pl-smi">ItemList</span> <span class="pl-c1">=</span> <span class="pl-en">connect</span><span class="pl-kos">(</span><span class="pl-s1">mapStateToProps</span><span class="pl-kos">,</span> <span class="pl-s1">mapDispatchToProps</span><span class="pl-kos">)</span><span class="pl-kos">(</span><span class="pl-smi">BaseItemList</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div>
<p dir="auto">After the upgrade, the last line lets TS complain with error TS2345:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="Argument of type '({ items, remove }: StateProps &amp; DispatchProps) =&gt; Element' is not assignable to parameter of type 'ComponentType&lt;Matching&lt;StateProps &amp; { remove: () =&gt; void; }, StateProps &amp; DispatchProps&gt;&gt;'.
  Type '({ items, remove }: StateProps &amp; DispatchProps) =&gt; Element' is not assignable to type 'FunctionComponent&lt;Matching&lt;StateProps &amp; { remove: () =&gt; void; }, StateProps &amp; DispatchProps&gt;&gt;'.
    Types of parameters '__0' and 'props' are incompatible.
      Type 'Matching&lt;StateProps &amp; { remove: () =&gt; void; }, StateProps &amp; DispatchProps&gt; &amp; { children?: ReactNode; }' is not assignable to type 'StateProps &amp; DispatchProps'.
        Type 'Matching&lt;StateProps &amp; { remove: () =&gt; void; }, StateProps &amp; DispatchProps&gt; &amp; { children?: ReactNode; }' is not assignable to type 'DispatchProps'.
          Types of property 'remove' are incompatible.
            Type '() =&gt; void' is not assignable to type '(item: Item) =&gt; () =&gt; void'.
              Type 'void' is not assignable to type '() =&gt; void'. [2345]"><pre class="notranslate"><code class="notranslate">Argument of type '({ items, remove }: StateProps &amp; DispatchProps) =&gt; Element' is not assignable to parameter of type 'ComponentType&lt;Matching&lt;StateProps &amp; { remove: () =&gt; void; }, StateProps &amp; DispatchProps&gt;&gt;'.
  Type '({ items, remove }: StateProps &amp; DispatchProps) =&gt; Element' is not assignable to type 'FunctionComponent&lt;Matching&lt;StateProps &amp; { remove: () =&gt; void; }, StateProps &amp; DispatchProps&gt;&gt;'.
    Types of parameters '__0' and 'props' are incompatible.
      Type 'Matching&lt;StateProps &amp; { remove: () =&gt; void; }, StateProps &amp; DispatchProps&gt; &amp; { children?: ReactNode; }' is not assignable to type 'StateProps &amp; DispatchProps'.
        Type 'Matching&lt;StateProps &amp; { remove: () =&gt; void; }, StateProps &amp; DispatchProps&gt; &amp; { children?: ReactNode; }' is not assignable to type 'DispatchProps'.
          Types of property 'remove' are incompatible.
            Type '() =&gt; void' is not assignable to type '(item: Item) =&gt; () =&gt; void'.
              Type 'void' is not assignable to type '() =&gt; void'. [2345]
</code></pre></div>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I tried using the <code class="notranslate">@types/react-redux</code> package and had problems.</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I tried using the latest stable version of tsc. <a href="https://www.npmjs.com/package/typescript" rel="nofollow">https://www.npmjs.com/package/typescript</a></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> I have a question that is inappropriate for <a href="https://stackoverflow.com/" rel="nofollow">StackOverflow</a>.  (Please ask any appropriate questions there).</li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox" checked=""> <a href="https://github.com/blog/821-mention-somebody-they-re-notified">Mention</a> the authors (see <code class="notranslate">Definitions by:</code> in <code class="notranslate">index.d.ts</code>) so they can respond.
<ul dir="auto">
<li>Authors: <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/surgeboris/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/surgeboris">@surgeboris</a></li>
</ul>
</li>
</ul>
<p dir="auto">Hi <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/surgeboris/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/surgeboris">@surgeboris</a>, I see that your recent changes intend is to "properly support thunks". However they seem to have had the exact opposite effect in our code base!</p>
<p dir="auto">This code works in 6.0.9:</p>
<div class="highlight highlight-source-ts notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="export const OrderForm = connect(
  (state: State) =&gt; ({
    order: getOrder(state),
    initialOrder: Order.createEmpty(),
    isConfirming: isConfirming(state),
    externalQuote: getExternalQuote(state),
    panelQuote: getPanelQuote(state),
  }),
  {
    onCancel: cancelOrder,
    fetchExternalQuote,
    fetchPanelQuote,
    fetchQuoteQueued,
    confirmOrder,
    createOrder,
  }"><pre class="notranslate"><span class="pl-k">export</span> <span class="pl-k">const</span> <span class="pl-smi">OrderForm</span> <span class="pl-c1">=</span> <span class="pl-s1">connect</span><span class="pl-kos">(</span>
  <span class="pl-kos">(</span><span class="pl-s1">state</span>: <span class="pl-smi">State</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">(</span><span class="pl-kos">{</span>
    <span class="pl-c1">order</span>: <span class="pl-en">getOrder</span><span class="pl-kos">(</span><span class="pl-s1">state</span><span class="pl-kos">)</span><span class="pl-kos">,</span>
    <span class="pl-c1">initialOrder</span>: <span class="pl-smi">Order</span><span class="pl-kos">.</span><span class="pl-en">createEmpty</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">,</span>
    <span class="pl-c1">isConfirming</span>: <span class="pl-en">isConfirming</span><span class="pl-kos">(</span><span class="pl-s1">state</span><span class="pl-kos">)</span><span class="pl-kos">,</span>
    <span class="pl-c1">externalQuote</span>: <span class="pl-en">getExternalQuote</span><span class="pl-kos">(</span><span class="pl-s1">state</span><span class="pl-kos">)</span><span class="pl-kos">,</span>
    <span class="pl-c1">panelQuote</span>: <span class="pl-en">getPanelQuote</span><span class="pl-kos">(</span><span class="pl-s1">state</span><span class="pl-kos">)</span><span class="pl-kos">,</span>
  <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">,</span>
  <span class="pl-kos">{</span>
    <span class="pl-c1">onCancel</span>: <span class="pl-s1">cancelOrder</span><span class="pl-kos">,</span>
    fetchExternalQuote<span class="pl-kos">,</span>
    fetchPanelQuote<span class="pl-kos">,</span>
    fetchQuoteQueued<span class="pl-kos">,</span>
    confirmOrder<span class="pl-kos">,</span>
    createOrder<span class="pl-kos">,</span>
  <span class="pl-kos">}</span></pre></div>
<p dir="auto">The new error in 6.0.10:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="Argument of type 'typeof OrderForm' is not assignable to parameter of type 'ComponentType&lt;Matching&lt;{ order: Readonly&lt;PermittedOrderParams&gt;; initialOrder: PermittedOrderParams; isConfirming: boolean; externalQuote: Readonly&lt;ThirdPartyQuote&gt;; panelQuote: Readonly&lt;PanelQuote&gt;; } &amp; { ...; }, Props&gt;&gt;'.
  Type 'typeof OrderForm' is not assignable to type 'ComponentClass&lt;Matching&lt;{ order: Readonly&lt;PermittedOrderParams&gt;; initialOrder: PermittedOrderParams; isConfirming: boolean; externalQuote: Readonly&lt;ThirdPartyQuote&gt;; panelQuote: Readonly&lt;PanelQuote&gt;; } &amp; { ...; }, Props&gt;, any&gt;'.
    Types of parameters 'props' and 'props' are incompatible.
      Type 'Matching&lt;{ order: Readonly&lt;PermittedOrderParams&gt;; initialOrder: PermittedOrderParams; isConfirming: boolean; externalQuote: Readonly&lt;ThirdPartyQuote&gt;; panelQuote: Readonly&lt;PanelQuote&gt;; } &amp; { ...; }, Props&gt;' is not assignable to type 'Readonly&lt;Props&gt;'.
        Types of property 'confirmOrder' are incompatible.
          Type 'ThunkAction&lt;void, State, void, Action&lt;any&gt;&gt;' is not assignable to type '(usabilityTestId: number, priceInCents: number) =&gt; void'."><pre class="notranslate"><code class="notranslate">Argument of type 'typeof OrderForm' is not assignable to parameter of type 'ComponentType&lt;Matching&lt;{ order: Readonly&lt;PermittedOrderParams&gt;; initialOrder: PermittedOrderParams; isConfirming: boolean; externalQuote: Readonly&lt;ThirdPartyQuote&gt;; panelQuote: Readonly&lt;PanelQuote&gt;; } &amp; { ...; }, Props&gt;&gt;'.
  Type 'typeof OrderForm' is not assignable to type 'ComponentClass&lt;Matching&lt;{ order: Readonly&lt;PermittedOrderParams&gt;; initialOrder: PermittedOrderParams; isConfirming: boolean; externalQuote: Readonly&lt;ThirdPartyQuote&gt;; panelQuote: Readonly&lt;PanelQuote&gt;; } &amp; { ...; }, Props&gt;, any&gt;'.
    Types of parameters 'props' and 'props' are incompatible.
      Type 'Matching&lt;{ order: Readonly&lt;PermittedOrderParams&gt;; initialOrder: PermittedOrderParams; isConfirming: boolean; externalQuote: Readonly&lt;ThirdPartyQuote&gt;; panelQuote: Readonly&lt;PanelQuote&gt;; } &amp; { ...; }, Props&gt;' is not assignable to type 'Readonly&lt;Props&gt;'.
        Types of property 'confirmOrder' are incompatible.
          Type 'ThunkAction&lt;void, State, void, Action&lt;any&gt;&gt;' is not assignable to type '(usabilityTestId: number, priceInCents: number) =&gt; void'.
</code></pre></div>
<p dir="auto">This was all working perfectly before, in fact 6.0.9 (which I'll be sticking to for now) was fantastic in that I was able to remove many of my type hacks. With your new version I'm forced to go back to my old tricks:</p>
<div class="highlight highlight-source-ts notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="const mapDispatchToProps = {
  onCancel: cancelOrder,
  fetchExternalQuote,
  fetchPanelQuote,
  fetchQuoteQueued,
  confirmOrder,
  createOrder,
}

export const OrderForm = connect(
  (state: State) =&gt; ({
    order: getOrder(state),
    initialOrder: Order.createEmpty(),
    isConfirming: isConfirming(state),
    externalQuote: getExternalQuote(state),
    panelQuote: getPanelQuote(state),
  }),
  {
    onCancel: cancelOrder,
    fetchExternalQuote,
    fetchPanelQuote,
    fetchQuoteQueued,
    confirmOrder,
    createOrder,
  }
  // :'(
  mapDispatchToProps as Pick&lt;ImplProps, keyof typeof mapDispatchToProps&gt;
)(Impl)"><pre class="notranslate"><span class="pl-k">const</span> <span class="pl-s1">mapDispatchToProps</span> <span class="pl-c1">=</span> <span class="pl-kos">{</span>
  <span class="pl-c1">onCancel</span>: <span class="pl-s1">cancelOrder</span><span class="pl-kos">,</span>
  fetchExternalQuote<span class="pl-kos">,</span>
  fetchPanelQuote<span class="pl-kos">,</span>
  fetchQuoteQueued<span class="pl-kos">,</span>
  confirmOrder<span class="pl-kos">,</span>
  createOrder<span class="pl-kos">,</span>
<span class="pl-kos">}</span>

<span class="pl-k">export</span> <span class="pl-k">const</span> <span class="pl-smi">OrderForm</span> <span class="pl-c1">=</span> <span class="pl-en">connect</span><span class="pl-kos">(</span>
  <span class="pl-kos">(</span><span class="pl-s1">state</span>: <span class="pl-smi">State</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">(</span><span class="pl-kos">{</span>
    <span class="pl-c1">order</span>: <span class="pl-en">getOrder</span><span class="pl-kos">(</span><span class="pl-s1">state</span><span class="pl-kos">)</span><span class="pl-kos">,</span>
    <span class="pl-c1">initialOrder</span>: <span class="pl-smi">Order</span><span class="pl-kos">.</span><span class="pl-en">createEmpty</span><span class="pl-kos">(</span><span class="pl-kos">)</span><span class="pl-kos">,</span>
    <span class="pl-c1">isConfirming</span>: <span class="pl-en">isConfirming</span><span class="pl-kos">(</span><span class="pl-s1">state</span><span class="pl-kos">)</span><span class="pl-kos">,</span>
    <span class="pl-c1">externalQuote</span>: <span class="pl-en">getExternalQuote</span><span class="pl-kos">(</span><span class="pl-s1">state</span><span class="pl-kos">)</span><span class="pl-kos">,</span>
    <span class="pl-c1">panelQuote</span>: <span class="pl-en">getPanelQuote</span><span class="pl-kos">(</span><span class="pl-s1">state</span><span class="pl-kos">)</span><span class="pl-kos">,</span>
  <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">,</span>
  <span class="pl-kos">{</span>
    <span class="pl-c1">onCancel</span>: <span class="pl-s1">cancelOrder</span><span class="pl-kos">,</span>
    fetchExternalQuote<span class="pl-kos">,</span>
    fetchPanelQuote<span class="pl-kos">,</span>
    fetchQuoteQueued<span class="pl-kos">,</span>
    confirmOrder<span class="pl-kos">,</span>
    createOrder<span class="pl-kos">,</span>
  <span class="pl-kos">}</span>
  <span class="pl-c">// :'(</span>
  <span class="pl-s1">mapDispatchToProps</span> <span class="pl-k">as</span> <span class="pl-smi">Pick</span><span class="pl-kos">&lt;</span><span class="pl-smi">ImplProps</span><span class="pl-kos">,</span> <span class="pl-k">keyof</span> <span class="pl-k">typeof</span> <span class="pl-s1">mapDispatchToProps</span><span class="pl-kos">&gt;</span>
<span class="pl-kos">)</span><span class="pl-kos">(</span><span class="pl-smi">Impl</span><span class="pl-kos">)</span></pre></div>