On 6/10/2017 5:28 PM, Andrei Alexandrescu wrote: > && is(typeof(lvalueOf!R.popFront)) && msg("must support back"); Wouldn't it work better as: && (is(typeof(lvalueOf!R.popFront)) || msg("must support back")); bool msg(string) { return false; } ? Then msg() is only called if the first clause fails.