the problem is that you have to ensure that F is callable with certain signature as well.

I don't think the refactoring is necessary myself, but if anyone can come up of a better idea, I'm all ears.