{m : Type → Type} →
  [Monad m] →
    [MonadControlT Lean.CoreM m] →
      (Lean.Expr → m Lean.TransformStep) →
        (Lean.Expr → m Lean.TransformStep) →
          (x : STWorld IO.RealWorld m) →
            MonadLiftT (ST IO.RealWorld) m → Lean.Expr → Lean.MonadCacheT Lean.ExprStructEq Lean.Expr m Lean.Expr