Well, these uses of pack/unpack with "i" are to work around platform endianness and sizeof(int), right? We have two options: 1) a specific matcher; 2) a helper to construct values to use with existing matchers. If a helper, we probably want to parameterize (or augment) the value (eg `bignum_value()` vs `bignum_value(42)`).

In the case of a helper, you could have it convert the computed value to a specific size+endianness and compare that against a literal value, or you could have it convert a literal value and compare it against the unchanged computed value. I tend to prefer not mutating the computed value but there are many exceptions to that.

I look at these questions from the perspective of what makes the most sense in a particular spec and how broadly applicable the construct is. Matchers can make great sense but may be more limited. A helper can be more generic but not contribute as much to clarity of the specs.

Which do you think makes more sense?