#lang typed/racket (define-type-alias BT (U mt node)) (struct mt ()) (struct node ([v : Number] [l : BT] [r : BT]))