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))