sig   module Jstr :     sig       type t       val v : string -> Brr.Jstr.t       val vf :         ('a, Format.formatter, unit, Brr.Jstr.t) Pervasives.format4 -> 'a       val empty : Brr.Jstr.t       val is_empty : Brr.Jstr.t -> bool       val append : Brr.Jstr.t -> Brr.Jstr.t -> Brr.Jstr.t       val cuts : sep:Brr.Jstr.t -> Brr.Jstr.t -> Brr.Jstr.t list       val concat : sep:Brr.Jstr.t -> Brr.Jstr.t list -> Brr.Jstr.t       val slice : ?start:int -> ?stop:int -> Brr.Jstr.t -> Brr.Jstr.t       val trim : Brr.Jstr.t -> Brr.Jstr.t       val chop : prefix:Brr.Jstr.t -> Brr.Jstr.t -> Brr.Jstr.t option       val rchop : suffix:Brr.Jstr.t -> Brr.Jstr.t -> Brr.Jstr.t option       val to_string : Brr.Jstr.t -> string       val of_string : string -> Brr.Jstr.t       val equal : Brr.Jstr.t -> Brr.Jstr.t -> bool       val compare : Brr.Jstr.t -> Brr.Jstr.t -> int       val pp : Format.formatter -> Brr.Jstr.t -> unit     end   module Prop :     sig       type 'a t       val v : undefined:'-> Brr.Jstr.t list -> 'Brr.Prop.t       val get : 'Brr.Prop.t -> 'Js.t -> 'a       val set : 'Brr.Prop.t -> '-> 'Js.t -> unit       val checked : bool Brr.Prop.t       val id : Brr.Jstr.t Brr.Prop.t       val name : Brr.Jstr.t Brr.Prop.t       val title : Brr.Jstr.t Brr.Prop.t       val value : Brr.Jstr.t Brr.Prop.t     end   module Log :     sig       type level = Quiet | App | Error | Warning | Info | Debug       type ('a, 'b) msgf =           (?header:string ->            ('a, Format.formatter, unit, 'b) Pervasives.format4 -> 'a) ->           'b       type 'a log = ('a, unit) Brr.Log.msgf -> unit       val msg : Brr.Log.level -> 'Brr.Log.log       val app : 'Brr.Log.log       val err : 'Brr.Log.log       val warn : 'Brr.Log.log       val info : 'Brr.Log.log       val debug : 'Brr.Log.log       val kmsg : (unit -> 'b) -> Brr.Log.level -> ('a, 'b) Brr.Log.msgf -> 'b       type kmsg = {         kmsg :           ''b. (unit -> 'b) -> Brr.Log.level -> ('a, 'b) Brr.Log.msgf -> 'b;       }       val set_kmsg : Brr.Log.kmsg -> unit     end   module Debug :     sig       val enter : unit -> unit       val pp_obj : Format.formatter -> < .. > Js.t -> unit       val dump_obj : < .. > Js.t -> unit       val tick : Format.formatter -> '-> unit       val pr : ('a, Format.formatter, unit) Pervasives.format -> 'a       val trace : ?pp:(Format.formatter -> '-> unit) -> string -> '-> 'a       val etrace :         ?obs:bool ->         ?pp:(Format.formatter -> '-> unit) ->         string -> 'Note.event -> 'Note.event       val strace :         ?obs:bool ->         ?pp:(Format.formatter -> '-> unit) ->         string -> 'Note.signal -> 'Note.signal     end   module Time :     sig       type span = float       val elapsed : unit -> Brr.Time.span       val tick : Brr.Time.span -> Brr.Time.span Note.event       val delay : Brr.Time.span -> (unit -> unit) -> unit       type counter       val counter : unit -> Brr.Time.counter       val counter_value : Brr.Time.counter -> Brr.Time.span       val pp_s : Format.formatter -> Brr.Time.span -> unit       val pp_ms : Format.formatter -> Brr.Time.span -> unit       val pp_mus : Format.formatter -> Brr.Time.span -> unit     end   module Att :     sig       type name = Brr.Jstr.t       type t = Brr.Att.name * Brr.Jstr.t       val add_if : bool -> Brr.Att.t -> Brr.Att.t list -> Brr.Att.t list       val add_some :         Brr.Att.name -> Brr.Jstr.t option -> Brr.Att.t list -> Brr.Att.t list       module Name :         sig           val autofocus : Brr.Att.name           val checked : Brr.Att.name           val class' : Brr.Att.name           val disabled : Brr.Att.name           val for' : Brr.Att.name           val height : Brr.Att.name           val href : Brr.Att.name           val id : Brr.Att.name           val name : Brr.Att.name           val placeholder : Brr.Att.name           val src : Brr.Att.name           val tabindex : Brr.Att.name           val title : Brr.Att.name           val type' : Brr.Att.name           val value : Brr.Att.name           val width : Brr.Att.name         end       val autofocus : Brr.Att.t       val checked : Brr.Att.t       val class' : Brr.Jstr.t -> Brr.Att.t       val disabled : Brr.Att.t       val for' : Brr.Jstr.t -> Brr.Att.t       val height : int -> Brr.Att.t       val href : Brr.Jstr.t -> Brr.Att.t       val id : Brr.Jstr.t -> Brr.Att.t       val name : Brr.Jstr.t -> Brr.Att.t       val placeholder : Brr.Jstr.t -> Brr.Att.t       val src : Brr.Jstr.t -> Brr.Att.t       val tabindex : int -> Brr.Att.t       val title : Brr.Jstr.t -> Brr.Att.t       val type' : Brr.Jstr.t -> Brr.Att.t       val value : Brr.Jstr.t -> Brr.Att.t       val width : int -> Brr.Att.t     end   module El :     sig       type name = Brr.Jstr.t       type el       type t = [ `El of Brr.El.el ]       type child = [ `El of Brr.El.el | `Txt of Brr.Jstr.t ]       val v :         ?atts:Brr.Att.t list ->         Brr.El.name -> Brr.El.child list -> [> Brr.El.t ]       val el : Brr.El.t -> Dom_html.element Js.t       val tag_name : Brr.El.t -> Brr.Jstr.t       val find_id : Brr.Jstr.t -> [> Brr.El.t ] option       val find_class : Brr.Jstr.t -> [> Brr.El.t ] list       val document : unit -> [> Brr.El.t ]       val document_body : unit -> [> Brr.El.t ]       val document_active : unit -> [> Brr.El.t ] option       val set_children : Brr.El.t -> Brr.El.child list -> unit       val rset_children : Brr.El.t -> on:Brr.El.child list Note.event -> unit       val def_children : Brr.El.t -> Brr.El.child list Note.signal -> unit       val get_att : Brr.Att.name -> Brr.El.t -> Brr.Jstr.t option       val set_att : Brr.Att.name -> Brr.Jstr.t option -> Brr.El.t -> unit       val rset_att :         Brr.Att.name -> on:Brr.Jstr.t option Note.event -> Brr.El.t -> unit       val def_att :         Brr.Att.name -> Brr.Jstr.t option Note.signal -> Brr.El.t -> unit       val get_class : Brr.Jstr.t -> Brr.El.t -> bool       val set_class : Brr.Jstr.t -> bool -> Brr.El.t -> unit       val rset_class : Brr.Jstr.t -> on:bool Note.event -> Brr.El.t -> unit       val def_class : Brr.Jstr.t -> bool Note.signal -> Brr.El.t -> unit       val get_prop : 'Brr.Prop.t -> Brr.El.t -> 'a       val set_prop : 'Brr.Prop.t -> '-> Brr.El.t -> unit       val rset_prop : 'Brr.Prop.t -> on:'Note.event -> Brr.El.t -> unit       val def_prop : 'Brr.Prop.t -> 'Note.signal -> Brr.El.t -> unit       module Style :         sig           type prop = Brr.Jstr.t           val background_color : Brr.El.Style.prop           val color : Brr.El.Style.prop           val cursor : Brr.El.Style.prop           val display : Brr.El.Style.prop           val height : Brr.El.Style.prop           val visibility : Brr.El.Style.prop           val width : Brr.El.Style.prop         end       val get_computed_style : Brr.El.Style.prop -> Brr.El.t -> Brr.Jstr.t       val get_style : Brr.El.Style.prop -> Brr.El.t -> Brr.Jstr.t       val set_style :         ?important:bool ->         Brr.El.Style.prop -> Brr.Jstr.t -> Brr.El.t -> unit       val rset_style :         ?important:bool ->         Brr.El.Style.prop -> on:Brr.Jstr.t Note.event -> Brr.El.t -> unit       val def_style :         ?important:bool ->         Brr.El.Style.prop -> Brr.Jstr.t Note.signal -> Brr.El.t -> unit       val set_focus : bool -> Brr.El.t -> unit       val rset_focus : on:bool Note.event -> Brr.El.t -> unit       val def_focus : bool Note.signal -> Brr.El.t -> unit       val click : Brr.El.t -> unit       val select_txt : Brr.El.t -> unit       val on_add : (unit -> unit) -> Brr.El.t -> unit       val on_rem : (unit -> unit) -> Brr.El.t -> unit       val call :         ('-> Brr.El.t -> unit) -> on:'Note.event -> Brr.El.t -> unit       val hold_logr : Brr.El.t -> Note.Logr.t -> unit       val may_hold_logr : Brr.El.t -> Note.Logr.t option -> unit       module Name :         sig           val a : Brr.El.name           val abbr : Brr.El.name           val address : Brr.El.name           val area : Brr.El.name           val article : Brr.El.name           val aside : Brr.El.name           val audio : Brr.El.name           val b : Brr.El.name           val base : Brr.El.name           val bdi : Brr.El.name           val bdo : Brr.El.name           val blockquote : Brr.El.name           val body : Brr.El.name           val br : Brr.El.name           val button : Brr.El.name           val canvas : Brr.El.name           val caption : Brr.El.name           val cite : Brr.El.name           val code : Brr.El.name           val col : Brr.El.name           val colgroup : Brr.El.name           val command : Brr.El.name           val datalist : Brr.El.name           val dd : Brr.El.name           val del : Brr.El.name           val details : Brr.El.name           val dfn : Brr.El.name           val div : Brr.El.name           val dl : Brr.El.name           val dt : Brr.El.name           val em : Brr.El.name           val embed : Brr.El.name           val fieldset : Brr.El.name           val figcaption : Brr.El.name           val figure : Brr.El.name           val footer : Brr.El.name           val form : Brr.El.name           val h1 : Brr.El.name           val h2 : Brr.El.name           val h3 : Brr.El.name           val h4 : Brr.El.name           val h5 : Brr.El.name           val h6 : Brr.El.name           val head : Brr.El.name           val header : Brr.El.name           val hgroup : Brr.El.name           val hr : Brr.El.name           val html : Brr.El.name           val i : Brr.El.name           val iframe : Brr.El.name           val img : Brr.El.name           val input : Brr.El.name           val ins : Brr.El.name           val kbd : Brr.El.name           val keygen : Brr.El.name           val label : Brr.El.name           val legend : Brr.El.name           val li : Brr.El.name           val link : Brr.El.name           val map : Brr.El.name           val mark : Brr.El.name           val menu : Brr.El.name           val meta : Brr.El.name           val meter : Brr.El.name           val nav : Brr.El.name           val noscript : Brr.El.name           val object' : Brr.El.name           val ol : Brr.El.name           val optgroup : Brr.El.name           val option : Brr.El.name           val output : Brr.El.name           val p : Brr.El.name           val param : Brr.El.name           val pre : Brr.El.name           val progress : Brr.El.name           val q : Brr.El.name           val rp : Brr.El.name           val rt : Brr.El.name           val ruby : Brr.El.name           val s : Brr.El.name           val samp : Brr.El.name           val script : Brr.El.name           val section : Brr.El.name           val select : Brr.El.name           val small : Brr.El.name           val source : Brr.El.name           val span : Brr.El.name           val strong : Brr.El.name           val style : Brr.El.name           val sub : Brr.El.name           val summary : Brr.El.name           val sup : Brr.El.name           val table : Brr.El.name           val tbody : Brr.El.name           val td : Brr.El.name           val textarea : Brr.El.name           val tfoot : Brr.El.name           val th : Brr.El.name           val thead : Brr.El.name           val time : Brr.El.name           val title : Brr.El.name           val tr : Brr.El.name           val track : Brr.El.name           val u : Brr.El.name           val ul : Brr.El.name           val var : Brr.El.name           val video : Brr.El.name           val wbr : Brr.El.name         end       type 'a cons = ?atts:Brr.Att.t list -> Brr.El.child list -> 'a         constraint 'a = [> Brr.El.t ]       val a : [> Brr.El.t ] Brr.El.cons       val abbr : [> Brr.El.t ] Brr.El.cons       val address : [> Brr.El.t ] Brr.El.cons       val area : [> Brr.El.t ] Brr.El.cons       val article : [> Brr.El.t ] Brr.El.cons       val aside : [> Brr.El.t ] Brr.El.cons       val audio : [> Brr.El.t ] Brr.El.cons       val b : [> Brr.El.t ] Brr.El.cons       val base : [> Brr.El.t ] Brr.El.cons       val bdi : [> Brr.El.t ] Brr.El.cons       val bdo : [> Brr.El.t ] Brr.El.cons       val blockquote : [> Brr.El.t ] Brr.El.cons       val body : [> Brr.El.t ] Brr.El.cons       val br : [> Brr.El.t ] Brr.El.cons       val button : [> Brr.El.t ] Brr.El.cons       val canvas : [> Brr.El.t ] Brr.El.cons       val caption : [> Brr.El.t ] Brr.El.cons       val cite : [> Brr.El.t ] Brr.El.cons       val code : [> Brr.El.t ] Brr.El.cons       val col : [> Brr.El.t ] Brr.El.cons       val colgroup : [> Brr.El.t ] Brr.El.cons       val command : [> Brr.El.t ] Brr.El.cons       val datalist : [> Brr.El.t ] Brr.El.cons       val dd : [> Brr.El.t ] Brr.El.cons       val del : [> Brr.El.t ] Brr.El.cons       val details : [> Brr.El.t ] Brr.El.cons       val dfn : [> Brr.El.t ] Brr.El.cons       val div : [> Brr.El.t ] Brr.El.cons       val dl : [> Brr.El.t ] Brr.El.cons       val dt : [> Brr.El.t ] Brr.El.cons       val em : [> Brr.El.t ] Brr.El.cons       val embed : [> Brr.El.t ] Brr.El.cons       val fieldset : [> Brr.El.t ] Brr.El.cons       val figcaption : [> Brr.El.t ] Brr.El.cons       val figure : [> Brr.El.t ] Brr.El.cons       val footer : [> Brr.El.t ] Brr.El.cons       val form : [> Brr.El.t ] Brr.El.cons       val h1 : [> Brr.El.t ] Brr.El.cons       val h2 : [> Brr.El.t ] Brr.El.cons       val h3 : [> Brr.El.t ] Brr.El.cons       val h4 : [> Brr.El.t ] Brr.El.cons       val h5 : [> Brr.El.t ] Brr.El.cons       val h6 : [> Brr.El.t ] Brr.El.cons       val head : [> Brr.El.t ] Brr.El.cons       val header : [> Brr.El.t ] Brr.El.cons       val hgroup : [> Brr.El.t ] Brr.El.cons       val hr : [> Brr.El.t ] Brr.El.cons       val html : [> Brr.El.t ] Brr.El.cons       val i : [> Brr.El.t ] Brr.El.cons       val iframe : [> Brr.El.t ] Brr.El.cons       val img : [> Brr.El.t ] Brr.El.cons       val input : [> Brr.El.t ] Brr.El.cons       val ins : [> Brr.El.t ] Brr.El.cons       val kbd : [> Brr.El.t ] Brr.El.cons       val keygen : [> Brr.El.t ] Brr.El.cons       val label : [> Brr.El.t ] Brr.El.cons       val legend : [> Brr.El.t ] Brr.El.cons       val li : [> Brr.El.t ] Brr.El.cons       val link : [> Brr.El.t ] Brr.El.cons       val map : [> Brr.El.t ] Brr.El.cons       val mark : [> Brr.El.t ] Brr.El.cons       val menu : [> Brr.El.t ] Brr.El.cons       val meta : [> Brr.El.t ] Brr.El.cons       val meter : [> Brr.El.t ] Brr.El.cons       val nav : [> Brr.El.t ] Brr.El.cons       val noscript : [> Brr.El.t ] Brr.El.cons       val object' : [> Brr.El.t ] Brr.El.cons       val ol : [> Brr.El.t ] Brr.El.cons       val optgroup : [> Brr.El.t ] Brr.El.cons       val option : [> Brr.El.t ] Brr.El.cons       val output : [> Brr.El.t ] Brr.El.cons       val p : [> Brr.El.t ] Brr.El.cons       val param : [> Brr.El.t ] Brr.El.cons       val pre : [> Brr.El.t ] Brr.El.cons       val progress : [> Brr.El.t ] Brr.El.cons       val q : [> Brr.El.t ] Brr.El.cons       val rp : [> Brr.El.t ] Brr.El.cons       val rt : [> Brr.El.t ] Brr.El.cons       val ruby : [> Brr.El.t ] Brr.El.cons       val s : [> Brr.El.t ] Brr.El.cons       val samp : [> Brr.El.t ] Brr.El.cons       val script : [> Brr.El.t ] Brr.El.cons       val section : [> Brr.El.t ] Brr.El.cons       val select : [> Brr.El.t ] Brr.El.cons       val small : [> Brr.El.t ] Brr.El.cons       val source : [> Brr.El.t ] Brr.El.cons       val span : [> Brr.El.t ] Brr.El.cons       val strong : [> Brr.El.t ] Brr.El.cons       val style : [> Brr.El.t ] Brr.El.cons       val sub : [> Brr.El.t ] Brr.El.cons       val summary : [> Brr.El.t ] Brr.El.cons       val sup : [> Brr.El.t ] Brr.El.cons       val table : [> Brr.El.t ] Brr.El.cons       val tbody : [> Brr.El.t ] Brr.El.cons       val td : [> Brr.El.t ] Brr.El.cons       val textarea : [> Brr.El.t ] Brr.El.cons       val tfoot : [> Brr.El.t ] Brr.El.cons       val th : [> Brr.El.t ] Brr.El.cons       val thead : [> Brr.El.t ] Brr.El.cons       val time : [> Brr.El.t ] Brr.El.cons       val title : [> Brr.El.t ] Brr.El.cons       val tr : [> Brr.El.t ] Brr.El.cons       val track : [> Brr.El.t ] Brr.El.cons       val u : [> Brr.El.t ] Brr.El.cons       val ul : [> Brr.El.t ] Brr.El.cons       val var : [> Brr.El.t ] Brr.El.cons       val video : [> Brr.El.t ] Brr.El.cons       val wbr : [> Brr.El.t ] Brr.El.cons     end   module Ev :     sig       type 'a target = 'Js.t constraint 'a = #Dom_html.eventTarget       type 'a kind = 'Js.t Dom_html.Event.typ         constraint 'a = #Dom_html.event       type 'a t = 'Js.t constraint 'a = #Dom_html.event       val for_target :         ?capture:bool ->         ?propagate:bool ->         ?default:bool ->         #Dom_html.eventTarget Brr.Ev.target ->         (#Dom_html.event as 'a) Brr.Ev.kind ->         ('Brr.Ev.t -> 'c) -> 'Note.event       val for_targets :         ?capture:bool ->         ?propagate:bool ->         ?default:bool ->         (#Dom_html.eventTarget as 'a) Brr.Ev.target list ->         (#Dom_html.event as 'b) Brr.Ev.kind ->         ('Brr.Ev.target -> 'Brr.Ev.t -> 'c) -> 'Note.event       val for_el :         ?capture:bool ->         ?propagate:bool ->         ?default:bool ->         Brr.El.t ->         (#Dom_html.event as 'a) Brr.Ev.kind ->         ('Brr.Ev.t -> 'c) -> 'Note.event       val for_els :         ?capture:bool ->         ?propagate:bool ->         ?default:bool ->         Brr.El.t list ->         (#Dom_html.event as 'a) Brr.Ev.kind ->         (Brr.El.t -> 'Brr.Ev.t -> 'c) -> 'Note.event       val ev : (#Dom_html.event as 'a) Brr.Ev.t -> 'Brr.Ev.t       val unit : #Dom_html.event Brr.Ev.t -> unit       val stamp : '-> #Dom_html.event Brr.Ev.t -> 'a       type cb       type cb_ret       val add_cb :         ?capture:bool ->         (#Dom_html.eventTarget as 'a) Brr.Ev.target ->         (#Dom_html.event as 'b) Brr.Ev.kind ->         ('Brr.Ev.target -> 'Brr.Ev.t -> Brr.Ev.cb_ret) -> Brr.Ev.cb       val rem_cb : Brr.Ev.cb -> unit       val cb_ret :         ?propagate:bool ->         ?default:bool -> #Dom_html.event Brr.Ev.t -> Brr.Ev.cb_ret       val kind : string -> #Dom_html.event Brr.Ev.kind       val abort : Dom_html.event Brr.Ev.kind       val afterprint : Dom_html.event Brr.Ev.kind       val beforeprint : Dom_html.event Brr.Ev.kind       val beforeunload : Dom_html.event Brr.Ev.kind       val blur : Dom_html.event Brr.Ev.kind       val cached : Dom_html.event Brr.Ev.kind       val change : Dom_html.event Brr.Ev.kind       val click : Dom_html.event Brr.Ev.kind       val dblclick : Dom_html.event Brr.Ev.kind       val domContentLoaded : Dom_html.event Brr.Ev.kind       val error : Dom_html.event Brr.Ev.kind       val focus : Dom_html.event Brr.Ev.kind       val hashchange : Dom_html.event Brr.Ev.kind       val input : Dom_html.event Brr.Ev.kind       val invalid : Dom_html.event Brr.Ev.kind       val keydown : Dom_html.keyboardEvent Brr.Ev.kind       val keypress : Dom_html.keyboardEvent Brr.Ev.kind       val keyup : Dom_html.keyboardEvent Brr.Ev.kind       val load : Dom_html.event Brr.Ev.kind       val message : Dom_html.event Brr.Ev.kind       val mousedown : Dom_html.mouseEvent Brr.Ev.kind       val mouseenter : Dom_html.mouseEvent Brr.Ev.kind       val mouseleave : Dom_html.mouseEvent Brr.Ev.kind       val mousemove : Dom_html.mouseEvent Brr.Ev.kind       val mouseout : Dom_html.mouseEvent Brr.Ev.kind       val mouseover : Dom_html.mouseEvent Brr.Ev.kind       val mouseup : Dom_html.mouseEvent Brr.Ev.kind       val offline : Dom_html.event Brr.Ev.kind       val online : Dom_html.event Brr.Ev.kind       val pagehide : Dom_html.event Brr.Ev.kind       val pageshow : Dom_html.event Brr.Ev.kind       val popstate : Dom_html.event Brr.Ev.kind       val progress : Dom_html.event Brr.Ev.kind       val readystatechange : Dom_html.event Brr.Ev.kind       val reset : Dom_html.event Brr.Ev.kind       val resize : Dom_html.event Brr.Ev.kind       val submit : Dom_html.event Brr.Ev.kind       val unload : Dom_html.event Brr.Ev.kind     end   module Key :     sig       type code = int       type t =           [ `Alt of [ `Left | `Right ]           | `Arrow of [ `Down | `Left | `Right | `Up ]           | `Ascii of Char.t           | `Backspace           | `Ctrl of [ `Left | `Right ]           | `End           | `Enter           | `Escape           | `Func of int           | `Home           | `Insert           | `Key of Brr.Key.code           | `Meta of [ `Left | `Right ]           | `Page of [ `Down | `Up ]           | `Return           | `Shift of [ `Left | `Right ]           | `Spacebar           | `Tab ]       val of_ev : Dom_html.keyboardEvent Brr.Ev.t -> Brr.Key.t       val equal : Brr.Key.t -> Brr.Key.t -> bool       val compare : Brr.Key.t -> Brr.Key.t -> int       val pp : Format.formatter -> Brr.Key.t -> unit       type events       val for_target :         ?capture:bool ->         ?propagate:bool ->         ?default:bool ->         #Dom_html.eventTarget Brr.Ev.target -> Brr.Key.events       val for_el :         ?capture:bool ->         ?propagate:bool -> ?default:bool -> Brr.El.t -> Brr.Key.events       val any_down : Brr.Key.events -> Brr.Key.t Note.event       val any_up : Brr.Key.events -> Brr.Key.t Note.event       val any_holds : Brr.Key.events -> bool Note.signal       val down : Brr.Key.events -> Brr.Key.t -> unit Note.event       val up : Brr.Key.events -> Brr.Key.t -> unit Note.event       val holds : Brr.Key.events -> Brr.Key.t -> bool Note.signal       val alt : Brr.Key.events -> bool Note.signal       val ctrl : Brr.Key.events -> bool Note.signal       val meta : Brr.Key.events -> bool Note.signal       val shift : Brr.Key.events -> bool Note.signal     end   module Mouse :     sig       val pt : float -> float -> float * float       type 'a events       val for_target :         ?capture:bool ->         ?propagate:bool ->         ?default:bool ->         ?normalize:bool ->         #Dom_html.eventTarget Brr.Ev.target ->         (float -> float -> 'a) -> 'Brr.Mouse.events       val for_el :         ?capture:bool ->         ?propagate:bool ->         ?default:bool ->         ?normalize:bool ->         Brr.El.t -> (float -> float -> 'a) -> 'Brr.Mouse.events       val destroy : 'Brr.Mouse.events -> unit       val pos : 'Brr.Mouse.events -> 'Note.signal       val dpos : 'Brr.Mouse.events -> 'Note.event       val mem : 'Brr.Mouse.events -> bool Note.signal       val left : 'Brr.Mouse.events -> bool Note.signal       val left_down : 'Brr.Mouse.events -> 'Note.event       val left_up : 'Brr.Mouse.events -> 'Note.event       val mid : 'Brr.Mouse.events -> bool Note.signal       val mid_down : 'Brr.Mouse.events -> 'Note.event       val mid_up : 'Brr.Mouse.events -> 'Note.event       val right : 'Brr.Mouse.events -> bool Note.signal       val right_down : 'Brr.Mouse.events -> 'Note.event       val right_up : 'Brr.Mouse.events -> 'Note.event     end   module Human :     sig       val noticed : Brr.Time.span       val interrupted : Brr.Time.span       val left : Brr.Time.span       val feel : unit -> [ `Interacting | `Interrupted | `Left ] Note.signal       val touch_target_size : float       val touch_target_size_min : float       val touch_target_pad : float       val average_finger_width : float     end   module App :     sig       val env : string -> default:'-> (string -> 'a) -> 'a       val fullscreen_available : bool       val request_fullscreen : Brr.El.t -> unit       val exit_fullscreen : unit -> unit       val is_fullscreen : bool Note.signal       val quit : unit Note.event       val run : ?name:string -> (unit -> unit) -> unit     end   module Win :     sig       type t = Dom_html.window Js.t       val dow : Brr.Win.t       val device_pixel_ratio : Brr.Win.t -> float       val print : Brr.Win.t -> unit     end   module Loc :     sig       val uri : unit -> Brr.Jstr.t       val scheme : unit -> Brr.Jstr.t       val host : unit -> Brr.Jstr.t       val port : unit -> int option       val path : unit -> Brr.Jstr.t       val query : unit -> Brr.Jstr.t       val fragment : unit -> Brr.Jstr.t       val set_fragment : Brr.Jstr.t -> unit       val update :         ?scheme:Brr.Jstr.t ->         ?host:Brr.Jstr.t ->         ?port:int option ->         ?path:Brr.Jstr.t ->         ?query:Brr.Jstr.t -> ?fragment:Brr.Jstr.t -> unit -> unit       val hashchange : Brr.Jstr.t Note.event       val set : ?replace:bool -> Brr.Jstr.t -> unit       val reload : unit -> unit     end   module History :     sig       val length : unit -> int       val go : int -> unit       val back : unit -> unit       val forward : unit -> unit       type 'a state       val create_state : version:Brr.Jstr.t -> '-> 'Brr.History.state       val state : version:Brr.Jstr.t -> default:'-> unit -> 'a       val push :         ?replace:bool ->         ?state:'Brr.History.state -> title:Brr.Jstr.t -> Brr.Jstr.t -> unit     end   module Info : sig val languages : unit -> Brr.Jstr.t list end   module Store :     sig       type scope = [ `Persist | `Session ]       val support : Brr.Store.scope -> bool       type 'a key       val key : ?ns:Brr.Jstr.t -> unit -> 'Brr.Store.key       val mem : ?scope:Brr.Store.scope -> 'Brr.Store.key -> bool       val add : ?scope:Brr.Store.scope -> 'Brr.Store.key -> '-> unit       val rem : ?scope:Brr.Store.scope -> 'Brr.Store.key -> unit       val find : ?scope:Brr.Store.scope -> 'Brr.Store.key -> 'a option       val get :         ?scope:Brr.Store.scope -> ?absent:'-> 'Brr.Store.key -> 'a       val clear : ?scope:Brr.Store.scope -> unit -> unit       val force_version : ?scope:Brr.Store.scope -> string -> unit     end   module File :     sig       type t       val name : Brr.File.t -> Brr.Jstr.t       val size : Brr.File.t -> int       val last_modified_ms : Brr.File.t -> int       val type' : Brr.File.t -> Brr.Jstr.t       val list_of_el : Brr.El.t -> Brr.File.t list       module Read :         sig           type progress           val bytes_read : Brr.File.Read.progress -> int           val bytes_total : Brr.File.Read.progress -> int option           type error =               [ `Aborted               | `Not_found               | `Not_readable               | `Other of string               | `Security ]           val pp_error : Format.formatter -> Brr.File.Read.error -> unit           type file = Brr.File.t           type 'a t           val to_data_url : Brr.File.Read.file -> Brr.Jstr.t Brr.File.Read.t           val abort : 'Brr.File.Read.t -> unit           val result :             'Brr.File.Read.t ->             (Brr.File.Read.file * ('a, Brr.File.Read.error) Pervasives.result)             Note.event           val progress :             'Brr.File.Read.t ->             (Brr.File.Read.file * Brr.File.Read.progress) Note.event         end     end end