What is the proper way to use the "ap" monad in Haskell? I want to do something similar to this:
main = (putStr . ap (++) show) "main = (putStr . ap (++) show) "
but I get the error "Not in scope: 'ap'."
Using "import Control.Monad" does nothing. And I have tried giving it
"ap :: Monad m => m (a -> b) -> m a -> m b"
then I get "The type signature for `ap' lacks an accompanying binding"