#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))))