A supervisor monad that explore the execution tree of an internal monad. It can inject new behaviours for backtracking, trace generation, testing, transaction rollbacks etc