disjointOrdBy (compare `on` (`mod` 7)) [1,2,3] [4,5] == True disjointOrdBy (compare `on` (`mod` 7)) [1,2,3] [4,8] == False
nubOrdBy (compare `on` length) ["a","test","of","this"] == ["a","test","of"]
get logAttr #isWordBoundary
set logAttr [ #isWordBoundary := value ]
>>> wordBy = Parser.wordFramedBy (const False) (const False) (const False)
S.wordsBy pred f = S.parseMany (PR.wordBy pred f)