interact is:module

Display mode is for drawing a static picture.
This is a library of interactive processes combinators, usable to define extensible keymaps. (Inspired by the Parsec library, written by Koen Claessen) The processes are:
  • composable: in parallel using <|>, in sequence using monadic bind.
  • extensible: it is always possible to override a behaviour by combination of adjustPriority and <|>. (See also <|| for a convenient combination of the two.)
  • monadic: sequencing is done via monadic bind. (leveraging the whole battery of monadic tools that Haskell provides)
The processes can parse input, and write output that depends on it. The semantics are quite obvious; only disjunction deserve a bit more explanation: in p = (a <|> b), what happens if a and b recognize the same input (prefix), but produce conflicting output?
  • if the output is the same (as by the Eq class), then the processes (prefixes) are "merged"
  • if a Write is more prioritized than the other, the one with low priority will be discarded
  • otherwise, the output will be delayed until one of the branches can be discarded.
  • if there is no way to disambiguate, then no output will be generated anymore. This situation can be detected by using possibleActions however.
Golden test management, interactive mode. Runs the tests, and asks the user how to proceed in case of failure or missing golden standard.
Collection of Modes for working with Haskell.
Utilities when writing interactive programs that interpret commands, e.g. a REPL.
Utilities for interaction with falsify in ghci
Exports all of the interface of Numeric.Uncertain.Correlated, except meant to be run in a ghci session "interactively" for exploratory purposes, or in a plain IO action (instead of inside a Corr monad). For example, with the Numeric.Uncertain.Correlated interface:
ghci> evalCorr $ do
x <- sampleUncert $ 12.5 +/- 0.8
y <- sampleUncert $ 15.9 +/- 0.5
z <- sampleUncert $ 1.52 +/- 0.07
let k = y**x
resolveUncert $ (x+z) * logBase z k
1200 +/- 200
And with the interface from this "interactive" module:
ghci> x <- sampleUncert $ 12.5 +/- 0.8
ghci> y <- sampleUncert $ 15.9 +/- 0.5
ghci> z <- sampleUncert $ 1.52 +/- 0.07
ghci> let k = y**x
ghci> resolveUncert $ (x+z) * logBase z k
1200 +/- 200
The main purpose of this module is to allow one to use ghci as a fancy "calculator" for computing and exploring propagated uncertainties of complex and potentially correlated samples with uncertainty. Because many of the names overlap with the names from the Numeric.Uncertain.Correlated module, it is recommended that you never have both imported at the same time in ghci or in a file, or import them qualified if you must. Also note that all of these methods only work with Uncert Doubles, and are not polymorphic over different numeric types. Be aware that this module is not robustly tested in heavily concurrent situations/applications.
GTlsInteraction provides a mechanism for the TLS connection and database code to interact with the user. It can be used to ask the user for passwords. To use a GTlsInteraction with a TLS connection use tlsConnectionSetInteraction. Callers should instantiate a derived class that implements the various interaction methods to show the required dialogs. Callers should use the 'invoke' functions like tlsInteractionInvokeAskPassword to run interaction methods. These functions make sure that the interaction is invoked in the main loop and not in the current thread, if the current thread is not running the main loop. Derived classes can choose to implement whichever interactions methods they’d like to support by overriding those virtual methods in their class initialization function. Any interactions not implemented will return G_TLS_INTERACTION_UNHANDLED. If a derived class implements an async method, it must also implement the corresponding finish method. Since: 2.30