import Control.Monad (ap)
hello :: Maybe String
= (++) <$> (Just "Hello, ") <*> (Just "world!") hello
hello' :: Maybe String
= do
hello' <- Just (++)
f <- Just "Hello, "
x <- Just "world!"
y return $ f x y
main :: IO ()
= do
main putStrLn $ show hello