All I can give are examples.  These have single Internal modules.

https://hackage.haskell.org/package/text-1.2.2.2/docs/Data-Text-Internal.html
https://hackage.haskell.org/package/aeson-1.2.2.0/docs/Data-Aeson-Internal.html
https://hackage.haskell.org/package/pipes-4.3.5/docs/Pipes-Internal.html
https://hackage.haskell.org/package/reflex-0.4.0/docs/Reflex-Spider-Internal.html

whereas opaleye for example has an entire Internal hierarchy.

https://hackage.haskell.org/package/opaleye-0.6.0.0

On Mon, Oct 2, 2017 at 6:49 AM, Baa <aquagnu@gmail.com> wrote:
> It is common to export an Foo.Internal module that has the internals
> of your library in it, with a doc at the top that this is meant for
> internal use.  It can be used both for testing and sometimes the user
> of your library can do something with it you didn't think of if he
> has access to the internals.

Hm, but if I have 10 modules in src/ (m1.hs, ..., m10.hs) I must create,
for example 10 folders like src/m1/, ..., src/m10/ and their individual
M*.Internal module, right? So, `m1`, for example, becomes:

  src/
    m1/
      Internal.hs
      All.hs
?

And `All.hs` imports and re-exports module (or its part only)
`Internal.hs`? Something like this?


===
Best regards, Paul
_______________________________________________
Beginners mailing list
Beginners@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners