AbstractSyntax.ProgramSourcetype program = {rules : Rule.Rules.t;pred_table : Predicate.PredIdTable.table;const_table : ConstGen.Table.table;i_preds : Predicate.PredIds.t;rule_id_gen : UtilsLib.IdGenerator.IntIdGen.t;e_pred_to_rules : Rule.Rules.t Predicate.PredIdMap.t;}type modifier = {modified_rules : Rule.Rules.t;new_pred_table : Predicate.PredIdTable.table;new_const_table : ConstGen.Table.table;new_i_preds : Predicate.PredIds.t;new_e_preds : Predicate.PredIds.t;new_rule_id_gen : UtilsLib.IdGenerator.IntIdGen.t;}