which languages have a REPL and Type Annotation?

https://lemmy.blahaj.zone/post/33597882

Blåhaj Lemmy - Choose Your Interface

F#, Ocaml, and Scala come to mind.

Yes, F# is such a sleeper hit language. Basically Ocaml++ with a bunch of cool extra goodies. Open source, high performance runtime and tons of great libraries.

I’ve been using it at work and it’s excellent

If only it had the one thing of OCaml does that’s actually important: ML modules.

Okay, I’m being kinda glib. Ocaml has plenty of other stuff going for it, and F# is a great, productive language, but its biggest weakness is something it doesn’t have.

What’s the big thing that enables, I’ve played with so many languages but I’ve never actually used OCaml enough to understand that feature
Modules are called such because they enable modularity. pathsensitive.com/…/modules-matter-most-for-masse… that link will explain it more thoroughly than I want to or probably could.
'Modules Matter Most' for the Masses

The title of this post should be in double quotes, but it seems parts of Google have not learned about abstracting sanitization . Screenshot...

Ah ok, we’re getting into Coq proofs. I’m trying to work through Software Foundations but it’s so tricky! I feel like I need an intellect potion to get it
That, or Haskell’s typeclasses (which serve much of the same need). Without one or the other you lose out on a lot of expressive power.
Modules are substantially more expressive than typeclasses, but yes, type classes get you most of the way there.
They have different sets of tradeoffs and prioritize different things. Nevertheless, you can express typeclasses with the module system just as you can express the module system with typeclasses (using modern Haskell language extensions to the typeclass system). One is not more expressive than the other. You give me any usage of the module system, and I can show you how it can be done with typeclasses.
Hah, I was afraid you would say that when I wrote my comment. I don’t mean expressive in the sense of “can encode X”; I mean expressive in the sense of “can nicely encode X”. The bullshit you have to put yourself through in Haskell to get the core niceties of modules is unpalatable (to me, anyway).
You likely aren’t familiar with modern Haskell, tbh. Things have changed a lot in the last handful of years. If you give me an example, I can show you how it can be done pretty reasonably (I write Haskell professionally, fwiw).