{α : Type} →
  (motive : EStateM.Result Lean.MetavarContext.MkBinding.Exception Lean.MetavarContext.MkBinding.State α → Sort u_1) →
    (x : EStateM.Result Lean.MetavarContext.MkBinding.Exception Lean.MetavarContext.MkBinding.State α) →
      ((e : α) → (sNew : Lean.MetavarContext.MkBinding.State) → motive (EStateM.Result.ok e sNew)) →
        ((mctx : Lean.MetavarContext) →
            (lctx : Lean.LocalContext) →
              (toRevert : Array Lean.Expr) →
                (varName : String) →
                  (sNew : Lean.MetavarContext.MkBinding.State) →
                    motive
                      (EStateM.Result.error
                        (Lean.MetavarContext.MkBinding.Exception.revertFailure mctx lctx toRevert varName) sNew)) →
          motive x