template-haskell

    7

    1答えて

    なぜテンプレートHaskellはスタンドアロン派生宣言の引用を無視するのですか? {-# LANGUAGE TemplateHaskell, StandaloneDeriving #-} data Test a = Test a $([d| deriving instance Show a => Show (Test a); f x = x |]) ghci> :l Test.hs [1

    12

    3答えて

    ScalaでSBTツールチェーンを使用する場合、コンパイル時にスケーラコードを生成するためにプロジェクトのソースの特別な部分を読み込むタスクを記述することは可能ですか? これに関するアイデアや記事/チュートリアルはありますか?私はTemplate Haskellに似たものを探しています。

    7

    2答えて

    私は(ここではメイン、)現在のモジュールの名前を出力些細なテンプレートHaskellのプログラムを持っている: {-# LANGUAGE TemplateHaskell #-} module Main (main ) where import Language.Haskell.TH import Language.Haskell.TH.Syntax modName ∷ String

    9

    2答えて

    私は、その出力がクラスインスタンスに格納されているデータ型フィールドの説明に依存するコードジェネレータを作成しています。しかし、私は、TH生成の引数で関数を実行する方法を見つけることができません。 {-# LANGUAGE TemplateHaskell, ScopedTypeVariables #-} module Generator where import Language.Haskel

    4

    1答えて

    準引用符を使用すると、コンパイル時にASTコードを生成できますが、生成されたコードは準引用符が書き込まれた場所に挿入されます。任意の方法で、コンパイル時に生成されたコードを他の場所に挿入することは可能ですか?例えば、QQが書かれたものとは異なる特定のモジュールファイルでは?ハードコーディングされたモジュール構造に依存しますが、それは問題ありません。 これはQQでは不可能だが、誰かがそれを達成する別

    7

    2答えて

    私はmethod1,method2,method3のような機能を持っています。それらのすべてのために、testMethod1,testMethod2,testMethod3のようなHUnitのテスト機能があります。私はエラー メッセージの接頭辞として機能名の冗長コピーを避けるために、そのような何かそれを呼び出すしたいと思います testMethod1 = TestCase $ asser

    7

    1答えて

    現在、私はすべての解析や型チェックなどの問題を扱わずに、Haskellのサブセットから翻訳をしようとしています。ドキュメンテーションは、関数の本体(すべての定義)をその名前で取得する関数を理解するのに役立たなかった。このコールの コンテキスト fac 0 = 1 fac x = z * fac (x - 1) getBody = ... main = do x <- runQ

    7

    1答えて

    フィールドレベルの多態性を持つレコード構造を作成するためにタイプレベルの種類を使用し、レンズを自動的に提供するVinyl packageを試しています。前者は名前の衝突なしに互いにサブタイプのレコード構造を可能にし、後者はネストされた構造の更新を劇的に簡素化するので、これらの機能はどちらも私のプロジェクトにとって非常に便利です。 問題は結果として生じる構造を直列化することに伴い発生します。通常、私

    13

    1答えて

    私が述べイェソドブック、以下のよ: をしかし-ddump-スプライスGHCオプションを使用することによって、我々は、生成時に即時 外観を得ることができますコード。多くのクリーンアップ版は次のとおりです。 どうすればよいですか?私は次のようにディレクトリを残しghc -XTemplateHaskell -ddump-splices Page.hs持つファイル、コンパイルしようとしました:これらのファ

    5

    2答えて

    Decの最新(2.8.0.0)の定義は、以下のインスタンスコンストラクタを持っています InstanceD Cxt Type [Dec] は、一種類のみをインスタンス化することができるようです。これを回避する方法はありますか?