{m : Type → Type} →
  [inst : Monad m] →
    [MonadLiftT Lean.MetaM m] →
      [Lean.MonadEnv m] →
        [Lean.MonadOptions m] →
          [MonadFinally m] → Lean.Expr → optParam Bool true → optParam (Lean.Expr → m Lean.Expr) pure → m Lean.Expr