README.md

# Docp

<!-- MDOC !-->

Docp lets you add documentation to private functions via the `@docp` module attribute.

You shouldn't, but you can.

```elixir
defmodule MyModule do
  use Docp

  @typedocp """
  Valid range for priorities is `1..99`.
  """
  @typep priority :: pos_integer

  @docp """
  Does something
  """
  defp foo, do: :something
end
```

Docp will ensure that the Elixir compiler doesn't raise a warning about `@docp` or `@typedocp` being unused.

## When to use this library

As a general rule of thumb, documenting private functions is discouraged and should be avoided. Consider first moving the private functions into a separate module and then converting them to public functions.

Ultimately, only *you* know what's best for your project, and if you think it's useful to add a docstring to a private function, go for it. Dogma should not dictate software development.