https://issues.dlang.org/show_bug.cgi?id=16994
--- Comment #3 from Martin Nowak <[email protected]> --- Seems to be a duplicate of issue 14894, only in this case the 2 compilations produce different functions with the same mangling instead of causing a linker error. It just happens that in both compilations a lambda with the same number (__lambda21) is passed to varreduce paired with the same argument types, the linker will just pick the implementation that occurs first. A workaround is to convert the lambdas alias VarReduceMin = (a, b) => (a < b ? a : b); to template functions. auto VarReduceMin(A, B)(A a, B b) { return (a < b ? a : b); } --
