sig
type ('t, 'ty) t = {
statements : ('t, 'ty) FO.statement CCVector.ro_vector;
meta : FO.metadata;
}
val make :
meta:FO.metadata ->
('t, 'ty) FO.statement CCVector.ro_vector -> ('t, 'ty) FO.Problem.t
val of_list :
meta:FO.metadata -> ('t, 'ty) FO.statement list -> ('t, 'ty) FO.Problem.t
val statements :
('t, 'ty) FO.Problem.t -> ('t, 'ty) FO.statement CCVector.ro_vector
val meta : ('a, 'b) FO.Problem.t -> FO.metadata
val map :
meta:FO.metadata ->
(('t, 'ty) FO.statement -> ('t2, 'ty2) FO.statement) ->
('t, 'ty) FO.Problem.t -> ('t2, 'ty2) FO.Problem.t
val flat_map :
meta:FO.metadata ->
(('t, 'ty) FO.statement -> ('t2, 'ty2) FO.statement list) ->
('t, 'ty) FO.Problem.t -> ('t2, 'ty2) FO.Problem.t
val fold_flat_map :
meta:FO.metadata ->
('acc -> ('t, 'ty) FO.statement -> 'acc * ('t2, 'ty2) FO.statement list) ->
'acc -> ('t, 'ty) FO.Problem.t -> 'acc * ('t2, 'ty2) FO.Problem.t
val to_seq : ('t, 'ty) FO.Problem.t -> ('t, 'ty) FO.statement Sequence.t
end