Function types as applied type constructor