Repetitions working

The ``runGenerator``'s now expects an operation that will be executed on every step.

```haskell
newtype Generator a b = Generator { 
  -- |Performs the generator step
  runGenerator :: GeneratorDelay 
               -> (a -> IO b)
               -> IO b
}
```

It executes the operation ``(a -> IO b)`` in every step, as many times as the expression calls for. It ultimately the final value ``b``.