template haskell mkName parses operator ^.. as a qualified operator
^.. (provided by lens) is parsed as the operator
. from module
^. In other words:
import Language.Haskell.TH.Syntax main = case mkName "^.." of Name (OccName ".") (NameQ (ModName "^")) -> error "bug" Name (OccName "^..") NameS -> print "desired"
The context here is that I get
^.. out-of-scope when I try to use that operator in code that is handled by haskell-src-meta.