---
name: "hat-cover"
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-cover"
---

# hat-cover(1)

highlight Haskell source expressions used in a traced run

## NAME

hat-cover - highlight Haskell source expressions used in a traced run

## SYNOPSIS

**hat-cover** \[*OPTION*\]... \[*TRACEFILE*\] \[*SOURCEFILE*\]...

## DESCRIPTION

Print to standard output a listing of each Haskell *SOURCEFILE*, highlighting all expressions for which at least one instance occurs in the **hat** *TRACEFILE*.

The *TRACEFILE* may be specifed with or without a **.hat** extension; similarly each *SOURCEFILE* may be specified with or without a **.hs** extension. If no *SOURCEFILE* is specified **hat-cover** lists all sources in which there are traced expressions.

The highlighted expressions in the output are *maximal* expressions represented in *TRACEFILE*.  However, case-expressions, if-expressions and let-expressions are not included among the candidate maximal expressions. As a result, in *outermost* case/if/let layers each alternative, branch or local definition is considered separately for highlighting.

However, where a case/if/let occurs as a part of a larger expression of some other kind, any highlighting of the larger expression will also highlight the entire case/if/let. More generally, one cannot infer from the highlighting of an expression that every subexpression within it was needed at some point in the traced computation. Extra detail in coverage information can be obtained if necessary by lifting out key subexpressions as the right-hand-sides of local definitions.

- **-hion=***onchars*, **-hioff=***offchars*

  options reset the character-sequence codes used to switch highlighting on and off in the output.

## AUTHOR

Written by Colin Runciman.

## BUGS/LIMITATIONS

Some lone-variable expressions are not candidate maximal expressions for highlighting — but any entire right-hand-side, or any alternative, branch or let-body in outermost case/if/let layers, are always candidates. Some trailing brackets in expressions are not included in highlighting. Both problems are consequences of the current hat trace representation.

## REPORTING BUGS

Report bugs to \<hat@haskell.org\>.

## COPYRIGHT

Copyright © 2004 University of York.\
 This is free software without warranty of any kind.

## SEE ALSO

*hat-cover* is one of many tools in the *Hat* tracing system for Haskell programs. For further information about *Hat* see **http://haskell.org/hat**
