code: function ElmRunner(filename, baseDir, defaults) {
    var relativePath = path.relative(baseDir, filename);
    var baseName = path.basename(filename, path.extname(filename));
  
    this.filename = filename;
    this.defaults = defaults || {};
  
    this.moduleName = resolveModuleName(relativePath);
    this.outputPath = path.join(path.dirname(filename), baseName + ".js");
  
    var self = this;
    withCheckedPath(this.outputPath, function() {
      try {
        compile.call(self);
        execute.call(self);
        wrap.call(self);
      } catch (e) {
        return e;
      }
  
      return true;
    });
  }
docs: /*
  constructor function