Leonardo Borges has written an excellent post called "Functional Composition With Monads, Kleislis and Functors".
In it he comments:
Mark pointed out to me that lift is pretty much the same as map but with the arguments reversed.
This means that this:
val f = Functor[Option].lift(parts) compose make
can be refactored to:
val g = make(_:Int).map(parts)
My question is,What does it mean that 'lift is pretty much the same as map?'