There are some symbols that uCR uses internally. These symbols may pollute the name space, so uCR prefixes these symbols with uCR_ to identify them as internal symbols. These may have C or C++ linkage. The programmer using uCR should avoid prefixing with uCR_ or using symbols so prefixed, as they are subject to change.
Some symbols exist in uCR that programmers may need access to. These symbols have well-defined meanings and are prefixed with ucr_ (note the lower case). Again, the programmer should not create symbols with this prefix as uCR reserves them for its own use.
There are a few C++ classes that make up most of the interesting parts of the uCR core. The names for these classes do not have any special prefixes but always start with a capital letter. All type names in uCR start with capital letters. There are very few types in uCR that are not C++ classes.