On 21 May 2011 15:20, Duncan Coutts <duncan.cou...@googlemail.com> wrote: > data Test = forall i r t. Testlike i r t => Test TestName t > | TestGroup TestName [Test] > | PlusTestOptions TestOptions Test
FYI, I recently added another alternative: | BuildTest (IO Test) The main purpose is to support a combinator mutuallyExclusive :: Test -> Test that only allows one of the child tests in a Test to run at once (see https://github.com/batterseapower/test-framework/blob/master/core/Test/Framework/Core.hs). This is just a convenience that means that the user doesn't have to explicitly sequence in this IO action themselves. > The way it's done in test-framework is to have a pure i :~> r lazy > list and a separate IO () action that does the real work. The IO > action performs the test and pokes the results into a Concurrent.Chan. > The i :~> r lazy list is extracted from the Chan using > getChanContents. > > Honestly, I don't know why Max did it this way I would not copy this part of the design -- it is the component I am least happy with. As you say, it is a rather strange interface, and your proposal seems much clearer. Cheers, Max _______________________________________________ cabal-devel mailing list cabal-devel@haskell.org http://www.haskell.org/mailman/listinfo/cabal-devel