# `naming.generic_name`

Domain or library has a generic name.

Area 1, [Project layout and modules](../topics/project-layout-and-modules.md); not declinable; the next step is usually the human's.

```jadpo
type Stock = Int {
    min: 0
}

library helpers {
    function add_holdback(subtotal: Stock) -> Stock {
        return subtotal
    }
}
```

```text
error: `helpers` is too generic for a library
 --> main.jadpo:5:9
  |
5 | library helpers {
  |         ^^^^^^^ says nothing about what it holds
  reason: Domains and libraries are named after what they hold, because the name appears in every call; `common`, `core`, `helpers`, `misc` and `utils` say nothing.
  next: Rename the library after what its functions do (agent)
  rule: naming.generic_name
  help: https://jadpo.dev/docs/errors/naming.generic_name

check failed: 1 error, 1 file
```
