[darcs-devel] [patch1935] add NoImplicitPrelude for lib:darcs and exe:darcs

Ben Franksen bugs at darcs.net
Mon Sep 23 20:42:36 UTC 2019


Ben Franksen <ben.franksen at online.de> added the comment:

[redirecting discussion to patch1935]

> I think I've played with it before and didn't like the effects, but I
> can't remember the details so we might as well try it again.
> https://wiki.haskell.org/No_import_of_Prelude suggests it'd be ok given
> that we re-export the whole Prelude minus a few bits anyway.

Yes, that was my thinking. We don't want one of those super special
completely re-designed Preludes with lots of strange new classes and
stuff like that. Just a fairly regular one with a few identifiers hidden
to avoid collisions and compatibility problems; and perhaps a few
well-known and widely used extra exports for convenience.

> The other downside is it becomes a bit harder to read a single source
> file and understand what's happening.

Compared to what we have now the main difference is that instead of

  import Prelude ()
  import Darcs.Prelude

we have

  import Darcs.Prelude

and I guess nobody takes any notice of all the import stuff anyway
unless they look for a specific definition of something they don't know
yet. The vast majority of our modules import lots of things from Darcs.*
anyway.

BTW, I have read a bit on @cafe and @libraries lately and there was some
discussion about changes to Prelude and compatibility. Some seasoned
Haskellers recommended to use NoImplicitPrelude and a customized own
Prelude for any non-trivial project by default.

Note my patch touched almost every file in lib:darcs so has a high
probability of conflicting with current WIP. I expect these conflicts to
be mostly easy to resolve, though.

__________________________________
Darcs bug tracker <bugs at darcs.net>
<http://bugs.darcs.net/patch1935>
__________________________________


More information about the darcs-devel mailing list