With Haskell98, Enum.enumFromThen can generate sequences that are either increasing, decreasing or infinite.