Polylist L;
L.first() returns Object
L.rest() returns Polylist
Polylist.cons(Object F, Polylist R)
returns Polylist
also
R.cons(F) does same
L.isEmpty() returns Boolean
L.reverse() returns new list
L.append(Polylist M) returns L with list M appended
L.equals(M) check list equality
L.toString() makes string of L (S-expression form)