Alexandru Nedelcu
banner
alexn.org
Alexandru Nedelcu
@alexn.org
Software developer, FP, Scala, Kotlin, Java / JVM, Haskell, Rust; contributor to https://alexn.org, https://monix.io, https://typelevel.org.

🌍 Bucharest, Romania
https://alexn.org/about/
I hate it :-P

Seriously, I don't think writing all those annotations is any less effort than composing opts or commands.

But YMMV. Also, thanks for the code, as I'm looking to work on some macros and may take inspiration from it :)

github.com/indoorvivant...
GitHub - indoorvivants/decline-derive: Derive Decline CLIs automatically from your enums and case classes in Scala 3
Derive Decline CLIs automatically from your enums and case classes in Scala 3 - indoorvivants/decline-derive
github.com
November 14, 2025 at 10:13 AM
Looks weird at first, but you're working with just values that are composable, it's intuitive for complicated validations or multiple commands with sub-commands, defined in multiple subprojects. This instead of a brittle or limiting macro-based or OOP-based DSL (e.g., Rust's Clap or Kotlin's Clikt).
November 14, 2025 at 7:48 AM
Those are the applicative types. In Scala, we solve that with syntax for tuples, e.g., `parMapN`, but it's uglier.
November 13, 2025 at 12:17 PM
You can improve it by telling where it went wrong, so by having a dialog. But it's so freaking frustrating that you may as well do the job yourself – works better if there are some tests defined, at least it can converge on a solution by bumping into walls.

alexn.org/blog/2025/10...
'AI' Sucks the Joy Out of Programming
I’ve used spicy auto-complete, as well as agents running in my IDE, in my CLI, or on GitHub’s server-side. I’ve been experimenting enough with LLM/AI-driven programming to have an opinion on it. And i...
alexn.org
November 10, 2025 at 1:01 PM
A type-class instance is just a dictionary of functions, indeed, and this is a common tactic, even in Haskell, because in Haskell type-class instances aren't just values, and that can be limiting.

But the super-power of type-classes is that you can derive their instances.
November 4, 2025 at 11:29 AM
Type-classes are generic interfaces. You're referring to OOP subtyping, which is powerful, and I can ask the same question in reverse (i.e., why do you need OOP, when you could …).

Type-classes work better w/ functions + ideology (note that I love OOP, too):

alexn.org/blog/2022/05...
OOP vs Type Classes: Ideology
This article explores the difference between OOP design, and parametric polymorphism with Type Classes, as both are possible in Scala.
alexn.org
November 2, 2025 at 9:58 AM
Much of that thought leadership is obviously LLM-generated
October 7, 2025 at 8:53 PM