{m : Type → Type u_1} →
  {α : Type} →
    [Nonempty (m α)] →
      [Monad m] →
        [MonadLiftT Lean.MetaM m] →
          [MonadControlT Lean.MetaM m] →
            Lean.Expr → List Lean.FVarId → (List Lean.FVarId → m α) → (Lean.Expr → List Lean.FVarId → m α) → m α