refactor: Use (string, int) for names instead of just a string #232
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
説明
たとえば以下のようなコードがあったとする。
これは変数名が衝突していて面倒なので、内部的には
みたいに変数名を付け替えています。
このときに変数名全体をひとつの文字列として "n$3" みたいにして保持しています。
すると変数名をさらに付け替えるときに "n$3" から "n" を切り出して別の数字を付けて "n$5" にして…となにかと面倒です。そこで ("n", 3) というタプルで持つようにすると実装がきれいになります。
参考: https://hackage.haskell.org/package/template-haskell-2.17.0.0/docs/Language-Haskell-TH-Syntax.html#t:Name