UNB/ CS/ David Bremner/ teaching/ cs4613/ lectures/ lecture13/ bt4.rkt
#lang plait
(define-type BT
  [mt]
  [node (v : Number) (l : BT) (r : BT)])

(define (size-pm-ds (t : BT))
  (cond
    [(mt? t) 0]
    [(node? t)
     (let ([v (node-v t)]
           [l (node-l t)]
           [r (node-r t)])
       (+ 1 (+ (size-pm-ds l) (size-pm-ds r))))]))

(size-pm-ds (node 42
                  (mt)
                  (node 66 (mt) (mt))))