I'm not sure if this is an actual bug, as opposed to an odd instance of defaulting: *GUI.Parser> let printQ q = runQ q >>= print *GUI.Parser> :t printQ printQ :: forall a. (Show a) => Q a -> IO () *GUI.Parser> let p = printQ *GUI.Parser> :t p p :: Q Integer -> IO () ...but I'm not sure when that would ever be the correct behavior. Abe