Three prevalent themes in the discussion
- Moving invariants into the type system prevents runtime crashes
- “Moving a bunch of things into the type system and out of runtime crashes is one of the ways we make progress.” — AnimalMuppet
-
“If you have a really important invariant that you really don't want to be violated due to run‑time behavior/input, it's a huge benefit to have a compiler that can statically check that it actually can't be.” — treyd
-
Type systems should stay simple; sophisticated checks can be done via separate static analysis
- “I think this is wrong. Type systems should be simpler, and you should design it so that your language is easily and correctly statically checked.” — dnautics
-
“A complex type system isn't ideal; with the right set of primitives you can achieve sophistication without complexity.” — kfsone
-
Hardware‑aware typing (e.g., describing machine heterogeneity in the type system)
- “Most compilers hard‑code a cost model. Vx reads one. A machine file describes the memory hierarchy and interconnect of a real part, and the compiler admits or rejects placements against it.” — dev_dan_2
- “Heterogeneity belongs in the type system, not in the runtime.” — Cyan488