class BinData::BasePrimitive

def assign(val)

def assign(val)
  raise ArgumentError, "can't set a nil value for #{debug_name}" if val.nil?
  unless has_parameter?(:value)
    raw_val = val.respond_to?(:snapshot) ? val.snapshot : val
    @value = begin
               raw_val.dup
             rescue TypeError
               # can't dup Fixnums
               raw_val
             end
  end
end