Беда в том, что
data Qslot x f = Qslot String
так что есть небольшая трудность, чтобы понять, какие x и f могут быть из данного элемента в форме Qslot "Blah blah". Возможно, со времени последней версии qthaskell прошлой осенью произошли небольшие изменения в механизме вывода, который использует GHC.
В любом случае, он, кажется, компилируется с любопытными предупреждениями, и примеры работают, если вы замените
instance (Qstt a (QDialogSc b)) => QsaSlotReject (a) where
slotReject' = (Qslot "reject()", \_ -> ())
reject' = slotReject'
с
instance (Qstt a (QDialogSc b)) => QsaSlotReject (a) where
slotReject' = (Qslot "reject()", \_ -> ())
reject' = (Qslot "reject()", \_ -> ())
Таким образом, ghc не должен удивляться совсем так много ...
Должно быть что-то, что сделало бы вещи более точными. Я не знаю, связано ли это с предупреждением о том, что эта система начинает систематически появляться позже, с этой строкой.