let set_result g p r =
  begin
    let rs =
      try Hpo.find system.results g
      with Not_found ->
        let rs = Results.create () in
        Hpo.add system.results g rs ; rs
    in
    Results.replace rs p r ;
    set_po_result g r ;
  end