namespace boost {
namespace icl {
template<typename DomainT, typename CodomainT> struct mapping_pair;
template<typename SubType, typename DomainT, typename CodomainT,
typename Traits = icl::partial_absorber,
ICL_COMPARE Compare = ICL_COMPARE_INSTANCE(std::less, DomainT),
ICL_COMBINE Combine = ICL_COMBINE_INSTANCE(icl::inplace_plus, CodomainT),
ICL_SECTION Section = ICL_SECTION_INSTANCE(icl::inter_section, CodomainT),
ICL_INTERVAL(ICL_COMPARE) Interval = ICL_INTERVAL_INSTANCE(ICL_INTERVAL_DEFAULT, DomainT, Compare),
ICL_ALLOC Alloc = std::allocator>
class interval_base_map;
template<typename SubType, typename DomainT, typename CodomainT,
typename Traits, ICL_COMPARE Compare, ICL_COMBINE Combine,
ICL_SECTION Section, ICL_INTERVAL(ICL_COMPARE) Interval,
ICL_ALLOC Alloc>
struct is_map<icl::interval_base_map< SubType, DomainT, CodomainT, Traits, Compare, Combine, Section, Interval, Alloc >>;
template<typename SubType, typename DomainT, typename CodomainT,
typename Traits, ICL_COMPARE Compare, ICL_COMBINE Combine,
ICL_SECTION Section, ICL_INTERVAL(ICL_COMPARE) Interval,
ICL_ALLOC Alloc>
struct has_inverse<icl::interval_base_map< SubType, DomainT, CodomainT, Traits, Compare, Combine, Section, Interval, Alloc >>;
template<typename SubType, typename DomainT, typename CodomainT,
typename Traits, ICL_COMPARE Compare, ICL_COMBINE Combine,
ICL_SECTION Section, ICL_INTERVAL(ICL_COMPARE) Interval,
ICL_ALLOC Alloc>
struct is_interval_container<icl::interval_base_map< SubType, DomainT, CodomainT, Traits, Compare, Combine, Section, Interval, Alloc >>;
template<typename SubType, typename DomainT, typename CodomainT,
typename Traits, ICL_COMPARE Compare, ICL_COMBINE Combine,
ICL_SECTION Section, ICL_INTERVAL(ICL_COMPARE) Interval,
ICL_ALLOC Alloc>
struct absorbs_identities<icl::interval_base_map< SubType, DomainT, CodomainT, Traits, Compare, Combine, Section, Interval, Alloc >>;
template<typename SubType, typename DomainT, typename CodomainT,
typename Traits, ICL_COMPARE Compare, ICL_COMBINE Combine,
ICL_SECTION Section, ICL_INTERVAL(ICL_COMPARE) Interval,
ICL_ALLOC Alloc>
struct is_total<icl::interval_base_map< SubType, DomainT, CodomainT, Traits, Compare, Combine, Section, Interval, Alloc >>;
}
}