- In some places the form if not a or not b causes an error. need paren's:
  if (not a) or (not b) ..., somewhat inconsistent.

- INDEX has some properties defined in entry.red since it is the name of
  a hephys function. these must be removed from all source files, in particular
  remprop ('index, 'stat); is needed since index is trying to be a function.

- NTH counts from 1 not 0 as in the franz version (args are inverted too)

- APPEND only takes 2 args.

- beware using EQ to compare numbers, better to use EQN (but must be written
  EQN (n1, n2) not n1 EQN n2, so for now use =.

- PAIR wants its args to be the same length (ick!)

- NUMP is NUMBERP

- must redefine LITER to allow # in names, copy old LITER to LITER1. must
  also PUTV on CURRENTSCANTABLE!* the type 10 on 35 (= #) in INITREDUCE to
  make it a real char (i.e no ! needed on i/o)

- for BOUNDP use NOT (UNBOUNDP ())

- COMPRESS does not intern its result. define a new routine MAKENAME which 
  call INTERN too.

---- COMPILER IS BROKE!!!

- Calling XREAD in IAS or READCH in REM1 causes the prompt to be printed too.
  kill the prompt with
  PROMPTEXP := "";              % kill off the prompt
  SETPCHAR (PROMPTEXP);
  before reading.

- SIMP!* does not like getting '(!*SQ ...) although it should. (was missing
  third arg of nil, is a compiler problem)


- cant do g[a]==k[a]==1 for example.
- cant do let k[0] = 1 if k is implicit because the k[0] is not evaluated.
  even if one allows FINDEX and SYMINDEX to be declared functional, it wont
  work since the system will never see anything in this unevaled form. can
  do this by simply assigning, things like let k[0]^2 = 1 work.
