Type Systems: Sample Polymorphic Type Reconstruction, cont.
Tree7: Tree6, length:?? .? -list?int | length: ?8-list?int [?8 = bool ]
length:?? .? -list?int | (length (cons true null)):int
Tree8: Tree5, Tree7, length:?? .? -list?int | +: int ?int?int
length:?? .? -list?int | (+ (length (cons 1 null)) (length (cons true null))): int
? | (let length := (?x. (if (null? x) then 0 else (+ 1 (length (rest x))))) in (+ (length (cons 1 null)) (length (cons true null)))):int