Scala 3 introduces a new NotGiven
type as mentioned @ Given Instances. I am finding hard to come up with an usecase for it. Can someone explain where such a construct will be useful?
1 Like
Being able to know that the compiler couldn’t find a typeclass instance for some type(s) can be very useful.
For example, to ensure two types are different with NotGiven[A =:= B]
To provide default behaviour if there is a more specific rule before like given deaultEncoder[A](using NotGiven[Encoder[A]]) as Encoder[A] with
In general, you can think of given values as logical proofs, as such NotGiven
is the negation of such proof.
2 Likes