Filter out struct/list features for pivots

I would prefer those sub traits didn't exists, but even if they do, we shouldn't be pattern matching on them outside of the value code. So I would go with the isPrimitive combinator (preferably that matches on all the cases rather than the traits so we get some compiler support).