I've been playing around with state reducers (see MVI in Mosby) and I'm trying out short/efficient ways to write these state changes down using sealed classes. For debuggability's sake I'd prefer if these state changes have clear toString methods. One way is using normal classes and just implementing these toString methods manually (or generate them using AS). But this gets quite tedious. So I thought why not use data classes, those automatically get a nice toString method! But some state changes do not have any content, and Kotlin doesn't like it when you try to make a data class without parameters (who would've guessed). So I'm wondering: Is there a way to write a data class without constructor parameters? Or maybe a way around it. Below is a snippet showcasing both situations: