Well, it makes me sad, I guess.&nbsp; pqueue-mtl provides an array-backed heap monad transformer that is supposed to keep its own ST thread, if only for the sake of retaining a purely functional interface without any externally visible forall&#39;d types, which is perfectly fine in most cases, but I&#39;d have to think about whether or not it&#39;d remain referentially transparent if the ST thread were only visible to a very tightly encapsulated set of commands (i.e. priority queue operations).<br>
<br clear="all">Louis Wasserman<br><a href="mailto:wasserman.louis@gmail.com">wasserman.louis@gmail.com</a><br>
<br><br><div class="gmail_quote">On Sun, Feb 15, 2009 at 5:33 PM, Henning Thielemann <span dir="ltr">&lt;<a href="mailto:lemming@henning-thielemann.de">lemming@henning-thielemann.de</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d"><br>
On Sun, 15 Feb 2009, Louis Wasserman wrote:<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I follow.&nbsp; The primary issue, I&#39;m sort of wildly inferring, is that use of STT -- despite being<br>
pretty much a State monad on the inside -- allows access to things like mutable references?<br>
</blockquote>
<br></div>
I assume that ST must always be the most inner monad, like IO. Is this a problem in an application?</blockquote></div><br>