# File lib/dm-core/property.rb, line 705
    def typecast(value)
      if @type && @type.respond_to?(:typecast)
        @type.typecast(value, self)
      elsif value.nil? || primitive?(value)
        value
      elsif respond_to?(:typecast_to_primitive)
        typecast_to_primitive(value)
      end
    end