sig
type empty
type ('a, 'b) sum = Left of 'a | Right of 'b
type _ Generic_core.Ty.t +=
Empty : Generic_util_sum.empty Generic_core.Ty.t
| Sum : 'a Generic_core.Ty.t *
'b Generic_core.Ty.t -> ('a, 'b) Generic_util_sum.sum
Generic_core.Ty.t
val left : 'a -> ('a, 'b) Generic_util_sum.sum
val right : 'b -> ('a, 'b) Generic_util_sum.sum
val empty_elim : Generic_util_sum.empty -> 'a
val either :
('a -> 'c) -> ('b -> 'c) -> ('a, 'b) Generic_util_sum.sum -> 'c
val sum :
('a -> 'c) ->
('b -> 'd) ->
('a, 'b) Generic_util_sum.sum -> ('c, 'd) Generic_util_sum.sum
end