anchor.diff:            Type = argType;
             HelpText = helpText; }
     
  -//
  -exception private Bad of string
  -//
  -exception private HelpText of string
  +/// When thrown, the string will be displayed to the user (usually printed to the console).
  +exception private ShowText of string
   
   //
   [<Sealed>]
   type ArgParser () =
  -    static let getUsage specs (u : string) =
  +    static let getUsage specs (usageText : string) =
           let sb = System.Text.StringBuilder 100
   
  -        sb.AppendLine u |> ignore
  +        sb.AppendLine usageText |> ignore
   
           specs
           |> List.iter (fun (arg : ArgInfo) ->
  
positive.code:                 | [] ->
                      // If any of the supplied arguments is a help switch, immediately print the help text and exit.
                      if arg = "-help" || arg = "--help" || arg = "/help" || arg = "/help" || arg = "/?" then
                          raise <| HelpText (getUsage argSpecs usageText)
  
                      // Note: for '/abc/def' does not count as an argument
                      // Note: '/abc' does
  
negative.code:                             let arg2 = getSecondArg ()
                              try float arg2
                              with _ ->
                                  raise <| ShowText (getUsage argSpecs usageText)
                           f arg2
                           cursor := !cursor + 2
                      | Rest f ->
  