I suspect this is because the doer struct is unexported - which is by design, to prevent package users from creating their own with new(do.doer).
This needs to be refactored so the documentation is available, and an invalid doer (create via new) won't result in panics from nils.