Much of Carbon is built on top of CoreFoundation, an API that provides a set of basic reference-counted data types. Many of these types are similar to those of the C++ Standard Template Library and support objects like maps, vectors, or strings.
CoreFoundation types are typically "toll-free bridged" to the equivalent NSxxx types within Cocoa - e.g., a CFStringRef obtained from a Carbon API can be cast to an NSString* and passed to a Cocoa API.
CoreFoundation APIs do not return errors, and will typically crash if passed an invalid parameter. When using CoreFoundation, you must ensure that you check for NULLs and only pass valid data as parameters.
See Apple's [CoreFoundation] documentation for more.