SPRIG_INLINE void serialize(
		Archive& ar,
		boost::compressed_pair<T0, T1>& value,
		unsigned int const
		)
	{
		ar
			& boost::serialization::make_nvp("first", value.first())
			& boost::serialization::make_nvp("second", value.second())
			;
	}
 void swap(::boost::compressed_pair<T1, T2>& y)
 {
    cp_swap(first_, y.first());
    cp_swap(second_, y.second());
 }
 void swap(::boost::compressed_pair<T1,T2>& y)
 {
    // no need to swap empty base class:
    cp_swap(second_, y.second());
 }