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>
Explicit return types for type class instances for Future/Task/Input

Works around a bug in Scala 2.10.3-RC1, which is will be fixed
shortly in https://github.com/scala/scala/pull/2860.

But it's a good practice to annotate these types in any case.
Merge pull request #466 from xuwei-k/classify-datatype-ops

classify DataTypeOps traits
Merge pull request #470 from gpampara/minimize-creation

Reuse ==>> instances if possible.
Merge pull request #477 from mpilquist/monad-state-additions

Add MonadState.{state, constantState} to parallel equivalents in StateFunctions; add basic tests
Merge pull request #478 from tomjadams/tom/intellij-deets

Added jetbrains support note
Merge pull request #479 from retronym/topic/explicit-types-for-instances

Explicit return types for type class instances for Future/Task
Merge pull request #480 from retronym/topic/imm-array

Address pattern matcher exhaustiveness warning