pytoolz/toolz — pull request #170 by eriknw (2014-05-06 15:55:26+00:00)
Title: Many improvements to `curry` based on #147 #150 #155 #159

1. Idempotent such that `curry(curry(f))` is equivalent to `curry(f)`; see #147
2. Comparable via equality and hashable based on `func`, `args`, and `keywords`;
3. `func`, `args`, and `keywords` attributes are readonly
* Important because these are used to calculate the hash
4. `__name__` and `__doc__` attributes are writable
* This allows users to customize curried objects to reflect their intended usage
5. More efficient implementation using `partial`; see #150
6. Curried objects never transmogrify into `partial` objects; see #155