FunctionalLinkedList and tests