anchor.diff:            Header("Vary");
             Header("Via");
             Header("Warning");
  -          Header("WWW-Authenticate");
  -          Header("X-HTTP-Method");
  -          Header("X-HTTP-Method-Override");
  -          Header("X-Method-Override")] |> Seq.map (fun x -> (x.Normalized, x)) |> Map.ofSeq
  -    
  +          Header("WWW-Authenticate")] |> Seq.map (fun x -> (x.Normalized, x)) |> Map.ofSeq
  +
  +    static member private CachedHeaders =
  +        let additionalHeaders =   
  +            [   Header("X-HTTP-Method");
  +                Header("X-HTTP-Method-Override");
  +                Header("X-Method-Override")] |> Seq.map (fun x -> (x.Normalized, x)) 
  +        Seq.concat [Header.StandardHeaders |> Map.toSeq; additionalHeaders] |> Map.ofSeq
  +
       static member Create (header: string) = 
  -        match normalize header |> Header.StandardHeaders.TryFind with
  +        match normalize header |> Header.CachedHeaders.TryFind with
           | Some header -> header
           | None ->
               match parse Header.Parser header with 
  
positive.code: 
      static member internal Parser = 
          HttpParsers.token |>> (fun header -> 
              match normalize header |> Header.StandardHeaders.TryFind with
              | Some header -> header
              | _ ->  Header(header))
  
  module internal HeaderInternal =
      let internal headerSet = (Header.StandardHeaders :> IDictionary<string, Header>).Values |> Set.ofSeq
  
      let filterStandardHeaders (headers:Map<Header,obj>) =
          headers |> Map.toSeq |> (Seq.filter <| fun (k,v) -> headerSet.Contains k |> not) |> Map.ofSeq
  
      // FIXME: Set-Cookie should be a standard header, and should be part of the HttpResponse object
      let internal setCookieHeader = Header.Create("Set-Cookie")
      let headerMapFromRawHeaders (headers:seq<string*(string seq)>) =
          // FIXME: Special case cookies
          headers 
          |> Seq.map(fun (k,v) -> 
              let header = Header.Create k
              if header = setCookieHeader then (header, v :> obj)
              else (header, String.Join (",", v) :> obj)) 
          |> Map.ofSeq
  
  
negative.code:         pairs |> Seq.map (writeObject f) |> ignore
  
      let headerLineFunc builder (k:string, v:string) =
          Printf.bprintf builder "%O: %s\r\n" k v