Font "Courier New" cls Module Checkit { t=(((1,2), (3,4,1),5),) ' use (1,) for one item tuple Tuple$ = lambda$ (a, feed$=" ") -> { \\ we can pass a tuple of two arguments or two arguments k=each(a) lim=len(a)-1 res$="(" link a to a() ' to use type$() while k { if type$(a(k^))="mArray" then res$+=Lambda$(array(a, k^),feed$+" ") if k^{ k=each(a) link a to a() res=0 while k { if type$(a(k^))="mArray" then res+=Lambda(a(k^)) else res++ end if } =res } Payload = lambda (a,payloads as list)->{ misspayloads=List used=list inner=lambda misspayloads, p=1, payloads, used (a)-> { k=each(a) res=(,) link a to a() while k { if type$(a(k^))="mArray" then Append res, (Lambda(a(k^)),) else curpayload$="Payload#"+trim$(str$(array(k))) if not exist(payloads, curpayload$) Then if not exist(used, curpayload$) Then Append res, ("missing#pos"+trim$(str$(p)),) append misspayloads, p:=curpayload$ else Append res, (curpayload$,) End if p++ else Append res, (curpayload$,) if exist(payloads, curpayload$) then delete payloads, curpayload$ if not exist(used, curpayload$) then append used, curpayload$ end if p++ end if end if } =res } =inner(a), payloads, misspayloads } Expand$ =lambda$ (a as array, unused as list, misspayloads as list)-> { Read ? space$ inner$= lambda$ (a, feed$=" ")->{ k=each(a) lim=len(a)-1 res$="[" link a to a() ' to use type$() while k { if type$(a(k^))="mArray" then res$+=Lambda$(array(a, k^),feed$+" ") if k^0 then un=each(unused) while un { unused$=" "+eval$(un)+{ } } else unused$=" -" end if if len(misspayloads)>0 then un=each(misspayloads) lim=len(misspayloads)-1 document missing$="Missing in position: "+{ } while un { missing$=" "+eval$(un)+"-pos"+eval$(un,un^)+{ } } =inner$(a, space$)+{ }+unused$+missing$ Else =inner$(a, space$)+{ } + unused$ End if } flush Data t, (((1,10), (3,4,16),5),) While not empty { Read t Document result$="Payloads:"+{ } p=list for i=0 to 6 { Append p, "Payload#"+trim$(str$(i)) result$=" "+eval$(p, i)+{ } } result$="Template:"+{ } result$=" "+Tuple$(t, " ")+{ } result$="Template with Payloads:"+{ } m=Payload(t, p) result$=" "+Expand$(!m, " ") clipboard result$ } } Checkit Report clipboard$