This is a large change so that covariant structures work correctly.
Again some tests are failing because of pr13090.
Fix type->contract on structures. Now uses struct/c.
Make struct type contracts better
Removed unused fields in Struct
Clean up contracts in TR.
Fix -struct to use the right number of arguments to make-Struct.
Make tc-struct no longer have long lines.
Removed unused constructor-return argument.
Cleanup of tc-struct and tc-toplevel.
Removed cert value.
More struct work
More cleanup of struct type registration.
Cleanup define-struct parsing.
Split adding the struct type and the bindings.
WIP on fixing free-variance.
Working covariant applications.
Made free-variance have less special cases.
A quick reminder (since we just had a huge bunch of tiny commits for the frtime work): it's better to edit the commits to make them more useful for people who would look at the changes later rather than be a true reflection of how your worked them in. I'm specifically suspicious about commits like "WIP" and "More foo work" which are almost always snapshots of your own progress that are later not going to be useful. (By "edit" I mean what you get with an interactive rebase.)
Does this depend on pull request #139? I ask because it regresses fail/cnt-struct-err.rkt, which is about the contracts generated for struct accessors. Unfortunately, this PR doesn't apply cleanly on top of 139, but I'm working on merging that now.
Oh, silly me. This includes #139.
I think I know what's wrong here. The tc-toplevel traversal no longer records struct procedures as being defined in this module, so it doesn't think it needs to put contracts on them when exported. This should be easy to fix.
Ok, I think I have a fix.
This is now merged, and can be closed.