 
   @doc """
   Returns the task name for the given `module`.
+
+  ## Examples
+
+      iex> Mix.Task.task_name(Mix.Tasks.Test)
+      "test"
+
   """
   @spec task_name(task_module) :: task_name
   def task_name(module) when is_atom(module) do

  end

  @doc """
  Checks if an alias called `task` exists.

  For more information about task aliasing, take a look at the "Aliasing"
  section in the docs for `Mix`.
  """
  @spec alias?(task_name) :: boolean
  def alias?(task) when is_binary(task) do

  Provides conveniences for creating, loading, and manipulating Mix tasks.

  A Mix task can be defined by using `Mix.Task` in a module whose name
  begins with `Mix.Tasks.` and which defines the `run/1` function.
  Typically, task modules live inside the `lib/mix/tasks/` directory,
  and their file names use dot separators instead of underscores
  (e.g. `deps.clean.ex`) - although ultimately the file name is not
