pub fn effect(ctx: Context, effect_fn: fn() -> Option(fn() -> Nil), trigger: HookTrigger, cb: fn(Context) -> #(Context, List(Element))) -> #(Context, List(Element))