Epigram 2 is an experimental dependently typed functional programming language.


  • Read the Epigram manual
  • This pig file is gives lots of examples of Epigram's syntax in action: Syntax.pig
  • The source code of Epigram is directly available online. It's also literate program available as the Epitome which you can read in glorious pdf.



To report a bug head over to http://code.google.com/p/epigram/ .

Download Epigram 2

Epigram 2 has not yet been released. When it is it will be on hackage. Until then, and if you're feeling brave, you can download the development version from our darcs repository. You will need ghc 6.12 right now and you'll also need cabal install. We're sorry about this and we hope to target 6.10 in future.

Before you start

As we said you'll need ghc 6.12 and cabal-install. Here is some limited advice about how to get it:

Ubuntu 10.04

Install ghc stuff by running Applications -> Ubuntu Software Center. Install: ghc6, darcs, cabal-install, libghc6-mtl-dev.

OS X Leopard/Snow Leopard Intel

The version in macports is only 6.10 at present. We suggest you get the binary from the ghc website.


Before you try to install Epigram you will need the Strathclyde Haskell Extension to compile Epigram. The version on hackage is fine:

$ cabal install she
$ she # this should give a 'user error'

If the second line doesn't work it's probably because your path needs amending. cabal-install puts binaries in $HOME/.cabal/bin by default. You should add this to your path.

Get Epigram

$ darcs get http://www.e-pig.org/darcs/Pig09/
$ cd Pig09
$ cabal install


If you want to create executables from Epigram programs you'll need Edwin Brady's EPIC compiler. I defer to Edwin for further instructions:


Staying up to date

You can just update from the darcs repo:

$ darcs pull
$ cabal clean
$ cabal install

Now might be a good time to take a look at the manual. Alternatively, just type:

$ Pig

Epigram 1

Back be popular demand, here are some dusty looking archives of Epigram 1:

Read the file "INSTALL" contained within for further installation guidance. They all require xemacs. Once you've got it running, you'll probably need to read the manual.