decoupling monad transformer instances
agent program transformation