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