evaluate keyword argument default expressions in order, so they can depend on prior keyword arguments