Так в хаскеле односвязные или двусвязные списки? Просто для односвязного вот это вот будет стоить O(n+m), а для двусвязного просто O(n), где n - аргумент функции, а m - колво элемов в листе.
Могу предположить что односвязный, иначе например паттерн-матчился бы последний элемент списка как первый каким-то элегантным образом, но не могу до конца подтвердить свое предположение