The mobile abstraction followed by an example of how to construct a mobile (feel free to use this for testing)
; First, the mobile and branch abstractions:
(define make-mobile cons)
(define left-branch car)
(define right-branch cdr)
(define make-branch cons)
(define len car)
(define struct cdr)
(define weight? number?)
(define mobile? pair?)
; Here is a test mobile so we can have a sample input to the
; programs, below. Note that we must adhere to the abstractions.
(define m
(make-mobile
(make-branch 6
(make-mobile
(make-branch 1 8)
(make-branch 4 2)))
(make-branch 5 12)))