anchor.diff:      /// Opens this file as a stream for reading.
       member x.OpenStream() = blobRef.OpenRead()
       
  -    /// Gets the blob size in bytes.
  -    member x.Size with get () = blobRef.Properties.Length
  +    /// Opens this file as a text stream for reading.
  +    member x.OpenStreamAsText() = new StreamReader(x.OpenStream())
   
       /// Reads this file as a string.
       member x.ReadAsString() = blobRef.DownloadText()
  
positive.code:     /// Reads this file as a string asynchronously.
      member x.ReadAsStringAsync() = Async.AwaitTask(blobRef.DownloadTextAsync())
  
  /// Represents a text file stored in blob storage.
  type TextFile internal (connectionDetails) =
      inherit BlobFile(connectionDetails)
      /// Opens this file as a text stream for reading.
      member x.OpenStreamAsText() = new StreamReader(base.OpenStream())
  
  /// Represents an XML file stored in blob storage.
  type XmlFile internal (connectionDetails) = 
      inherit BlobFile(connectionDetails)
      let blobRef = getBlobRef(connectionDetails)
      
      /// Reads this file as an XDocument.
      member x.ReadAsXDocument() = blobRef.DownloadText() |> XDocument.Parse
      
      /// Reads this file as an XDocument asynchronously.
      member x.ReadAsXDocumentAsync() =
          async { let! text = blobRef.DownloadTextAsync() |> Async.AwaitTask
                  return XDocument.Parse text }
  
  /// Represents a pseudo-folder in blob storage.
  type BlobFolder internal (connectionDetails) = 
  
negative.code: 
  /// Represents a container in blob storage.
  type BlobContainer internal (connectionString, container) = 
      
      /// Downloads the entire container contents to the local file system asynchronously.
      member x.Download(path) = 
          let connectionDetails = connectionString, container, String.Empty
          downloadFolder (connectionDetails, path)
      
      /// Uploads a file to this container.
      member x.Upload(path) = 
          let fileName = path |> Path.GetFileName
          let blobRef = getBlobRef (connectionString, container, fileName)
          awaitUnit (blobRef.UploadFromFileAsync(path, FileMode.Open))
  
  module internal ProvidedTypeGenerator = 
      let generateTypes() = 
          [ ProvidedTypeDefinition("BlobFile", Some typeof<BlobFile>, HideObjectMethods = true)
            ProvidedTypeDefinition("XmlFile", Some typeof<XmlFile>, HideObjectMethods = true) ]
  
  /// Builder methods to construct blobs etc..
  