+#include <bindings.dsl.h>
+#include <CoreFoundation/CFDictionary.h>
+
+module Bindings.CoreFoundation.CFDictionary where
+#strict_import
+import Bindings.CoreFoundation.CFBase
+
+#callback CFDictionaryRetainCallBack , <CFAllocatorRef> -> Ptr () -> IO (Ptr ())
+#callback CFDictionaryReleaseCallBack, <CFAllocatorRef> -> Ptr () -> IO ()
+#callback CFDictionaryCopyDescriptionCallBack, Ptr () -> IO <CFStringRef>
+#callback CFDictionaryEqualCallBack , Ptr () -> Ptr () -> IO <Boolean>
+#callback CFDictionaryHashCallBack , Ptr () -> IO <CFHashCode>
+#starttype CFDictionaryKeyCallBacks
+# field version , <CFIndex>
+# field retain , <CFDictionaryRetainCallBack>
+# field release , <CFDictionaryReleaseCallBack>
+# field copyDescription, <CFDictionaryCopyDescriptionCallBack>
+# field equal , <CFDictionaryEqualCallBack>
+# field hash , <CFDictionaryHashCallBack>
+#stoptype
+
+#cinline kCFTypeDictionaryKeyCallBacks , IO (Ptr <CFDictionaryKeyCallBacks>)
+#cinline kCFCopyStringDictionaryKeyCallBacks, IO (Ptr <CFDictionaryKeyCallBacks>)
+
+#starttype CFDictionaryValueCallBacks
+# field version , <CFIndex>
+# field retain , <CFDictionaryRetainCallBack>
+# field release , <CFDictionaryReleaseCallBack>
+# field copyDescription, <CFDictionaryCopyDescriptionCallBack>
+# field equal , <CFDictionaryEqualCallBack>
+#stoptype
+
+#cinline kCFTypeDictionaryValueCallBacks, IO (Ptr <CFDictionaryValueCallBacks>)
+
+#callback CFDictionaryApplierFunction, Ptr () -> Ptr () -> Ptr () -> IO ()
+
+#opaque_t __CFDictionary
+#synonym_t CFDictionaryRef , Ptr <__CFDictionary>
+#synonym_t CFMutableDictionaryRef, Ptr <__CFDictionary>
+
+#ccall CFDictionaryGetTypeID , IO <CFTypeID>
+#ccall CFDictionaryCreate , <CFAllocatorRef> -> Ptr (Ptr ()) -> Ptr (Ptr ()) -> <CFIndex> -> Ptr <CFDictionaryKeyCallBacks> -> Ptr <CFDictionaryValueCallBacks> -> IO <CFDictionaryRef>
+#ccall CFDictionaryCreateCopy , <CFAllocatorRef> -> <CFDictionaryRef> -> IO <CFDictionaryRef>
+#ccall CFDictionaryCreateMutable , <CFAllocatorRef> -> <CFIndex> -> Ptr <CFDictionaryKeyCallBacks> -> Ptr <CFDictionaryValueCallBacks> -> IO <CFMutableDictionaryRef>
+#ccall CFDictionaryCreateMutableCopy, <CFAllocatorRef> -> <CFIndex> -> <CFDictionaryRef> -> IO <CFMutableDictionaryRef>
+#ccall CFDictionaryGetCount , <CFDictionaryRef> -> IO <CFIndex>
+#ccall CFDictionaryGetCountOfKey , <CFDictionaryRef> -> Ptr () -> IO <CFIndex>
+#ccall CFDictionaryGetCountOfValue , <CFDictionaryRef> -> Ptr () -> IO <CFIndex>
+#ccall CFDictionaryContainsKey , <CFDictionaryRef> -> Ptr () -> IO <Boolean>
+#ccall CFDictionaryContainsValue , <CFDictionaryRef> -> Ptr () -> IO <Boolean>
+#ccall CFDictionaryGetValue , <CFDictionaryRef> -> Ptr () -> IO (Ptr ())
+#ccall CFDictionaryGetValueIfPresent, <CFDictionaryRef> -> Ptr () -> Ptr (Ptr ()) -> IO <Boolean>
+#ccall CFDictionaryGetKeysAndValues , <CFDictionaryRef> -> Ptr (Ptr ()) -> Ptr (Ptr ()) -> IO ()
+#ccall CFDictionaryApplyFunction , <CFDictionaryRef> -> <CFDictionaryApplierFunction> -> Ptr () -> IO ()
+#ccall CFDictionaryAddValue , <CFMutableDictionaryRef> -> Ptr () -> Ptr () -> IO ()
+#ccall CFDictionarySetValue , <CFMutableDictionaryRef> -> Ptr () -> Ptr () -> IO ()
+#ccall CFDictionaryReplaceValue , <CFMutableDictionaryRef> -> Ptr () -> Ptr () -> IO ()
+#ccall CFDictionaryRemoveValue , <CFMutableDictionaryRef> -> Ptr () -> IO ()
+#ccall CFDictionaryRemoveAllValues , <CFMutableDictionaryRef> -> IO ()