anchor.diff:      let refineAssetOnce intermediateFileSubpath intermediateDirectory refinementDirectory refinement =
   
           // build the intermediate file path
  +        let intermediateFileExtension = Path.GetExtension intermediateFileSubpath
           let intermediateFilePath = Path.Combine (intermediateDirectory, intermediateFileSubpath)
   
           // build the refinement file path
  -        let refinementFileSubpath =
  -            match refinement with
  -            | PsdToPng -> Path.ChangeExtension (intermediateFileSubpath, "png")
  -            | OldSchool -> intermediateFileSubpath
  +        let refinementFileExtension = getAssetExtension2 intermediateFileExtension refinement
  +        let refinementFileSubpath = Path.ChangeExtension (intermediateFileSubpath, refinementFileExtension)
           let refinementFilePath = Path.Combine (refinementDirectory, refinementFileSubpath)
   
  -        // ensure the refinement file path is valid
  +        // refine the asset
           ignore <| Directory.CreateDirectory ^^ Path.GetDirectoryName refinementFilePath
  -            
  -        // refine the asset
           match refinement with
           | PsdToPng ->
               use image = new MagickImage (intermediateFilePath)
  
positive.code:             image.Scale (Percentage 400)
              image.Write refinementFilePath
  
          // return the refinement localities
          (refinementFileSubpath, refinementDirectory)
  
      /// Apply all refinements to an asset.
  
negative.code:             let inputFilePath = Path.Combine (inputDirectory, inputFileSubpath)
  
              // build the output file path
              let outputFileExtension = getAssetExtension true inputFileExtension asset.Refinements
              let outputFileSubpath = Path.ChangeExtension (asset.FilePath, outputFileExtension)
              let outputFilePath = Path.Combine (outputDirectory, outputFileSubpath)
  
              // build the asset if fully building or if it's out of date
              if  fullBuild ||
                  not <| File.Exists outputFilePath ||
                  File.GetLastWriteTimeUtc inputFilePath > File.GetLastWriteTimeUtc outputFilePath then
  