This is the same as the original but for lists, and the names and error messages in this project reflect that and make sense to non-Lispers.