anchor.diff:      log.Verbose "Solution name '%s' from solution.xml differs from solutionName argument: '%s'" zipSolutionName solutionName
       log.Verbose "Using '%s'" zipSolutionName
       zipSolutionName
  -    
  -      
   
   // Fetches the entity of views in a packaged solution file from an exported 
   // solution
  
positive.code:   getAttribute key x :?> OptionSetValue
    |> fun e -> e.Value
  
  // Returns a subset of the sequence based on the comparison on the a strings
  let subset (b:seq<Guid*String>) a = 
    b |> Seq.filter(fun (_,z) -> 
      ((fun y -> y = z),a) ||> Seq.exists)
  
  let getEntityIds (entities: seq<Entity>) =
    entities
    |> Seq.map(fun r -> r.Id, getName r)
  
  let takeName = snd
  let takeGuid (inp: (Guid*string)) = inp |> fst |> fun x -> x.ToString()
  
  let getSolutionNameFromSolution solutionName (archive: ZipArchive) (log:ConsoleLogger) =
    log.Verbose "Retrieving solution.xml from solution package"
  
negative.code:       | _ -> 
          diff
          |> Set.toSeq
          |> lookup target fieldCompFunc
          |> Seq.map (fun (x, _) ->
            CrmData.CRUD.deleteReq ln x :> OrganizationRequest)
          |> Seq.toArray
  