2015-11-01 10 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' 

[安全]とはどういう意味ですか?ghciで[安全]マーカーの意味は何ですか?

答えて

4

これは、安全な拡張を使用して定義されたモジュールでデータ型が定義されていることを意味します。拡張子in the user guideの詳細を見つけることができます。 ghciでそれを試して、その後

{-#LANGUAGE Safe#-} 

data Test = Test deriving (Eq, Show) 

そして:

実際には、あなたはSafe拡張子を使用してモジュールを定義することで、その自分自身をテストすることができ

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

をしかし、現在のGHCであることに注意します(7.10.2)の場合、this ghc bugのため、信用保証の信頼できる延長はできません。

+0

[安全な拡張用のHaskellユーザーガイド](https://downloads.haskell.org/~ghc/7.8.4/docs/html/users_guide/safe-haskell.html)へのリンクが更新されました。 – mschmidt

関連する問題