module Prelude where
splitAt :: Int -> [a] -> ([a], [a])
--splitAt 0 xs = ([],xs)
--splitAt _ [] = ([],[])
--splitAt n (x:xs) | n>0 = (x:xs',xs'') where (xs',xs'') = splitAt (n-1) xs
--splitAt _ _ = error "PreludeList.splitAt: negative argument"
splitAt n xs
| n<=0 = ([],xs)
| n>0 = splitAt' n xs
where splitAt' 0 xs = ([],xs)
splitAt' n [] = ([],[])
splitAt' n (x:xs) = (x:xs',xs'') where (xs',xs'') = splitAt' (n-1) xs
|