anchor.diff:    /// creates xake build script
     let xake options = new RulesBuilder(options)
   
  +  /// Gets the script options.
  +  let getCtxOptions() = action {
  +    let! (ctx: ExecContext) = getCtx()
  +    return ctx.Options
  +  }
  +
     /// key function implementation
     /// Executes and awaits specified artifacts
     let needFileset fileset =
         action {
  -        let! ctx = getCtx()
  -        do! fileset |> (toFileList ctx.Options.ProjectRoot >> List.map (fun f -> new Artifact (f.FullName) |> FileTarget)) |> Impl.needTarget
  +        let! options = getCtxOptions()
  +        do! fileset |> (toFileList options.ProjectRoot >> List.map (fun f -> new Artifact (f.FullName) |> FileTarget)) |> Impl.needTarget
         }
   
     /// Executes and awaits specified artifacts
  
positive.code: 
    /// Creates phony action (check if I can unify the operator name)
    let (=>) = Impl.makePhonyRule
  
    // Helper method to obtain script options within rule/task implementation
    let getCtxOptions() = action {
      let! (ctx: ExecContext) = getCtx()
      return ctx.Options
    }
negative.code:     open WorkerPool
      open BuildLog
      open Storage
  
      let TimeCompareToleranceMs = 100
  
      /// Writes the message with formatting to a log
      let writeLog (level:Logging.Level) fmt  =
  