What I usually do in such a case is create a separate internal module. The internal module exports everything. Then create a module which defines the public interface. This module simple reexports symbols from the internal module. Now you can create a Test module which has full access to all internal symbols.
module Internal where a = 1 b = 2 secret = 42 module Public ( a, b ) where import Internal ( a, b ) module Test where import Internal ( secret ) test = assert $ isUltimateAnswer secret On Wed, Feb 24, 2010 at 10:17 AM, Magnus Therning <mag...@therning.org> wrote: > How do people who like unit testing / property testing deal with export lists? > > I often find that I do want an export list to reduce clutter in the > finished code, but for testing I'd like to expose everything in a > module. Is there a nice way to deal with this (using the C > pre-processor would not qualify as "nice" ;-)? > Maybe there's a switch that causes GHC to simply ignore the export > list of a module and export everything? > > /M _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe