The Arr_segment_traits_2<Kernel>::Curve_2 type is derived from the Kernel::Segment_2 class, thus it has the same functionality. An object of this type can be created directly from a Kernel::Segment_2 object or from two Kernel::Point_2 objects that specify its endpoints.
The Kernel must use a number type that supports exact computations with rational numbers, such as Quotient<Gmpz> or leda_rational. In this case, since the caching methods help avoiding cascaded computations it is also safe to use Quotient<MP_Float> as the number type. Other inexact representations can be used at the user's own risk.