В Scalaz
-
Kleisli[F, A, B]
является оберткой дляA => F[B]
. -
ReaderT[F, A, B]
- преобразователь монада-конвертера - это просто псевдонимKleisli[F, A, B]
. -
Reader[A, B]
Монада - это специализацияReaderT
с тождеством monadId
:type Reader[A, B] = ReaderT[Id, A, B]
.
Это просто совпадение или есть некоторые более глубокие причины, по которым Kleisli
, ReaderT
и Reader
являются изоморфными в Scalaz?