因此,在 Haskell 中,这样做真的很容易:
data Foo = Bar | Baz
deriving (Read, Show)
这很棒,但我希望能够将一些数据作为字符串从 Haskell 传递到 Elm 语言。这些语言非常相似,如果我有 Read 的 Haskell 实现,我可以轻松地将其手动转换为 Elm。
问题是,当我使用派生时,函数会自动生成,但我实际上看不到它的作用。
我想知道,有没有一种方法可以使用 Read 和 Show 自动生成用于解析和显示的代码,以便我可以真正看到代码本身?
最佳答案
您可以使用 -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:
关于parsing - 如何在 Haskell 中查看派生实例/派生的生成代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18538055/