
Martin DeMello wrote:
Code here: http://zem.novylen.net/anagrid.html
I've got an instance of IO appearing unexpectedly and I can't figure out where from. It throws up the following error:
$ ghc --make test.hs Chasing modules from: test.hs Compiling Main ( test.hs, test.o )
test.hs:38:15: Couldn't match `StaticText ()' against `IO (StaticText ())' Expected type: StaticText () Inferred type: IO (StaticText ()) In the application `staticText p [text := (labelText a b)]' In the definition of `textOf': textOf p a b = staticText p [text := (labelText a b)]
According to the http://wxhaskell.sourceforge.net/doc/Graphics.UI.WX.Controls.html page, "staticText" has the type signature "Window a -> [Prop (StaticText ())] -> IO (StaticText ())". Your textOf function has the type signature "Panel () -> String -> Anagrams -> StaticText ()". Your textOf *definition*, therefore, something of type "StaticText()" left side and type "IO (StaticText ())" on the right. The compiler doesn't like that.