代理就像()

由於 Proxy 不包含執行時資訊,因此你可以隨時為任何 f 編寫自然轉換 f a -> Proxy a

proxy::f a -> Proxy a
proxy _ = Proxy

這就像任何給定的值總是可以刪除到 ()

unit::a -> ()
unit _ = ()

從技術上講,Proxy 是仿函式類別中的終端物件,就像 () 是值類別中的終端物件一樣。