M main/Main.hs
M main/Repl.hs
M src/Nix/Builtins.hs
M src/Nix/Convert.hs
M src/Nix/Effects.hs
M src/Nix/Effects/Basic.hs
M src/Nix/Eval.hs
M src/Nix/Exec.hs
M src/Nix/Expr/Types.hs
M src/Nix/Json.hs
M src/Nix/Lint.hs
M src/Nix/Normal.hs
M src/Nix/Options/Parser.hs
M src/Nix/Parser.hs
M src/Nix/Scope.hs
M src/Nix/String.hs
M src/Nix/TH.hs
M src/Nix/Thunk/Basic.hs
M src/Nix/Utils.hs
M src/Nix/Value.hs
M src/Nix/Value/Equal.hs
M src/Nix/XML.hs
M tests/EvalTests.hs
M tests/Main.hs
M tests/NixLanguageTests.hs
M tests/ParserTests.hs
M tests/TestCommon.hs
M Setup.hs
M main/Repl.hs
M src/Nix/Builtins.hs
M src/Nix/Cache.hs
M src/Nix/Cited.hs
M src/Nix/Cited/Basic.hs
M src/Nix/Convert.hs
M src/Nix/Exec.hs
M src/Nix/Expr/Types.hs
M src/Nix/Expr/Types/Annotated.hs
M src/Nix/Lint.hs
M src/Nix/Normal.hs
M src/Nix/Pretty.hs
M src/Nix/Render/Frame.hs
M src/Nix/Scope.hs
M src/Nix/TH.hs
M src/Nix/Thunk.hs
M src/Nix/Thunk/Basic.hs
M src/Nix/Utils.hs
M src/Nix/Value.hs
M src/Nix/Value/Equal.hs
Bindings are now handled correctly and you can do
```
a = 2
b = 3
c = a + b
:browse
:t c
```
Converted IState to data type instead of `newtype`.
Now tracks `replIt` for last entered expression that parsed
successfully.
`replCtx` is now extended with bindings and browseable via `:browse`.
:`debug` can be used to enable dumping of `IState` on input.
Scope taken from `replCtx` is now pushed to evaluated values.
Drops Repline `abort`s and switches to `Maybe` result for `call` function.
Few other bits handled too:
- `M.empty` -> `mempty`
- qualified use of `Data.Text`
- minor formatting fixes for readability
Closes#505.
The `MonadException` class was removed in favor of `MonadCatch`, so we
can remove its instances, enabling us to remove the library dependency
on haskeline.
To simplify dependency resolution with GHC < 8.10, this also disables
the executable in that configuration.
This code was written by Stephen Diehl and Kwang Yul Seo, which they released
under an MIT license as the project poly_constraints:
https://github.com/kseo/poly_constraints
The code is added to hnix right now as mainly a placeholder, and will need to
be modified before it can be used.