And very static - a lambda for one functional interface can't be used to represent a lambda for another functional interface with an identical signature. That's probably okay from a Java perspective, but really dampens most of the functional-type stuff you might want to use it for