引數順序
一旦我們有多個引數,隱式型別引數的問題就變得很明顯了。他們進來了哪個訂單?
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