<commit_before>
**Mono.Options** is a beautiful command line parsing library. It is small, succinct, a 
joy to use, easy and powerful, all in one.

It is one of those libraries that does more with less. Something that every 
programmer aspires to write, but that we seldom achieve.

It has also struck a good balance for Unix and Windows developers as options can 
be used on both systems, and map well to practices on both systems. It took a long 
time to get the right "blend" of parsing, but I think we have achieved it.

There are a few steps to get everything in place. First, we need to set up the 
options expected:

    // these variables will be set when the command line is parsed
    var verbosity = 0;
    var shouldShowHelp = false;
    var names = new List<string> ();
    var repeat = 1;

    // thses are the available options, not that they set the variables
    var options = new OptionSet { 
        { "n|name=", "the name of someone to greet.", n => names.Add (n) }, 
        { "r|repeat=", "the number of times to repeat the greeting.", (int r) => repeat = r }, 
        { "v", "increase debug message verbosity", v => { 
            if (v != null) 
                ++verbosity; 
        } }, 
        { "h|help", "show this message and exit", h => shouldShowHelp = h != null },
    };

Then, in the `static void Main (string[] args)` method, we parse the incomming 
arguments and get a list of any extras:

    List<string> extra;
    try {
        // parse the command line
        extra = options.Parse (args);
    } catch (OptionException e) {
        // output some error message
        Console.Write ("greet: ");
        Console.WriteLine (e.Message);
        Console.WriteLine ("Try `greet --help' for more information.");<commit_msg>[Mono.Options] Fix a GettingStarted typo.<commit_after>
**Mono.Options** is a beautiful command line parsing library. It is small, succinct, a 
joy to use, easy and powerful, all in one.

It is one of those libraries that does more with less. Something that every 
programmer aspires to write, but that we seldom achieve.

It has also struck a good balance for Unix and Windows developers as options can 
be used on both systems, and map well to practices on both systems. It took a long 
time to get the right "blend" of parsing, but I think we have achieved it.

There are a few steps to get everything in place. First, we need to set up the 
options expected:

    // these variables will be set when the command line is parsed
    var verbosity = 0;
    var shouldShowHelp = false;
    var names = new List<string> ();
    var repeat = 1;

    // thses are the available options, not that they set the variables
    var options = new OptionSet { 
        { "n|name=", "the name of someone to greet.", n => names.Add (n) }, 
        { "r|repeat=", "the number of times to repeat the greeting.", (int r) => repeat = r }, 
        { "v", "increase debug message verbosity", v => { 
            if (v != null) 
                ++verbosity; 
        } }, 
        { "h|help", "show this message and exit", h => shouldShowHelp = h != null },
    };

Then, in the `static void Main (string[] args)` method, we parse the incoming 
arguments and get a list of any extras:

    List<string> extra;
    try {
        // parse the command line
        extra = options.Parse (args);
    } catch (OptionException e) {
        // output some error message
        Console.Write ("greet: ");
        Console.WriteLine (e.Message);
        Console.WriteLine ("Try `greet --help' for more information.");
{'fraction_non_alphanumeric': 0.09400506614128905, 'fraction_numerical': 0.001125809175344779, 'mean_word_length': 2.6451282051282052, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 15, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2881597', 'n_tokens_mistral': 997, 'n_tokens_neox': 953, 'n_words': 489}