anchor.diff:  
   let internal toDep (t : TemplateFile) =
       match t with
  -    | Complete (core, opt) ->
  +    | CompleteTemplate(core, opt) ->
           core.Id, VersionRequirement(Minimum (core.Version), PreReleaseStatus.All)
  -    | Incomplete ->
  +    | IncompleteTemplate ->
           failwith "You cannot create a dependency on a template file with incomplete metadata."
   
   let internal addDep (t: TemplateFile) (d : string * VersionRequirement) =
       match t with
  -    | Complete (core, opt) ->
  +    | CompleteTemplate(core, opt) ->
           let deps = 
               match opt.Dependencies with
               | Some ds -> Some (d::ds)
               | None -> Some [d]
           { FileName = t.FileName; Contents = CompleteInfo (core, { opt with Dependencies = deps }) }
  -    | Incomplete ->
  +    | IncompleteTemplate ->
           failwith "You should only try and add dependencies to template files with complete metadata."
   
   let internal toFile config targetDir (p : ProjectFile) =
  
positive.code:     let complete, incomplete =
          templates
          |> List.ofSeq
          |> List.partition (function Complete _ -> true | Incomplete -> false)
  
      // load up project files and grab meta data
      let projectTemplates =
  
negative.code: open Paket.Domain
  open Paket.Logging
  
  let internal (|CompleteTemplate|IncompleteTemplate|) templateFile = 
      match templateFile with
      | { Contents = (CompleteInfo(core, optional)) } -> CompleteTemplate(core, optional)
      | _ -> IncompleteTemplate
  
  let internal pack outputPath templateFile =
      match templateFile with
      | CompleteTemplate(core, optional) ->
          NupkgWriter.Write core optional (Path.GetDirectoryName templateFile.FileName) outputPath
      | IncompleteTemplate ->
          failwithf "There was an attempt to pack incomplete template file %s" templateFile.FileName
  
  let (|Title|Description|Version|InformationalVersion|Company|Ignore|) (att : obj) =
  