             switch other.segment {
             case let .line(q1):
                 if let p = LineSegment(start, p1).intersect(LineSegment(other.start, q1)) {
-                    result = [(fromPoint(p), other.fromPoint(p))].compactMap(split_check)
+                    result = [(fromPoint(p), other._fromPoint(p))].compactMap(split_check)
                 }
             case let .quad(q1, q2):
                 if let t = QuadBezier(other.start, q1, q2).intersect(LineSegment(start, p1), in: -0.5...1.5) {

            switch other.segment {
            case let .line(q1):
                if let t = QuadBezier(start, p1, p2).intersect(LineSegment(other.start, q1), in: -0.5...1.5) {
                    result = t.map { ($0, other.fromPoint(QuadBezier(start, p1, p2).eval($0))) }.compactMap(split_check).sorted { $0.0 }
                }
            case let .quad(q1, q2):
                if let t = QuadBezier(start, p1, p2).intersect(QuadBezier(other.start, q1, q2), in: -0.5...1.5) {
                    result = t.map { ($0, other.fromPoint(QuadBezier(start, p1, p2).eval($0))) }.compactMap(split_check).sorted { $0.0 }
                }
            case let .cubic(q1, q2, q3):
                if let t = CubicBezier(other.start, q1, q2, q3).intersect(QuadBezier(start, p1, p2), in: -0.5...1.5) {

            switch other.segment {
            case let .line(q1):
                if let t = CubicBezier(start, p1, p2, p3).intersect(LineSegment(other.start, q1), in: -0.5...1.5) {
                    result = t.map { ($0, other._fromPoint(CubicBezier(start, p1, p2, p3).eval($0))) }.compactMap(split_check).sorted { $0.0 }
                }
            case let .quad(q1, q2):
                if let t = CubicBezier(start, p1, p2, p3).intersect(QuadBezier(other.start, q1, q2), in: -0.5...1.5) {
                    result = t.map { ($0, other._fromPoint(CubicBezier(start, p1, p2, p3).eval($0))) }.compactMap(split_check).sorted { $0.0 }
                }
            case let .cubic(q1, q2, q3):
                if let t = CubicBezier(start, p1, p2, p3).intersect(CubicBezier(other.start, q1, q2, q3), in: -0.5...1.5) {
                    result = t.map { ($0, other._fromPoint(CubicBezier(start, p1, p2, p3).eval($0))) }.compactMap(split_check).sorted { $0.0 }
                }
            }
        }
