add exercise: functional linked lists