Since you mentioned using IntelliJ, I can't resist asking the question: Have you played with Scala too? If yes, how would you compare OCaml to it?
Sbt is actually worse than dune+opam .
Ocaml has type inference globally so you are not required to spray type annotations at everything.
But Scala does have type directed lookup (type classes/ implicits).
Both have the curse of implementation/typing choices that stops you from doing the actual job ;)