# `Statifier.Document.Cancel`
[🔗](https://github.com/riddler/statifier-ex/blob/v2.0.0/lib/statifier/document/cancel.ex#L1)

A `<cancel>` element: spec 6.3's instruction to cancel a delayed `<send>`.

Both `sendid` and `sendidexpr` are nonetheless simultaneously
representable here, on purpose, mirroring `Statifier.Document.Send`'s own
moduledoc: 6.3.1 says exactly one of the two must occur, and
`Statifier.Validator.Checks.Cancel` reports the shape rather than
lowering refusing to build it.

`<cancel>` is executable content, exactly as `<send>` is: it is tagged
`{:content_node, cancel}` by `Statifier.Lowering.Builders.build_cancel/2`
and lands in a block's own `content` list through the placement clauses
every other content node already uses, rather than through a dedicated
state-level slot. Unlike `<send>`, it has no children of its own.

# `t`

```elixir
@type t() :: %Statifier.Document.Cancel{
  attribute_locations: Statifier.Document.attribute_locations(),
  location: Statifier.Parser.Location.t(),
  sendid: String.t() | nil,
  sendidexpr: String.t() | nil
}
```

---

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