If we're going to add support for spawning a process yourself, then we should probably add a third constructor here:

```haskell
data ChildStart =
    RunClosure !(Closure (Process ()))  -- is/runs the process
  | SpawnClosure !(Closure (Process ProcessId)) -- spawns the process
  | StartChan !(SendPort (ChildKey, SendPort ProcessId))  -- send the key to the channel and waits for a pid to monitor
```