iveUp :: S.State -> (QCGen -> Int -> (a -> Prop)) -> IO (Maybe a, Result)
giveUp st _f =
  do -- CALLBACK gave_up?
     putPart (S.terminal st)
       ( bold ("*** Gave up!")
      ++ " Passed only "
      ++ show (S.numSuccessTests st)
      ++ " tests"
       )
     success st
     theOutput <- terminalOutput (S.terminal st)
     return ( Nothing
            , GaveUp{ numTests = S.numSuccessTests st
                    , labels   = summary st
                    , output   = theOutput
                    }
            )

giveUp :: S.State -> (QCGen -> Int -> (a -> Prop)) -> IO (Maybe a, Result)
giveUp st _f =
  do -- CALLBACK gave_up?
     putPart (S.terminal st)
       ( bold ("*** Gave up!")
      ++ " Passed only "
      ++ show (S.numSuccessTests st)
      ++ " tests"
       )
     success st
     theOutput <- terminalOutput (S.terminal st)
     return ( Nothing
            , GaveUp{ numTests = S.numSuccessTests st
                    , labels   = summary st
                    , output   = theOutput
                    }
            )
giveUp st _f =
  do -- CALLBACK gave_up?
     putPart (S.terminal st)
       ( bold ("*** Gave up!")
      ++ " Passed only "
      ++ show (S.numSuccessTests st)
      ++ " tests"
       )
     success st
     theOutput <- terminalOutput (S.terminal st)
     return ( Nothing
            , GaveUp{ numTests = S.numSuccessTests st
                    , labels   = summary st
                    , output   = theOutput
                    }
            )