Sourcetype ('value, 'a) arg = | Value : 'a Hmap.key -> ('value, 'a) arg| Const : 'a -> ('value, 'a) arg| Map : ('value, 'fn, 'r) args * 'fn -> ('value, 'r) arg
Sourceand ('value, 'fn, 'r) args = | [] : ('value, 'value -> 'r, 'r) args| :: : ('value, 'a) arg * ('value, 'fn, 'r) args -> ('value, 'a -> 'fn, 'r) args
Sourceval arg : 'a 'v. t -> 'v -> ('v, 'a) arg -> t * 'a Sourceval keval_args :
'f 'r 'v. t ->
'v ->
(('v -> 'r) -> t -> 'r) ->
('v, 'f, 'r) args ->
'f ->
'r Sourceval v :
'v 'f 'r. name:string ->
finally:('r -> unit) ->
('v, 'f, 'r) args ->
'f ->
('v, 'r) device