anchor.diff:      static member Parse (specs, ?other, ?usageText) =
           let current = ref 0
           let argv = System.Environment.GetCommandLineArgs () 
  -        try ArgParser.ParsePartial (current, argv, specs, ?other = other, ?usageText = usageText)
  +        try
  +            ArgParser.ParsePartial (
  +                current, argv, Array.toList specs, ?other = other, ?usageText = usageText)
           with
  -            | Bad h
  -            | HelpText h ->
  -                System.Console.Error.WriteLine h
  -                System.Console.Error.Flush ()
  -                exit 1
  -            | e ->
  -                reraise ()
  +        | ShowText text ->
  +            System.Console.Error.WriteLine text
  +            System.Console.Error.Flush ()
  +            exit 1
  +        | e ->
  +            reraise ()
       #endif
  
positive.code:           Type = argType;
            HelpText = helpText; }
    
  //
  exception private Bad of string
  //
  exception private HelpText of string
  
  //
  [<Sealed>]
  type ArgParser () =
      static let getUsage specs (u : string) =
          let sb = System.Text.StringBuilder 100
  
          sb.AppendLine u |> ignore
  
          specs
          |> List.iter (fun (arg : ArgInfo) ->
  
negative.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 <| ShowText (getUsage argSpecs usageText)
  
                      // Note: for '/abc/def' does not count as an argument
                      // Note: '/abc' does
  