# `Unicode.GeneralCategory.Derived`
[🔗](https://github.com/elixir-unicode/unicode/blob/v2.0.0/lib/unicode/category/derived_category.ex#L1)

For certain operations and transformations
(especially in [Unicode Sets](http://unicode.org/reports/tr35/#Unicode_Sets))
there is an expectation that certain derived
general categories exist even though they are not
defined in the unicode character database.

These categories are:

* `:any` which is the full unicode character
  range `0x0..0x10ffff`

* `:assigned` which is the set of codepoints
  that are assigned and is therefore
  equivalent to `[:any]-[:Cn]`. It is computed
  directly from the general category data.

* `:ascii` which is the range for the US ASCII
  character set of `0x0..0x7f`

In addition there are derived categories
not part of the Unicode specification that
support additional use cases. These include:

* Categories related to
  recognising quotation marks. See the
  module `Unicode.Category.QuoteMarks`.

* `:printable` which implements the same
  semantics as `String.printable?/1`. This is
  a very broad definition of printable characters.

* `:graph` which includes characters from the
  `[^\p{White_Space}\p{gc=Control}\p{gc=Surrogate}\p{gc=Unassigned}]`
  set defined by [Unicode Regular Expressions](http://unicode.org/reports/tr18/).
  It is computed directly from the general category and
  `White_Space` property data.

# `aliases`

```elixir
@spec aliases() :: map()
```

Returns a map of the aliases
for the derived General Categories

# `categories`

```elixir
@spec categories() :: map()
```

Returns a map of the derived
General Categories

---

*Consult [api-reference.md](api-reference.md) for complete listing*
