def _isCompatible(self, other, reporter):
        """
        This is the environment implementation of
        :meth:`BaseSegment.isCompatible`.

        Subclasses may override this method.
        """
        segment1 = self
        segment2 = other
        # type
        if segment1.type != segment2.type:
            # line <-> curve can be converted
            if set((segment1.type, segment2.type)) != set(("curve", "line")):
                reporter.typeDifference = True
                reporter.fatal = True