Hi,I've recently run into an issue whereby changing textual case comparisonto use the Data.CaseInsensitive.mk smart constructor causes substantialdifferences to outputted core language and a related compilation speed regression.The code which seems to cause this is here:With the downstream project having about 68 call sites for the above function starting here:For comparison, the previous version used Attoparsec.Text.takeText and Text values.Here are some hand wavy points of interest:* Before (Case Sensitive)Function: takeText = Attoparsec.Text.takeTextTime (real): 2m27.735samazonka-ec2/gen/Network/AWS/EC2/Types.hs (simpl): {terms: 242,688, types: 310,463, coercions: 31,215}* After (Case Insensitive)Function: takeCI = Data.CaseInsensitive.mk <$> Attoparsec.Text.takeTextTime (real): 11m31.937samazonka-ec2/gen/Network/AWS/EC2/Types.hs (simpl): {terms: 1,384,779, types: 465,656, coercions: 33,510}I'm finding the outputted core rather unwieldy to analyse, but the maindifference seems to be the inclusion of huge swathes of case statements like:It would be appreciated if someone could help me to understand in simple terms whythe use of case-insensitive causes this.