As someone who reads documentation, I do want to see where they came from. The source (not code, but origin) of a module is not an implementation detail, it's a place for documentation. This naming scheme is also consistent in its own right.

On Tue, Jul 31, 2018, 9:29 AM Wolfgang Jeltsch <wolfgang-it@jeltsch.info> wrote:
Am Dienstag, den 31.07.2018, 08:51 -0400 schrieb Daniel Cartwright:
"There is also the situation where the package name isn’t essential and
shouldn’t get in the way when naming modules. For example, there are a
lot of monad transformers in the world. The `transformers` package
implements some of them; others are added by other packages. It is good
if the module that implements a certain kind of monad transformer has a
name of the form `Control.Monad.Trans.⟨type-of-transformer⟩`. Having the
package name in the module name would be like revealing an
implementation detail."

Not sure I agree that that is necessarily the case.

Transformers.ExceptT
Transformers.ReaderT
These.ChronicleT

This lets me know exactly where these transformers came from, just by reading the module name.

But I don’t want to see where those transformers “came from” but that they are certain monad transformers. The latter is expressed by the consistent naming Control.Monad.Trans.⟨type-of-transformer⟩.

All the best,
Wolfgang
_______________________________________________
Libraries mailing list
Libraries@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries