anchor.diff:              ]
             | (Result.Ok "http", Http h) -> Toml.compareTable oldReceipt [
                 ("url", h.Url);
  -              ("Sha256", h.Sha256);
  +              ("sha256", h.Sha256);
  +              ("stripPrefix", h.StripPrefix |> Option.defaultValue("") );
  +              ("archiveType", (h.Type |> Option.map string |> Option.defaultValue("zip")) );
               ]
             |  _ -> false    
     }
  
positive.code: let installPackageSources (context : Tasks.TaskContext) (installPath : string) (location : PackageLocation) = async {
    let downloadManager = context.DownloadManager
    let gitManager = context.GitManager
    let! matches = compareReceipt installPath location
    if matches = false
    then
      System.Console.WriteLine ("installing: " + installPath)
      match location with 
  
negative.code:   let receipt = 
      "[receipt]\n" + 
      "path = \"" + installPath + "\"\n" + 
      "lastUpdated = \"" + System.DateTime.Now.ToUniversalTime().ToString() + "\"\n" + 
      match location with 
      | Git g -> 
        "type = \"git\"\n" +
        "url = \"" + g.Url + "\"\n" + 
        "revision = \"" + g.Revision + "\"\n"
      | Http h -> 
        "type = \"http\"\n" +
        "url = \"" + h.Url + "\"\n" + 
        "sha256 = \"" + (h.Sha256) + "\"\n" +
        "stripPrefix = \"" + (h.StripPrefix |> Option.defaultValue("")) + "\"\n" +
        "archiveType = \"" + (h.Type |> Option.map string |> Option.defaultValue "zip") + "\"\n"
      | GitHub g -> 
        "type = \"github\"\n" +
        "owner = \""+ g.Package.Owner + "\"\n" +
        "project = \"" + g.Package.Project + "\"\n" +
        "revision = \"" + g.Revision + "\"\n"
    
    let receiptPath = getReceiptPath installPath
    do! Files.writeFile receiptPath receipt
  