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?