(===) :: (Eq (bag a),CollX (bag a) a) => bag a -> bag a -> Bool
(===) b1 b2 = 
    structuralInvariant b1
    &&
    structuralInvariant b2
    &&
    b1 == b2
(===) :: (Eq (bag a),CollX (bag a) a) => bag a -> bag a -> Bool
(===) b1 b2 = 
    structuralInvariant b1
    &&
    structuralInvariant b2
    &&
    b1 == b2
(===) b1 b2 = 
    structuralInvariant b1
    &&
    structuralInvariant b2
    &&
    b1 == b2