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