Why specializing a generic function explicitly is not allowed?
<p>In Swift, one should use type of parameters or return value to implicitly specialize a generic function. The problem is, when I call function like this:</p>

<pre><code>func serialize&lt;T&gt;(continuation: GenericWithLongName&lt;T, NSError&gt; -&gt; Void) -&gt; Void 
</code></pre>

<p>I cannot just write</p>

<pre><code>serialize&lt;SomeType&gt; {
    obj in 
    ...
}
</code></pre>

<p>It should be </p>

<pre><code>serialize {
    (obj: GenericWithLongName&lt;SomeType, NSError&gt;) -&gt; Void in
    ...
}
</code></pre>

<p>which looks painful.</p>

<p>It seems this "feature" exists for a long time. Is it a design decision? Is there any negative implication from allowing explicitly specialization? </p>

<p>And is there any way to make code above neat and clean without refactoring that generic class?</p>