次の構文の ^^ の部分がわかりません

void (*hoge (int arg1, (*arg2) ())) () { /* ... */ }
------------------------------------^^---------------

呼び出しは

hoge(value, function);

となっています。お願いします。