`fieldAnnQ` fails to compile empty annotations
Description
fieldAnnQ (and related quasiquoters) fail to compile with empty strings.
Steps to reproduce
fa :: FieldAnn
fa = [fieldAnnQ||]
Expected behaviour
Expected the code above to compile
Actual behaviour
• Couldn't match expected type ‘Text’ with actual type ‘[a0]’
• In the first argument of ‘UnsafeAnnotation’, namely ‘[]’
In the expression: (UnsafeAnnotation [] :: FieldAnn)
In an equation for ‘fa’: fa = (UnsafeAnnotation [] :: FieldAnn)
I suspect this is because we use StringL to splice in a string literal. E.g., [fieldAnnQ|aa|] is compiled to `UnsafeAnnotation "aa".
However, when the string is empty, StringL splices in []. [] is a valid string, BUT it is not a string literal, so it can be overloaded to Text (which is what UnsafeAnnotation expects).
This can be simply solved by not relying on OverloadedStrings. We should generate UnsafeAnnotation (fromString <string>) instead.