「「自分と同じシグネチャを持つ関数へのポインタ」を返す関数」へのポインタ型って定義できるんでしょうか?

typedef func_t (*func_t)(obj_t *obj);
func_t func1(obj_t *obj);
func_t func2(obj_t *obj);
func_t func3(obj_t *obj);

のように。(実際にはこうは書けない)

typedef void *(*func_t)(obj_t *obj);
void *func1(obj_t *obj);
...

こんな感じに書いて、あとは必要に応じてキャストすれば済むには済むんですが、気になったもので……。