This allows dropping elmi-to-json, which in turn allows dropping GHC
8.10.7. Along with elmi-to-json, we can remove the patchBinwrap utility,
which was only used for that purpose.
Along with elm-coverage, we can also drop elm-instrument, which was only
used as a dependency of the former, and it's reverse dependency indents.
Found using https://github.com/serokell/xrefcheck, which unfortunately
can't trivially be enforced in CI because we also have the manual markdown
files that need post-processing to be valid
Extends the number of available tools for Elm language.
1. fix and move "elm-test"
Previously located in nodePackages.elm-test but broken (see binwrap info).
Now fixed and located in elmPackages.elm-test
2. add "elm-verify-examples"
Generate tests from documentation examples
3. add "elm-upgrade"
upgrade assistant using statical analysis
4. add "elm-analyse"
static analysis for elm code (linter)
5. move "elm-doc-preview"
originally located in nodePackages.elm-upgrade - moved for consistency
6. add "elmi-to-json"
transforms elmi files to json - used by other tools like elm-test and
elm-verify-examples
Node.js based dependencies are defined the same way as nodePackages
contaparts but are independent (has it's own packages.json)
patch-binwrap.nix is used to as a replacement for binwrap package
used by some nodejs dependencies that depends on Haskell binaries
(elm-test and elm-verify-examples).
BREAKING CHANGE
===============
elm-doc-preview (as well as broken elm-test) is now commented
in `node-packages-v10.json` and should be removed once new
nix-expressions for node10 are generated (out of scope of this PR)
There are still 2 outstanding elm related packages in nodePackages
1. elm-oracle - legacy package which is not compatible with elm 0.19
2. elm-live - should be moved in the future I think