I see i must write if (vs2 == cast(Vector2s)(vf)) { writeln("equal"); } That is unacceptable. Is this the only possibility? I thought that opEquals can cast this intern. It would seem that D code isn't so brief as i thought and hoped before.