 --   'busEnableSyncMessageEmission' were "cancelled" by
 --   calling this function.
 busDisableSyncMessageEmission :: BusClass busT
-                              => busT
+                              => busT  -- ^ @bus@ - a 'Bus'
                               -> IO ()
 busDisableSyncMessageEmission =
     {# call bus_disable_sync_message_emission #} . toBus

--   whenever a message is on the bus. After the signal is dispatched,
--   the message is popped off the bus.
busCreateWatch :: BusClass busT
               => busT
               -> IO Source
busCreateWatch bus =
    liftM Source $ {# call bus_create_watch #} (toBus bus) >>=
        flip newForeignPtr sourceFinalizer


-- | Use a synchronous message handler that converts all messages to signals.
busUseSyncSignalHandler :: BusClass busT
                        => busT  -- ^ @bus@ - a 'Bus'
                        -> IO ()
busUseSyncSignalHandler bus = do
  objectWithLock bus $ do
