/- Copyright (c) 2018 Microsoft Corporation. All rights reserved. Released under Apache 2.0 license as described in the file LICENSE. Authors: Leonardo de Moura -/ prelude import init.core namespace lean /-- For functions `f` with more than `closure_max_args`, we need to generate a curried version ``` obj* f_curried(obj** args) { return f(args[0], args[1], ..., args[n-1]); } ``` The curried version is used when a closure for `f` is created. Remark: whenever the value of this constant is modified, we have to regenerate `src/util/apply.cpp` and `src/util/apply.h` using the meta program `gen/apply.lean`. -/ def closure_max_args := 16 end lean