3 ms·
I think Hindley Milner (for decidability) + Linear Types (for resource management) + Refinement Types (for lightly asserting invariants) + Delimited Continuatio
by solomonb 5mo ago
I think Hindley Milner (for decidability) + Linear Types (for resource management) + Refinement Types (for lightly asserting invariants) + Delimited Continuation based Effects (for tracking effectful code) + Unison style Content Addressability (for corralling code changes, documentation, and tests) would make a really nice language for an LLM.
- still_grokking 5mo agoThat's in large parts Scala. It doesn't have Hindley-Milner type inference, but it has very strong type inference. We will get linearity soon thanks to and as part of the Capybara[1] effort. Refinement types are already long a reality. The whole new effect tracking thing is based on delimited continuations. The Unison style content addressability comes up now and then, maybe it will become a reality at some point. It's though mostly not a language thing but more a build system thing. Scala is already great for for LLMs also for other reasons: https://arxiv.org/html/2510.11151v1 https://arxiv.org/html/2510.11151v1 [1] https://2025.workshop.scala-lang.org/details/scala-2025/6/System-Capybara-Capture-Tracking-for-Ownership-and-Borrowing https://2025.workshop.scala-lang.org/details/scala-2025/6/Sy...
- solomonb 5mo agoAFAIK Scala's type system is not decidable. The point of Hindley Milner (and I really should have said System F without impredicative or higher rank types) was to get decidable polymorphism not type inference.