引數順序

一旦我們有多個引數,隱式型別引數的問題就變得很明顯了。他們進來了哪個訂單?

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