major cleanup of tsig datastructures and extend/merge operations; fixes old bugs in classes/arities code; proper treatment of nonterminals and syntax-only types;
Last = List +
consts last :: 'a list => 'a
recdef last "measure (%xs. length xs)"
"last [x] = x"
"last (x#y#zs) = last (y#zs)"
end