Limit the objects that can be sent across processes
Currently you can send all but two objects across processes: files, and generators. But sending other objects may produce unexpected results, or even a crash. For example, sending a closure across processes currently results in a stack overflow. This is probably the result of the copying logic getting stuck in a loop trying to copy an object that eventually refers back to itself.
Assuming for a moment copying worked fine, there are some objects that probably shouldn't be sent across processes. For example, sending closures may result in lots of unexpected objects being copied. There may be more object types in the future for which copying may do more harm than good.
Long term we need to make this more strict in the VM level, and somehow expose this through the type system. The latter may be a challenge, if it's even possible.