Make the reader a mandatory argument

The default reader (`\_ -> Nothing`) isn't very useful so
it needs to be overridden in all interesting cases anyway.