Implementing concurrency in a process-based language