EXPERIMENTAL Write Emacs module in Haskell, using Emacs 25's Dynamic Module feature. * Only tested with linux. * You need to build emacs with --with-modules configuration options * You need to specify some ghc-options to make it work work Sample: {-# LANGUAGE ForeignFunctionInterface,OverloadedStrings #-} module Main where import Emacs foreign export ccall "emacs_module_init" emacsModuleInit :: EmacsModule emacsModuleInit :: EmacsModule emacsModuleInit = defmodule "sample-module" $ do setVal "foo" (Symbol "bar") defun "square" $ \i -> do message "haskell squre function called" return $ (i*i :: Int)