>>> 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]
>>> 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 *