anchor.diff:              PingInterval = int config.PingInterval.TotalMilliseconds }
           let payload = Payload([Open(handshake)])
           let engineContext = EngineIoContext.FromHttp ctx
  -        let ctx = { ctx with response = { ctx.response with headers = (ctx.response.headers |> List.map(fun (k,v) -> if k = "Access-Control-Allow-Credentials" then k,v.ToLower() else k,v)) } }
  -        return! respondPayload payload engineContext ctx
  +        let pipeline = setIoCookie config sid >=> respondPayload payload engineContext
  +        return! pipeline ctx
       }
           
  -    cors config.CORSConfig >=> choose [
  -        handshakePart
  -    ]
  +    choose [ handshakePart ]
  +        >=> cors config.CORSConfig
  +        >=> removeBuggyCorsHeader
  +        >=> disableXSSProtectionForIE
   
   [<EntryPoint>]
   let main argv = 
  
positive.code:     }
  
      with static member empty = {
              Upgrades = Array.empty
              CORSConfig =
                  { defaultCORSConfig with
                      allowedMethods = InclusiveOption.Some([HttpMethod.GET; HttpMethod.POST])
                      allowedUris = InclusiveOption.All }
              PingTimeout = TimeSpan.FromSeconds(60.)
              PingInterval = TimeSpan.FromSeconds(25.)
              getHandshakeSid = (fun _ -> async { return Guid.NewGuid().ToString() })
  
negative.code:         CORSConfig: CORSConfig
          PingTimeout: TimeSpan
          PingInterval: TimeSpan
          CookieName: string option
          CookiePath: string option
          CookieHttpOnly: bool
          getHandshakeSid: HttpContext -> Async<string>
          onPacket: HttpContext -> PacketMessage -> Async<unit>
          getPacket: HttpContext -> Async<PacketMessage option>
  