Can you detect cycles in general though? At first blush it feels like a halting problem.
Re:Löb and möb: strange loops in Haskell
by chowells on Monday January 30, 2023 @02:32PM
(#34585161)
You can't detect all possible cycles statically, but you can definitely detect them when they happen at runtime. When calculating a value, track its dynamic dependencies. If it ends up depending on itself, you have a cycle.
Security Underlying Security (Security)
Where that's the Security object, not the Security ID.
This works great for moeb, until the day that someone accidentally introduces a cycle. Instead you want a representation that looks like:
Security Either CycleDetected a
You can call traverse to make that `Either CycleDetected Security a`.
Is that making any sense at all?
You rapidly realize that X knows Y and Y knows X.