I really wish we could re-use some of this from the `class` docs.