В 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?