mergeMap is equal to better known flatMap.
both of them are monadic
>>= bind operator + map (selector) for Observable type ((a -> b) -> o a -> o b).
mergeMap :: a -> (a -> o p) -> (p -> s) -> o s
mergeMap observable projector selector = map selector $ a >>= projector
mergeMap [1,2,3] (\x -> [x+x]) (\x -> (x, x - 1))
[(2,1),(4,3),(6,5)] - just assuming  is not a list type notation, but observable