Scalaz Kleisli usage benefits
In scalaz Kleisli[M[_], A, B] is a wrapper of A => M[B] , which allows composition of such functions. For instance, if M[_] is monad I can compose Kleisli[M, A, B] and Kleisli[M, B, C] with >=> to get Kleisli[M, A, C] . In a nutshell, Kleisli provides fancy andThens depending on M . Is it correct ? Are there other benefits of using Kleisli ? Travis Brown Here are two benefits as examples—I'm sure you could come up with others. First, it can be useful to abstract over different arrows, such as Kleisli[M, ?, ?] and ? => ? . For example, I can write a generic function that will apply an