Codensity monad
Codensity monad
Functor:
について、right Kan extension of along :
が存在するならば、
は、monadを成す。このmonadをcodensity monad of という。
Adjunctionからのcodensity monad
特に、 がleft adjoint:
を持つとき、Adjunction lifting - PSによるright Kan extension of along :
から作ったcodensity monadは、Adjunctionからのmonad - PSそのものである。
Haskellのcodensity monad
Endからのright Kan extension - PSと(Co)Ends for free - PSにより、
なので、codensity monadが作れる。
参考文献
*1: とのmediator