
[ !(int,int) : int ]
m!n = (1*2*3*...*m)/((1*2*3*...*n)*(1*2*3*...*(mn)))
m! = 1*2*3*...*m
!n = 1 if n=0; 1 otherwise

[ <=(int,int) : int ]
[ <(int,int) : int ]
[ ==(int,int) : int ]
[ >(int,int) : int ]
[ >=(int,int) : int ]
[ !=(int,int) : int ]
Binary comparison of operand values: if a comparison is met, the
result is 1, otherwise 0.
Read <= as less than or equal, == as
equal, and != as not equal.

[ (int,int) : int ]
bitwise or on binary representation of operands
[ &(int,int) : int ]
bitwise and on binary representation of operands
[ ^(int,int) : int ]
logic exclusive or on binary representation of operands
^n = (n+1), i.e. bitwise negation of representation of n

[ +(int,int) : int ]
[ (int,int) : int ]
[ *(int,int) : int ]
[ /(int,int) : int ]
[ %(int,int) : int ]
Division and remainder satisfy: n = (n/m)*m + n%m
Remainder has same sign as left operand

[ <=(real,real) : int ]
[ <(real,real) : int ]
[ ==(real,real) : int ]
[ >(real,real) : int ]
[ >=(real,real) : int ]
[ !=(real,real) : int ]

[ +(real,real) : real ]
[ (real,real) : real ]
[ *(real,real) : real ]
[ /(real,real) : real ]

[ +(complex,complex) : complex ]
[ (complex,complex) : complex ]
[ *(complex,complex) : complex ]
[ /(complex,complex) : complex ]

[ +(int,real) : real ]
[ +(real,int) : real ]
[ (int,real) : real ]
[ (real,int) : real ]
[ *(int,real) : real ]
[ *(real,int) : real ]
[ /(real,int) : real ]
[ /(int,real) : real ]
[ +(int,complex) : complex ]
[ +(complex,int) : complex ]
[ (int,complex) : complex ]
[ (complex,int) : complex ]
[ *(int,complex) : complex ]
[ *(complex,int) : complex ]
[ /(int,complex) : complex ]
[ /(complex,int) : complex ]
[ +(real,complex) : complex ]
[ +(complex,real) : complex ]
[ (real,complex) : complex ]
[ (complex,real) : complex ]
[ *(real,complex) : complex ]
[ *(complex,real) : complex ]
[ /(real,complex) : complex ]
[ /(complex,real) : complex ]

[ ~(NONE,complex) : complex ]
Complex complement

[ <<(Output,int) : Output ]
[ <<(Output,real) : Output ]
[ <<(Output,string) : Output ]
[ <<(Output,Text) : Output ]
[ <<(Output,complex) : Output ]
Streamed output (e.g. to a terminal or diskfile):

[ << OF aa {Output<<aa}(Output,aa List) : Output ]
[ << OF aa {Output<<aa}(Output,aa Array) : Output ]
[ << OF A,B {Output<<A,Output<<B}(Output,[A,B]) : Output ]
[ << OF A {Output<<A}(Output,A Option) : Output ]
[ << OF A {Output<<A}(Output,A Tree) : Output ]
Output of composite values requires output of components, so some
additional operands is generated automatically
An identifier in a list after an OF symbol, e.g. aa,
denotes an arbitrary type. A braced, formal comparisons,
e.g. {Output<<aa}, calls for an automatic identification of
an operand, e.g. to output aavalues
The symbol