From (get-env "FOO") to (environment.FOO) to (env.FOO) to $FOO

So I noticed generalized accessors bring some promising ideas.

But they aren't quite what's needed here. You could make an object with a field in it that was able to read or write an environment variable when accessed via TUPLE! or SET-TUPLE!. But making an object that had no literal fields but did the tuple decoding itself is another thing.

Fortunately tuple processing is now built on PICK and POKE. So what's necessary here is to make a way for objects to have their own custom PICK and POKE methods.