On Wednesday, 23 September 2020 at 11:28:11 UTC, Simen Kjærås wrote: > A correct implementation would be: > > override bool opEquals(Object o) { > if (!cast(Shape)o) return false; > return (cast(Shape)o).volume == this.volume; > } > > -- > Simen Thanks. This solved the problem.