Domain classes should be traits
dcsobral opened this issue · 1 comments
dcsobral commented
Github feature flags sometimes add fields to objects. While having the domain case classes as final is good, they should be implementations instead of being used directly in the type signature of the algebras. That way, one can extend an algebra to return more data without adding a new method.
And while the contravariant nature of parameters prevent us from doing the same for data sent to github, it would still be helpful to be able to extend those traits as a guideline.
dcsobral commented
Note that my motive is to make the tagless final design achieve its goals. This is not an abstract issue for me, as I run into this very problem.