The semantics of Core?

Simon Peyton-Jones
Tue, 18 Feb 2003 08:49:37 -0000

I don't know of any separate description of the semantics of Core, but =
it's just the lambda calculus with let, letrec and case.  There's plenty =
of code that works over Core in GHC itself, but no separate libraries.  =
There is a library to parse the stuff that ghc -fext-core spits out, =

Kirsten Chevalier and Tobias Gedell have experience of using this route, =
and may be able to help, depending on your purpose.

Contributing well-engineered Core-manipulating libraries would be a Good =


| -----Original Message-----
| From: Martin Sj=F6gren []
| Sent: 18 February 2003 08:18
| To:
| Subject: The semantics of Core?
| Hello
| I'm looking for a paper or some other documentation on the exact
| semantics of Core. I've read the paper about the concrete syntax, and =
| briefly mentions the abstract syntax and something about the case
| expression, but not a lot. Unless I missed something?
| I'm also looking for actual code for working with Core. :) The
| Language.Haskell.* stuff gives me a very high-level representation of
| Haskell source, and I'd rather work with something simple, like Core. =
| *suppose* I could use ghc -fvia-ext or helium -C or something like =
| and then parse the file it spits out, but it feels like a long way to =
| when there should be shortcuts available. Another way is to rip out =
| code from ghc or helium that does this, but that's not so nice either =
| Any suggestions?
| /Martin