template-haskell

    1

    1答えて

    質問は、ライブラリのユーザがの独自のコードをライブラリの中に組み込むことなく、独自のプラグインを提供できるようにHaskellプロジェクトを構成する方法ですソースコード。 私は図書館が が がPluginクラスのインスタンスであるいくつかの(多くの)タイプを提供Plugin型クラスを経由してプラグインを提供foolibことを求めているとし...私は詳しく説明しましょう ユーザーが独自のプラグインを

    3

    1答えて

    テンプレートハスケルでは、Qモナドはすべての魔法が起こる場所です。ただし、Qにはかなり限定されたAPIがあります。私は基本的にはlookupValueName :: String -> Q (Maybe Name)の機能を取り込むタイプvalueNameStore :: Q (String -> Maybe Name)の値を持っていますが、その時点で使用可能な変数のストアがバインドされています。

    3

    1答えて

    例は1000語に相当します。私はちょうど作ったかなり簡単なquasi quoterです。 import Language.Haskell.TH.Quote import Language.Haskell.TH.Syntax quoter :: QuasiQuoter quoter = QuasiQuoter { quotePat = parse } where pars

    6

    1答えて

    私はコンパイル時のエラーやURIというような表現をしたいと思います。 [uri|http://stackoverflow.com|] はコンパイルする必要がありますが、 [uri|foo:/bar:\|] はいけません。 私はQuasiQuotesに出くわしました。これは明らかにこの種の問題です。しかし、私はURIからQ Expを作成することはできません。それはURIためLiftインスタン

    1

    1答えて

    単一のTH関数を持ち、型を定義し、型を使用する方法はありますか?以下の関連コード。 PersonPoly2はmakeRecordSpliceによって定義されており、TH関数でもあるmakeAdaptorAndInstance(Opalayeから)に渡されています。は {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances

    0

    1答えて

    Frames libraryには、CSVファイルに基づいてレコードタイプを生成するreadTable関数があります。 foreign import ccall unsafe "// c code" c_foo :: Int -> IO()のようなコールを生成することはできますか。 私はそう[d| ... |]と[t| ... |] quasiquotersを使用して達成しようとしたが、両方で、私は

    1

    1答えて

    私はYesodを使用して簡単なアプリケーションを構築しており、外部ファイルを持ち込むのに苦労しています。ここに私のコードです:私はwhamletFileでhamletFileを置き換える場合 {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE TemplateHaskell #-}

    0

    1答えて

    ここでは、タイプを定義してmakeLensesを使用してレンズを生成する簡単なコードを示します。 module Api.Jira.Types.Search ( SearchRequest(..) ) where import GHC.Generics import qualified Data.Text as T import Data.Aeson (FromJSON,

    1

    1答えて

    Template Haskellでデータ型を構築する関数(mkSomeと呼ぶ)があります。それは典型的な署名Name -> Q [Dec]を持っています。その本体内 どこか私は パターンマッチングで別のタイプのコンストラクタを抽出しています:だから class MyClass a where specialValue :: a 、私は反復処理しています。これらのコンストラクタcsの

    1

    1答えて

    有効なハスケルコードを含むString(またはTextなど)があります。テンプレートHaskellで[Dec]に変換する方法はありますか? ASTがGHCに直接行かないので、印刷してから解析する段階になると確信しています。 これはTHに異なる "バックエンド"を許可するので、これは素晴らしいことです。たとえば、THよりも多くのHaskell構文をサポートするASTをhaskell-src-exts