haskell-emacs is a library which allows extending Emacs in haskell. It provides an FFI (foreign function interface) for haskell functions. Run `haskell-emacs-init' or put it into your .emacs. Afterwards just populate your `haskell-emacs-dir' with haskell modules, which export functions. These functions will be wrapped automatically into an elisp function with the name Module.function. See documentation for `haskell-emacs-init' for a detailed example of usage.