ghci中的[safe]标记是什么意思? [英] What does [safe] marker mean in ghci?
本文介绍了ghci中的[safe]标记是什么意思?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Prelude Data.Void> :info Void
data Void - 在`Data.Void'中定义
实例[safe] Eq Void - 在`Data.Void'中定义
实例[safe] Ord Void - 定义在`Data.Void'中
实例[safe] Read Void - 在`Data.Void'中定义
实例[safe]显示无效 - 在`Data.Void'中定义
[safe]是什么意思?
解决方案它只是意味着数据类型是在使用安全扩展定义的模块中定义的。您可以在用户指南中找到扩展程序的详细信息实际上,您可以通过使用
安全
扩展名定义模块来测试自己: { - #LANGUAGE Safe# - }
data Test =测试派生(Eq,Show)
然后在 ghci
中试用它:
λ> :我测试
数据测试=测试
实例[安全] Eq测试
实例[安全]显示测试
但请注意,在目前的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'
What does [safe] mean?
解决方案
It simply means that the datatype is defined in a module which is defined using safe extension. You can find the details of the extension in the user guide.
In fact, you can test that yourself by defining a module using the Safe
extension:
{-#LANGUAGE Safe#-}
data Test = Test deriving (Eq, Show)
And then trying it out in ghci
:
λ> :i Test
data Test = Test
instance [safe] Eq Test
instance [safe] Show Test
But note that in the current GHC (7.10.2), the safe extension cannot be relied of the trust guarantee because of this ghc bug.
这篇关于ghci中的[safe]标记是什么意思?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文