sig
  type 'a eref = ('a, [ `Volatile ]) Eliom_reference.eref'
  val eref :
    scope:[< Eliom_common.all_scope ] ->
    ?secure:bool -> '-> 'Eliom_reference.Volatile.eref
  val eref_from_fun :
    scope:[< Eliom_common.all_scope ] ->
    ?secure:bool -> (unit -> 'a) -> 'Eliom_reference.Volatile.eref
  val get : 'Eliom_reference.Volatile.eref -> 'a
  val set : 'Eliom_reference.Volatile.eref -> '-> unit
  val modify : 'Eliom_reference.Volatile.eref -> ('-> 'a) -> unit
  val unset : 'Eliom_reference.Volatile.eref -> unit
  module Ext :
    sig
      val get :
        ([< `Client_process | `Session | `Session_group ], [< `Data ])
        Eliom_state.Ext.state -> 'Eliom_reference.Volatile.eref -> 'a
      val set :
        ([< `Client_process | `Session | `Session_group ], [< `Data ])
        Eliom_state.Ext.state ->
        'Eliom_reference.Volatile.eref -> '-> unit
      val modify :
        ([< `Client_process | `Session | `Session_group ], [< `Data ])
        Eliom_state.Ext.state ->
        'Eliom_reference.Volatile.eref -> ('-> 'a) -> unit
      val unset :
        ([< `Client_process | `Session | `Session_group ], [< `Data ])
        Eliom_state.Ext.state -> 'Eliom_reference.Volatile.eref -> unit
    end
end