What is the difference between a cyclic list and an infinite list in haskell?
Referencing @dfeuer's answer to this question: Least expensive way to construct cyclic list in Haskell , which says that using cyclic lists 'defeats' the garbage collector as it has to keep everything you've consumed from a cyclic list allocated till you drop the reference to any cons cells in the list. Apparently in Haskell a cyclic list and an infinite list are two separate things. This blog ( https://unspecified.wordpress.com/2010/03/30/a-doubly-linked-list-in-haskell/ ) says that if you implement cycle as follows: cycle xs = xs ++ cycle xs it is an infinite list, not a cyclic list. To make