8 POINTS

Problem$^a$ 5.  

Abstract these two data definitions into one:

(define-struct node (left right))

;; An STree is one of:
;; -- String
;; -- (make-node STree STree)

;; An BTree is one of:
;; -- Boolean 
;; -- (make-node BTree BTree)

Solution

;; [PT 1 -- totally correct]
;; A Tree[X] is one of:
;; -- X
;; -- (make-node Tree[X] Tree[X])