
Neil Mitchell
Hi
The Prelude functions drop, take, and splitAt are unfailing (never call error). This patch changes the Data.List generic versions to behave the same way. At present, they call error on negative arguments.
I had always just assumed that take and genericTake did the same thing, so had never even realised this problem existed. I'd call this a bug, that needs fixing.
Maybe the bug is in 'drop', 'take' and 'splitAt' and it was intended to fix it in 'generic' variants. Is there a good reason why to ignore negative number arguments? It may hide bugs.
A similar argument could be made against ``take 5 [] = []''. A different solution would be using Nat or Natural as arguments here --- then the conversion introduces an obvious place to check for errors. Wolfram