anchor.diff:      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"
  +    |> Option.defaultWith (fun () ->
  +        // Set default 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" -> "py"
  +        | _ -> "js"
  +    )
       |> (function
  +    | "js" | "javascript" | "JavaScript" -> JavaScript
       | "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)
  +    | _ -> JavaScript)
   
   type Runner =
     static member Run(args: CliArgs, rootDir: string, runProc: RunProcess option, ?fsprojPath: string, ?watch) = result {
  
positive.code:             Ok fsprojPath
  
      let language = argLanguage args
      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 ""
  
negative.code:             match commands with
              | ["--version"] -> ()
              | _ ->
                  if args.FlagEnabled "--verbose" then
                      Log.makeVerbose()
  
  