code: function fcompile(path, options, cache) {
      options = options || {};
  
      var text, template;
  
      if (cache) {
          var key = fcacheKey(path, options);
          template = fcache[key];
          if (template) {
              return template;
          }
      }
  
      text = fs.readFileSync(path, 'utf8');
      template = Hogan.generate(Hogan.parse(Hogan.scan(text, options.delimiters), text, options), text, options);
  
      path = getExistsSync(path, Object.keys(require.extensions));
      if (path) {
  
          // The context passed to `template.render()` is the Model (or at least a subset)
          // in the Model-View-Controller pattern.  However, this Model must often be
          // augmented, formatted, etc. in the View for a proper presentation.
          // This presentation logic still belongs to the view, but is oftentimes crammed
          // into the controller for convenience.  This is sloppy and violates the spirit of MVC.
  
          // This experimental feature provides a convenient pattern for the placement
          // of presentation logic in your view.
          fixTemplateContext(template, loadViewModule(path));
      }
  
      if (cache) {
          fcache[key] = template;
      }
  
      return template;
  }
docs: Analog to `Hogan.compile()`
  but fetches, compiles, and caches the template
  given a path name instead of the actual template string.