[Haskell-beginners] help with type error in a wxHaskell program

Jason J. Corso jjcorso at eecs.umich.edu
Sun Nov 22 11:37:02 UTC 2015


Thank you both for the help.  There was another mistake after this
piece.  The let s = map... led to a [IO (StaticText())] and it had to
be changed as below.  The below code works.  Thanks again.

module Main where
import Graphics.UI.WX
main :: IO ()
main
    = start gui
gui :: IO ()
gui = do
        f <- frame [text := "First Fix!"]
        ss <- mapM (\t -> staticText f [text := show t]) [1..10]
        set f [layout := margin 10 ( row 2 $ map (\x -> (widget x)) ss)]


Jason



On Sat, Nov 21, 2015 at 10:52 PM, Kim-Ee Yeoh <ky3 at atamo.com> wrote:
>
> On Sat, Nov 21, 2015 at 8:28 PM, Jason J. Corso <jjcorso at eecs.umich.edu>
> wrote:
>>
>> But, I get a type error that I do not understand
>>
>>     Couldn't match expected type ‘IO (Window a0)’
>>                 with actual type ‘[Prop (Frame ())] -> IO (Frame ())’
>>     Probable cause: ‘frame’ is applied to too few arguments
>
>
> This is a consequence of the line "f <- frame" in
>
> gui :: IO ()
> gui = do
>         f <- frame
>         let s = map (\t -> staticText f [text := show t]) [1..10]
>         set f [layout := margin 10 ( row 2 $ map (\x -> (widget x)) s)]
>
> I have no experience at all with wxHaskell. But for the sake of forward
> motion, substituting with "f <- frame []" should work.
>
> -- Kim-Ee
>
> _______________________________________________
> Beginners mailing list
> Beginners at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
>


More information about the Beginners mailing list