This post collection thing might be the best option instead of the
consumer of this library having to use type switches all over the place