Ada Wayland Binding Specific points about this binding: - Memory management is set up so that, from the Ada side, the programmer can treat all objects as if they were stack objects. Any and all ways to avoid dangling references without burdening the programmer using the library are taken advantage of. - Callbacks are done with function/procedure accesses rather than tagged types, in order to minimise boilerplate for programmers using the library. The following files are bound manually: wayland-server-core.h -> Wayland.Server wayland-client-core.h -> Wayland.Client wayland-egl-core.h -> Wayland.EGL Then a generator is used to process the protocol XML files and produce all remaining bindings. Probably into Wayland.Protocols. References: https://wayland.freedesktop.org/docs/pdf/Documentation-1.3-Wayland-en-US.pdf http://www.jlekstrand.net/jason/projects/wayland/language-bindings-guide/