anchor.diff:                  "lastIndex" =@ T<int>
               ]
           |+> Static [
  -                Constructor(Str * !?Str?flags)
  +                Constructor(T<string> * !?T<string>?flags)
               ]
   
       /// The String object is used to manipulate a stored piece of text.
       let EcmaString =
  -        let REStr = EcmaRegExp + Str
           Class "String"
  -        |=> EcmaStringT
           |=> Inherits EcmaObjectT
           |+> Instance 
               [
                   "charAt" => T<int->string>
                   "charCodeAt" => T<int->int>
  -                "concat" => !+ Str ^-> T<string>
  -                "indexOf" => Str * !?T<int>?pos ^-> T<int>
  -                "lastIndexOf" => Str * !?T<int>?pos ^-> T<int>
  +                "concat" => !+ T<string> ^-> T<string>
  +                "indexOf" => T<string> * !?T<int>?pos ^-> T<int>
  +                "lastIndexOf" => T<string> * !?T<int>?pos ^-> T<int>
                   "localeCompare" => T<obj> ^-> T<int>
  -                "match" => REStr ^-> T<string []>
  -                "replace" => REStr * Str ^-> T<string>
  +                "match" => (EcmaRegExp + T<string>) ^-> T<string []>
  +                "replace" => (EcmaRegExp + T<string>) * T<string> ^-> T<string>
                   "search" => !?EcmaRegExp ^-> T<int>
                   "slice" => T<int>?startPos * !?T<int>?endPos ^-> T<string>
                   "split" =>
  
positive.code:         |=> Inherits EcmaObjectT
          |+> Instance
              [
                  "exec" => Str ^-> !|T<string>
                  "test" => Str ^-> T<bool>
                  "source" =? T<string>
                  "global" =? T<bool>
                  "ignoreCase" =? T<bool>
  
negative.code:     module P = Pattern
  
      let EcmaFunctionT = Type.New()
  
      let EcmaObject =
          Generic - fun (a: CodeModel.TypeParameter) ->
  