Thanks! I&#39;ll definitely consider your library in the future, but for now, as we can see, there&#39;s no necessity in rewriting cFloatConv at all - {-# INLINE #-} suffices :)<br><br><div class="gmail_quote">On Thu, Nov 3, 2011 at 3:30 AM, wren ng thornton <span dir="ltr">&lt;<a href="mailto:wren@freegeek.org">wren@freegeek.org</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im">On 11/2/11 7:14 AM, Eugene Kirpichov wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I rewrote cFloatConv like this:<br>
<br>
import GHC.Float<br>
class (RealFloat a, RealFloat b) =&gt;  CFloatConv a b where<br>
   cFloatConv :: a -&gt;  b<br>
   cFloatConv = realToFrac<br>
<br>
instance CFloatConv Double Double where cFloatConv = id<br>
instance CFloatConv Double CDouble<br>
instance CFloatConv CDouble Double<br>
instance CFloatConv Float Float where cFloatConv = id<br>
instance CFloatConv Float Double where cFloatConv = float2Double<br>
instance CFloatConv Double Float where cFloatConv = double2Float<br>
</blockquote>
<br></div>
If you&#39;re going the MPTC route, I suggest you use logfloat:Data.Number.<u></u>RealToFrac[1]. I don&#39;t have the CDouble and CFloat instances, but I could add them. The instances themselves are only moderately more clever than yours ---namely using CPP for portability to non-GHC compilers--- but I think it&#39;s good for people to rally around one implementation of the solution instead of having a bunch of copies of the same thing, each poorly maintained because of the distributedness.<br>

<br>
<br>
[1] <a href="http://hackage.haskell.org/packages/archive/logfloat/0.12.1/doc/html/Data-Number-RealToFrac.html" target="_blank">http://hackage.haskell.org/<u></u>packages/archive/logfloat/0.<u></u>12.1/doc/html/Data-Number-<u></u>RealToFrac.html</a><span class="HOEnZb"><font color="#888888"><br>

<br>
-- <br>
Live well,<br>
~wren</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
______________________________<u></u>_________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/<u></u>mailman/listinfo/haskell-cafe</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>Eugene Kirpichov<br>Principal Engineer, Mirantis Inc. <a href="http://www.mirantis.com/" target="_blank">http://www.mirantis.com/</a><br>Editor, <a href="http://fprog.ru/" target="_blank">http://fprog.ru/</a><br>