module Language.Haskell.Tools.Refactor.Builtin.ExtensionOrganizer.Checkers.TemplateHaskellChecker where
import Language.Haskell.Tools.Refactor
import Language.Haskell.Tools.Refactor.Builtin.ExtensionOrganizer.ExtMonad
chkTemplateHaskellSplice :: CheckNode Splice
chkTemplateHaskellSplice = addEvidence TemplateHaskell
chkTemplateHaskellQuasiQuote :: CheckNode QuasiQuote
chkTemplateHaskellQuasiQuote = addEvidence QuasiQuotes
chkTemplateHaskellBracket :: CheckNode Bracket
chkTemplateHaskellBracket = addEvidence TemplateHaskellQuotes
chkTemplateHaskellhNamePart :: CheckNode NamePart
chkTemplateHaskellhNamePart = conditional chkTemplateHaskellNamePart' TemplateHaskellQuotes
chkTemplateHaskellNamePart' :: CheckNode NamePart
chkTemplateHaskellNamePart' n@(NamePart name) =
if (head name == '\'') then addEvidence TemplateHaskellQuotes n
else return n