insertAt :: Int -> a -> [a] -> [a]
insertAt i y xs = let (as,bs) = splitAt i xs
                  in as ++ (y:bs)
insertAt :: Int -> a -> [a] -> [a]
insertAt i y xs = let (as,bs) = splitAt i xs
                  in as ++ (y:bs)
insertAt i y xs = let (as,bs) = splitAt i xs
                  in as ++ (y:bs)