anchor.diff:      Print(" Subgroup generators : ", sgens, "\n");
     fi;
     
  -  # If option "outfile" is set then we only want to produce an ACE input file
  -  optval := ValueOption("outfile");
  -  if optval<>fail and IsString(optval) then
  -    infile := optval;
  -  else
  -    infile := ACEinfo.infile;
  -  fi;
  -
     GetOptionValue := function(defaultvalue, list)
       # Check among options (a CALL_ACE variable defined above) for any 
       # settings of the known option synonyms in list. The latest such
  
positive.code:   #                  (Length(x) = 1 or (Length(x) = 2 and x[2] in [0,1])) or
    #                 x in [0..2]],
    easy := [4, [""]],
    echo := [4, [0,1]],       # hijacked! ... we don't pass this to ACE
    enumeration := [4, IsString],
    felsch := [3, ["",0,1]],
    ffactor := [1, x -> IsZero(x) or IsPosInt(x)],# "ffactor" and "fill"
  
negative.code: #############################################################################
  ####
  ##
  #V  NonACEbinOptions . . . . . . . list of known ACE options that are not ACE
  ##  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . binary options.
  ##
  
  NonACEbinOptions := [ "ACEinfile", "echo", "ACEoutfile", "silent" ];
  
  #############################################################################
  ####
  ##
  #F  CALL_ACE  . . . . .  The function that actually does the work when either
  ##  . . . . . . . . . . . . . . . . CallACE or ACEStats is called by the user
  ##
  BindGlobal("CALL_ACE", function(arg)
  local fgens,rels,sgens,a,i,j,k,n,nums,fullopt,opt,optval,options,known,
        donothing,echo,gens,CheckValidOption,DoWords,FullOptionName,
        GetOptionValue,IsValidOptionValue,MatchesKnownOption,ProcessOption,
        infile,outfile,instream,line,col,ok,p,rowentries,table,cosettable,
        stats,statval,words,ACEfname;
  
    fgens := arg[1];
    rels := arg[2];
  