Допустим, у меня есть две функции val f: A => M[B]
и val g: B => M[C]
, где M — монадический. Таким образом, я хочу объединить их, используя kleisli. В настоящее время я делаю следующее: kleisliU(f) andThenK g
Но я не нашел способа выполнить эту комбинацию без предварительного ручного переноса в kleisli.
Как можно написать что-то вроде f <???> g
, чтобы f
автоматически заворачивалось в клейсли, а потом объединялось с g
? Я надеюсь, что что-то в scalaz для этого уже существует и что мне не нужно писать свой собственный неявный класс/преобразование.
Просто для полноты, это также должно работать с большим количеством функций, например. f <???> g <???> h
.