def typecast_to_primitive(value)
        if value.respond_to?(:to_date)
          value.to_date
        elsif value.is_a?(::Hash) || value.respond_to?(:to_mash)
          typecast_hash_to_date(value)