Remove trailing spaces
Add an (optional) functorial interface
Add more tests
Update CHANGES