The basic problem:
I'm attempting to install Haskell's gtk
package using the standard mac instructions on OSX 10.10.4. Specifically, I want to run threadscope
, so I need gtk
. Early stages with homebrew
and the gtk buildtools
work fine, but when I
cabal install gtk
or use
cabal install --with-gcc=gcc-4.8 gtk
I get the following compilation error:
Graphics/UI/Gtk/Embedding/Plug.chs:120:6:
Couldn't match expected type ‘Ptr ()’
with actual type ‘Maybe DrawWindow’
In the first argument of ‘gtk_plug_new’, namely
‘(fromNativeWindowId (fromMaybe nativeWindowIdNone socketId))’
In the second argument of ‘($)’, namely
‘gtk_plug_new
(fromNativeWindowId (fromMaybe nativeWindowIdNone socketId))’
Graphics/UI/Gtk/Embedding/Plug.chs:137:6:
Couldn't match expected type ‘Ptr ()’
with actual type ‘Maybe DrawWindow’
In the second argument of ‘\ (Display arg1) arg2
-> withForeignPtr arg1
$ \ argPtr1 -> gtk_plug_new_for_display argPtr1 arg2’, namely
‘(fromNativeWindowId (fromMaybe nativeWindowIdNone socketId))’
In the second argument of ‘($)’, namely
‘(\ (Display arg1) arg2
-> withForeignPtr arg1
$ \ argPtr1 -> gtk_plug_new_for_display argPtr1 arg2)
display
(fromNativeWindowId (fromMaybe nativeWindowIdNone socketId))’
Graphics/UI/Gtk/Embedding/Plug.chs:151:3:
Couldn't match type ‘Ptr ()’ with ‘Maybe DrawWindow’
Expected type: IO (Maybe DrawWindow)
Actual type: IO (Ptr ())
In the second argument of ‘($)’, namely
‘(\ (Plug arg1)
-> withForeignPtr arg1 $ \ argPtr1 -> gtk_plug_get_id argPtr1)
(toPlug self)’
In the expression:
liftM toNativeWindowId
$ (\ (Plug arg1)
-> withForeignPtr arg1 $ \ argPtr1 -> gtk_plug_get_id argPtr1)
(toPlug self)
cabal: Error: some packages failed to install:
I previously had Haskell's gtk
library and threadscope
application installed and running before I updated my Haskell platform from ghc 7.8.4
to ghc 7.10.2
. At first I assumed an installation conflict, but I've repeatedly removed the Haskell platform from my system using the thorough removal instructions and reattempted the threadscope
installation with no success. I've even removed and re-installed the underlying gtk+
and related packages using homebrew
, again no success.
I'm not sure where the types Ptr ()
and Maybe DrawWindow
originate and therefore where the conflict could be coming from. Any ideas on what could be going wrong would be welcome!
stack install --flag gtk:have-quartz-gtk threadscope
– Laryngology