Am 07.09.2013 um 10:01 schrieb Emmanuel Touzery <etouzery@gmail.com>:

I got an helpful answer on stackoverflow that probably explains it all. Otherwise if i add the type, i'll have to bind it to a concrete monad due to the lack of typeclasses, that's why i didn't put a type. Thanks again.

Ok, that explains a lot.

But if you need this kind of operation a lot, you could still have something like:

liftMaybe2 :: (a -> b -> c) -> Maybe a -> Maybe b ->  Maybe c
liftMaybe2 f (Just a) (Just b) = Just $ f a b
liftMaybe2 _ _ _                    = Nothing


Greetings,
Daniel