simple curry module, with nothing *too clever*, and full test coverage