<div dir="ltr">Hi,<br><br>On Github, Jeremy O'Donoghue provides wx example code. From his collection I am trying to modify Layout.hs [1] to permit a variable number, rather than a fixed number, of text entry boxes. I shrank the program, mostly by removing features, until it was this:<br><br>  main = start $ do<br>    f      <- frame  [text := "Layout test"]<br>    p      <- panel  f []<br>    xinput <- textEntry p [text := "100"]<br>    yinput <- textEntry p [text := "100"]<br>    myVar <- varCreate [xinput,yinput]<br>    set f [ layout := container p $ margin 10 $<br>      column 5 [boxed "coordinates" (grid 5 5<br>          [[hfill $ widget xinput], [hfill $ widget yinput]] -- replacing<br>        ) ] ]                                          <br>    return ()<br><br>I want to replace the line marked "replacing". Rather than hard-coding the number of text entry boxes (2), I want it to deal with a mutable collection of them, in myVar.<br><br>I tried this:<br>  [ fmap (\e -> hfill $ widget e) $ varGet myVar ]<br>and got this error: <br>  Layout.hs:23:11:<br>      Couldn't match type `IO' with `[]'<br>      Expected type: [Layout]<br>        Actual type: IO Layout<br>      In the expression: fmap (\ e -> hfill $ widget e) $ varGet myVar<br>      In the third argument of `grid', namely<br>        `[fmap (\ e -> hfill $ widget e) $ varGet myVar]'<br>      In the second argument of `boxed', namely<br>        `(grid 5 5 [fmap (\ e -> hfill $ widget e) $ varGet myVar])'<br><br>So then I tried something I thought would be equivalent:<br>  [[ (hfill $ widget e) | e <- (varGet myVar)]]<br>and got a different error:<br>  Layout.hs:23:39:<br>      Couldn't match expected type `[w0]'<br>                  with actual type `IO [TextCtrl ()]'<br>      In the return type of a call of `varGet'<br>      In the expression: (varGet myVar)<br>      In a stmt of a list comprehension: e <- (varGet myVar)<br><br>I kind of understand the problem is that when I varGet myVar, I end up with type IO Layout, rather than type Layout, but I don't know what to do about it.<br><br>Thanks,<br>Jeff<br><br><br>[1] <a href="https://github.com/jodonoghue/wxHaskell/blob/master/samples/wx/Layout.hs">https://github.com/jodonoghue/wxHaskell/blob/master/samples/wx/Layout.hs</a><br></div>