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
Support uniqueness types when executing IO actions in REPL
Add test for basic REPL commands
Fix for language-java 0.2.7
Merge pull request #1511 from tac-tics/basic-repl-test

Add test for basic REPL commands
Merge pull request #1510 from soimort/uniqueness-execute

Support uniqueness types when executing IO actions in REPL
Install newer alex from Hackage for tests
Merge branch 'RyanGlScott-master'