Hello! I recently stumbled across Roc and am liking what I’ve seen so far. One of the most interesting things to me is how it’s statically typed but type annotations are completely optional. I heard it referenced as “principal decidable type inference”. Is this something that’s unique to Roc? I’ve never heard of any other language like this.
Elm is another language with this and I believe also Haskell (I've heard it go by the name global type inference)
haskell has type inference, but it's not (in general) decidable
but in most programs that you'd actually write it's very similar to what elm and roc give you
Last updated: Jul 06 2025 at 12:14 UTC