 --   caller is responsible for calling 'busRemoveSignalWatch' as many
 --   times.
 busAddSignalWatch :: BusClass busT
-                  => busT
-                  -> Priority
+                  => busT     -- ^ @bus@ - a 'Bus'
+                  -> Priority -- ^ @priority@ - the priority of the watch
                   -> IO ()
 busAddSignalWatch bus priority =
     {# call bus_add_signal_watch_full #} (toBus bus) $ fromIntegral priority
 
 -- | Remove the signal watch that was added with 'busAddSignalWatch'.
 busRemoveSignalWatch :: BusClass busT
-                     => busT
+                     => busT  -- ^ @bus@ - a 'Bus'
                      -> IO ()
 busRemoveSignalWatch =
     {# call bus_remove_signal_watch #} . toBus

    makeBusSyncHandler :: CBusSyncHandler
                       -> IO {# type GstBusSyncHandler #}

-- the following mess is necessary to clean up safely after busSetSyncHandler.
-- gstreamer doesn't give us a nice way to do this (such as a DestroyNotify)
weakNotifyQuark, funPtrQuark :: Quark
weakNotifyQuark = unsafePerformIO $ quarkFromString "Gtk2HS::SyncHandlerWeakNotify"
funPtrQuark = unsafePerformIO $ quarkFromString "Gtk2HS::SyncHandlerFunPtr"

--   of whatever object posted the message; the 'busMessage' signal is
--   marshalled to the main thread via the main loop.
busEnableSyncMessageEmission :: BusClass busT
                             => busT  -- ^ @bus@ - a 'Bus'
                             -> IO ()
busEnableSyncMessageEmission =
    {# call bus_enable_sync_message_emission #} . toBus
