@typeswitch I wound up going with this solution out of all of them because it let me skip a "map" (I was originally going to map the tuple list after forming it)
let next_candidates = (.|.) <$> candidates <*> digits
What this does… may or may not be clear, but I assure you it's very appropriate to the problem I am solving
@mcc @typeswitch
<$>ismap.