List [] is a monad, why not for heap data. Heap data could be an instance of Monad too. <br>I have the heapsort function, and just wanted to rewrite a verbose version of it by using liftIO.<br>But I would look into Debug.Trace. Thanks for your hint.<br><br>Qi<br><br>On Wednesday, July 11, 2012 5:28:17 PM UTC-5, Eugene Kirpichov wrote:<blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">Use Debug.Trace.<br>It does not make sense to declare that heap is a monad, as a monad is an abstraction of sequencing computations, and a heap is not an abstraction of sequencing computations at all. You don't make your String class implement the "rendering engine" interface just because you want to use it in a computer game program, equally you dont pretend that a heap is a way of sequencing computations just because you want to sequence computations related to heaps.<p>The actual computation in your case is the heapsort function, not the heap. If you absolutely must use IO, add IO to the functions type.</p><p>11.07.2012, в 15:19, Qi Qi &lt;<a href="mailto:qiqi789@gmail.com" target="_blank">qiqi789@gmail.com</a>&gt; написал(а):</p><p>&gt; Hi,<br>&gt; <br>&gt; I was wondering about creating an instance of MonadIO for a heap data.<br>&gt; Any hints?<br>&gt; <br>&gt; data Heap a = E | T Int a (Heap a) (Heap a)<br>&gt; &nbsp; &nbsp; deriving (Eq, Ord, Read, Show)<br>&gt; <br>&gt; The reason is that I want to use liftIO during a heapsort to print out<br>&gt; intermediate results.<br>&gt; <br>&gt; Thanks.<br>&gt; <br>&gt; Qi Qi<br>&gt; <br>&gt; <br>&gt; <br>&gt; ______________________________<wbr>_________________<br>&gt; Haskell-Cafe mailing list<br>&gt; <a href="mailto:Haskell-Cafe@haskell.org" target="_blank">Haskell-Cafe@haskell.org</a><br>&gt; <a href="http://www.haskell.org/mailman/listinfo/haskell-cafe" target="_blank">http://www.haskell.org/<wbr>mailman/listinfo/haskell-cafe</a></p><p>______________________________<wbr>_________________<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/<wbr>mailman/listinfo/haskell-cafe</a><br></p><p></p><p></p><p></p></blockquote>