ghciwatch 1.1.5

Ghciwatch loads a GHCi session for a Haskell project and reloads it when source files change.
Documentation
# ghciwatch

Ghciwatch loads a [GHCi][ghci] session for a Haskell project and reloads it
when source files change.

[ghci]: https://downloads.haskell.org/ghc/latest/docs/users_guide/ghci.html

## Features

- GHCi output is displayed to the user as soon as it's printed.
- Ghciwatch can handle new modules, removed modules, or moved modules without a
  hitch
- A variety of [lifecycle hooks]lifecycle-hooks.md let you run Haskell code
  or shell commands on a variety of events.
  - Run a test suite with [`--test-ghci
    TestMain.testMain`](cli.md#--test-ghci).
  - Refresh your `.cabal` files with [`hpack`][hpack] before GHCi starts using
    [`--before-startup-shell hpack`]cli.md#--before-startup-shell.
  - Format your code asynchronously using [`--before-reload-shell
    async:fourmolu`](cli.md#--before-reload-shell).
- [Custom globs]cli.md#--reload-glob can be supplied to reload or restart the
  GHCi session when non-Haskell files (like templates or database schema
  definitions) change.
- Ghciwatch can [clear the screen between reloads]cli.md#--clear.
- Compilation errors can be written to a file with [`--error-file`]cli.md#--error-file, for
  compatibility with [ghcid's][ghcid] `--outputfile` option.
- Comments starting with `-- $>` [can be evaluated]comment-evaluation.md in
  GHCi.
  - Eval comments have access to the top-level bindings of the module they're
    defined in, including unexported bindings.
  - Multi-line eval comments are supported with `{- $> ... <$ -}`.

[ghcid]: https://github.com/ndmitchell/ghcid
[hpack]: https://github.com/sol/hpack

## Demo

Check out an [asciinema demo][asciinema] to see how ghciwatch feels in practice:

<script src="https://asciinema.org/a/659712.js" id="asciicast-659712" async="true"></script>

[asciinema]: https://asciinema.org/a/659712