Support OverloadedRecordDot
Using the OverloadedRecordDot syntax inside the quasiquote will raise a compilation error, treating foo.bar as foo . bar:
newtype Foo = Foo { bar :: Int }
foo :: Foo
foo = Foo 0
message :: String
message = [i|I have #{foo.bar} problems.|]
gets the following error:
typecheck [-Wdeferred-type-errors]: • Couldn't match expected type ‘Int -> c0’ with actual type ‘Foo’
• In the first argument of ‘(.)’, namely ‘foo’
In the second argument of ‘string-interpolate-0.3.3.0:Data.String.Interpolate.Conversion.Classes.interpolate’, namely
‘(foo . bar)’
In the second argument of ‘string-interpolate-0.3.3.0:Data.String.Interpolate.Conversion.Classes.build’, namely
‘(string-interpolate-0.3.3.0:Data.String.Interpolate.Conversion.Classes.interpolate
Data.Proxy.Proxy (foo . bar))’