
withFixture1 :: String -> IO a -> IO ()
withFixture1 nm f = Exception.bracket setUp (\_ -> f) tearDown
  where
    setUp = Printf.hPrintf IO.stderr "(%s) SetUp ...\n" nm
    tearDown _ = Printf.hPrintf IO.stderr "... TearDown (%s)\n" nm

epsilon = 0.001
(lst, revlst) = ([0..4], reverse (enumFromTo 0 4))

caseSquare = mapM_ (\n -> do
    mapM_ (\(funcA, nm) -> assertEqual nm (n ** 2.0) (funcA n)
        ) [(squareR, "squareR"), (squareI, "squareI")
            , (squareF, "squareF"), (squareU, "squareU")
            , (squareLc, "squareLc")]