You're passing the average2 function to the append function instead of calling it in the last line. Also, newList is empty and does not get mutated nor read from. You can just add a new head to the list when returning it.
Change it to
append newList [((x + x')/2)] :: (average2 x' :: [xs])