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