>>> cycle [] *** Exception: Prelude.cycle: empty list
>>> take 10 (cycle [42]) [42,42,42,42,42,42,42,42,42,42]
>>> take 10 (cycle [2, 5, 7]) [2,5,7,2,5,7,2,5,7,2]
>>> take 1 (cycle (42 : undefined)) [42]
cycle (1 :| [2,3]) = 1 :| [2,3,1,2,3,...]
>>> take 10 $ cycle1 [1, 2, 3] [1,2,3,1,2,3,1,2,3,1]
>>> cycle1 (Right 1) Right 1
>>> cycle1 (Left 1) * Hangs forever *