anchor.diff:  
       let ImageOverlayOptions =
           Class "L.ImageOverlay.Options"
  -        |+> [Constructor T<unit> |> WithInline "{}"]
  -        |+> Protocol [
  -            "opacity" =% T<float>
  +        |+> Static [Constructor T<unit> |> WithInline "{}"]
  +        |+> Instance [
  +            "opacity" =@ T<float>
               |> WithComment "The opacity of the image overlay."
  -            "attribution" =% T<string>
  +            "attribution" =@ T<string>
               |> WithComment "The attribution text of the image overlay."
           ]
   
       let ImageOverlay =
           Class "L.ImageOverlay"
  -        |+> [
  +        |+> Static [
               Constructor (T<string>?url * LatLngBoundsOrCoords?bounds * !?ImageOverlayOptions)
               |> WithComment "Instantiates an image overlay object given the URL of the image and the geographical bounds it is tied to."
           ]
           |=> Nested [ImageOverlayOptions]
           |=> Implements [ILayer]
  -        |+> Protocol [
  +        |+> Instance [
               "addTo" => MapT ^-> T<unit>
               |> WithComment "Adds the overlay to the map."
               "setOpacity" => T<float -> unit>
  
positive.code:         let x = T<float>?longitude
          Class "L.LatLng"
          |=> LatLngT
          |+> [
              Constructor (T<float>?latitude * T<float>?longitude * !?T<float>?altitude)
              |> WithComment "Creates an object representing a geographical point with the given latitude and longitude (and optionally altitude)."
              "DEG_TO_RAD" =? T<float>
              |> WithComment "A multiplier for converting degrees into radians."
              "RAD_TO_DEG" =? T<float>
              |> WithComment "A multiplier for converting radians into degrees."
              "MAX_MARGIN" =% T<float>
              |> WithComment "Max margin of error for the equality check."
          ]
          |+> Protocol [
              "lat" =? T<float>
              |> WithComment "Latitude in degrees."
              "lng" =? T<float>
  
negative.code:                 |> WithComment "Removes all listeners. An alias to clearAllEventListeners when you use it without arguments."
                  "fire" => T<string>?``type`` * !?Event?data ^-> T<unit>
                  |> WithComment "Fires an event of the specified type. You can optionally provide an data object — the first argument of the listener function will contain its properties."
              ])
          |+> Instance (events |> List.collect (fun (name, data, descr) ->
              [
                  ("on_" + name) => (cls ^-> data ^-> T<unit>)?fn ^-> T<unit>
                  |> WithInline ("$this.on('" + name + "', $wsruntime.CreateFuncWithThis($fn))")
                  |> WithComment descr
                  ("once_" + name) => (cls ^-> data ^-> T<unit>)?fn ^-> T<unit>
                  |> WithInline ("$this.once('" + name + "', $wsruntime.CreateFuncWithThis($fn))")
                  |> WithComment descr
                  ("off_" + name) => (cls ^-> data ^-> T<unit>)?fn ^-> T<unit>
                  |> WithInline ("$this.off('" + name + "', $wsruntime.CreateFuncWithThis($fn))")
                  |> WithComment descr
                  ("off_" + name) => T<unit> ^-> T<unit>
                  |> WithInline ("$this.off('" + name + "')")
  