- <para>The third argument to <literal>startupHaskell()</literal>
- is used for initializing the Haskell modules in the program.
- It must be the name of the initialization function for the
- "top" module in the program/library - in other words, the
- module which directly or indirectly imports all the other
- Haskell modules in the program. In a standalone Haskell
- program this would be module <literal>Main</literal>, but when
- you are only using the Haskell code as a library it may not
- be. If your library doesn't have such a module, then it is
- straightforward to create one, purely for this initialization
- process. The name of the initialization function for module
+ <para>Next, we call
+ <function>hs_add_root</function><indexterm><primary><function>hs_add_root</function></primary>
+ </indexterm>, a GHC-specific interface which is required to
+ initialise the Haskell modules in the program. The argument
+ to <function>hs_add_root</function> should be the name of the
+ initialization function for the "root" module in your program
+ - in other words, the module which directly or indirectly
+ imports all the other Haskell modules in the program. In a
+ standalone Haskell program the root module is normally
+ <literal>Main</literal>, but when you are using Haskell code
+ from a library it may not be. If your program has multiple
+ root modules, then you can call
+ <function>hs_add_root</function> multiple times, one for each
+ root. The name of the initialization function for module