class interior_node extends object { field left; field right; method initialize (l, r) { left = l; right = r; return 0; } method sum () { return (add send left.sum() send right.sum()); } } class leaf_node extends object { field value; method initialize (v) { value = v; return 0; } method sum () { return value; } } print (let ((o1 new interior_node( new interior_node( new leaf_node(3), new leaf_node(4)), new leaf_node(5)))) send o1.sum()) // Should sum to 12.