let pp fmt s =
  let pps i sl =   
    if not(Solution.is_empty sl) then
      Solution.pp i fmt sl
  in
    Partition.pp fmt s.p;
    Array.iter (fun i eqs -> pps i eqs) s.eqs