sig
type 'a wrap = private { data : 'a; id : Dug.Id.t; }
val mutate :
('gen, 'mut, 'obs) Reins.Dug.t ->
(Dug.Id.t -> 'mut) ->
('a -> 'a) -> 'a Reins.DugExtractor.wrap -> 'a Reins.DugExtractor.wrap
val mutate2 :
('gen, 'mut, 'obs) Reins.Dug.t ->
(Dug.Id.t -> 'mut) ->
('a -> 'a -> 'a) ->
'a Reins.DugExtractor.wrap ->
'a Reins.DugExtractor.wrap -> 'a Reins.DugExtractor.wrap
val observe :
('gen, 'mut, 'obs) Reins.Dug.t ->
'obs -> ('a -> 'b) -> 'a Reins.DugExtractor.wrap -> 'b
val observe2 :
('gen, 'mut, 'obs) Reins.Dug.t ->
'obs ->
('a -> 'a -> 'b) ->
'a Reins.DugExtractor.wrap -> 'a Reins.DugExtractor.wrap -> 'b
val generate :
('gen, 'mut, 'obs) Reins.Dug.t ->
(Dug.Id.t -> 'gen) -> 'a -> 'a Reins.DugExtractor.wrap
end