打字孔的語法
型別化的孔是表示式上下文中的單個下劃線(_
)或不在範圍內的有效 Haskell 識別符號。在存在型別化漏洞之前,這兩種情況都會觸發錯誤,因此新語法不會干擾任何舊語法。
控制打字孔的行為
型別化孔的預設行為是在遇到型別化孔時產生編譯時錯誤。但是,有幾個標誌可以微調他們的行為。這些標誌總結如下( GHC trac ):
預設情況下,GHC 啟用了型別化的孔,並在遇到型別化的孔時產生編譯錯誤。
啟用
-fdefer-type-errors
或-fdefer-typed-holes
時,孔錯誤將轉換為警告,並在評估時導致執行時錯誤。警告標誌
-fwarn-typed-holes
預設開啟。沒有-fdefer-type-errors
或-fdefer-typed-holes
這個標誌是無操作的,因為在這些條件下打字的孔是錯誤的。如果啟用了任一延遲標誌(將鍵入的孔錯誤轉換為警告),-fno-warn-typed-holes
標誌將禁用警告。這意味著編譯靜默成功並且評估一個洞將產生執行時錯誤。