:: [a] -> Int -> ([a], [a]) package:extra

splitAtEnd n xs returns a split where the second element tries to contain n elements.
splitAtEnd 3 "hello" == ("he","llo")
splitAtEnd 3 "he"    == ("", "he")
\i xs -> uncurry (++) (splitAt i xs) == xs
\i xs -> splitAtEnd i xs == (dropEnd i xs, takeEnd i xs)