@kittinunf: It is me that must thank you for your work. 👏 . Now about API surface I agree 100% with you. The point is that there are two ways different users are familiar to do things. People coming from a FP background, are used to map, flatMap and so on. For all the rest, map and flatMap are not very self explanatory names for functions. So for example Kovenant itself define multiple methods doing the same thing, and this what I reproduced in my fork