function bind( x :tree; val :tree; e :Env ) :Env; var b :Env; begin new(b); b^.id := x^.vid; b^.index := x^.index; b^.v := val; b^.next := e; bind := b end; function bound( x :tree; var val :tree; e :Env ) :boolean; begin if e=nil then bound := false else if (e^.id=x^.vid) and (e^.index=x^.index) then begin val := e^.v; bound := true end else bound := bound( x, val, e^.next ) end; {\fB Manipulate Environments. \fP}