extraSimpleHTTP in HaskellsimpleHTTP is simple. But can the simple common case be made even simpler? Sure!
import Network.HTTP
import Network.URI
extraSimpleHTTP :: URI -> IO (Response String)
extraSimpleHTTP uri = (simpleHTTP $ mkRequest GET uri) >>= handleError
where handleError = either (fail . show) return
You don’t have to create the request value yourself and you don’t have to handle possible errors any longer (since that is left to IO’s fail).
The signature String -> IO (Response String) would arguably be even simpler, but not as clear.