Вы можете увидеть в этом простом примере, как это переименовывает тип и значение конструкторы из A
в A_0
и A_1
при преобразовании из выражения цитаты к AST:Как ускользнуть от переименования символов в AST, генерируемых из цитаты выражения?
Prelude Language.Haskell.TH> runQ [d|data A = A|]
[DataD [] A_0 [] [NormalC A_1 []] []]
Как применять имена, чтобы остаться так, как я указывать?
' [d | данные A = A |] 'на верхнем уровне делают« данные A = A »без _1 или _0. Если вы делаете другие вещи с первым деком, я думаю, вы можете изменить 'NameFlavour' или игнорировать его. – aavogt