### Parameters

`Row : Row with module State := State`
`State : State`

### Signature

`module State = State`
`module Row = Row`
`module Mode : sig ... end`
`module Table_widget : Table.S with type Row_id.t = Row.Id.t and type Column_id.t = Mesa_column.Id.t`
`module Model : sig ... end`
`module Derived_model : sig ... end`
`module Model_summary : sig ... end`
`module Action : sig ... end`
`val key_handler : Mode.t ‑> focus:(Row.Id.t * Row.t) option ‑> inject:(Action.t ‑> Incr_dom_widgets__.Import.Vdom.Event.t) ‑> Incr_dom_widgets__.Import.Dom_html.keyboardEvent Incr_dom_widgets__.Import.Js.t ‑> Incr_dom_widgets__.Import.Vdom.Event.t`
`val apply_action : Action.t ‑> Model.t ‑> State.t ‑> recompute_derived:(Model.t ‑> Derived_model.t) ‑> report_error:(Row.action_error ‑> unit Async_kernel.Deferred.t) ‑> Model.t Core_kernel.Or_error.t`
`val update_visibility : Model.t ‑> Derived_model.t ‑> Model.t`
`val on_display : old:Model_summary.t ‑> Model.t ‑> Derived_model.t ‑> unit`
`val view : Model.t Incr_dom_widgets__.Import.Incr.t ‑> Derived_model.t Incr_dom_widgets__.Import.Incr.t ‑> inject:(Action.t ‑> Incr_dom_widgets__.Import.Vdom.Event.t) ‑> attrs:Incr_dom_widgets__.Import.Vdom.Attr.t list ‑> header:Incr_dom_widgets__.Import.Vdom.Node.t ‑> Incr_dom_widgets__.Import.Vdom.Node.t Incr_dom_widgets__.Import.Incr.t`