\ pairs 9/28/97 gwj \ compile structuring words : ?match ( n n -- ) <> abort" pair word mismatch" ; : pair#: ( ; name -- ) here constant ; : (make.pair) ( ; name exe -- xt ) create immediate ' ; : ,open.pair ( addr -- pair# ) dup @ compile, cell+ @ ; : (close.pair) ( pair# addr -- addr' ) dup cell+ >r @ ?match r> ; \ simple pair words : pair{: ( pair# ; name exec -- ) (make.pair) , , does> ,open.pair ; : }pair{: ( c.pair# o.pair# ; name exec -- ) (make.pair) rot , , , does> (close.pair) ,open.pair ; : }pair: ( pair# ; name exec -- ) (make.pair) swap , , does> (close.pair) @ compile, ;