Could you document the rest of these parameters.

Also typically you would just call the parameterized clock "reactor" and if you need specific interfaces of the reactor document them in the doc string.

So something like:
```
:param reactor: An instance of an IReactorTime provider.
```

This way you can easily document if you need multiple reactor interfaces.  Graylog for instance needs IReactorUDP and IReactorTIme.

There probably also isn't a good reason for it to be optional.  The only place it's called without specifying the clock is in the tap and it'd be trivial to change that.