anchor.diff:      |> replaceInVersionTag versionTag (newVersion.Replace(versionTag,""))
       |> replaceVersionTagList sourceCode
   
  +/// Get all missing required tags from a Dynamics NAV version tag list
   let getMissingRequiredTags requiredTags versionTags =
       requiredTags
           |> Seq.map (fun (rTag:string) -> rTag.ToUpper())
           |> Seq.filter (fun rTag -> versionTags |> Seq.exists (fun (tag:string) -> tag.StartsWith rTag) |> not)
   
  +/// Get all invalid tags from a Dynamics NAV version tag list
   let getInvalidTags invalidTags versionTags =
       invalidTags
           |> Seq.map (fun (iTag:string) -> iTag.ToUpper())
           |> Seq.filter (fun iTag -> versionTags |> Seq.exists (fun (tag:string) -> tag.StartsWith iTag))
   
  +/// Checks a Dynamics NAV object for missing required andinvalid tags and raises this as errors
   let checkTagsInObjectString requiredTags acceptPreTagged invalidTags objectString name =
       try
           let tagList = getVersionTagList objectString
  
positive.code: let getVersionTagList text =
      if VersionRegex.IsMatch text then VersionRegex.Match(text).Groups.["VersionList"].Value else ""
  
  let splitVersionTags (tagList:string) = tagList.ToUpper().Split Colon
  
  let replaceInVersionTag (versionTag:string) (newVersion:string) (tagList:string) =
      let versionTag = versionTag.ToUpper()
      if tagList.ToUpper().Contains versionTag then
  
negative.code:     else
          tagList + Colon.ToString() + versionTag + newVersion        
  
  /// Replaces a version tag list from complete Dynamics NAV object with a new one
  let replaceVersionTagList (text:string) (newTags:string) =
      VersionRegex.Replace(text, String.Format("\n    Version List={0};", newTags))
  
  /// Splits a version tag list from Dynamics NAV object into single tags
  let replaceVersionTag versionTag (newVersion:string) sourceCode =
      let tagList = getVersionTagList sourceCode
  
  