Typed Racket: Sound Gradual Typing with Occurrence Typing and Typed/Untyped Boundaries
Typed Racket enables static types for core algorithms while keeping I/O in untyped Racket. Connect them with require/typed boundaries that enforce contracts at runtime. Covers occurrence typing, parametric polymorphism, nominal structs, mutable-field pitfalls, and verification.