operators can consume arbitrary number of arguments