<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2800.1400" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Hello, I have some code that manipulates STRefs 
within the ST monad. All good and fine, until I come across some computation 
that uses lets say IO and everything skids to a halt. At this point I have 3 
choices:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>1. Define a ST State Transformer monad and do all 
my previous ST computations in that</FONT></DIV>
<DIV><FONT face=Arial size=2>2. convert all subsequent ST computations into IO 
computations using stToIO </FONT></DIV>
<DIV><FONT face=Arial size=2>3. stop using the ST monad and do everything in the 
IO monad</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>I was wondering what advice folks had. In 
particular, what are the disadvantages to doing everything in the IO monad - ie 
why even bother with the ST monad?</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Any help appreciated</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>cheers</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV></BODY></HTML>