総称的記述のための全称限量子

次をどう解釈すべきか?

length: ∀α.list(α) → Int

次の例を見ると、

first: ∀α.list(α) → maybe(α)

括弧の付け方は次のようになる。

length: ∀α.(list(α) → Int)
first: ∀α.(list(α) → maybe(α))

意味は、

length∈ Πα.([list(α), Int])
first∈ Πα.([list(α), maybe(α)])

ようするに、「コロン → 所属記号、全称記号 → パイ、矢印 → 指数記号」として辻褄があう。

次のような書き方したらどうだろう?

∀α. length: list(α) → Int

あるいは:

For α. 
length: list(α) → Int

lengthには暗黙の引数 α が渡る気がする。明示すれば

For α. 
length_α : list(α) → Int

暗黙の引数〈パラメータ〉、明示的引数、隠蔽引数(計算可能なので原則指定しない引数)の問題はよく考える必要がある。課題。