How to modify GHC internals?

Lennart Augustsson lennart@augustsson.net
Sat, 19 Jul 2003 19:03:05 +0200


><Aim>
>To guarantee security of a Haskell program so it can
>be used as an applet.
></Aim>
>
><Method>
>Over-ride GHC's code generator to produce an
>assembly language that I specify. Also disable
>program access to system calls and foreign
>functions, except for a single trusted library
>that I specify.
></Method>
>  
>
Since all effects that you worry about (if you trust GHC's code
generation, and I think you should) happen in the IO monad, you
only need to limit what's available as libraries, and outlaw 
unsafePerformIO.
You could also make your own version of the IO monad to get better control.

    -- Lennart