solve char replace = traverse $ bool replace <$> pure <*> (/= char)
TEST XXX BEST
TEST AAA BEST TEST AAB BEST TEST AAC BEST TEST AAD BEST TEST ABA BEST TEST ABB BEST TEST ABC BEST TEST ABD BEST TEST ACA BEST TEST ACB BEST TEST ACC BEST TEST ACD BEST TEST ADA BEST TEST ADB BEST TEST ADC BEST TEST ADD BEST TEST BAA BEST TEST BAB BEST TEST BAC BEST TEST BAD BEST TEST BBA BEST TEST BBB BEST TEST BBC BEST TEST BBD BEST TEST BCA BEST TEST BCB BEST TEST BCC BEST TEST BCD BEST TEST BDA BEST TEST BDB BEST TEST BDC BEST TEST BDD BEST TEST CAA BEST TEST CAB BEST TEST CAC BEST TEST CAD BEST TEST CBA BEST TEST CBB BEST TEST CBC BEST TEST CBD BEST TEST CCA BEST TEST CCB BEST TEST CCC BEST TEST CCD BEST TEST CDA BEST TEST CDB BEST TEST CDC BEST TEST CDD BEST TEST DAA BEST TEST DAB BEST TEST DAC BEST TEST DAD BEST TEST DBA BEST TEST DBB BEST TEST DBC BEST TEST DBD BEST TEST DCA BEST TEST DCB BEST TEST DCC BEST TEST DCD BEST TEST DDA BEST TEST DDB BEST TEST DDC BEST TEST DDD BEST