propagate MonadIO through the monad transformers
converting Either errors to Uncertain errors
more helpers for Uncertain computations.
Merge branch 'improve_uncertain' into develop