I have these two minimal programs:
import std.string; void main() { string str = "abc"; int i = str.count("ab"); } and: import std.string; import std.algorithm; void main() { string str = "abc"; int i = str.count("ab"); } The only difference is line 2, where I import std.algorithm. The first program compiles fine, but the second program does not compile, spitting out the error message: bash-3.2$ dmd -ofdummy dummy.d /u/sah2659/dmd2/linux/bin/../../src/phobos/std/functional.d(176): Error: static assert "Bad binary function q{a == b}. You need to use a valid D expression using symbols a of type dchar and b of type string." /u/sah2659/dmd2/linux/bin/../../src/phobos/std/functional.d(179): instantiated from here: Body!(dchar,string) /u/sah2659/dmd2/linux/bin/../../src/phobos/std/algorithm.d(3410): instantiated from here: result!(dchar,string) dummy.d(7): instantiated from here: count!("a == b",string,string) I can't imagine I'm the first person to notice a bug like this, so is there something I am doing wrong?