sig
type 'f plate = {
plate :
'a. 'a Generic_core.Ty.T.ty -> 'a -> ('a, 'f) Generic_util.App.T.app;
}
type id_plate = { id_plate : 'a. 'a Generic_core.Ty.T.ty -> 'a -> 'a; }
type 'b const_plate = {
const_plate : 'a. 'a Generic_core.Ty.T.ty -> 'a -> 'b;
}
val pure_plate :
'f Generic_util.Applicative.T.applicative ->
'f Generic_fun_multiplate.plate
val pure_id_plate : Generic_fun_multiplate.id_plate
val pure_const_plate :
't Generic_util.Monoid.T.monoid -> 't Generic_fun_multiplate.const_plate
val compose :
'f Generic_util.Functor.T.functorial ->
'g Generic_fun_multiplate.plate ->
'f Generic_fun_multiplate.plate ->
('g, 'f) Generic_util.App.comp Generic_fun_multiplate.plate
val compose_monad :
'f Generic_util.Monad.T.monad ->
'f Generic_fun_multiplate.plate ->
'f Generic_fun_multiplate.plate -> 'f Generic_fun_multiplate.plate
val compose_right_id :
'f Generic_fun_multiplate.plate ->
Generic_fun_multiplate.id_plate -> 'f Generic_fun_multiplate.plate
val compose_left_id :
'f Generic_util.Functor.T.functorial ->
Generic_fun_multiplate.id_plate ->
'f Generic_fun_multiplate.plate -> 'f Generic_fun_multiplate.plate
val append_plate :
'r Generic_util.Monoid.T.monoid ->
'r Generic_fun_multiplate.const_plate ->
'r Generic_fun_multiplate.const_plate ->
'r Generic_fun_multiplate.const_plate
val traverse :
'f Generic_util.Applicative.T.applicative ->
'f Generic_fun_multiplate.plate ->
'a Generic_core.Product.T.product ->
'a -> ('a, 'f) Generic_util.App.T.app
val map :
Generic_fun_multiplate.id_plate ->
'a Generic_core.Product.T.product -> 'a -> 'a
type 'a scrapped =
Scrapped : 'b Generic_core.Product.t * 'b *
('b -> 'a) -> 'a Generic_fun_multiplate.scrapped
val scrap :
'a Generic_core.Ty.T.ty -> 'a -> 'a Generic_fun_multiplate.scrapped
val children :
'a Generic_core.Ty.T.ty -> 'a -> Generic_core.Ty.Dynamic.dyn list
val children_d :
Generic_core.Ty.Dynamic.dyn -> Generic_core.Ty.Dynamic.dyn list
val family :
'a Generic_core.Ty.T.ty -> 'a -> Generic_core.Ty.Dynamic.dyn list
val family_d :
Generic_core.Ty.Dynamic.dyn -> Generic_core.Ty.Dynamic.dyn list
val traverse_children_p :
'f Generic_util.Applicative.T.applicative ->
'f Generic_fun_multiplate.plate -> 'f Generic_fun_multiplate.plate
val traverse_children :
'f Generic_util.Applicative.T.applicative ->
'f Generic_fun_multiplate.plate ->
'a Generic_core.Ty.T.ty -> 'a -> ('a, 'f) Generic_util.App.T.app
val map_children_p :
Generic_fun_multiplate.id_plate -> Generic_fun_multiplate.id_plate
val map_children :
Generic_fun_multiplate.id_plate -> 'a Generic_core.Ty.T.ty -> 'a -> 'a
val traverse_family_p :
'f Generic_util.Monad.T.monad ->
'f Generic_fun_multiplate.plate -> 'f Generic_fun_multiplate.plate
val traverse_family :
'f Generic_util.Monad.T.monad ->
'f Generic_fun_multiplate.plate ->
'a Generic_core.Ty.T.ty -> 'a -> ('a, 'f) Generic_util.App.T.app
val map_family_p :
Generic_fun_multiplate.id_plate -> Generic_fun_multiplate.id_plate
val map_family :
Generic_fun_multiplate.id_plate -> 'a Generic_core.Ty.T.ty -> 'a -> 'a
val para_p :
('r list -> 'r) Generic_fun_multiplate.const_plate ->
'r Generic_fun_multiplate.const_plate
val para_d :
(Generic_core.Ty.Dynamic.dyn -> 'r list -> 'r) ->
Generic_core.Ty.Dynamic.dyn -> 'r
val para :
(Generic_core.Ty.Dynamic.dyn -> 'r list -> 'r) ->
'a Generic_core.Ty.T.ty -> 'a -> 'r
val fold_children_p :
't Generic_util.Monoid.T.monoid ->
't Generic_fun_multiplate.const_plate ->
't Generic_fun_multiplate.const_plate
val fold_children_d :
't Generic_util.Monoid.T.monoid ->
(Generic_core.Ty.Dynamic.dyn -> 't) -> Generic_core.Ty.Dynamic.dyn -> 't
val fold_children :
't Generic_util.Monoid.T.monoid ->
(Generic_core.Ty.Dynamic.dyn -> 't) ->
'a Generic_core.Ty.T.ty -> 'a -> 't
val pre_fold_p :
't Generic_util.Monoid.T.monoid ->
't Generic_fun_multiplate.const_plate ->
't Generic_fun_multiplate.const_plate
val pre_fold_d :
't Generic_util.Monoid.T.monoid ->
(Generic_core.Ty.Dynamic.dyn -> 't) -> Generic_core.Ty.Dynamic.dyn -> 't
val pre_fold :
't Generic_util.Monoid.T.monoid ->
(Generic_core.Ty.Dynamic.dyn -> 't) ->
'a Generic_core.Ty.T.ty -> 'a -> 't
val post_fold_p :
't Generic_util.Monoid.T.monoid ->
't Generic_fun_multiplate.const_plate ->
't Generic_fun_multiplate.const_plate
val post_fold_d :
't Generic_util.Monoid.T.monoid ->
(Generic_core.Ty.Dynamic.dyn -> 't) -> Generic_core.Ty.Dynamic.dyn -> 't
val post_fold :
't Generic_util.Monoid.T.monoid ->
(Generic_core.Ty.Dynamic.dyn -> 't) ->
'a Generic_core.Ty.T.ty -> 'a -> 't
type 'f openrec = {
run :
'f Generic_fun_multiplate.openrec -> 'f Generic_fun_multiplate.plate;
}
val default :
'a Generic_util.Applicative.T.applicative ->
'a Generic_fun_multiplate.openrec
end