sig
  type 'a t
  type 'a sv
  val const : '-> 'Eliom_shared_sigs.S.t
  val value : 'Eliom_shared_sigs.S.t -> 'Eliom_shared_sigs.S.sv
  val map :
    ?eq:('-> '-> bool) Eliom_shared_sigs.S.sv ->
    ('-> 'b) Eliom_shared_sigs.S.sv ->
    'Eliom_shared_sigs.S.t -> 'Eliom_shared_sigs.S.t
  val fmap :
    ?eq:('-> '-> bool) Eliom_shared_sigs.S.sv ->
    ('-> 'b option) Eliom_shared_sigs.S.sv ->
    'Eliom_shared_sigs.S.sv ->
    'Eliom_shared_sigs.S.t -> 'Eliom_shared_sigs.S.t
  val merge :
    ?eq:('-> '-> bool) Eliom_shared_sigs.S.sv ->
    ('-> '-> 'a) Eliom_shared_sigs.S.sv ->
    '-> 'Eliom_shared_sigs.S.t list -> 'Eliom_shared_sigs.S.t
  val l2 :
    ?eq:('-> '-> bool) Eliom_shared_sigs.S.sv ->
    ('-> '-> 'c) Eliom_shared_sigs.S.sv ->
    'Eliom_shared_sigs.S.t ->
    'Eliom_shared_sigs.S.t -> 'Eliom_shared_sigs.S.t
  val l3 :
    ?eq:('-> '-> bool) Eliom_shared_sigs.S.sv ->
    ('-> '-> '-> 'd) Eliom_shared_sigs.S.sv ->
    'Eliom_shared_sigs.S.t ->
    'Eliom_shared_sigs.S.t ->
    'Eliom_shared_sigs.S.t -> 'Eliom_shared_sigs.S.t
  val l4 :
    ?eq:('-> '-> bool) Eliom_shared_sigs.S.sv ->
    ('-> '-> '-> '-> 'e) Eliom_shared_sigs.S.sv ->
    'Eliom_shared_sigs.S.t ->
    'Eliom_shared_sigs.S.t ->
    'Eliom_shared_sigs.S.t ->
    'Eliom_shared_sigs.S.t -> 'Eliom_shared_sigs.S.t
  val l5 :
    ?eq:('-> '-> bool) Eliom_shared_sigs.S.sv ->
    ('-> '-> '-> '-> '-> 'f) Eliom_shared_sigs.S.sv ->
    'Eliom_shared_sigs.S.t ->
    'Eliom_shared_sigs.S.t ->
    'Eliom_shared_sigs.S.t ->
    'Eliom_shared_sigs.S.t ->
    'Eliom_shared_sigs.S.t -> 'Eliom_shared_sigs.S.t
  val l6 :
    ?eq:('-> '-> bool) Eliom_shared_sigs.S.sv ->
    ('-> '-> '-> '-> '-> '-> 'g) Eliom_shared_sigs.S.sv ->
    'Eliom_shared_sigs.S.t ->
    'Eliom_shared_sigs.S.t ->
    'Eliom_shared_sigs.S.t ->
    'Eliom_shared_sigs.S.t ->
    'Eliom_shared_sigs.S.t ->
    'Eliom_shared_sigs.S.t -> 'Eliom_shared_sigs.S.t
  val switch :
    ?eq:('-> '-> bool) Eliom_shared_sigs.S.sv ->
    'Eliom_shared_sigs.S.t Eliom_shared_sigs.S.t ->
    'Eliom_shared_sigs.S.t
  module Infix :
    sig
      val ( >|= ) :
        'Eliom_shared_sigs.S.t ->
        ('-> 'b) Eliom_shared_sigs.S.sv -> 'Eliom_shared_sigs.S.t
      val ( =|< ) :
        ('-> 'b) Eliom_shared_sigs.S.sv ->
        'Eliom_shared_sigs.S.t -> 'Eliom_shared_sigs.S.t
    end
  module Lwt :
    sig
      val map_s :
        ?eq:('-> '-> bool) Eliom_shared_sigs.S.sv ->
        ('-> 'Lwt.t) Eliom_shared_sigs.S.sv ->
        'Eliom_shared_sigs.S.t -> 'Eliom_shared_sigs.S.t Lwt.t
      val l2_s :
        ?eq:('-> '-> bool) Eliom_shared_sigs.S.sv ->
        ('-> '-> 'Lwt.t) Eliom_shared_sigs.S.sv ->
        'Eliom_shared_sigs.S.t ->
        'Eliom_shared_sigs.S.t -> 'Eliom_shared_sigs.S.t Lwt.t
      val l3_s :
        ?eq:('-> '-> bool) Eliom_shared_sigs.S.sv ->
        ('-> '-> '-> 'Lwt.t) Eliom_shared_sigs.S.sv ->
        'Eliom_shared_sigs.S.t ->
        'Eliom_shared_sigs.S.t ->
        'Eliom_shared_sigs.S.t -> 'Eliom_shared_sigs.S.t Lwt.t
      val l4_s :
        ?eq:('-> '-> bool) Eliom_shared_sigs.S.sv ->
        ('-> '-> '-> '-> 'Lwt.t) Eliom_shared_sigs.S.sv ->
        'Eliom_shared_sigs.S.t ->
        'Eliom_shared_sigs.S.t ->
        'Eliom_shared_sigs.S.t ->
        'Eliom_shared_sigs.S.t -> 'Eliom_shared_sigs.S.t Lwt.t
      val l5_s :
        ?eq:('-> '-> bool) Eliom_shared_sigs.S.sv ->
        ('-> '-> '-> '-> '-> 'Lwt.t) Eliom_shared_sigs.S.sv ->
        'Eliom_shared_sigs.S.t ->
        'Eliom_shared_sigs.S.t ->
        'Eliom_shared_sigs.S.t ->
        'Eliom_shared_sigs.S.t ->
        'Eliom_shared_sigs.S.t -> 'Eliom_shared_sigs.S.t Lwt.t
      val l6_s :
        ?eq:('-> '-> bool) Eliom_shared_sigs.S.sv ->
        ('-> '-> '-> '-> '-> '-> 'Lwt.t) Eliom_shared_sigs.S.sv ->
        'Eliom_shared_sigs.S.t ->
        'Eliom_shared_sigs.S.t ->
        'Eliom_shared_sigs.S.t ->
        'Eliom_shared_sigs.S.t ->
        'Eliom_shared_sigs.S.t ->
        'Eliom_shared_sigs.S.t -> 'Eliom_shared_sigs.S.t Lwt.t
      val merge_s :
        ?eq:('-> '-> bool) Eliom_shared_sigs.S.sv ->
        ('-> '-> 'Lwt.t) Eliom_shared_sigs.S.sv ->
        '-> 'Eliom_shared_sigs.S.t list -> 'Eliom_shared_sigs.S.t Lwt.t
    end
end