
On 2009-08-25 at 12:32BST Simon Marlow wrote:
I think that for consistency with if/then/else and guard we should use checkA.
See my response to Sebastian.
It's not that hard to write
all_spaces xs = checkA (all (isSpace xs)) xs
if that's really what you want.
Not /hard/, but it involves using xs twice, which should tell us something.
I wouldn't call checkB more "general"; to me it's just a minor convenience issue, which is outweighed by consistency and simplicity.
See response to Sebastian.
is hard to write using checkA (suppose you are doing something like “map (checkB predicate)”) since checkA doesn't look at the second argument.
the "applying check to a list" case is not hard either:
zipWithM checkA (map p xs) xs
which involves duplication again, and on top of that zipWithM, which while not /hard/ is hardly conceptually simple. Jón -- Jón Fairbairn Jon.Fairbairn at cl.cam.ac.uk