Erlang has a concept of a “file server” which all file IO requests go through: http://erlang.org/doc/man/file.html
The file server is also responsible for managing the CWD (e.g. via :file.set_cwd/1).
Is there a way to utilize multiple file servers so you could do things like have a different CWD for different processes? I’d like to avoid/minimize the CWD as a source of global mutable state if possible.