anchor.diff:              match commands with
               | ["--version"] -> ()
               | _ ->
  -                Log.always("Fable: F# to JS compiler " + Literals.VERSION)
  -                Log.always("Thanks to the contributor! @" + Contributors.getRandom() + "\n")
                   if args.FlagEnabled "--verbose" then
                       Log.makeVerbose()
   
  
positive.code:     args.Value("--lang", "--language")
      |> Option.orElseWith (fun () -> if args.FlagEnabled("--typescript") then Some "ts" else None) // Compatibility with "--typescript"
      |> Option.map (fun lang -> lang.ToLower())
      |> Option.defaultValue "js"
      |> (function
      | "ts" | "typescript" | "TypeScript" -> TypeScript
      | "py" | "python" | "Python" -> Python
      | "php" | "Php" | "PHP" -> Php
      | "dart" -> Dart
      | _ ->
          // Set language based on name of executing process (fable tool).
          let proc = System.Reflection.Assembly.GetEntryAssembly().Location
          let fileName = Path.GetFileNameWithoutExtension(proc)
          match fileName with
          | "fable-py" -> Python
          | _ -> JavaScript)
  
  type Runner =
    static member Run(args: CliArgs, rootDir: string, runProc: RunProcess option, ?fsprojPath: string, ?watch) = result {
  
negative.code:             Ok fsprojPath
  
      let language = argLanguage args
      let lang =
          match language with
          | JavaScript -> "JS"
          | TypeScript -> "TypeScript"
          | Python -> "Python"
          | Php -> "PHP"
          | Dart -> "Dart"
  
      Log.always($"Fable: F# to {lang} compiler " + Literals.VERSION)
      Log.always("Thanks to the contributor! @" + Contributors.getRandom() + "\n")
  
      let typedArrays = args.FlagOr("--typedArrays", true)
      let outDir = args.Value("-o", "--outDir") |> Option.map normalizeAbsolutePath
      let outDirLast = outDir |> Option.bind (fun outDir -> outDir.TrimEnd('/').Split('/') |> Array.tryLast) |> Option.defaultValue ""
  