the boost::icl in boost v1.55 has a bug when working with libc++,
> Assertion failed: (this->_map.find(inter_val) == this->_map.end()),
> function gap_insert, file
> /usr/local/include/boost/icl/interval_base_map.hpp, line 555.
see https://svn.boost.org/trac/boost/ticket/9501 and
https://svn.boost.org/trac/boost/ticket/9987
the bug was fixed in boost v1.56. as a workaround we use the the
`set` from `boost::container` instead of the `std::set` from libc++.
we should drop this workaround once we bump the supported boost
version from 1.42 to 1.56.