2014-01-24 5 views
2

Что не следующая функция не typecheck: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 функция представляет собой упрощенный вариант от this function. Но, по-видимому, исходная функция в модуле typechecks, но приведенный выше фрагмент не работает. Почему это происходит?

ответ

Смежные вопросы