Delete freeEqual
Make Gosub constructor private

Exposing these allow us to observe differences because of the reified
bind/flatMap, which then break the monad laws.
Add Maybe (alternative to Option)
Use normal case classes for Empty and Just
Add Option <~> Maybe
Update Maybe ScalaDoc

Note about jumping through Scala hoops removed since the Just and Empty
case classes are now exposed
Add toMaybe syntax for Option
Add some Maybe methods
Add Maybe syntax

Ex: 1.just
Move Empty and Just declarations into Maybe object

Per contributor guidelines for data structure name-spacing
Add toThese to disjunction
Add docs for some Maybe methods
Merge pull request #728 from ceedubs/call-me-maybe

Maybe
Merge pull request #729 from nathanlubchenco/to_these

Add toThese to disjunction
Merge pull request #725 from puffnfresh/free-laws

Free laws
use abstract type member. avoid Any in Free#resume and Free#flatMap