Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: Fix declaration order bug once again
Consider: ```fsharp type A = | A of (int * A) list ``` When the type `int * A` is required, the previous algorithm does: - try `int * A` - try `A` - emit `A` - try `(int * A) list` - try `int * A` (known) - emit `(int * A) list` - emit `int * A` and then error because the type of the `head` is incomplete. The new algorithm defers to generate type definitions as possible. One of flaws is the generator must be carefully where C compilers require types to be complete.
- Loading branch information