   @doc """
   Gets the value for the given key in a container (a map, keyword
   list, or struct that implements the `Access` behaviour).
+
+  Returns the value under `key` if there is such a key, or `default` if `key` is
+  not found.
   """
   @spec get(t, term, term) :: term
   def get(container, key, default \\ nil) do

  Invoked in order to access the value stored under `key` in the given term `term`.

  This function should return `{:ok, value}` where `value` is the value under
  `key` if it succeeded, or `:error` if the key does not exist in the structure.

  Many of the functions defined in the `Access` module internally call this
  function. This function is also used when the square-brackets access syntax

  present. This function should return either `{value_to_return, new_value}` or
  `:pop`.

  If the passed function returns `{value_to_return, new_value}`, the return
  value of this callback should be `{value_to_return, new_term}` where
  `new_term` is `term` after updating the value of `key` with `new_value`.

  If the passed function returns `:pop`, the return value of this callback
  should be `{value, new_term}` where `value` is the value under `key` or `nil`
  if not present, and `new_term` is `term` without the key `key`.

  See the implementations of `Map.get_and_update/3` or `Keyword.get_and_update/3`
  for more examples.
