+ <sect2><title>Tips</title>
+ <variablelist>
+ <varlistentry><term>* Use PRAGMAs to fine tune which modules are loaded under debugging mode</term>
+ <listitem>
+ <programlisting>{-# OPTIONS_GHC -fdebugging #-}</programlisting>
+ </listitem>
+ </varlistentry>
+ <varlistentry> <term>* Repeated use of <literal>seq</literal> and
+ <literal>:print</literal> may be necessary to observe unevaluated
+ untyped bindings</term>
+ <listitem><para>see <xref linkend="debuggingEx"/>
+ </para></listitem>
+ </varlistentry>
+ <varlistentry> <term> * <literal>GHC.Exts.unsafeCoerce</literal> can help if you are positive about the type of a binding</term>
+ <listitem><para><programlisting>
+type MyLongType a = [Maybe [Maybe a]]
+
+main:Main> :m +GHC.Exts
+main:Main> main
+Local bindings in scope:
+ x :: a
+Main.hs:15> let x' = unsafeCoerce x :: MyLongType Bool
+Main.hs:15> x'
+[Just [Just False, Just True]]
+ </programlisting>
+ Note that a wrong coercion will likely result in your debugging session being interrupted by a segmentation fault
+ </para></listitem>
+ </varlistentry>
+ <varlistentry> <term> * The undocumented (and unsupported) :force command </term>
+ <listitem><para>
+ equivalent to <literal> :print</literal> with automatic
+ <literal>seq</literal> forcing,
+ may prove useful to replace sequences of <literal>seq</literal> and
+ <literal>:print</literal> in some situations.
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+ </sect2></sect1>