type constructor for the equality typeclass
defines equality for this case class in terms of equality for all its parameters
choose which equality subtype to defer to
choose which equality subtype to defer to
Note that in addition to dispatching based on the type of the first parameter to the equal
method, we check that the second parameter is the same type.
binds the Magnolia macro to the gen
method
equality typeclass instance for integers
equality typeclass instance for strings
companion object to Eq