Lista doblemente enlazada en un lenguaje de programación puramente funcional

¿Cómo se hace uno para hacer listas doblemente enlazadas en un lenguaje funcional puro? Es decir, algo como Haskell donde no estás en una mónada, por lo que no tienes mutación. ¿Es posible? (La lista de enlaces individuales es obviamente bastante fácil).

Respuestas a la pregunta(4)

Su respuesta a la pregunta