Skip to content

Conversation

@tnelson
Copy link
Owner

@tnelson tnelson commented Jan 13, 2026

Tracking progression of edits with Claude.

This branch was initially an experiment in adding typed Racket annotations to more of Forge's core files. This was going OK until we realized that the way the AST was structured made using static types difficult: it wasn't always clear what the type of child nodes was, because node/expr/op contained the children field, and a relational expression might have children that are formulas, expressions, or integer expressions. So this commit is a Claude-driven refactor. Tests pass, but still needs my review and to actually return to the static types.

I am pushing this and making it an explicit PR so I can track it, try Copilot review on it, etc.

tnelson and others added 9 commits January 13, 2026 19:26
Resolves conflicts between typed Racket refactoring and dev's options/imports refactoring:

- Keep sigs-structs.rkt as typed Racket with hash-based options
- Use type predicates instead of casts for type safety in send-to-solver.rkt
- Restore VALID_BUILTIN_SOLVERS for proper solver option validation
- Preserve options snapshotting fix for test isolation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@tnelson tnelson merged commit d00fda7 into dev Jan 16, 2026
1 check passed
@tnelson tnelson deleted the feat_refactor_ast branch January 16, 2026 21:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants