1\DOC
2
3\TYPE {list_mk_icomb : term * term list -> term}
4
5\SYNOPSIS
6Folds {mk_icomb} over a series of arguments.
7
8\DESCRIBE
9A call to {list_mk_icomb(f,args)} combines {f} with each of the
10elements of the list {args} in turn, moving from left to right.  If
11{args} is empty, then the result is simply {f}.  When {args} is
12non-empty, the growing application-term is created with successive
13calls to {mk_icomb}, possibly causing type variables in any of the
14terms to become instantiated.
15
16\FAILURE
17Fails if any of the underlying calls to {mk_icomb} fails, which will
18occur if the type of the accumulating term (starting with {f}) is not
19of a function type, or if it has a domain type that can not be
20instantiated to equal the type of the next argument term.
21
22\COMMENTS
23{list_mk_icomb} is to {mk_icomb} what {list_mk_comb} is to {mk_comb}.
24
25\SEEALSO
26Term.list_mk_comb, Term.mk_comb, boolSyntax.mk_icomb.
27
28\ENDDOC
29