I'm curious to why we need std.range.equal in cases such as bool isPalindrome(Range)(in Range range) if (isBidirectionalRange!Range) { return range.retro.equal(range); } Why isn't equality == operator used here instead? /Per