anchor.diff:                  "toString" => T<unit->string>
                   "toLocaleString" => T<unit->string>
                   "valueOf" => T<unit->obj>
  -                "hasOwnProperty" => Str ^-> T<bool>
  +                "hasOwnProperty" => T<string> ^-> T<bool>
                   "isPrototypeOf" => T<obj->bool>
  -                "propertyIsEnumerable" => Str ^-> T<bool>
  +                "propertyIsEnumerable" => T<string> ^-> T<bool>
                   "" =@ a |> Indexed T<string>            
                   "self" =? T<obj> |> WithGetterInline "$this"      
               ]
           |+> Static [
                   ObjectConstructor T<unit> 
                   Constructor (!|(T<string> * a))?nameValuePairs |> WithInline "$wsruntime.NewObject($nameValuePairs)"
  -                "prototype" =? TSelf.[T<obj>]
  +                "prototype" =? T<obj>
                   "create" => T<obj>?proto * !?T<obj>?properties ^-> T<obj>                
  -                "getPrototypeOf" => T<obj> ^-> TSelf.[T<obj>]
  +                "getPrototypeOf" => T<obj> ^-> T<obj>
                   "getOwnPropertyDescriptor" => T<obj->obj>
                   "defineProperty" => T<obj*string*obj->obj>
                   "defineProperties" => T<obj*obj->obj>
  
positive.code:     module P = Pattern
  
      let EcmaFunctionT = Type.New()
      let EcmaStringT = Type.New()
      let Str = EcmaStringT + T<string>
  
      let EcmaObject =
          Generic - fun (a: CodeModel.TypeParameter) ->
  
negative.code:     /// The Math object allows you to perform mathematical tasks.
      let EcmaMath =
          let D = T<double>
          let F = D ^-> D
          Class "Math"
          |+> Static [
                  "E" =? D
  