A Tempo-valued set — either all-of ({a, b, c} in ISO
8601-2, free/busy semantics) or one-of ([a, b, c],
epistemic disjunction — "it was one of these, I don't know
which").
type carries that distinction. Set operations flatten an
all-of %Tempo.Set{} into an IntervalSet; a one-of set is
refused because asserting every member happened contradicts
the user's intent.
Summary
Types
@type t() :: %Tempo.Set{set: [Tempo.t()], type: :all | :one}