getEffectiveUrl :: Curl -> IO String
getEffectiveUrl curl = do
    url <- getInfo curl EffectiveUrl
    let stringValue = case url of IString s -> s
                                  _ -> error "Curl EffectiveUrl is not a string"
    return stringValue

-- | Accesses the given URL, following any number of HTTP redirects that are
-- issued. Returns the URL at which we finally ended up.
getEffectiveUrl :: Curl -> IO String
getEffectiveUrl curl = do
    url <- getInfo curl EffectiveUrl
    let stringValue = case url of IString s -> s
                                  _ -> error "Curl EffectiveUrl is not a string"
    return stringValue

-- | Accesses the given URL, following any number of HTTP redirects that are
-- issued. Returns the URL at which we finally ended up.
getEffectiveUrl curl = do
    url <- getInfo curl EffectiveUrl
    let stringValue = case url of IString s -> s
                                  _ -> error "Curl EffectiveUrl is not a string"
    return stringValue

-- | Accesses the given URL, following any number of HTTP redirects that are
-- issued. Returns the URL at which we finally ended up.