I assume you speak about Serialize typeclass from cereal package and FileStatus from unix package.<div><br></div><div>There are several problems with implementing such instance:</div><div><br></div><div>- <a name="t:FileStatus" class="def" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;text-decoration:none;font-weight:bold;font-family:monospace;font-size:13px;line-height:16px;text-align:left;background-color:rgb(240,240,240)">FileStatus</a> doesn&#39;t export the fact it&#39;s a newtype around Ptr CStat</div>

<div>- CStat isn&#39;t exported either</div><div>- there are no constructors for 
<a name="t:FileStatus" class="def" style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;text-decoration:none;font-weight:bold;font-family:monospace;font-size:13px;line-height:16px;text-align:left;background-color:rgb(240,240,240)">FileStatus</a>  or any way to change the value of it</div>

<div>- it could be implemented internally in unix but then it would have to depend on cereal which is non-trivial change</div><div><br></div><div>So implementing such instance would basically mean heavy changes to unix package.</div>

<div><br></div><div>My advice: implement your own datatype with information equivalent to FileStatus, say FileStatusData, along with function mkFileStatusData :: FileStatus -&gt; FileStatusData and provide instance for Serialize for FileStatusData.</div>

<div><br></div><div>As for efficiency: I&#39;m not sure it can be done in any better way. In particular you can&#39;t be sure that on the system on which you are going to deserialize the value the CStat structure has the same memory layout. So you have to use proper serialization on Haskell side to achieve correctness.</div>

<div><br></div><div>Best regards,</div><div>Krzysztof Skrzętnicki</div><div><br><div class="gmail_quote">On Wed, Feb 1, 2012 at 15:02, Johan Brinch <span dir="ltr">&lt;<a href="mailto:brinchj@gmail.com">brinchj@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Are there plans on implementing an efficient Serialize instance of the<br>
FileStatus type?<br>
<br>
I&#39;m aware that it&#39;s just a wrapper around a C stat structure, and I<br>
reckon it can be done more efficiently than copying from C to Haskell<br>
for every value.<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Johan Brinch<br>
<br>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
<a href="mailto:Haskell-Cafe@haskell.org">Haskell-Cafe@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/mailman/listinfo/haskell-cafe</a><br>
</font></span></blockquote></div><br></div>