More SProduct.evaluate optimisation - I think this is quite good now.