Added MonadError and an IO-specific lift.
ping function