--- /dev/null
+#include <bindings.dsl.h>
+#include <apr_lib.h>
+
+module Bindings.APR.Lib where
+#strict_import
+import Bindings.APR
+import Bindings.APR.ErrNo
+import System.Posix.Types
+
+#num HUGE_STRING_LEN
+
+#starttype struct apr_vformatter_buff_t
+# field curpos, Ptr CChar
+# field endpos, Ptr CChar
+#stoptype
+
+#ccall apr_filepath_name_get, Ptr CChar -> IO (Ptr CChar)
+
+#cinline apr_killpg, CPid -> CInt -> IO CInt
+
+-- apr_vformatter takes va_list...
+
+#ccall apr_password_get, Ptr CChar -> Ptr CChar -> Ptr <apr_size_t> -> IO <apr_status_t>
+
+#cinline apr_isalnum , CInt -> IO CInt
+#cinline apr_isalpha , CInt -> IO CInt
+#cinline apr_isdigit , CInt -> IO CInt
+#cinline apr_isgraph , CInt -> IO CInt
+#cinline apr_islower , CInt -> IO CInt
+#cinline apr_isascii , CInt -> IO CInt
+#cinline apr_isprint , CInt -> IO CInt
+#cinline apr_ispunct , CInt -> IO CInt
+#cinline apr_isspace , CInt -> IO CInt
+#cinline apr_isupper , CInt -> IO CInt
+#cinline apr_isxdigit, CInt -> IO CInt
+#cinline apr_tolower , CInt -> IO CInt
+#cinline apr_toupper , CInt -> IO CInt
--- /dev/null
+#include <bindings.cmacros.h>
+#include <apr_lib.h>
+#include <signal.h>
+
+BC_INLINE2(apr_killpg, pid_t, int, int)
+
+BC_INLINE1(apr_isalnum , int, int)
+BC_INLINE1(apr_isalpha , int, int)
+BC_INLINE1(apr_isdigit , int, int)
+BC_INLINE1(apr_isgraph , int, int)
+BC_INLINE1(apr_islower , int, int)
+BC_INLINE1(apr_isascii , int, int)
+BC_INLINE1(apr_isprint , int, int)
+BC_INLINE1(apr_ispunct , int, int)
+BC_INLINE1(apr_isspace , int, int)
+BC_INLINE1(apr_isupper , int, int)
+BC_INLINE1(apr_isxdigit, int, int)
+BC_INLINE1(apr_tolower , int, int)
+BC_INLINE1(apr_toupper , int, int)