Forgive my ignorance but I would love to ask the following question: Is there any reason to couple a pass (InferType) and the module definition itself?
Cons of the issue include:
- mutual global function call would fail InferType
- it poses overly strong requirements over frontend importers
- this would be prohibitive for developing a frontend using Relay as IR, which does or does not do code generation – they may not need such a strongly typed module at once
Therefore, we would love to learn if there is specific reason for this design