In #461, I introduced identical pretty-printing for Source and for the source of a Package—but since Package is distinct from Source, rather than simply having a source (in order to avoid having a bunch of Options and the possibility of invalid data), this code simply ends up duplicated. Is there a nice way to abstract over this?