iterate package:Cabal-syntax

iterate f x returns an infinite list of repeated applications of f to x:
iterate f x == [x, f x, f (f x), ...]
Note that iterate is lazy, potentially leading to thunk build-up if the consumer doesn't force each iterate. See iterate' for a strict variant of this function.
>>> take 10 $ iterate not True
[True,False,True,False...

>>> take 10 $ iterate (+3) 42
[42,45,48,51,54,57,60,63...