anchor.diff:                                  raise <| Bad (getUsage argSpecs usageText)
                            f arg2
                            cursor := !cursor + 2
  -                    | FloatArg f ->
  +                    | Float f ->
                            let arg2 =
                               let arg2 = getSecondArg ()
                               try float arg2
  
positive.code:                                 raise <| Bad (getUsage argSpecs usageText)
                           f arg2
                           cursor := !cursor + 2
                      | RestArg f ->
                          incr cursor
                          while !cursor < nargs do
                               f argv.[!cursor]
  
negative.code:             needing to convert/validate it manually. *)
  
  ////
  //type TypedArgInfo<'T> = {
  //    //
  //    ShortName : char option;
  //    //
  //    ShortAliases : Set<char>;
  //    //
  //    Name : string;
  //    //
  //    Aliases : Set<string>;
  //    //
  //    Description : string option;
  //    //
  //    DefaultValue : 'T option;
  //}
  //
  //module Example =
  //    /// Help options.
  //    let helpArgInfo : TypedArgInfo<unit> = {
  //        ShortName = Some 'h';
  //        ShortAliases = Set.singleton '?';
  //        Name = "help";
  //        Aliases = Set.empty;
  //        Description = Some "Display this list of options.";
  //        DefaultValue = None;
  //    }
  
  
  (*  The code below is from the F# PowerPack and is only temporary --
      eventually it will be replaced with a new, functional-style API. *)
  