HAT-TRAIL(1)

NAME
hat-trail - find a bug by backwards exploration of redex trails

SYNOPSIS
hat-trail prog[.hat]

DESCRIPTION
hat-trail is an interactive tool for exploring the trace of a given Haskell program prog supplied as its argument. Exploration proceeds backwards, starting at the program output or an error message (with which the computation aborted), finding at each step the direct parent expression of the selected item. This is particularly useful for locating an error. You start at the observed faulty behaviour and work backwards towards the source of the error.

Every reduction replaces an instance of the left-hand side of a program equation by an instance of its right-hand side. The instance of the left-hand side ``creates'' the instance of the right-hand side and is therefore called its parent. With hat-trail you can obtain the parent of any expression or sub-expression already visible.

INTERACTIVE COMMANDS
The following single-key commands are available for interactive navigation of expressions. The following multi-letter commands are available. They each begin with a colon, bringing a visible command-line to the bottom of the screen. A command can be abbreviated to its shortest non-ambiguous prefix.

:quit
    Exit the interactive tool.

:help [cmd]
    Shows help text giving an overview of the commands available, or if a command name cmd is given, shows more detailed help about that command.

:set [flag]
    With no argument, shows all current mode settings. Given an argument, it changes that mode and reports the new setting. The flag argument is one of:

uneval [on|off]
    show unevaluated expressions in full (default off)

strSugar [on|off]
    sugar character strings (default on)

listSugar [on|off]
    sugar lists (default on)

qualified [on|off]
    show all identifiers qualified (default off)

equations [on|off]
    show rhs of equations (default off)

srcrefs [on|off]
    show source reference of currently selected expression in the top bar (default on)

cutoff n
    cut-off depth for deeply nested exprs (default 10)

:+[n]
    Short-cut to increase the cutoff depth by <n> (default 1)

:-[n]
    Short-cut to decrease the cutoff depth by <n> (default 1)

:source
    Shows (in a separate window) the source code for the application usage currently highlighted.

:Source
    Shows (in a separate window) the source code for the function definition currently highlighted.

:detect
    Start the hat-detect browser in a new window, beginning with the currently selected expression.

:trail
    Start another hat-trail browser in a new window, beginning with the currently selected expression.

:observe [query]
    With no argument, an interactive hat-observe window is started with the function part of the currently selected expression used as the initial query. Given a query argument, the new window starts with a search for the given expression pattern before giving an interactive prompt.

:resize
    After resizing a window, use this command to inform the tool to detect the change in size, so that pretty-printing can fit the screen.

FILES

/usr/local/bin/hat-trail

SEE ALSO
hmake(1), hat-trans(1), hat-stack(1), hat-observe(1), hat-detect(1)