The usual Cabal installation procedure works: runghc Setup.lhs configure runghc Setup.lhs build runghc Setup.lhs install The last step may require root privileges. The default install location is /usr/local/bin. This can be changed by supplying a different "--prefix" option to the configure step (default: /usr/local). Emacs installation ~~~~~~~~~~~~~~~~~~ The preliminary Emacs interface is in elisp/typalyze.el. Add something like this to your Emacs configuration file: (add-to-list 'load-path "/path/to/elisp/typalyze.el") (require 'typalyze) Cabal will install the elisp files for version x.y.z under /usr/local/share/typalyze-x.y.z/elisp/typalyze.el by default, for example.