arrow-core / arrow.core.extensions / Tuple2Monad / tailRecM
open fun <A, B> tailRecM(a: A, f: (A) -> Tuple2Of<F, Either<A, B>>): Tuple2<F, B>
Do you like Arrow?