I am reading the code of lazy beckend and has some question.

- We use the hash value of the computational graph to represent the uniqueness of the computational graph.How we avoid hash collisions？
`GetComputationCache()->Add(coll.hash, cached_computation);`

- LazyGraphExecutor::RunPostOrder

We use topological sorting to reorder the computation graph, but this will lose the original computation order of the computation graph, sometimes we need to know the original computation order of the user, can we reorder based on the construction order of the tensor and then based on the postorder？