Hello robert, Monday, July 18, 2005, 10:14:43 PM, you wrote:
rd> main = loop 0 0 0 -- initial values rd> where loop loop_num xpos ypos = rd> do e <- pollEvent rd> let xpos' = <calculate new xpos> rd> ypos' = <calculate new ypos> rd> someActionInvolvingPosition xpos' ypos' rd> when breakCondition (return ()) rd> loop (loop_num+1) xpos' ypos' the last two lines should be if breakCondition then return () else loop (loop_num+1) xpos' ypos' `when` can only conditionally execute some code, it can't be used to return from center of `do` body! -- Best regards, Bulat mailto:[EMAIL PROTECTED] _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe