Fix a bug in `buildPatterns` and friends
Fixes #395 (closed) by doing some minor refactoring and fixing a genuine bug in buildPatterns
discovered by QuickCheck.
The crux of the issue can be summarised in this commit description:
Fix bug in buildPatterns related to case sensitiveness
Fixes a bug in the implementation of `buildPatterns`. In particular,
when we are building a `Pattern`, we need to do so in a case insenstive
fashion, otherwise later in the call to `replaceTerms` we would be
calling this from `extractTermsWithList` that casts everything into
lowercase due to the use of `monoTextsBySentence`.
This means that before this commit if we tried to search "Map" into
the text "Map is what I use when I'm lost" we wouldn't get a match,
because the latter would be converted into lowercase first
(i.e. "map is what i use when i'm lost") and we were trying to look
for the string "Map" (i.e. the former) into the transformer, yielding
no matches.