Applicative
,Alternative
instances forCayley
- Removed support for GHC < 8.6
- Inverted dependency between
distributive
v1 andprofunctors
v6 Data.Profunctor.Mapping
,Data.Profunctor.Closed
,Data.Profunctor.Rep
andData.Profunctor.Sieve
have moved todistributive
to reduce orphan pressure, and shrink the core of this package.- Added
Data.Profunctor.Strong.lensVL
- Added
forall a. Functor (p a)
as a superclass ofProfunctor
to allow better interoperability withbifunctors
. - Re-export Data.Bifunctor.Functor's (:->) rather than supply our own so the two definitions do not conflict.
- Added fixpoints of ProfunctorFunctors.
- Added
instance Monoid r => Applicative (Forget r a)
. - Added a number of (co)strength instances:
MonadFix f => Costrong (Star f)
Strong p => Strong (TambaraSum p)
Costrong p => Costrong (TambaraSum p)
Strong p => Strong (PastroSum p)
(Strong p, Costrong q) => Costrong (Rift p q)
(Choice p, Cochoice q) => Cochoice (Rift p q)
(Strong p, Costrong q) => Costrong (Ran p q)
(Choice p, Cochoice q) => Cochoice (Ran p q)
(Strong p, Costrong p) => Costrong (Codensity p)
(Choice p, Cochoice p) => Cochoice (Codensity p)
(Profunctor p, Strong q) => Strong (Day p q)
(Choice p, Choice q) => Choice (Day p q)
- Added
Arrow
,ArrowChoice
, andArrowLoop
instances to all types that have appropriate (co)strength. - Added
ArrowPlus p => ArrowPlus (WrappedArrow p)
- Added other arrow instances:
MonadPlus f => ArrowZero (Star f)
MonadPlus f => ArrowPlus (Star f)
Monad f => ArrowApply (Star f)
(ArrowZero p, Profunctor p) => ArrowZero (CofreeTraversing p)
(ArrowPlus p, Profunctor p) => ArrowPlus (CofreeTraversing p)
ArrowZero p => ArrowZero (TambaraSum p)
ArrowPlus p => ArrowPlus (TambaraSum p)
(ArrowZero p, Profunctor p) => ArrowZero (Yoneda p)
(ArrowPlus p, Profunctor p) => ArrowPlus (Yoneda p)
(ArrowApply p, Profunctor p) => ArrowApply (Yoneda p)
(ArrowZero p, Profunctor p) => ArrowZero (Coyoneda p)
(ArrowPlus p, Profunctor p) => ArrowPlus (Coyoneda p)
(ArrowApply p, Profunctor p) => ArrowApply (Coyoneda p)
- Add
Semigroup
andMonoid
instances forForget
- Add
Functor
instances forPastroSum
,CopastroSum
,Environment
,FreeMapping
,Pastro
,Copastro
,FreeTraversing
, andCoyoneda
. - Explicitly mark modules as
Safe
.
- Enable the
PolyKinds
extension. The following datatypes now have polymorphic kinds:(:->)
,Cayley
,Procompose
,Rift
,ProfunctorFunctor
,Ran
,Codensity
,Prep
,Coprep
,Star
,Costar
,WrappedArrow
,Forget
. - Allow building with GHC 9.0.
- Add
Cochoice
,Costrong
,Closed
,Traversing
, andMapping
instances forCayley
. - Add
Mapping
andTraversing
instances forTannen
.
- Add
Choice
,Cochoice
,Closed
,Strong
, andCostrong
instances forData.Bifunctor.Sum
.
- Change the type of
roam
to make it actually useful. - Add a
Cochoice
instance forForget
.
- Add
wander
-like combinatorroam
toMapping
. - Remove illegal
instance Choice (Costar w)
. - Add
strong
combinator #62. - Only depend on
semigroups
before GHC 8.0. - Add
Contravariant
instances forStar
andForget
.
-
Generalize the types of
(#.)
and(.#)
. Before, they were:(#.) :: (Profunctor p, Coercible c b) => (b -> c) -> p a b -> p a c (.#) :: (Profunctor p, Coercible b a) => p b c -> (a -> b) -> p a c
Now, they are:
(#.) :: (Profunctor p, Coercible c b) => q b c -> p a b -> p a c (.#) :: (Profunctor p, Coercible b a) => p b c -> q a b -> p a c
-
Drop support for GHC < 7.8.
-
Add a
Profunctor
instance forData.Bifunctor.Sum
.
- Add
Semigroup
instances forClosure
andTambara
- Allow
base-orphans-0.6
. - Add
Traversing
instance forForget
- Add
Traversing
andMapping
instances forProcompose
- Add
Category
instance forStar
- Add
mapCayley
toData.Profunctor.Cayley
- Add
pastro
andunpastro
toData.Profunctor.Strong
. - Add
dimapWandering
,lmapWandering
, andrmapWandering
toData.Profunctor.Traversing
- Add documentation stating the laws for various profunctors.
- Introduce the
Data.Profunctor.Yoneda
module.
- Renamed
Cotambara
toTambaraChoice
andPastro
toPastroChoice
. - Added a true
Cotambara
andCopastro
construction for (co)freely generating costrength, along withCotambaraSum
andCopastroSum
variants. - Engaged in a fair bit of bikeshedding about the module structure for lesser used modules in this package.
- Added
Prep
andCoprep
along with witnesses to the adjunctionsPrep -| Star : [Hask,Hask] -> Prof
andCoprep -| Costar : [Hask,Hask]^op -> Prof
.
- Add proper support for GHC 7.0+.
instance Costrong (Cokleisli f)
.instance Cochoice (Star f)
.- Changed the instance for
Cochoice (Costar f)
.
- MINIMAL pragma for
Costrong
andCochoice
. - More
Costrong
andCochoice
instances.
- Documentation fix
UpStar
andDownStar
have becomeStar
andCostar
.Star
is analogous toKleisli
,Costar
is analogous toCokleisli
.- Split representability into sieves and representability.
- Moved
Data.Profunctor.Collage
tosemigroupoids
5, and removed thesemigroupoids
dependency. - Rather greatly widened the range of GHC versions we can support.
- Using
SafeHaskell
, GHC 7.8+Data.Profunctor.Unsafe
now infers asTrustworthy
and many more modules now infer asSafe
. - We now build warning-free on GHC 7.10.0.20150307
- Added
Coercible
constraint to (#.) and (.#) when building with GHC 7.8 Strong
is now a superclass ofRepresentable
- Updated the URL of the "Arrows are Strong Monads" paper. The old URL is now a dead link.
- Added some missing instances for
UpStar
andDownStar
.
- Removed the non law-abiding instance for
Closed (Forget r)
Forget
isRepresentable
- MINIMAL pragmas
- Avoided using 'type' in the export list, as that doesn't work on 7.4.
- Renamed
-|
toProfunctorAdjunction
because GHC 7.4 still exists in the wild. - Renamed
-/->
to:->
for the same reason. Also the former was confusing as they conflated profunctor homomorphisms and profunctors themselves.
- Flipped the order of 'Procompose'
- Added the notion of Monads and Comonads on the category of profunctors.
- Added 'Cayley' which takes normal Haskell Monads and Comonads to a 'ProfunctorMonad' and 'ProfunctorComonad' respectively. Cayley is also known as the 'static arrow' construction
- Added 'Closed' which is adjoint to 'Strong'.
- Added 'Closure' which freely adjoins 'Closed' to any 'Profunctor'.
- Added 'Tambara' which freely adjoins 'Strong' to any 'Profunctor'.
- Added 'Cotambara' which freely adjoins 'Choice' to any 'Profunctor'.
- Under the new 'Procompose' the old 'Rift' is now 'Ran', and the old 'Lift' was misnamed. It is now 'Rift'
- Added
Data.Profunctor.Lift
containing the left Kan lift of a profunctor.
- Added
assoc
toData.Profunctor.Composition
so that we have all 3 associators.
- Merged the contents of
profunctor-extras
intoprofunctors
.
- Added
instance Choice (Upstar f)
and introducedForget
.
- Renamed
Lenticular
andPrismatic
toStrong
andChoice
, and restructured them.
- Removed upper bounds on my own intra-package dependencies
- Added Documentation!
- Added
Lenticular
andPrismatic
Profunctors
- instance Profunctor Tagged
- Updated version number to match the rest of my libraries