>full of inconsistencies and bolted-on features that are practically useful but definitely not simple or elegantly designed
Care to elaborate? What are you referring to?
Care to elaborate? What are you referring to?
- First-class modules don't feel very first class, with how clunky it is to use modules at the value level
- Records are very clunky and hacky to use
- Generative functors are a hack
- Special language-level equality magic is awful (although SML also has this problem)
- Special `let` forms (whether via ppx or integrated into the language) feel really hacky
- GADTs require too much handholding of the typechecker
- All the "Objective" parts have very few redeeming qualities and should probably never have existed
- The way infix operators work is really half-assed
I don't think OCaml is a _bad_ language - it's very practically useful. It's just not simple or elegant.