The listing reader. Reading by group starts from the membership rows and folds a listing's several memberships back into one row, naming which groups it matched; every other read starts from the listings themselves.
Usage
import { listingReader } from "doc.ts";