: <local> ( name -- word )
! Create a local variable identifier
- f <word>
+ <uninterned-word>
dup t "local?" set-word-prop ;
M: local literalize ;
PREDICATE: local-reader < word "local-reader?" word-prop ;
: <local-reader> ( name -- word )
- f <word>
+ <uninterned-word>
dup t "local-reader?" set-word-prop ;
M: local-reader literalize ;
PREDICATE: local-writer < word "local-writer?" word-prop ;
: <local-writer> ( reader -- word )
- dup name>> "!" append f <word> {
+ dup name>> "!" append <uninterned-word> {
[ nip t "local-writer?" set-word-prop ]
[ swap "local-reader" set-word-prop ]
[ "local-writer" set-word-prop ]