For internal use by LowPriority
For internal use by LowPriority
Allows LowPriority to ignore some implicits.
Allows LowPriority to ignore some implicits.
Added to an implicit def like
implicit def genericThing[F, G] (implicit ev: LowPriority.Ignoring[Witness.`"anyThing"`.T], gen: Generic.Aux[F, G], underlying: Thing[G] ): Thing[F] = ???
it prevents genericThing to provide an instance of Thing[F] if an implicit one is already
available elsewhere EXCEPT if it is provided by a method called anyThing. In this case, it
lets genericThing provide a Thing[F] too, effectively taking precedence over the instances
provided by anyThing.