pub type Updater(msg) = fn(msg) -> Nil
pub fn reducer(ctx: Context, initial: a, reducer: fn(a, b) -> a, cb: fn( Context, a, fn(b) -> Nil, ) -> #(Context, List(Element))) -> #(Context, List(Element))