Lower-priority codec implicits, which transform other codecs. For example, when deriving a codec List[T] <-> Either[A, B], given codecs ca: T <-> A and cb: T <-> B, we want to get listHead(eitherRight(ca, cb)), not eitherRight(listHead(ca), listHead(cb)) (although they would function the same).
Create a codec which during decoding, first tries to decode values on the left using c1. If this fails for any reason, decoding is done using c2. Both codecs must have the same low-level values and formats.
Create a codec which during decoding, first tries to decode values on the left using c1. If this fails for any reason, decoding is done using c2. Both codecs must have the same low-level values and formats.
Create a codec which during decoding, first tries to decode values on the right using c2. If this fails for any reason, decoding is done using c1. Both codecs must have the same low-level values and formats.
Create a codec which during decoding, first tries to decode values on the right using c2. If this fails for any reason, decoding is done using c1. Both codecs must have the same low-level values and formats.
For a left-biased variant see Codec.eitherLeft. This right-biased version is the default when using implicit codec resolution.