2013-08-30 4 views
20

だから、Haskellで、これを行うには本当に簡単です。自動的にHaskellで読むとショーを生成する(とのコードを参照)する方法

data Foo = Bar | Baz 
    deriving (Read, Show) 

これは素晴らしいですが、私はできるようにしたいのですがいくつかのデータをHaskellからElm言語への文字列として渡します。言語が似ているので、もし私がHaskellのReadの実装をしていれば、手でElmに簡単に変換できます。

私が派生を使用すると、関数は自動的に生成されますが、実際にはそれが何かを見ることはできません。

私は実際にコード自体を見ることができるように、読み込みと表示を使用して解析して表示するためのコードを自動的に生成する方法があるのでしょうか?

答えて

27

あなたが導出インスタンスのコードを参照するには-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: 
関連する問題