let remove (h:('a,'b) t) ?(all=true) (x:'a) = h#remove ~all x