removing this field means that it's currently not possible to read out of a pail. Can you keep this argument and make a second method in the companion object that instantiates a pailsource meant for reading? maybe `def source` and `def sink` instead of `def apply`. Otherwise, given the current design of pail, looks good to me.