prop_unsafeInsertMin_Max :: BagTest Int bag => 
        bag Int -> Int -> bag Int -> Bool
prop_unsafeInsertMin_Max bag i xs =
    if null xs then
      unsafeInsertMin 0 xs === singleton 0
      &&
      unsafeInsertMax 0 xs === singleton 0
    else
      unsafeInsertMin lo xs === insert lo xs
      &&
      unsafeInsertMax hi xs === insert hi xs
  where lo = minElem xs - (if odd i then 1 else 0)
        hi = maxElem xs + (if odd i then 1 else 0)
prop_unsafeInsertMin_Max :: BagTest Int bag => 
        bag Int -> Int -> bag Int -> Bool
prop_unsafeInsertMin_Max bag i xs =
    if null xs then
      unsafeInsertMin 0 xs === singleton 0
      &&
      unsafeInsertMax 0 xs === singleton 0
    else
      unsafeInsertMin lo xs === insert lo xs
      &&
      unsafeInsertMax hi xs === insert hi xs
  where lo = minElem xs - (if odd i then 1 else 0)
        hi = maxElem xs + (if odd i then 1 else 0)
prop_unsafeInsertMin_Max bag i xs =
    if null xs then
      unsafeInsertMin 0 xs === singleton 0
      &&
      unsafeInsertMax 0 xs === singleton 0
    else
      unsafeInsertMin lo xs === insert lo xs
      &&
      unsafeInsertMax hi xs === insert hi xs
  where lo = minElem xs - (if odd i then 1 else 0)
        hi = maxElem xs + (if odd i then 1 else 0)