@@ -96,20 +96,24 @@ toValidFunctionName t =
9696 Nothing -> "_"
9797 where
9898 setFirstChar c = if firstChar c then c else '_'
99− firstChar c = prefixOK c || any (Set.member c) firstLetterOK
100− remainder c = prefixOK c || any (Set.member c) remainderOK
99+ firstChar c = prefixOK c || Set.member c firstLetterOK
100+ remainder c = prefixOK c || Set.member c remainderOK
101101 prefixOK c = c `elem` ['$','_']
102− firstLetterOK = [ Set.lowercaseLetter
103− , Set.uppercaseLetter
104− , Set.titlecaseLetter
105− , Set.modifierLetter
106− , Set.otherLetter
107− , Set.letterNumber ]
102+ firstLetterOK = mconcat
103+ [ Set.lowercaseLetter
104+ , Set.uppercaseLetter
105+ , Set.titlecaseLetter
106+ , Set.modifierLetter
107+ , Set.otherLetter
108+ , Set.letterNumber
109+ ]
108110 remainderOK = firstLetterOK
109− <> [ Set.nonSpacingMark
110− , Set.spacingCombiningMark
111− , Set.decimalNumber
112− , Set.connectorPunctuation ]
111+ <> mconcat
112+ [ Set.nonSpacingMark
113+ , Set.spacingCombiningMark
114+ , Set.decimalNumber
115+ , Set.connectorPunctuation
116+ ]
113117
114118toJSHeader :: HeaderArg -> Text
115119toJSHeader (HeaderArg n) = toValidFunctionName ("header" <> n)