@@ -4,7 +4,6 @@
44{-# LANGUAGE FlexibleInstances #-}
55{-# LANGUAGE InstanceSigs #-}
66{-# LANGUAGE MultiParamTypeClasses #-}
7−{-# LANGUAGE RankNTypes #-}
87{-# LANGUAGE OverloadedStrings #-}
98{-# LANGUAGE PolyKinds #-}
109{-# LANGUAGE ScopedTypeVariables #-}
@@ -48,6 +47,7 @@ import Servant.API ((:<|>) ((:<|>)), (:>),
4847 QueryParams, Raw,
4948 ReflectMethod (..),
5049 RemoteHost, ReqBody,
50+ ResultStream(..),
5151 Stream,
5252 Summary, ToHttpApiData,
5353 Vault, Verb,
@@ -253,21 +253,19 @@ instance OVERLAPPING_
253253 , getHeadersHList = buildHeadersTo . toList $ responseHeaders response
254254 }
255255
256−data ResultStream a = ResultStream ((forall b. (IO (Maybe (Either String a)) -> IO b) -> IO b))
257−
258256instance OVERLAPPABLE_
259257 ( RunClient m, MimeUnrender ct a, ReflectMethod method,
260258 FramingUnrender framing a, BuildFromStream a (f a)
261259 ) => HasClient m (Stream method framing ct (f a)) where
262260
263− type Client m (Stream method framing ct (f a)) = m (ResultStream a)
261+ type Client m (Stream method framing ct (f a)) = m (f a)
264262
265263 clientWithRoute _pm Proxy req = do
266264 sresp <- streamingRequest req
267265 { requestAccept = fromList [contentType (Proxy :: Proxy ct)]
268266 , requestMethod = reflectMethod (Proxy :: Proxy method)
269267 }
270− return $ ResultStream $ \k ->
268+ return . buildFromStream $ ResultStream $ \k ->
271269 runStreamingResponse sresp $ \(status,_headers,_httpversion,reader) -> do
272270 when (H.statusCode status /= 200) $ error "bad status" --fixme
273271 let unrender = unrenderFrames (Proxy :: Proxy framing) (Proxy :: Proxy a)