Based on types, this is a good use of liftIO . liftIO is of type MonadIO m => IO a -> ma , so it can be used as follows:
liftIO (print "debug message 1")
The type of this expression may be UI () , since the UI is an instance of MonadIO , and print "debug message 1" is of type IO () .
source share