Refactor :search to remove code duplication and name shadowing
EitherErr Applicative for Functor-Applicative-Monad_Proposal
fix compatibility with optparse-applciative 0.10
  - the `option` API is changed
  - `execParserMaybe` is deprecated
Try symmetry of equality in :search
Fix logical error in :search's unification resolution
Annotate several top-level functions
Remove unnecessary import
Merge branch 'suhorng-master'
Merge pull request #1504 from Heather/eithererr

EitherErr Applicative for Functor-Applicative-Monad_Proposal
Merge pull request #1505 from tac-tics/top-level-annots

Annotate several top-level functions
Merge pull request #1507 from bmsherman/improveSearch

Symmetry of equality (and small fix) for :search
Add :printdef command to show the definition of a pattern-matching operation
Merge pull request #1509 from david-christiansen/patdefs-cmds

Add :printdef command to show the definition of a pattern-matching operation
PARTIAL - added more helpful error message for :exec(cute)
PARTIAL - Got a little more
PARTIAL - A wee bit more before bed
PARTIAL - 90% there...
PARTIAL - Did I say 90%... Still going
PARTIAL - Down to the last 7... also everything is broken