This is almost exactly how reanimate generates animations with Haskell: https://github.com/Lemmih/reanimate
Animations are frames over time and can be composed using 'seqA' and 'parA' combinators.
Animations are frames over time and can be composed using 'seqA' and 'parA' combinators.
foldr1 (\x y -> ((x `par` delay 1) `seq` y)) $ map pure [1..]
Would require more and more comparisons over time. Is there some sort of codensity like trick that you can do? Or is this something the user of the library would worry about if it came to that. Or just have a redundant API.