 
       iex> Enum.all?([2, 3, 4], fn x -> rem(x, 2) == 0 end)
       false
-
-  If no function is given, it defaults to checking if
-  all items in the `enumerable` are truthy values.
+      
+      iex> Enum.all?([], fn x -> x > 0 end)
+      true
+
+  If no function is given, the truthiness of each item is checked during iteration.
+  When an item has a falsy value (`false` or `nil`) iteration stops immediately and
+  `false` is returned. In all other cases `true` is returned.
 
       iex> Enum.all?([1, 2, 3])
       true
 
       iex> Enum.all?([1, nil, 3])
       false
+      
+      iex> Enum.all?([])
+      true
 
   """
   @spec all?(t, (element -> as_boolean(term))) :: boolean

  end

  @doc """
  Returns `true` if the given `fun` evaluates to true on any of the items in the `enumerable`.

  It stops the iteration at the first invocation that returns a truthy value (neither `false` nor `nil`).

  ## Examples


  end

  @doc """
  Returns `true` if `fun.(item)` is truthy for all items in `enumerable`.

  Iterates over the `enumerable` and invokes `fun` on each item. When an invocation
  of `fun` returns a falsy value (`false` or `nil`) iteration stops immediately and
  `false` is returned. In all other cases `true` is returned.

  ## Examples

