anchor.diff:  
     /// Caching mechanism for IRazorEngineService instances.
     let private razorCache = new ConcurrentDictionary<string list, IRazorEngineService * string list option * string list>()
  -
     let private createNew layoutRoots (references:string list option) namespaces =
  -    let templateCache = new ConcurrentDictionary<string, ITemplateSource>()
  +    let resolveCache = new ConcurrentDictionary<string, string>()
       // create manager
       let templateManager =
         { new ITemplateManager with
  -          member x.GetKey (name, resolveType, context) = new NameOnlyTemplateKey(name, resolveType, context) :> ITemplateKey
  +          member x.GetKey (name, resolveType, context) =
  +            let file = resolveCache.GetOrAdd(name, (fun _ -> resolve(layoutRoots, name + ".cshtml")))
  +            new PathTemplateKey(name, file, resolveType, context) :> ITemplateKey
             member x.AddDynamic (key, source) = failwith "dynamic templates are not supported!"
             member x.Resolve templateKey =
  -              let name = templateKey.Name
  -              templateCache.GetOrAdd (name, fun name ->
  -                  let file = resolve(layoutRoots, name + ".cshtml")
  -                  new LoadedTemplateSource(File.ReadAllText(file), file) :> ITemplateSource) }
  +            let file = templateKey.GetUniqueKeyString()
  +            new LoadedTemplateSource(File.ReadAllText(file), file) :> ITemplateSource }
       // Configure templating engine
       let config = new TemplateServiceConfiguration()
       config.EncodedStringFactory <- new RawStringFactory()
  
positive.code:     // And F# scripts on the other hand will not explode the temp directory.
      config.DisableTempFileLocking  <- System.AppDomain.CurrentDomain.IsDefaultAppDomain()
      config.Debug <- not config.DisableTempFileLocking
      config.CachingProvider <-
        new DefaultCachingProvider(
          if config.DisableTempFileLocking then
            new System.Action<string>(fun s -> ())
          else null) :> ICachingProvider
      
      match references with
      | Some r -> 
  
negative.code: ///
  /// [omit]
  module RazorEngineCache =
    let cachingProvider =
      let arg =
        if System.AppDomain.CurrentDomain.IsDefaultAppDomain() then
           new System.Action<string>(fun s -> ())
        else null
      new DefaultCachingProvider(arg) :> ICachingProvider
  
    /// Find file in one of the specified layout roots
    let private tryResolve(layoutRoots, name) =
      layoutRoots |> Seq.tryPick (fun layoutRoot ->
  