environments
works on a dots list created by {codedots w,
while dots_environments
works on arguments you pass in.
dots_environments(...)
environments(x)
environments(x) <- value
"environments"(x) <- value
environments<-
constructs a new list of unevaluated promises
with the same expressions but different environments.