generic data specification
parameter
elem
using ref
node := mknode(. .left : ref;. .val : elem;. .right : ref)
;
variables nd : node;
left : ref;
val : elem;
right : ref;
end generic data specification