@@ -12,6 +12,9 @@ import Data.Monoid
1212import Data.Proxy
1313import Data.Text (Text)
1414import GHC.Generics
15+import Network.HTTP.Client (Manager, defaultManagerSettings,
16+ newManager)
17+import System.IO.Unsafe (unsafePerformIO)
1518import Servant.API
1619import Servant.Client
1720
@@ -55,10 +58,16 @@ instance FromJSON Package
5558hackageAPI :: Proxy HackageAPI
5659hackageAPI = Proxy
5760
61+
62+{-# NOINLINE manager #-}
63+manager :: Manager
64+manager = unsafePerformIO $ newManager defaultManagerSettings
65+
5866getUsers :: ExceptT ServantError IO [UserSummary]
5967getUser :: Username -> ExceptT ServantError IO UserDetailed
6068getPackages :: ExceptT ServantError IO [Package]
61−getUsers :<|> getUser :<|> getPackages = client hackageAPI $ BaseUrl Http "hackage.haskell.org" 80 ""
69+getUsers :<|> getUser :<|> getPackages =
70+ client hackageAPI (BaseUrl Http "hackage.haskell.org" 80 "") manager
6271
6372main :: IO ()
6473main = print =<< uselessNumbers
@@ -71,7 +80,7 @@ uselessNumbers = runExceptT $ do
7180 user <- liftIO $ do
7281 putStrLn "Enter a valid hackage username"
7382 T.getLine
74− userDetailed <- (getUser user)
83+ userDetailed <- getUser user
7584 liftIO . T.putStrLn $ user <> " maintains " <> T.pack (show (length $ groups userDetailed)) <> " packages"
7685
7786 packages <- getPackages