Now that each clean-architecture module has its own hack package, we can reduce the functions, types and classes each package exports. To this end, we need to understand how to set up a package API: Via a separate Haskell module and re-exports?
All symbols that are only needed within the package are not accessible from outside the package.
The resulting package API is properly documented. Each file and the package have documented export lists.
Now that each clean-architecture module has its own hack package, we can reduce the functions, types and classes each package exports. To this end, we need to understand how to set up a package API: Via a separate Haskell module and re-exports?