git.iko.soy/typeable/servant
on master help sign in
Tweak lookupResponseHeader docs
commit21af9a4051b10e0e41d2941f90539d10584f651d authorOleg Grenrus <oleg.grenrus@iki.fi> dateThu 8 Nov 2018, 18:36 (8 years ago) parentdb80f41
1 file changed+11−2
servant/src/Servant/API/ResponseHeaders.hs+11−2
servant/src/Servant/API/ResponseHeaders.hs+11−2
@@ -201,18 +201,27 @@ instance {-# OVERLAPPABLE #-} (HasResponseHeader h a rest) => HasResponseHeader
201201-- >>> let example2 = addHeader True example1 :: Headers '[Header "1st" Bool, Header "someheader" Int] String
202202-- >>> lookupResponseHeader example2 :: ResponseHeader "someheader" Int
203203-- Header 5
204+--
204205-- >>> lookupResponseHeader example2 :: ResponseHeader "1st" Bool
205206-- Header True
206207--
207208-- Usage of this function relies on an explicit type annotation of the header to be looked up.
208209-- This can be done with type annotations on the result, or with an explicit type application.
209−-- e.g.
210−-- @lookupResponseHeader \@"someheader" example2@
210+-- In this example, the type of header value is determined by the type-inference,
211+-- we only specify the name of the header:
212+--
213+-- >>> :set -XTypeApplications
214+-- >>> case lookupResponseHeader @"1st" example2 of { Header b -> b ; _ -> False }
215+-- True
216+--
217+-- @since 0.15
218+--
211219lookupResponseHeader :: (HasResponseHeader h a headers)
212220 => Headers headers r -> ResponseHeader h a
213221lookupResponseHeader = hlistLookupHeader . getHeadersHList
214222
215223-- $setup
224+-- >>> :set -XFlexibleContexts
216225-- >>> import Servant.API
217226-- >>> import Data.Aeson
218227-- >>> import Data.Text