On Sunday, 11 December 2016 at 11:58:39 UTC, ag0aep6g wrote:
Try putting an `assert(childCrossPoint !is otherCrossPoint);` before the assignment. If it fails, the variables refer to the same node. That would explain how otherCrossPoint.left gets set.
Furthermore, I think he is calling breed on a Tree with itself.i.e. assert(other !is this) would be a more reliable test since it won't be subject to randomness.