abstracted environment slots so that I can easily change their representation
will be used to implement copy-env and env-equal-p, which shouldn't have all
this logic in it