The hint package

This library defines an Interpreter monad, inside which modules can be
loaded, and strings with Haskell expressions can be evaluated, coerced
into values, or type-checked. The library is thread-safe and all
operations (even the coertion of expressions to values) are type-safe.
It is, esentially, a huge subset of the GHC API wrapped in a simpler
API. Tested with GHC 6.6.1.