Minimal I/O: write/1 writeln/1 print/1 nl/0 -- canonical
functor(args) text via Episteme.Term.to_text/1 (no operator-aware
pretty-printing yet) -- plus format/1,2, a directive-based
formatter over the same to_text/1 rendering. Each succeeds exactly
once, side effect aside.
format/2's own directive set is deliberately a practical subset,
not ISO/SWI's full one -- no column/radix directives (~t, ~|,
~Nr, ...), no numeric-prefixed ~Nd (SWI's "insert a decimal point
N digits from the right"). ~w/~p/~q are all the same thing here
(to_text/1), since there's no operator-aware or quoted writer to
tell them apart with yet -- see write/1's own note above.
Summary
Functions
@spec dispatch(atom(), non_neg_integer(), [term()]) :: Ichor.Backtrack.goal() | :not_handled