Add Lars Buitinck to AUTHORS.md.  Welcome to Toolz!
Add José Ricardo to AUTHORS.md.  Welcome to Toolz!
Add Tom Prince to AUTHORS.md.  Welcome to Toolz!
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`; see #159
3. `func`, `args`, and `keywords` attributes are readonly
4. `__name__` and `__doc__` attributes are writable
5. More efficient implementation using `partial`; see #150
6. Curried objects never transmogrigy into `partial` objects; see #155
Add tests to get 100% coverage
oops.
Update parallelism.rst

s/weparate/separate/ (typo)
Merge pull request #172 from sandbender/patch-2

Update parallelism.rst
Remove unnecessary tests.
Calculate hash in `__hash__` for curry, not in `__init__`.

Also, don't return `self` from `__call__`; return a new `curry` object instead.
Pickle `curried_func.__dict__` too.
Merge pull request #168 from eriknw/authors_larsmans_josericardo

Add @larsmans, @josericardo, and @tomprince as authors
Merge pull request #170 from eriknw/curry_makeover

Many improvements to `curry` based on #147 #150 #155 #159
Add `toolz.sandbox.EqualityHashKey` as discussed in #166

`EqualityHashKey` creates a hash key that uses equality comparisons
between items, which may be used to create hash keys for otherwise
unhashable types.  The tradeoffs for using this is discussed in the
docstring.  Additional usage cases would qualify as compelling reasons
to promote `EqualityHashKey` out of the sandbox (imho).
oops python3
Fix typo
Refinements to `EqualityHashKey` including requiring a `key` argument.

The canonical purpose of `key` is to calculate a partial key hash that is
good enough.  This is *much* better than using the default hash value.

`'__default__hashkey__'` is used as the default hash value, not a random number.

Many implementation questions and discussion were added as comments to
facilitate development.
fix *toolz links in README.rst

Thanks @amontalenti !
Faster `remove` by using `filterfalse`, which was added to `compatibility`

Also, a typo (it lied!) was fixed in the documentation of `remove`

By using `filterfalse`, we modify the behavior of `remove` when `None` is
used as the predicate.  Previously, `remove(None, [0, 1, 2])` raised
`TypeError`.  Now it returns `[0]`.  If we want the former, we can add a
check for `None`.
Merge pull request #177 from eriknw/faster_remove

Faster `remove` by using `itertools.filterfalse`, which was added to `compatibility`