Very new to the Haskell ecosystem here. I'm trying to install hunit but when I run cabal install hunit I get the following message:
Warning: The install command is a part of the legacy v1 style of cabal usage.
Please switch to using either the new project style and the new-install
command or the legacy v1-install alias as new-style projects will become the
default in the next version of cabal-install. Please file a bug if you cannot
replicate a working v1- use case with the new-style commands.
For more information, see: https://wiki.haskell.org/Cabal/NewBuild
cabal: There is no package named 'hunit'. However, the following package name
exists: 'HUnit'.
This message is telling you two different things. "Install" is a legacy command and "hunit" does not exist.
Your short solution is
cabal v2-install --lib HUnit. For a legacy behavior considercabal v1-install HUnit.install is legacy: The big paragraph
Cabal used to install everything into a single store, either user or system wide, and if any package ever disagreed on package version then good luck. The v2 commands move to a "nix style build" where different versions can co-exist in the store and projects can continue to benefit by sharing builds for common packages. The v2 commands are literally the commands prefixed with
v2-, such asv2-install,v2-buildandv2-configure.hunit does not exist
Hackage is case sensitive. The tool already informed you that you might have intended to install
HUnitinstead ofhunit.Epilog: Use
--libThe
v2-installdoes not expose the built libraries unless installed explicitly via--lib. This reduces namespace clutter at some expensive of us programmers needing to retrain. To use HUnit as a library and play with it in the repl, add--libas shown at the beginning.