Thank you for your response, however if I can't do that, why can the example of wxHaskell do that?
 
I refer to the following code inside http://darcs.haskell.org/wxhaskell/samples/wx/ (ImageViewer.hs)
 
Line 99 untill 110
 
    openImage sw vbitmap mclose status fname
      = do -- load the new bitmap
           bm <- bitmapCreateFromFile fname  -- can fail with exception
           closeImage vbitmap
           set vbitmap [value := Just bm]
           set mclose [enabled := True]
           set status [text := fname]
           -- reset the scrollbars
           bmsize <- get bm size
           set sw [virtualSize := bmsize]
           repaint sw
       `catch` \err -> repaint sw
 
if I'm correct the openImage is also defined in the where clause. Therefor by what I think it should not be possible, but it is.
 
Thanks for everything.
 
 


 
2009/4/17 Lennart Augustsson <lennart@augustsson.net>
Variables bound in the do block are not in scope in the where.
Use a let inside the do for onOpen instead.

On Thu, Apr 16, 2009 at 11:53 PM, Tsunkiet Man <temp.tsun@gmail.com> wrote:
> Hello,
>
> I'm trying to create a GUI by using wxHaskell. However I get the weird error
> message of "Not in scope "dt"", well so I sorted them so that my so called
> "dt" was in scope, however it failed. Can someone please tell me how I can
> solve this error?
>
>            ... A lot of code that is not relevant in my opinion, if I'm
> wrong please correct me and I will post my full code
>
>             --Debug text --
>             dt <- staticText f [text := "Hello world!"]
>
>             imagePanel <- panel f [position := Point 2 2, clientSize := Size
> 100 100, tooltip := "This is a drawPanel", bgcolor := rgb 255 255 255]
>             set f [ clientSize := Size 700 500,
>                     menuBar := [mFile, mHelp],
>                     visible := True,
>                     on (menu exit) := close f,
>                     on (menu open) := onOpen f vFile ]
>
>
>             return ()
>
>             where
>                 onOpen :: Frame a -> Var b -> IO ()
>                 onOpen frame var = do   file <- fileOpenDialog frame False
> True "Open File" [("PGM bestanden (*.pgm)",["*.pgm"]),("Alle bestanden
> (*.*)",["*.*"])] "" ""
>                                         case file of
>                                             Nothing ->      return ()
>                                             Just file ->    set dt [text :=
> "HELLO"]
>                                                             return ()
>
> Thank you for your help, I really owe haskell-cafe.
>
> Greetings Tsunkiet Man
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe@haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
>