kan-extensions has Ran and Lan but profunctors only has Ran. Together Procompose, Ran and Lan form a biclosed monoidal category structure on :->. Instead of a single internal hom, because Procompose is not symmetric, it has a left and right residual. I think Lan should be included in profunctors.
newtype Lan p q a b = Lan { runLan :: forall y. p b y -> q a y }
Oh shoot, I just realized this is Rift, the right Kan lift type which is in Data.Profunctor.Procompose, duh. Maybe some of the functions are still useful?
kan-extensions
hasRan
andLan
butprofunctors
only hasRan
. TogetherProcompose
,Ran
andLan
form a biclosed monoidal category structure on:->
. Instead of a single internal hom, becauseProcompose
is not symmetric, it has a left and right residual. I thinkLan
should be included inprofunctors
.