Could mkWeakPair do what you want?<br><a href="http://haskell.org/ghc/docs/latest/html/libraries/base/System-Mem-Weak.html#v:mkWeakPair">http://haskell.org/ghc/docs/latest/html/libraries/base/System-Mem-Weak.html#v:mkWeakPair</a><br>
<br>Or are you trying to do something else?<br><br>- Job<br><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>