slight improvements in set-cross-product
quite broken at the moment