(define (s)
  (cond [(p?) (begin (a) (b))]
	[(q?) (begin (c) (d))]
	[else (begin (e) (f))]))

;;------ add action call wherever value returned -------

(define (s/script action)
  (cond [(p?) (begin (a) (action (b)))]
	[(q?) (begin (c) (action (d)))]
	[else (begin (e) (action (f)))]))

;;------ moving p? -------------------------------

(define (s/script action)
  (p?/script
   (lambda (hole)
     (cond [hole (begin (a) (action (b)))]
	   [(q?) (begin (c) (action (d)))]
	   [else (begin (e) (f))]))))

;;------- moving a ------------------------------

(define (s/script action)
  (cond [(p?) (a/script (lambda (hole) (begin hole (action b))))]
	[(q?) (begin (c) (action (d)))]
	[else (begin (e) (f))]))

;;------- moving b ------------------------------

(define (s/script action)
  (cond [(p?) (begin (a) (b/script (lambda (hole) (action hole))))]
	[(q?) (begin (c) (action (d)))]
	[else (begin (e) (action (f)))]))

;;------- moving q? ------------------------------

(define (s/script action)
  (cond [(p?) (begin (a) (action (b)))]
	[else (q?/script (lambda (hole)
			   (cond [hole (begin (c) (action (d)))]
				 [else (begin (e) (action (f)])))))]))

;; c, d, and e, f similar to a, b (staying inside lambda)
