mk_anylet : (term * term) list * term -> term
LET (...(LET (\an ...\a1. N) bn) ...) b1
- strip_comb (mk_anylet ([(Term`x`, Term`M`)], Term`N x`)); > val it = (`LET`, [`\x. N x`, `M`]) : term * term list - mk_anylet ([(``f (x:'a,y:'b):'c``, ``M:'c``), (``g (z:'c) :'d``, ``N:'d``)], ``g (f (a:'a,b:'b):'c):'d`); > val it = ``let f (x,y) = M and g z = N in g (f (a,b))`` : term