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 (
:.:)