template haskell mkName parses operator ^.. as a qualified operator
|Reported by:||aavogt||Owned by:|
|Type of failure:||None/Unknown||Test Case:||th/T8633|
|Related Tickets:||Differential Rev(s):|
The 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.