I'm fine with people writing `cycle (head xs) (tail xs)` because it means they'll have to think about whether or not they're sure the list is nonempty.