CHANGELOG

2.0.4
  - Import Functor, Applicative, and Monad instances for Kleisli from the
    base-orphans package for future GHC 8.10 support.

2.0.3.3

  - Allow GHC 8.4 pre-releases.

2.0.3.2

  - Allow HUnit 1.5.*

2.0.3.1

  - Allow HUnit 1.4.*.
  - Fix test suite on GHC 7.4.

2.0.3

  - Support GHC 8.

2.0.2.3 to 2.0.2.4

  - Allow transformers 0.5.*.

2.0.2.2 to 2.0.2.3

  - Allow HUnit 1.3.*

2.0.2.1 to 2.0.2.2

  - Restored support for GHC 7.4.

2.0.2 to 2.0.2.1

  - Support for GHC 7.10 by widening TH dependencies.

2.0.2
  - Add `for` as a synonym for `>-` to avoid a clash with the Arrows extension.

2.0.1.1

  - Allow mtl 2.2.* and transformers 0.4.*
  - Allow template-haskell 2.9.* in test-suite

2.0.0.5 to 2.0.1

  - Widened TH dependencies.

2.0.0.4 -> 2.0.0.5
  - Add Bug-Reports url again.

2.0.0.3 -> 2.0.0.4
  - Include CHANGELOG in source distribution.

2.0.0.2 -> 2.0.0.3
  - Support GHC 7.0. Note that there seems to be a problem with the
    appicative syntax, see test cases.

2.0.0.1 -> 2.0.0.2
  - Fix deriving with data types with more than 24 fields.

2.0 -> 2.0.0.1
  - Remove warnings on generated labels with OverloadedStrings.

1.1.7.1 -> 2.0

  - Introduced polymorphic lenses.
  - Lenses are now based on getters and modifiers, not getters and setters.
  - Pure lenses are now named Total lenses.
  - Maybe lenses are now named Partial lenses.
  - Introduced Failing lenses that preserve errors.
  - Generalized Point datatype.
  - Removed unused monadic functions for partial lenses.
  - Added ArrowFail type class.
  - Added lenses for base types. (tuples, lists, Maybe, Either)
  - Isomorphisms now uses regular function space for base morphism.
  - Swapped iso for more useful inv.
  - Introduced iso to more easily lift isomorphisms into lenses.
  - Removed mainly unused bimap.
  - Added derivation of lenses as expressions.
  - Convert record declarations directly into fclabels variants.
  - Allow deriving lenses for GADTs.
  - Added reasonably sophisticated totality checker for GADT labels.
  - Derived lenses can now fail in either ArrowZero or ArrowFail.
  - Alternative instance for Point.
  - Vertical composition for multi-constructor data types.
  - Extensive test suite.
  - Fully documented.

1.1.7 -> 1.1.7.1

  - Removed unicode from cabal file to help messed up build servers.

1.1.6 -> 1.1.7

  - Fixed compilation issue on newer GHC using clang.
    Thanks to 唐鳳.

1.1.5 -> 1.1.6

  - Exposed generic TH derive function.
    Thanks to Bram Schuur.

1.1.4.3 -> 1.1.5

  - Added `modifyAndGet` helper function.
    Thanks to Nikita Volkov.

1.1.4.2 -> 1.1.4.3

  - Make compilable against Template Haskell 2.8.
    Thanks to mgsloan for the pull request.
  - Added TH derivation support for special kinded type variables.

1.1.4 -> 1.1.4.2

  - Make compilable against Template Haskell 2.8.
    Thanks to Shimuuar for the pull request.

1.1.4 -> 1.1.4.1

  - Changed infix type variables to named type variables.
    This makes fclabels compile with GHC > 7.6.
  - Added the `osi` (flipped iso) again.

1.1.3 -> 1.1.4

  - Added function to derive labels for a single datatype.

1.1.1.0 -> 1.1.2

  - Added partial set/modify versions that act as identity when the
    constructor field is not available.

1.1.1.0 -> 1.1.1.1

   - Relax dependency on transformers to include 0.3.0.0.

1.1.0.2 -> 1.1.1.0

  - Added mkLabelsWith function to derive labels with custom names.
    Thanks to Evan Laforge for the patch!

1.1.0.1 -> 1.1.0.2

  - Fixed bug in `id` definition for `Lens (~>)`.
    Thanks to yczhang89 for reporting!

1.1.0 -> 1.1.0.1

  - Relax constraint on Template Haskell for GHC 7.4.

1.0.4 -> 1.1.0

  - Fixed error in derived code in combination with -XMonoLocalBinds.
  - Lowered the priority of =: operator.
  - Added the =. operator for modification in state monads.

1.0.4 -> 1.0.5

  - Relaxed Template Haskell dependency constraint for GHC 7.4
  - Relaxed transformers dependency constraint
    Thanks to Claude Heiland-Allen

1.0.3 -> 1.0.4

  - Bugfix to compile on GHC 6.12 again.

1.0.2 -> 1.0.3

  - Deriving labels for datatypes from other modules now works also when
    imported qualified.

1.0.1 -> 1.0.2

  - Allow generating monomorphic labels.
  - Prettify type variables in TH-derived code.

1.0 -> 1.0.1

  - Some documentation cleanups.
  - Major performance improvements in setting and modifying values by
    inlining most label functions.
    Thanks to Anpheus for benchmarking!

0.11.2 -> 1.0
  - Added abstract arrow based core module.
  - Allow both pure and failing labels to be derived.
  - Major API and documentation cleanup.
  - Renamed lots of exposed function names.

0.11.1.1 -> 0.11.2

  - Relaxed Template Haskell dependency constraint for GHC 7.2
  - Removed redundant import warnings.

0.11.1 -> 0.11.1.1

  - Improved TH support for multiple constructor datatypes.

0.9.1 -> 0.11.0

  - Monadic labels now build against mtl.
  - Separate module for core/non-core code.
  - Code cleanups, especially the TH code.

0.4.2 -> 0.9.1

  - Added askM and localM for running lenses inside MonadReader.
  - Minor documentaion update.
  - Exported Point internals.
  - Renamed Label to Lens.

0.9.1 -> 0.11.0

  - Monadic labels now build against mtl.
  - Separate module for core/non-core code.
  - Code cleanups, especially the TH code.

0.4.2 -> 0.9.1

  - Added askM and localM for running lenses inside MonadReader.
  - Minor documentaion update.
  - Exported Point internals.
  - Renamed Lens to Bijection, which is more correct.
  - Renamed Label to Lens.

0.4.2 -> 0.4.3

  - Added askM and locaM for running labels inside MonadReader.

0.4.2 -> 1.0.0

  - Added askM and localM for running lenses inside MonadReader.
  - Minor documentaion update.
  - Exported Point internals.
  - Renamed Lens to Bijection, which is more correct.
  - Renamed Label to Lens.

0.4.2 -> 0.4.3

  - Added askM and locaM for running labels inside MonadReader.
  - Minor documentaion update.
  - Exported Point internals.
  - Renamed Lens to Bijection, which is more correct.
