A limited version of ShapedValue which can be constructed for every type
that has a valid shape. We use it to enforce that a table's * projection
has a valid shape. A ProvenShape has itself a Shape so it can be used in
place of the value that it wraps for purposes of packing and unpacking.
A limited version of ShapedValue which can be constructed for every type that has a valid shape. We use it to enforce that a table's * projection has a valid shape. A ProvenShape has itself a Shape so it can be used in place of the value that it wraps for purposes of packing and unpacking.