anchor.diff:          | _ when [ ".txt"; ".csv" ] |> Seq.exists endsWith -> Text
           | _ when endsWith ".xml" -> XML
           | _ -> Binary
  -
  +    
       /// Creates a blob file object.
       let createBlobFile connectionString containerName path = 
           let details = connectionString, containerName, path
           match path with
           | XML -> new XmlFile(details) :> BlobFile
  -        | Text -> new TextFile(details) :> BlobFile
  -        | Binary -> new BlobFile(details)
  +        | Text | Binary -> new BlobFile(details)
  +    
       /// Creates a blob container object.
       let createContainer connectionString containerName = BlobContainer(connectionString, containerName)
  +    
       /// Creates a blob folder object.
  -    let createBlobFolder connectionString containerName path = BlobFolder(connectionString, containerName, path)+    let createBlobFolder connectionString containerName path = BlobFolder(connectionString, containerName, path)
  
positive.code:     /// 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
  
      /// Reads this file as a string.
      member x.ReadAsString() = blobRef.DownloadText()
  
negative.code: /// Represents a file in blob storage.
  type BlobFile internal (connectionDetails) = 
      let connection, container, file = connectionDetails
      let blobRef = getBlobRef (connectionDetails)
      let blobProperties = lazy
                              blobRef.FetchAttributes()
                              blobRef.Properties
      
      /// Generates a full-access shared-access signature for the supplied duration.
      member x.GenerateSharedAccessSignature(duration) = 
          let expiry = Nullable(DateTimeOffset.UtcNow.Add(duration))
          let policy = 
              SharedAccessBlobPolicy
                  (SharedAccessExpiryTime = expiry,
                   Permissions = (SharedAccessBlobPermissions.Read ||| SharedAccessBlobPermissions.Write ||| SharedAccessBlobPermissions.Delete 
                                  ||| SharedAccessBlobPermissions.List))
          let sas = blobRef.GetSharedAccessSignature policy
          Uri(sprintf "%s%s" (blobRef.Uri.ToString()) sas)
      
      /// Downloads this file to the specified path.
      member x.Download(path) = 
          let targetDirectory = Path.GetDirectoryName(path)
          if not (Directory.Exists targetDirectory) then Directory.CreateDirectory targetDirectory |> ignore
          blobRef.DownloadToFileAsync(path, FileMode.Create) |> awaitUnit
  