anchor.diff:          "GET POST PUT DELETE".Split(' ')
           |> Pattern.EnumStrings "RequestType"
   
  -    let AjaxSettings =
  -        Pattern.Config "AjaxSettings" {
  -            Required = []
  -            Optional =
  -                [
  -                    "accepts", T<obj>
  -                    "async", T<bool>
  -                    "beforeSend", JqXHR * TSelf ^-> T<unit>
  -                    "cache", T<bool>
  -                    "complete", JqXHR * T<string> ^-> T<unit>
  -                    "contentType", (T<string> + T<bool>)
  -                    "context", T<obj>
  -                    "converters", T<obj>
  -                    "crossDomain", T<bool>
  -                    "data", (T<obj> + T<string> + T<obj []>)
  -                    "dataFilter", T<string> * DataType ^-> T<obj>
  -                    "dataType", DataType.Type
  -                    "error", JqXHR * T<string> * T<string> ^-> T<unit>
  -                    "global", T<bool>
  -                    "headers", T<obj>
  -                    "ifModified", T<bool>
  -                    "isLocal", T<bool>
  -                    "jsonp", (T<string> + T<bool>)
  -                    "jsonpCallback", (T<string> + (T<unit> ^-> T<unit>))
  -                    "method", RequestType.Type
  -                    "mimeType", T<string>
  -                    "password", T<string>
  -                    "processData", T<bool>
  -                    "scriptCharset", T<string>
  -                    "statusCode", T<obj>
  -                    "success", T<obj> * T<string> * JqXHR ^-> T<unit>
  -                    "timeout", T<double>
  -                    "traditional", T<bool>
  -                    "type", RequestType.Type
  -                    "url", T<string>
  -                    "username", T<string>
  -                    "xhr", T<unit> ^-> T<unit>
  -                    "xhrFields", T<obj>
  -                ]
  -        }
  +    let AjaxSettings =
  +        Pattern.Config "AjaxSettings" {
  +            Required = []
  +            Optional =
  +                [
  +                    "accepts", T<obj>
  +                    "async", T<bool>
  +                    "beforeSend", JqXHR * TSelf ^-> T<unit>
  +                    "cache", T<bool>
  +                    "complete", JqXHR * T<string> ^-> T<unit>
  +                    "contentType", (T<string> + T<bool>)
  +                    "context", T<obj>
  +                    "converters", T<obj>
  +                    "crossDomain", T<bool>
  +                    "data", (T<obj> + T<string> + T<obj []>)
  +                    "dataFilter", T<string> * DataType ^-> T<obj>
  +                    "dataType", DataType.Type
  +                    "error", JqXHR * T<string> * T<string> ^-> T<unit>
  +                    "global", T<bool>
  +                    "headers", T<obj>
  +                    "ifModified", T<bool>
  +                    "isLocal", T<bool>
  +                    "jsonp", (T<string> + T<bool>)
  +                    "jsonpCallback", (T<string> + (T<unit> ^-> T<unit>))
  +                    "method", RequestType.Type
  +                    "mimeType", T<string>
  +                    "password", T<string>
  +                    "processData", T<bool>
  +                    "scriptCharset", T<string>
  +                    "statusCode", T<obj>
  +                    "success", T<obj> * T<string> * JqXHR ^-> T<unit>
  +                    "timeout", T<double>
  +                    "traditional", T<bool>
  +                    "type", RequestType.Type
  +                    "url", T<string>
  +                    "username", T<string>
  +                    "xhr", T<unit> ^-> T<unit>
  +                    "xhrFields", T<obj>
  +                ]
  +        }
   
   
       let AjaxHandler =
  
positive.code:             "html" => T<unit> ^-> T<string>
              "html" => T<string> ^-> TSelf
              "html" => (T<int> * T<string> ^-> T<string>) ^-> TSelf
              "prop" => T<string> ^-> T<obj>
              "prop" => T<string> * T<obj> ^-> TSelf
              "prop" => T<obj> ^-> TSelf
              "prop" => T<string> * (T<int> * T<obj> ^-> T<obj>) ^-> TSelf
  
negative.code: 
      let Event =
          Class "jQuery.Event"
          |+> Instance [
              "AsDomEvent" =? T<Dom.Event>
              |> WithGetterInline "$0"
              |> WithComment "Casts this JQuery.Event to a Dom.Event"
              "currentTarget" =? T<Dom.Element>
              "data" =? T<obj>
              "delegateTarget" =? T<Dom.Element>
              "isDefaultPrevented" => T<unit> ^-> T<bool>
              "isImmediatePropagationStopped" => T<unit> ^-> T<bool>
              "isPropagationStopped" => T<unit> ^-> T<bool>
              "metaKey" =? T<bool>
              "namespace" =? T<string>
              "pageX" =? T<int>
              "pageY" =? T<int>
              "preventDefault" => T<unit> ^-> T<unit>
              "stopImmediatePropagation" => T<unit> ^-> T<unit>
              "stopPropagation" => T<unit> ^-> T<unit>
              "result" =? T<obj>
              "relatedTarget" =? T<Dom.Element>
              "target" =? T<Dom.Element>
              "which" =? T<int>
              "timeStamp" =? T<int>
              "type" =? T<string>
          ]
  
      let Error =
  