hello,

I am starting with Haskell and trying some little exercices on my own. I successfully implemented a reverse polish notation evaluator and I want to improve it a little using Maybe

All i want is to implement  a function that can returned available functions according to its string name
i.e return (+) when gived "+"
I also want to return Nothing if the operation is not available (not implemented yet). 
So my function should Maybe return a (float -> float -> float)

My current implementation is 

operation :: String -> Maybe Float -> Float -> Float
operation op 
   | op == "+" = Just (+)
   | op == "-" = Just (-)
   | op == "*" = Just (*)
   | op == "/" = Just (/)
   | otherwise = Nothing

but it failed to compile with the following error : 

rpn.hs:64:18:
    Couldn't match expected type `Maybe Float -> Float -> Float'
                with actual type `Maybe a0'
    In the expression: Nothing
    In an equation for `operation':
        operation op
          | op == "+" = Just (+)
          | op == "-" = Just (-)
          | op == "*" = Just (*)
          | op == "/" = Just (/)
          | otherwise = Nothing


I don't understand the error :( Do I have to explicitly type the Nothing return ? 

Could you guide me to a solution or explain me what I am doing wrong, please ?

Thanks in advance

Olivier