ke `choose` but only picks a new item from the list
once each cycle -}
cycleChoose :: [a] -> Pattern a
cycleChoose = segment 1 . choose

{- | Internal function
cycleChoose :: [a] -> Pattern a
cycleChoose = segment 1 . choose
cycleChoose = segment 1 . choose