引數順序
一旦我們有多個引數,隱式型別引數的問題就變得很明顯了。他們進來了哪個訂單?
const::a -> b -> a
寫 const @Int 意味著 a 是否等於 Int,還是 b?如果我們使用像 const::forall a b. a -> b -> a 這樣的 forall 明確說明型別引數,那麼順序如下:a,then b。
如果我們不這樣做,那麼變數的順序是從左到右。要提到的第一個變數是第一個型別引數,第二個是第二個型別引數,依此類推。
如果我們想要指定第二個型別變數但不是第一個變數怎麼辦?我們可以像這樣使用第一個變數的萬用字元
const @_ @Int
這個表示式的型別是
const @_ @Int::a -> Int -> a