anchor.diff:            let name = target.Name
             let acc = ("[" + name + "]") :: acc
             processTargets tl acc
  -    | [] -> List.rev acc
  +    
  +
     let rules = NLog.LogManager.Configuration.LoggingRules
  +
     let listToString (list : string list) =
         let rec processList list acc =
           match list with
  +        | [] -> "[" + acc + "]"
           | (item : string) :: tl ->
               match acc with
               | "" -> 
  
positive.code: // don't be surpised if the function fails related to the
  // __SOURCE_DIRECTORY__ value changing.
  
  let configureNLogPrgramatically () =
    printfn "configureNLogPrgramatically called in NLogExample.fsx."
    let config = new NLog.Config.LoggingConfiguration()
    // Log to file
    let fileTarget = new NLog.Targets.FileTarget()
    let projectPath = __SOURCE_DIRECTORY__
    let filePath = projectPath + @"log.txt"
    let layout = new NLog.Layouts.SimpleLayout(filePath)
    fileTarget.FileName <- layout
    fileTarget.Name <- "file"
    fileTarget.AutoFlush <- true
    let simpleLayout = new NLog.Layouts.SimpleLayout("${time} ${callsite} ${level} ${message}")
    let (layout : NLog.Layouts.Layout) = simpleLayout :> NLog.Layouts.Layout
    fileTarget.Layout <- layout
    config.AddTarget("file", fileTarget)
    let rule1 = new NLog.Config.LoggingRule("*",NLog.LogLevel.Trace,fileTarget)
    config.LoggingRules.Add(rule1)
    // Log to console
    let consoleTarget = new NLog.Targets.ConsoleTarget()
    consoleTarget.Name <- "console"
    let simpleLayout = new NLog.Layouts.SimpleLayout("${time} ${callsite} ${level} ${message}")
    let (layout : NLog.Layouts.Layout) = simpleLayout :> NLog.Layouts.Layout
    consoleTarget.Layout <- layout
    config.AddTarget("console", consoleTarget)
    let rule2 = new NLog.Config.LoggingRule("*",NLog.LogLevel.Trace,consoleTarget)
    config.LoggingRules.Add(rule2)
    NLog.LogManager.Configuration <- config
  
  let printNLogConfig () = 
    let targets = NLog.LogManager.Configuration.AllTargets
    let rec processTargets targets acc =
      match targets with
      | target :: tl ->
        match (target : NLog.Targets.Target) with
        | :? NLog.Targets.FileTarget as fileTarget -> 
  
negative.code:         let final = "final: " + rule.Final.ToString()
          let acc = ("[" + name + ", " + levels + ", " + targets + ", " + filters + ", " + final + "]") :: acc
          processRules tl acc
      
    let targetList =  Seq.toList targets
    let targetTextList = processTargets targetList [] |> listToString
    let ruleList = Seq.toList rules
    let ruleTextList = processRules ruleList [] |> listToString
    printfn "targets: %A" targetTextList
    printfn "rules: %A" ruleTextList
  
  