namespace boost {
namespace icl {
template<typename DomainT, ICL_COMPARE Compare,
ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc>
struct is_interval_container<icl::separate_interval_set< DomainT, Compare, Interval, Alloc >>;
template<typename DomainT, ICL_COMPARE Compare,
ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc>
struct is_interval_separator<icl::separate_interval_set< DomainT, Compare, Interval, Alloc >>;
template<typename DomainT, ICL_COMPARE Compare,
ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc>
struct is_set<icl::separate_interval_set< DomainT, Compare, Interval, Alloc >>;
template<typename DomainT,
ICL_COMPARE Compare = ICL_COMPARE_INSTANCE(ICL_COMPARE_DEFAULT, DomainT),
ICL_INTERVAL(ICL_COMPARE) Interval = ICL_INTERVAL_INSTANCE(ICL_INTERVAL_DEFAULT, DomainT, Compare),
ICL_ALLOC Alloc = std::allocator>
class separate_interval_set;
template<typename DomainT, ICL_COMPARE Compare,
ICL_INTERVAL(ICL_COMPARE) Interval, ICL_ALLOC Alloc>
struct type_to_string<icl::separate_interval_set< DomainT, Compare, Interval, Alloc >>;
}
}