       [0.4435846174457203, 0.7230402056221108, 0.94581636451987]
 
   """
-  @spec repeatedly(( -> element)) :: Lazy.t
+  @spec repeatedly((() -> element)) :: t
   def repeatedly(generator_fun) 
   when is_function(generator_fun, 0) do
     do_repeatedly(generator_fun, &1, &2)

      [{1,0},{2,1},{3,2}]

  """
  @spec with_index(Enumerable.t) :: Lazy.t
  def with_index(enumerable) do
    Lazy[enumerable: enumerable,
         fun: fn(f1) ->

      [6,7,8,9,10]

  """
  @spec drop_while(Enumerable.t, (element -> as_boolean(term))) :: t
  def drop_while(enumerable, f) do
    Lazy[enumerable: enumerable,
         fun: fn(f1) ->
