id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	os	architecture	failure	difficulty	testcase	blockedby	blocking	related
1467	GHC API: expose separate compilation stages	simonmar	nominolo	"The GHC API is currently hard to use for certain things: extracting the output from various compilation stages; or ""hooking in"" to the compilation pipeline.  The `checkModule` function works for some uses, but it doesn't let you extract Core, for example, and it doesn't complete the compilation and inject the result into the `Session`, so the module still has to be compiled.

One way to solve this would be to abstract the compilation pipeline as a series of functions, so that the user could script the compiler.  We haven't worked out the details, but in principle it should be possible to write a GHC API client that invokes the following steps:

 * parse a module
 * rename/typecheck
 * deSugar
 * optimise...
 * generate code

and can then inject the compilation results back into the `Session` for use by future compilations.  Each individual stage should provide a result that can be inspected: get the renamed/typechecked code out, get the Core, and so on.  

The current `checkModule` could be built on top of such an interface, but the interface would allow much more flexibility."	task	closed	normal	6.10 branch	GHC API	6.9	fixed		claus.reinke@…	Unknown/Multiple	Unknown/Multiple		Moderate (less than a day)				
