2015-11-01 20 views
5
Prelude Data.Void> :info Void 
data Void  -- Defined in `Data.Void' 
instance [safe] Eq Void -- Defined in `Data.Void' 
instance [safe] Ord Void -- Defined in `Data.Void' 
instance [safe] Read Void -- Defined in `Data.Void' 
instance [safe] Show Void -- Defined in `Data.Void' 

[Güvenli] ne anlama geliyor?[güvenli] işaretleyici ghci'de ne anlama geliyor?

cevap

4

Sadece veri türü, güvenli uzantı kullanılarak tanımlanan bir modülde tanımlandığı anlamına gelir. Uzatma in the user guide ayrıntılarını bulabilirsiniz. ghci bunu deneyerek sonra

{-#LANGUAGE Safe#-} 

data Test = Test deriving (Eq, Show) 

Ve:

Aslında, Safe uzantısını kullanan bir modül tanımlayarak kendinizi test edebilirsiniz

λ> :i Test 
data Test = Test  
instance [safe] Eq Test 
instance [safe] Show Test 

Ama şimdiki ghc unutmayın (7.10.2), güvenli uzantı, this ghc bug nedeniyle güven garantisinden yararlanamaz.

+0

[Güvenli Erişim için Haskell Kullanıcı Kılavuzu] 'na bağlantı güncellendi (https://downloads.haskell.org/~ghc/7.8.4/docs/html/users_guide/safe-haskell.html) – mschmidt