初心者質問です。

タイプ宣言の時に関数を指定できると思います。

type T = String -> String

この時の"->"は型コンストラクタなんでしょうか。しかし、

test ((->) a b) = a ++ b

こういうのはダメって怒られます。"->"は特殊な扱いなんでしょうか。
それとも私の発想がどっかおかしいんでしょうか。

よろしくお願いいたします。