newEvent :: (MonadIO f, MonadIO g) => f (E a,H g a)
newEvent = do
  (e,h) <- liftIO Core.newEvent
  return (e,liftIO . h)
newEvent :: (MonadIO f, MonadIO g) => f (E a,H g a)
newEvent = do
  (e,h) <- liftIO Core.newEvent
  return (e,liftIO . h)
newEvent = do
  (e,h) <- liftIO Core.newEvent
  return (e,liftIO . h)