I'm a bit concerned about adding in `if ev` code (which leads to `if copas` and `if X`). Maybe we should either and require ev (or copas, or something) or else consider a system to implement external plugins.