anchor.diff:  
   //how to add icons to tree view: http://msdn.microsoft.com/en-us/library/aa983725(v=vs.71).aspx
   type Root = { Text: string ; Children:seq<Watch> ; ValueText:string ; Value:obj ; Name: String ; Image: ImageResource }
  -and Custom = { Text: string ; Children:seq<Watch> ; ValueText: string option; Image:ImageResource}
  -and DataMember = { LoadingText: string ; Lazy: Lazy<Custom>; Image:ImageResource }
  -and CallMember = { InitialText: string ; LoadingText: string ; Lazy: Lazy<Custom>; Image:ImageResource}
  +and Custom = { Text: string ; Children:seq<Watch> ; ValueText: string option; Image:ImageResource }
  +and DataMember = { LoadingText: string ; Lazy: Lazy<Custom>; Image:ImageResource ; MemberInfo:MemberInfo }
  +and CallMember = { InitialText: string ; LoadingText: string ; Lazy: Lazy<Custom>; Image:ImageResource ; MemberInfo:MemberInfo }
   and Watch =
       | Root of Root
       | DataMember of  DataMember
  
positive.code:                 else //assume private
                      ImageResource.PrivateProperty
  
              DataMember({LoadingText=(pretext  pi.PropertyType.FSharpName loadingText) ; Lazy=delayed ; Image=image })
  
          let getFieldWatch (fi:FieldInfo) =
              let pretext = sprintf "%s : %s%s" (getMemberName fi)
  
negative.code:                 else //assume private
                      ImageResource.PrivateField
  
              DataMember({LoadingText=pretext fi.FieldType.FSharpName loadingText ; Lazy=delayed ; Image=image ; MemberInfo=fi})
  
          let getMethodWatch (mi:MethodInfo) =
              let pretext = sprintf "%s() : %s%s" (getMemberName mi)
  