Hey Justin,
Thanks for replying. I tried your suggestion, and commented out the line
in gtk.cabal. Unfortunately it now fails with the error below. Again, I'm not really sure
how to proceed here, so any help would be much appreciated!
Thanks,
Dan

Configuring gtk-0.10.5...
Warning: 'license: LGPL-2.1' is not a recognised license.
Preprocessing library gtk-0.10.5...
Building gtk-0.10.5...
[100 of 170] Compiling Graphics.UI.Gtk.Embedding.Plug ( dist\build\Graphics\UI\Gtk\Embedding\Plug.hs, dist\build\Graphics\UI\Gtk\Embedding\Plug.o )

Graphics\UI\Gtk\Embedding\Plug.chs:149:5:
    Couldn't match expected type `Ptr ()' against inferred type `Plug'
    In the first argument of `gtk_plug_get_id', namely `(toPlug self)'
    In the second argument of `($)', namely
        `gtk_plug_get_id (toPlug self)'
    In the expression:
          liftM toNativeWindowId $ gtk_plug_get_id (toPlug self)

Graphics\UI\Gtk\Embedding\Plug.chs:161:5:
    Couldn't match expected type `Ptr ()' against inferred type `Plug'
    In the first argument of `gtk_plug_get_embedded', namely
        `(toPlug self)'
    In the second argument of `($)', namely
        `gtk_plug_get_embedded (toPlug self)'
    In the expression:
          liftM toBool $ gtk_plug_get_embedded (toPlug self)

Graphics\UI\Gtk\Embedding\Plug.chs:172:5:
    Couldn't match expected type `Ptr ()' against inferred type `Plug'
    In the first argument of `gtk_plug_get_socket_window', namely
        `(toPlug self)'
    In the second argument of `($)', namely
        `gtk_plug_get_socket_window (toPlug self)'
    In the expression:
          maybeNull (makeNewGObject mkDrawWindow)
        $ gtk_plug_get_socket_window (toPlug self)
Resolving dependencies...
cabal.exe: Error: some packages failed to install:
gtk-0.10.5 failed during the building phase. The exception was:
exit: ExitFailure 1



You will need to edit gtk.cabal at the line:

        if !os(windows)
         x-Types-Tag: plugNsocket

I am not sure what the correct way to edit it is, but for now you can just comment out the 'if !os(windows)' and it should build.

The bindings only build Graphics.UI.Gtk.Embedding on windows if the gtk dev libraries are greater than 2.8 - which is definitely going to be the case for most users, but cabal doesn't check for this case. I do not know how to make it so it does, so I'll leave it to the devs to propose the right solution. :)