       [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,2,3,1,2]

  """
  @spec take(Enumerable.t, non_neg_integer) :: Lazy.t
  def take(enumerable, n) when n >= 0 do
    Lazy[enumerable: enumerable,
         fun: fn(f1) ->

      [2,4,6]

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