{m : Type → Type} →
  {α : Type} →
    [Monad m] →
      [Lean.MonadEnv m] →
        [Lean.MonadError m] →
          Lean.Expr → (Unit → m α) → (Lean.InductiveVal → List Lean.Level → Lean.ConstructorVal → m α) → m α