let t12 = (make\_list t1 (make\_list t2 empty)) in
let t23 = (make\_list t2 (make\_list t3 empty)) in
let ta = (make\_list t1 t23) in
-let tb = (make\_list t12 t3) in
+let tb = (make\_list t12 (make\_list t3 empty)) in
let tc = (make\_list t1 (make\_list t23 empty)) in
;
;sum-leaves t1 ; ~~> 1
;sum-leaves t23 ; ~~> 5
;sum-leaves ta ; ~~> 6
;sum-leaves tb ; ~~> 6
+;sum-leaves tc ; ~~> 6
;
-length (tail mylist)
+let add = \l r. l succ r in
+let fold = Y (\f g l z. isempty l z (g (head l)(f g (tail l) z))) in
+;
+; hint:
+fold add mylist 0
</textarea>
<input id="PARSE" value="Normalize" type="button">