anchor.diff:          if not (File.Exists s) then
               let msg = sprintf "File not found: %s" s in
                   raise (ArgError msg);
  -        options := { !options with command = Insert; pemfile = s }
  +        options := { !options with command = Some(Insert(s)) }
   
       let o_dumpdir = fun s ->
  -        options := { !options with command = Dump; dumpdir = s }
  +        options := { !options with command = Some(Dump(s)) }
           
       let o_dbfile2 = fun s ->
           if not (File.Exists s) then
               let msg = sprintf "File not found: %s" s in
                   raise (ArgError msg);
  -        options := { !options with command = Import; dbfile2 = s }
  +        options := { !options with command = Some(Import(s)) }
   
       let o_check = fun () ->
  -        options := { !options with command = Check }
  +        options := { !options with command = Some(Check) }
       
       let o_force = fun () ->
           options := { !options with force = true }
  
positive.code:         for (p,g) in keys do
              match DHDB.select db (p,g) with
              | None -> failwith "unexpected"
              | Some(q,b) ->
                  save_params_to_file (sprintf "%s/dhparams_%u.pem" dir !n) (DHX(p,q,g));
                  n := !n + 1u
  
  
negative.code:         options := { !options with confidence = n }
  
      let specs = [
          "-db",        ArgType.String o_dbfile  , sprintf "Database file (creates an empty one if it does not exist); default: %s" defaultDBFile
          "-insert",    ArgType.String o_pemfile , "Insert parameters stored in a PEM file"
          "-dump",      ArgType.String o_dumpdir , "Dump entries in the database as PEM files in the directory specified"
          "-check",     ArgType.Unit o_check     , "Check the validity of parameters in the database"
          "-import",    ArgType.String o_dbfile2 , "Import all parameters from given database"
          "-minPlen",   ArgType.Int o_minplen    , sprintf "Minimum modulus length in bits (used for validation); default: %d" defaultMinPlen
          "-minQlen",   ArgType.Int o_minqlen    , sprintf "Minimum subgroup size in bits (used for validation); default: %d" defaultMinQlen
          "-confidence",ArgType.Int o_confidence , sprintf "Confidence level for primality checks; default: %d" defaultConfidence
          "-force",     ArgType.Unit o_force     , "Do not validate parameters before inserting or importing them"   
      ]
  
      let specs = specs |> List.map (fun (sh, ty, desc) -> ArgInfo(sh, ty, desc))
  
      let usage = sprintf "Usage: %s options" myname
  
  