[safe] 标记在 ghci 中是什么意思?
What does [safe] marker mean in ghci?
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'
[安全]是什么意思?
它只是意味着数据类型是在使用安全扩展定义的模块中定义的。您可以找到扩展程序 in the user guide.
的详细信息
事实上,您可以通过使用 Safe
扩展定义模块来自己测试:
{-#LANGUAGE Safe#-}
data Test = Test deriving (Eq, Show)
然后在 ghci
中试用:
λ> :i Test
data Test = Test
instance [safe] Eq Test
instance [safe] Show Test
但请注意,在当前的GHC(7.10.2)中,由于this ghc bug.
,安全扩展无法依赖信任保证。
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'
[安全]是什么意思?
它只是意味着数据类型是在使用安全扩展定义的模块中定义的。您可以找到扩展程序 in the user guide.
的详细信息事实上,您可以通过使用 Safe
扩展定义模块来自己测试:
{-#LANGUAGE Safe#-}
data Test = Test deriving (Eq, Show)
然后在 ghci
中试用:
λ> :i Test
data Test = Test
instance [safe] Eq Test
instance [safe] Show Test
但请注意,在当前的GHC(7.10.2)中,由于this ghc bug.
,安全扩展无法依赖信任保证。