Create a new instance of this class derived from the current instance
        such that:

            (new.trace_id == current.trace_id and
             new.parent_span_id == current.span_id)

        The new L{Trace} instance will have a new unique span_id and if set the
        endpoint of the current L{Trace} object.

        @param name: C{str} name describing the new span represented by the new
            Trace object.

        @returns: L{Trace}

def child(self, name):
        """
        Create a new instance of this class derived from the current instance
        such that:

            (new.trace_id == current.trace_id and
             new.parent_span_id == current.span_id)

        The new L{Trace} instance will have a new unique span_id and if set the
        endpoint of the current L{Trace} object.

        @param name: C{str} name describing the new span represented by the new
            Trace object.

        @returns: L{Trace}
        """
        trace = self.__class__(
            name, trace_id=self.trace_id, parent_span_id=self.span_id)
        trace.set_endpoint(self._endpoint)

        return trace