 * If the URI contains "user:pass@" part, use it for Basic Authorization
 * Add a test harness.
 * Don't leak a socket when getHostAddr throws an exception.
 * Send cookies in request format, not response format.
 * Moved BrowserAction to be a StateT IO, with instances for
   Applicative, MonadIO, MonadState.
 * Add method to control size of connection pool.
 * Consider both host and port when reusing connections.
 * Handle response code 304 "not modified" properly.
 * Fix digest authentication by fixing md5 output string rep.
 * Make the default user agent string follow the package version.
 * Document lack of HTTPS support and fail when clients try
   to use it instead of silently falling back to HTTP.
 * Add helper to set the request type and body.

Version 4000.1.2: release 2011-08-11
 * Turn off buffering for the debug log.
 * Update installation instructions.
 * Bump base dependency to support GHC 7.2.

Version 4000.1.1: release 2010-11-28
 * Be tolerant of LF (instead of CRLF which is the spec) in responses.

Version 4000.1.0: release 2010-11-09
 * Retroactively fixed CHANGES to refer to 4000.x.x instead of
   4004.x.x.
 * Fix problem with close looping on certain URLs due to trying
   to munch the rest of the stream even on EOF. Modified from
   a fix by Daniel Wagner.
    * This involves a new class member for HStream and is thus an
      API change, but one that will only affect clients that
      define their own payload type to replace String/ByteString.
 * Applied patch by Antoine Latter to fix problem with 301 and 307
   redirects.

Version 4000.0.10: release 2010-10-29
 * Bump base dependency to support GHC 7.0.
 * Stop using 'fail' from the Either monad and instead build Left
   values explicitly; the behaviour of fail is changing in GHC 7.0
   and this avoids being sensitive to the change.

Version 4000.0.9: release 2009-12-20

 * Export headerMap from Network.HTTP.Headers
   (suggested by David Leuschner.)
 * Fix Network.TCP.{isTCPConnectedTo,isConnectedTo} to be useful.
 * Always delay closing non-persistent connections until we reach EOF.
   Delaying it until then is vital when reading the response out as a 
   lazy ByteString; all of the I/O may not have happened by the time we
   were returning the HTTP response. Bug manifested itself occasionally
   with larger responses. Courtesy of Valery Vorotyntsev; both untiring bug
   hunt and fix.
 * drop unused type argument from Network.Browser.BrowserEvent; needlessly general.
   (patch provided by Daniel Wagner.)

Version 4000.0.8: release 2009-08-05

 * Incorporated proxy setting lookup and parsing contribution
   by Eric Kow; provided in Network.HTTP.Proxy
 * Factor out HTTP Cookies and Auth handling into separate
   modules Network.HTTP.Cookie, Network.HTTP.Auth
 * new Network.Browser functionality for hooking up the
   proxy detection code in Network.HTTP.Proxy:

      setCheckForProxy :: Bool -> BrowserAction t ()
      getCheckForProxy :: BrowserAction t Bool

   If you do 'setCheckForProxy True' within a browser
   session, the proxy-checking code will be called upon.
   Use 'getCheckForProxy' to get the current setting for
   this flag.

 * Network.Browser: if HTTP Basic Auth is allowed and
   server doesn't 401-challenge with an WWW-Authenticate:
   header, simply assume / realm and proceed. Preferable
   than failing, even if server is the wrong.

Version 4000.0.7: release 2009-05-22

 * Minor release.
 * Added 
     Network.TCP.openSocketStream :: (BufferType t)
                                  => String {-host-}
				  -> Socket
				  -> IO (HandleStream t)

   for interfacing to pre-existing @Socket@s. Contributed and
   suggested by <http://trac.haskell.org/http/ticket/7>.

Version 4000.0.6: release 2009-04-21; changes from 4000.0.5

 * Network.Browser: use HTTP.HandleStream.sendHTTP_notify, not HTTP.sendHTTP_notify
   when issuing requests. The latter runs the risk of undoing request normalization.
 * Network.HTTP.Base.normalizeRequest: when normalizing proxy-bound requests,
   insert a Host: header if none present. Set it to the destination server authority,
   not the proxy.
 * Network.Browser: don't fail on seeing invalid cookie values, but report them
   as errors and continue.

Version 4000.0.5: release 2009-03-30; changes from 4000.0.4

 * Get serious about comments and Haddock documentation.
 * Cleaned up normalization of requests, fixing bugs and bringing together
   previous disparate attempts at handling this.
 * RequestMethod now supports custom verbs; use the (Custom String) constructor
 * Beef up Network.HTTP.Base's support for normalizing requests and URIs:
 
    * added splitRequestURI which divides a URI into two; the Authority portion
      (as a String) and the input URI sans the authority portion. Useful when
      wanting to split up a request's URI into its Host: and abs_path pieces.
    * added normalizeRequest :: Bool -> Request ty -> Request ty, which 
      fixes up a requests URI path and Host: info depending on whether it is
      destined for a proxy or not (controlled by the Bool.)
    * moved defaultRequest, defaultRequest_, libUA from Network.Browser
      to Network.HTTP.Base
    * added mkRequest :: RequestMethod -> URI -> Bool -> Request ty
      for constructing normalized&sane Request bases on top of which
      you can add custom headers, body payload etc.

