TODO clean this up

TODO note that you -fvisibility=hidden means nothing in static libraries, hence this (confirmed on OS X)

In general, all names that begin with "ui" and are followed by a capital letter and all names htat begin with "uipriv" and are followed by a capita lletter are reserved by libui. This applies even in C++, where name mangling may affect the actual names in the object file.

# Reserved names; for users

All reserved names in libui are defined by a prefix followed by any uppercase letter in ASCII. The bullet lists before list those prefixes.

Global-scope identifiers of any form (variables, constant names, functions, structure names, union names, C++ class names, enum type names, enum value names, C++ namespace names, GObject class and interface struct names, and Objective-C class and protocol name identifiers) and macro names:

- `ui`
- `uipriv`

GObject and Objective-C class, interface, and protocol name strings, in the form they take in their respective runtime memory (e.g. when passed to `g_type_from_name()` and `NSClassFromString()`, respectively):

- `uipriv`

Objective-C method names:

- `initWithUipriv`
- `initWithFrame:uipriv` (TODO probably worth removing)
- `uipriv`
- `isUipriv` (for compatibility with KVO and `@property` statements)
- `setUipriv` (for compatibility with KVO and `@property` statements)

Objective-C ivar names:

- `uipriv`
- `_uipriv` (for compatibility with KVO and `@property` statements)

Objective-C property names:

- `uipriv`

TODO GObject macros (in libui's source code), properties, and signals

# Developer notes

TODO