How to disable warning for "export item 'module ...' exports
nothing"?
Sean Leather
leather at cs.uu.nl
Fri Aug 15 08:21:33 EDT 2008
Ross Paterson wrote:
> On Thu, Aug 14, 2008 at 08:00:25PM +0200, Sean Leather wrote:
> > Well, the warning is right that you don't need to re-export module B:
> > instances are implicitly exported. So you could just remove the
> export of
> > "module B", unless there's a reason to export it (such as, you might
> add
> > some exported functions or data types to it later)
> >
> > Hmm, the disappointing result of removing module B from the export list
> > is that now it doesn't show up in the Haddock-generated documentation
> > for module A. Not that there was anything specific in B to document,
> > because it's only instances. But I do want the user to know that
> > importing A also imports B. Sigh... I suppose there's CPP if I really
> > want it.
>
> That shouldn't be necessary. Because instances are implicitly exported
> and imported, you'll really want to avoid orphan instances, so that the
> user can be sure that if both the class and the data type are in scope,
> so is the instance. But then the instance will be listed under both
> the class and the type in the Haddock documentation. It won't matter
> where the instance was defined, just as it doesn't matter where other
> stuff is defined, just where it is in scope.
>
In my case, it does matter where instances are in scope. My library requires
orphan instances by design. If the programmer imports the top-level module,
then s/he gets a default set of instances. But the programmer has the option
to import select modules and get a different set of classes and instances.
My goal was to put the default set of instances into a separate module and
re-export that from a higher-level module. That way, it is more clearly
documented where things are located.
Unfortunately Haddock does not allow doc comments to be attached to
> instances, but that's independent of whether the defining module is shown.
>
Agreed. I am getting the impression that it would be nice if there were a
lot of things that were more explicit about instances, both in Haskell and
in Haddock.
Sean
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/glasgow-haskell-users/attachments/20080815/d78fc430/attachment.htm
More information about the Glasgow-haskell-users
mailing list