Converts named Theoria.Syntax terms to de Bruijn-indexed Theoria.Term terms.
The elaborator is a convenience layer. It is intentionally untrusted: callers
still need to pass elaborated terms through Theoria.Kernel.
Summary
Types
@type result() :: {:ok, Theoria.Term.t()} | {:error, Theoria.Error.t()}
Functions
@spec elaborate(Theoria.Syntax.t()) :: result()
@spec elaborate(Theoria.Syntax.t(), [atom()]) :: result()
@spec elaborate!(Theoria.Syntax.t()) :: Theoria.Term.t()