Using different entities for different layers like repository, service and view is a common (anti)pattern followed while developing web applications.
The fundamental data structure in many functional languages is the immutable linked list.