-record(effect, { id :: sprocket@internal@utils@unique:unique(), effect :: fun(() -> gleam@option:option(fun(() -> nil))), trigger :: sprocket@context:hook_trigger(), prev :: gleam@option:option(sprocket@context:effect_result()) }).