type Env = ^ Binding; Value = ^ValNode; Binding = record id :alfa; v:Value; next:Env end; ValueClass = (intval, boolval, charval, emptyval, listval, nilval, funcval, deferval); ValNode = record case tag :ValueClass of intval: (n :integer ); boolval:(b :boolean ); charval:(ch:char ); nilval, emptyval:(); listval:(hd, tl :Value); funcval, deferval:( e:tree; r:Env ) end; {\fB Environment and Value Types. \fP}