anchor.diff:      |> List.map (fun path -> path, (getPenalty requiredPlatforms path))
       |> List.filter (fun (_, penalty) -> penalty < MaxPenalty)
       |> List.sortWith comparePaths
  -    |> Seq.map fst
  -    |> Seq.tryFind (fun _ -> true)
  +    |> List.map fst
  +    |> List.tryFind (fun _ -> true)
   
   // For a given list of paths and target profiles return tuples of paths with their supported target profiles.
   // Every target profile will only be listed for own path - the one that best supports it. 
  
positive.code:         |> List.map getTargetCondition
          |> List.filter (fun (_,v) -> v <> "false")
          |> List.append grouped
          |> Seq.groupBy fst
  
      conditions
      |> Seq.map (fun (group,conditions) ->
          match List.ofSeq conditions with
          | [ _,"" ] -> group
          | [ _,detail ] -> sprintf "%s And %s" group detail
  
negative.code:                 |> Set.ofSeq
                  |> fun cs -> String.Join(" Or ",cs)
              sprintf "%s And (%s)" group detail)
      |> fun l -> 
              match l with
              | [] -> ""
  