Just out of curiosity, I tried this code in Frege:
println (mydrop 30000000 [1..30000001])
It goes without saying that a sequence of 30 million entries is kind of silly and I would have been ok with an OOME. I wanted to see whether lazy evaluation makes a difference here. The result was though that all my 8 cores were exhausted at 100% and stayed there until I hard-killed the process.
Have I hit a systematic upper bound?
I should have mentioned that I used the mydrop from the real-world Haskell exercise:
mydrop n xs = if n <= 0 || null xs
then xs
else mydrop (n-1) (tail xs)