打字孔的語法

型別化的孔是表示式上下文中的單個下劃線(_)或不在範圍內的有效 Haskell 識別符號。在存在型別化漏洞之前,這兩種情況都會觸發錯誤,因此新語法不會干擾任何舊語法。

控制打字孔的行為

型別化孔的預設行為是在遇到型別化孔時產生編譯時錯誤。但是,有幾個標誌可以微調他們的行為。這些標誌總結如下( GHC trac ):

預設情況下,GHC 啟用了型別化的孔,並在遇到型別化的孔時產生編譯錯誤。

啟用 -fdefer-type-errors -fdefer-typed-holes 時,孔錯誤將轉換為警告,並在評估時導致執行時錯誤。

警告標誌 -fwarn-typed-holes 預設開啟。沒有 -fdefer-type-errors-fdefer-typed-holes 這個標誌是無操作的,因為在這些條件下打字的孔是錯誤的。如果啟用了任一延遲標誌(將鍵入的孔錯誤轉換為警告),-fno-warn-typed-holes 標誌將禁用警告。這意味著編譯靜默成功並且評估一個洞將產生執行時錯誤。