final case class Case[A, B](typeName: SomeTypeName, extract: A=>Option[B], differ: Differ[B])
A single possible case in a OneOfDiffer.
A single possible case in a OneOfDiffer.
A typeName is required because we want to provide an alternative name. For example, a JSON array may be stored/compared as a List, but we want to call it JsonArray