The typeclass encoding is verbose and not straightforward to understand. We could offer a `trait CustomModifier` that you can extend, and implement, and get a typeclass implementation for free.