/// without using recursion, as such avoiding system stack overflows. See [TermBuilder::evaluate]
G: Fn(&ThreadTermPool, C, std::iter::Flatten<std::slice::Iter<Option<ATerm>>>) -> Result<ATerm, MercError>,
Construct(C), // Yield f(args) for every arg push to the argument stack, with the transformer applied to it.
fn new(terms: &'a mut Vec<Option<ATerm>>, configs: &'a mut Vec<Config<I, C>>) -> ArgStack<'a, I, C> {
/// Adds the term to the argument stack, will construct construct(C, args...) with the transformer applied to arguments.