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