Instead I recommend making `curry` idempotent.  `curry(curry(f))` -> `curry(f)`