Cyrus just can’t stop! First he Refactored Optional<>, basically to use a singleton for None<>
He kept getting annoyed with himself for having an interface with only one method (IOptional), as that’s a smell that you need a delegate. I insisted that an interface is the right thing, because a delegate isn’t just a single-method interface – it also is just about “shape”. That is, a method with the right signature can satisfy a matching delegate, but you can’t satisfy an interface with a class unless you actually inherit from that interface.
To put it another way: methods don’t inherit from delegates.
Or yet another: inheritance counts from something.
He finally agreed and let it be.