I’m trying to compile a simple telegram api example;
{-# LANGUAGE OverloadedStrings #-}
import Network.HTTP.Client (newManager)
import Network.HTTP.Client.TLS (tlsManagerSettings)
import Web.Telegram.API.Bot
main :: IO ()
main = do
manager <- newManager tlsManagerSettings
res <- getMe token manager
case res of
Left e -> do
putStrLn "Request failed"
print e
Right Response { result = u } -> do
putStrLn "Request succeded"
print $ user_first_name u
where token = Token "bot824086589:AAESEC1deeeMdTLLg7ga4AxqY3L8sK49J2s" -- entire Token should be bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11
but I’m getting:
main.hs:11:25: error:
* Couldn't match expected type `http-client-0.6.4:Network.HTTP.Client.Types.ManagerSettings'
with actual type `http-client-0.5.14:Network.HTTP.Client.Types.ManagerSettings'
NB: `http-client-0.5.14:Network.HTTP.Client.Types.ManagerSettings'
is defined in `Network.HTTP.Client.Types'
in package `http-client-0.5.14'
`http-client-0.6.4:Network.HTTP.Client.Types.ManagerSettings'
is defined in `Network.HTTP.Client.Types'
in package `http-client-0.6.4'
* In the first argument of `newManager', namely
`tlsManagerSettings'
In a stmt of a 'do' block: manager <- newManager tlsManagerSettings
In the expression:
do { manager <- newManager tlsManagerSettings;
res <- getMe token manager;
case res of {
Left e -> do { ... }
Right (Response {result = u}) -> do { ... } } }
I think that the import isn’t specific so it imports the newest version of the library but it needs the old one. Is it possible for me to specify the version when importing? If not, then how can I delete the newest one? I don’t know how it got there, I simply did
cabal install telegram-api