let field fs f r = if r = Empty then Empty else Field (List.map (fun g -> g , if compare_field f g = 0 then r else Empty) (List.sort compare_field fs))