RequestBody применяется к слишком большому количеству аргументов типа

Что не делает следующая функция, не проверяет тип:

import qualified Control.Exception as E
import Data.Conduit (ResourceT)
import Network.HTTP.Types (Method, Status(..))
import Network.HTTP.Conduit
import qualified Data.ByteString.Lazy.Char8 as LBS

doHttps :: Method -> String
        -> Maybe (RequestBody (ResourceT IO))
        -> IO (Either E.SomeException (Response LBS.ByteString))
doHttps reqMethod url body = undefined

Выдает следующую ошибку:

RequestBody is applied to too many type arguments
    In the type signature for `doHttps':
      doHttps :: Method
                 -> String
                    -> Maybe (RequestBody (ResourceT IO))
                       -> IO (Either E.SomeException (Response LBS.ByteString))
Failed, modules loaded: none.

doHttps Функция является упрощенной версией этой функции. Но, видимо, оригинальная функция в проверке типов модуля, но приведенный фрагмент не работает. Почему это происходит?

1 ответ

Решение

Различные версии библиотеки http-проводника. В версии 1.* RequestBody принял аргумент типа:

http://hackage.haskell.org/package/http-conduit-1.9.6/docs/Network-HTTP-Conduit.html

Однако в версии 2.* он не принимает аргумент типа:

http://hackage.haskell.org/package/http-conduit-2.0.0/docs/Network-HTTP-Conduit.html

Другие вопросы по тегам