Shouldn't we use `isRandomAccessRange` from std.range? That trait checks against things like `char[]` which shouldn't be indexed  without taking encoding into account.