GHC issueshttps://gitlab.haskell.org/ghc/ghc/-/issues2024-02-06T15:15:15Zhttps://gitlab.haskell.org/ghc/ghc/-/issues/24399-hide-package doesn't play nice with -package-env2024-02-06T15:15:15ZSimon Hengelsol@typeful.net-hide-package doesn't play nice with -package-env## Summary
When I use `-hide-package` in combination with `-package-env` then it seems to have no effect.
## Steps to reproduce
With `cabal-install-3.10.2.1`:
```
$ tree
.
├── foo.cabal
└── src
└── Prelude.hs
```
```cabal
cabal-v...## Summary
When I use `-hide-package` in combination with `-package-env` then it seems to have no effect.
## Steps to reproduce
With `cabal-install-3.10.2.1`:
```
$ tree
.
├── foo.cabal
└── src
└── Prelude.hs
```
```cabal
cabal-version: 3.8
name: foo
version: 0.0.0
library
build-depends: base
mixins: base (Prelude as BasePrelude)
hs-source-dirs: src
exposed-modules: Prelude
```
```haskell
{-# LANGUAGE NoImplicitPrelude #-}
module Prelude where
import BasePrelude
foo :: Int
foo = 23
```
```
$ cabal install --package-env=package.env --lib
$ ghci -package-env=package.env -hide-package=base
ghci> import Prelude
<no location info>: error: [GHC-45102]
Ambiguous module name ‘Prelude’.
it was found in multiple packages: base-4.19.0.0 foo-0.0.0
```
## Expected behavior
The module `Prelude` from package `foo` is used.
## Environment
* GHC version used: 9.8.1https://gitlab.haskell.org/ghc/ghc/-/issues/24120Unused Package Warning for `system-cxx-std-lib` Dependency2023-11-14T15:17:12ZjulianbrunnerUnused Package Warning for `system-cxx-std-lib` Dependency## Summary
When building a package depending on `system-cxx-std-lib` while using `-Wunused-packages`, the package `system-cxx-std-lib` is reported as unused.
## Steps to reproduce
I have a library specification that looks like this:
`...## Summary
When building a package depending on `system-cxx-std-lib` while using `-Wunused-packages`, the package `system-cxx-std-lib` is reported as unused.
## Steps to reproduce
I have a library specification that looks like this:
```
library
default-language: GHC2021
ghc-options: -Wall -Wno-name-shadowing -Wunused-packages
build-depends: base, system-cxx-std-lib
hs-source-dirs: source
exposed-modules: RTAudio.Audio
cxx-options: -Wall
cxx-sources: rtaudio/rtaudio_c.cpp rtaudio/RtAudio.cpp
```
When compiled, this produces the following warning:
```
<no location info>: warning: [GHC-42258] [-Wunused-packages]
The following packages were specified via -package or -package-id flags,
but were not needed for compilation:
- system-cxx-std-lib-1.0 (exposed by flag -package-id system-cxx-std-lib-1.0)
```
## Expected behavior
The package `system-cxx-std-lib` is actually used. The compilation fails with undefined references to C++ standard library symbols when it is not mentioned in `build-depends`. Thus, the package should not be reported as "not needed for compilation".
## Environment
* GHC version used: 9.6.3
Optional:
* Operating System: Arch Linux
* System Architecture: x649.10.1Matthew PickeringMatthew Pickeringhttps://gitlab.haskell.org/ghc/ghc/-/issues/23653Add `-fprint-unit-ids` and hide printing of unit-ids by default.2023-08-14T09:09:25ZOleg GrenrusAdd `-fprint-unit-ids` and hide printing of unit-ids by default.Output like
```
... (servant-0.19.1-2766f5fde1349996d1634ebb37647b1723dacd28547ecaafe0e93e4cfa5eec79:Servant.API.ReqBody.ReqBody
'[servant-0.19.1-2766f5fde1349996d1634ebb37647b1723dacd28547ecaafe0e93e4cfa5eec79:Servant.API.ContentTypes....Output like
```
... (servant-0.19.1-2766f5fde1349996d1634ebb37647b1723dacd28547ecaafe0e93e4cfa5eec79:Servant.API.ReqBody.ReqBody
'[servant-0.19.1-2766f5fde1349996d1634ebb37647b1723dacd28547ecaafe0e93e4cfa5eec79:Servant.API.ContentTypes.JSON]
```
is usually not helpful.
I think hiding full unit-ids by default would make output a lot cleaner (when things are not in scope).
A middleground would be to print *package name* (which I guess is somewhat easily available as `PackageImports` uses it), i.e.
```
... (servant:Servant.API.ReqBody.ReqBody '[servant:Servant.API.ContentTypes.JSON]
```Matthew PickeringMatthew Pickeringhttps://gitlab.haskell.org/ghc/ghc/-/issues/23131ghc type mismatch due to different package versions2023-10-28T08:03:10ZFrancesco Occhipintighc type mismatch due to different package versions## Summary
We stumbled upon the following:
```
• Couldn't match type ‘bytestring-0.10.8.2:Data.ByteString.Internal.ByteString’
with ‘ByteString’
NB: ‘ByteString’
is defined in ‘Data.ByteString...## Summary
We stumbled upon the following:
```
• Couldn't match type ‘bytestring-0.10.8.2:Data.ByteString.Internal.ByteString’
with ‘ByteString’
NB: ‘ByteString’
is defined in ‘Data.ByteString.Internal.Type’
in package ‘bytestring-0.11.4.0’
‘bytestring-0.10.8.2:Data.ByteString.Internal.ByteString’
is defined in ‘Data.ByteString.Internal’
in package ‘bytestring-0.10.8.2’
Expected type: Field -> Parser Day
Actual type: ByteString -> Parser Day
• In the expression: parseDate
In an equation for ‘parseField’: parseField = parseDate
In the instance declaration for ‘FromField Day’
```
This seems to be due to `cassava` relying on `bytestring` 0.10, while the type in scope and related functions come from an installed `bytestring` 0.11.
Unfortunately, the `PackageImports` syntax does not allow to specify a package version.
We could try to select the desired package by using the compiler's options, but `-hide-all-packages` won't help because it prevents some locally installed packages to access their dependencies. `-hide-package bytestring-0.11.4.2`, on the other hand, fails with the surprising error:
```
<command line>: cannot satisfy -hide-package bytestring-0.11.4.2
(use -v for more information)
```
Since we just want to hide a package, we would expect no errors even if the package was not visible. Anyway this is just some temporary puzzlement, as it turns out that we wrote the version wrong, so the error is arguably helpful.
Once the right version is specified, the compiler starts and mostly works, although it seems to still fail at some stage, between Renamer and Upsweep, with the same problem:
```
Ambiguous module name ‘Data.ByteString.Lazy’:
it was found in multiple packages:
bytestring-0.10.8.2 bytestring-0.11.4.0
```
The compiler version is 8.6.5. Before updating i would be interested to know whether this has been fixed in a later version. Furthermore, since this use case touched a diverse array of limitations, i thought it might be worth issuing anyway.
Here the complete error including some contextual lines:
```
*** Parser [Lumaposta]:
!!! Parser [Lumaposta]: finished in 2.81 milliseconds, allocated 4.923 megabytes
*** Renamer/typechecker [Lumaposta]:
!!! Renamer/typechecker [Lumaposta]: finished in 25.23 milliseconds, allocated 12.681 megabytes
lumaposta.hs:9:1: error:
Ambiguous module name ‘Data.ByteString’:
it was found in multiple packages:
bytestring-0.10.8.2 bytestring-0.11.4.0
|
9 | import Data.ByteString (ByteString)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lumaposta.hs:16:1: error:
Ambiguous module name ‘Data.ByteString’:
it was found in multiple packages:
bytestring-0.10.8.2 bytestring-0.11.4.0
|
16 | import qualified Data.ByteString as ByteString
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lumaposta.hs:17:1: error:
Ambiguous module name ‘Data.ByteString.Lazy’:
it was found in multiple packages:
bytestring-0.10.8.2 bytestring-0.11.4.0
|
17 | import qualified Data.ByteString.Lazy as Lazy
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lumaposta.hs:18:1: error:
Ambiguous module name ‘Data.ByteString.Char8’:
it was found in multiple packages:
bytestring-0.10.8.2 bytestring-0.11.4.0
|
18 | import qualified Data.ByteString.Char8 as Char8
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Upsweep partially successful.
*** Deleting temp files:
Deleting:
link(batch): upsweep (partially) failed OR
Main.main not exported; not linking.
*** Deleting temp files:
Deleting:
*** Deleting temp dirs:
Deleting:
```
## Environment
* GHC version used: 8.6.5Matthew PickeringMatthew Pickeringhttps://gitlab.haskell.org/ghc/ghc/-/issues/22960EPS contention may be slowing down parallel make2023-02-27T20:15:03ZTeo CamarasuEPS contention may be slowing down parallel make### Summary
I think it's likely that contention of the EPS is blocking parallel make from reaching its full potential on large shallow module graphs.
The EPS is stored in a global IORef and is regularly checked during typechecking.
If a...### Summary
I think it's likely that contention of the EPS is blocking parallel make from reaching its full potential on large shallow module graphs.
The EPS is stored in a global IORef and is regularly checked during typechecking.
If an interface hasn't yet been loaded, then it will be loaded, typecheched (potentially loading further interfaces), and then atomically merged with the current value of the EPS.
From a quick glance at the code I'm seeing two potential issues:
1) Duplicated work due to two threads racing:
In a situation where two threads both discover that an interface is missing from the EPS, I think, they will duplicate work to load it.
2) Atomically updating the EPS blocks reads:
AFAIK using `atomicModifyIORef'` blocks reads, as it updates the IORef with a thunk that it then evaluates. While the thunk is under evaluation, other threads will be blocked if they try to look at it.
I say potential issues because I haven't done enough investigating to confirm if this is actually an issue.
I'll try to do that in the next couple of weeks and come up with some strategies to mitigate it if it does turn out to be a problem.
### Context
I was led to the EPS by looking at the DWARF decoded stacks of threads blocking on blackholes while compiling `Cabal`.
Code that was looking things up in the EPS stood out to me. I used this branch of ghc https://gitlab.haskell.org/teo/ghc/-/commits/wip/blackhole-introspectionBen GamariBen Gamarihttps://gitlab.haskell.org/ghc/ghc/-/issues/22732Don't reuse `hsLibraries` field of InstalledPackageInfo for native libraries2023-01-26T21:42:58ZBen GamariDon't reuse `hsLibraries` field of InstalledPackageInfo for native librariesIn https://gitlab.haskell.org/ghc/ghc/-/issues/22564#note_468545 we noted that users of the `extra-bundled-libraries` field are saddled with the unfortunate requirement of naming their native libraries with a `libC` prefix (specified in ...In https://gitlab.haskell.org/ghc/ghc/-/issues/22564#note_468545 we noted that users of the `extra-bundled-libraries` field are saddled with the unfortunate requirement of naming their native libraries with a `libC` prefix (specified in the Cabal [reference documentation](https://cabal.readthedocs.io/en/stable/cabal-package.html#pkg-field-extra-bundled-libraries)).
The requirement is due to the strange implementation of `extra-bundled-libraries`: "bundled" libraries are added to the `hsLibraries` field of `InstalledPackageInfo`, leaving the runtime linker with an ambiguity regarding whether the library is a Haskell object (in which case it may need a "way" suffix in its name) or native object. The required `libHS`/`libC` prefix allows the linker to resolve this ambiguity.
IMHO it would be much better if `extra-bundled-libraries` were instead implemented in terms of a new `InstalledPackageInfo` field, eliminating the ambiguity by construction.https://gitlab.haskell.org/ghc/ghc/-/issues/22333GHC 9.4.2/Cabal 3.8.1.0: `PackageImports` with `reexported-modules`, problem2022-12-15T18:48:30ZMike PilgremGHC 9.4.2/Cabal 3.8.1.0: `PackageImports` with `reexported-modules`, problem## Summary
I have reported the same [issue](https://github.com/haskell/cabal/issues/8548) in the repository of Cabal (the library) and it has been suggested there that it may be a bug in GHC 9.4.2. The problem has been reproduced with S...## Summary
I have reported the same [issue](https://github.com/haskell/cabal/issues/8548) in the repository of Cabal (the library) and it has been suggested there that it may be a bug in GHC 9.4.2. The problem has been reproduced with Stack and Cabal (the tool). The problem is most easily described by the steps to produce it, below.
## Steps to reproduce
I have a library in package `my-package-B` which exposes module `LibB`. I have a library in package `my-package-A` which `build-depends` on `my-package-B` and has `reexported-modules` `LibB`.
Finally, I have an executable in package `my-package-C` which `build-depends` on `my-package-A` (only), and has `Main.hs`:
~~~haskell
{-# LANGUAGE PackageImports #-}
module Main (main) where
import "my-package-A" LibB (someFuncB)
main :: IO ()
main = print someFuncB
~~~
With `stack --resolver ghc-9.2.4 build`, it all builds as expected.
However, with `stack --resolver ghc-9.4.2 build`, and all else equal, the build fails with Cabal message:
~~~text
my-package-C> app\Main.hs:6:1: error:
my-package-C> Could not find module ‘LibB’
my-package-C> Perhaps you meant
my-package-C> LibB (from my-package-A-0.1.0.0, reexporting LibB)
my-package-C> LibA (from my-package-A-0.1.0.0)
my-package-C> |
my-package-C> 6 | import "my-package-A" LibB (someFuncB)
my-package-C> | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
~~~
I can't make sense of the error message. I've requested `LibB` be imported from package `my-package-A` and I'm told it can't be found but perhaps I mean `LibB` reexported by `my-package-A`?
However, if I change (only) `Main.hs` to (no package-qualified import):
~~~haskell
module Main (main) where
import LibB (someFuncB)
main :: IO ()
main = print someFuncB
~~~
`stack --resolver ghc-9.4.2 build` now works! That is why I think it is a bug.
## Environment
* GHC 9.4.2
* Windows 11
* x86_649.4.4Matthew PickeringMatthew Pickeringhttps://gitlab.haskell.org/ghc/ghc/-/issues/21931v3.8.1.0 checkout of cabal supports GHC 9.4 and is ready for assimilation int...2022-08-31T22:27:23ZMikolaj Konarskiv3.8.1.0 checkout of cabal supports GHC 9.4 and is ready for assimilation into GHC (or if it's not, we'd love your feedback)The tag is https://github.com/haskell/cabal/tree/Cabal-v3.8.1.0.
Contact point is Mikolaj Konarski, but feel free to also open tickets in the cabal repo.
The actual cabal release is planned in a week or two, after some more of (yours, ...The tag is https://github.com/haskell/cabal/tree/Cabal-v3.8.1.0.
Contact point is Mikolaj Konarski, but feel free to also open tickets in the cabal repo.
The actual cabal release is planned in a week or two, after some more of (yours, among others) feedback. Either exactly the tag is going to be released or, if changes are needed, a new tag, e.g., 3.8.2.0. Current hackage candidates are at https://hackage.haskell.org/package/Cabal-3.8.1.0/candidate https://hackage.haskell.org/package/Cabal-syntax-3.8.1.0/candidate https://hackage.haskell.org/package/cabal-install-3.8.1.0/candidate https://hackage.haskell.org/package/cabal-install-solver-3.8.1.0/candidate9.4.1Douglas Wilsondouglas@well-typed.comDouglas Wilsondouglas@well-typed.comhttps://gitlab.haskell.org/ghc/ghc/-/issues/21307ghc reports package-id in unused imports warning instead the package name+ver...2022-04-01T17:27:30ZJavier Neira ghc reports package-id in unused imports warning instead the package name+version+id## Summary
From https://github.com/haskell/cabal/issues/7209#issuecomment-1080118466
ghc reports bad package name in unused imports warning when the package-id name segment does not match the package name
## Steps to reproduce
* `caba...## Summary
From https://github.com/haskell/cabal/issues/7209#issuecomment-1080118466
ghc reports bad package name in unused imports warning when the package-id name segment does not match the package name
## Steps to reproduce
* `cabal build -v3` a project with any dependency containing vowels and `ghc-options: -Wunused-packages -Werror=unused-packages`
* check the ghc call made by cabal pass the package id removing vowels from the package name
* for the `ieee` package it would be like `-package-id -0.7-c9bfa6bf`
* check the v2 store package db has the complete package name for such package id:
```
# ghc-pkg --package-db ~/.cabal/store/ghc-9.2.2/package.db describe ieee | head -n 5
name: ieee
version: 0.7
visibility: public
id: -0.7-c9bfa6bf
key: -0.7-c9bfa6bf
```
* and check the unused package warning uses the package-id instead the full package name plus version:
```
<no location info>: warning: [-Wunused-packages]
The following packages were specified via -package or -package-id flags,
but were not needed for compilation:
- -0.7-c9bfa6bf
```
* the behaviour is not reproduced in windows, where package names are also shortened by cabal in the package id, see https://github.com/haskell/cabal/issues/7209#issuecomment-1080327599
* from the ghc call made by cabal we derive the bug is in the ghc side
## Expected behavior
* the error message should use the full package name + package version from package-db
```
<no location info>: warning: [-Wunused-packages]
The following packages were specified via -package or -package-id flags,
but were not needed for compilation:
- ieee-0.7
```
## Environment
* GHC version used: 8.10.7, 9.2.2
Optional:
* Operating System: macos
* System Architecture: anyñ9.4.1Matthew PickeringMatthew Pickeringhttps://gitlab.haskell.org/ghc/ghc/-/issues/21170Accommodate build systems with their own notion of package names2022-03-09T17:59:06ZAndrew PritchardAccommodate build systems with their own notion of package names## Motivation
Large-scale multi-language build systems like Bazel have their own notion of package identity different from Cabal's flat alphanumeric-plus-hyphens package names. When building Haskell code with these systems, collections...## Motivation
Large-scale multi-language build systems like Bazel have their own notion of package identity different from Cabal's flat alphanumeric-plus-hyphens package names. When building Haskell code with these systems, collections of Haskell modules might have names like `//some/path:my_library` rather than, say, `distributive`. Current integrations with these systems have to work around the package name validation, e.g. by using only the last path component (https://github.com/tweag/rules_haskell/blob/dfd0161264b3e1ca8e47c30ef258d50e754570fc/haskell/private/pkg_id.bzl#L45) or encoding the label into the set of allowed characters (https://github.com/google/cabal2bazel/blob/master/bzl/private/package.bzl#L32-L55), leading to ugly and confusing package names like `someS-SpathS-SmyU-Ulibrary` in various contexts (compiler command lines, package-qualified import syntax, occasionally type errors, and probably others).
More generally, complex builds may identify components with hierarchical paths, and it'd be good to allow them to use their own naming scheme for the corresponding GHC packages without needing to encode them into a highly-restricted set of characters.
## Proposal
Change GHC and (if necessary) the Cabal library to allow non-Cabal build systems to use their own preferred formatting for package names (without changing the package naming rules for Hackage or the Cabal build tool). An existing Bazel-specific patch already exists, which accepts Bazel label syntax as package names in GHC flags, package-qualified import syntax, and the Cabal parsers, but it might need to be more general-purpose in order to be merged.https://gitlab.haskell.org/ghc/ghc/-/issues/20888MHU: Package thinning/renaming not supported properly2023-07-18T07:32:47ZMatthew PickeringMHU: Package thinning/renaming not supported properlyThe way multiple home units calculate dependencies currently ignores any thinning/renaming specifications. This feature is rarely used so it doesn't matter too much for testing but will be subtly broken if anyone does try and use it.
S...The way multiple home units calculate dependencies currently ignores any thinning/renaming specifications. This feature is rarely used so it doesn't matter too much for testing but will be subtly broken if anyone does try and use it.
See `selectHomeUnits` in `GHC.Unit.State` for the start of where needs to be changed. Then the thinning specification needs to be carried all the way through to the Finder logic and applied accordingly.
Documentation - https://downloads.haskell.org/~ghc/8.8.1/docs/html/users_guide/packages.html#thinning-and-renaming-moduleshttps://gitlab.haskell.org/ghc/ghc/-/issues/20806Document -package-env correctly2021-12-14T08:43:20ZRichard Eisenbergrae@richarde.devDocument -package-env correctlyFor a few GHCs now, I'm used to seeing a note as GHCi launches that it has loaded my default package environment file, in `~/.ghc/arch-version/environments/default`. Today, when working in GHC 9.2.1, I was surprised that some package was...For a few GHCs now, I'm used to seeing a note as GHCi launches that it has loaded my default package environment file, in `~/.ghc/arch-version/environments/default`. Today, when working in GHC 9.2.1, I was surprised that some package wasn't available, and so I looked for this line and was surprised not to find it.
Yet the [documentation](https://downloads.haskell.org/ghc/latest/docs/html/users_guide/packages.html#package-environments) still says that it loads this default.
I think the documentation should be updated, and a release note added.https://gitlab.haskell.org/ghc/ghc/-/issues/20759Wire up library-dirs-static and extra-libraries-static in GHC2021-12-12T07:36:38ZAlex BiehlWire up library-dirs-static and extra-libraries-static in GHCWith the new fields `library-dirs-static` and `extra-libraries-static` InstalledPackageInfo supports a way to specify libraries for static linking separately from `extra-libraries`/`library-dirs`. This allows us to switch smoothly betwee...With the new fields `library-dirs-static` and `extra-libraries-static` InstalledPackageInfo supports a way to specify libraries for static linking separately from `extra-libraries`/`library-dirs`. This allows us to switch smoothly between dynamic and static linking of system libraries.
Cabal and cabal-install already do the right thing and populate the new fields when using pkg-config-depends.
What's left is the GHC side of things:
- [x] Bump GHC's Cabal dependency to support `library-dirs-static` and `extra-libraries-static`. This has been done.
- [ ] Introduce `library-dirs-static` and `extra-libraries-static` to ghc-pkg
- [ ] When statically linking an executable consult above fields for extra libraries to link (instead of always consulting `extra-libraries`/`library-dirs` as we do now)https://gitlab.haskell.org/ghc/ghc/-/issues/20253Hadrian binary distributions ship `settings`2023-04-04T08:09:40ZBen GamariHadrian binary distributions ship `settings`The binary distributions produced by Hadrian do not make any attempt to generate the `settings` file from the information about the host deduced by the bindist `configure` script. This is wrong. In particular, this was noticed on an olde...The binary distributions produced by Hadrian do not make any attempt to generate the `settings` file from the information about the host deduced by the bindist `configure` script. This is wrong. In particular, this was noticed on an older Darwin machine where the build environment's `cc` supported `-no-pie` but the installation host did not. Consequently, the installed compiler attempted to use `-no-pie` and was broken.9.2.1Ben GamariBen Gamarihttps://gitlab.haskell.org/ghc/ghc/-/issues/19650ghci readily resets package state2021-12-14T15:49:44ZNeil Mitchellghci readily resets package state## Summary
Using GHC 9.0.1 and Cabal 3.4.0.0, a lot of "changes" will cause GHC to forget which modules were loaded in ghci. With GHC 8.10 it was a lot more robust. The frequent loss of loaded modules means tools like `ghcid` are a lot ...## Summary
Using GHC 9.0.1 and Cabal 3.4.0.0, a lot of "changes" will cause GHC to forget which modules were loaded in ghci. With GHC 8.10 it was a lot more robust. The frequent loss of loaded modules means tools like `ghcid` are a lot less useful.
## Steps to reproduce
```
$ cabal init
$ cabal repl
```
Now create an empty file `Foo.hs`, and a file `.ghci` with the contents:
```
:load Foo.hs
:set -DMAGIC
```
Using GHC 8.10.3, running `cabal exec ghci` leaves me with a GHCi session with `Foo.hs` loaded. However, with GHC 9.0.1:
```
C:\Neil\temp\ghci-bug>cabal exec ghci
Warning: The package list for 'hackage.haskell.org' is 22 days old.
Run 'cabal update' to get the latest list of available packages.
Resolving dependencies...
Loaded package environment from C:\Neil\temp\ghci-bug\dist-newstyle\tmp\environment.-11172\.ghc.environment.x86_64-mingw32-9.0.1
GHCi, version 9.0.1: https://www.haskell.org/ghc/ :? for help
[1 of 1] Compiling Main ( Foo.hs, interpreted )
Ok, one module loaded.
Loaded package environment from C:\Neil\temp\ghci-bug\dist-newstyle\tmp\environment.-11172\.ghc.environment.x86_64-mingw32-9.0.1
Loaded package environment from C:\Neil\temp\ghci-bug\dist-newstyle\tmp\environment.-11172\.ghc.environment.x86_64-mingw32-9.0.1
package flags have changed, resetting and loading new packages...
Loaded GHCi configuration from C:\Neil\temp\ghci-bug\.ghci
ghci> :show modules
ghci>
```
So something about the environment changed, so it threw away all my loaded modules. In practice, a lot of things seem to make the environment change - turning on/off exceptions on breakpoints does it too. This makes `ghci` a whole lot less useful.
Using `ghci` alone it doesn't seem to reset the modules. However, in practice, using `ghci` alone is now very difficult as it no longer allows global installs. There are also magic environment files which are hard to avoid, so alas, this bug report is in the intersection - but given keeping Cabal constant and changing GHC causes the bug, reporting for GHC 9.0.1.
## Expected behavior
Don't throw away the loaded modules so freely.
## Environment
* GHC version used: GHC 9.0.1
* Operating System: Windows
* System Architecture: x86_649.0.2Matthew PickeringMatthew Pickeringhttps://gitlab.haskell.org/ghc/ghc/-/issues/19370ghc: panic!: expectJust, called at compiler/main/Packages.hs:433:5 in ghc:Pac...2021-06-04T11:08:27ZJens Petersenghc: panic!: expectJust, called at compiler/main/Packages.hs:433:5 in ghc:Packages## Summary
ghc-8.10 is crashing when compiling/linking(?) a medium-sized executable for me.
With both ghc-8.10.3 and ghc-8.10.4 on Fedora 33 x86_64:
```
[41 of 42] Compiling Paths_fbrnch
[42 of 42] Compiling Main [Distribution.Fedora.B...## Summary
ghc-8.10 is crashing when compiling/linking(?) a medium-sized executable for me.
With both ghc-8.10.3 and ghc-8.10.4 on Fedora 33 x86_64:
```
[41 of 42] Compiling Paths_fbrnch
[42 of 42] Compiling Main [Distribution.Fedora.Branch changed]
ghc: panic! (the 'impossible' happened)
(GHC version 8.10.3:
expectJust getPackageDetails
CallStack (from HasCallStack):
error, called at compiler/utils/Maybes.hs:57:27 in ghc:Maybes
expectJust, called at compiler/main/Packages.hs:433:5 in ghc:Packages
Please report this as a GHC bug: https://www.haskell.org/ghc/reportabug
```
I originally mentioned this in #18284 but this backtrace looks of different origin so I am reporting here now separately.
## Steps to reproduce
`stack --resolver lts-17 build fbrnch`
## Expected behavior
Compile the program without panicking (like 8.8.4 does successfully).
Not having to re-run the build to get it to complete.
I don't feel confident with updating Fedora to 8.10 with this issue existing,
though admittedly this is not a Fedora ghc build.
## Environment
* GHC version used: 8.10.4
Optional:
* Operating System: Fedora 33
* System Architecture: x86_64https://gitlab.haskell.org/ghc/ghc/-/issues/19330Improve `ModOrigin: hidden module redefined` crash report2021-02-23T19:54:21ZSergei TrofimovichImprove `ModOrigin: hidden module redefined` crash report## Summary
Sometimes packages clash in module namespace in unobvious ways. GHC has a hard time loading those and it's very hard to figure out what module actually breaks things.
## Steps to reproduce
I don't know precise set of instal...## Summary
Sometimes packages clash in module namespace in unobvious ways. GHC has a hard time loading those and it's very hard to figure out what module actually breaks things.
## Steps to reproduce
I don't know precise set of installed packages needed to trigger the failure, but it looks like that:
```
./setup haddock --hyperlink-source
Preprocessing library for haskell-lsp-types-0.22.0.0..
Running Haddock on library for haskell-lsp-types-0.22.0.0..
Warning: --source-* options are ignored when --hyperlinked-source is enabled.
Haddock coverage:
33% ( 1 / 3) in 'Language.Haskell.LSP.Types.Constants'
Missing documentation for:
Module header
customModifier (src/Language/Haskell/LSP/Types/Constants.hs:13)
src/Language/Haskell/LSP/Types/MarkupContent.hs:15:1: warning: [-Wunused-imports]
The import of ‘Data.Monoid’ is redundant
except perhaps to import instances from ‘Data.Monoid’
To import instances alone, use: import Data.Monoid()
|
15 | import Data.Monoid ((<>))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Warning: 'Hover' is out of scope.
If you qualify the identifier, haddock can try to link it anyway.
Warning: 'ParameterInfo' is out of scope.
If you qualify the identifier, haddock can try to link it anyway.
Warning: 'CompletionItem' is out of scope.
If you qualify the identifier, haddock can try to link it anyway.
Warning: 'plaintext' is out of scope.
If you qualify the identifier, haddock can try to link it anyway.
Warning: 'markdown' is out of scope.
If you qualify the identifier, haddock can try to link it anyway.
Warning: 'typescript' is out of scope.
If you qualify the identifier, haddock can try to link it anyway.
src/Language/Haskell/LSP/Types/Uri.hs:27:1: warning: [-Wunused-imports]
The import of ‘isPrefixOf’ from module ‘Data.List’ is redundant
|
27 | import Data.List (isPrefixOf, stripPrefix)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Warning: 'comment' is out of scope.
If you qualify the identifier, haddock can try to link it anyway.
Warning: 'region' is out of scope.
If you qualify the identifier, haddock can try to link it anyway.
Warning: '_range' is ambiguous. It is defined
* at src/Language/Haskell/LSP/Types/Location.hs:95:7
* at src/Language/Haskell/LSP/Types/Symbol.hs:220:7
You may be able to disambiguate the identifier by qualifying it or
by specifying the type/value namespace explicitly.
Defaulting to the one defined at src/Language/Haskell/LSP/Types/Symbol.hs:220:7
0% ( 0 / 2) in 'Language.Haskell.LSP.Types.Utils'
Missing documentation for:
Module header
rdrop (src/Language/Haskell/LSP/Types/Utils.hs:5)
Warning: '_title' is ambiguous. It is defined
* at src/Language/Haskell/LSP/Types/Window.hs:145:7
* at src/Language/Haskell/LSP/Types/Window.hs:264:4
You may be able to disambiguate the identifier by qualifying it or
by specifying the type/value namespace explicitly.
Defaulting to the one defined at src/Language/Haskell/LSP/Types/Window.hs:264:4
Warning: '_percentage' is ambiguous. It is defined
* at src/Language/Haskell/LSP/Types/Window.hs:367:5
* at src/Language/Haskell/LSP/Types/Window.hs:282:5
You may be able to disambiguate the identifier by qualifying it or
by specifying the type/value namespace explicitly.
Defaulting to the one defined at src/Language/Haskell/LSP/Types/Window.hs:282:5
src/Language/Haskell/LSP/Types/WorkspaceEdit.hs:9:1: warning: [-Wunused-imports]
The import of ‘Data.Monoid’ is redundant
except perhaps to import instances from ‘Data.Monoid’
To import instances alone, use: import Data.Monoid()
|
9 | import Data.Monoid ((<>))
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Warning: 'falsy' is out of scope.
If you qualify the identifier, haddock can try to link it anyway.
Warning: 'insertText' is out of scope.
If you qualify the identifier, haddock can try to link it anyway.
Warning: 'newText' is out of scope.
If you qualify the identifier, haddock can try to link it anyway.
Warning: 'textEdit' is out of scope.
If you qualify the identifier, haddock can try to link it anyway.
Warning: 'triggerCharacters' is out of scope.
If you qualify the identifier, haddock can try to link it anyway.
Warning: 'falsy' is out of scope.
If you qualify the identifier, haddock can try to link it anyway.
Warning: '_command' is ambiguous. It is defined
* at src/Language/Haskell/LSP/Types/Command.hs:41:7
* at src/Language/Haskell/LSP/Types/CodeAction.hs:275:7
You may be able to disambiguate the identifier by qualifying it or
by specifying the type/value namespace explicitly.
Defaulting to the one defined at src/Language/Haskell/LSP/Types/CodeAction.hs:275:7
Warning: 'WorkspaceEdit' is out of scope.
If you qualify the identifier, haddock can try to link it anyway.
Warning: 'File' is out of scope.
If you qualify the identifier, haddock can try to link it anyway.
Warning: 'Array' is out of scope.
If you qualify the identifier, haddock can try to link it anyway.
Warning: 'SignatureInformation' is out of scope.
If you qualify the identifier, haddock can try to link it anyway.
Warning: 'true' is out of scope.
If you qualify the identifier, haddock can try to link it anyway.
Warning: 'startCharacter' is out of scope.
If you qualify the identifier, haddock can try to link it anyway.
Warning: 'endCharacter' is out of scope.
If you qualify the identifier, haddock can try to link it anyway.
0% ( 0 /200) in 'Language.Haskell.LSP.Types.Lens'
Missing documentation for:
Module header
HasDocumentChanges (src/Language/Haskell/LSP/Types/Lens.hs:28)
HasDynamicRegistration (src/Language/Haskell/LSP/Types/Lens.hs:29)
HasValueSet (src/Language/Haskell/LSP/Types/Lens.hs:31)
HasSymbolKind (src/Language/Haskell/LSP/Types/Lens.hs:32)
HasApplyEdit (src/Language/Haskell/LSP/Types/Lens.hs:34)
HasConfiguration (src/Language/Haskell/LSP/Types/Lens.hs:34)
HasDidChangeConfiguration (src/Language/Haskell/LSP/Types/Lens.hs:34)
HasDidChangeWatchedFiles (src/Language/Haskell/LSP/Types/Lens.hs:34)
HasExecuteCommand (src/Language/Haskell/LSP/Types/Lens.hs:34)
HasSymbol (src/Language/Haskell/LSP/Types/Lens.hs:34)
HasWorkspaceEdit (src/Language/Haskell/LSP/Types/Lens.hs:34)
HasWorkspaceFolders (src/Language/Haskell/LSP/Types/Lens.hs:34)
HasDidSave (src/Language/Haskell/LSP/Types/Lens.hs:35)
HasWillSave (src/Language/Haskell/LSP/Types/Lens.hs:35)
HasWillSaveWaitUntil (src/Language/Haskell/LSP/Types/Lens.hs:35)
HasCommitCharactersSupport (src/Language/Haskell/LSP/Types/Lens.hs:37)
HasDeprecatedSupport (src/Language/Haskell/LSP/Types/Lens.hs:37)
HasDocumentationFormat (src/Language/Haskell/LSP/Types/Lens.hs:37)
HasPreselectSupport (src/Language/Haskell/LSP/Types/Lens.hs:37)
HasSnippetSupport (src/Language/Haskell/LSP/Types/Lens.hs:37)
HasTagSupport (src/Language/Haskell/LSP/Types/Lens.hs:37)
HasCompletionItem (src/Language/Haskell/LSP/Types/Lens.hs:39)
HasCompletionItemKind (src/Language/Haskell/LSP/Types/Lens.hs:39)
HasContextSupport (src/Language/Haskell/LSP/Types/Lens.hs:39)
HasContentFormat (src/Language/Haskell/LSP/Types/Lens.hs:40)
HasSignatureInformation (src/Language/Haskell/LSP/Types/Lens.hs:42)
HasHierarchicalDocumentSymbolSupport (src/Language/Haskell/LSP/Types/Lens.hs:46)
HasCodeActionKind (src/Language/Haskell/LSP/Types/Lens.hs:54)
HasCodeActionLiteralSupport (src/Language/Haskell/LSP/Types/Lens.hs:55)
HasPrepareSupport (src/Language/Haskell/LSP/Types/Lens.hs:59)
HasRelatedInformation (src/Language/Haskell/LSP/Types/Lens.hs:60)
HasCodeAction (src/Language/Haskell/LSP/Types/Lens.hs:62)
HasCodeLens (src/Language/Haskell/LSP/Types/Lens.hs:62)
HasColorProvider (src/Language/Haskell/LSP/Types/Lens.hs:62)
HasCompletion (src/Language/Haskell/LSP/Types/Lens.hs:62)
HasDefinition (src/Language/Haskell/LSP/Types/Lens.hs:62)
HasDocumentHighlight (src/Language/Haskell/LSP/Types/Lens.hs:62)
HasDocumentLink (src/Language/Haskell/LSP/Types/Lens.hs:62)
HasDocumentSymbol (src/Language/Haskell/LSP/Types/Lens.hs:62)
HasFoldingRange (src/Language/Haskell/LSP/Types/Lens.hs:62)
HasFormatting (src/Language/Haskell/LSP/Types/Lens.hs:62)
HasHover (src/Language/Haskell/LSP/Types/Lens.hs:62)
HasImplementation (src/Language/Haskell/LSP/Types/Lens.hs:62)
HasOnTypeFormatting (src/Language/Haskell/LSP/Types/Lens.hs:62)
HasPublishDiagnostics (src/Language/Haskell/LSP/Types/Lens.hs:62)
HasRangeFormatting (src/Language/Haskell/LSP/Types/Lens.hs:62)
HasReferences (src/Language/Haskell/LSP/Types/Lens.hs:62)
HasRename (src/Language/Haskell/LSP/Types/Lens.hs:62)
HasSignatureHelp (src/Language/Haskell/LSP/Types/Lens.hs:62)
HasSynchronization (src/Language/Haskell/LSP/Types/Lens.hs:62)
HasTypeDefinition (src/Language/Haskell/LSP/Types/Lens.hs:62)
HasExperimental (src/Language/Haskell/LSP/Types/Lens.hs:63)
HasTextDocument (src/Language/Haskell/LSP/Types/Lens.hs:63)
HasWindow (src/Language/Haskell/LSP/Types/Lens.hs:63)
HasWorkspace (src/Language/Haskell/LSP/Types/Lens.hs:63)
HasCapabilities (src/Language/Haskell/LSP/Types/Lens.hs:67)
HasInitializationOptions (src/Language/Haskell/LSP/Types/Lens.hs:67)
HasProcessId (src/Language/Haskell/LSP/Types/Lens.hs:67)
HasRootPath (src/Language/Haskell/LSP/Types/Lens.hs:67)
HasRootUri (src/Language/Haskell/LSP/Types/Lens.hs:67)
HasTrace (src/Language/Haskell/LSP/Types/Lens.hs:67)
HasRetry (src/Language/Haskell/LSP/Types/Lens.hs:68)
HasAllCommitCharacters (src/Language/Haskell/LSP/Types/Lens.hs:69)
HasResolveProvider (src/Language/Haskell/LSP/Types/Lens.hs:69)
HasTriggerCharacters (src/Language/Haskell/LSP/Types/Lens.hs:69)
HasRetriggerCharacters (src/Language/Haskell/LSP/Types/Lens.hs:70)
HasFirstTriggerCharacter (src/Language/Haskell/LSP/Types/Lens.hs:72)
HasMoreTriggerCharacter (src/Language/Haskell/LSP/Types/Lens.hs:72)
HasCommands (src/Language/Haskell/LSP/Types/Lens.hs:74)
HasIncludeText (src/Language/Haskell/LSP/Types/Lens.hs:75)
HasChange (src/Language/Haskell/LSP/Types/Lens.hs:76)
HasOpenClose (src/Language/Haskell/LSP/Types/Lens.hs:76)
HasSave (src/Language/Haskell/LSP/Types/Lens.hs:76)
HasChangeNotifications (src/Language/Haskell/LSP/Types/Lens.hs:77)
HasSupported (src/Language/Haskell/LSP/Types/Lens.hs:77)
HasCodeActionProvider (src/Language/Haskell/LSP/Types/Lens.hs:79)
HasCodeLensProvider (src/Language/Haskell/LSP/Types/Lens.hs:79)
HasCompletionProvider (src/Language/Haskell/LSP/Types/Lens.hs:79)
HasDefinitionProvider (src/Language/Haskell/LSP/Types/Lens.hs:79)
HasDocumentFormattingProvider (src/Language/Haskell/LSP/Types/Lens.hs:79)
HasDocumentHighlightProvider (src/Language/Haskell/LSP/Types/Lens.hs:79)
HasDocumentLinkProvider (src/Language/Haskell/LSP/Types/Lens.hs:79)
HasDocumentOnTypeFormattingProvider (src/Language/Haskell/LSP/Types/Lens.hs:79)
HasDocumentRangeFormattingProvider (src/Language/Haskell/LSP/Types/Lens.hs:79)
HasDocumentSymbolProvider (src/Language/Haskell/LSP/Types/Lens.hs:79)
HasExecuteCommandProvider (src/Language/Haskell/LSP/Types/Lens.hs:79)
HasFoldingRangeProvider (src/Language/Haskell/LSP/Types/Lens.hs:79)
HasHoverProvider (src/Language/Haskell/LSP/Types/Lens.hs:79)
HasImplementationProvider (src/Language/Haskell/LSP/Types/Lens.hs:79)
HasReferencesProvider (src/Language/Haskell/LSP/Types/Lens.hs:79)
HasRenameProvider (src/Language/Haskell/LSP/Types/Lens.hs:79)
HasSignatureHelpProvider (src/Language/Haskell/LSP/Types/Lens.hs:79)
HasTextDocumentSync (src/Language/Haskell/LSP/Types/Lens.hs:79)
HasTypeDefinitionProvider (src/Language/Haskell/LSP/Types/Lens.hs:79)
HasWorkspaceSymbolProvider (src/Language/Haskell/LSP/Types/Lens.hs:79)
HasId (src/Language/Haskell/LSP/Types/Lens.hs:81)
HasMethod (src/Language/Haskell/LSP/Types/Lens.hs:81)
HasRegisterOptions (src/Language/Haskell/LSP/Types/Lens.hs:81)
HasRegistrations (src/Language/Haskell/LSP/Types/Lens.hs:82)
HasWatchers (src/Language/Haskell/LSP/Types/Lens.hs:83)
HasGlobPattern (src/Language/Haskell/LSP/Types/Lens.hs:84)
HasKind (src/Language/Haskell/LSP/Types/Lens.hs:84)
HasWatchChange (src/Language/Haskell/LSP/Types/Lens.hs:85)
HasWatchCreate (src/Language/Haskell/LSP/Types/Lens.hs:85)
HasWatchDelete (src/Language/Haskell/LSP/Types/Lens.hs:85)
HasDocumentSelector (src/Language/Haskell/LSP/Types/Lens.hs:86)
HasUnregistrations (src/Language/Haskell/LSP/Types/Lens.hs:88)
HasSettings (src/Language/Haskell/LSP/Types/Lens.hs:89)
HasScopeUri (src/Language/Haskell/LSP/Types/Lens.hs:90)
HasSection (src/Language/Haskell/LSP/Types/Lens.hs:90)
HasItems (src/Language/Haskell/LSP/Types/Lens.hs:91)
HasRange (src/Language/Haskell/LSP/Types/Lens.hs:93)
HasRangeLength (src/Language/Haskell/LSP/Types/Lens.hs:93)
HasText (src/Language/Haskell/LSP/Types/Lens.hs:93)
HasContentChanges (src/Language/Haskell/LSP/Types/Lens.hs:94)
HasSyncKind (src/Language/Haskell/LSP/Types/Lens.hs:95)
HasReason (src/Language/Haskell/LSP/Types/Lens.hs:96)
HasUri (src/Language/Haskell/LSP/Types/Lens.hs:99)
HasXtype (src/Language/Haskell/LSP/Types/Lens.hs:99)
HasChanges (src/Language/Haskell/LSP/Types/Lens.hs:100)
HasDiagnostics (src/Language/Haskell/LSP/Types/Lens.hs:101)
HasLanguage (src/Language/Haskell/LSP/Types/Lens.hs:102)
HasValue (src/Language/Haskell/LSP/Types/Lens.hs:102)
HasContents (src/Language/Haskell/LSP/Types/Lens.hs:103)
HasDocumentation (src/Language/Haskell/LSP/Types/Lens.hs:104)
HasLabel (src/Language/Haskell/LSP/Types/Lens.hs:104)
HasParameters (src/Language/Haskell/LSP/Types/Lens.hs:105)
HasActiveParameter (src/Language/Haskell/LSP/Types/Lens.hs:106)
HasActiveSignature (src/Language/Haskell/LSP/Types/Lens.hs:106)
HasSignatures (src/Language/Haskell/LSP/Types/Lens.hs:106)
HasIncludeDeclaration (src/Language/Haskell/LSP/Types/Lens.hs:108)
HasContext (src/Language/Haskell/LSP/Types/Lens.hs:109)
HasPosition (src/Language/Haskell/LSP/Types/Lens.hs:109)
HasWorkDoneToken (src/Language/Haskell/LSP/Types/Lens.hs:109)
HasQuery (src/Language/Haskell/LSP/Types/Lens.hs:111)
HasCommand (src/Language/Haskell/LSP/Types/Lens.hs:113)
HasXdata (src/Language/Haskell/LSP/Types/Lens.hs:113)
HasTarget (src/Language/Haskell/LSP/Types/Lens.hs:116)
HasInsertSpaces (src/Language/Haskell/LSP/Types/Lens.hs:117)
HasTabSize (src/Language/Haskell/LSP/Types/Lens.hs:117)
HasOptions (src/Language/Haskell/LSP/Types/Lens.hs:118)
HasCh (src/Language/Haskell/LSP/Types/Lens.hs:120)
HasNewName (src/Language/Haskell/LSP/Types/Lens.hs:121)
HasArguments (src/Language/Haskell/LSP/Types/Lens.hs:122)
HasEdit (src/Language/Haskell/LSP/Types/Lens.hs:124)
HasApplied (src/Language/Haskell/LSP/Types/Lens.hs:125)
HasParams (src/Language/Haskell/LSP/Types/Lens.hs:127)
HasCharacter (src/Language/Haskell/LSP/Types/Lens.hs:132)
HasLine (src/Language/Haskell/LSP/Types/Lens.hs:132)
HasEnd (src/Language/Haskell/LSP/Types/Lens.hs:133)
HasStart (src/Language/Haskell/LSP/Types/Lens.hs:133)
HasAdditionalTextEdits (src/Language/Haskell/LSP/Types/Lens.hs:137)
HasCommitCharacters (src/Language/Haskell/LSP/Types/Lens.hs:137)
HasDeprecated (src/Language/Haskell/LSP/Types/Lens.hs:137)
HasDetail (src/Language/Haskell/LSP/Types/Lens.hs:137)
HasFilterText (src/Language/Haskell/LSP/Types/Lens.hs:137)
HasInsertText (src/Language/Haskell/LSP/Types/Lens.hs:137)
HasInsertTextFormat (src/Language/Haskell/LSP/Types/Lens.hs:137)
HasPreselect (src/Language/Haskell/LSP/Types/Lens.hs:137)
HasSortText (src/Language/Haskell/LSP/Types/Lens.hs:137)
HasTags (src/Language/Haskell/LSP/Types/Lens.hs:137)
HasTextEdit (src/Language/Haskell/LSP/Types/Lens.hs:137)
HasTriggerCharacter (src/Language/Haskell/LSP/Types/Lens.hs:138)
HasTriggerKind (src/Language/Haskell/LSP/Types/Lens.hs:138)
HasIsIncomplete (src/Language/Haskell/LSP/Types/Lens.hs:139)
HasTitle (src/Language/Haskell/LSP/Types/Lens.hs:146)
HasPattern (src/Language/Haskell/LSP/Types/Lens.hs:149)
HasScheme (src/Language/Haskell/LSP/Types/Lens.hs:149)
HasNewText (src/Language/Haskell/LSP/Types/Lens.hs:152)
HasVersion (src/Language/Haskell/LSP/Types/Lens.hs:153)
HasEdits (src/Language/Haskell/LSP/Types/Lens.hs:154)
HasName (src/Language/Haskell/LSP/Types/Lens.hs:158)
HasAdded (src/Language/Haskell/LSP/Types/Lens.hs:159)
HasRemoved (src/Language/Haskell/LSP/Types/Lens.hs:159)
HasEvent (src/Language/Haskell/LSP/Types/Lens.hs:160)
HasJsonrpc (src/Language/Haskell/LSP/Types/Lens.hs:163)
HasCode (src/Language/Haskell/LSP/Types/Lens.hs:164)
HasMessage (src/Language/Haskell/LSP/Types/Lens.hs:164)
HasResult (src/Language/Haskell/LSP/Types/Lens.hs:165)
HasLanguageId (src/Language/Haskell/LSP/Types/Lens.hs:170)
HasSeverity (src/Language/Haskell/LSP/Types/Lens.hs:178)
HasSource (src/Language/Haskell/LSP/Types/Lens.hs:178)
HasLocation (src/Language/Haskell/LSP/Types/Lens.hs:179)
HasChildren (src/Language/Haskell/LSP/Types/Lens.hs:183)
HasSelectionRange (src/Language/Haskell/LSP/Types/Lens.hs:183)
HasContainerName (src/Language/Haskell/LSP/Types/Lens.hs:184)
HasAlpha (src/Language/Haskell/LSP/Types/Lens.hs:187)
HasBlue (src/Language/Haskell/LSP/Types/Lens.hs:187)
HasGreen (src/Language/Haskell/LSP/Types/Lens.hs:187)
HasRed (src/Language/Haskell/LSP/Types/Lens.hs:187)
HasColor (src/Language/Haskell/LSP/Types/Lens.hs:188)
HasEndCharacter (src/Language/Haskell/LSP/Types/Lens.hs:194)
HasEndLine (src/Language/Haskell/LSP/Types/Lens.hs:194)
HasStartCharacter (src/Language/Haskell/LSP/Types/Lens.hs:194)
HasStartLine (src/Language/Haskell/LSP/Types/Lens.hs:194)
HasActions (src/Language/Haskell/LSP/Types/Lens.hs:200)
HasToken (src/Language/Haskell/LSP/Types/Lens.hs:202)
HasCancellable (src/Language/Haskell/LSP/Types/Lens.hs:203)
HasPercentage (src/Language/Haskell/LSP/Types/Lens.hs:203)
12% ( 35 /277) in 'Language.Haskell.LSP.Types'
Missing documentation for:
Module header
Trace (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:97)
InitializeParams (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:113)
InitializeError (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:151)
TextDocumentSyncKind (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:184)
CompletionOptions (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:230)
SignatureHelpOptions (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:265)
CodeLensOptions (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:294)
CodeActionOptions (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:317)
DocumentOnTypeFormattingOptions (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:341)
DocumentLinkOptions (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:365)
RenameOptions (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:389)
ExecuteCommandOptions (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:415)
SaveOptions (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:437)
TextDocumentSyncOptions (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:475)
GotoOptions (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:644)
ColorOptions (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:659)
FoldingRangeOptions (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:674)
WorkspaceFolderChangeNotifications (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:689)
WorkspaceFolderOptions (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:695)
WorkspaceOptions (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:711)
InitializeResponseCapabilitiesInner (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:722)
InitializeResponse (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:799)
InitializeRequest (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:801)
InitializedParams (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:849)
InitializedNotification (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:861)
ShutdownRequest (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:887)
ShutdownResponse (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:888)
ExitNotification (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:914)
TelemetryNotification (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:932)
CustomClientNotification (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:934)
CustomServerNotification (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:935)
CustomClientRequest (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:937)
CustomServerRequest (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:938)
CustomResponse (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:940)
Registration (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:987)
RegistrationParams (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1002)
RegisterCapabilityResponse (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1012)
TextDocumentRegistrationOptions (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1029)
Unregistration (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1074)
UnregistrationParams (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1086)
UnregisterCapabilityRequest (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1093)
UnregisterCapabilityResponse (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1095)
DidChangeWatchedFilesRegistrationOptions (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1148)
FileSystemWatcher (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1153)
WatchKind (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1159)
DidChangeConfigurationParams (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1209)
DidChangeConfigurationNotification (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1218)
ConfigurationItem (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1269)
ConfigurationParams (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1277)
ConfigurationRequest (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1284)
ConfigurationResponse (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1285)
DidOpenTextDocumentParams (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1313)
DidOpenTextDocumentNotification (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1320)
TextDocumentContentChangeEvent (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1372)
DidChangeTextDocumentParams (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1383)
DidChangeTextDocumentNotification (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1391)
TextDocumentChangeRegistrationOptions (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1410)
TextDocumentSaveReason (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1473)
WillSaveTextDocumentParams (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1492)
WillSaveTextDocumentNotification (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1500)
WillSaveWaitUntilTextDocumentRequest (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1529)
WillSaveWaitUntilTextDocumentResponse (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1530)
DidSaveTextDocumentParams (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1551)
DidSaveTextDocumentNotification (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1558)
DidCloseTextDocumentParams (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1588)
DidCloseTextDocumentNotification (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1596)
FileChangeType (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1652)
FileEvent (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1671)
DidChangeWatchedFilesParams (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1679)
DidChangeWatchedFilesNotification (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1687)
PublishDiagnosticsParams (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1716)
PublishDiagnosticsNotification (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1725)
ParameterInformation (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1818)
SignatureInformation (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1828)
SignatureHelp (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1837)
SignatureHelpRequest (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1846)
SignatureHelpResponse (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1847)
SignatureHelpRegistrationOptions (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1864)
LocationResponseParams (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1900)
DefinitionRequest (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1911)
DefinitionResponse (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1912)
TypeDefinitionRequest (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1933)
TypeDefinitionResponse (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1934)
ImplementationRequest (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1956)
ImplementationResponse (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1957)
ReferenceContext (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:1997)
ReferenceParams (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2005)
ReferencesRequest (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2016)
ReferencesResponse (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2017)
DocumentHighlightKind (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2091)
DocumentHighlight (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2107)
DocumentHighlightRequest (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2115)
DocumentHighlightsResponse (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2116)
WorkspaceSymbolParams (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2149)
WorkspaceSymbolRequest (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2157)
WorkspaceSymbolsResponse (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2158)
CodeLensParams (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2214)
CodeLens (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2225)
CodeLensRequest (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2235)
CodeLensResponse (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2236)
CodeLensRegistrationOptions (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2250)
CodeLensResolveRequest (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2281)
CodeLensResolveResponse (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2282)
DocumentLinkParams (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2337)
DocumentLink (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2345)
DocumentLinkRequest (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2353)
DocumentLinkResponse (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2354)
DocumentLinkResolveRequest (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2377)
DocumentLinkResolveResponse (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2378)
FormattingOptions (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2436)
DocumentFormattingParams (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2445)
DocumentFormattingRequest (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2454)
DocumentFormattingResponse (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2455)
DocumentRangeFormattingParams (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2496)
DocumentRangeFormattingRequest (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2506)
DocumentRangeFormattingResponse (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2507)
DocumentOnTypeFormattingParams (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2565)
DocumentOnTypeFormattingRequest (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2575)
DocumentOnTypeFormattingResponse (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2576)
DocumentOnTypeFormattingRegistrationOptions (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2578)
RenameParams (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2628)
RenameRequest (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2641)
RenameResponse (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2642)
RangeWithPlaceholder (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2672)
RangeOrRangeWithPlaceholder (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2681)
PrepareRenameRequest (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2686)
PrepareRenameResponse (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2687)
ExecuteCommandParams (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2740)
ExecuteCommandRequest (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2749)
ExecuteCommandResponse (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2750)
ExecuteCommandRegistrationOptions (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2752)
ApplyWorkspaceEditParams (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2795)
ApplyWorkspaceEditResponseBody (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2802)
ApplyWorkspaceEditResponse (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2811)
TraceParams (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2817)
TraceNotification (src/Language/Haskell/LSP/Types/DataTypesJSON.hs:2825)
CodeActionKind (src/Language/Haskell/LSP/Types/CodeAction.hs:214)
CodeActionContext (src/Language/Haskell/LSP/Types/CodeAction.hs:245)
CodeActionParams (src/Language/Haskell/LSP/Types/CodeAction.hs:254)
CodeAction (src/Language/Haskell/LSP/Types/CodeAction.hs:264)
CAResult (src/Language/Haskell/LSP/Types/CodeAction.hs:282)
CodeActionRequest (src/Language/Haskell/LSP/Types/CodeAction.hs:293)
CodeActionResponse (src/Language/Haskell/LSP/Types/CodeAction.hs:294)
ColorInformation (src/Language/Haskell/LSP/Types/Color.hs:92)
DocumentColorParams (src/Language/Haskell/LSP/Types/Color.hs:100)
DocumentColorRequest (src/Language/Haskell/LSP/Types/Color.hs:108)
DocumentColorResponse (src/Language/Haskell/LSP/Types/Color.hs:110)
ColorPresentationParams (src/Language/Haskell/LSP/Types/Color.hs:169)
ColorPresentation (src/Language/Haskell/LSP/Types/Color.hs:183)
ColorPresentationRequest (src/Language/Haskell/LSP/Types/Color.hs:201)
ColorPresentationResponse (src/Language/Haskell/LSP/Types/Color.hs:203)
Command (src/Language/Haskell/LSP/Types/Command.hs:38)
CompletionItemKind (src/Language/Haskell/LSP/Types/Completion.hs:23)
CompletionItemTag (src/Language/Haskell/LSP/Types/Completion.hs:105)
InsertTextFormat (src/Language/Haskell/LSP/Types/Completion.hs:305)
CompletionDoc (src/Language/Haskell/LSP/Types/Completion.hs:327)
CompletionItem (src/Language/Haskell/LSP/Types/Completion.hs:338)
CompletionListType (src/Language/Haskell/LSP/Types/Completion.hs:396)
CompletionResponseResult (src/Language/Haskell/LSP/Types/Completion.hs:404)
CompletionContext (src/Language/Haskell/LSP/Types/Completion.hs:437)
CompletionParams (src/Language/Haskell/LSP/Types/Completion.hs:448)
CompletionResponse (src/Language/Haskell/LSP/Types/Completion.hs:461)
CompletionRequest (src/Language/Haskell/LSP/Types/Completion.hs:462)
CompletionRegistrationOptions (src/Language/Haskell/LSP/Types/Completion.hs:484)
CompletionItemResolveRequest (src/Language/Haskell/LSP/Types/Completion.hs:513)
CompletionItemResolveResponse (src/Language/Haskell/LSP/Types/Completion.hs:514)
DiagnosticSeverity (src/Language/Haskell/LSP/Types/Diagnostic.hs:40)
DiagnosticTag (src/Language/Haskell/LSP/Types/Diagnostic.hs:81)
DiagnosticRelatedInformation (src/Language/Haskell/LSP/Types/Diagnostic.hs:124)
NumberOrString (src/Language/Haskell/LSP/Types/Diagnostic.hs:186)
DiagnosticSource (src/Language/Haskell/LSP/Types/Diagnostic.hs:195)
Diagnostic (src/Language/Haskell/LSP/Types/Diagnostic.hs:196)
DocumentFilter (src/Language/Haskell/LSP/Types/DocumentFilter.hs:41)
DocumentSelector (src/Language/Haskell/LSP/Types/DocumentFilter.hs:55)
FoldingRangeParams (src/Language/Haskell/LSP/Types/FoldingRange.hs:14)
FoldingRangeRequest (src/Language/Haskell/LSP/Types/FoldingRange.hs:71)
FoldingRangeResponse (src/Language/Haskell/LSP/Types/FoldingRange.hs:72)
LanguageString (src/Language/Haskell/LSP/Types/Hover.hs:43)
MarkedString (src/Language/Haskell/LSP/Types/Hover.hs:52)
HoverContents (src/Language/Haskell/LSP/Types/Hover.hs:106)
toMarkupContent (src/Language/Haskell/LSP/Types/Hover.hs:136)
Hover (src/Language/Haskell/LSP/Types/Hover.hs:142)
HoverRequest (src/Language/Haskell/LSP/Types/Hover.hs:150)
HoverResponse (src/Language/Haskell/LSP/Types/Hover.hs:151)
Position (src/Language/Haskell/LSP/Types/Location.hs:41)
Range (src/Language/Haskell/LSP/Types/Location.hs:71)
Location (src/Language/Haskell/LSP/Types/Location.hs:92)
ClientMethod (src/Language/Haskell/LSP/Types/Message.hs:72)
ServerMethod (src/Language/Haskell/LSP/Types/Message.hs:214)
RequestMessage (src/Language/Haskell/LSP/Types/Message.hs:279)
ErrorCode (src/Language/Haskell/LSP/Types/Message.hs:327)
ResponseError (src/Language/Haskell/LSP/Types/Message.hs:392)
ResponseMessage (src/Language/Haskell/LSP/Types/Message.hs:425)
ErrorResponse (src/Language/Haskell/LSP/Types/Message.hs:456)
BareResponseMessage (src/Language/Haskell/LSP/Types/Message.hs:460)
NotificationMessage (src/Language/Haskell/LSP/Types/Message.hs:474)
CancelParams (src/Language/Haskell/LSP/Types/Message.hs:511)
CancelNotification (src/Language/Haskell/LSP/Types/Message.hs:518)
CancelNotificationServer (src/Language/Haskell/LSP/Types/Message.hs:519)
DocumentSymbolParams (src/Language/Haskell/LSP/Types/Symbol.hs:103)
SymbolKind (src/Language/Haskell/LSP/Types/Symbol.hs:113)
DSResult (src/Language/Haskell/LSP/Types/Symbol.hs:260)
DocumentSymbolRequest (src/Language/Haskell/LSP/Types/Symbol.hs:272)
DocumentSymbolsResponse (src/Language/Haskell/LSP/Types/Symbol.hs:273)
TextDocumentIdentifier (src/Language/Haskell/LSP/Types/TextDocument.hs:28)
TextDocumentItem (src/Language/Haskell/LSP/Types/TextDocument.hs:66)
TextDocumentPositionParams (src/Language/Haskell/LSP/Types/TextDocument.hs:98)
Uri (src/Language/Haskell/LSP/Types/Uri.hs:41)
uriToFilePath (src/Language/Haskell/LSP/Types/Uri.hs:92)
filePathToUri (src/Language/Haskell/LSP/Types/Uri.hs:120)
NormalizedUri (src/Language/Haskell/LSP/Types/Uri.hs:48)
toNormalizedUri (src/Language/Haskell/LSP/Types/Uri.hs:75)
fromNormalizedUri (src/Language/Haskell/LSP/Types/Uri.hs:81)
toNormalizedFilePath (src/Language/Haskell/LSP/Types/Uri.hs:181)
fromNormalizedFilePath (src/Language/Haskell/LSP/Types/Uri.hs:188)
normalizedFilePathToUri (src/Language/Haskell/LSP/Types/Uri.hs:191)
uriToNormalizedFilePath (src/Language/Haskell/LSP/Types/Uri.hs:194)
platformAwareUriToFilePath (src/Language/Haskell/LSP/Types/Uri.hs:96)
platformAwareFilePathToUri (src/Language/Haskell/LSP/Types/Uri.hs:124)
MessageType (src/Language/Haskell/LSP/Types/Window.hs:63)
ShowMessageParams (src/Language/Haskell/LSP/Types/Window.hs:85)
ShowMessageNotification (src/Language/Haskell/LSP/Types/Window.hs:93)
MessageActionItem (src/Language/Haskell/LSP/Types/Window.hs:143)
ShowMessageRequestParams (src/Language/Haskell/LSP/Types/Window.hs:151)
ShowMessageRequest (src/Language/Haskell/LSP/Types/Window.hs:160)
ShowMessageResponse (src/Language/Haskell/LSP/Types/Window.hs:161)
LogMessageParams (src/Language/Haskell/LSP/Types/Window.hs:192)
LogMessageNotification (src/Language/Haskell/LSP/Types/Window.hs:201)
WorkDoneProgressCreateParams (src/Language/Haskell/LSP/Types/Window.hs:475)
WorkDoneProgressCreateRequest (src/Language/Haskell/LSP/Types/Window.hs:482)
TextEdit (src/Language/Haskell/LSP/Types/WorkspaceEdit.hs:42)
TextDocumentVersion (src/Language/Haskell/LSP/Types/WorkspaceEdit.hs:69)
VersionedTextDocumentIdentifier (src/Language/Haskell/LSP/Types/WorkspaceEdit.hs:71)
TextDocumentEdit (src/Language/Haskell/LSP/Types/WorkspaceEdit.hs:106)
WorkspaceEditMap (src/Language/Haskell/LSP/Types/WorkspaceEdit.hs:144)
WorkspaceEdit (src/Language/Haskell/LSP/Types/WorkspaceEdit.hs:146)
WorkspaceFolder (src/Language/Haskell/LSP/Types/WorkspaceFolders.hs:52)
WorkspaceFoldersRequest (src/Language/Haskell/LSP/Types/WorkspaceFolders.hs:62)
WorkspaceFoldersResponse (src/Language/Haskell/LSP/Types/WorkspaceFolders.hs:63)
DidChangeWorkspaceFoldersParams (src/Language/Haskell/LSP/Types/WorkspaceFolders.hs:120)
DidChangeWorkspaceFoldersNotification (src/Language/Haskell/LSP/Types/WorkspaceFolders.hs:128)
haddock: panic! (the 'impossible' happened)
(GHC version 8.10.3:
ModOrigin: hidden module redefined
Please report this as a GHC bug: https://www.haskell.org/ghc/reportabug
```
## Expected behavior
I'd like error message to hint at module name, say
```
haddock: panic! (the 'impossible' happened)
(GHC version 8.10.3:
ModOrigin: hidden module <$MODNAME> redefined
```
## Environment
* GHC version used: 8.10.3https://gitlab.haskell.org/ghc/ghc/-/issues/19286ghc and ghci don't read the default package environment file on Windows2021-12-09T20:47:10Zdanidiazghc and ghci don't read the default package environment file on Windows## Summary
According to the [package environments section](https://downloads.haskell.org/ghc/latest/docs/html/users_guide/packages.html#package-environments) of the User Guide, `ghc` and `ghci` invocations should use the `$HOME/.ghc/arc...## Summary
According to the [package environments section](https://downloads.haskell.org/ghc/latest/docs/html/users_guide/packages.html#package-environments) of the User Guide, `ghc` and `ghci` invocations should use the `$HOME/.ghc/arch-os-version/environments/default` package environment file if it exists and no specific options have been given to the contrary.
This works correctly on Linux, but the file is not being found on Windows.
On my machine, the default package environment is located at `C:\Users\myuser\.ghc\x86_64-mingw32-8.10.3\environments\default`.
## Steps to reproduce
Create a package environment file in the default location. The simplest way is to install a library with [`cabal install --lib`](https://cabal.readthedocs.io/en/3.4/cabal-commands.html#cabal-v2-install):
`cabal install --lib sop-core`
Then, in an empty folder, start `ghci`, then try to `import Data.SOP.NP`.
Also create a `Main.hs` which imports `Data.SOP.NP` and try to compile with `ghc`.
## Expected behavior
Neither `ghci` nor `ghc` should complain about not finding the module.
`ghci` should show a `Loaded package environment from...` message when starting up.
## Environment
* GHC version used: 8.10.3
* Operating System: Windows 10https://gitlab.haskell.org/ghc/ghc/-/issues/18070GHC 8.10's API can load interfaces with the wrong package identifier when loo...2020-08-13T22:22:56ZquasicomputationalGHC 8.10's API can load interfaces with the wrong package identifier when looking for pluginsOriginally a doctest bug report: https://github.com/sol/doctest/issues/264
I inlined the relevant code from doctest into the provided reproducer, producing [this reduced reproducer](https://github.com/quasicomputational/test-doctest). R...Originally a doctest bug report: https://github.com/sol/doctest/issues/264
I inlined the relevant code from doctest into the provided reproducer, producing [this reduced reproducer](https://github.com/quasicomputational/test-doctest). Run with `./run-test.sh`.
On my machine, I get an error that looks like this:
```
test-doctest: Bad interface file: [..]/dist-newstyle/build/x86_64-linux/ghc-8.10.1/dummy-plugin-0.1.0.0/build/DummyDefs.hi
Something is amiss; requested module dummy-plugin-0.1.0.0:DummyDefs differs from name found in the interface file ghc-compact-0.1.0.0:DummyDefs (if these names look the same, try again with -dppr-debug)
```
Where does that `ghc-compact` come from? I have no idea. Even more puzzlingly, if I turn up GHC's verbosity, that turns into `process`!
[`test-doctest.hs`](https://github.com/quasicomputational/test-doctest/blob/master/test-doctest.hs) is the (now misleadingly-named) code driving GHC, and as far as I can tell it's not doing anything exotic or bizarre.
[`Haddock.Interface`](https://github.com/haskell/haddock/blob/8c6532636e6bd572455dfcf0b0d6e05f7033d110/haddock-api/src/Haddock/Interface.hs) is the roughly corresponding code in Haddock, which seems to mostly do the same thing - and yet Haddock works and doctest doesn't. I have no idea what the difference is, except that it might be something to do with order-sensitivity in how modules are loaded.
The error doesn't happen on GHC 8.8. I couldn't find anything in the release notes warning me about any changes here, so this is a regression.https://gitlab.haskell.org/ghc/ghc/-/issues/18025INSTALL instructions of linux bindist says "make install" while it should be ...2020-04-08T23:06:50ZjwaldmannINSTALL instructions of linux bindist says "make install" while it should be "sudo make install"INSTALL of https://downloads.haskell.org/~ghc/8.8.3/ghc-8.8.3-x86_64-deb9-linux.tar.xz (and probably others) says
```
The default installation directory is /usr/local
...
Now run:
make install
```
This will fail, as "sudo make instal...INSTALL of https://downloads.haskell.org/~ghc/8.8.3/ghc-8.8.3-x86_64-deb9-linux.tar.xz (and probably others) says
```
The default installation directory is /usr/local
...
Now run:
make install
```
This will fail, as "sudo make install" is needed.