let fields frs = 
  if List.for_all (fun (_,r) -> r = Empty) frs then Empty else
    if List.for_all (fun (_,r) -> r = Full) frs then Full else
      Field (List.sort fsort frs)