return type of bind incorrect.

can now do things like:

(Just 1) >>= (\x -> (Nothing >>= (\y -> return(x + y))))