
jupdike:
For scenario (a) you can use hs-plugins and ghc http://www.cse.unsw.edu.au/~dons/hs-plugins/ With hs-plugins you can get an "eval" command, or you can dynamically load Haskell modules (from source or pre-compiled .o files).
GHC (>= 6.5) has an API that you can access from Haskell programs: http://www.haskell.org/haskellwiki/GHC/As_a_library I was wondering if the new GHC API gives you everything hs-plugins does? If not will it ultimately do what hs-plugins does and replace it, in the future?
It doesn't have the high level api. Sean Seefried actually implemented an hs-plugins-like interface to some bits of GHC, and I'd expect that hs-plugins 2 will just be a layer over ghc-api (or maybe part of ghc-api). Certainly the object loading and (ghci-based) evaluation could be moved from hs-plugins to ghc-api. The file merging operations, and possibly the native-code evaluation would require adding a layer over ghc-api. -- Don