anchor.diff:      let valueText = sprintValue value ty
       let text = sprintf "%s : %s = %s" name ty.FSharpName valueText
       let children = createChildren value ty
  -    Root({Text=text ; Children=children ; Value=value ; Name=name ; ValueText=valueText ; Image=ImageResource.Default})+    Root { Text=text
  +           Children=children
  +           Value=value
  +           Name=name
  +           ValueText=valueText
  +           Image=ImageResource.Default }
positive.code: 
          let makeMemberLazyCustomInfo (value:obj) valueTy pretext =
              if typeof<System.Collections.IEnumerator>.IsAssignableFrom(valueTy) then
                  { Custom.Text=pretext valueTy.FSharpName ""; Children=(createResultWatches (value :?> System.Collections.IEnumerator)) ; ValueText=None ; Image=ImageResource.Default }
              else
                  let valueText = sprintValue value valueTy
                  { Text=pretext valueTy.FSharpName (" = " + valueText); Children=(createChildren value valueTy) ; ValueText=Some(valueText) ; Image=ImageResource.Default }
  
          let loadingText = " = Loading..."
  
  
negative.code:         ///Get the "default text" of this Watch
          member this.DefaultText =
              match this with
              | Root {Text=text} 
              | DataMember {LoadingText=text}
              | CallMember {InitialText=text} 
              | Custom {Text=text} -> text
          ///Get the children of this Watch. If the children are taken from a Lazy property,
          ///evaluation is forced.
          member this.Children =
              match this with
              | Root {Children=children} 
              | Custom {Children=children} -> children
              | CallMember {Lazy=l} 
              | DataMember {Lazy=l} -> l.Value.Children
          member this.ValueText =
              match this with
              | Root {ValueText=vt} -> Some(vt)
              | Custom {ValueText=Some(vt)} -> Some(vt)
              | DataMember {Lazy=CreatedValue({ValueText=Some(vt)})} 
              | CallMember {Lazy=CreatedValue({ValueText=Some(vt)})} -> Some(vt)
              | _ -> None
          member this.Image =
              match this with
              | Root {Image=image} 
              | DataMember {Image=image}
              | CallMember {Image=image} 
              | Custom {Image=image} -> image
          member this.MemberInfo =
              match this with
              | DataMember { MemberInfo=mi } 
              | CallMember { MemberInfo=mi } -> Some(mi)
              | Custom _  
              | Root _ -> None
  
  //let requiresUIThread (ty:System.Type) =
  //    [typeof<System.Windows.Forms.Control>
  //     typeof<System.Windows.UIElement>] 
  //    |> Seq.exists ty.IsAssignableFrom
  
  open System.Text.RegularExpressions
  ///Sprint the given value with the given Type. Precondition: Type cannot be null.
  