<div dir="ltr"><div>I&#39;ve just read the post &quot;Destroying Performance with Strictness&quot; by Neil Mitchell [1].<br><br></div>One of the comments from an Anonymous says:
<dl class="" id="comments-block"><dd class="" id="Blog1_cmt-1768138582105334788">
<p>
How hard would it be to lift strictness annotations to type-level? E.g. instead of<br>f :: Int -&gt; Int<br>f !x = x + 1<br>write<br>f :: !Int -&gt; Int<br>f x = x + 1<br>which would have the same effect. At least it would be transparent to the developer using a particular function.
</p>
</dd></dl><div>The problem I see with this approach is on type classes, as it would be impossible to declare a type instance with strict implementation to a type class that used lazy types.<br><br></div><div>Is this a real problem? Is it the only one?<br>

</div><div><br>[1] <a href="http://neilmitchell.blogspot.ru/2013/08/destroying-performance-with-strictness.html">http://neilmitchell.blogspot.ru/2013/08/destroying-performance-with-strictness.html</a><br><br></div></div>