Ответ 1
Как функции могут иметь несколько arities, вы можете иметь прямой вызов функции вместо функции currying. Затем, если у вас есть только одна арность, и вы пропустите аргумент, ошибка arity не обнаружена и вместо этого генерирует функцию currying. Очень плохой и трудный случай для отладки, особенно если функция возвращает функцию с той же заданной arity, или если функция передается как аргумент другой функции.
Таким образом, конкретное создание функции currying кажется законным.