Load this file into Emacs. Use tab to collapse nodes of the trace log.
#{#{1 2} #{3 4 5}}
#{#{1 2} #{3 4 5}}
2
4
(let [c1 (containing-class partition el1) c2 (containing-class partition el2)] (cond (and (not c1) (not c2)) (conj partition #{el2 el1}) (and c1 (not c2)) (add-to-class partition c1 el2) (and c2 (not c1)) (add-to-class partition c2 el1) (and (and c1 c2) (not= c2 c2)) (conj (disj partition c1 c2) (union c1 c2)) :else partition))
#{#{1 2} #{3 4 5}}
#{1 2}
#{#{1 2} #{3 4 5}}
2
#{1 2}
(#{1 2})
#{1 2}
#{3 4 5}
#{#{1 2} #{3 4 5}}
4
#{3 4 5}
(#{3 4 5})
#{3 4 5}
(cond (and (not c1) (not c2)) (conj partition #{el2 el1}) (and c1 (not c2)) (add-to-class partition c1 el2) (and c2 (not c1)) (add-to-class partition c2 el1) (and (and c1 c2) (not= c2 c2)) (conj (disj partition c1 c2) (union c1 c2)) :else partition)
#{#{1 2} #{3 4 5}}
false
false
#{1 2}
false
#{1 2}
false
#{3 4 5}
false
#{3 4 5}
false
#{1 2}
false
#{3 4 5}
#{1 2}
#{3 4 5}
false
#{3 4 5}
#{3 4 5}
#{#{1 2} #{3 4 5}}