Run into a D bug while trying to fix a Neat bug involving implcast of null class types to supertypes leading to null not being preserved: issue 10785 - diamond interface inheritance patterns with covariant methods cause misassignment of classinfo. To work around this, change Compare to be purely Expr, not Cond (the diamond is Expr and Cond both implement Iterable).