How do you deal with function visibility and unit testing in Haskell?
If you export every function in a module so that the unit tests have access to them, you risk other
For testing you normally split the application in the cabal project file, between a library, the production executable, and a test-suite executable that tests the library functions, so the test assertion functions are kept apart.
For external function visibility you split the library modules between the "exposed-modules" section and the "other-modules" section.