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

[ bsd3, development, frp, library, program ] [ Propose Tags ]

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

[Skip to Readme]


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


Versions [RSS],,,,,,,,,,,,,
Change log
Dependencies base (>=4.12 && <4.13), bytestring (>=0.10 && <0.11), directory (>=1.3 && <1.4), filepath (>=1.4 && <1.5), fsnotify (>=0.3 && <0.4), optparse-applicative (>=0.14.0 && <0.16), process (>=1.6 && <1.7), reflex (>=0.6.3 && <0.7), reflex-fsnotify (>=0.2 && <0.3), reflex-ghci, reflex-process (>=0.1 && <0.2), reflex-vty (>=0.1.3 && <0.2), regex-tdfa (>=1.2.3 && <1.3), text (>=1.2 && <1.3), unix (>=2.7 && <2.8), vty (>=5.25 && <5.26) [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 abrar at 2020-01-18T03:39:39Z
Distributions NixOS:
Executables reflex-ghci
Downloads 2764 total (43 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

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: <interactive> [-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")
  -e,--expression EXPR     The optional expression to evaluate once modules have
                           successfully loaded (default: no expression)
  -h,--help                Show this help text


Inspired by the fantastic ghcid project.