# File lib/dm-core/property.rb, line 423
    def set(resource, value)
      # [YK] We previously checked for new_record? here, but lazy loading
      # is blocked anyway if we're in a new record by by
      # Resource#reload_attributes. This may eventually be useful for
      # optimizing, but let's (a) benchmark it first, and (b) do
      # whatever refactoring is necessary, which will benefit from the
      # centralize checking
      lazy_load(resource)

      new_value = typecast(value)
      old_value = get!(resource)

      set_original_value(resource, old_value)

      set!(resource, new_value)
    end