float->float->float は float->(float->float) のこと。
つまり float を受け取って、float->float 型の関数を
返す。
どんな関数でも引数は一つ、って思ってくれ。
# let deriv = function f -> function dx -> function x -> (f(x +. dx) -. f(x)) /. dx;;
val deriv : (float -> float) -> float -> float -> float = <fun>
って書いても一緒さ。