anchor.diff:            Result = f fbr?result
             Message = fbr.GetOptionalStringValWithKey "message" }
   
  +type FreebaseWebException(e:WebException, domain, reason, message, extendedHelp) = 
  +    inherit WebException(sprintf "%s Domain: %s Reason: %s" e.Message domain reason, e, e.Status, e.Response)
  +    member __.Domain = domain
  +    member __.Reason = reason
  +    member __.FreebaseMessage = message
  +    member __.ExtendedHelp = extendedHelp
  +
   let isStringNone s = String.IsNullOrEmpty s || s = "none"        
   
   type FreebaseQueries(apiKey: string, serviceUrl:string, localCacheName: string, snapshotDate:string, useLocalCache) = 
  
positive.code:                 Http.Request(shortUrl, meth = "POST", headers = [ "X-HTTP-Method-Override", "GET" ], body = content)
              else
                  Http.Request(url)
            getCache().Set(url,resultText)
            resultText
  
      let queryString(queryUrl, fromJson) : FreebaseResult<'T> = 
          let resultText = queryRawText queryUrl
  
negative.code:         match getCache().TryRetrieve url with
          | Some resultText -> resultText
          | None ->
            let getResultText() = 
              if url.Length > 1500 && url.Contains "?"  then 
                  let idx = url.IndexOf '?'
                  let content = url.[idx + 1 .. ] 
  