Is the IORef or the value in the IORef your key?<br><br><div class="gmail_quote">2009/11/2 Patai Gergely <span dir="ltr">&lt;<a href="mailto:patai_gergely@fastmail.fm">patai_gergely@fastmail.fm</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hello all,<br>
<br>
I wanted to create a weak pointer with an IORef as the key and something<br>
else as the value, but I saw no way to do it through the API provided.<br>
After some experimentation I came up with the following abomination for<br>
a solution:<br>
<br>
myWeakRef (IORef (STRef r)) v f =<br>
  IO $ \s -&gt; case mkWeak# r v f s of (# s&#39;, w #) -&gt; (# s&#39;, Weak w #)<br>
<br>
This works perfectly when the code is compiled both with and without<br>
optimisations, but ghci chokes on it with an internal error. So my<br>
question is if I can expect this to work at least this much in the long<br>
run, or is it a hopelessly fragile hack?<br>
<br>
Gergely<br>
<font color="#888888"><br>
--<br>
<a href="http://www.fastmail.fm" target="_blank">http://www.fastmail.fm</a> - Same, same, but different...<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></blockquote></div><br>