anchor.diff:  
       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>
  +        |+> 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 =
  
positive.code:                 ]
          }
  
      let AnimateSettings =
          Pattern.Config "AnimateSettings" {
              Required = []
              Optional =
                  [
                      "duration" , T<int> + T<string>
                      "easing" , T<string>
                      "queue" , T<bool> + T<string>
                      "specialEasing" , T<Object<string>>
                      "step" , T<int> * T<obj> ^-> T<unit>
                      "progress" , Promise * T<int> * T<int> ^-> T<unit>
                      "complete" , T<unit> ^-> T<unit>
                      "start" , Promise ^-> T<unit>
                      "done" , Promise * T<bool> ^-> T<unit>
                      "fail" , Promise * T<bool> ^-> T<unit>
                      "always" , Promise * T<bool> ^-> T<unit>
                  ]
          }
  
      let Speed =
  
negative.code:         "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 AjaxHandler =
  