@@ -42,7 +42,7 @@ import Control.Applicative
42import Data.Monoid ((<>))
42import Data.Monoid ((<>))
43import qualified Data.Set as Set
43import qualified Data.Set as Set
44import qualified Data.Text.Encoding as E
44import qualified Data.Text.Encoding as E
45−import Data.CaseInsensitive (mk)
45+import qualified Data.CaseInsensitive as CI
46import Data.Functor.Identity
46import Data.Functor.Identity
47import Data.Proxy (Proxy (..))
47import Data.Proxy (Proxy (..))
48import qualified Data.Map as Map
48import qualified Data.Map as Map
@@ -226,22 +226,26 @@ instance {-# OVERLAPPING #-}
227toHeaders :: BuildHeadersTo ls => ReqResult tag a -> ReqResult tag (Headers ls a)
227toHeaders :: BuildHeadersTo ls => ReqResult tag a -> ReqResult tag (Headers ls a)
228toHeaders r =
228toHeaders r =
229− let toBS = E.encodeUtf8
230− hdrs = maybe []
229+ let hdrs = maybe []
231− (\xhr -> fmap (\(h,v) -> (mk (toBS h), toBS v))
230+ (\xhr -> fmap (\(h,v) -> (CI.map E.encodeUtf8 h, E.encodeUtf8 v))
232 (Map.toList $ _xhrResponse_headers xhr))
231 (Map.toList $ _xhrResponse_headers xhr))
233 (response r)
232 (response r)
234 in ffor r $ \a -> Headers {getResponse = a ,getHeadersHList = buildHeadersTo hdrs}
233 in ffor r $ \a -> Headers {getResponse = a ,getHeadersHList = buildHeadersTo hdrs}
236class BuildHeaderKeysTo hs where
236class BuildHeaderKeysTo hs where
237− buildHeaderKeysTo :: Proxy hs -> [T.Text]
237+ buildHeaderKeysTo :: Proxy hs -> [CI.CI T.Text]
239instance {-# OVERLAPPABLE #-} BuildHeaderKeysTo '[]
239instance {-# OVERLAPPABLE #-} BuildHeaderKeysTo '[]
240 where buildHeaderKeysTo _ = []
240 where buildHeaderKeysTo _ = []
242instance {-# OVERLAPPABLE #-} (BuildHeaderKeysTo xs, KnownSymbol h)
242instance {-# OVERLAPPABLE #-} (BuildHeaderKeysTo xs, KnownSymbol h)
243 => BuildHeaderKeysTo ((Header h v) ': xs) where
243 => BuildHeaderKeysTo ((Header h v) ': xs) where
244+ buildHeaderKeysTo _ =
246+ thisKey = CI.mk $ T.pack (symbolVal (Proxy :: Proxy h))
244− buildHeaderKeysTo _ = T.pack (symbolVal (Proxy :: Proxy h)) : buildHeaderKeysTo (Proxy :: Proxy xs)
247+ in thisKey : buildHeaderKeysTo (Proxy :: Proxy xs)
246-- HEADERS Verb (Content) --
250-- HEADERS Verb (Content) --
247-- Headers combinator not treated in fully general case,
251-- Headers combinator not treated in fully general case,