One more issue: the various circularity detections use special variables, lists and linear search (slow but easy to implement for initial exploration)
One more issue: the various circularity detections use special variables, lists and linear search (slow but easy to implement for initial exploration)