---
name: "hat-detect"
section: "1"
platform: "linux"
package: "hat"
version: "2.05+rerolled-7+b1"
release: "Debian 5.0 (Lenny)"
platforms: ["linux"]
url: "https://new.carta.tech/hat-detect"
---

# hat-detect(1)

find a bug by algorithmic debugging

## NAME

hat-detect - find a bug by algorithmic debugging

## SYNOPSIS

**hat-detect** prog\[.hat\]

## DESCRIPTION

*hat-detect* is an interactive tool for finding bugs in the trace of a Haskell program *prog* supplied as its argument.  The user must answer a sequence of yes/no questions.  Each question asked by hat-detect concerns the reduction of a function application to a value.  You answer yes if the reduction is correct with respect to your intentions, and \<em\>no\</em\> otherwise. After a number of questions hat-detect reports an example equation which is the cause of the observed faulty behaviour - that is, which function definition is incorrect.

## INTERACTIVE COMMANDS

The hat-detect browser asks you questions, so the basic mode of interaction is to type answers:

- **yes**

  Yes, the equation looks correct by my understanding of the meaning of the function.

- **no**

  No, the equation looks incorrect.  Given the displayed arguments, the function is returning the wrong result.

The following other commands are available.  They each begin with a colon.

- **:show**

  Show the EDTs hat-detect is currently searching for bugs

- **:children**

  Show the children of the current reduction.

- **:quit**

  Exit the interactive tool.

- **:help**

  Shows help text giving an overview of the commands available.

- **:source**

  Shows (in a separate window) the source code for the reduction currently being queried.

- **:delta**

  Start the hat-delta browser in a new window, beginning with the currently queried reduction.

- **:detect**

  or **:split** Start the hat-detect browser in a new window, beginning with the currently queried reduction.

- **:explore**

  Start the hat-explore browser in a new window, beginning with the currently queried reduction.

- **:trail**

  Start a hat-trail browser in a new window, beginning with the currently queried reduction.

## FILES

- **/usr/bin/hat-detect**

  ## SEE ALSO

[hmake(1)](/hmake/1.md), [hat-trans(1)](/hat-trans/1.md), [hat-delta(1)](/hat-delta/1.md), [hat-stack(1)](/hat-stack/1.md), [hat-observe(1)](/hat-observe/1.md), [hat-trail(1)](/hat-trail/1.md)
