Hi. I'm wondering if this solution still works in the current Haskell version.
slice xs (i+1) k = snd (split (fst (split xs k)) i)
slice xs i k | i>0 = take (k-i+1) $ drop (i-1) xs
will not give proper results for negative indices particularly when the first index is negative and the second one within the length of the list.