sig   type 'a t   type 'a item = End | Item of 'a * 'Choice.Enum.t   val next : 'Choice.Enum.t -> 'Choice.Enum.item Choice.choice   val empty : 'Choice.Enum.t   val cons : 'Choice.choice -> 'Choice.Enum.t -> 'Choice.Enum.t   val cons1 : '-> 'Choice.Enum.t -> 'Choice.Enum.t   val of_list : 'a list -> 'Choice.Enum.t   val zip : 'Choice.Enum.t -> 'Choice.Enum.t -> ('a * 'b) Choice.Enum.t   val count : 'Choice.Enum.t -> int   val to_lists : 'Choice.Enum.t -> 'a list Choice.choice   val to_list_list : 'Choice.Enum.t -> 'a list list end