Maybe this should not be "WithoutCheck"? I think a non-fixed type should ALWAYS have a serialized size -- otherwise, there was a programming error, so a throw for non-fixed types will allow the problem to be detected earlier.