# `KinoIsabelle.Messages`
[🔗](https://github.com/jcschuster/kino_isabelle/blob/v0.1.0-alpha.1/lib/kino_isabelle/messages.ex#L1)

Normalises `use_theories` messages to `%{kind, text, from, to}` with cell
offsets, and buckets them by command span.

# `message`

```elixir
@type message() :: %{
  kind: :error | :warning | :writeln,
  text: String.t(),
  from: non_neg_integer(),
  to: non_neg_integer()
}
```

# `bucket`

Groups messages by the command span they start in. Returns the non-empty
spans in order, each with its 1-based line and the command's first line.

# `normalize`

Messages of a finished `use_theories` result, or of a failed task (an error in
the theory header), ordered by position.

Errors reported for other files (imported theories) are kept without position.

---

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