trait
Density[F[_], Y] extends AnyRef
Type Members
-
-
abstract
type
X
Abstract Value Members
-
abstract
def
f: (F[X]) ⇒ Y
-
abstract
val
fb: F[X]
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
-
final
def
##(): Int
-
final
def
==(arg0: Any): Boolean
-
final
def
asInstanceOf[T0]: T0
-
def
clone(): AnyRef
-
-
def
densityToAdjunction[X[_]](implicit F: Functor[F], A: Adjunction[F, X]): F[X[Y]]
-
def
densityToCoyoneda: Coyoneda[F, X]
-
def
densityToLan: Lan[F, F, Y]
-
-
-
def
finalize(): Unit
-
final
def
getClass(): Class[_]
-
def
hashCode(): Int
-
final
def
isInstanceOf[T0]: Boolean
-
def
lowerDensity(implicit C: Cobind[F]): F[Y]
-
def
map[A](fab: (Y) ⇒ A): Density[F, A]
-
-
final
def
notify(): Unit
-
final
def
notifyAll(): Unit
-
def
runDensity: Y
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
-
def
toString(): String
-
final
def
wait(): Unit
-
final
def
wait(arg0: Long, arg1: Int): Unit
-
final
def
wait(arg0: Long): Unit
Density Comonad.
Density is Left Kan Extension where both Functors are the same.
Without any restrictions on F we can define Functor, Cobind, Comonad for Density[F]. Density is Comonad for free.
http://comonad.com/reader/2011/a-product-of-an-imperfect-union/
https://hackage.haskell.org/package/kan-extensions/docs/Control-Comonad-Density.html