Hum... I'd rather we keep something like:

```D
template binaryReverseArgs(alias pred)
{
    alias RA = reverseArgs!fun;
    alias binaryReverseArgs(E1, E2) = RA!(E1, E2);
}
```

I think that works? If not, keeping the original implementation is fine I think: I'd hate to see `binaryReverseArgs` used to reverse a "trinary" function, or to break something where someoneused `is(typeof(binaryReverseArgs!pred(args)))`.