0.11.0 (2021-02-23):
    - Made Unifiable derivable whenever we have a Generic1 instance.
      (h/t/ Roman Cheplyaka)
    - Removed the Alternative/MonadPlus instances for UTerm, because
      they're unlawful.
    - Added NOINLINE for Fix's Eq and Ord instances, to avoid an
      inliner bug affecting GHC 8.0.1 and 8.0.2 (fixed in 8.0.3)
      <https://ghc.haskell.org/trac/ghc/ticket/13081>
    - HOTFIX: added logict < 0.7.1 upper bound to avoid breakage.
      Will add a proper fix in the future. For more details see,
      <https://github.com/Bodigrim/logict/issues/20#issuecomment-774528439>
0.10.0.1 (2015-05-30):
    - Moved VERSION to CHANGELOG
0.10.0 (2015-03-29):
    - Cleaned up things to compile cleanly for GHC 7.10
    - Cleaned up deprecation warnings re Control.Monad.Error
    - Control.Monad.EitherK: liberalized Monad restriction to
      Applicative where possible.
    - Control.Monad.MaybeK: liberalized Monad restriction to
      Applicative where possible.
    - Control.Unification.Types: Completely revamped the old
      UnificationFailure data type as the new UFailure data type
      and Fallible type class.
0.9.0 (2014-06-03):
    - Control.Unification.Types: changed the fundeps on BindingMonad
      and RankedBindingMonad so that things compile under GHC 7.8.2
    - Data.Functor.Fixedpoint: eta-expanded RULES to avoid GHC >=
      7.8 warnings about them potentially not firing due to (.)
      being inlined first.
0.8.1 (2014-05-27):
    - Control.Unification.Types: added Functor, Foldable, and
      Traversable instances for UnificationFailure. (h/t Graham Rogers)
0.8.0 (2012-07-11):
    - Control.Unification.Types: Changed the type of Unifiable.zipMatch
0.7.0 (2012-03-19):
    - Renamed MutTerm to UTerm (and MutVar to UVar)
    - Replaced the Variable.eqVar method by plain old Eq.(==)
    - Control.Unification: added getFreeVarsAll, applyBindingsAll,
      freshenAll
    - Swapped type argument order for MutTerm, so that it can be a
      functor etc. Also changed BindingMonad, UnificationFailure,
      Rank, and RankedBindingMonad for consistency.
0.6.0 (2012-02-17):
    - Removed the phantom type argument for Variables.
0.5.0 (2011-07-12):
    - Moved UnificationFailure to Control.Unification.Types
    - Renamed NonUnifiable to TermMismatch
    - Control.Unification: exposed fullprune, semiprune, occursIn
    - Control.Unification: added unifyOccurs, subsumes
    - Control.Unification: (re)added symbolic names for binary operators
0.4.0 (2011-07-07):
    - Removed heterogeneous unification, and rewrote practically everything.
    - Added semipruning instead of full pruning.
    - Added visited-sets instead of occurs-checks.
    - Added weightedness to path compression (a la union--find).
    - This is the version emailed for the 2011-07-07 talk at McMaster.
0.3.6 (2011-06-18):
    - Forked from the Dyna2 project.