-
-
Notifications
You must be signed in to change notification settings - Fork 412
Description
Problem
In one of the projects, we are trying to use mixins feature to hide the default Prelude module and provide our own, in overall this looks like
# package.yaml
depedencies:
- name: base
version: ">= 4.7 && < 5"
mixin: [hiding (Prelude)]
- morley-preludeHowever, it looks like hiding Prelude does not work, because with ghcide I get the following error
Ambiguous module name ‘Prelude’:
it was found in multiple packages:
base-4.13.0.0 morley-prelude-0.3.0
Reproduction
I can reproduce this in the Morley repository, commit e9a00b61bb.
It has morley-prelude package used as a custom prelude. When I open some of the depending packages, e.g. code/morley/src/Util/Text.hs file from morley package, I get the mentioned error for all modules.
There are other packages using morley-prelude where the problem reproduces, e.g. morley-ledgers has much less modules (in case that is helpful), but it appears in a different repository.
Side comments
Indeed, one of the options for us would be just not using mixins and instead use base-noprelude. We are going to apply this as a temporary workaround, though it would be nice if this feature is eventually supported.
I'm not sure how problematic this may be to fix, since it is a known issue that even stack ghci does not work with mixins properly, but would be nice to at least know your plans on this.