When set to True, every module in every available package is implicitly
imported qualified. This is very convenient for interactive
evaluation, but can be a problem in sandboxed environments
(e.g. System.Unsafe.unsafePerformIO is in scope).

Default value is True.

Observe that due to limitations in the GHC-API, when set to False, the
private symbols in interpreted modules will not be in scope.

Gets an abstract representation of all the entities exported by the module.
It is similar to the :browse command in GHCi.

Anotations

Please note below that annotations are an experimental
feature in GHC HEAD.
In the snippets below we use 'LBRACE' and 'RBRACE'
to mean '{' and '}' respectively. We cannot put the
pragmas inline in the code since GHC scarfs them up.

Miscellaneous

Conceptually, parens s = "(" ++ s ++ ")", where s is any valid haskell
expression. In practice, it is harder than this.
Observe that if s ends with a trailing comment, then parens s would
be a malformed expression. The straightforward solution for this is to
put the closing parenthesis in a different line. However, now we are
messing with the layout rules and we don't know where s is going to
be used!
Solution: parens s = "(let {foo =n" ++ s ++ "\n ;} in foo)" where foo does not occur in s