title: Generating lists where every nth element is different
body: <p>I have been trying to find an efficient way to generate infinite lists in Haskell using list comprehensions. I would like to apply an exception to every nth element.</p>
  <p>So if n=2 and the exception was *2, the first 10 elements of an infinite list of natural number would be [1,4,3,8,5,12,7,16,9,20].</p>
  <p>I have tried to use zip and map functions to mark each element of the list with an index and apply the map to each element with a specific index, however I then need to eliminate the zipped index and I think this is inefficient and this doesn't actually accomplish what I want to do.</p>
  <p>Is there a way to make a list comprehension such as, where xs is an infinite list of natural numbers, <code>[ys|ys&lt;-xs, if (indexOf ys%%2)==0 then ys*2]</code> or something to this extent?</p>