Is there a built-in function with signature :: (Monad m) => m a -> a ?
:: (Monad m) => m a -> a
Hoogle tells that there is no such function.
Can you explain why?<
Well, technicaly there is unsafePerformIO for the IO monad.
But, as the name itself suggests, this function is evil and you should only use it if you really know what you are doing (and if you have to ask wether you know or not then you don't)