Unapply.AuxA, idea borrowed from shapeless.
Add onF to Leibniz/Liskov, onCov/onContra to Leibniz.
Leibniz#apply
Several simplifications due to new Leibniz functions.
Test inference of new Leibniz methods.
Initial Data.Set port.

Signed-off-by: Gary Pamparà <gpampara@gmail.com>
Rename and initial tests (for laws)

Signed-off-by: Gary Pamparà <gpampara@gmail.com>
Added initial round of tests for ISet

Signed-off-by: Gary Pamparà <gpampara@gmail.com>
Remove reference to missing funciton.

Signed-off-by: Gary Pamparà <gpampara@gmail.com>
Convenient subst/lift alternatives for Leibniz, Liskov. (#640)
Add final modifier and @tailrec

Signed-off-by: Gary Pamparà <gpampara@gmail.com>
Added documentation to `map`.

The `map` function, although implemented in `ISet`, does not mean that
`ISet` is a `Functor` instance. It does not implement the required
composition law - due to the restrictions required on the `Order`
instances.

Signed-off-by: Gary Pamparà <gpampara@gmail.com>
optimize IList#take
optimize ==>>#keys, values
optimize ==>>#mapKeys
more ==>>#mapKeys test
Adds inexplicably missing filter to OptionT
avoid new function object allocation
override mapCovariant#length
Merge pull request #643 from nuttycom/optiont_filter

Adds inexplicably missing filter to OptionT