I'm wondering why we need as type constraint Eq v for the instances of Semigroup and Monoid. While we will likely eventually need the Eq instance, at the instance level of Semigroup and Monoid, we do not make use of any function that is defined in Eq.
It turns out we don't! Those constraints are redundant, probably made so by some recent changes. I removed them in abf7fc4cd7d7a2fd69510743c62bff99e42a2541 just now. Thanks for mentioning this!
I'm wondering why we need as type constraint
Eq v
for the instances ofSemigroup
andMonoid
. While we will likely eventually need theEq
instance, at the instance level ofSemigroup
andMonoid
, we do not make use of any function that is defined inEq
.https://github.com/jtdaugherty/vty/blob/fe501ccf2716826bf6ea05a666bbcfab36631ca6/src/Graphics/Vty/Attributes.hs#L154-L163