on obj sig $ do ...or if the signal handler takes any arguments:
on obj sig $ \args -> do ...
>>> :kind! Eval (((&&) `On` Fst) '( 'True, 'Nothing) '( 'False, 'Just '())) Eval (((&&) `On` Fst) '( 'True, 'Nothing) '( 'False, 'Just '())) :: Bool = 'False
>>> complement (zeroBits :: Word) == (oneBits :: Word) True
>>> complement (oneBits :: Word) == (zeroBits :: Word) True