The problem with extending functional interfaces is that you can't really use them as formal parameter types unless you don't mind losing the option to accept pre-existing or composed functions:
It would have been nice if
Java supported type aliases, but since it doesn't I recommend that you keep using the least specific type for your formal types, even if they include lots of generic type variables.