Transform immediately apparent traverse laws into traverse1 laws.
Test traverse1 laws on Nel, Tree theoretically in future.
Merge branch 'scalaz-seven' of git://github.com/scalaz/scalaz into topic/traverse1-laws
Test traverse while testing traverse1.
Merge remote-tracking branch 'origin/scalaz-seven' into topic/foldable-laws
Foldable laws, just consistency really.
Laws about bias, which is not free, in fold1s.
Include functor & foldable laws for when checking traverse.
Test Foldable[Set].
Test traverse1 laws on OneAnd[*..].
Maybe missed law enforcement.
Make the private Functor[Pair] a lazy val.
classify DataTypeOps traits
Reuse instances if possible.

The Tip constructor is often pattern matched and can just be used as the
return value instead of using a constructor. Also favor the use of
`empty` over `Tip()`.

Signed-off-by: Gary Pamparà <gpampara@gmail.com>
Cleanup usage in the case of ⊥

Additionally hide some constants needed for internal housekeeping.

Signed-off-by: Gary Pamparà <gpampara@gmail.com>
Apply a trick suggested by @xuwei-k

Signed-off-by: Gary Pamparà <gpampara@gmail.com>
added jetbrains support note
Add MonadState.{state, constantState} to parallel equivalents in StateFunctions; add basic tests
Address pattern matcher exhaustiveness warning

By placing the sealed descendents in a module, rather
than in a trait.

This won't be binary compatible.
More cleanup, aiding readability.

Signed-off-by: Gary Pamparà <gpampara@gmail.com>