# 0.1.1 * Define `Invariant` type class * Functors composition is just a type synonymous * `Control.Functor.Composition` -> `Control.Functor` # 0.1.2 * Define `Adjoint` type class * `Control.Functor` -> `Control.Functor.Composition` * Move all composition-based classes into Composition module * Define laws for all classes, except `Pointable`, `Exclusive` and `Extractable` # 0.1.3 * Define `I`, `II` and `III` to able make instances * Add `Identity` and `Constant` cases of functors * Weaken `Adjoint` type class requirements * Move all newtype wrappers to `Basic` module # 0.1.4 * Add `Kleisli` and `Cokleisli` methods to `Bindable` and `Extendable` classes * Create supermodule `Control.Functor` that exports everything from this library * Remove `Composition` folder from classes modules * Move `Basic` functors to `Data.Functor` module # 0.1.5 * `Control.Functor.Composition` -> `Control.Variance` * Define `Yoneda` lemma as datatype * Define `Liftable` and `Lowerable` classes * `Control.Transformation.Natural` -> `Data.Functor.Transformation.Natural` * Sort modules in `Control` by variance, on composition and transformations # 0.1.6 * Define left and right `Kan` extensions, `Codensity` * Define open product type (`Data.Functor.Product`) * Define `Straight` and `Opposite` arrow types * Add `Bi`-, `Tri`-, `Quad`- covariant and contravariant functors * Define `Provariant` and `Orpvariant` # 0.1.7 * Redefine `Kan` extensions: make them newtypes without existential variables * Redefine `Codensity`: make newtype without existential variables * Define `Product` instance of `Comonad` * Define type operators for `Straight` and `Opposite` datatypes * Fix functors composition type operator (`:.:`)