in my work with explicit topological ordering under the presence of loops, i figured this out:
topological ordering is the same as partial ordering. so for two nodes `{a,b}`, when `a -> b`, then `a < b`.
with cyclical dependencies, this no longer makes sense under a linear partial order. if `a -> b, b -> a`, then `a < b < a`.
we need cyclic partial ordering, which is based on cyclic order (https://en.wikipedia.org/wiki/Cyclic_order). now we can express this after all, as `[a, b, a]`.



