

Thanks. I think it’s most fair to count what a language has without extensions but thanks for the correction. To that end, Haskell basically has Dependent Types now too if you pile 10 extensions together (singletons, linear types, and others) and squint a little. It’ll easily be the first production-grade language to do so.












Of course, they have side effects. Side effects are what the computation does. Otherwise, they would simply make the box hot.
The difference between Haskell and most languages is that Haskell forces one to keep that impurity at the outer edges. It enforces that constantly, making programs easier to reason about.
I heard it explained succinctly lately: types are all of the possible inputs and inputs of a program while functions encapsulate the mutation. Excel, for example, is a purely functional language.