prop_deleteMin_Max :: BagTest Int bag => bag Int -> bag Int -> Bool
prop_deleteMin_Max bag xs =
    let deleteMin_xs = deleteMin xs
        deleteMax_xs = deleteMax xs
     in si deleteMin_xs
        &&
        si deleteMax_xs
        &&
        toOrdList (deleteMin xs) == 
                (let l = toOrdList xs 
                  in if L.null l then L.empty else L.ltail l)
        &&
        toOrdList (deleteMax xs) == 
                (let l = toOrdList xs
                  in if L.null l then L.empty else L.rtail l)
prop_deleteMin_Max :: BagTest Int bag => bag Int -> bag Int -> Bool
prop_deleteMin_Max bag xs =
    let deleteMin_xs = deleteMin xs
        deleteMax_xs = deleteMax xs
     in si deleteMin_xs
        &&
        si deleteMax_xs
        &&
        toOrdList (deleteMin xs) == 
                (let l = toOrdList xs 
                  in if L.null l then L.empty else L.ltail l)
        &&
        toOrdList (deleteMax xs) == 
                (let l = toOrdList xs
                  in if L.null l then L.empty else L.rtail l)
prop_deleteMin_Max bag xs =
    let deleteMin_xs = deleteMin xs
        deleteMax_xs = deleteMax xs
     in si deleteMin_xs
        &&
        si deleteMax_xs
        &&
        toOrdList (deleteMin xs) == 
                (let l = toOrdList xs 
                  in if L.null l then L.empty else L.ltail l)
        &&
        toOrdList (deleteMax xs) == 
                (let l = toOrdList xs
                  in if L.null l then L.empty else L.rtail l)