Make Invalid Domain States Hard to Represent with Kotlin and ArrowUsing value classes, context parameters and typed errors to build a small functional domain modelAug 24, 2026·7 min read·2