\section{Introduction} On modern desktop systems, applications need to communicate with one another; for example, a movie player can disable the screensaver, or a music player can be notified when the user inserts a CD-ROM. In the early years of the Linux desktop, this Inter-Process Communication (IPC) was performed through a variety of ad hoc mechanisms. D-Bus is a simple, standardized IPC mechanism intended to replace and obsolete all of these older technologies. In contrast to earlier IPC protocols, which are typically byte-based, D-Bus allows applications to send strongly-typed data structures named {\em messages}. Applications may expose an object-oriented API to the user's session, the entire system, or even remote systems. This brings the full power of object-oriented programming to IPC; for example, many applications can implement a standardized {\em interface} to seamlessly interoperate with any client written against that interface. \begin{center} \includegraphics{latex/figure_1.eps} \end{center} This library is an implementation of the D-Bus protocol in pure Haskell. It can be used to add D-Bus support to Haskell applications, without the awkward interfaces common to foreign bindings. The literate portions (the part you're reading right now) are written for intermediate or advanced Haskell programmers, who may not be familiar with D-Bus. It might also be of use to programmers interested in implementing D-Bus in other functional languages, such as ML. Documentation is licensed under CC-BY-SA 3.0. Source code is licensed under the GNU GPL v3 or later: \begin{quote} :d copyright -- Copyright (C) 2009-2011 John Millikin -- -- This program is free software: you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation, either version 3 of the License, or -- any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program. If not, see . : \end{quote}