Hi guys,<br>As I said in another thread, I&#39;ve been debugging a yesod application single stepping through one of the handlers. I&#39;m using ghci built in debugger and it&#39;s pretty good, but I always fail to set the breakpoint in the right scope where I can evaluate the stuff I&#39;m interested in learning more about.<br>
For instance, in the following code I would like to set the debugger on the line before &quot;mv &lt;- maybeAuth&quot;, in order to :force the values  of (uid, u). But even when I set it at the beginnig of the &#39;mv&#39; line, the scope ends up being the entire do block. Which makes sense, but doesn&#39;t helpe me solve my problem :)<br>
<br>getUserR :: String -&gt; Handler RepHtmlJson<br>getUserR input = do<br>    (uid, u) &lt;-<br>        case readIntegral input of<br>            Just uid -&gt; debugRunDB $ do<br>                u &lt;- get404 uid<br>                mun &lt;- getBy $ UniqueUsernameUser uid<br>
                case mun of<br>                    Nothing -&gt; return (uid, u)<br>                    Just (_, Username _ un) -&gt;<br>                        lift $ redirect RedirectPermanent $ UserR un<br>            Nothing -&gt; debugRunDB $ do<br>
                mun &lt;- getBy $ UniqueUsername input<br>                case mun of<br>                    Nothing -&gt; lift notFound<br>                    Just (_, Username uid _) -&gt; do<br>                        u &lt;- get404 uid<br>
                        return (uid, u)<br>    mv &lt;- maybeAuth<br><br><br>Maybe the problem is that I&#39;m thinking in a too procedural fashion about do blocks, or that evaluating those results is kind of paranoid. I&#39;m too spoiled by REPL&#39;s, I would even like to be able to use a REPL that runs inside runDB for querying models and doing stuff with them interactively.<br>
<br>How do you debug your yesod apps? am I drifting too far away from the haskell way?<br><br>thanks in advance for your comments :)<br><br>cheers<br>----nubis <br>