I think of FP practices as being young, but *Fortran* supports annotations for explicit inputs, outputs and purity!
miniblog.
Related Posts
LLMs have been really helpful for me porting some JS projects to TS.
Since the types are erased and annotations are optional, I can go gradually and safely with more minimal human oversight.
(I'm not sure if it'll significantly help robustness, but it's lovely for navigation.)
I find myself using a "splatter then clean up" technique when working with code.
I add a ton of prints/logs/asserts/type annotations until I've found the issue. I then throw them all away!
It feels like redundant work, but I don't have a nicer solution.
Most of the gradual type systems I've seen are targetting existing languages: you want to interact with existing libraries that don't have type annotations.
Are there many greenfield languages with gradual types? It's a useful technique in other cases, such as refactoring.