What were FFS/TODO, but has been done.

-   analyse() could return the depth of the found solution (or 0).
    Would be more accurate sometimes (e.g. for result presentation).

-   Implement a bit intelligence when very few attacker pieces present:
    == 1: just a K: it cannot mate, unconditionally.
    == 2: just 1 attacker: when there is a legal defender move,
	  which beats (this attacker), there is no more mating hope.
    Note, that the above is independant of the analysis depth.

-   Fatal 2-mate defenders check:
    When we have to solve in 2 moves, (are not in check) and the defender
    could check the attacker such that the attacker would be forced
    to move his king, there are only very small chances
    that such a king move can mate at all:
    (a)	it must uncover a check
    (b) the checking defender must have gone into a pinning
    Thus, a move that
    (1) does not change the legality of the above move
    (2) does not change the effects of the above move
    cannot possibly be solution of a 2-mate.

    Done as FAC in Jan 89.

-   When selecting a defender move, and the resulting job is non-trivial
    (i.e. >> 1-mate), search all legal defender moves (the resulting position)
    in the memory: when anyone has a known answer => ready.
    Do not enter these positions, when not found.
    Called snooping. First implemented in Feb 1991.

-   More accurately analyse and compose the subresults to gain a result:
    If the attacker is [stale]mate, this board is not solvable in
    any number of moves.
    When all subboards are found larger than necessary in memory,
    then the result is with more moves.
    This can speed up a deep analysis.
    Done in March 1991, together with snooping.

-   statistics: how many moves per piece (per figure type), per #checks

-   when defeating a promotion by beating, let the other 3 attacker
    promotions get the same result (do not execute the moves,
    in order to find them in acm; do not ask answer.c repeatedly).

-   Use "const"

-   Change to ANSI

-   Dokumentiere Options im Output.

-   Hilfsmatt:  snooping bevor Zug ausfuehren; bei recall von 70-90%
		sollte das viele Zuege sparen.

-   Find out, why "move_undo()" is more expensive than "move_exec()",
    on some machines.
    This is because of bad implementations for "switch".

-   #define fuer Produktions-Versionen
    - komplett nur Produktion: keine Versionen, kein debug, keine Statistik.
    - komplett experimentell: mit allem
    - Zwischenversion?

-   FEN-output (control, fixed lang english)

- solopt: statistics?
- solution: add rest depth to "..." (like in solopt)
- Produce a refutation table (why the other key moves were not successful),
  including all the depths.  Special notations where a move is not known.

- statistics: do1mate: rate of success

-   analyse.c:
    Explicit option to disable "anti-mate" heuristic.	-A

- option: just count width of legal tree of depth K plies.
  [last depth just by move_gen & counting]
  Cf ca/i/TH/iniTree
  -G N

-   When snooping, we may detect that a defender's move is too bad.
    Then, don't use it.
    MA_SKIP in do_ana()

-   apx_cost: gets an overflow on large jobs.  Solution unclear.
    - 64 bit integer arithmetic?
    - double?
    - splitted approach?

- MAX_MOVES: 120 is too small (place 8 Qs on board).  Max known = 218.
  Using 256 costs 10% speed!  (lack of locality on stack) [D.Corbit]
  Change to explicit special move stack allocation.
  No: that slowdown had another reason (init auto Movelist).

- when -t: flush out last counter delta (may be most interesting one)
- Put TRC and other do_ana()-like stuff into solv_lost/solv_set,
  or put them into analyse.c
- acm: acm_saved not inited;  check all vars for init!
- acm: stat: avg-cost per info, sum cost per info
- acm: ACM_DYN

-   output.c:
    Option fuer Darstellung des Schlagens:
    - Suffix ":"
    - Infix  "x"

- input: command for FEN, FEN-castling, FEN-ep

Klaeren, was/wie von wem zu erzeugen ist.  "allchest.c" klaeren.
- INIT_GET / INIT_PUT
- PROD_LEV
- mklcltyp
- mkinited
- mkinitdefs
- acmsize.h / ACM_MEGS
- mksupp.c: mk_main & exit codes

- achest.c & dchest.c for CPROGS
