debugger: :trace is wasting time
:trace, execution is constantly switching between the main GHCi thread and the execution thread. The main GHCi thread is a bound thread, whereas the other thread is an unbound thread, so these context switches are real OS-thread switches, consequently
:trace wastes a lot of time context-switching.
Perhaps the main GHCi thread should be an unbound thread, or else
:trace should fork an unbound thread before starting execution.