I'm having a hard time sorting out why lambda expressions are assignable to some functional interfaces, but not others. An example, using some functional interfaces from the Metrics library:
Gauge<Double> foo = () -> { return null; };
RatioGauge bar = () -> { return null; };
The second statement has a compile error (in Eclipse):
The target type of this expression must be a functional interface
As far as I can tell, RatioGauge is a functional interface. Am I missing something?