+#include <bindings.dsl.h>
+#include <apr.h>
+
+module Bindings.APR where
+#strict_import
+
+{- I'm not sure if these are really useful... (PHO)
+ -}
+#num APR_HAS_INLINE
+
+#num APR_HAVE_ARPA_INET_H
+#num APR_HAVE_CONIO_H
+#num APR_HAVE_CRYPT_H
+#num APR_HAVE_CTYPE_H
+#num APR_HAVE_DIRENT_H
+#num APR_HAVE_ERRNO_H
+#num APR_HAVE_FCNTL_H
+#num APR_HAVE_IO_H
+#num APR_HAVE_LIMITS_H
+#num APR_HAVE_NETDB_H
+#num APR_HAVE_NETINET_IN_H
+#num APR_HAVE_NETINET_SCTP_H
+#num APR_HAVE_NETINET_SCTP_UIO_H
+#num APR_HAVE_NETINET_TCP_H
+#num APR_HAVE_PTHREAD_H
+#num APR_HAVE_SEMAPHORE_H
+#num APR_HAVE_SIGNAL_H
+#num APR_HAVE_STDARG_H
+#num APR_HAVE_STDINT_H
+#num APR_HAVE_STDIO_H
+#num APR_HAVE_STDLIB_H
+#num APR_HAVE_STRING_H
+#num APR_HAVE_STRINGS_H
+#num APR_HAVE_SYS_IOCTL_H
+#num APR_HAVE_SYS_SENDFILE_H
+#num APR_HAVE_SYS_SIGNAL_H
+#num APR_HAVE_SYS_SOCKET_H
+#num APR_HAVE_SYS_SOCKIO_H
+#num APR_HAVE_SYS_SYSLIMITS_H
+#num APR_HAVE_SYS_TIME_H
+#num APR_HAVE_SYS_TYPES_H
+#num APR_HAVE_SYS_UIO_H
+#num APR_HAVE_SYS_UN_H
+#num APR_HAVE_SYS_WAIT_H
+#num APR_HAVE_TIME_H
+#num APR_HAVE_UNISTD_H
+#num APR_HAVE_WINDOWS_H
+#num APR_HAVE_WINSOCK2_H
+
+#num APR_HAVE_SHMEM_MMAP_TMP
+#num APR_HAVE_SHMEM_MMAP_SHM
+#num APR_HAVE_SHMEM_MMAP_ZERO
+#num APR_HAVE_SHMEM_SHMGET_ANON
+#num APR_HAVE_SHMEM_SHMGET
+#num APR_HAVE_SHMEM_MMAP_ANON
+#num APR_HAVE_SHMEM_BEOS
+
+#num APR_USE_SHMEM_MMAP_TMP
+#num APR_USE_SHMEM_MMAP_SHM
+#num APR_USE_SHMEM_MMAP_ZERO
+#num APR_USE_SHMEM_SHMGET_ANON
+#num APR_USE_SHMEM_SHMGET
+#num APR_USE_SHMEM_MMAP_ANON
+#num APR_USE_SHMEM_BEOS
+
+#num APR_USE_FLOCK_SERIALIZE
+#num APR_USE_SYSVSEM_SERIALIZE
+#num APR_USE_POSIXSEM_SERIALIZE
+#num APR_USE_FCNTL_SERIALIZE
+#num APR_USE_PROC_PTHREAD_SERIALIZE
+#num APR_USE_PTHREAD_SERIALIZE
+
+#num APR_HAS_FLOCK_SERIALIZE
+#num APR_HAS_SYSVSEM_SERIALIZE
+#num APR_HAS_POSIXSEM_SERIALIZE
+#num APR_HAS_FCNTL_SERIALIZE
+#num APR_HAS_PROC_PTHREAD_SERIALIZE
+
+#num APR_PROCESS_LOCK_IS_GLOBAL
+
+#num APR_HAVE_CORKABLE_TCP
+#num APR_HAVE_GETRLIMIT
+#num APR_HAVE_IN_ADDR
+#num APR_HAVE_INET_ADDR
+#num APR_HAVE_INET_NETWORK
+#num APR_HAVE_IPV6
+#num APR_HAVE_MEMMOVE
+#num APR_HAVE_SETRLIMIT
+#num APR_HAVE_SIGACTION
+#num APR_HAVE_SIGSUSPEND
+#num APR_HAVE_SIGWAIT
+#num APR_HAVE_SA_STORAGE
+#num APR_HAVE_STRCASECMP
+#num APR_HAVE_STRDUP
+#num APR_HAVE_STRICMP
+#num APR_HAVE_STRNCASECMP
+#num APR_HAVE_STRNICMP
+#num APR_HAVE_STRSTR
+#num APR_HAVE_MEMCHR
+#num APR_HAVE_STRUCT_RLIMIT
+#num APR_HAVE_UNION_SEMUN
+#num APR_HAVE_SCTP
+#num APR_HAVE_IOVEC
+
+#num APR_HAS_SHARED_MEMORY
+#num APR_HAS_THREADS
+#num APR_HAS_SENDFILE
+#num APR_HAS_MMAP
+#num APR_HAS_FORK
+#num APR_HAS_RANDOM
+#num APR_HAS_OTHER_CHILD
+#num APR_HAS_DSO
+#num APR_HAS_SO_ACCEPTFILTER
+#num APR_HAS_UNICODE_FS
+#num APR_HAS_PROC_INVOKED
+#num APR_HAS_USER
+#num APR_HAS_LARGE_FILES
+#num APR_HAS_XTHREAD_FILES
+#num APR_HAS_OS_UUID
+
+#num APR_PROCATTR_USER_SET_REQUIRES_PASSWORD
+
+#if APR_HAVE_NETINET_TCP_H
+#include <netinet/tcp.h>
+#endif
+
+#num APR_FILES_AS_SOCKETS
+#num APR_CHARSET_EBCDIC
+#num APR_TCP_NOPUSH_FLAG
+#num APR_TCP_NODELAY_INHERITED
+#num APR_O_NONBLOCK_INHERITED
+
+#integral_t apr_byte_t
+
+#integral_t apr_int16_t
+#integral_t apr_uint16_t
+
+#integral_t apr_int32_t
+#integral_t apr_uint32_t
+
+#integral_t apr_int64_t
+#integral_t apr_uint64_t
+
+#integral_t apr_size_t
+#integral_t apr_ssize_t
+#integral_t apr_off_t
+#integral_t apr_socklen_t
+#integral_t apr_ino_t
+
+#num APR_SIZEOF_VOIDP
+#integral_t apr_uintptr_t
+
+#num APR_IS_BIGENDIAN
+
+#num APR_INT16_MIN
+#num APR_INT16_MAX
+#num APR_UINT16_MAX
+#num APR_INT32_MIN
+#num APR_INT32_MAX
+#num APR_UINT32_MAX
+#num APR_INT64_MIN
+#num APR_INT64_MAX
+#num APR_UINT64_MAX
+#num APR_SIZE_MAX
+
+#pointer APR_SSIZE_T_FMT
+#pointer APR_SIZE_T_FMT
+#pointer APR_OFF_T_FMT
+#pointer APR_PID_T_FMT
+#pointer APR_INT64_T_FMT
+#pointer APR_UINT64_T_FMT
+#pointer APR_UINT64_T_HEX_FMT
+#num APR_PROC_MUTEX_IS_GLOBAL
+#pointer APR_EOL_STR
+
+#opaque_t apr_wait_t
+
+#num APR_PATH_MAX
+
+#pointer APR_DSOPATH