                         if intersects.contains(where: { $0.1.index == _l_idx && $0.1.split.almostEqual(_t1) && $0.0.index == _r_idx && $0.0.split.almostEqual(_t2) }) {
                             continue
                         }
-                        intersects.append((ConstructiveSolidResult.Table.Split(index: _l_idx, split: _t1), ConstructiveSolidResult.Table.Split(index: _r_idx, split: _t2)))
+                        intersects.append((ConstructiveSolidResult.Split(index: _l_idx, split: _t1), ConstructiveSolidResult.Split(index: _r_idx, split: _t2)))
                     }
                 } else {
                     if let a = segment2.fromPoint(segment1.end) {

            return
        }
        
        for (index, item) in _data.enumerated() {
            looping_left.append(contentsOf: _data.suffix(from: index + 1).filter { item.right.almostEqual($0.right) }.map { (item.left, $0.left) })
            looping_right.append(contentsOf: _data.suffix(from: index + 1).filter { item.left.almostEqual($0.left) }.map { (item.right, $0.right) })
        }
        if looping_left.count != 0 || looping_right.count != 0 {
            return
        }
        if _data.count < 2 {
            if left._contains(right, hint: Set(0..<right.count).subtracting(overlap_r_index)) {
                overlap = .superset
            } else if right._contains(left, hint: Set(0..<left.count).subtracting(overlap_l_index)) {

                        if intersects.contains(where: { $0.1.index == _l_idx && $0.1.split.almostEqual(_t1) && $0.0.index == _r_idx && $0.0.split.almostEqual(0) }) {
                            continue
                        }
                        intersects.append((ConstructiveSolidResult.Split(index: _l_idx, split: _t1), ConstructiveSolidResult.Split(index: _r_idx, split: 0)))
                    }
                }
            }
