val wrap_model : ?on_action_for_other_component:([ `Action_for_first of 'm2 | `Action_for_second of 'm1 ], ('m1, 'm2) Core_kernel.Either.t) on_action_mismatch -> ('input, 'm1, 'r1) t -> ('input, 'm2, 'r2) t -> ('input, ('m1, 'm2) Core_kernel.Either.t, ('r1, 'r2) Core_kernel.Either.t) t
val wrap_model_with_same_result : ?on_action_for_other_component:([ `Action_for_first of 'm2 | `Action_for_second of 'm1 ], ('m1, 'm2) Core_kernel.Either.t) on_action_mismatch -> ('input, 'm1, 'r) t -> ('input, 'm2, 'r) t -> ('input, ('m1, 'm2) Core_kernel.Either.t, 'r) t