Clean up currency() a bit, ensure unique() can take a custom comparator function