# `GEPA.Callbacks.Composite`
[🔗](https://github.com/nshkrdotcom/gepa_ex/blob/v0.3.0/lib/gepa/callbacks.ex#L109)

Callback container that forwards events to each registered callback.

# `t`

```elixir
@type t() :: %GEPA.Callbacks.Composite{callbacks: [GEPA.Callbacks.callback()]}
```

# `add`

```elixir
@spec add(t(), GEPA.Callbacks.callback()) :: t()
```

Return a composite with one callback appended.

# `new`

```elixir
@spec new([GEPA.Callbacks.callback()]) :: t()
```

Create a composite callback.

# `on_budget_updated`

# `on_candidate_accepted`

# `on_candidate_rejected`

# `on_candidate_selected`

# `on_error`

# `on_evaluation_end`

# `on_evaluation_skipped`

# `on_evaluation_start`

# `on_iteration_end`

# `on_iteration_start`

# `on_merge_accepted`

# `on_merge_attempted`

# `on_merge_rejected`

# `on_minibatch_sampled`

# `on_optimization_end`

# `on_optimization_start`

# `on_pareto_front_updated`

# `on_proposal_end`

# `on_proposal_start`

# `on_reflective_dataset_built`

# `on_state_saved`

# `on_valset_evaluated`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
