> I had a hunch I was going to run into this problem:

I think it's because my code example used a nested *template*, which is indeed a problem. I did it for the auto-ref, and for the attribute inference. 1 point for lambdas then:

```D
Range stripLeft(Range, E)(Range range, E element)
    if (isInputRange!Range && is(typeof(range.front == element) : bool))
{
    return find!((auto ref a) => a != element)(range);
}
```

This works perfectly fine.