reflex-ghci: A GHCi widget library for use in reflex applications

This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.

[maintain] [Publish]

Run GHCi from within a reflex application and interact with it using a functional-reactive interface.

[Skip to Readme]


Change log
Dependencies base (==4.12.*), bytestring (==0.10.*), directory (==1.3.*), filepath (==1.4.*), fsnotify (==0.3.*), optparse-applicative (>=0.14.0 && <0.16), process (==1.6.*), reflex (>= && <0.8), reflex-fsnotify (==0.2.*), reflex-ghci, reflex-process (==0.3.*), reflex-vty (>=0.1.3 && <0.2), regex-tdfa (>=1.2.3 && <1.4), text (==1.2.*), unix (==2.7.*), vty (>=5.21 && <5.29) [details]
License BSD-3-Clause
Copyright 2020 Obsidian Systems LLC
Author Obsidian Systems LLC
Category FRP, Development
Bug tracker
Source repo head: git clone
Uploaded by 3noch at 2020-06-10T14:54:38Z




Maintainer's Corner

For package maintainers and hackage trustees

Readme for reflex-ghci-

[back to package description]


hackage hackage-ci travis-ci



A functional-reactive wrapper around GHCi that uses filesystem notifications to automatically reload haskell source files.

Reflex.Process.GHCi provides the core GHCi process-running infrastructure. If you want to run your own GHCi, directly control when it reloads, or build your own custom interface, look there.

Reflex.Vty.GHCi provides a few widgets that are useful when building a console GHCi interface. Use these components to assemble your own vty GHCi runner.


This package includes a reflex-vty-based executable, shown above. Module information (errors, warnings, etc) is shown in a scrollable pane on the top half of the screen and the output of any expression you (optionally) choose to evaluate is shown in a scrollable pane on the bottom half. The panes are resizable using the mouse.

$ reflex-ghci -h
Welcome to reflex-ghci

Usage: reflex-ghci [-c|--command COMMAND] [-e|--expression EXPR]
  Run a Haskell REPL that automatically reloads when source files change.

Available options:
  -c,--command COMMAND     The ghci/cabal repl command to
                           run (default: "cabal repl --repl-options=-Wall")
  -e,--expression EXPR     The optional expression to evaluate once modules have
                           successfully loaded
  -h,--help                Show this help text


Inspired by the fantastic ghcid project.