+#include <bindings.dsl.h>
+#include <CoreFoundation/CFArray.h>
+
+module Bindings.CoreFoundation.CFArray where
+#strict_import
+import Bindings.CoreFoundation.CFBase
+
+#callback CFArrayRetainCallBack , <CFAllocatorRef> -> Ptr () -> IO (Ptr ())
+#callback CFArrayReleaseCallBack , <CFAllocatorRef> -> Ptr () -> IO ()
+#callback CFArrayCopyDescriptionCallBack, Ptr () -> IO <CFStringRef>
+#callback CFArrayEqualCallBack , Ptr () -> Ptr () -> IO <Boolean>
+#starttype CFArrayCallBacks
+# field version , <CFIndex>
+# field retain , <CFArrayRetainCallBack>
+# field release , <CFArrayReleaseCallBack>
+# field copyDescription, <CFArrayEqualCallBack>
+#stoptype
+
+#cinline kCFTypeArrayCallBacks, IO (Ptr <CFArrayCallBacks>)
+
+#callback CFArrayApplierFunction, Ptr () -> Ptr () -> IO ()
+
+#opaque_t __CFArray
+#synonym_t CFArrayRef , Ptr <__CFArray>
+#synonym_t CFMutableArrayRef, Ptr <__CFArray>
+
+#ccall CFArrayGetTypeID , IO <CFTypeID>
+#ccall CFArrayCreate , <CFAllocatorRef> -> Ptr (Ptr ()) -> <CFIndex> -> Ptr <CFArrayCallBacks> -> IO <CFArrayRef>
+#ccall CFArrayCreateCopy , <CFAllocatorRef> -> <CFArrayRef> -> IO <CFArrayRef>
+#ccall CFArrayCreateMutable , <CFAllocatorRef> -> <CFIndex> -> Ptr <CFArrayCallBacks> -> IO <CFMutableArrayRef>
+#ccall CFArrayCreateMutableCopy , <CFAllocatorRef> -> <CFIndex> -> <CFArrayRef> -> IO <CFMutableArrayRef>
+#ccall CFArrayGetCount , <CFArrayRef> -> IO <CFIndex>
+#cinline CFArrayGetCountOfValue , <CFArrayRef> -> Ptr <CFRange> -> Ptr () -> IO <CFIndex>
+#cinline CFArrayContainsValue , <CFArrayRef> -> Ptr <CFRange> -> Ptr () -> IO <Boolean>
+#ccall CFArrayGetValueAtIndex , <CFArrayRef> -> <CFIndex> -> IO (Ptr ())
+#cinline CFArrayGetValues , <CFArrayRef> -> Ptr <CFRange> -> Ptr (Ptr ()) -> IO ()
+#cinline CFArrayApplyFunction , <CFArrayRef> -> Ptr <CFRange> -> <CFArrayApplierFunction> -> Ptr () -> IO ()
+#cinline CFArrayGetFirstIndexOfValue, <CFArrayRef> -> Ptr <CFRange> -> Ptr () -> IO <CFIndex>
+#cinline CFArrayGetLastIndexOfValue , <CFArrayRef> -> Ptr <CFRange> -> Ptr () -> IO <CFIndex>
+#cinline CFArrayBSearchValues , <CFArrayRef> -> Ptr <CFRange> -> Ptr () -> <CFComparatorFunction> -> Ptr () -> IO <CFIndex>
+#ccall CFArrayAppendValue , <CFMutableArrayRef> -> Ptr () -> IO ()
+#ccall CFArrayInsertValueAtIndex , <CFMutableArrayRef> -> <CFIndex> -> Ptr () -> IO ()
+#ccall CFArraySetValueAtIndex , <CFMutableArrayRef> -> <CFIndex> -> Ptr () -> IO ()
+#ccall CFArrayRemoveValueAtIndex , <CFMutableArrayRef> -> <CFIndex> -> IO ()
+#ccall CFArrayRemoveAllValues , <CFMutableArrayRef> -> IO ()
+#cinline CFArrayReplaceValues , <CFMutableArrayRef> -> Ptr <CFRange> -> Ptr (Ptr ()) -> <CFIndex> -> IO ()
+#ccall CFArrayExchangeValuesAtIndices, <CFMutableArrayRef> -> <CFIndex> -> <CFIndex> -> IO ()
+#cinline CFArraySortValues , <CFMutableArrayRef> -> Ptr <CFRange> -> <CFComparatorFunction> -> Ptr () -> IO ()
+#cinline CFArrayAppendArray , <CFMutableArrayRef> -> <CFArrayRef> -> Ptr <CFRange> -> IO ()