所以,在Haskell中,执行此操作非常简单:
data Foo = Bar | Baz
deriving (Read, Show)
这很好,但我希望能够将一些数据作为字符串从Haskell传递给Elm语言。语言足够相似,如果我有一个Haskell实现Read,我可以轻松地将它转换为Elm。
问题是,当我使用派生时,会自动生成该函数,但实际上我无法看到它的作用。
我想知道,有没有办法自动生成解析和显示使用Read和Show的代码,这样我才能真正看到代码本身?
答案 0 :(得分:26)
您可以使用-ddump-deriv
GHC选项查看派生实例的代码:
ghc -ddump-deriv test.hs
[1 of 1] Compiling Test ( test.hs, test.o )
==================== Derived instances ====================
Derived instances:
instance GHC.Show.Show Test.FooBar where
GHC.Show.showsPrec _ Test.Foo = GHC.Show.showString "Foo"
GHC.Show.showsPrec _ Test.Bar = GHC.Show.showString "Bar"
GHC.Show.showList = GHC.Show.showList__ (GHC.Show.showsPrec 0)
Generic representation:
Generated datatypes for meta-information:
Representation types:
答案 1 :(得分:1)
对于堆栈:
<div
className="search-box"
tabIndex="1" // add this line
>
...
</div>
在我的特定情况下,输出为:stack build --ghc-options="-ddump-deriv"