On Tue, Sep 20, 2005 at 04:30:25PM +0100, Neil Mitchell wrote:
> Take a look at unsafePerformIO, it is of type IO a -> a. Its not
> particularly "safe" (the name gives a clue), but it does what you
> want.
> 
        I dont think you would ever need to do unsafePerformIO unless
you are writing some lib calls or some such thing

> >     onMouse w streams isEditChecked mouse
> >         = case mouse of
> >             MouseLeftDown pt mods  ->
> >                 if isEditChecked then
> >                     findStream w streams pt
> >                 else
> >                     addStream w streams pt
> >             other                  -> skipCurrentEvent      --

In your case the approach should be some thing along these lines


        onMouse w streams isEditChecked mouse
                = do
                        ischecked <- isEditChecked
                        case mouse of
                                if ischecked then       
                                        findStream w streams pt
                        ...

                        
        I am assuming that findStream w streams pt is of type  IO a for
some a. otherwise you might have to use something like 

        return $ findStream w streams pt
        
Also the function onMouse will return some IO something. Remember there is
no real reason to use unsafePerformIO unless you are writing  some new 
IO library call.


ppk

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to