[SCM] snd/master: New upstream version 17

umlaeute at users.alioth.debian.org umlaeute at users.alioth.debian.org
Mon Oct 31 09:54:17 UTC 2016


The following commit has been merged in the master branch:
commit 776255b6ac4c65cafad6a4d5f03380895d31ea96
Author: IOhannes m zmölnig <zmoelnig at umlautQ.umlaeute.mur.at>
Date:   Mon Oct 31 00:24:03 2016 +0100

    New upstream version 17

diff --git a/COPYING b/COPYING
index ddcaecf..4a99b5b 100644
--- a/COPYING
+++ b/COPYING
@@ -1,5 +1,6 @@
 Snd is a sound editor written by Bill Schottstaedt (bil at ccrma.stanford.edu).
-Except where otherwise noted, it is Copyright 1996-2016 Bill Schottstaedt.
+Except where otherwise noted, it is Copyright 1996-2006 The Board of Trustees 
+of Stanford University.	
 
 
 
diff --git a/README.Snd b/README.Snd
index 1dc7a6d..4699274 100644
--- a/README.Snd
+++ b/README.Snd
@@ -4,11 +4,11 @@ Snd is a sound editor.  It currently runs on nearly all
 Unix-based systems, including Mac OSX and Cygwin.
 To build Snd, get the sources from
 
-  ftp://ccrma-ftp.stanford.edu/pub/Lisp/snd-16.tar.gz
+  ftp://ccrma-ftp.stanford.edu/pub/Lisp/snd-17.tar.gz
 
-  gzip -d snd-16.tar.gz
-  tar xf snd-16.tar
-  cd snd-16
+  gzip -d snd-17.tar.gz
+  tar xf snd-17.tar
+  cd snd-17
   ./configure
   make
 
diff --git a/animals.scm b/animals.scm
index edb019d..06d846e 100644
--- a/animals.scm
+++ b/animals.scm
@@ -234,7 +234,7 @@
 
 (set! *clm-default-frequency* 0.0)
 
-(define-macro (defanimal args . body)
+(define-macro (define-animal args . body)
   (let ((name (car args))
 	(targs (cdr args)))
   `(begin 
@@ -247,7 +247,7 @@
            (list)))))
 
 #|
-(define-macro (defanimal args . body)
+(define-macro (define-animal args . body)
   (let ((name (car args))
 	(targs (cdr args)))
   `(begin
@@ -431,7 +431,7 @@
 ;;;
 ;;; Knudsen's frog
 
-(defanimal (a-frog beg dur freq amp amp-env gliss gliss-env pulse-dur pulse-env fm-index fm-freq)
+(define-animal (a-frog beg dur freq amp amp-env gliss gliss-env pulse-dur pulse-env fm-index fm-freq)
   (let ((start (seconds->samples beg))
 	(stop (seconds->samples (+ beg dur)))
 	(base (make-oscil freq))
@@ -474,7 +474,7 @@
 	  0.0 10))
 |#
 
-(defanimal (a-cricket beg dur freq freq1 amp amp-env pulse-dur pulse-env)
+(define-animal (a-cricket beg dur freq freq1 amp amp-env pulse-dur pulse-env)
   (let ((start (seconds->samples beg))
 	(stop (seconds->samples (+ beg dur)))
 	(base (make-oscil freq))
@@ -497,7 +497,7 @@
 ;;; Oak Toad
 ;;;   might be slightly too much noise (the peep I worked on turned out to be a raspy one)
 
-(defanimal (oak-toad beg amp)
+(define-animal (oak-toad beg amp)
   (let ((dur .15)
 	(start (seconds->samples beg)))
     (let ((stop (seconds->samples (+ beg dur)))
@@ -527,7 +527,7 @@
 ;;;
 ;;; Southern cricket frog
 
-(defanimal (southern-cricket-frog beg amp)
+(define-animal (southern-cricket-frog beg amp)
   (let ((dur1 .03)
 	(start (seconds->samples beg)))
     (let ((stop (seconds->samples (+ beg dur1)))
@@ -554,7 +554,7 @@
 ;;;
 ;;; Northern leopard frog (2)
 
-(defanimal (northern-leopard-frog-1 beg amp)
+(define-animal (northern-leopard-frog-1 beg amp)
   ;; this is slightly low-passed, and I don't quite have the vowel right at the end
   (let ((dur 4.2))
     (let ((start (seconds->samples beg))
@@ -614,7 +614,7 @@
 ;; (with-sound (:statistics #t :play #t) (northern-leopard-frog-1 0 .5))
 
 
-(defanimal (northern-leopard-frog-2 beg amp)
+(define-animal (northern-leopard-frog-2 beg amp)
   ;; rocky 57 2
   (let ((start (seconds->samples beg))
 	(dur 1.53)
@@ -711,7 +711,7 @@
 ;;;
 ;;; Green tree-frog
 
-(defanimal (green-tree-frog beg amp)
+(define-animal (green-tree-frog beg amp)
   (let ((dur 0.2)
 	(pitch 277)
 	(start (seconds->samples beg)))
@@ -743,7 +743,7 @@
 ;;;
 ;;; Pinewoods tree-frog
 
-(defanimal (pinewoods-tree-frog beg dur amp)
+(define-animal (pinewoods-tree-frog beg dur amp)
   (let ((pitch 205.0)
 	(pulse-dur .009)
 	(start (seconds->samples beg))
@@ -790,7 +790,7 @@
 ;;;
 ;;; Squirrel tree frog
 
-(defanimal (squirrel-tree-frog beg dur amp)
+(define-animal (squirrel-tree-frog beg dur amp)
   (let ((pitch 120)
 	(pulse-dur 0.24))
     (let ((start (seconds->samples beg))
@@ -835,7 +835,7 @@
 ;;;
 ;;; Ornate chorus frog
 
-(defanimal (ornate-chorus-frog beg dur amp)
+(define-animal (ornate-chorus-frog beg dur amp)
   (let ((pulse-dur 0.024)
 	(pitch 1210)
 	(start (seconds->samples beg))
@@ -862,7 +862,7 @@
 ;;;
 ;;; Spring peeper
 
-(defanimal (spring-peeper beg amp)
+(define-animal (spring-peeper beg amp)
   (let ((dur 0.17)
 	(pause 0.23)
 	(dur2 .13)
@@ -903,7 +903,7 @@
 ;;;
 ;;; Crawfish frog
 
-(defanimal (crawfish-frog beg amp)
+(define-animal (crawfish-frog beg amp)
   (let ((dur 0.6)
 	(pitch 58))
     (let ((start (seconds->samples beg))
@@ -946,7 +946,7 @@
 ;;; original formants were much sharper, but using rxyk!cos to sharpen ours didn't seem to help
 ;;; animal seems to group these in 3's
 
-(defanimal (river-frog beg amp)
+(define-animal (river-frog beg amp)
   (let ((dur 1.85)
 	(pulse-pitch 42)
 	(mid-pitch 185)
@@ -992,7 +992,7 @@
 ;;;
 ;;; Bullfrog
 
-(defanimal (bullfrog beg amp)
+(define-animal (bullfrog beg amp)
   (let ((start (seconds->samples beg))
 	(dur 0.81))
     (let ((stop (seconds->samples (+ beg dur)))
@@ -1043,7 +1043,7 @@
 
 (define (texas-toad beg1 dur1 amp1)
   
-  (defanimal (texas-toad-1 beg dur amp)
+  (define-animal (texas-toad-1 beg dur amp)
     (let ((pulse-dur .0173))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -1079,7 +1079,7 @@
 ;;;
 ;;; American toad
 
-(defanimal (american-toad beg dur amp)
+(define-animal (american-toad beg dur amp)
   (let ((pulse-dur .024)
 	(pulse-sep .045)
 	(start (seconds->samples beg)))
@@ -1118,7 +1118,7 @@
 ;;;
 ;;; Plains spadefoot
 
-(defanimal (plains-spadefoot beg amp)
+(define-animal (plains-spadefoot beg amp)
   (let ((dur 0.73)
 	(pulse-dur .019)
 	(start (seconds->samples beg)))
@@ -1166,7 +1166,7 @@
 ;;;
 ;;; Barking tree-frog
 
-(defanimal (barking-tree-frog beg amp)
+(define-animal (barking-tree-frog beg amp)
   (let ((dur 0.165))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -1204,7 +1204,7 @@
 ;;;
 ;;; Western toad
 
-(defanimal (western-toad beg dur amp)
+(define-animal (western-toad beg dur amp)
   (do ((stop (seconds->samples (+ beg dur)))
        (gen (make-polywave 0.0 '(1 .95  2 .02  3 .03  4 .005)))
        (cur-start (seconds->samples beg))
@@ -1247,7 +1247,7 @@
 ;;;
 ;;; Southwestern toad
 
-(defanimal (southwestern-toad beg dur amp)
+(define-animal (southwestern-toad beg dur amp)
   (let ((pulse-dur 0.0135)
 	(pulse-space 0.0236)
 	(start (seconds->samples beg)))
@@ -1284,7 +1284,7 @@
 ;;;
 ;;; Great Plains Narrow-mouthed toad
 
-(defanimal (great-plains-narrow-mouthed-toad beg dur1 amp)
+(define-animal (great-plains-narrow-mouthed-toad beg dur1 amp)
   ;; rocky 75 28
   (let ((attack-dur 0.155))
     (let ((start (seconds->samples beg))
@@ -1364,7 +1364,7 @@
 ;;;
 ;;; Pacific chorus frog
 
-(defanimal (pacific-chorus-frog beg amp)
+(define-animal (pacific-chorus-frog beg amp)
   (let ((dur 0.25))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -1398,7 +1398,7 @@
 ;;;
 ;;; Red-spotted toad
 
-(defanimal (red-spotted-toad beg dur amp)
+(define-animal (red-spotted-toad beg dur amp)
   ;; rocky 23 1
   (let ((pulse-dur 0.0138)
 	(pulse-space 0.0234)
@@ -1433,7 +1433,7 @@
 ;;;
 ;;; Green toad
 
-(defanimal (green-toad beg dur amp)
+(define-animal (green-toad beg dur amp)
   ;; rocky 31 1
   ;;  (an experiment with wave-train in place of pulsed env)
   (let ((pulse (let ((wave-len 256))
@@ -1468,7 +1468,7 @@
 ;;;
 ;;; Little grass frog
 
-(defanimal (little-grass-frog beg amp)
+(define-animal (little-grass-frog beg amp)
   ;; frogs 26 8.5
   (let ((dur .032))
     ;; initial note
@@ -1513,7 +1513,7 @@
 ;;;
 ;;; Sonoran desert toad
 
-(defanimal (sonoran-desert-toad beg dur amp)
+(define-animal (sonoran-desert-toad beg dur amp)
   ;; rocky 13 1
   (let ((start (seconds->samples beg)))
     (let ((stop (seconds->samples (+ beg dur)))
@@ -1576,7 +1576,7 @@
 (define (amargosa-toad beg1 amp1)
   ;; rocky 17 0
   
-  (defanimal (amargosa-toad-1 beg dur frqscl frqenv ampscl ampenv)
+  (define-animal (amargosa-toad-1 beg dur frqscl frqenv ampscl ampenv)
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
 	  (ampf (make-env ampenv :duration dur :scaler ampscl))
@@ -1635,7 +1635,7 @@
 ;;; close in spectrum, amp, freq, but the original has what sounds like a ton of reverb
 ;;;   if I add the reverb, it's close -- is this really what this animal sounds like?
 
-(defanimal (indri beg amp)
+(define-animal (indri beg amp)
   (let ((pitch 900)
 	(dur 1.5))
     (let ((start (seconds->samples beg))
@@ -1669,7 +1669,7 @@
 ;;;
 ;;; need to make freq env flicks at call time (is there a comb-filter effect as it gets near?)
 
-(defanimal (mosquito beg dur freq amp)
+(define-animal (mosquito beg dur freq amp)
   (let ((start (seconds->samples beg))
 	(stop (seconds->samples (+ beg dur)))
 	(carrier (make-oscil freq))
@@ -1699,7 +1699,7 @@
 ;;;
 ;;; Southern mole cricket
 
-(defanimal (southern-mole-cricket beg dur amp)
+(define-animal (southern-mole-cricket beg dur amp)
   (let ((start (seconds->samples beg))
 	(stop (seconds->samples (+ beg dur)))
 	(gen1 (make-oscil 2700))
@@ -1726,7 +1726,7 @@
 ;;;
 ;;; Broad-winged Tree cricket
 
-(defanimal (broad-winged-tree-cricket beg dur amp)
+(define-animal (broad-winged-tree-cricket beg dur amp)
   (let ((freq 1700))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -1769,7 +1769,7 @@
 ;;;    done down one or two octaves -- I think the recording has cut off high info (above 20Khz) --
 ;;;    need much higher srate to see what this guy is really doing.  This is not very good...
 
-(defanimal (long-spurred-meadow-katydid beg amp)
+(define-animal (long-spurred-meadow-katydid beg amp)
   (let ((dur 10.1) ; overall duration
 	(slow-start 2.2)) ; buzz at start
     (let ((soft-end (+ slow-start 4.0))) ; softer section, rest is full vol
@@ -1798,7 +1798,7 @@
 ;; (with-sound (:statistics #t) (long-spurred-meadow-katydid 0 .5))
 
 #|
-(defanimal (long-spurred-meadow-katydid beg amp)
+(define-animal (long-spurred-meadow-katydid beg amp)
   (let ((dur 10.1) ; overall duration
 	(slow-start 2.2)) ; buzz at start
     (let ((soft-end (+ slow-start 4.0))) ; softer section, rest is full vol
@@ -1842,7 +1842,7 @@
 ;;;
 ;;; Handsome trig
 
-(defanimal (handsome-trig beg dur amp)
+(define-animal (handsome-trig beg dur amp)
   (let ((freqs (apply float-vector (map hz->radians '(6439 6585 6860 6940 7090 7266 7362))))
 	(amps (float-vector 0.355 0.355 0.089 0.060 0.071 0.035 0.035))
 	(pulse-dur .02))
@@ -1882,7 +1882,7 @@
 ;;;
 ;;; (use fm for noise to get the burble right, and pm for spectrum)
 
-(defanimal (fast-calling-tree-cricket beg dur amp)
+(define-animal (fast-calling-tree-cricket beg dur amp)
   (let ((pulse-dur .0167))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -1915,7 +1915,7 @@
 ;;;
 ;;; Dog-day cicada
 
-(defanimal (dog-day-cicada beg dur amp) ; dur ca 10 ..15 secs
+(define-animal (dog-day-cicada beg dur amp) ; dur ca 10 ..15 secs
   (let ((start (seconds->samples beg))
 	(stop (seconds->samples (+ beg dur)))
 	(ampf (make-env '(0.0 0.0    0.1 0.03   0.2 0.2   0.3 0.6   0.34 0.8  0.44 1.0 
@@ -1943,7 +1943,7 @@
 ;;;
 ;;; Linnaeus' Cicada
 
-(defanimal (linnaeus-cicada beg dur amp)
+(define-animal (linnaeus-cicada beg dur amp)
   (let ((start (seconds->samples beg))
 	(stop (seconds->samples (+ beg dur)))
 	(ampf (make-env '(0 0 1 .8 10 1 11 0) :duration dur :scaler amp))
@@ -1970,7 +1970,7 @@
 ;;;
 ;;; Lyric cicada
 
-(defanimal (lyric-cicada beg dur amp)
+(define-animal (lyric-cicada beg dur amp)
   (let ((p0 400))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -2005,7 +2005,7 @@
 ;;;
 ;;; Confused ground cricket
 
-(defanimal (confused-ground-cricket beg dur amp)
+(define-animal (confused-ground-cricket beg dur amp)
   (let ((start (seconds->samples beg))
 	(stop (seconds->samples (+ beg dur)))
 	(gen1 (make-oscil 5700))
@@ -2042,7 +2042,7 @@
 ;;;
 ;;;  There's a secondary (slower) peep -- is this part of our cricket's song, or another cricket in the background?
 
-(defanimal (tinkling-ground-cricket beg dur amp)
+(define-animal (tinkling-ground-cricket beg dur amp)
   (let ((start (seconds->samples beg))
 	(stop (seconds->samples (+ beg dur)))
 	(gen1 (make-oscil 7200))
@@ -2069,7 +2069,7 @@
 ;;;
 ;;; this is just a random number generator with an elaborate amplitude envelope
 
-(defanimal (marsh-meadow-grasshopper beg amp)
+(define-animal (marsh-meadow-grasshopper beg amp)
   (let ((dur 4.8))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -2107,7 +2107,7 @@
 ;;; tricky!  spikes are at 48 Hz, but the sound they make requires 24 Hz pulse -- I presume
 ;;;   I'm seeing the 2 or 4 wings alternating?
 
-(defanimal (carolina-grasshopper beg dur amp)
+(define-animal (carolina-grasshopper beg dur amp)
   (let ((start (seconds->samples beg))
 	(stop (seconds->samples (+ beg dur)))
 	(ampf (make-env ;'(0.000 0.000 0.032 0.115 0.151 0.044 0.181 0.485 0.254 0.841 0.620 0.431 0.731 0.051 0.757 0.292 0.898 0.620 0.984 0.380 1.000 0.000)
@@ -2141,7 +2141,7 @@
 ;;;
 ;;; Striped ground cricket
 
-(defanimal (striped-ground-cricket beg dur amp)
+(define-animal (striped-ground-cricket beg dur amp)
   (let ((start (seconds->samples beg))
 	(stop (seconds->samples (+ beg dur)))
 	(gen1 (make-oscil 13200)) ;(* 2 6600)))
@@ -2189,7 +2189,7 @@
 ;;;
 ;;; Sphagnum ground cricket
 
-(defanimal (sphagnum-ground-cricket beg dur amp)
+(define-animal (sphagnum-ground-cricket beg dur amp)
   (let ((start (seconds->samples beg))
 	(stop (seconds->samples (+ beg dur)))
 	(gen1 (make-oscil 8850))
@@ -2220,7 +2220,7 @@
 ;;;
 ;;; Southeastern field cricket
 
-(defanimal (southeastern-field-cricket beg dur amp)
+(define-animal (southeastern-field-cricket beg dur amp)
   (let ((pulse-dur 0.027)) ; occasionally a hicccup = .039, 30..100 pulses per song
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -2265,7 +2265,7 @@
 ;;;
 ;;; Snowy tree cricket
 
-(defanimal (snowy-tree-cricket beg dur amp)
+(define-animal (snowy-tree-cricket beg dur amp)
   (let ((pitch 1690))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -2307,7 +2307,7 @@
 ;;;
 ;;; this could use some work
 
-(defanimal (slightly-musical-conehead beg dur amp)
+(define-animal (slightly-musical-conehead beg dur amp)
   (let ((start (seconds->samples beg))
 	(stop (seconds->samples (+ beg dur)))
 	(gen1 (make-oscil 11000))
@@ -2341,7 +2341,7 @@
 ;;;
 ;;; Pine tree cricket
 
-(defanimal (pine-tree-cricket beg dur amp)
+(define-animal (pine-tree-cricket beg dur amp)
   (let ((pulse-dur .014))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -2371,7 +2371,7 @@
 ;;;
 ;;; Davis's tree cricket
 
-(defanimal (davis-tree-cricket beg dur amp)
+(define-animal (davis-tree-cricket beg dur amp)
   (let ((pulse-dur .013)
 	(pitch 2420))
     (let ((start (seconds->samples beg))
@@ -2399,7 +2399,7 @@
 ;;;
 ;;; Black-horned tree cricket
 
-(defanimal (black-horned-tree-cricket beg dur amp)
+(define-animal (black-horned-tree-cricket beg dur amp)
   (let ((pulse-dur 0.0173)
 	(pulse-space 0.0219)
 	(start (seconds->samples beg)))
@@ -2435,7 +2435,7 @@
 ;;;
 ;;; Narrow-winged tree cricket
 
-(defanimal (narrow-winged-tree-cricket beg dur amp)
+(define-animal (narrow-winged-tree-cricket beg dur amp)
   ;; insects 18 4
   (let ((start (seconds->samples beg))
 	(stop (seconds->samples (+ beg dur)))
@@ -2459,7 +2459,7 @@
 ;;;
 ;;; Four-spotted tree cricket
 
-(defanimal (four-spotted-tree-cricket beg dur amp)
+(define-animal (four-spotted-tree-cricket beg dur amp)
   ;; insects 16 4
   (let ((index (hz->radians 400)))
     (let ((start (seconds->samples beg))
@@ -2495,7 +2495,7 @@
 ;;;
 ;;; Fox sparrow
 
-(defanimal (fox-sparrow beg dur amp)
+(define-animal (fox-sparrow beg dur amp)
   (let ((begs (vector 0.0   0.3  0.6   0.93  1.23  1.49 1.74  1.98  2.12  2.29 3.0))  
 	(ends (vector 0.12  0.46 0.85  1.17  1.44  1.7  1.95  2.08  2.26  2.45))
 	(low-frqs (vector  4260 4010 3910 4970 3360 3160 2810 2310 2700 2700))
@@ -2573,7 +2573,7 @@
 ;;;
 ;;; probably music of birds 14, first song
 
-(defanimal (white-throated-sparrow beg amp)
+(define-animal (white-throated-sparrow beg amp)
   (let ((dur (+ 3.25 (random .2)))
 	 (pitch 3800))
     (let ((start (seconds->samples beg))
@@ -2617,7 +2617,7 @@
 ;;;
 ;;; Henslow's sparrow
 
-(defanimal (henslows-sparrow beg amp)
+(define-animal (henslows-sparrow beg amp)
   ;; "the poorest vocal effort of any bird" -- R T Peterson
   (let ((dur 0.24))
     (let ((start (seconds->samples beg))
@@ -2654,7 +2654,7 @@
 ;;;
 ;;; Eastern wood-pewee
 
-(defanimal (eastern-wood-pewee-1 beg amp)
+(define-animal (eastern-wood-pewee-1 beg amp)
   ;; probably east 39 3
   (let ((dur 1.07))
     (let ((start (seconds->samples beg))
@@ -2677,7 +2677,7 @@
 ;; (with-sound (:play #t) (eastern-wood-pewee-1 0 .25))
 
 
-(defanimal (eastern-wood-pewee-2 beg amp)
+(define-animal (eastern-wood-pewee-2 beg amp)
   ;; probably east 39 14
   (let ((dur 1.07))
     (let ((start (seconds->samples beg))
@@ -2710,7 +2710,7 @@
 ;;;
 ;;; Field sparrow
 
-(defanimal (field-sparrow beg amp)
+(define-animal (field-sparrow beg amp)
   (let ((dur 2.92))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -2764,7 +2764,7 @@
 ;;;
 ;;; Tufted titmouse
 
-(defanimal (tufted-titmouse beg amp)
+(define-animal (tufted-titmouse beg amp)
   (let ((dur 1.0))
     (let ((start (seconds->samples beg))
 	  
@@ -2792,7 +2792,7 @@
 ;;;
 ;;; 8 separate calls make up a song
 
-(defanimal (savannah-sparrow beg amp)
+(define-animal (savannah-sparrow beg amp)
   
   (define (savannah-1 beg amp)
     ;; peeps
@@ -2977,7 +2977,7 @@
 ;;;
 ;;; Chipping sparrow
 
-(defanimal (chipping-sparrow beg amp)
+(define-animal (chipping-sparrow beg amp)
   (let ((dur .055)
 	(repeats (+ 20 (random 25))))
     (let ((start (seconds->samples beg))
@@ -3017,7 +3017,7 @@
 ;;;
 ;;; Least flycatcher
 
-(defanimal (least-flycatcher beg amp)
+(define-animal (least-flycatcher beg amp)
   (let ((call1-dur .032)
 	(pause .065)
 	(call2-dur .04)
@@ -3058,7 +3058,7 @@
 ;;;
 ;;; Acadian flycatcher
 
-(defanimal (acadian-flycatcher beg amp)
+(define-animal (acadian-flycatcher beg amp)
   (let ((dur 0.3))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -3084,7 +3084,7 @@
 ;;;   are there really multiphonics in this birdsong? 
 ;;;   also, is this a song that uses both parts of the syrinx? -- I think the doubled stuff is reverb
 
-(defanimal (swainsons-thrush beg amp)
+(define-animal (swainsons-thrush beg amp)
   (let ((dur 2.0))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -3138,7 +3138,7 @@
 ;;;
 ;;; Carolina wren
 
-(defanimal (carolina-wren beg amp)
+(define-animal (carolina-wren beg amp)
   (let ((dur 1.84)
 	(pulse-dur 0.25))
     (let ((start (seconds->samples beg))
@@ -3176,7 +3176,7 @@
 ;;;
 ;;; Bachman's sparrow
 
-(defanimal (bachmans-sparrow beg amp)
+(define-animal (bachmans-sparrow beg amp)
   ;; two pieces -- initial steady tone, then 10 repetitions of 2nd call
   (let ((call1-dur .576)
 	(call2-dur .172)
@@ -3229,7 +3229,7 @@
 ;;;
 ;;; Grasshopper sparrow
 
-(defanimal (grasshopper-sparrow beg amp)
+(define-animal (grasshopper-sparrow beg amp)
   ;; 2 portions -- simple tones, then a buzz (calif case has much tighter (faster) buzz)
   (let ((start (seconds->samples beg))
 	(begs (vector 0.0 .24 .36 .44 .55))
@@ -3282,7 +3282,7 @@
 ;;;
 ;;; American robin
 
-(defanimal (american-robin beg amp)
+(define-animal (american-robin beg amp)
   (let ((start (seconds->samples beg))
 	 
 	 (ampfs (make-vector 4 #f))
@@ -3364,7 +3364,7 @@
 ;;;
 ;;; Common loon
 
-(defanimal (common-loon-1 beg amp)
+(define-animal (common-loon-1 beg amp)
   (let ((dur 2.5))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -3383,7 +3383,7 @@
 ;; (with-sound (:play #t) (common-loon-1 0 .25))
 
 
-(defanimal (common-loon-2 beg amp)
+(define-animal (common-loon-2 beg amp)
   (let ((dur 0.63))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -3416,7 +3416,7 @@
 ;;;
 ;;; Hermit thrush
 
-(defanimal (hermit-thrush beg amp)
+(define-animal (hermit-thrush beg amp)
   (let ((start (seconds->samples beg))
 	 
 	 (ampfs (make-vector 3 #f))
@@ -3522,7 +3522,7 @@
 ;;;
 ;;; Chuck-will's-widow
 
-(defanimal (chuck-wills-widow beg amp)
+(define-animal (chuck-wills-widow beg amp)
   (let ((dur 1.05))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -3556,7 +3556,7 @@
 ;;;
 ;;; California towhee
 
-(defanimal (california-towhee beg amp)
+(define-animal (california-towhee beg amp)
   (let ((dur 1.17)
 	;; peep pitch changes
 	(amps (vector .5 .8 .85 .9 .95 1.0))
@@ -3604,7 +3604,7 @@
 ;;;
 ;;; Black-chinned sparrow
 
-(defanimal (black-chinned-sparrow beg amp gliss-up)
+(define-animal (black-chinned-sparrow beg amp gliss-up)
   (let ((initial-dur .36)
 	(initial-pitch 6800)
 	(initial-amp .05)
@@ -3670,7 +3670,7 @@
 ;;;
 ;;; Mourning dove
 
-(defanimal (mourning-dove beg amp)
+(define-animal (mourning-dove beg amp)
   (let ((dur 4.1))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -3703,7 +3703,7 @@
 ;;;
 ;;; Bobwhite
 
-(defanimal (bobwhite beg amp)
+(define-animal (bobwhite beg amp)
   (let ((call1-dur .32)
 	(call1-amp .07)
 	(call2-beg .80)
@@ -3760,7 +3760,7 @@
 ;;;
 ;;; Warbling vireo
 
-(defanimal (warbling-vireo beg amp)
+(define-animal (warbling-vireo beg amp)
   (let ((dur 2.25))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -3810,7 +3810,7 @@
 ;;;
 ;;; Great-horned owl
 
-(defanimal (great-horned-owl beg amp)
+(define-animal (great-horned-owl beg amp)
   (let ((begs (vector 0.0  0.26 1.42 2.16))
 	(durs (vector 0.14 0.40 0.43 0.37))
 	(amps (vector .75 .9 .95 1.0)))
@@ -3836,7 +3836,7 @@
 ;;;
 ;;; Western tanager
 
-(defanimal (western-tanager beg amp)
+(define-animal (western-tanager beg amp)
   (let ((gen (make-polywave 0.0 '(1 .98 2 .02)))
 	 (begs (vector 0.0  0.7  1.4  2.0))
 	 (durs (vector 0.27 0.32 0.25 0.24))
@@ -3901,7 +3901,7 @@
 ;;;
 ;;; Pileated woodpecker
 
-(defanimal (pileated-woodpecker beg amp)
+(define-animal (pileated-woodpecker beg amp)
   (let ((dur 2.28)
 	(pulse-space .137)
 	(pulse-dur .06)
@@ -3943,7 +3943,7 @@
 ;;;
 ;;; Whip-poor-will
 
-(defanimal (whip-poor-will beg amp)
+(define-animal (whip-poor-will beg amp)
   (let ((dur 0.75))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -3976,7 +3976,7 @@
 ;;;
 ;;; Varied thrush
 
-(defanimal (varied-thrush beg amp)
+(define-animal (varied-thrush beg amp)
   (let ((dur 1.02))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -4004,7 +4004,7 @@
 ;;;
 ;;; Nashville warbler
 
-(defanimal (nashville-warbler beg amp)
+(define-animal (nashville-warbler beg amp)
   
   (define (nashville-warbler-1 beg dur amp)
     (let ((start (seconds->samples beg))
@@ -4090,7 +4090,7 @@
 ;;;
 ;;; Ruffed grouse
 
-(defanimal (ruffed-grouse beg amp)
+(define-animal (ruffed-grouse beg amp)
   (let ((dur 10.33)
 	(bump-dur 0.27))
     (let ((start (seconds->samples beg))
@@ -4152,7 +4152,7 @@
 ;;;
 ;;; Plumbeous vireo
 
-(defanimal (plumbeous-vireo-1 beg amp)
+(define-animal (plumbeous-vireo-1 beg amp)
   (let ((dur 0.34))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -4189,7 +4189,7 @@
 ;; (with-sound (:play #t) (plumbeous-vireo-1 0 .25))
 
 
-(defanimal (plumbeous-vireo-2 beg amp)
+(define-animal (plumbeous-vireo-2 beg amp)
   (let ((dur 0.455))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -4241,7 +4241,7 @@
 ;;;
 ;;; Least bittern
 
-(defanimal (least-bittern beg amp)
+(define-animal (least-bittern beg amp)
   (let ((dur 1.25)
 	(pulse-dur .09))
     (let ((start (seconds->samples beg))
@@ -4294,7 +4294,7 @@
 	    ((= i n) (reverse lst))
 	  (set! lst (cons (* scl (expt r i)) (cons (+ i 1) lst)))))))
 
-(defanimal (american-crow beg amp)
+(define-animal (american-crow beg amp)
   (let ((dur 0.27))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -4329,7 +4329,7 @@
 ;; (with-sound (:play #t) (american-crow 0 .5))
 
 
-(defanimal (american-crow-no-formants beg amp) ; this is for sndclm.html
+(define-animal (american-crow-no-formants beg amp) ; this is for sndclm.html
   (let ((dur 0.27))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -4354,7 +4354,7 @@
 ;;;
 ;;; Orange-crowned warbler
 
-(defanimal (orange-crowned-warbler beg amp)
+(define-animal (orange-crowned-warbler beg amp)
   (let ((dur 1.5)
 	(pulse-dur 0.045)
 	(call2-dur 0.13)
@@ -4408,7 +4408,7 @@
 ;;;
 ;;; Loggerhead shrike
 
-(defanimal (loggerhead-shrike-1 beg amp)
+(define-animal (loggerhead-shrike-1 beg amp)
   (let ((dur 0.65)
 	(open-dur .036)
 	(pulse-dur .008)
@@ -4461,7 +4461,7 @@
 ;; (with-sound (:play #t) (loggerhead-shrike-1 0 .5))
 
 
-(defanimal (loggerhead-shrike-2 beg amp)
+(define-animal (loggerhead-shrike-2 beg amp)
   (let ((dur 0.4)
 	(pulse-dur .08)
 	(frqs (vector .9 .95 .95 1.0 1.0 1.0))
@@ -4507,7 +4507,7 @@
 ;;;
 ;;; California Quail
 
-(defanimal (california-quail beg amp)
+(define-animal (california-quail beg amp)
   (let ((durs (vector .075 .23 .16))
 	(begs (vector 0.0 .21 .58))
 	(ampfs (make-vector 3 #f))
@@ -4561,7 +4561,7 @@
 ;;;
 ;;; Vermillion flycatcher
 
-(defanimal (vermillion-flycatcher beg amp)
+(define-animal (vermillion-flycatcher beg amp)
   (let ((dur 0.72))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -4595,7 +4595,7 @@
 ;;;
 ;;; Cardinal
 
-(defanimal (cardinal beg amp)
+(define-animal (cardinal beg amp)
   (let ((call1-dur 0.185)
 	(call2-dur 0.19)
 	(start (seconds->samples beg)))
@@ -4656,7 +4656,7 @@
 ;;;
 ;;; Black phoebe
 
-(defanimal (black-phoebe beg amp)
+(define-animal (black-phoebe beg amp)
   (let ((dur 0.36))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -4687,7 +4687,7 @@
 ;;;
 ;;; Yellow warbler
 
-(defanimal (yellow-warbler beg amp)
+(define-animal (yellow-warbler beg amp)
   (let ((dur 1.38))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -4721,7 +4721,7 @@
 ;;;
 ;;; Barred owl (the "hoo-aw" call, not the more complex one -- I haven't succeeded with the latter yet)
 
-(defanimal (barred-owl-1 beg amp)
+(define-animal (barred-owl-1 beg amp)
   (let ((dur 1.27)
 	(owl-env '(0 0 .53 0 .54 1 1 1)))
     (let ((start (seconds->samples beg))
@@ -4771,7 +4771,7 @@
 ;;;
 ;;; Say's phoebe
 
-(defanimal (says-phoebe beg amp)
+(define-animal (says-phoebe beg amp)
   (let ((dur 0.64))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -4798,7 +4798,7 @@
 ;;;
 ;;; Yellow-rumped warbler
 
-(defanimal (yellow-rumped-warbler beg amp)
+(define-animal (yellow-rumped-warbler beg amp)
   (let ((dur 1.6))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -4852,7 +4852,7 @@
 ;;;
 ;;; Purple finch
 
-(defanimal (purple-finch beg amp)
+(define-animal (purple-finch beg amp)
   (let ((dur 2.5))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -4932,7 +4932,7 @@
 ;;;
 ;;; Northern goshawk
 
-(defanimal (northern-goshawk beg amp)
+(define-animal (northern-goshawk beg amp)
   (let ((dur 0.31))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -4954,7 +4954,7 @@
 ;;;
 ;;; Common Gull
 
-(defanimal (common-gull beg amp)
+(define-animal (common-gull beg amp)
   (let ((dur 0.42))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -5004,7 +5004,7 @@
 ;;;
 ;;; Ash-throated flycatcher
 
-(defanimal (ash-throated-flycatcher beg amp)
+(define-animal (ash-throated-flycatcher beg amp)
   (let ((dur 0.47))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -5044,7 +5044,7 @@
 ;;;
 ;;; White-header woodpecker
 
-(defanimal (white-headed-woodpecker beg amp)
+(define-animal (white-headed-woodpecker beg amp)
   ;; spectrum travels right off the top -- I wonder how high it actually goes
   (let ((dur 0.16))
     (let ((start (seconds->samples beg))
@@ -5089,7 +5089,7 @@
 ;;;
 ;;; Phainopepla
 
-(defanimal (phainopepla beg amp)
+(define-animal (phainopepla beg amp)
   (let ((dur 0.26))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -5117,7 +5117,7 @@
 ;;;
 ;;; Golden-crowned sparrow
 
-(defanimal (golden-crowned-sparrow beg amp)
+(define-animal (golden-crowned-sparrow beg amp)
   (let ((dur 2.13))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -5147,7 +5147,7 @@
 ;;;
 ;;; House finch
 
-(defanimal (house-finch beg amp)
+(define-animal (house-finch beg amp)
   (let ((dur 3.16))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -5217,7 +5217,7 @@
 ;;;
 ;;; Ruby-crowned kinglet
 
-(defanimal (ruby-crowned-kinglet beg amp)
+(define-animal (ruby-crowned-kinglet beg amp)
   (let ((dur 2.17))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -5257,7 +5257,7 @@
 ;;;
 ;;; not very elegant, but a real test of the envelope editor
 
-(defanimal (green-tailed-towhee beg amp)
+(define-animal (green-tailed-towhee beg amp)
   (let ((dur 1.86))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -5325,7 +5325,7 @@
 ;;;
 ;;; Lucy's warbler
 
-(defanimal (lucys-warbler beg amp)
+(define-animal (lucys-warbler beg amp)
   (let ((dur 1.72))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -5373,7 +5373,7 @@
 ;;;
 ;;; Cassin's vireo
 
-(defanimal (cassins-vireo beg amp)
+(define-animal (cassins-vireo beg amp)
   (let ((dur 0.5))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -5433,7 +5433,7 @@
 
 (define (plain-chacalaca beg1 amp)
   
-  (defanimal (plain-chacalaca-1 beg dur amp frmfrq frqlst)
+  (define-animal (plain-chacalaca-1 beg dur amp frmfrq frqlst)
     (let ((start (seconds->samples beg))
 	   (stop (seconds->samples (+ beg dur)))
 	   (ampf (make-env '(0.000 0.000 2 1 4 1 6 0) :duration dur :scaler (* 0.5 amp)))
@@ -5472,7 +5472,7 @@
 ;;;
 ;;; Black-billed cuckoo
 
-(defanimal (black-billed-cuckoo beg amp)
+(define-animal (black-billed-cuckoo beg amp)
   (let ((dur 0.68))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -5504,7 +5504,7 @@
 ;;;
 ;;; Eared grebe
 
-(defanimal (eared-grebe beg amp)
+(define-animal (eared-grebe beg amp)
   ;; note #1
   (let ((dur 0.3))
     (let ((start (seconds->samples beg))
@@ -5581,7 +5581,7 @@
 ;;;
 ;;; Brown jay
 
-(defanimal (brown-jay beg amp)
+(define-animal (brown-jay beg amp)
   (let ((dur 0.26))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -5611,7 +5611,7 @@
 ;;;
 ;;; Blue grosbeak
 
-(defanimal (blue-grosbeak beg amp)
+(define-animal (blue-grosbeak beg amp)
   (let ((dur 2.26))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -5673,7 +5673,7 @@
 ;;;
 ;;; Acorn woodpecker
 
-(defanimal (acorn-woodpecker beg1 amp1)
+(define-animal (acorn-woodpecker beg1 amp1)
   
   (define (acorn-woodpecker-1 beg dur ampf frqf ampf2 ampf4 rndf)
     (let ((start (seconds->samples beg))
@@ -5736,7 +5736,7 @@
 ;;;
 ;;; Lesser nighhawk
 
-(defanimal (lesser-nighthawk beg dur amp)
+(define-animal (lesser-nighthawk beg dur amp)
   (let ((pulse-dur .021)
 	(pulse-sep .047))
     (let ((start (seconds->samples beg))
@@ -5770,7 +5770,7 @@
 ;;;
 ;;; Olive-sided flycatcher
 
-(defanimal (olive-sided-flycatcher beg amp)
+(define-animal (olive-sided-flycatcher beg amp)
   (let ((dur 1.08))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -5802,7 +5802,7 @@
 ;;;
 ;;;   ending is not right
 
-(defanimal (red-shouldered-hawk beg amp)
+(define-animal (red-shouldered-hawk beg amp)
   (let ((dur 0.475))
     (let ((start (seconds->samples beg))
 	  
@@ -5852,7 +5852,7 @@
 
 (define (common-yellowthroat beg1 amp1)
   
-  (defanimal (common-yellowthroat-1 beg amp) 
+  (define-animal (common-yellowthroat-1 beg amp) 
     (let ((dur .42))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -6003,7 +6003,7 @@
 
 (define (stellers-jay beg1 amp1)
   
-  (defanimal (stellers-jay-1 beg amp)
+  (define-animal (stellers-jay-1 beg amp)
     (let ((dur .09))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -6058,7 +6058,7 @@
 ;;;
 ;;; Black rail
 
-(defanimal (black-rail beg amp)
+(define-animal (black-rail beg amp)
   
   ;; notes 1 and 2
   (let ((dur 0.2))
@@ -6112,7 +6112,7 @@
 ;;;
 ;;; Pinyon jay
 
-(defanimal (pinyon-jay beg amp)
+(define-animal (pinyon-jay beg amp)
   (let ((dur 0.3))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -6144,7 +6144,7 @@
 ;;;
 ;;; Sora
 
-(defanimal (sora beg amp)
+(define-animal (sora beg amp)
   (let ((dur 0.41))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -6169,7 +6169,7 @@
 ;;;
 ;;; Killdeer
 
-(defanimal (killdeer beg amp)
+(define-animal (killdeer beg amp)
   (let ((dur 0.88))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -6207,7 +6207,7 @@
 
 (define (oak-titmouse beg1 amp1)
   
-  (defanimal (oak-titmouse-1 beg amp)
+  (define-animal (oak-titmouse-1 beg amp)
     (let ((dur 0.117))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -6231,7 +6231,7 @@
 		     (polywave gen1 (+ (env frqf)
 				       (* vib-amp (oscil gen2))))))))))
   
-  (defanimal (oak-titmouse-2 beg amp)
+  (define-animal (oak-titmouse-2 beg amp)
     (let ((dur 0.14))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -6271,7 +6271,7 @@
 (define (macgillivrays-warbler beg1 amp1)
   ;; much more complex than it sounds -- like the Hermit Thrush, this has 2 independent sources
   
-  (defanimal (macgillivrays-warbler-1 beg amp)
+  (define-animal (macgillivrays-warbler-1 beg amp)
     ;; 5 of these to start
     (let ((dur 0.137))
       (let ((start (seconds->samples beg))
@@ -6306,7 +6306,7 @@
 			(* (env ampf2)
 			   (polywave gen2 (env frqf2))))))))))
     
-  (defanimal (macgillivrays-warbler-2 beg amp)
+  (define-animal (macgillivrays-warbler-2 beg amp)
     ;; 3 of these to end
     (let ((dur 0.135))
       (let ((start (seconds->samples beg))
@@ -6363,7 +6363,7 @@
 ;;;
 ;;; Hutton's vireo
 
-(defanimal (huttons-vireo beg amp)
+(define-animal (huttons-vireo beg amp)
   (let ((dur 0.4))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -6420,7 +6420,7 @@
 (define (western-meadowlark beg1 amp1)
   
   ;; first sequence of notes
-  (defanimal (western-meadowlark-1 beg amp)
+  (define-animal (western-meadowlark-1 beg amp)
     (let ((dur 1.075))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -6444,7 +6444,7 @@
 		     (oscil gen1 (env frqf))))))))
   
   ;; 2nd sequence of notes
-  (defanimal (western-meadowlark-2 beg amp)
+  (define-animal (western-meadowlark-2 beg amp)
     (let ((dur 0.45))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -6489,7 +6489,7 @@
 ;;;
 ;;; this should have used 4 calls on one note
 
-(defanimal (northern-beardless-tyrannulet beg amp)
+(define-animal (northern-beardless-tyrannulet beg amp)
   (let ((dur 1.91))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -6535,7 +6535,7 @@
 ;;;
 ;;; Scott's oriole
 
-(defanimal (scotts-oriole beg amp)
+(define-animal (scotts-oriole beg amp)
   (let ((dur 1.83))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -6580,7 +6580,7 @@
 (define (wilsons-warbler beg1 amp1)
   ;; 3 different calls, 2(?) with 2 different tones
   
-  (defanimal (wilsons-warbler-1 beg dur amp)
+  (define-animal (wilsons-warbler-1 beg dur amp)
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
 	  
@@ -6609,7 +6609,7 @@
 		      (* (env ampf2)
 			 (oscil gen2 (env frqf2)))))))))
   
-  (defanimal (wilsons-warbler-2 beg dur frq amp)
+  (define-animal (wilsons-warbler-2 beg dur frq amp)
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
 	  
@@ -6631,7 +6631,7 @@
 				  (rand-interp rnd))))))))
   
   
-  (defanimal (wilsons-warbler-3 beg amp)
+  (define-animal (wilsons-warbler-3 beg amp)
     (let ((dur 0.07))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -6677,7 +6677,7 @@
 ;;;
 ;;; Willow flycatcher
 
-(defanimal (willow-flycatcher beg amp)
+(define-animal (willow-flycatcher beg amp)
   (let ((dur 0.65))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -6732,7 +6732,7 @@
 ;;; 
 ;;; Black-necked stilt
 
-(defanimal (black-necked-stilt beg amp)
+(define-animal (black-necked-stilt beg amp)
   (let ((dur 0.085))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -6766,7 +6766,7 @@
 ;;;
 ;;; Bushtit
 
-(defanimal (bushtit beg amp)
+(define-animal (bushtit beg amp)
   (let ((dur 0.368)
 	(pulse-dur .044)
 	(start (seconds->samples beg)))
@@ -6814,7 +6814,7 @@
 ;;;
 ;;; Red-breasted nuthatch
 
-(defanimal (red-breasted-nuthatch beg amp)
+(define-animal (red-breasted-nuthatch beg amp)
   (let ((dur 0.287))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -6843,7 +6843,7 @@
 ;;;
 ;;; White-breasted nuthatch
 
-(defanimal (white-breasted-nuthatch beg amp)
+(define-animal (white-breasted-nuthatch beg amp)
   (let ((dur 0.31))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -6881,7 +6881,7 @@
 ;;;
 ;;; Pygmy nuthatch
 
-(defanimal (pygmy-nuthatch beg amp)
+(define-animal (pygmy-nuthatch beg amp)
   (let ((dur 0.12))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -6907,7 +6907,7 @@
 ;;;
 ;;; Flammulated owl
 
-(defanimal (flammulated-owl beg amp)
+(define-animal (flammulated-owl beg amp)
   (let ((dur 0.25))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -6930,7 +6930,7 @@
 
 (define (song-sparrow beg1 amp1)
   
-  (defanimal (song-sparrow-big-buzz beg amp)
+  (define-animal (song-sparrow-big-buzz beg amp)
     (let ((dur 0.25))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -6970,7 +6970,7 @@
 	    (mus-reset ampf-up)
 	    (mus-reset ampf-down))))))
   
-  (defanimal (song-sparrow-clear-tone beg frq amp)
+  (define-animal (song-sparrow-clear-tone beg frq amp)
     (let ((dur 0.062))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -6986,7 +6986,7 @@
 	  (outa i (* (env ampf)
 		     (polywave gen1 (env frqf))))))))
   
-  (defanimal (song-sparrow-sweep-tone beg amp)
+  (define-animal (song-sparrow-sweep-tone beg amp)
     (let ((dur 0.036))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -7003,7 +7003,7 @@
 	  (outa i (* (env ampf)
 		     (polywave gen1 (env frqf))))))))
   
-  (defanimal (song-sparrow-sweep-caw beg amp)
+  (define-animal (song-sparrow-sweep-caw beg amp)
     (let ((dur 0.025))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -7020,7 +7020,7 @@
 	    ((= i stop))
 	  (outa i (* (env ampf) (polywave gen (+ (env frqf) (rand-interp rnd)))))))))
   
-  (defanimal (song-sparrow-little-buzz beg amp)
+  (define-animal (song-sparrow-little-buzz beg amp)
     (let ((dur 0.17))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -7036,7 +7036,7 @@
 		     (polywave gen (+ (env frqf)
 				      (rand-interp rnd)))))))))
   
-  (defanimal (song-sparrow-sweep-down beg amp)
+  (define-animal (song-sparrow-sweep-down beg amp)
     (let ((dur 0.186))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -7054,7 +7054,7 @@
 	  (outa i (* (env ampf)
 		     (polywave gen1 (env frqf))))))))
   
-  (defanimal (song-sparrow-sweep-up beg amp)
+  (define-animal (song-sparrow-sweep-up beg amp)
     (let ((dur 0.076))
       (let ((start (seconds->samples beg))
 	    
@@ -7069,7 +7069,7 @@
 	  (outa i (* (env ampf)
 		     (polywave gen1 (env frqf))))))))
   
-  (defanimal (song-sparrow-2nd-buzz beg amp)
+  (define-animal (song-sparrow-2nd-buzz beg amp)
     (let ((dur 0.053))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -7092,7 +7092,7 @@
 		       (polywave gen1 (+ (env frqf)
 					 (* scl vb))))))))))
   
-  (defanimal (song-sparrow-chiff beg amp)
+  (define-animal (song-sparrow-chiff beg amp)
     (let ((dur 0.019))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -7135,7 +7135,7 @@
 ;;;
 ;;; Burrowing owl
 
-(defanimal (burrowing-owl beg amp)
+(define-animal (burrowing-owl beg amp)
   (let ((dur 0.6))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -7172,7 +7172,7 @@
 ;;;
 ;;; (I didn't really intend to do 5 of these calls)
 
-(defanimal (gray-vireo-1 beg amp)
+(define-animal (gray-vireo-1 beg amp)
   (let ((dur 0.23))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -7202,7 +7202,7 @@
 
 ;; (with-sound (:play #t) (gray-vireo-1 0 .5))
 
-(defanimal (gray-vireo-2 beg amp)
+(define-animal (gray-vireo-2 beg amp)
   ;; probably calif2 18 4
   (let ((dur 0.23))
     (let ((start (seconds->samples beg))
@@ -7244,7 +7244,7 @@
 ;; (with-sound (:play #t) (gray-vireo-2 0 .5))
 
 
-(defanimal (gray-vireo-3 beg amp)
+(define-animal (gray-vireo-3 beg amp)
   ;; south 44 4
   
   ;; part 1 -- I could not find a way to get this right short of brute force additive synthesis
@@ -7310,7 +7310,7 @@
 ;; (with-sound (:play #t) (gray-vireo-3 0 .5))
 
 
-(defanimal (gray-vireo-4 beg amp)
+(define-animal (gray-vireo-4 beg amp)
   (let ((dur 0.23))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -7340,7 +7340,7 @@
 
 ;; (with-sound (:play #t) (gray-vireo-4 0 .5))
 
-(defanimal (gray-vireo-5 beg amp)
+(define-animal (gray-vireo-5 beg amp)
   (let ((dur 0.256))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -7385,7 +7385,7 @@
 
 (define (bald-eagle beg amp)
   
-  (defanimal (bald-eagle-1 beg amp)
+  (define-animal (bald-eagle-1 beg amp)
     (let ((dur 0.153))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -7415,7 +7415,7 @@
 		       (+ (* (env intrpf) (polywave gen1 (+ (env frqf1) noise)))
 			  (* (env intrpf-1) (polywave gen2 (+ (env frqf2) (* 2.0 noise))))))))))))
   
-  (defanimal (bald-eagle-2 beg amp)
+  (define-animal (bald-eagle-2 beg amp)
     (let ((dur 0.074))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -7437,7 +7437,7 @@
 				       (* (env rndf)
 					  (rand-interp rnd))))))))))
   
-  (defanimal (bald-eagle-3 beg amp)
+  (define-animal (bald-eagle-3 beg amp)
     (let ((dur 0.074))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -7462,7 +7462,7 @@
 			  (* (env ampf2)
 			     (polywave gen2 (* 2.0 frq)))))))))))
   
-  (defanimal (bald-eagle-4 beg frqscl amp)
+  (define-animal (bald-eagle-4 beg frqscl amp)
     (let ((dur 0.056))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -7495,7 +7495,7 @@
 ;;;
 ;;; Eastern meadowlark
 
-(defanimal (eastern-meadowlark beg amp)
+(define-animal (eastern-meadowlark beg amp)
   (let ((dur 1.65))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -7533,7 +7533,7 @@
 ;;;
 ;;; Yellow-green vireo
 
-(defanimal (yellow-green-vireo beg amp)
+(define-animal (yellow-green-vireo beg amp)
   ;; south 48 3.5
   (let ((dur 0.22))
     (let ((start (seconds->samples beg))
@@ -7567,7 +7567,7 @@
 ;;;
 ;;; Magnolia warbler
 
-(defanimal (magnolia-warbler beg amp)
+(define-animal (magnolia-warbler beg amp)
   ;; east 13 3
   (let ((dur 0.96))
     (let ((start (seconds->samples beg))
@@ -7613,7 +7613,7 @@
 (define (eastern-bluebird beg1 amp1)
   ;; east 75 10
   
-  (defanimal (eastern-bluebird-1 beg amp)
+  (define-animal (eastern-bluebird-1 beg amp)
     (let ((dur 0.285))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -7641,7 +7641,7 @@
 			  (* (env ampf2)
 			     (polywave gen2 (* 1.5 frq)))))))))))
   
-  (defanimal (eastern-bluebird-2 beg amp)
+  (define-animal (eastern-bluebird-2 beg amp)
     (let ((dur 0.33))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -7678,7 +7678,7 @@
 ;;;
 ;;; Greater roadrunner
 
-(defanimal (greater-roadrunner beg amp)
+(define-animal (greater-roadrunner beg amp)
   ;; south 13 3
   (let ((dur 4.36))
     (let ((start (seconds->samples beg))
@@ -7711,7 +7711,7 @@
 ;;;
 ;;; Evening grosbeak
 
-(defanimal (evening-grosbeak beg amp)
+(define-animal (evening-grosbeak beg amp)
   ;; east 98 7.5
   (let ((dur 0.17))
     (let ((start (seconds->samples beg))
@@ -7752,7 +7752,7 @@
 
 (define (dark-eyed-junco beg1 amp1)
   ;; calif 49 3
-  (defanimal (dark-eyed-junco-1 beg amp)
+  (define-animal (dark-eyed-junco-1 beg amp)
     (let ((dur 0.11))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -7783,7 +7783,7 @@
 ;;;
 ;;; Groove-billed ani
 
-(defanimal (groove-billed-ani beg amp)
+(define-animal (groove-billed-ani beg amp)
   ;; south 14 17
   
   ;; first note
@@ -7850,7 +7850,7 @@
 ;;;
 ;;; Common pauraque
 
-(defanimal (common-pauraque beg amp)
+(define-animal (common-pauraque beg amp)
   ;; south 20 1.7
   (let ((dur 0.65))
     (let ((start (seconds->samples beg))
@@ -7880,7 +7880,7 @@
 ;;;
 ;;; Hammond's flycatcher
 
-(defanimal (hammonds-flycatcher beg amp)
+(define-animal (hammonds-flycatcher beg amp)
   ;; calif2 5 8.2
   (let ((dur 0.23))
     (let ((start (seconds->samples beg))
@@ -7915,7 +7915,7 @@
 ;;;
 ;;; not as good as some of the others -- ending slightly wrong, formants need tuning a bit, etc
 
-(defanimal (barn-owl beg amp)
+(define-animal (barn-owl beg amp)
   ;; calif 50 2.9
   (let ((dur 0.9))
     (let ((start (seconds->samples beg))
@@ -7964,7 +7964,7 @@
 ;;;
 ;;; Long-eared owl
 
-(defanimal (long-eared-owl beg amp)
+(define-animal (long-eared-owl beg amp)
   (let ((dur 0.37))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -7990,7 +7990,7 @@
 (define (summer-tanager beg1 amp1)
   ;; calif 24 18
   
-  (defanimal (summer-tanager-1 beg dur amp ampl frq frql rndl)
+  (define-animal (summer-tanager-1 beg dur amp ampl frq frql rndl)
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
 	  (ampf (make-env ampl :duration dur :scaler amp))
@@ -8102,7 +8102,7 @@
 ;;;
 ;;; Whooping crane
 
-(defanimal (whooping-crane beg amp)
+(define-animal (whooping-crane beg amp)
   ;; east 63 53 (is this 2 birds?)
   (let ((dur 0.68))
     (let ((start (seconds->samples beg))
@@ -8155,7 +8155,7 @@
 ;;;
 ;;; Sandhill crane
 
-(defanimal (sandhill-crane beg amp)
+(define-animal (sandhill-crane beg amp)
   ;; calif 30 13
   (let ((dur 0.64))
     (let ((start (seconds->samples beg))
@@ -8200,7 +8200,7 @@
 ;;;
 ;;; Gray-crowned rosy-finch
 
-(defanimal (gray-crowned-rosy-finch beg amp)
+(define-animal (gray-crowned-rosy-finch beg amp)
   ;; calif 64 5.1
   (let ((dur 0.15))
     (let ((start (seconds->samples beg))
@@ -8243,7 +8243,7 @@
 (define (virginia-rail beg amp)
   ;; calif 28 20
   
-  (defanimal (virginia-rail-1 beg amp)
+  (define-animal (virginia-rail-1 beg amp)
     (let ((dur 0.048))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -8263,7 +8263,7 @@
 		     (+ (polywave gen1 (rand-interp rnd))
 			(polywave gen2))))))))
   
-  (defanimal (virginia-rail-2 beg amp)
+  (define-animal (virginia-rail-2 beg amp)
     (let ((dur 0.048))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -8285,7 +8285,7 @@
 		       (+ (polywave gen1 frq)
 			  (polywave gen2 frq)))))))))
   
-  (defanimal (virginia-rail-3 beg amp)
+  (define-animal (virginia-rail-3 beg amp)
     (let ((dur 0.048))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -8332,7 +8332,7 @@
 ;;;
 ;;; this is one of the best so far
 
-(defanimal (sage-sparrow beg amp)
+(define-animal (sage-sparrow beg amp)
   ;; calif 39 4
   
   ;; first 4 pure tones
@@ -8514,7 +8514,7 @@
 ;;;
 ;;; Hairy woodpecker
 
-(defanimal (hairy-woodpecker beg amp)
+(define-animal (hairy-woodpecker beg amp)
   ;; calif 81 10
   (let ((dur 0.08))
     (let ((start (seconds->samples beg))
@@ -8546,7 +8546,7 @@
 ;;;
 ;;; Pacific-slope flycatcher
 
-(defanimal (pacific-slope-flycatcher beg amp)
+(define-animal (pacific-slope-flycatcher beg amp)
   ;; calif 8 22
   (let ((dur 0.3))
     (let ((start (seconds->samples beg))
@@ -8575,7 +8575,7 @@
 ;;;
 ;;; Dusky flycatcher
 
-(defanimal (dusky-flycatcher beg amp)
+(define-animal (dusky-flycatcher beg amp)
   ;; calif 7 20.4
   (let ((dur 0.125))
     (let ((start (seconds->samples beg))
@@ -8604,7 +8604,7 @@
 ;;;
 ;;; Inca dove
 
-(defanimal (inca-dove-1 beg amp)
+(define-animal (inca-dove-1 beg amp)
   ;; south 11 9.6
   (let ((dur 0.76))
     (let ((start (seconds->samples beg))
@@ -8630,7 +8630,7 @@
 ;; (with-sound (:play #t) (inca-dove-1 0 .5))
 
 
-(defanimal (inca-dove-2 beg amp)
+(define-animal (inca-dove-2 beg amp)
   ;; south 11 11.3 ("what the hell")
   (let ((pitch (hz->radians 5150))
 	(dur1 .1)
@@ -8696,7 +8696,7 @@
 ;;;
 ;;; Great kiskadee
 
-(defanimal (great-kiskadee beg amp)
+(define-animal (great-kiskadee beg amp)
   ;; south 37 16.5
   ;; note #1
   (let ((dur 0.123))
@@ -8762,7 +8762,7 @@
 (define (chestnut-sided-warbler beg1 amp1)
   ;; east 12 3.5
   
-  (defanimal (chestnut-sided-warbler-1 beg amp)
+  (define-animal (chestnut-sided-warbler-1 beg amp)
     ;; first 6 notes
     (let ((dur 0.11))
       (let ((start (seconds->samples beg))
@@ -8784,7 +8784,7 @@
 	  (outa i (* (env ampf)
 		     (polywave gen1 (env frqf))))))))
   
-  (defanimal (chestnut-sided-warbler-2 beg amp)
+  (define-animal (chestnut-sided-warbler-2 beg amp)
     ;; notes 7 and 8
     (let ((dur 0.17))
       (let ((start (seconds->samples beg))
@@ -8807,7 +8807,7 @@
 	  (outa i (* (env ampf)
 		     (polywave gen1 (env frqf))))))))
   
-  (defanimal (chestnut-sided-warbler-3 beg amp)
+  (define-animal (chestnut-sided-warbler-3 beg amp)
     ;; last note
     (let ((dur 0.19))
       (let ((start (seconds->samples beg))
@@ -8850,7 +8850,7 @@
 ;;;
 ;;; Yellow-bellied flycatcher
 
-(defanimal (yellow-bellied-flycatcher beg amp)
+(define-animal (yellow-bellied-flycatcher beg amp)
   ;; east 40 3.1
   (let ((dur 0.167))
     (let ((start (seconds->samples beg))
@@ -8902,7 +8902,7 @@
 (define (black-throated-blue-warbler beg1 amp1)
   ;; east 15 9.8
   
-  (defanimal (black-throated-blue-warbler-1 beg dur amp ampf frq frqf ind)
+  (define-animal (black-throated-blue-warbler-1 beg dur amp ampf frq frqf ind)
     (let ((speed 200))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -8954,7 +8954,7 @@
 ;;;
 ;;; Great crested flycatcher
 
-(defanimal (great-crested-flycatcher beg amp)
+(define-animal (great-crested-flycatcher beg amp)
   ;; east 46 6
   (let ((dur 0.318))
     (let ((start (seconds->samples beg))
@@ -9000,7 +9000,7 @@
 ;;;
 ;;; House sparrow
 
-(defanimal (house-sparrow-1 beg amp)
+(define-animal (house-sparrow-1 beg amp)
   ;; east 99 2.9
   (let ((dur 0.144))
     (let ((start (seconds->samples beg))
@@ -9049,7 +9049,7 @@
 ;;;
 ;;; Gambel's quail
 
-(defanimal (gambels-quail beg amp)
+(define-animal (gambels-quail beg amp)
   ;; south 8 3
   (let ((dur 0.56))
     (let ((start (seconds->samples beg))
@@ -9084,7 +9084,7 @@
 (define (scaled-quail beg1 amp1)
   ;; south 7 7
   
-  (defanimal (scaled-quail-1 beg dur amp frqscl frm1frq frm2frq frmamp vibamp vibf amp4 amp5)
+  (define-animal (scaled-quail-1 beg dur amp frqscl frm1frq frm2frq frmamp vibamp vibf amp4 amp5)
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
 	  (ampf (make-env '(0.000 0.000 0.026 0.166 0.052 0.609 0.058 0.250 0.066 0.892 0.070 0.465 0.073 0.909 
@@ -9154,7 +9154,7 @@
 ;;;
 ;;; Montezuma quail
 
-(defanimal (montezuma-quail beg amp)
+(define-animal (montezuma-quail beg amp)
   ;; south 9 15
   (let ((dur 1.3))
     (let ((start (seconds->samples beg))
@@ -9189,7 +9189,7 @@
 ;;;
 ;;; Mountain quail
 
-(defanimal (mountain-quail beg amp)
+(define-animal (mountain-quail beg amp)
   (let ((dur .2))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -9222,7 +9222,7 @@
 ;;;
 ;;; Verdin
 
-(defanimal (verdin beg amp)
+(define-animal (verdin beg amp)
   ;; south 57 18
   (let ((begs (vector 0.0 0.28 0.57))
 	(durs (vector 0.12 0.15 0.15))
@@ -9255,7 +9255,7 @@
 ;;;
 ;;; White-tipped dove
 
-(defanimal (white-tipped-dove beg amp)
+(define-animal (white-tipped-dove beg amp)
   (let ((dur 1.7))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -9279,7 +9279,7 @@
 ;;;
 ;;; Zone-tailed hawk
 
-(defanimal (zone-tailed-hawk beg amp)
+(define-animal (zone-tailed-hawk beg amp)
   (let ((dur 1.82))
     (let ((start (seconds->samples beg))
 	  
@@ -9329,7 +9329,7 @@
 ;;;
 ;;; Red-eyed vireo
 
-(defanimal (red-eyed-vireo beg amp)
+(define-animal (red-eyed-vireo beg amp)
   ;; south 47 46
   (let ((dur 0.29))
     (let ((start (seconds->samples beg))
@@ -9366,7 +9366,7 @@
 ;;;
 ;;; not perfect... original seems to have a harder attack, slightly different timbre, etc
 
-(defanimal (crested-caracara beg amp)
+(define-animal (crested-caracara beg amp)
   ;; south 5 6.5
   
   (do ((i 0 (+ i 1)))
@@ -9404,7 +9404,7 @@
 (define (trumpeter-swan-1 beg amp)
   ;; east 19 44
   
-  (defanimal (trumpeter-swan-a beg amp)
+  (define-animal (trumpeter-swan-a beg amp)
     (let ((dur 0.053))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -9418,7 +9418,7 @@
 	  (outa i (* (env ampf)
 		     (polywave gen1 (* index (oscil vib)))))))))
   
-  (defanimal (trumpeter-swan-b beg amp)
+  (define-animal (trumpeter-swan-b beg amp)
     (let ((dur 0.12))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -9448,7 +9448,7 @@
 			  (* (env ampf1) (oscil gen1 frq))
 			  (* (env ampf3) (nrxysin gen3 (* 9.0 frq)))))))))))
   
-  (defanimal (trumpeter-swan-c beg amp)
+  (define-animal (trumpeter-swan-c beg amp)
     (let ((dur 0.11))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -9473,7 +9473,7 @@
 			  (* (env intrpf-1) (+ (polywave gen2 frq)
 					       (* .03 (nrxysin gen3 (* 9.0 frq)))))))))))))
   
-  (defanimal (trumpeter-swan-d beg amp)
+  (define-animal (trumpeter-swan-d beg amp)
     (let ((dur 0.082))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -9509,7 +9509,7 @@
 			  (* (env ampf4)
 			     (polywave gen4 frq))))))))))
   
-  (defanimal (trumpeter-swan-e beg amp)
+  (define-animal (trumpeter-swan-e beg amp)
     (let ((dur 0.04)
 	  (frq 434))
       (let ((start (seconds->samples beg))
@@ -9548,7 +9548,7 @@
 (define (wrentit beg1 amp1)
   ;; calif 1 3
   
-  (defanimal (wrentit-1 beg dur amp frqscl)
+  (define-animal (wrentit-1 beg dur amp frqscl)
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
 	  (ampf (make-env '(0.000 0.000 0.095 0.221 0.193 0.692 0.293 0.814 0.380 0.727 0.486 1.000 0.543 0.972 
@@ -9563,7 +9563,7 @@
 	(outa i (* (env ampf)
 		   (polywave gen1 (env frqf)))))))
   
-  (defanimal (wrentit-2 beg dur amp frqscl)
+  (define-animal (wrentit-2 beg dur amp frqscl)
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
 	  (ampf (make-env '(0.000 0.000 0.091 0.616 0.150 0.724 0.195 0.667 0.259 0.686 0.387 1.000 0.447 0.770 
@@ -9620,7 +9620,7 @@
 ;;;
 ;;; Western wood-pewee
 
-(defanimal (western-wood-pewee-1 beg amp)
+(define-animal (western-wood-pewee-1 beg amp)
   ;; calif 2 8
   (let ((dur 0.89))
     (let ((start (seconds->samples beg))
@@ -9655,7 +9655,7 @@
 
 ;; (with-sound (:play #t) (western-wood-pewee-1 0 .5))
 
-(defanimal (western-wood-pewee-2 beg amp)
+(define-animal (western-wood-pewee-2 beg amp)
   (let ((dur 0.69))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -9689,7 +9689,7 @@
 ;;;
 ;;; Cedar waxwing
 
-(defanimal (cedar-waxwing beg amp)
+(define-animal (cedar-waxwing beg amp)
   ;; probably the simplest bird call
   ;; calif 10 10 (hard to find one call by itself)
   ;;   a cleaner original is east 3 3 with a slightly sharper frq env
@@ -9718,7 +9718,7 @@
 (define (townsends-solitaire beg1 amp1)
   ;; calif 67 33
   
-  (defanimal (townsends-solitaire-1 beg amp)
+  (define-animal (townsends-solitaire-1 beg amp)
     (let ((dur 0.15))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -9737,7 +9737,7 @@
 	  (outa i (* (env ampf)
 		     (polywave gen1 (env frqf))))))))
   
-  (defanimal (townsends-solitaire-2 beg amp)
+  (define-animal (townsends-solitaire-2 beg amp)
     (let ((dur 0.037))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -9754,7 +9754,7 @@
 	  (outa i (* (env ampf)
 		     (polywave gen1 (env frqf))))))))
   
-  (defanimal (townsends-solitaire-3 beg amp)
+  (define-animal (townsends-solitaire-3 beg amp)
     (let ((dur 0.323))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -9779,7 +9779,7 @@
 	  (outa i (* (env ampf)
 		     (polywave gen1 (env frqf))))))))
   
-  (defanimal (townsends-solitaire-4 beg amp)
+  (define-animal (townsends-solitaire-4 beg amp)
     (let ((dur 0.217))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -9802,7 +9802,7 @@
 	  (outa i (* (env ampf)
 		     (polywave gen1 (env frqf))))))))
   
-  (defanimal (townsends-solitaire-5 beg amp)
+  (define-animal (townsends-solitaire-5 beg amp)
     (let ((dur 0.007))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -9834,7 +9834,7 @@
 ;;;
 ;;; Canada goose
 
-(defanimal (canada-goose-1 beg amp)
+(define-animal (canada-goose-1 beg amp)
   ;; east 21 28
   (let ((dur 0.375))
     (let ((start (seconds->samples beg))
@@ -9879,7 +9879,7 @@
 			   (* (env ampf6) (nrxysin gen6 (* 3.0 frq)))
 			   (* (env humf) (oscil hum (* .25 frq))))))))))))
 
-(defanimal (canada-goose-2 beg amp)
+(define-animal (canada-goose-2 beg amp)
   (let ((dur 0.245))
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
@@ -9922,7 +9922,7 @@
 			   (* (env ampf6) (nrxysin gen6 (* 3.0 frq)))
 			   (* (env humf) (oscil hum (* .25 frq))))))))))))
 
-(defanimal (canada-goose-3 beg amp)
+(define-animal (canada-goose-3 beg amp)
   ;; east 21 29
   (let ((dur 0.33))
     (let ((start (seconds->samples beg))
@@ -9982,7 +9982,7 @@
 ;;;
 ;;; Pine warbler
 
-(defanimal (pine-warbler beg amp)
+(define-animal (pine-warbler beg amp)
   ;; east 21 3
   
   (let ((call-ampf (make-env '(0 .05 1 .2  3 .8 5 1 10 1 16 .4) :length 16))
@@ -10026,7 +10026,7 @@
 (define (black-throated-sparrow beg1 amp1)
   ;; south 85 2
   
-  (defanimal (black-throated-sparrow-1 beg amp)
+  (define-animal (black-throated-sparrow-1 beg amp)
     (let ((dur .034))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -10042,7 +10042,7 @@
 	  (outa i (* (env ampf)
 		     (polywave gen1 (env frqf))))))))
   
-  (defanimal (black-throated-sparrow-2 beg amp)
+  (define-animal (black-throated-sparrow-2 beg amp)
     (let ((dur .11))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -10062,7 +10062,7 @@
 	  (outa i (* (env ampf)
 		     (polywave gen1 (env frqf))))))))
   
-  (defanimal (black-throated-sparrow-3 beg amp)
+  (define-animal (black-throated-sparrow-3 beg amp)
     (let ((dur .153))
       (let ((start (seconds->samples beg))
 	    (stop (seconds->samples (+ beg dur)))
@@ -10104,7 +10104,7 @@
 ;;;
 ;;; Cape May warbler
 
-(defanimal (cape-may-warbler beg amp)
+(define-animal (cape-may-warbler beg amp)
   ;; east 14 2
   
   ;; note #1
@@ -10159,7 +10159,7 @@
 (define (kirtlands-warbler beg1 amp1)
   ;; east 22 3
   
-  (defanimal (kirtlands-warbler-1 beg dur frqscl frqenv ampscl ampenv)
+  (define-animal (kirtlands-warbler-1 beg dur frqscl frqenv ampscl ampenv)
     (let ((start (seconds->samples beg))
 	  (stop (seconds->samples (+ beg dur)))
 	  (ampf (make-env ampenv :duration dur :scaler ampscl))
@@ -10248,7 +10248,7 @@
 ;;;
 ;;; reverb in original makes this hard to match
 
-(defanimal (wood-duck beg amp)
+(define-animal (wood-duck beg amp)
   ;; east 22 19
   (let ((dur 0.75))
     (let ((start (seconds->samples beg))
@@ -10302,7 +10302,7 @@
 ;;;
 ;;; White-eyed vireo
 
-(defanimal (white-eyed-vireo beg amp)
+(define-animal (white-eyed-vireo beg amp)
   ;; south 41 2
   
   ;; note #1
@@ -10422,7 +10422,7 @@
 ;;;
 ;;; Willet
 
-(defanimal (willet beg amp)
+(define-animal (willet beg amp)
   ;; calif2 36 2
   
   ;; note #1
@@ -10461,7 +10461,7 @@
 ;;;
 ;;; Philadelphia vireo
 
-(defanimal (philadelphia-vireo beg amp)
+(define-animal (philadelphia-vireo beg amp)
   ;; east 58 3
   (let ((dur 0.364))
     (let ((start (seconds->samples beg))
@@ -10492,7 +10492,7 @@
 ;;;
 ;;; Black-crowned night heron
 
-(defanimal (black-crowned-night-heron beg amp)
+(define-animal (black-crowned-night-heron beg amp)
   ;; east 15 6
   (let ((dur 0.145))
     (let ((start (seconds->samples beg))
@@ -10529,7 +10529,7 @@
 ;;;
 ;;; Scrub Euphonia
 
-(defanimal (scrub-euphonia beg amp)
+(define-animal (scrub-euphonia beg amp)
   ;; arizona 90 3.0
   (let ((dur 0.49))
     (let ((start (seconds->samples beg))
@@ -10558,7 +10558,7 @@
 ;;;
 ;;; Greater pewee
 
-(defanimal (greater-pewee beg1 amp)
+(define-animal (greater-pewee beg1 amp)
   ;; arizona 52 2
   
   (define (greater-pewee-first-and-last beg)
@@ -10613,7 +10613,7 @@
 ;;;
 ;;; Brown-crested flycatcher
 
-(defanimal (brown-crested-flycatcher-1 beg amp)
+(define-animal (brown-crested-flycatcher-1 beg amp)
   ;; calif 13 7
   (let ((dur 0.66))
     (let ((start (seconds->samples beg))
@@ -10650,7 +10650,7 @@
 ;; (with-sound (:play #t) (brown-crested-flycatcher-1 0 .5))
 
 
-(defanimal (brown-crested-flycatcher-2 beg amp)
+(define-animal (brown-crested-flycatcher-2 beg amp)
   ;; calif 13 63.5
   (let ((dur 0.47))
     (let ((start (seconds->samples beg))
diff --git a/clm.html b/clm.html
new file mode 100644
index 0000000..8de6ca2
--- /dev/null
+++ b/clm.html
@@ -0,0 +1,4565 @@
+<!DOCTYPE html>
+
+<html lang="en">
+<head>
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
+<title>CLM</title>
+<style type="text/css">
+	EM.red {color: red; font-style: normal}
+	EM.gen {font-weight: bold; font-style: normal}
+        EM.tab {font-style: normal; font-size: small}
+	EM.emdef {font-weight: bold; font-style: normal}
+	H1 {text-align: center}
+	UL {list-style-type: none}
+
+	A {text-decoration:none}
+	A:hover {text-decoration:underline}
+	A.quiet {color:black; text-decoration:none}
+	A.quiet:hover {text-decoration:underline}
+	A.def {font-weight: bold; font-style: normal; text-decoration:none; text-color:black}
+	A.olddef {font-style: normal; text-decoration:none; color:gray}
+	EM.gray {color:gray; font-style: normal}
+	EM.def {font-weight: bold; font-style: normal; text-decoration:none; text-color:black}
+	EM.noem {font-style: normal}
+
+        TABLE.borderspaced {margin-top: 0.5cm;
+	              margin-bottom: 0.5cm;
+		      margin-left: 0.5cm;
+		      border: 8px solid gray;
+		      }	
+	TH.beige {background-color: beige;
+	          border: 1px solid black;
+		  padding-left: 0.2cm;
+		  padding-right: 0.2cm;
+		  padding-top: 0.1cm;
+		  padding-bottom: 0.1cm;
+		  }
+	TD.br {border: 1px solid lightgray;
+		  padding-left: 0.2cm;
+		  padding-right: 0.2cm;
+		  padding-top: 0.1cm;
+		  padding-bottom: 0.1cm;
+	       }
+        TD.green {background-color: lightgreen}
+	TD.bluish {background-color: #f2f4ff;
+                  padding-right: 1.0cm;
+		  padding-top: 0.1cm;
+		  }
+        TD.greenish {background-color: #eefdee}
+
+        PRE.indented {padding-left: 1.0cm;
+	             }
+
+        TABLE.b4 {border: 4px solid lightgray;
+	         /* padding-left: 0.5cm; */
+		  padding-right: 0.5cm;	
+		  padding-top: 0.5cm;	
+		  padding-bottom: 0.5cm;
+		  margin-top: 0.5cm;
+		  margin-bottom: 0.5cm;	
+		  margin-left: 1.0cm;
+                 }	    
+        TABLE.b1 {/* border: 1px solid black; */
+	          padding-left: 1.0cm;
+		  /* padding-right: 0.1cm;	*/
+		  /*  padding-top: 0.1cm;	*/
+		  /* padding-bottom: 0.1cm;	*/
+                 }
+        TABLE.spaced {margin-top: 0.5cm;
+	              margin-bottom: 0.5cm;
+		      margin-left: 0.5cm;
+		      }		 
+        TABLE.method {margin-top: 0.2cm;
+                      margin-bottom: 0.2cm;
+		      margin-left: 1.0cm;
+		      border: 1px solid gray;
+		      padding-left: 0.1cm;
+		      padding-right: 0.1cm;
+		      padding-top: 0.1cm;
+		      padding-bottom: 0.1cm;
+		      }	    
+        TD.title {background-color: beige;
+		  border: 1px solid gray;
+		  padding-top: 0.2cm;	
+		  padding-bottom: 0.2cm;
+		  text-align: center;
+		  }
+        TD.inner {padding-right: 0.5cm;
+	          padding-top: 0.1cm;
+	         }
+	DIV.center {text-align: center}
+        BODY.body {background-color: #ffffff;    /* white */
+	           margin-left: 0.5cm; 
+                   }
+        DIV.centered1 {padding-left: 35%;
+	               padding-bottom: 0.5cm;
+		       }
+        DIV.topheader {margin-top: 10px;
+	            margin-bottom: 40px;
+	            border: 4px solid #00ff00; /* green */
+		    background-color: #f5f5dc; /* beige */
+		    font-family: 'Helvetica';
+		    font-size: 30px;
+		    text-align: center;
+		    padding-top: 10px;
+		    padding-bottom: 10px;
+	           }
+        DIV.header {margin-top: 50px;
+	            margin-bottom: 10px;
+		    font-size: 20px;
+		    font-weight: bold;
+	            border: 4px solid #00ff00; /* green */
+		    background-color: #f5f5dc; /* beige */
+		    text-align: center;
+		    padding-top: 20px;
+		    padding-bottom: 20px;
+	           }
+        DIV.innerheader {margin-top: 60px;
+	            margin-bottom: 30px;
+	            border: 4px solid #00ff00; /* green */
+		    background-color: #eefdee; /* lightgreen */
+		    padding-left: 30px;
+		    width: 50%;
+		    padding-top: 20px;
+		    padding-bottom: 20px;
+	           }
+	DIV.related {text-align:center;
+	             border: 1px solid lightgray;
+		     margin-bottom: 1.0cm;
+		     margin-top: 1.0cm;
+		     padding-top: 10px;
+		     padding-bottom: 10px;
+		     background-color: #f0f0f0;
+	            }
+</style>
+</head>
+
+
+<body class="body">
+
+<div class="topheader">CLM</div>
+
+<p>CLM (originally an acronym for Common Lisp Music) is a sound synthesis
+package in the Music V family.  It provides much the same functionality as
+Stk, Csound, SuperCollider, PD, CMix, cmusic, and Arctic — a collection of functions
+that create and manipulate sounds, aimed primarily at composers (in CLM's
+case anyway).  The instrument builder plugs together these functions
+(called generators here), along with general programming glue to
+make computer instruments.  These are then called in a note list
+or through some user interface (provided by Snd, for example).
+</p>
+
+<p>
+CLM exists in several forms: 
+the original Common Lisp implementation (clm-4.tar.gz), 
+a C version (sndlib.tar.gz), 
+a Scheme version (sndlib.tar.gz with s7), Ruby (sndlib again but using Ruby),
+and Forth (sndlib).  The Scheme, Ruby, and Forth versions are also built into
+the Snd editor (snd-13.tar.gz).
+This document is aimed at the Common Lisp version in clm-4.tar.gz.  See sndclm.html
+in the Snd tarball for the Scheme/Ruby/Forth/C version (sndclm.html has much more
+information than this file).
+There are a variety of unavoidable differences between these
+versions, but in general, the differences are obvious and consistent: Lisp "-" becomes
+C "_", "?" becomes "_p", "->" becomes "_to_", and so on, so the function
+named mus_oscil in C, becomes oscil elsewhere, mus_oscil_p becomes oscil?,
+and mus_hz_to_radians becomes hz->radians in Lisp/Scheme. 
+If you'd like to compare
+a standard instrument in the various implementations, check out the
+fm-violin: v.ins (Common Lisp), v.scm (Scheme), v.rb (Ruby), clm-ins.fs (Forth),
+and sndlib.html (C). 
+</p>
+
+<p>CLM has several sections: <a href="#generators">"generators"</a>, instruments
+(<a href="#definstrument">definstrument</a> and *.ins), examples of note lists
+(<a href="#with-sound">with-sound</a>, *.clm), a "make" facility for sound files (<a href="#with-mix">with-mix</a>), 
+and various functions that are useful in sound file work.
+CLM is available free, via anonymous ftp (<a href="ftp://ccrma-ftp.stanford.edu/pub/Lisp/clm-4.tar.gz">pub/Lisp/clm-4.tar.gz</a> at
+ccrma-ftp.stanford.edu).
+</p>
+
+<div class="centered1">Bill Schottstaedt (bil at ccrma.stanford.edu)</div>
+
+<div class="related">
+related documentation:  
+<a href="snd.html">snd.html  </a>
+<a href="extsnd.html">extsnd.html  </a>
+<a href="grfsnd.html">grfsnd.html  </a>
+<a href="sndscm.html">sndscm.html  </a>
+<a href="sndclm.html">sndclm.html  </a>
+<a href="sndlib.html">sndlib.html  </a>
+<a href="cl-fm.html">cl-fm.html  </a>
+</div>
+
+
+<div class="header">Contents</div>
+
+<ul>
+<li><a href="#introduction">Introduction</a>
+<li><a href="#instruments">Instruments</a>
+<ul>
+<li><small><a href="#generators">Generators</a></small>
+<li><small><a href="#generic-functions">Generic Functions</a></small>
+<li><small><a href="#soundio">Sound file IO</a></small>
+<li><small><a href="#functions">Useful functions</a></small>
+<li><small><a href="#def-clm-struct">def-clm-struct</a></small>
+<li><small><a href="#definstrument">Definstrument</a></small>
+</ul>
+<li><a href="#note-lists">Note Lists</a>
+<ul>
+<li><small><a href="#with-sound">With-sound</a></small>
+<li><small><a href="#mix-and-with-mix">With-mix</a></small>
+<li><small><a href="#sound-let">Sound-let</a></small>
+</ul>
+<li><a href="#debugging-aids">Debugging</a>
+<li><a href="#appendices">Appendices</a>
+<ul>
+<li><small><a href="#header-types">Header and data types supported in CLM</a></small>
+<li><small><a href="#clm-init.lisp">Example of clm-init.lisp</a></small>
+<li><small><a href="#savedimages">About CLM in saved images</a></small>
+</ul>
+</ul>
+
+
+
+<div class="header" id="introduction">Introduction</div>
+
+<p>CLM provides functions to experiment with sounds.
+The easiest way to make a new sound is 
+<a href="#with-sound">with-sound</a>.  Say we want to hear one second of the fm violin (in <a href="v.ins">v.ins</a>,
+named fm-violin) at 440 Hz, and a somewhat soft amplitude.  Compile v.ins and load v, then call with-sound:</p>
+
+<pre class="indented">
+(compile-file "v.ins")
+(load "v")
+(<a class=quiet href="#with-sound">with-sound</a> () (fm-violin 0 1 440 .1)) 
+</pre>
+
+<p>and the note should emerge from the speakers.  (In CMU-CL, load v.cmucl, not v.x86f). The compile and load sequence can be abbreviated
+in most lisps. 
+Once loaded, we don't
+need to reload v unless we change it in some way.  
+To get an arpeggio:</p>
+
+<pre class="indented">
+(<a class=quiet href="#with-sound">with-sound</a> ()
+  (loop for i from 0 to 7 do
+    (fm-violin (* i .25) .5 (* 100 (1+ i)) .1))) 
+</pre>
+
+<p><a href="clm-example.lisp">clm-example.lisp</a> shows how to create such a note list algorithmically.
+To listen to the last computed sound again:
+</p>
+
+<pre class="indented">
+(play)
+</pre>
+
+<p>or, if you have some saved sound file:
+</p>
+
+<pre class="indented">
+(<a class=quiet href="#dac">play</a> "a-great.snd")
+</pre>
+
+<p>Although you can use CLM simply as a bunch of canned functions, it's a lot more
+fun to make your own.  In CLM, these are called instruments, and a sequence of
+instrumental calls is a note list.  
+To create your own instrument, you need to write the function that expresses
+in CLM's terms the sound processing actions you want.
+In the simplest case, you can just calculate your new
+value, and add it into the current output:</p>
+
+<pre class="indented">
+(definstrument simp (start-time duration frequency amplitude)
+  (let* ((beg (floor (* start-time *srate*)))
+	 (end (+ beg (floor (* duration *srate*))))
+	 (j 0))
+    (run
+      (loop for i from beg below end do
+        (<a class=quiet href="#outa">outa</a> i (* amplitude (sin (* j 2.0 pi (/ frequency *srate*)))))
+	(incf j)))))
+</pre>
+
+<p>Now to hear our sine wave, place this code in a file, say simp.ins, compile and load it, then:</p>
+
+<pre class="indented">
+(<a class=quiet href="#with-sound">with-sound</a> () (simp 0 0.25 440.0 0.2))
+</pre>
+
+<p>This creates a sine-wave at 440.0 Hz, 0.2 amplitude, between times 0 and
+0.25 seconds.  The line:</p>
+
+<pre class="indented">
+(definstrument simp (start-time duration frequency amplitude) <!-- ) -->
+</pre>
+
+<p>says that we are defining an instrument (via definstrument) named simp which
+takes the four parameters start-time, duration, frequency, and amplitude.
+The next two lines:</p>
+
+<pre class="indented">
+(let* ((beg (floor (* start-time *srate*)))
+       (end (+ beg (floor (* duration *srate*))))) <!-- ) -->
+</pre>
+
+<p>turn the start-time and duration values, passed by the caller in
+terms of seconds, into samples.  The variable *srate*
+holds the current sampling rate.
+The "run" macro is an optimizer;
+it turns its body into a C foreign function call.
+The next
+line:</p>
+
+<pre class="indented">
+(loop for i from beg below end and j from 0 by 1 do <!-- ) -->
+</pre>
+
+<p>uses the Lisp loop construct to loop through the samples
+between the start time in samples (beg) and the end point (end) calculating
+simp's output on each sample.  We are also using the variable j
+to increment the current phase in the last line:</p>
+
+<pre class="indented">
+(<a class=quiet href="#outa">outa</a> i (* amplitude (sin (* j 2.0 pi (/ frequency *srate*)))))))) <!-- ((( -->
+</pre>
+
+<p>This is the heart of our instrument.  The call (<a href="#outa">outa</a> i ...)
+adds its third argument (in this case a complicated expression) into channel 0 of the
+current output stream at sample i.  The expression:</p>
+
+<pre class="indented">
+(* amplitude (sin (* j 2.0 pi (/ frequency *srate*)))))))) <!-- (((( -->
+</pre>
+
+<p>is creating a sinusoid (via the "sin" function) at the specified
+volume ("amplitude" is passed as an argument to simp), and the
+desired frequency ("frequency" is also an argument to simp).  The
+caller passes simp a frequency in cycles per second (440.0 for
+example), but we need to turn that into the corresponding phase
+value for the "sin" function.  We do that by translating from
+cycles per second to radians per sample by multiplying by two pi
+(this multiply gives us radians
+per second), then dividing by the sampling rate (samples per
+second) to give us radians per sample (i.e. radians/second
+divided by samples/second gives radians/sample); we then multiply
+by "j" to step forward on each sample. 
+Finally, the line:</p>
+
+<pre class="indented">
+(<a class=quiet href="#with-sound">with-sound</a> () (simp 0 0.25 440.0 0.2))
+</pre>
+
+<p>opens an output sound file, calls simp, closes the file, and
+plays the result.  
+We need to put the instrument definition in a separate file
+and compile and load it; we can't just paste it into the listener (this limitation applies only to the Common Lisp CLM).
+</p>
+
+<p>We can simplify simp by using <b>oscil</b> for the sinusoid and
+<b>hz->radians</b>.  <b>make-oscil</b> creates an oscil generator;
+similarly <b>make-env</b> creates an envelope generator:
+</p>
+
+<pre class="indented">
+(<a class=quiet href="#definstrument">definstrument</a> simp (start-time duration frequency amplitude &optional (amp-env '(0 0 .5 1.0 1.0 0)))
+  (multiple-value-bind (beg end) (<a class=quiet href="#timestosamples">times->samples</a> start-time duration)
+    (let ((osc (<a class=quiet href="#make-oscil">make-oscil</a> :frequency frequency))
+	  (amp-env (<a class=quiet href="#make-env">make-env</a> amp-env :scaler amplitude :duration duration)))
+      (run 
+       (loop for i from beg below end do
+	 (<a class=quiet href="#outa">outa</a> i (* (<a class=quiet href="#env">env</a> amp-env) (<a class=quiet href="#oscil">oscil</a> osc))))))))
+</pre>
+
+<p>Our envelope is a list of (x y) break-point pairs.  The
+x-axis bounds are arbitrary, but it is conventional (here at ccrma) to
+go from 0 to 1.0.  The y-axis values are normally between -1.0 and
+1.0, to make it easier to figure out how to apply the envelope in
+various different situations.  In this case, our envelope is a ramp up
+to the middle of the note: "(0.0 0.0 0.5 1.0)", then a ramp down to 0. 
+The <a href="#env">env</a> generator produces the envelope on a sample-by-sample
+basis.
+</p>
+
+<p>If you make a change to an instrument, just recompile and reload it to
+use the changed version; there's no need to restart lisp, or unload the old version (in most
+lisps there's actually no way to unload it).
+</p>
+
+
+<div class="header" id="instruments">Instruments</div>
+
+<p>The normal structure of an instrument is:</p>
+
+<pre class="indented">
+(definstrument name (args) (setup code (run run-time code)))
+</pre>
+
+<p>The setup code creates any needed generators for the
+run-time code which actually generates the samples.
+The run-time code can contain any of the lisp functions (generators etc)
+described in the next several sections.  Since life is short,
+not every feature of lisp is supported by the <em class=def id="run">run</em> macro; 
+I've concentrated on those that have been useful in the past, so let me know
+if you need something new!
+</p>
+
+<em class=def id="lisp-functions"></em>
+<!-- INDEX lisp-functions:Run support for Lisp -->
+<p>Lisp functions that can occur within the body of the run macro:</p>
+
+<pre class="indented">
++  /  *  -  1+  1-  incf decf setf setq
+ =  /=  <  >  <=  >=  zerop plusp  
+minusp oddp evenp max min abs mod rem identity
+floor ceiling round truncate signum sqrt random float
+ash log expt exp sin cos tan asin acos atan cosh sinh tanh asinh acosh atanh
+erf erfc lgamma bes-j0 bes-j1 bes-jn bes-y0 bes-y1 bes-yn bes-i0
+or and not null if unless when cond progn prog1 prog2 case tagbody go 
+error warn print princ terpri probe-file
+block return return-from let let* loop do do* dotimes declare
+lambda apply loop-finish
+aref elt svref array-total-size array-in-bounds-p array-rank array-dimension
+integerp numberp floatp realp eq eql arrayp
+</pre>
+
+<p>The function <em class=def id="clm-print">clm-print</em> stands in for Lisp's
+format — I don't support all of format's
+options, but enough to be useful, I hope.  clm-print's syntax is (clm-print
+format-string &rest args). It is also possible to write to a file:
+</p>
+
+<pre class="indented">
+(definstrument fileit ()
+  (let ((file (c-open-output-file "test.clm-data")))
+    (run
+     (loop for i from 0 to 10 do
+       (clm-print file "hiho ~D " i)))
+    (c-close file)))
+</pre>
+
+<p>
+Loop is expanded as a macro and anything in
+the loop syntax is ok if it expands into something else mentioned above (i.e. a
+lambda form with go's and so forth). 
+</p>
+
+<p>
+Declare can be used to set the variable types and debugging options.
+Since the run macro can't always tell what type a variable is, it will
+generate run-time code to figure out the type.  The generated code will
+be faster and tighter (and a lot easier to read) if you use declare to
+tell run what the types are.
+In Common Lisp, the recognized types are :integer, :float, :string, :boolean, :bignum (sample number),
+:double*, :int*, :mus-any, and :mus-any* (the keyword package
+is used to avoid endless CL package name troubles).
+</p>
+
+
+<!-- INDEX generators:Generators -->
+
+<div class="header" id="generators">Generators</div>
+
+
+<table class="b4">
+<tr><td>
+<table class="b1">
+  <tr><td><a href="#all-pass">all-pass</a></td><td>all-pass filter</td></tr>
+  <tr><td><a href="#asymmetric-fm">asymmetric-fm</a></td><td>asymmetric fm</td></tr>
+  <tr><td><a href="#comb">comb</a></td><td>comb filter</td></tr>
+  <tr><td><a href="#convolve">convolve</a></td><td>convolution</td></tr>
+  <tr><td><a href="#delay">delay</a></td><td>delay line</td></tr>
+  <tr><td><a href="#env">env</a></td><td>line segment envelope</td></tr>
+  <tr><td><a href="#filter">filter</a></td><td>direct form FIR/IIR filter</td></tr>
+  <tr><td><a href="#filtered-comb">filtered-comb</a></td><td>comb filter with filter on feedback</td></tr>
+  <tr><td><a href="#fir-filter">fir-filter</a></td><td>FIR filter</td></tr>
+  <tr><td><a href="#formant">formant</a></td><td>resonance</td></tr>
+  <tr><td><a href="#granulate">granulate</a></td><td>granular synthesis</td></tr>
+  <tr><td><a href="#iir-filter">iir-filter</a></td><td>IIR filter</td></tr>
+  <tr><td><a href="#in-any">in-any</a></td><td>sound file input</td></tr>
+  <tr><td><a href="#locsig">locsig</a></td><td>static sound placement</td></tr>
+  <tr><td><a href="#move-sound">move-sound</a></td><td>sound motion</td></tr>
+  <tr><td><a href="#moving-average">moving-average</a></td><td>moving window average</td></tr>
+  <tr><td><a href="#ncos">ncos</a></td><td>sum of equal amplitude cosines</td></tr>
+  <tr><td><a href="#notch">notch</a></td><td>notch filter</td></tr>
+  <tr><td><a href="#nsin">nsin</a></td><td>sum of equal amplitude sines</td></tr>
+  <tr><td><a href="#nrxycos">nrxycos</a></td><td>sum of n scaled cosines</td></tr>
+  <tr><td><a href="#nrxysin">nrxysin</a></td><td>sum of n scaled sines</td></tr>
+</table>
+</td><td>
+<table class="b1">
+  <tr><td><a href="#one-pole">one-pole</a></td><td>one pole filter</td></tr>
+  <tr><td><a href="#one-zero">one-zero</a></td><td>one zero filter</td></tr>
+  <tr><td><a href="#oscil">oscil</a></td><td>sine wave and FM</td></tr>
+  <tr><td><a href="#out-any">out-any</a></td><td>sound output</td></tr>
+  <tr><td><a href="#polyshape">polywave and polyshape</a></td><td>waveshaping</td></tr>
+  <tr><td><a href="#phase-vocoder">phase-vocoder</a></td><td>vocoder analysis and resynthesis</td></tr>
+  <tr><td><a href="#pulse-train">pulse-train</a></td><td>pulse train</td></tr>
+  <tr><td><a href="#rand">rand,rand-interp</a></td><td>random numbers, noise</td></tr>
+  <tr><td><a href="#readin">readin</a></td><td>sound input</td></tr>
+  <tr><td><a href="#sawtooth-wave">sawtooth-wave</a></td><td>sawtooth</td></tr>
+  <tr><td><a href="#square-wave">square-wave</a></td><td>square wave</td></tr>
+  <tr><td><a href="#src">src</a></td><td>sampling rate conversion</td></tr>
+  <tr><td><a href="#ssb-am">ssb-am</a></td><td>single sideband amplitude modulation</td></tr>
+  <tr><td><a href="#table-lookup">table-lookup</a></td><td>interpolated table lookup</td></tr>
+  <tr><td><a href="#tap">tap</a></td><td>delay line tap</td></tr>
+  <tr><td><a href="#triangle-wave">triangle-wave</a></td><td>triangle wave</td></tr>
+  <tr><td><a href="#two-pole">two-pole</a></td><td>two pole filter</td></tr>
+  <tr><td><a href="#two-zero">two-zero</a></td><td>two zero filter</td></tr>
+  <tr><td><a href="#wave-train">wave-train</a></td><td>wave train</td></tr>
+</table>
+</td></tr>
+</table>
+
+
+
+<p>A generator is a function that returns the next sample in an infinite stream of samples
+each time it is called.  An oscillator, for example, returns an endless sine wave, one sample
+at a time.  
+Each generator consists of a set of functions:  Make-<gen> sets up the
+data structure associated with the generator at initialization time;
+<gen> produces a new sample;
+<gen>? checks whether a variable is that kind of generator.
+Internal fields are accessible via various generic functions such as mus-frequency.
+</p>
+
+<pre class="indented">
+(setf oscillator (<a class=quiet href="#make-oscil">make-oscil</a> :frequency 330))
+</pre>
+
+<p>prepares oscillator to produce a sine wave
+when set in motion via</p>
+
+<pre class="indented">
+(<a class=quiet href="#oscil">oscil</a> oscillator)
+</pre>
+
+<p>(<a class=quiet href="#oscil?">oscil?</a> oscillator) returns t, and (<a class=quiet href="#mus-frequency">mus-frequency</a> oscillator) returns 330.
+The initialization function (make-oscil above)
+normally takes a number of optional arguments, setting whatever choices need to be made to specify the
+generator's behavior.  The run-time function (oscil above) always takes the generator as its first argument.
+Its second argument is nearly always
+something like an FM input; in a few cases, it is a function to provide input data or editing operations.
+Frequency sweeps of all kinds (vibrato, glissando, breath
+noise, FM proper) are all forms of run-time frequency modulation.  So, in
+normal usage, our oscillator looks something like:</p>
+
+<pre class="indented">
+(<a class=quiet href="#oscil">oscil</a> oscillator (+ vibrato glissando frequency-modulation))
+</pre>
+
+<p>
+Frequencies are always in cycles per
+second (also known as Hz).  The
+FM (or frequency change) argument is assumed to be a phase change in radians,
+applied on each sample.  Normally composers would rather think in terms of
+Hz, so the function <a href="#hztoradians">hz->radians</a> can be used to convert from units of cycles
+per second to radians per sample.
+</p>
+
+<p>Finally, one special aspect of the make-<gen> functions is the way they
+read their arguments.  I use the word <em class=def id="optional-key">optional-key</em>
+in the function definitions in this document to indicate that the arguments are
+keywords, but the keywords themselves are optional.
+Take the make-oscil call, defined as:</p>
+
+<pre class="indented">
+make-oscil &optional-key (frequency *clm-default-frequency*) (initial-phase 0.0)
+</pre>
+
+<p>When make-oscil is called, it scans its arguments; if a keyword is seen, that
+argument and all following arguments are passed unchanged, but if a value is
+seen, the corresponding keyword is prepended in the argument list:
+</p>
+
+<pre class="indented">
+(<a class=quiet href="#make-oscil">make-oscil</a> :frequency 440.0)
+(<a class=quiet href="#make-oscil">make-oscil</a> :frequency 440.0 :initial-phase 0.0)
+(<a class=quiet href="#make-oscil">make-oscil</a> 440.0)
+(<a class=quiet href="#make-oscil">make-oscil</a>)
+(<a class=quiet href="#make-oscil">make-oscil</a> 440.0 :initial-phase 0.0)
+(<a class=quiet href="#make-oscil">make-oscil</a> 440.0 0.0)
+</pre>
+
+<p>are all equivalent, but</p>
+
+<pre class="indented">
+(<a class=quiet href="#make-oscil">make-oscil</a> :frequency 440.0 0.0)
+(<a class=quiet href="#make-oscil">make-oscil</a> :initial-phase 0.0 440.0)
+</pre>
+
+<p>are in error, because once we see any keyword, all the rest of the arguments have
+to use keywords too (we can't reliably make any assumptions after that point about argument
+ordering).  If this is confusing, just use the keywords all the time.  I implemented this somewhat
+unusual argument interpretation because
+in many cases it is silly to insist on the keyword; for example, in make-env,
+the envelope argument is obvious and can't be confused with any other argument, so
+it's an annoyance to have to say ":envelope" over and over.  Keyword arguments are also
+useful when there are so many arguments to a function that it becomes impossible to
+remember what they are and what order they come in.
+</p>
+
+
+
+<!--  OSCIL  -->
+
+<div class="innerheader">oscil</div>
+
+<pre class="indented">
+<em class=def id="make-oscil">make-oscil</em> <a class=quiet href="#optional-key">&optional-key</a> (frequency *clm-default-frequency*) (initial-phase 0.0)
+<em class=def id="oscil">oscil</em> os &optional (fm-input 0.0) (pm-input 0.0)
+<em class=def id="oscil?">oscil?</em> os
+</pre>
+
+<p><b>oscil</b> produces a sine wave (using sin) with optional frequency change (i.e. FM).
+Its first argument is an oscil created by <b>make-oscil</b>.
+Oscil's second (optional) argument is the current (sample-wise)
+frequency change.  The optional third argument is the (sample-wise)
+phase change (in addition to the carrier increment and so on).  
+So the second argument can be viewed as FM, while the third is PM (phase modulation).
+The initial-phase argument to make-oscil is in radians. You can
+use <b>degrees->radians</b> to convert from degrees to radians.
+To get a cosine (as opposed to sin), set the initial-phase to (/ pi 2):
+<code>(make-oscil 440.0 (/ pi 2)) </code>.
+</p>
+
+<table class="method">
+<tr><td colspan=2 class="title">oscil methods</td></tr>
+<tr><td class="inner"><em class=gen>mus-frequency</em></td> <td class="inner">frequency in Hz</td></tr>
+<tr><td class="inner"><em class=gen>mus-phase</em></td>     <td class="inner">phase in radians</td></tr>
+<tr><td class="inner"><em class=gen>mus-length</em></td>    <td class="inner">1 (no setf)</td></tr>
+<tr><td class="inner"><em class=gen>mus-increment</em></td> <td class="inner">frequency in radians per sample</td></tr>
+</table>
+
+<p>Oscil might be defined:
+</p>
+<pre class="indented">
+  (prog1
+    (sin (+ phase pm-input))
+    (incf phase (+ (<a class=quiet href="#hztoradians">hz->radians</a> frequency) fm-input)))
+</pre>
+
+<p><b>oscil</b> takes both FM and PM arguments; here is an example of FM:
+</p>
+
+<pre class="indented">
+(<a class=quiet href="#definstrument">definstrument</a> simple-fm (beg dur freq amp mc-ratio index &optional amp-env index-env)
+  (let* ((start (floor (* beg *srate*)))
+	 (end (+ start (floor (* dur *srate*))))
+	 (cr (<em class=red>make-oscil</em> freq))                     ; our carrier
+         (md (<em class=red>make-oscil</em> (* freq mc-ratio)))        ; our modulator
+         (fm-index (<a class=quiet href="#hztoradians">hz->radians</a> (* index mc-ratio freq)))
+         (ampf (<a class=quiet href="#make-env">make-env</a> (or amp-env '(0 0 .5 1 1 0)) :scaler amp :duration dur))
+         (indf (<a class=quiet href="#make-env">make-env</a> (or index-env '(0 0 .5 1 1 0)) :scaler fm-index :duration dur)))
+    (run
+      (loop for i from start to end do
+        (<a class=quiet href="#outa">outa</a> i (* (<a class=quiet href="#env">env</a> ampf) (<em class=red>oscil</em> cr (* (<a class=quiet href="#env">env</a> indf) (<em class=red>oscil</em> md)))))))))
+</pre>
+
+
+<p>See <a href="cl-fm.html">cl-fm.html</a> for a
+discussion of FM.  The standard additive synthesis instruments use an array of oscillators to
+create the individual spectral components:
+</p>
+
+<pre class="indented">
+(definstrument simple-osc (beg dur freq amp)
+  (let* ((start (floor (* beg *srate*)))
+	 (end (+ start (floor (* dur *srate*))))
+	 (arr (make-array 20))) ; we'll create a tone with 20 harmonics
+    (do ((i 0 (1+ i)))
+	((= i 20))
+      (setf (aref arr i) (<em class=red>make-oscil</em> (* (1+ i) 100))))
+    (run
+     (loop for i from start to end do
+       (let ((sum 0.0))
+	 (do ((i 0 (1+ i)))
+	     ((= i (length arr)))
+	   (incf sum (<em class=red>oscil</em> (aref arr i))))
+	 (<a class=quiet href="#outa">outa</a> i (* amp .05 sum)))))))
+</pre>
+
+
+
+
+
+<!--  ENV  -->
+
+<!-- INDEX envelopes:Envelopes --><em class=def id="envelopes"></em>
+
+<div class="innerheader">env</div>
+
+<pre class="indented">
+<em class=def id="make-env">make-env</em> <a class=quiet href="#optional-key">&optional-key</a> 
+      envelope      ; list of x,y break-point pairs
+      (scaler 1.0)  ; scaler on every y value (before offset is added)
+      duration      ; seconds
+      (offset 0.0)  ; value added to every y value
+      base          ; type of connecting line between break-points
+      end           ; end point in samples (similar to dur)
+      length        ; duration in samples (can be used instead of end)
+<em class=def id="env">env</em> e
+<em class=def id="env?">env?</em> e
+<em class=def id="env-interp">env-interp</em> x env &optional (base 1.0)
+<em class=def id="envelope-interp">envelope-interp</em> x envelope &optional (base 1.0)
+</pre>
+
+<table class="method">
+<tr><td colspan=2 class="title">env methods</td></tr>
+<tr><td class="inner"><em class=gen>mus-location</em></td> <td class="inner">call counter value (number of calls so far on env)</td></tr>
+<tr><td class="inner"><em class=gen>mus-increment</em></td><td class="inner">base value (no setf)</td></tr>
+<tr><td class="inner"><em class=gen>mus-data</em></td>     <td class="inner">original breakpoint list</td></tr>
+<tr><td class="inner"><em class=gen>mus-scaler</em></td>   <td class="inner">original scaler</td></tr>
+<tr><td class="inner"><em class=gen>mus-offset</em></td>   <td class="inner">original offset</td></tr>
+<tr><td class="inner"><em class=gen>mus-length</em></td>   <td class="inner">original duration in samples</td></tr>
+</table>
+
+<p>An envelope is a list of break point pairs:  '(0 0  100 1)  is
+a ramp from 0 to 1 over an x-axis excursion from 0 to 100 (that is, we have (x0 y0 x1 y1), so
+we're going from (0, 0) to (100, 1)).
+This list is passed
+to <b>make-env</b> along with the scaler
+applied to the y axis, the offset added to every y value,
+and the time in samples or seconds that the x axis represents.  make-env
+returns an env generator which returns the next sample of the envelope each
+time it is called.  The actual envelope value, leaving aside the base
+is <code>offset + scaler * envelope-value</code>.
+</p>
+
+<p>
+The kind of interpolation used to get y-values between the break
+points (the connecting curve) is determined by the envelope's base.
+The default (base = 1.0) gives a straight line connecting the points.
+Say we want a ramp moving from .3 to .5 over 1 second.
+The corresponding make-env call would be
+</p>
+
+<pre class="indented">
+(make-env '(0 0 100 1) :scaler .2 :offset .3 :duration 1.0)
+or
+(make-env '(0 .3 1 .5) :duration 1.0)
+</pre>
+
+
+<p>base = 0.0 gives a step
+function (the envelope changes its value suddenly to the new one without any
+interpolation).  Any other positive value becomes the exponent of the exponential curve
+connecting the points.  base < 1.0 gives convex curves (i.e. bowed
+out), and base > 1.0 gives concave curves (i.e. sagging).
+If you'd rather think in terms of e^-kt, set the base to (exp k).  
+To get arbitrary connecting curves between the break points, treat
+the output of env as the input to the connecting function.  Here's an
+instrument that maps the line segments into sin x^3:
+</p>
+
+<pre class="indented">
+(<a class=quiet href="#definstrument">definstrument</a> mapenv (beg dur frq amp en)
+  (let* ((start (floor (* beg *srate*)))
+	 (end (+ start (floor (* dur *srate*))))
+	 (osc (<a class=quiet href="#make-oscil">make-oscil</a> frq))
+         (half-pi (* pi 0.5))
+	 (zv (<em class=red>make-env</em> <em class=red>en</em> 1.0 dur)))
+    (run
+     (loop for i from start below end do
+       (let ((zval (<em class=red>env</em> zv))) ; zval^3 is [0.0..1.0], as is sin between 0 and half-pi.
+	 (<a class=quiet href="#outa">outa</a> i (* amp (sin (* half-pi zval zval zval)) (<a class=quiet href="#oscil">oscil</a> osc))))))))
+
+(<a class=quiet href="#with-sound">with-sound</a> () (mapenv 0 1 440 .4 '(0 0 50 1 75 0 86 .5 100 0)))
+</pre>
+
+
+<p>Or create your own generator that traces out the curve you want.
+J.C.Risset's bell curve could be:</p>
+
+<pre class="indented">
+(defmacro bell-curve (x)
+  ;; x from 0.0 to 1.0 creates bell curve between .64e-4 and nearly 1.0
+  ;; if x goes on from there, you get more bell curves; x can be
+  ;; an envelope (a ramp from 0 to 1 if you want just a bell curve)
+  `(+ .64e-4 (* .1565 (- (exp (- 1.0 (cos (* two-pi ,x)))) 1.0))))
+</pre>
+
+<p><b>mus-reset</b> of an envelope causes it
+to start all over again from the beginning. To jump to any position in
+an envelope, use <a href="#mus-location">mus-location</a>.
+</p>
+
+<p>This instrument repeats the same envelope over and over:
+</p>
+
+<pre class="indented">
+(definstrument strummer (beg dur env-dur)
+  (let* ((os (<a class=quiet href="#make-oscil">make-oscil</a>))
+	 (e (<a class=quiet href="#make-env">make-env</a> '(0 0 50 1 100 0) :length env-dur :scaler .1)))
+    (run
+     (loop for i from beg below (+ beg dur) do 
+       (if (> (<em class=red>mus-location</em> e) (<em class=red>mus-length</em> e))
+           (<em class=red>mus-reset</em> e))
+       (<a class=quiet href="#outa">outa</a> i (* (<a class=quiet href="#env">env</a> e) (<a class=quiet href="#oscil">oscil</a> os)))))))
+
+;;; (with-sound () (strummer 0 22050 2000))
+</pre>
+
+<p><b>env-interp</b> and <b>envelope-interp</b> return the value of the envelope at some point
+on the x axis; env-interp operates on an 'env' (the output of make-env), whereas
+envelope-interp operates on an 'envelope' (a list of breakpoints).
+To get weighted random numbers, use the output of
+(random 100.0) as the lookup index into an envelope whose x axis goes
+from 0 to 100.  Then the envelope y values are the numbers returned,
+and the amount of the x-axis taken by a given value is its weight.
+Say we want 40% .5, and 60% 1.0,
+</p>
+
+<pre class="indented">
+(loop for i from 0 to 10 collect 
+  (<a class=quiet href="#envelope-interp">envelope-interp</a> (random 100.0) (list 0 .5 40 .5 40.01 1.0 100 1.0)))
+=> '(1.0 1.0 0.5 1.0 1.0 0.5 0.5 1.0 0.5 1.0 1.0) 
+</pre>
+
+<p>This idea is also available in the <a href="#rand">rand</a> and <a href="#rand-interp">rand-interp</a> generators.
+Other env-related functions are:</p>
+
+<table class="spaced">
+<tr><td class="bluish"><em class=emdef>envelope-reverse</em> <code>e</code></td><td class="bluish">reverse an envelope</td></tr>
+<tr><td><em class=emdef>envelope-repeat</em> <code>e num &optional refl xnorm</code></td><td>repeat an envelope</td></tr>
+<tr><td class="bluish"><em class=emdef>envelope-concatenate</em> <code>&rest es</code></td><td class="bluish">concatenate any number of envelopes</td></tr>
+<tr><td><em class=emdef>envelope+</em> <code>es</code></td><td>add together any number of envelopes</td></tr>
+<tr><td class="bluish"><em class=emdef>envelope*</em> <code>es</code></td><td class="bluish">same but multiply</td></tr>
+<tr><td><em class=emdef>envelope-simplify</em> <code>e &optional yg xg</code></td><td>simplify an evelope</td></tr>
+<tr><td class="bluish"><em class=emdef>meld-envelopes</em> <code>e0 e1</code></td><td class="bluish">meld two envelopes together</td></tr>
+<tr><td><em class=emdef>map-across-envelopes</em> <code>func es</code></td><td>map a function across any number of envelopes</td></tr>
+<tr><td class="bluish"><em class=def id="envelope-exp">envelope-exp</em>  <code>e &optional pow xg</code></td><td class="bluish">create exponential segments of envelopes</td></tr>
+<tr><td><em class=def id="window-envelope">window-envelope</em> <code>beg end e</code></td><td>return portion of e between two x values</td></tr>
+<tr><td class="bluish"><em class=def id="stretch-envelope">stretch-envelope</em> <code>e a0 a1 &optional d0 d1</code></td><td class="bluish">attack and decay portions</td></tr>
+<tr><td><em class=def id="scale-envelope">scale-envelope</em> <code>e scale &optional offset</code></td><td>scale e</td></tr>
+<tr><td class="bluish"><em class=def id="normalize-envelope">normalize-envelope</em> <code>e &optional norm</code></td><td class="bluish">normalize e</td></tr>
+</table>
+
+<p>See env.lisp for more such functions.  To copy an existing envelope while changing one aspect (say
+duration), it's simplest to use make-env:
+</p>
+
+<pre class="indented">
+(defun change-env-dur (e dur)
+  (<a class=quiet href="#make-env">make-env</a> (<a class=quiet href="#mus-data">mus-data</a> e)            ; the original breakpoints
+	    :scaler (<a class=quiet href="#mus-scaler">mus-scaler</a> e)  ; these are the original values passed to make-env
+	    :offset (<a class=quiet href="#mus-offset">mus-offset</a> e)
+            :base (<a class=quiet href="#mus-increment">mus-increment</a> e) ; the base (using "mus-increment" because it was available...)
+	    :duration dur))
+</pre>
+
+
+
+
+<!--  TABLE-LOOKUP  -->
+
+<div class="innerheader">table-lookup</div>
+
+<pre class="indented">
+<em class=def id="make-table-lookup">make-table-lookup</em> <a class=quiet href="#optional-key">&optional-key</a> 
+        (frequency *clm-default-frequency*)   ; in Hz
+        (initial-phase 0.0) ; in radians 
+        wave                ; double-float array
+        size                ; table size if wave not specified
+        type                ; interpolation type (mus-interp-linear)
+<em class=def id="table-lookup">table-lookup</em> tl &optional (fm-input 0.0)
+<em class=def id="table-lookup?">table-lookup?</em> tl
+</pre>
+
+
+<p><b>table-lookup</b> performs interpolating table lookup.  Indices are first
+made to fit in the current table (FM input can produce negative indices), then
+interpolation returns the table value.  Table-lookup scales its
+frequency change argument (fm-input) to fit whatever its table size is
+(that is, it assumes the caller is thinking in terms of a table size of two pi,
+and fixes it up).  The wave table should be an array of double-floats (the function
+make-double-array can be used to create it).
+type sets the type of interpolation used: mus-interp-none,
+mus-interp-linear, mus-interp-lagrange, mus-interp-bezier, or mus-interp-hermite.
+</p>
+
+<table class="method">
+<tr><td colspan=2 class="title">table-lookup methods</td></tr>
+<tr><td class="inner"><em class=gen>mus-frequency</em></td>  <td class="inner">frequency in Hz</td></tr>
+<tr><td class="inner"><em class=gen>mus-phase</em></td>      <td class="inner">phase in radians (wave-size/(2*pi))</td></tr>
+<tr><td class="inner"><em class=gen>mus-data</em></td>       <td class="inner">wave array</td></tr>
+<tr><td class="inner"><em class=gen>mus-length</em></td>     <td class="inner">wave size (no setf)</td></tr>
+<tr><td class="inner"><em class=gen>mus-interp-type</em></td><td class="inner">interpolation choice (no setf)</td></tr>
+<tr><td class="inner"><em class=gen>mus-increment</em></td>  <td class="inner">table increment per sample</td></tr>
+</table>
+
+<p>Table-lookup might be defined:
+</p>
+<pre class="indented">
+(prog1
+  (<a class=quiet href="#array-interp">array-interp</a> wave phase)
+  (incf phase (+ (<a class=quiet href="#hztoradians">hz->radians</a> frequency) 
+                 (* fm-input 
+                    (/ (length wave) 
+                       (* 2 pi))))))
+</pre>
+
+<p>There are two functions that make it easier to load up
+various wave forms:
+</p>
+
+<pre class="indented">
+<em class=def id="partialstowave">partials->wave</em> synth-data table &optional (norm t)
+<em class=def id="phase-partialstowave">phase-partials->wave</em> synth-data table &optional (norm t)
+</pre>
+
+<p>The synth-data argument is a list of (partial amp) pairs: '(1 .5  2 .25)
+gives a combination of a sine wave at the carrier (1) at amplitude .5, and
+another at the first harmonic (2) at amplitude .25.  The partial amplitudes are
+normalized to sum to a total amplitude of 1.0 unless the argument norm
+is nil.  If the initial phases matter (they almost never do), you can use
+phase-partials->wave; in this case the synth-data is a list of (partial amp phase) triples with phases in radians.</p>
+
+<pre class="indented">
+(<a class=quiet href="#definstrument">definstrument</a> simple-table (dur)
+  (let ((tab (<em class=red>make-table-lookup</em> :wave (<em class=red>partials->wave</em> '(1 .5 2 .5)))))
+    (run
+     (loop for i from 0 to dur do
+       (<a class=quiet href="#outa">outa</a> i (* .3 (<em class=red>table-lookup</em> tab)))))))
+</pre>
+
+<p><a href="spectr.clm">spectr.clm</a> has a steady state spectra of
+several standard orchestral instruments, courtesy of James A. Moorer.
+<a href="bird.clm">bird.clm</a> (using bird.ins and bigbird.ins) has about 50 North American bird songs. </p>
+
+
+
+<!--  POLYWAVE, POLYSHAPE  -->
+
+<div class="innerheader">polywave</div>
+
+<pre class="indented">
+<em class=def id="make-polywave">make-polywave</em> <a class=quiet href="#optional-key">&optional-key</a> (frequency *clm-default-frequency*) 
+        (partials '(1 1)) (type mus-chebyshev-first-kind)
+<em class=def id="polywave">polywave</em> w &optional (fm 0.0)
+<em class=def id="polywave?">polywave?</em> w
+
+<em class=def id="make-polyshape">make-polyshape</em> <a class=quiet href="#optional-key">&optional-key</a> (frequency *clm-default-frequency*) 
+        (initial-phase 0.0) coeffs (partials '(1 1)) (kind mus-chebyshev-first-kind)
+<em class=def id="polyshape">polyshape</em> w &optional (index 1.0) (fm 0.0)
+<em class=def id="polyshape?">polyshape?</em> w
+
+<em class=def id="partialstopolynomial">partials->polynomial</em> partials &optional (kind mus-chebyshev-first-kind)
+</pre>
+
+<p>polywave is the new form of polyshape.
+These two generators
+drive a sum of scaled Chebyshev polynomials with
+a sinusoid, creating a sort of cross between additive synthesis and FM; see
+"Digital Waveshaping Synthesis" by Marc Le Brun in JAES 1979 April, vol 27, no 4, p250.
+kind or type can be <b>mus-chebyshev-first-kind</b> or <b>mus-chebyshev-second-kind</b>.
+</p>
+
+<table class="method">
+<tr><td colspan=2 class="title">polywave methods</td></tr>
+<tr><td class="inner"><em class=gen>mus-frequency</em></td> <td class="inner">frequency in Hz</td></tr>
+<tr><td class="inner"><em class=gen>mus-scaler</em></td>    <td class="inner">index (polywave only)</td></tr>
+<tr><td class="inner"><em class=gen>mus-phase</em></td>     <td class="inner">phase in radians</td></tr>
+<tr><td class="inner"><em class=gen>mus-data</em></td>      <td class="inner">polynomial coeffs</td></tr>
+<tr><td class="inner"><em class=gen>mus-length</em></td>    <td class="inner">number of partials</td></tr>
+<tr><td class="inner"><em class=gen>mus-increment</em></td> <td class="inner">frequency in radians per sample</td></tr>
+</table>
+
+<p>Polywave and polyshape:</p>
+<pre class="indented">
+(prog1
+  (<a class=quiet href="#array-interp">array-interp</a> wave (* (length wave) 
+                        (+ 0.5 (* index 0.5 (sin phase)))))
+  (incf phase (+ (<a class=quiet href="#hztoradians">hz->radians</a> frequency) fm)))
+
+(prog1
+  (<a class=quiet href="#polynomial">polynomial</a> wave (sin phase))
+  (incf phase (+ (<a class=quiet href="#hztoradians">hz->radians</a> frequency) fm)))
+</pre>
+
+<p>In its simplest use, waveshaping is an inexpensive additive synthesis:
+</p>
+
+<pre class="indented">
+(<a class=quiet href="#definstrument">definstrument</a> simp ()
+  (let ((wav (<em class=red>make-polyshape</em> :frequency 440 :partials '(1 .5 2 .3 3 .2))))
+    (run (loop for i from 0 to 1000 do (<a class=quiet href="#outa">outa</a> i (<em class=red>polyshape</em> wav))))))
+</pre>
+
+<p>
+Bigbird is another example:
+</p>
+
+<pre class="indented">
+(<a class=quiet href="#definstrument">definstrument</a> bigbird (start duration frequency freqskew amplitude freq-env amp-env partials)
+  (multiple-value-bind (beg end) (<a class=quiet href="#timestosamples">times->samples</a> start duration)
+    (let* ((gls-env (<a class=quiet href="#make-env">make-env</a> freq-env (<a class=quiet href="#hztoradians">hz->radians</a> freqskew) duration))
+           (polyos (<a class=quiet href="#make-oscil">make-polyshape</a> frequency
+                     :coeffs (<em class=red>partials->polynomial</em> (normalize-partials partials))))
+           (fil (<a class=quiet href="#make-one-pole">make-one-pole</a> .1 .9))
+           (amp-env (<a class=quiet href="#make-env">make-env</a> amp-env amplitude duration)))
+      (run
+        (loop for i from beg below end do
+          (<a class=quiet href="#outa">outa</a> i 
+            (<a class=quiet href="#one-pole">one-pole</a> fil   ; for distance effects
+              (* (<a class=quiet href="#env">env</a> amp-env) 
+                 (<em class=red>polyshape</em> polyos 1.0 (<a class=quiet href="#env">env</a> gls-env))))))))))
+
+(with-sound ()
+  (bigbird beg .05 1800 1800 .2
+           '(.00 .00 .40 1.00 .60 1.00 1.00 .0)         ; freq env
+           '(.00 .00 .25 1.00 .60 .70 .75 1.00 1.00 .0) ; amp env
+           '(1 .5 2 1 3 .5 4 .1 5 .01)))                ; partials (bird song spectrum)
+</pre>
+
+<p>
+See also <a href="pqw.ins">pqw.ins</a> for phase quadrature waveshaping (single-sideband tricks).
+</p>
+
+
+
+<!--  SAWTOOTH ETC  -->
+
+<div class="innerheader">sawtooth-wave and friends</div>
+
+<pre class="indented">
+<em class=def id="make-triangle-wave">make-triangle-wave</em> <a class=quiet href="#optional-key">&optional-key</a> (frequency *clm-default-frequency*) (amplitude 1.0) (initial-phase pi)
+<em class=def id="triangle-wave">triangle-wave</em> s &optional (fm 0.0)
+<em class=def id="triangle-wave?">triangle-wave?</em> s
+
+<em class=def id="make-square-wave">make-square-wave</em> <a class=quiet href="#optional-key">&optional-key</a> (frequency *clm-default-frequency*) (amplitude 1.0) (initial-phase 0)
+<em class=def id="square-wave">square-wave</em> s &optional (fm  0.0)
+<em class=def id="square-wave?">square-wave?</em> s
+
+<em class=def id="make-sawtooth-wave">make-sawtooth-wave</em> <a class=quiet href="#optional-key">&optional-key</a> (frequency *clm-default-frequency*) (amplitude 1.0) (initial-phase pi)
+<em class=def id="sawtooth-wave">sawtooth-wave</em> s &optional (fm 0.0)
+<em class=def id="sawtooth-wave?">sawtooth-wave?</em> s
+
+<em class=def id="make-pulse-train">make-pulse-train</em> <a class=quiet href="#optional-key">&optional-key</a> (frequency *clm-default-frequency*) (amplitude 1.0) (initial-phase two-pi)
+<em class=def id="pulse-train">pulse-train</em> s &optional (fm 0.0)
+<em class=def id="pulse-train?">pulse-train?</em> s
+</pre>
+
+
+<p>These generators produce some standard old-timey wave forms that are still occasionally useful (well, triangle-wave
+is useful; the others are silly).
+<b>sawtooth-wave</b> ramps from -1 to 1, then goes immediately back to -1.
+Use a negative frequency to turn the "teeth" the other way.
+<b>triangle-wave</b> ramps from -1 to 1, then ramps from 1 to -1.
+<b>pulse-train</b> produces a single sample of 1.0, then zeros.
+<b>square-wave</b> produces 1 for half a period, then 0.  All have a period
+of two-pi, so the fm argument should have an effect comparable to the
+same FM applied to the same waveform in <a href="#table-lookup">table-lookup</a>.
+These are not band-limited; if the frequency is too high, you can get foldover,
+but as far as I
+know, no-one uses these as audio frequency tone generators — who would want to
+listen to a square wave?  A more reasonable square-wave can be generated via
+tanh(n * sin(theta)), where "n" (a float) sets how squared-off it is.
+Even more amusing is this algorithm:
+</p>
+
+<pre class="indented">
+(defun cossq (c theta)    ; as c -> 1.0+, more of a square wave (try 1.00001)
+  (let* ((cs (cos theta)) ; (+ theta pi) if matching sin case (or (- ...))
+	 (cp1 (+ c 1.0))
+	 (cm1 (- c 1.0))
+	 (cm1c (expt cm1 cs))
+	 (cp1c (expt cp1 cs)))
+    (/ (- cp1c cm1c)
+       (+ cp1c cm1c))))  ; from "From Squares to Circles..." Lasters and Sharpe, Math Spectrum 38:2
+
+(defun sinsq (c theta) (cossq c (- theta (* 0.5 pi))))
+(defun sqsq (c theta) (sinsq c (- (sinsq c theta)))) ; a sharper square wave
+
+(let ((angle 0.0))
+  (loop ...
+    (let ((val (* 0.5 (+ 1.0 (sqsq 1.001 angle))))) 
+      (set! angle (+ angle .02)) 
+    ...)))
+</pre>
+
+<table class="method">
+<tr><td colspan=2 class="title">saw-tooth and friends' methods</td></tr>
+<tr><td class="inner"><em class=gen>mus-frequency</em></td> <td class="inner">frequency in Hz</td></tr>
+<tr><td class="inner"><em class=gen>mus-phase</em></td>     <td class="inner">phase in radians</td></tr>
+<tr><td class="inner"><em class=gen>mus-scaler</em></td>    <td class="inner">amplitude arg used in make-<gen></td></tr>
+<tr><td class="inner"><em class=gen>mus-width</em></td>     <td class="inner">width of square-wave pulse (0.0 to 1.0)</td></tr>
+<tr><td class="inner"><em class=gen>mus-increment</em></td> <td class="inner">frequency in radians per sample</td></tr>
+</table>
+
+<pre class="indented">
+One popular kind of vibrato is:
+  (+ (triangle-wave pervib) 
+     (<a class=quiet href="#rand-interp">rand-interp</a> ranvib))
+</pre>
+
+<p>Just for completeness, here's an example:
+</p>
+
+<pre class="indented">
+(definstrument simple-saw (beg dur amp)
+  (let* ((os (<em class=red>make-sawtooth-wave</em> 440.0))
+	 (start (floor (* beg *srate*)))
+	 (end (+ start (floor (* dur *srate*)))))
+    (run
+     (loop for i from start to end do
+       (<a class=quiet href="#outa">outa</a> i (* amp (<em class=red>sawtooth-wave</em> os)))))))
+</pre>
+
+
+
+<!--  NCOS, NSIN  -->
+
+<div class="innerheader">ncos and nsin</div>
+
+<pre class="indented">
+<em class=def id="make-ncos">make-ncos</em> <a class=quiet href="#optional-key">&optional-key</a> (frequency *clm-default-frequency*) (n 1)
+<em class=def id="ncos">ncos</em> cs &optional (fm 0.0)
+<em class=def id="ncos?">ncos?</em> cs
+
+<em class=def id="make-nsin">make-nsin</em> <a class=quiet href="#optional-key">&optional-key</a> (frequency *clm-default-frequency*) (n 1)
+<em class=def id="nsin">nsin</em> cs &optional (fm 0.0)
+<em class=def id="nsin?">nsin?</em> cs
+</pre>
+
+<p>
+<b>ncos</b> produces a band-limited pulse train containing
+n cosines.  I think this was originally viewed as a way to get a speech-oriented
+pulse train that would then be passed through formant filters (see pulse-voice in examp.scm).  There are many similar formulas:
+see <a href="sndclm.html#ncos2">ncos2</a> and friends in generators.scm. "Trigonometric Delights" by Eli Maor has
+a derivation of a nsin formula and a neat
+geometric explanation.  For a derivation of the ncos formula, see "Fourier
+Analysis" by Stein and Shakarchi, or multiply the left side (the cosines) by sin(x/2), use the trig
+formula 2sin(a)cos(b) = sin(b+a)-sin(b-a), and notice that all the terms in the series
+cancel except the last.
+</p>
+
+<table class="method">
+<tr><td colspan=2 class="title">ncos methods</td></tr>
+<tr><td class="inner"><em class=gen>mus-frequency</em></td>  <td class="inner">frequency in Hz</td></tr>
+<tr><td class="inner"><em class=gen>mus-phase</em></td>      <td class="inner">phase in radians</td></tr>
+<tr><td class="inner"><em class=gen>mus-scaler</em></td>     <td class="inner">(/ 1.0 cosines)</td></tr>
+<tr><td class="inner"><em class=gen>mus-length</em></td>     <td class="inner">n or cosines arg used in make-<gen></td></tr>
+<tr><td class="inner"><em class=gen>mus-increment</em></td>  <td class="inner">frequency in radians per sample</td></tr>
+</table>
+
+<pre class="indented">
+ncos is based on:
+  cos(x) + cos(2x) + ... cos(nx) = 
+    (sin((n + .5)x) / (2 * sin(x / 2))) - 1/2
+
+  known as the Dirichlet kernel
+</pre>
+
+<pre class="indented">
+(definstrument simple-soc (beg dur freq amp)
+  (let* ((os (<em class=red>make-ncos</em> freq 10))
+	 (start (floor (* beg *srate*)))
+	 (end (+ start (floor (* dur *srate*)))))
+    (run
+     (loop for i from start to end do
+       (<a class=quiet href="#outa">outa</a> i (* amp (<em class=red>ncos</em> os)))))))
+</pre>
+
+<p>If you sweep ncos upwards in frequency, you'll eventually
+get foldover; the generator produces its preset number of cosines no
+matter what.  It is possible to vary the spectrum smoothly (without stooping a filter): multiply the
+output of ncos by an exponential — there's an example in <a href="sndclm.html#ncos">sndclm.html</a>.
+</p>
+
+<p><b>nsin</b> produces a sum of n equal amplitude sines.  It is very similar (good and bad) to ncos.
+</p>
+
+<table class="method">
+<tr><td colspan=2 class="title">nsin methods</td></tr>
+<tr><td class="inner"><em class=gen>mus-frequency</em></td> <td class="inner">frequency in Hz</td></tr>
+<tr><td class="inner"><em class=gen>mus-phase</em></td>     <td class="inner">phase in radians</td></tr>
+<tr><td class="inner"><em class=gen>mus-scaler</em></td>    <td class="inner">dependent on number of sines</td></tr>
+<tr><td class="inner"><em class=gen>mus-length</em></td>    <td class="inner">n or sines arg used in make-<gen></td></tr>
+<tr><td class="inner"><em class=gen>mus-increment</em></td> <td class="inner">frequency in radians per sample</td></tr>
+</table>
+
+<pre class="indented">
+nsin is based on:
+  sin(x) + sin(2x) + ... sin(nx) = 
+    sin(n * x / 2) * (sin((n + .5)x) / sin(x / 2))
+
+  known as the conjugate Dirichlet kernel
+</pre>
+
+
+
+
+<!--  SSB-AM  -->
+
+<div class="innerheader">ssb-am</div>
+
+<pre class="indented">
+<em class=def id="make-ssb-am">make-ssb-am</em> <a class=quiet href="#optional-key">&optional-key</a> (frequency *clm-default-frequency*) (order 40)
+<em class=def id="ssb-am">ssb-am</em> gen &optional (insig 0.0) (fm 0.0)
+<em class=def id="ssb-am?">ssb-am?</em> gen
+</pre>
+
+<p><b>ssb-am</b> provides single sideband suppressed carrier amplitude modulation, normally used for frequency shifting.
+</p>
+
+<table class="method">
+<tr><td colspan=2 class="title">ssb-am methods</td></tr>
+<tr><td class="inner"><em class=gen>mus-frequency</em></td>   <td class="inner">frequency in Hz</td></tr>
+<tr><td class="inner"><em class=gen>mus-phase</em></td>       <td class="inner">phase (of embedded sin osc) in radians</td></tr>
+<tr><td class="inner"><em class=gen>mus-order</em></td>       <td class="inner">embedded delay line size</td></tr>
+<tr><td class="inner"><em class=gen>mus-length</em></td>      <td class="inner">same as mus-order</td></tr>
+<tr><td class="inner"><em class=gen>mus-interp-type</em></td> <td class="inner"><code>mus-interp-none</code></td></tr>
+<tr><td class="inner"><em class=gen>mus-xcoeff</em></td>      <td class="inner">FIR filter coeff</td></tr>
+<tr><td class="inner"><em class=gen>mus-xcoeffs</em></td>     <td class="inner">embedded Hilbert transform FIR filter coeffs</td></tr>
+<tr><td class="inner"><em class=gen>mus-data</em></td>        <td class="inner">embedded filter state</td></tr>
+<tr><td class="inner"><em class=gen>mus-increment</em></td>   <td class="inner">frequency in radians per sample</td></tr>
+</table>
+
+<pre class="indented">
+ssb-am is based on:
+  cos(freq) * delay(insig) +/- sin(freq) * hilbert(insig) 
+  which shifts insig spectrum by freq 
+  and cancels upper/lower sidebands
+</pre>
+
+<p>See the instrument under <a href="#amplitude-modulate">amplitude-modulate</a> for
+an explicit version of this generator.
+Here's a complicated way to get a sine wave at 550 Hz:
+</p>
+
+<pre class="indented">
+(definstrument shift-pitch (beg dur freq amp shift)
+  (let* ((os (<a class=quiet href="#make-oscil">make-oscil</a> freq))
+	 (start (floor (* beg *srate*)))
+	 (end (+ start (floor (* dur *srate*))))
+	 (am (<em class=red>make-ssb-am</em> shift)))
+    (run
+     (loop for i from start to end do
+       (<a class=quiet href="#outa">outa</a> i (* amp (<em class=red>ssb-am</em> am (<a class=quiet href="#oscil">oscil</a> os))))))))
+</pre>
+
+
+
+
+<!--  WAVE-TRAIN  -->
+
+<div class="innerheader">wave-train</div>
+
+<pre class="indented">
+<em class=def id="make-wave-train">make-wave-train</em> <a class=quiet href="#optional-key">&optional-key</a> (frequency *clm-default-frequency*) (initial-phase 0.0) wave size type
+<em class=def id="wave-train">wave-train</em> w &optional (fm 0.0)
+<em class=def id="wave-train?">wave-train?</em> w
+</pre>
+
+<p><b>wave-train</b> produces a wave train (an extension of pulse-train and table-lookup).
+Frequency is the repetition rate of the wave found in wave.
+Successive waves can overlap.  With some simple envelopes, or filters, you can
+use this for VOSIM and other related techniques.</p>
+
+<table class="method">
+<tr><td colspan=2 class="title">wave-train methods</td></tr>
+<tr><td class="inner"><em class=gen>mus-frequency</em></td>  <td class="inner">frequency in Hz</td></tr>
+<tr><td class="inner"><em class=gen>mus-phase</em></td>      <td class="inner">phase in radians</td></tr>
+<tr><td class="inner"><em class=gen>mus-data</em></td>       <td class="inner">wave array (no setf)</td></tr>
+<tr><td class="inner"><em class=gen>mus-length</em></td>     <td class="inner">length of wave array (no setf)</td></tr>
+<tr><td class="inner"><em class=gen>mus-interp-type</em></td><td class="inner">interpolation choice (no setf)</td></tr>
+</table>
+
+<p>Here is a FOF instrument based loosely on fof.c of Perry Cook and the article
+"Synthesis of the Singing Voice" by Bennett and Rodet in 
+"Current Directions in Computer Music Research".
+</p>
+
+<pre class="indented">
+(<a class=quiet href="#definstrument">definstrument</a> fofins (beg dur frq amp vib f0 a0 f1 a1 f2 a2 &optional ve ae)
+  (let* ((start (floor (* beg *srate*)))
+         (end (+ start (floor (* dur *srate*))))
+         (ampf (<a class=quiet href="#make-env">make-env</a> (or ae (list 0 0 25 1 75 1 100 0)) :scaler amp :duration dur))
+         (frq0 (<a class=quiet href="#hztoradians">hz->radians</a> f0))
+         (frq1 (<a class=quiet href="#hztoradians">hz->radians</a> f1))
+         (frq2 (<a class=quiet href="#hztoradians">hz->radians</a> f2))
+         (foflen (if (= *srate* 22050) 100 200))
+         (vibr (<a class=quiet href="#make-oscil">make-oscil</a> 6))
+	 (vibenv (<a class=quiet href="#make-env">make-env</a> (or ve (list 0 1 100 1)) :scaler vib :duration dur))
+         (win-freq (/ two-pi foflen))
+         (foftab (make-double-float-array foflen))
+         (wt0 (<em class=red>make-wave-train</em> :wave foftab :frequency frq)))
+    (loop for i from 0 below foflen do
+      (setf (aref foftab i) (double-float      
+        ;; this is not the pulse shape used by B&R
+            (* (+ (* a0 (sin (* i frq0))) 
+                  (* a1 (sin (* i frq1))) 
+                  (* a2 (sin (* i frq2)))) 
+               .5 (- 1.0 (cos (* i win-freq)))))))
+    (run
+     (loop for i from start below end do
+       (<a class=quiet href="#outa">outa</a> i (* (<a class=quiet href="#env">env</a> ampf) (<em class=red>wave-train</em> wt0 (* (<a class=quiet href="#env">env</a> vibenv) (<a class=quiet href="#oscil">oscil</a> vibr)))))))))
+
+(<a class=quiet href="#with-sound">with-sound</a> () (fofins 0 1 270 .2 .001 730 .6 1090 .3 2440 .1)) ; "Ahh"
+
+(<a class=quiet href="#with-sound">with-sound</a> () 
+  (fofins 0 4 270 .2 0.005 730 .6 1090 .3 2440 .1 '(0 0 40 0 75 .2 100 1) 
+          '(0 0 .5 1 3 .5 10 .2 20 .1 50 .1 60 .2 85 1 100 0))
+  (fofins 0 4 (* 6/5 540) .2 0.005 730 .6 1090 .3 2440 .1 '(0 0 40 0 75 .2 100 1) 
+          '(0 0 .5 .5 3 .25 6 .1 10 .1 50 .1 60 .2 85 1 100 0))
+  (fofins 0 4 135 .2 0.005 730 .6 1090 .3 2440 .1 '(0 0 40 0 75 .2 100 1) 
+          '(0 0 1 3 3 1 6 .2 10 .1 50 .1 60 .2 85 1 100 0)))
+</pre>
+
+
+
+
+<!--  RAND, RAND-INTERP  -->
+
+<div class="innerheader">rand</div>
+
+<pre class="indented">
+<em class=def id="make-rand">make-rand</em> <a class=quiet href="#optional-key">&optional-key</a> 
+        (frequency *clm-default-frequency*)          ; freq at which new random numbers occur
+        (amplitude 1.0)            ; numbers are between -amplitude and amplitude
+        (envelope '(-1 1 1 1))     ; distribution envelope (uniform distribution between -1 and 1 is the default)
+        distribution               ; pre-computed distribution
+<em class=def id="rand">rand</em> r &optional (sweep 0.0)
+<em class=def id="rand?">rand?</em> r
+
+<em class=def id="make-rand-interp">make-rand-interp</em> <a class=quiet href="#optional-key">&optional-key</a> 
+        (frequency *clm-default-frequency*) 
+        (amplitude 1.0) 
+        (envelope '(-1 1 1 1) 
+        distribution)
+<em class=def id="rand-interp">rand-interp</em> r &optional (sweep 0.0)
+<em class=def id="rand-interp?">rand-interp?</em> r
+
+<em class=emdef>centered-random</em> amp 
+<em class=def id="clm-random">clm-random</em> amp
+<em class=def id="mus-random">mus-random</em> amp ; same as centered-random (for C-side compatibility)
+<em class=def id="mus-set-rand-seed">mus-set-rand-seed</em> seed
+</pre>
+
+
+<p><b>rand</b> returns a sequence of random numbers between -amplitude and
+amplitude (it produces a sort of step function).
+<b>rand-interp</b> interpolates between successive
+random numbers;
+it could be defined as (<a class=quiet href="#moving-average">moving-average</a> agen (rand rgen)) where the
+averager has the same period (length) as the rand.  
+Lisp's function random returns a number between 0.0 and its argument.
+In both cases, the envelope argument determines the random number distribution.
+<b>centered-random</b> returns a number between -amp and amp.
+<b>clm-random</b> returns a random number between 0 and amp. In the latter two cases,
+mus-set-rand-seed sets the seed for the random number generator.  This provides a
+way around Lisp's clumsy mechanism for repeating a random number sequence.
+</p>
+
+<table class="method">
+<tr><td colspan=2 class="title">rand and rand-interp methods</td></tr>
+<tr><td class="inner"><em class=gen>mus-frequency</em></td>  <td class="inner">frequency in Hz</td></tr>
+<tr><td class="inner"><em class=gen>mus-phase</em></td>      <td class="inner">phase in radians</td></tr>
+<tr><td class="inner"><em class=gen>mus-scaler</em></td>     <td class="inner">amplitude arg used in make-<gen></td></tr>
+<tr><td class="inner"><em class=gen>mus-length</em></td>     <td class="inner">distribution table length</td></tr>
+<tr><td class="inner"><em class=gen>mus-data</em></td>       <td class="inner">distribution table, if any</td></tr>
+<tr><td class="inner"><em class=gen>mus-increment</em></td>  <td class="inner">frequency in radians per sample</td></tr>
+</table>
+
+<pre class="indented">
+rand:
+  (if (>= phase (* 2 pi))
+      (setf output (<em class=red>centered-random</em> amplitude)))
+  (incf phase (+ (<a class=quiet href="#hztoradians">hz->radians</a> frequency) sweep))
+</pre>
+
+<p>There are a variety of ways to change <b>rand</b>'s uniform distribution to
+some other: <code>(random (random 1.0))</code> or <code>(sin (random 3.14159))</code> are simple examples. Exponential distribution could be:
+</p>
+
+<pre class="indented">
+  (/ (log (max .01 (random 1.0))) (log .01))
+</pre>
+
+<p>where the ".01"'s affect how tightly the resultant values cluster toward 0.0 —
+set it to .0001 for example to get most of the random values close to 0.0.
+The central-limit theorem says that you can get closer and closer to gaussian
+noise by adding rand's together.  Orfanidis in 
+"Introduction to Signal Processing" says 12 calls on rand will
+do perfectly well. 
+We could define our own generator:
+</p>
+
+<pre class="indented">
+(defmacro gaussian-noise (r)
+  ;; r=a rand generator allocated via make-rand
+  `(let ((val 0.0))
+     (dotimes (i 12) (incf val (<em class=red>rand</em> ,r)))
+     val))
+</pre>
+
+<p>
+For a discussion of the central limit theorem, see
+Korner "Fourier Analysis" and Miller Puckette's dissertation:
+http://www-crca.ucsd.edu/~msp/Publications/thesis.ps.
+Another method is the "rejection method" in which we generate random number
+pairs until we get a pair that falls within the
+desired distribution; see random-any in dsp.scm (Snd) for code to do this.
+It is faster at run time, however, to use the "transformation method".
+The make-rand and make-rand-interp envelope arguments specify
+the desired distribution function; the generator takes the
+inverse of the integral of the envelope, loads that into an array, and uses
+<code>(array-interp (rand array-size))</code> at run time.  This gives
+random numbers of any arbitrary distribution at a computational cost
+equivalent to the polyshape generator (which is very similar).
+The x axis sets the output range (before scaling by amplitude), and
+the y axis sets the relative weight of the corresponding x axis value.
+So, the default is <code>'(-1 1 1 1)</code> which says "output numbers between -1 and 1,
+each number having the same chance of being chosen".
+An envelope of <code>'(0 1 1 0)</code> outputs values between 0 and 1, denser toward 0.
+If you already have the distribution table (the result of <code>(inverse-integrate envelope))</code>,
+you can pass it through the distribution argument.
+</p>
+
+<p>
+You can, of course, filter the output of rand to get a different
+frequency distribution (as opposed to the "value distribution"
+above, all of which are forms of white noise).
+Orfanidis also mentions a clever way to get reasonably good 1/f noise:
+sum together n rand's, where each rand is running an octave slower
+than the preceding:
+</p>
+
+<pre class="indented">
+(defun make-1f-noise (n)
+  ;; returns an array of rand's ready for the 1f-noise generator
+  (let ((rans (make-array n)))
+    (dotimes (i n) (setf (aref rans i) (<em class=red>make-rand</em> :frequency (/ *srate* (expt 2 i)))))
+    rans))
+
+(defmacro 1f-noise (rans)
+  `(let ((val 0.0)
+         (len (length ,rans)))
+     (dotimes (i len) (incf val (<em class=red>rand</em> (aref ,rans i))))
+     (/ val len)))
+</pre>
+
+<p>See also <a href="green.cl">green.cl</a> (bounded brownian noise that can mimic 1/f noise in some cases).
+And we can't talk about noise without mentioning fractals:</p>
+
+<pre class="indented">
+(<a class=quiet href="#definstrument">definstrument</a> fractal (start duration m x amp)
+  ;; use formula of M J Feigenbaum
+  (let* ((beg (floor (* *srate* start)))
+	 (end (+ beg (floor (* *srate* duration)))))
+    (run
+     (loop for i from beg below end do
+       (<a class=quiet href="#outa">outa</a> i (* amp x))
+       (setf x (- 1.0 (* m x x)))))))
+
+;;; quickly reaches a stable point for any m in[0,.75], so:
+(<a class=quiet href="#with-sound">with-sound</a> () (fractal 0 1 .5 0 .5)) 
+;;; is just a short "ftt"
+(<a class=quiet href="#with-sound">with-sound</a> () (fractal 0 1 1.5 .20 .2))
+</pre>
+
+<p>With this instrument you can easily hear
+the change over from the stable equilibria, to the period doublings,
+and finally into the combination of noise and periodicity that
+has made these curves famous. See appendix 2 to Ekeland's "Mathematics and the Unexpected" for more details.
+Another instrument based on similar ideas is:</p>
+
+<pre class="indented">
+(<a class=quiet href="#definstrument">definstrument</a> attract (beg dur amp c) ; c from 1 to 10 or so
+  ;; by James McCartney, from CMJ vol 21 no 3 p 6
+  (let* ((st (floor (* beg *srate*)))
+	 (nd (+ st (floor (* dur *srate*))))
+	 (a .2) (b .2) (dt .04)
+	 (scale (/ (* .5 amp) c))
+	 (x1 0.0) (x -1.0) (y 0.0) (z 0.0))
+    (run
+     (loop for i from st below nd do
+       (setf x1 (- x (* dt (+ y z))))
+       (incf y (* dt (+ x (* a y))))
+       (incf z (* dt (- (+ b (* x z)) (* c z))))
+       (setf x x1)
+       (<a class=quiet href="#outa">outa</a> i (* scale x))))))
+</pre>
+
+<p>which gives brass-like sounds!
+</p>
+
+
+
+
+<!--  SIMPLE FILTERS  -->
+
+<div class="innerheader">one-pole and friends</div>
+<!-- INDEX filters:Filters --><em class=def id="filters"></em>
+
+<pre class="indented">
+ <em class=def id="make-one-pole">make-one-pole</em> <a class=quiet href="#optional-key">&optional-key</a> a0 b1    ; b1 < 0.0 gives lowpass, b1 > 0.0 gives highpass
+ <em class=def id="one-pole">one-pole</em> f input 
+ <em class=def id="one-pole?">one-pole?</em> f
+
+ <em class=def id="make-one-zero">make-one-zero</em> <a class=quiet href="#optional-key">&optional-key</a> a0 a1    ; a1 > 0.0 gives weak lowpass, a1 < 0.0 highpass
+ <em class=def id="one-zero">one-zero</em> f input 
+ <em class=def id="one-zero?">one-zero?</em> f
+
+ <em class=def id="make-two-pole">make-two-pole</em> <a class=quiet href="#optional-key">&optional-key</a> a0 b1 b2 frequency radius
+ <em class=def id="two-pole">two-pole</em> f input 
+ <em class=def id="two-pole?">two-pole?</em> f
+
+ <em class=def id="make-two-zero">make-two-zero</em> <a class=quiet href="#optional-key">&optional-key</a> a0 a1 a2 frequency radius
+ <em class=def id="two-zero">two-zero</em> f input 
+ <em class=def id="two-zero?">two-zero?</em> f
+</pre>
+
+<table class="method">
+<tr><td colspan=2 class="title">simple filter methods</td></tr>
+<tr><td class="inner"><em class=gen>mus-xcoeff</em></td>    <td class="inner">a0, a1, a2 in equations</td></tr>
+<tr><td class="inner"><em class=gen>mus-ycoeff</em></td>    <td class="inner">b1, b2 in equations</td></tr>
+<tr><td class="inner"><em class=gen>mus-order</em></td>     <td class="inner">1 or 2 (no setf)</td></tr>
+<tr><td class="inner"><em class=gen>mus-scaler</em></td>    <td class="inner">two-pole and two-zero radius</td></tr>
+<tr><td class="inner"><em class=gen>mus-frequency</em></td> <td class="inner">two-pole and two-zero center frequency</td></tr>
+</table>
+
+<pre class="indented">
+one-zero  y(n) = a0 x(n) + a1 x(n-1)
+one-pole  y(n) = a0 x(n) - b1 y(n-1)
+two-pole  y(n) = a0 x(n) - b1 y(n-1) - b2 y(n-2)
+two-zero  y(n) = a0 x(n) + a1 x(n-1) + a2 x(n-2)
+</pre>
+
+<p>
+The "a0, b1" nomenclature is taken from Julius Smith's "An Introduction to Digital
+Filter Theory" in Strawn "Digital Audio Signal Processing", and is different
+from that used in the more general filters such as <a href="#fir-filter">fir-filter</a>.
+In <b>make-two-pole</b> and <b>make-two-zero</b> you can specify either the actual
+desired coefficients (<b>a0</b> and friends), or the center frequency and radius of the
+filter (<b>frequency</b> and <b>radius</b>).
+radius should be between 0 and 1 (but less than 1), and
+frequency should be between 0 and srate/2.  
+</p>
+<p>The bird instrument uses a one-pole filter for a distance cue:
+</p>
+
+<pre class="indented">
+(definstrument bird (startime dur frequency freq-skew amplitude freq-envelope amp-envelope 
+	             &optional (lpfilt 1.0) (degree 0) (reverb-amount 0))
+  (multiple-value-bind (beg end) (<a class=quiet href="#timestosamples">times->samples</a> startime dur)
+    (let* ((amp-env (<a class=quiet href="#make-env">make-env</a> amp-envelope amplitude dur))
+	   (gls-env (<a class=quiet href="#make-env">make-env</a> freq-envelope (<a class=quiet href="#hztoradians">hz->radians</a> freq-skew) dur))
+	   (loc (<a class=quiet href="#make-locsig">make-locsig</a> :degree degree :distance 1.0 :reverb reverb-amount))
+	   (fil (<em class=red>make-one-pole</em> lpfilt (- 1.0 lpfilt)))
+	   (s (<a class=quiet href="#make-oscil">make-oscil</a> :frequency frequency)))
+      (run
+       (loop for i from beg to end do
+	 (<a class=quiet href="#locsig">locsig</a> loc i (<em class=red>one-pole</em> fil (* (<a class=quiet href="#env">env</a> amp-env) 
+                                        (<a class=quiet href="#oscil">oscil</a> s (<a class=quiet href="#env">env</a> gls-env))))))))))
+</pre>
+
+
+
+
+<!--  FORMANT  -->
+
+<div class="innerheader">formant</div>
+
+<pre class="indented">
+<em class=def id="make-formant">make-formant</em> <a class=quiet href="#optional-key">&optional-key</a> frequency radius
+<em class=def id="formant">formant</em> f input       ; resonator centered at frequency, bandwidth set by radius above
+<em class=def id="formant?">formant?</em> f
+
+<em class=def id="make-firmant">make-firmant</em> <a class=quiet href="#optional-key">&optional-key</a> frequency radius
+<em class=def id="firmant">firmant</em> f input       ; resonator centered at frequency, bandwidth set by radius above
+<em class=def id="firmant?">firmant?</em> f
+</pre>
+
+<table class="method">
+<tr><td colspan=2 class="title">formant methods</td></tr>
+<tr><td class="inner"><em class=gen>mus-frequency</em></td> <td class="inner">formant center frequency</td></tr>
+<tr><td class="inner"><em class=gen>mus-order</em></td>     <td class="inner">2 (no setf)</td></tr>
+<tr><td class="inner"><em class=gen>mus-scaler</em></td>    <td class="inner">gain</td></tr>
+</table>
+
+<pre class="indented">
+formant:
+    y(n) = x(n) - 
+           r * x(n-2) + 
+           2 * r * cos(frq) * y(n-1) - 
+           r * r * y(n-2)
+
+    firmant:
+    x(n+1) = r * (x(n) - 2 * sin(frq/2) * y(n)) + input
+    y(n+1) = r * (2 * sin(frq/2) * x(n+1) + y(n))
+</pre>
+
+<p>formant and firmant are resonators (two-pole, two-zero bandpass filters) centered at "frequency", with the bandwidth set by "radius".
+The formant generator is described in "A Constant-gain Digital Resonator Tuned By a Single Coefficient" by Julius
+O. Smith and James B. Angell in Computer Music Journal Vol. 6 No. 4 (winter
+1982) and "A note on
+Constant-Gain Digital Resonators" by Ken Steiglitz, CMJ vol 18 No. 4 pp.8-10
+(winter 1994).
+The formant bandwidth is a function of the "radius", and its center frequency is set by "frequency".
+As the radius approaches 1.0 (the unit circle), the
+resonance gets narrower.
+Use <a href="sndclm.html#mus-frequency">mus-frequency</a> to change the center frequency, and <a href="sndclm.html#mus-scaler">mus-scaler</a> to change the radius.
+The radius can be set in terms of desired bandwidth in Hz via:
+</p>
+
+<pre class="indented">
+(exp (* -0.5 (hz->radians bandwidth)))
+</pre>
+
+<p>If you change the radius, the peak amplitude 
+of the output changes.  
+The firmant generator is the "modified coupled form" of the formant generator,
+developed by Max Mathews and Julius Smith in "Methods for Synthesizing Very High Q Parametrically
+Well Behaved Two Pole Filters".
+grapheq.ins uses a bank of formant generators to implement a graphic equalizer,
+and fade.ins uses it for frequency domain mixing. Here is an instrument
+for cross-synthesis with a bank of 128 formants:
+</p>
+
+<!-- INDEX cross-synthesis:cross synthesis -->
+<pre class="indented">
+(<a class=quiet href="#definstrument">definstrument</a> <em class=def id="cross-synthesis">cross-synthesis</em> (beg dur file1 file2 amp &optional (fftsize 128) (r two-pi) (lo 2) (hi nil))
+  ;; file1: input sound, file2: gives spectral shape
+  ;; r: controls width of formants (1.0 is another good value here)
+  ;; lo and hi: which of the formants are active (a sort of filter on top of the filter)
+  ;; we use the on-going spectrum of file2 to scale the outputs of the formant array
+  (let* ((fil1 (<a class=quiet href="#open-input*">open-input*</a> file1))
+	 (fil2 (and fil1 (<a class=quiet href="#open-input*">open-input*</a> file2))))
+    (when fil1
+      (if (not fil2)
+          (<a class=quiet href="#close-input">close-input</a> fil1)
+        (unwind-protect
+	  (let* ((start (floor (* beg *srate*)))
+	         (end (+ start (floor (* dur *srate*))))
+	         (freq-inc (floor fftsize 2))
+	         (fdr (make-double-float-array fftsize))
+	         (fdi (make-double-float-array fftsize))
+	         (diffs (make-double-float-array freq-inc))
+	         (<a class=quiet href="#spectrum">spectrum</a> (make-double-float-array freq-inc))
+	         (filptr 0)
+	         (ctr freq-inc)
+	         (radius (- 1.0 (/ r fftsize)))
+	         (bin (float (/ *srate* fftsize)))
+	         (fs (make-array freq-inc)))
+	    (if (null hi) (setf hi freq-inc))
+	    (loop for k from lo below hi do 
+              (setf (aref fs k) (<em class=red>make-formant</em> (* k bin) radius)))
+	    (run
+	     (loop for i from start below end do
+	       (when (= ctr freq-inc)
+	         (dotimes (k fftsize)
+		   (setf (aref fdr k) (<a class=quiet href="#ina">ina</a> filptr fil2))
+		   (incf filptr))
+	         (<a class=quiet href="#clear-array">clear-array</a> fdi)
+	         (decf filptr freq-inc)
+	         (<a class=quiet href="#fft">fft</a> fdr fdi fftsize 1)
+	         (<a class=quiet href="#rectangulartomagnitudes">rectangular->magnitudes</a> fdr fdi)
+	         (dotimes (k freq-inc) 
+                   (setf (aref diffs k) 
+                     (/ (- (aref fdr k) (aref spectrum k)) freq-inc)))
+	         (setf ctr 0))
+	       (incf ctr)
+	       (dotimes (k freq-inc) 
+                 (incf (aref spectrum k) (aref diffs k)))
+	       (let ((outval 0.0)
+		     (inval (<a class=quiet href="#ina">ina</a> i fil1)))
+	         (loop for k from lo below hi do 
+                   (incf outval (* (aref spectrum k) (<em class=red>formant</em> (aref fs k) inval))))
+	         (<a class=quiet href="#outa">outa</a> i (* amp outval))))))
+        (progn
+	  (<a class=quiet href="#close-input">close-input</a> fil1)
+	  (<a class=quiet href="#close-input">close-input</a> fil2)))))))
+
+(<a class=quiet href="#with-sound">with-sound</a> () (cross-synthesis 0 1 "oboe" "fyow" .5 256 1.0 3 100))
+</pre>
+
+
+
+<!--  FILTERS  -->
+
+<div class="innerheader">filter, iir-filter, fir-filter</div>
+
+<pre class="indented">
+ <em class=def id="make-filter">make-filter</em> <a class=quiet href="#optional-key">&optional-key</a> order xcoeffs ycoeffs
+ <em class=def id="filter">filter</em> fl inp 
+ <em class=def id="filter?">filter?</em> fl
+
+ <em class=def id="make-fir-filter">make-fir-filter</em> <a class=quiet href="#optional-key">&optional-key</a> order xcoeffs
+ <em class=def id="fir-filter">fir-filter</em> fl inp 
+ <em class=def id="fir-filter?">fir-filter?</em> fl
+
+ <em class=def id="make-iir-filter">make-iir-filter</em> <a class=quiet href="#optional-key">&optional-key</a> order ycoeffs
+ <em class=def id="iir-filter">iir-filter</em> fl inp 
+ <em class=def id="iir-filter?">iir-filter?</em> fl
+
+ <em class=def id="envelopetocoeffs">envelope->coeffs</em> &key order envelope dc
+</pre>
+
+<p>These are the general FIR/IIR filters of arbitrary order.
+The order argument is one greater than the nominal filter
+order (it is the size of the arrays).
+</p>
+
+<table class="method">
+<tr><td colspan=2 class="title">general filter methods</td></tr>
+<tr><td class="inner"><em class=gen>mus-order</em></td>     <td class="inner">filter order</td></tr>
+<tr><td class="inner"><em class=gen>mus-xcoeff</em></td>    <td class="inner">x (input) coeff</td></tr>
+<tr><td class="inner"><em class=gen>mus-xcoeffs</em></td>   <td class="inner">x (input) coeffs</td></tr>
+<tr><td class="inner"><em class=gen>mus-ycoeff</em></td>    <td class="inner">y (output) coeff</td></tr>
+<tr><td class="inner"><em class=gen>mus-ycoeffs</em></td>   <td class="inner">y (output) coeffs</td></tr>
+<tr><td class="inner"><em class=gen>mus-data</em></td>      <td class="inner">current state (input values)</td></tr>
+<tr><td class="inner"><em class=gen>mus-length</em></td>    <td class="inner">same as mus-order</td></tr>
+</table>
+
+<pre class="indented">
+filter:
+  (let ((xout 0.0))
+    (setf (aref state 0) input)
+    (loop for j from order downto 1 do
+      (incf xout (* (aref state j) (aref xcoeffs j)))
+      (decf (aref state 0) (* (aref ycoeffs j) (aref state j)))
+      (setf (aref state j) (aref state (1- j))))
+    (+ xout (* (aref state 0) (aref xcoeffs 0))))
+</pre>
+
+<p>dsp.scm in the Snd package has a number of filter design functions,
+and various specializations of the filter generators, including such
+perennial favorites as biquad, butterworth, hilbert transform, and
+notch filters. Similarly, analog-filter.scm in the Snd tarball has
+the usual IIR suspects: Butterworth, Chebyshev, Bessel, and Elliptic filters.
+</p>
+
+<p>Say we want to put a spectral envelope on a noise source.
+</p>
+
+<pre class="indented">
+(<a class=quiet href="#definstrument">definstrument</a> filter-noise (beg dur amp &key xcoeffs)
+  (let* ((st (floor (* beg *srate*)))
+         (noi (<a class=quiet href="#make-rand">make-rand</a> :frequency (* .5 *srate*) :amplitude amp))
+         (flA (<em class=red>make-filter</em> :xcoeffs xcoeffs))
+         (nd (+ st (floor (* *srate* dur)))))
+    (run
+      (loop for i from st below nd do
+        (<a class=quiet href="#outa">outa</a> i (<em class=red>filter</em> flA (<a class=quiet href="#rand">rand</a> noi)))))))
+
+(<a class=quiet href="#with-sound">with-sound</a> () 
+  (filter-noise 0 1 .2 
+    :xcoeffs (<a class=quiet href="#envelopetocoeffs">envelope->coeffs</a> :order 12 :envelope '(0 0.0 .125 0.5 .2 0.0 .3 1.0 .5 0.0 1.0 0.0))))
+</pre>
+
+<p><b>envelope->coeffs</b> translates a frequency response envelope into the corresponding FIR filter coefficients.
+The order of the filter determines how close you
+get to the envelope.</p>
+
+<p>The Hilbert transform can be implemented with an fir-filter:</p>
+
+<pre class="indented">
+(defun make-hilbert (&optional (len 30))
+  ;; create the coefficients of the Hilbert transformer of length len
+  (let* ((arrlen (1+ (* 2 len)))
+	 (arr (make-array arrlen)))
+    (do ((i (- len) (1+ i)))
+	((= i len))
+      (let* ((k (+ i len))
+	     (denom (* pi i))
+	     (num (- 1.0 (cos (* pi i)))))
+	(if (= i 0)
+	    (setf (aref arr k) 0.0)
+	    (setf (aref arr k) (/ num denom)))))
+    (<em class=red>make-fir-filter</em> arrlen (loop for i from 0 below arrlen collect (aref arr i)))))
+
+(defmacro hilbert (f in) `(<em class=red>fir-filter</em> ,f ,in))
+</pre>
+
+
+
+<!--  DELAY  -->
+
+<div class="innerheader">delay</div>
+
+<pre class="indented">
+<em class=def id="make-delay">make-delay</em> <a class=quiet href="#optional-key">&optional-key</a> size initial-contents initial-element max-size type
+<em class=def id="delay">delay</em> d input &optional (pm 0.0)
+<em class=def id="delay?">delay?</em> d
+<em class=def id="tap">tap</em> d &optional (offset 0)
+<em class=def id="delaytick">delay-tick</em> d input
+</pre>
+
+<p><b>delay</b> is a delay line.  size is in samples.
+Input fed into a delay line reappears at the output size samples
+later.  initial-element defaults to 0.0. 
+<b>tap</b> returns the
+current value of the delay generator.  Its offset is the distance of the tap
+from the current delay line sample.  If max-size is specified,
+and larger than size, the delay line can provide fractional delays.
+It should be large enough to accommodate the largest actual
+delay requested at run-time.
+pm determines how far from the normal index we are; that is,
+it is difference between the nominal
+delay length (size) and the current actual delay length (size
++ pm).  A positive pm corresponds to a longer
+delay line.  The type argument sets the interpolation type:
+mus-interp-none, mus-interp-linear, mus-interp-all-pass, 
+mus-interp-lagrange, mus-interp-bezier, or mus-interp-hermite.
+<b>delay-tick</b> just puts a sample in the delay line. 'ticks' the delay forward, and
+returns its input argument.  This is aimed at physical modeling instruments
+where a <b>tap</b> is doing the actual delay line read.
+</p>
+
+<table class="method">
+<tr><td colspan=2 class="title">delay methods</td></tr>
+<tr><td class="inner"><em class=gen>mus-length</em></td>      <td class="inner">length of delay</td></tr>
+<tr><td class="inner"><em class=gen>mus-order</em></td>       <td class="inner">same as mus-length</td></tr>
+<tr><td class="inner"><em class=gen>mus-data</em></td>        <td class="inner">delay line itself (no setf)</td></tr>
+<tr><td class="inner"><em class=gen>mus-interp-type</em></td> <td class="inner">interpolation choice (no setf)</td></tr>
+<tr><td class="inner"><em class=gen>mus-scaler</em></td>      <td class="inner">unused internally, but available for delay specializations</td></tr>
+</table>
+
+<pre class="indented">
+delay:
+(prog1
+  (<a class=quiet href="#array-interp">array-interp</a> line (- loc pm))
+  (setf (aref line loc) input)
+  (incf loc)
+  (if (<= size loc) (setf loc 0)))
+</pre>
+
+<pre class="indented">
+(<a class=quiet href="#definstrument">definstrument</a> echo (beg dur scaler secs file)
+  (let ((del (<em class=red>make-delay</em> (round (* secs *srate*))))
+	(inf (<a class=quiet href="#open-input">open-input</a> file))
+	(j 0))
+    (run
+     (loop for i from beg below (+ beg dur) do
+       (let ((inval (<a class=quiet href="#ina">ina</a> j inf)))
+	 (<a class=quiet href="#outa">outa</a> i (+ inval (<em class=red>delay</em> del (* scaler (+ (<em class=red>tap</em> del) inval)))))
+	 (incf j))))
+    (<a class=quiet href="#close-input">close-input</a> inf)))
+
+;;; (<a class=quiet href="#with-sound">with-sound</a> () (echo 0 60000 .5 1.0 "pistol.snd"))
+</pre>
+
+
+
+
+<!--  COMB, NOTCH  -->
+
+<div class="innerheader">comb and notch</div>
+
+<pre class="indented">
+<em class=def id="make-comb">make-comb</em> <a class=quiet href="#optional-key">&optional-key</a> scaler size initial-contents initial-element max-size
+<em class=def id="comb">comb</em> cflt input &optional (pm 0.0)
+<em class=def id="comb?">comb?</em> cflt
+
+<em class=def id="make-filtered-comb">make-filtered-comb</em> <a class=quiet href="#optional-key">&optional-key</a> scaler size initial-contents initial-element max-size filter
+<em class=def id="filtered-comb">filtered-comb</em> cflt input &optional (pm 0.0)
+<em class=def id="filtered-comb?">filtered-comb?</em> cflt
+
+<em class=def id="make-notch">make-notch</em> <a class=quiet href="#optional-key">&optional-key</a> scaler size initial-contents initial-element max-size
+<em class=def id="notch">notch</em> cflt input &optional (pm 0.0)
+<em class=def id="notch?">notch?</em> cflt
+</pre>
+
+<p><b>comb</b> is a delay line with a scaler on the feedback term.  <b>notch</b>
+is a delay line with a scaler on the feedforward term.
+size is the length
+in samples of the delay line. 
+Other arguments are handled as in <a href="#delay">delay</a>.
+<b>filtered-comb</b> is a comb filter with a one-zero filter on the feedback.
+</p>
+
+<table class="method">
+<tr><td colspan=2 class="title">comb, filtered-comb, and notch methods</td></tr>
+<tr><td class="inner"><em class=gen>mus-length</em></td>        <td class="inner">length of delay</td></tr>
+<tr><td class="inner"><em class=gen>mus-order</em></td>         <td class="inner">same as mus-length</td></tr>
+<tr><td class="inner"><em class=gen>mus-data</em></td>          <td class="inner">delay line itself (no setf)</td></tr>
+<tr><td class="inner"><em class=gen>mus-feedback</em></td>      <td class="inner">scaler (comb only)</td></tr>
+<tr><td class="inner"><em class=gen>mus-feedforward</em></td>   <td class="inner">scaler (notch only)</td></tr>
+<tr><td class="inner"><em class=gen>mus-interp-type</em></td>   <td class="inner">interpolation choice (no setf)</td></tr>
+</table>
+
+<pre class="indented">
+ comb:           y(n) = x(n - size) + scaler * y(n - size)
+ notch:          y(n) = x(n) * scaler  + x(n - size)
+ filtered-comb:  y(n) = x(n - size) + scaler * filter(y(n - size))
+</pre>
+
+<p>As a rule of thumb, the decay time of the feedback part is
+7.0 * size / (1.0 - scaler) samples, so to get a decay of dur seconds,
+scaler <= 1.0 - 7.0 * size / (dur * *srate*).  The peak gain is 1.0 / (1.0 - (abs
+scaler)).  The peaks (or valleys in notch's case) are evenly spaced
+at *srate* / size. The height (or depth) thereof is determined by scaler —
+the closer to 1.0, the more pronounced.
+See Julius Smith's "An Introduction to Digital Filter Theory" in
+Strawn "Digital Audio Signal Processing", or Smith's "Music Applications of
+Digital Waveguides".
+The following instrument sweeps the comb filter using the pm argument:
+</p>
+
+<pre class="indented">
+(definstrument zc (time dur freq amp length1 length2 feedback)
+  (multiple-value-bind
+      (beg end) (times->samples time dur)
+    (let ((s (<a class=quiet href="#make-pulse-train">make-pulse-train</a> :frequency freq))  ; some raspy input so we can hear the effect easily
+          (d0 (<em class=red>make-comb</em> :size length1 :max-size (max length1 length2) :scaler feedback))
+          (zenv (<a class=quiet href="#make-env">make-env</a> '(0 0 1 1) :scaler (- length2 length1) :duration dur)))
+      (run
+       (loop for i from beg to end do
+	 (<a class=quiet href="#outa">outa</a> i (<em class=red>comb</em> d0 (* amp (<a class=quiet href="#pulse-train">pulse-train</a> s)) (<a class=quiet href="#env">env</a> zenv))))))))
+
+(with-sound () (zc 0 3 100 .1 20 100 .5) (zc 3.5 3 100 .1 90 100 .95))
+</pre>
+
+
+
+
+<!--  ALL-PASS  -->
+
+<div class="innerheader">all-pass</div>
+
+<pre class="indented">
+<em class=def id="make-all-pass">make-all-pass</em> <a class=quiet href="#optional-key">&optional-key</a> feedback feedforward size initial-contents initial-element max-size
+<em class=def id="all-pass">all-pass</em> f input &optional (pm 0.0)
+<em class=def id="all-pass?">all-pass?</em> f
+</pre>
+
+<p><b>all-pass</b> or moving average comb is just like <a href="#comb">comb</a> but with
+an added feedforward term.  If feedforward = 0, we get a
+comb filter.  If both scale terms = 0, we get a pure delay line. </p>
+
+<table class="method">
+<tr><td colspan=2 class="title">all-pass methods</td></tr>
+<tr><td class="inner"><em class=gen>mus-length</em></td>       <td class="inner">length of delay</td></tr>
+<tr><td class="inner"><em class=gen>mus-order</em></td>        <td class="inner">same as mus-length</td></tr>
+<tr><td class="inner"><em class=gen>mus-data</em></td>         <td class="inner">delay line itself (no setf)</td></tr>
+<tr><td class="inner"><em class=gen>mus-feedback</em></td>     <td class="inner">feedback scaler</td></tr>
+<tr><td class="inner"><em class=gen>mus-feedforward</em></td>  <td class="inner">feedforward scaler</td></tr>
+<tr><td class="inner"><em class=gen>mus-interp-type</em></td>  <td class="inner">interpolation choice (no setf)</td></tr>
+</table>
+
+<pre class="indented">
+ y(n) = feedforward * x(n) + x(n - size) + feedback * y(n - size)
+</pre>
+
+<p>all-pass filters are used extensively in reverberation; see jcrev.ins or nrev.ins for examples.
+</p>
+
+
+
+<!--  MOVING-AVERAGE  -->
+
+<div class="innerheader">moving-average</div>
+
+<pre class="indented">
+<em class=def id="make-moving-average">make-moving-average</em> <a class=quiet href="#optional-key">&optional-key</a> size initial-contents initial-element
+<em class=def id="moving-average">moving-average</em> f input
+<em class=def id="moving-average?">moving-average?</em> f
+</pre>
+
+<p><b>moving-average</b> or moving window average returns the average of the last 'size' values input to it.
+This is used both to track rms values and to generate ramps between 0 and 1 in a "gate"
+effect in new-effects.scm and in rms-envelope in env.scm (Snd).  It could also be viewed as a low-pass filter.
+</p>
+
+<table class="method">
+<tr><td colspan=2 class="title">moving-average methods</td></tr>
+<tr><td class="inner"><em class=gen>mus-length</em></td> <td class="inner">length of table</td></tr>
+<tr><td class="inner"><em class=gen>mus-order</em></td>  <td class="inner">same as mus-length</td></tr>
+<tr><td class="inner"><em class=gen>mus-data</em></td>   <td class="inner">table of last 'size' values</td></tr>
+</table>
+
+<pre class="indented">
+result = sum-of-last-n-inputs / n
+</pre>
+
+<p>moving-average is used in Snd's dsp.scm to implement several related functions:
+moving-rms, moving-sum, and moving-length.  I might make these CLM generators someday.
+</p>
+
+
+
+<!--  SRC  -->
+
+<div class="innerheader">src</div>
+<!-- INDEX make-src:sampling-rate conversion -->
+
+<pre class="indented">
+<em class=def id="make-src">make-src</em> <a class=quiet href="#optional-key">&optional-key</a> input (srate 1.0) (width 5)
+<em class=def id="src">src</em> s &optional (sr-change 0.0) input-function
+<em class=def id="src?">src?</em> s
+</pre>
+
+<table class="method">
+<tr><td colspan=2 class="title">src methods</td></tr>
+<tr><td class="inner"><em class=gen>mus-increment</em></td><td class="inner">srate arg to make-src</td></tr>
+</table>
+
+<p><b>src</b> performs sampling rate conversion
+by convolving its input with a sinc
+function.
+srate is the
+ratio between the old sampling rate and the new; an srate of 2 causes the sound to be half as long, transposed up an octave.
+width is how many neighboring samples to convolve with sinc.
+If you hear high-frequency artifacts in the conversion, try increasing this number;
+Perry Cook's default value is 40, and I've seen cases where it needs to be 100.
+It can also be set as low as 2 in some cases.
+The greater the width, the slower the src generator runs.
+The sr-change
+argument is the amount to add to the current srate on a sample by sample
+basis (if it's 0.0 and the original make-src srate argument was also 0.0, you get a constant output because the generator is not moving at all).  Here's
+an instrument that provides time-varying sampling rate conversion:
+</p>
+
+<pre class="indented">
+(<a class=quiet href="#definstrument">definstrument</a> simple-src (start-time duration amp srt srt-env filename)
+  (let* ((senv (<a class=quiet href="#make-env">make-env</a> srt-env :duration duration))
+         (beg (floor (* start-time *srate*)))
+         (end (+ beg (floor (* duration *srate*))))
+         (src-gen (<em class=red>make-src</em> :input filename :srate srt)))
+    (run
+      (loop for i from beg below end do
+        (<a class=quiet href="#outa">outa</a> i (* amp (<em class=red>src</em> src-gen (<a class=quiet href="#env">env</a> senv))))))))
+</pre>
+
+<!-- here's a multichannel version:
+(definstrument simple-src (start-time duration amp srt filename)
+  (let* ((beg (floor (* start-time *srate*)))
+         (end (+ beg (floor (* duration *srate*))))
+	 (chans (min (mus-channels *output*) (mus-channels filename)))
+	 (srcs (make-array chans)))
+    (loop for i from 0 below chans do
+      (setf (aref srcs i) (make-src :srate srt :input (make-file->sample :file filename :channel i))))
+    (run
+      (loop for i from beg below end do
+        (loop for k from 0 below chans do
+          (out-any i (* amp (src (aref srcs k))) k))))))
+
+
+;(with-sound (:channels 2) (simple-src 0 2 .5 1.5 "/home/bil/cl/2.snd"))
+-->
+
+<p>src can provide an all-purpose "Forbidden Planet" sound effect:</p>
+
+<pre class="indented">
+(<a class=quiet href="#definstrument">definstrument</a> srcer (start-time duration amp srt fmamp fmfreq filename)
+  (let* ((os (<a class=quiet href="#make-oscil">make-oscil</a> :frequency fmfreq))
+         (beg (floor (* start-time *srate*)))
+         (end (+ beg (floor (* duration *srate*))))
+         (src-gen (<em class=red>make-src</em> :input filename :srate srt)))
+    (run
+      (loop for i from beg below end do
+        (<a class=quiet href="#outa">outa</a> i (* amp (<em class=red>src</em> src-gen (* fmamp (<a class=quiet href="#oscil">oscil</a> os)))))))))
+
+(<a class=quiet href="#with-sound">with-sound</a> () (srcer 0 2 1.0   1 .3 20 "fyow.snd"))   
+(<a class=quiet href="#with-sound">with-sound</a> () (srcer 0 25 10.0   .01 1 10 "fyow.snd"))
+(<a class=quiet href="#with-sound">with-sound</a> () (srcer 0 2 1.0   .9 .05 60 "oboe.snd")) 
+(<a class=quiet href="#with-sound">with-sound</a> () (srcer 0 2 1.0   1.0 .5 124 "oboe.snd"))
+(<a class=quiet href="#with-sound">with-sound</a> () (srcer 0 10 10.0   .01 .2 8 "oboe.snd"))
+(<a class=quiet href="#with-sound">with-sound</a> () (srcer 0 2 1.0   1 3 20 "oboe.snd"))    
+
+(<a class=quiet href="#definstrument">definstrument</a> hello-dentist (beg dur file frq amp)
+  (let ((rd (<em class=red>make-src</em> :input file))
+        (rn (<a class=quiet href="#make-rand-interp">make-rand-interp</a> :frequency frq :amplitude amp))
+        (end (+ beg dur)))
+    (run
+      (loop for i from beg below end do
+        (<a class=quiet href="#outa">outa</a> i (<em class=red>src</em> rd (<a class=quiet href="#rand-interp">rand-interp</a> rn)))))))
+</pre>
+
+<p>The input argument to make-src and the input-function argument
+to src provide the generator with input as it is needed. 
+The input function
+takes one argument (the desired read direction, if the reader can support it); it is funcall'd each time the src generator needs another
+sample of input.  The input argument to src can also be an input file structure, as returned by
+open-input, or as here, just the filename itself.
+The simple-src instrument above could be written to use an input function instead:
+</p>
+
+<pre class="indented">
+(<a class=quiet href="#definstrument">definstrument</a> src-with-readin (start-time duration amp srt srt-env filename)
+  (let* ((senv (<a class=quiet href="#make-env">make-env</a> srt-env :duration duration))
+         (beg (floor (* start-time *srate*)))
+	 (rd (<em class=red>make-readin</em> filename))
+         (end (+ beg (floor (* duration *srate*))))
+         (src-gen (<em class=red>make-src</em> :srate srt)))
+    (run
+      (loop for i from beg below end do
+        (<a class=quiet href="#outa">outa</a> i (* amp (<em class=red>src</em> src-gen (<a class=quiet href="#env">env</a> senv) #'(lambda (dir) (<em class=red>readin</em> rd)))))))))
+</pre>
+
+<p>
+If you jump around in the input (via <b>mus-location</b> for example), you can use the
+<b>mus-reset</b> function to clear out any lingering state before starting to read at
+the new position. (<b>src</b>, like many other generators, has an internal buffer
+of recently read samples, so a sudden jump to a new location will otherwise cause
+a click).
+</p>
+
+
+
+
+<!--  CONVOLVE  -->
+
+<div class="innerheader">convolve</div>
+
+<pre class="indented">
+<em class=def id="make-convolve">make-convolve</em> <a class=quiet href="#optional-key">&optional-key</a> input filter fft-size filter-size
+ <em class=def id="convolve">convolve</em> ff &optional input-function
+ <em class=def id="convolve?">convolve?</em> ff
+ <em class=def id="convolvefiles">convolve-files</em> file1 file2 &optional (maxamp 1.0) (output-file "tmp.snd")
+</pre>
+
+<table class="method">
+<tr><td colspan=2 class="title">convolve methods</td></tr>
+<tr><td class="inner"><em class=gen>mus-length</em></td><td class="inner">fft size used in the convolution</td></tr>
+</table>
+
+<p>
+<b>convolve</b> convolves its input with the impulse response filter.
+The filter argument 
+can be
+an array, the result of open-input, or a filename as a string.
+When not file based,
+input and input-function are functions of one argument (currently ignored) that are
+funcall'd whenever convolve needs input.
+</p>
+
+<pre class="indented">
+(<a class=quiet href="#definstrument">definstrument</a> convins (beg dur filter file &optional (size 128))
+  (let* ((start (floor (* beg *srate*)))
+         (end (+ start (floor (* dur *srate*))))
+         (ff (<em class=red>make-convolve</em> :input file :fft-size size :filter filter)))
+    (run
+      (loop for i from start below end do 
+        (<a class=quiet href="#outa">outa</a> i (<em class=red>convolve</em> ff))))))
+</pre>
+
+<p><b>convolve-files</b> handles a very common special case: you often want to convolve
+two files, normalizing the result to some maxamp.  The convolve generator does not
+know in advance what its maxamp will be, and when the two files are more or less
+the same size, there's no real computational savings to using overlap-add (i.e.
+the generator), so a one-time giant FFT saved as a temporary sound file is much
+handier.</p>
+
+
+
+<!--  GRANULATE  -->
+
+<div class="innerheader">granulate</div>
+<!-- INDEX grains:Granular synthesis --><em class=def id="grains"></em>
+
+<pre class="indented">
+<em class=def id="make-granulate">make-granulate</em> <a class=quiet href="#optional-key">&optional-key</a>   
+        input
+        (expansion 1.0)   ; how much to lengthen or compress the file
+        (length .15)      ; length of file slices that are overlapped
+        (scaler .6)       ; amplitude scaler on slices (to avoid overflows)
+        (hop .05)         ; speed at which slices are repeated in output
+        (ramp .4)         ; amount of slice-time spent ramping up/down
+        (jitter 1.0)      ; affects spacing of successive grains
+        max-size          ; internal buffer size
+        edit              ; grain editing function (Scheme/Ruby, not CL)
+<em class=def id="granulate">granulate</em> e &optional input-function edit-function
+<em class=def id="granulate?">granulate?</em> e
+</pre>
+
+<table class="method">
+<tr><td colspan=2 class="title">granulate methods</td></tr>
+<tr><td class="inner"><em class=gen>mus-frequency</em></td>   <td class="inner">time (seconds) between output grains (hop)</td></tr>
+<tr><td class="inner"><em class=gen>mus-ramp</em></td>        <td class="inner">length (samples) of grain envelope ramp segment</td></tr>
+<tr><td class="inner"><em class=gen>mus-hop</em></td>         <td class="inner">time (samples)  between output grains (hop)</td></tr>
+<tr><td class="inner"><em class=gen>mus-scaler</em></td>      <td class="inner">grain amp (scaler)</td></tr>
+<tr><td class="inner"><em class=gen>mus-increment</em></td>   <td class="inner">expansion</td></tr>
+<tr><td class="inner"><em class=gen>mus-length</em></td>      <td class="inner">grain length (samples)</td></tr>
+<tr><td class="inner"><em class=gen>mus-data</em></td>        <td class="inner">grain samples (a vct)</td></tr>
+<tr><td class="inner"><em class=gen>mus-location</em></td>    <td class="inner">granulate's local random number seed</td></tr>
+</table>
+
+<pre class="indented">
+result = overlap add many tiny slices from input
+</pre>
+
+<p><b>granulate</b> "granulates" its input (normally a sound file).  It is the poor man's way
+to change the speed at which things happen in a recorded sound without
+changing the pitches.  It works by slicing the input file into short
+pieces, then overlapping these slices to lengthen (or shorten) the
+result; this process is sometimes known as granular synthesis, and is
+similar to the freeze function.  
+</p>
+
+<p>The duration of each slice is
+length — the longer the slice, the more like reverb the effect.  The
+portion of the length (on a scale from 0 to 1.0) spent on each
+ramp (up or down) is ramp.  This can control the smoothness of
+the result of the overlaps. 
+</p>
+
+<p> 
+jitter sets
+the accuracy with which we hop.  If you set it to 0, you can get very strong
+comb filter effects, or tremolo.
+The more-or-less average time between
+successive segments is hop.  
+If jitter is 0.0, and hop is very small (say .01),
+you're asking for trouble (a big comb filter).
+If you're granulating more than one channel at a time, and want the channels to remain
+in-sync, make each granulator use the same initial random number seed (via <b>mus-location</b>).
+</p>
+
+<p>The overall amplitude scaler on each segment is
+scaler — this is used to try to avoid overflows as we add
+all these zillions of segments together.  expansion
+determines the input hop in relation to the output hop; an
+expansion-amount of 2.0 should more or less double the length of the
+original, whereas an expansion-amount of 1.0 should return something
+close to the original speed.
+input and input-function are the same as in src and convolve.
+</p>
+
+<pre class="indented">
+(<a class=quiet href="#definstrument">definstrument</a> granulate-sound (file beg &optional dur (orig-beg 0.0) (exp-amt 1.0))
+  (let* ((f-srate (<a class=quiet href="#sound-srate">sound-srate</a> file))
+	 (f-start (round (* f-srate orig-beg)))
+         (f (<a class=quiet href="#open-input">open-input</a> file :start f-start))
+	 (st (floor (* beg *srate*)))
+	 (new-dur (or dur (- (<a class=quiet href="#sound-duration">sound-duration</a> file) orig-beg)))
+	 (exA (<em class=red>make-granulate</em> :input f :expansion exp-amt))
+	 (nd (+ st (floor (* *srate* new-dur)))))
+    (run
+     (loop for i from st below nd do
+       (<a class=quiet href="#outa">outa</a> i (<em class=red>granulate</em> exA))))
+    (<a class=quiet href="#close-input">close-input</a> f)))
+</pre>
+
+<p>See expsrc.ins.  Here's an instrument that uses the input-function
+argument to granulate.  It cause the granulation to run backwards through the file:
+</p>
+
+<pre class="indented">
+(<a class=quiet href="#definstrument">definstrument</a> grev (beg dur exp-amt file file-beg)
+  (let* ((exA (<em class=red>make-granulate</em> :expansion exp-amt))
+	 (fil (<a class=quiet href="#open-input*">open-input*</a> file file-beg))
+	 (ctr file-beg))
+    (run
+     (loop for i from beg to (+ beg dur) do
+       (<a class=quiet href="#outa">outa</a> i (<em class=red>granulate</em> exA
+			  #'(lambda (dir)
+			      (let ((inval (<a class=quiet href="#ina">ina</a> ctr fil)))
+				(if (> ctr 0) (setf ctr (1- ctr)))
+				inval))))))
+    (<a class=quiet href="#close-input">close-input</a> fil)))
+
+(<a class=quiet href="#with-sound">with-sound</a> () (grev 0 100000 2.0 "pistol.snd" 40000))
+</pre>
+
+<p>
+The edit argument can
+be a function of one argument, the current granulate generator.  It is called just before
+a grain is added into the output buffer. The current grain is accessible via mus-data.
+The edit function, if any, should return the length in samples of the grain, or 0.
+</p>
+
+
+
+<!--  PHASE-VOCODER  -->
+
+<div class="innerheader">phase-vocoder</div>
+
+<pre class="indented">
+<em class=def id="make-phase-vocoder">make-phase-vocoder</em> <a class=quiet href="#optional-key">&optional-key</a> input (fft-size 512) (overlap 4) interp (pitch 1.0) analyze edit synthesize
+<em class=def id="phase-vocoder">phase-vocoder</em> pv input-function analyze-function edit-function synthesize-function
+<em class=def id="phase-vocoder?">phase-vocoder?</em> pv
+</pre>
+
+<table class="method">
+<tr><td colspan=2 class="title">phase-vocoder methods</td></tr>
+<tr><td class="inner"><em class=gen>mus-frequency</em></td>  <td class="inner">pitch shift</td></tr>
+<tr><td class="inner"><em class=gen>mus-length</em></td>     <td class="inner">fft-size</td></tr>
+<tr><td class="inner"><em class=gen>mus-increment</em></td>  <td class="inner">interp</td></tr>
+<tr><td class="inner"><em class=gen>mus-hop</em></td>        <td class="inner">fft-size / overlap</td></tr>
+<tr><td class="inner"><em class=gen>mus-location</em></td>   <td class="inner">outctr (counter to next fft)</td></tr>
+</table>
+
+<p>phase-vocoder provides a generator to perform phase-vocoder analysis and resynthesis.  The process is
+split into three pieces, the analysis stage, editing of the amplitudes and phases, then the resynthesis.
+Each stage has a default that is invoked if the analyze, edit, or synthesize
+arguments are omitted from make-phase-vocoder or the phase-vocoder generator.  The edit and synthesize arguments are functions of one argument, the
+phase-vocoder generator.  The analyze argument is a function of two arguments, the generator and
+the input function. The default is to read the current input,
+take an fft, get the new amplitudes and phases (as the edit
+function default), then resynthesize using sines; so, the
+default case returns a resynthesis of the original input.  interp sets the time between
+ffts (for time stretching etc). 
+</p>
+
+<pre class="indented">
+(definstrument simple-pvoc (beg dur amp size file)
+  (let* ((start (floor (* beg *srate*)))
+	 (end (+ start (floor (* dur *srate*))))
+	 (sr (<em class=red>make-phase-vocoder</em> file :fft-size size)))
+      (run
+       (loop for i from start to end do
+	 (<a class=quiet href="#outa">outa</a> i (* amp (<em class=red>phase-vocoder</em> sr)))))))
+</pre>
+
+<p>See ug3.ins for instruments that use the various function arguments.  In Snd, clm23.scm
+has a variety of instruments calling the phase-vocoder generator, including pvoc-e that
+specifies all of the functions with their default values (that is, it explicitly passes
+in functions that do what the phase-vocoder would have done without any function arguments).
+</p>
+
+
+
+<!--  NRXYCOS, NRXYSIN  -->
+
+<div class="innerheader">nrxycos and nrxysin</div>
+
+<pre class="indented">
+<em class=def id="make-nrxysin">make-nrxysin</em> <a class=quiet href="#optional-key">&optional-key</a> (frequency *clm-default-frequency*) (ratio 1.0) (n 1) (r .5)
+<em class=def id="nrxysin">nrxysin</em> s &optional (fm 0.0)
+<em class=def id="nrxysin?">nrxysin?</em> s
+
+<em class=def id="make-nrxycos">make-nrxycos</em> <a class=quiet href="#optional-key">&optional-key</a> (frequency *clm-default-frequency*) (ratio 1.0) (n 1) (r .5)
+<em class=def id="nrxycos">nrxycos</em> s &optional (fm 0.0)
+<em class=def id="nrxycos?">nrxycos?</em> s
+</pre>
+
+<table class="method">
+<tr><td colspan=2 class="title">nrxysin methods</td></tr>
+<tr><td class="inner"><em class=gen>mus-frequency</em></td>  <td class="inner">frequency in Hz</td></tr>
+<tr><td class="inner"><em class=gen>mus-phase</em></td>      <td class="inner">phase in radians</td></tr>
+<tr><td class="inner"><em class=gen>mus-scaler</em></td>     <td class="inner">"a" parameter; sideband scaler</td></tr>
+<tr><td class="inner"><em class=gen>mus-length</em></td>     <td class="inner">"n" parameter</td></tr>
+<tr><td class="inner"><em class=gen>mus-increment</em></td>  <td class="inner">frequency in radians per sample</td></tr>
+<tr><td class="inner"><em class=gen>mus-offset</em></td>     <td class="inner">"ratio" parameter</td></tr>
+</table>
+
+<pre class="indented">
+(/ (- (sin phase) (* a (sin (- phase (* ratio phase))))
+      (* (expt a (1+ n)) (- (sin (+ phase (* (+ N 1) (* ratio phase))))
+			    (* a (sin (+ phase (* N (* ratio phase))))))))
+   (- (+ 1 (* a a)) (* 2 a (cos (* ratio phase)))))
+</pre>
+
+<p>These three generators 
+produce a kind of additive synthesis.
+"n" is the number of sidebands (0 gives a sine wave), "r" is the amplitude
+ratio between successive sidebands (don't set it to 1.0), and "ratio" is the ratio between the
+carrier frequency and the spacing between successive sidebands.
+A "ratio" of 2 gives odd-numbered harmonics for a (vaguely) clarinet-like sound.
+The basic idea is very similar to that used in the
+<a href="#ncos">ncos</a> generator, but you have control of the
+fall-off of the spectrum and the spacing of the partials.
+</p>
+
+<p>The peak amplitude of the nrxysin is hard to predict.
+I think nrxysin is close to the -1.0..1.0 ideal, and won't go over 1.0.
+<a href="#nrxycos">nrxycos</a> is normalized correctly.
+</p>
+
+<pre class="indented">
+(<a class=quiet href="#definstrument">definstrument</a> ss (beg dur freq amp &optional (n 1) (r 0.5) (ratio 1.0))
+  (let* ((st (floor (* *srate* beg)))
+         (nd (+ st (floor (* *srate* dur))))
+         (sgen (<em class=red>make-nrxycos</em> freq ratio n r)))
+    (run
+     (loop for i from st below nd do
+       (<a class=quiet href="#outa">outa</a> i (* amp (<em class=red>nrxycos</em> sgen)))))))
+</pre>
+
+
+
+
+<!--  ASYMMETRIC-FM  -->
+
+<div class="innerheader">asymmetric-fm</div>
+
+<pre class="indented">
+<em class=def id="make-asymmetric-fm">make-asymmetric-fm</em> <a class=quiet href="#optional-key">&optional-key</a> (frequency *clm-default-frequency*) (initial-phase 0.0) (r 1.0) (ratio 1.0)
+<em class=def id="asymmetric-fm">asymmetric-fm</em> af index &optional (fm 0.0)
+<em class=def id="asymmetric-fm?">asymmetric-fm?</em> af
+</pre>
+
+<table class="method">
+<tr><td colspan=2 class="title">asymmetric-fm methods</td></tr>
+<tr><td class="inner"><em class=gen>mus-frequency</em></td>  <td class="inner">frequency in Hz</td></tr>
+<tr><td class="inner"><em class=gen>mus-phase</em></td>      <td class="inner">phase in radians</td></tr>
+<tr><td class="inner"><em class=gen>mus-scaler</em></td>     <td class="inner">"r" parameter; sideband scaler</td></tr>
+<tr><td class="inner"><em class=gen>mus-offset</em></td>     <td class="inner">"ratio" parameter</td></tr>
+<tr><td class="inner"><em class=gen>mus-increment</em></td>  <td class="inner">frequency in radians per sample</td></tr>
+</table>
+
+<pre class="indented">
+(* (exp (* index (* 0.5 (- r (/ 1.0 r)))
+	   (cos (* ratio phase))))
+   (sin (+ phase (* index (* 0.5 (+ r (/ 1.0 r)))
+		    (sin (* ratio phase))))))
+</pre>
+
+<p><b>asymmetric-fm</b> provides a way around the symmetric spectra normally produced by FM.
+See  Palamin and Palamin, "A Method of Generating and Controlling Asymmetrical
+Spectra" JAES vol 36, no 9, Sept 88, p671-685.
+The generator's output amplitude is not always easy to predict.  r is the ratio between successive 
+sideband amplitudes, r > 1.0 pushes energy above the carrier, r < 1.0 pushes it below. (r = 1.0
+gives normal FM). ratio
+is the ratio between the carrier and modulator (i.e. sideband spacing). It's somewhat inconsistent
+that asymmetric-fm takes index (the fm-index) as its second argument, but otherwise it
+would be tricky to get time-varying indices.
+</p>
+
+<pre class="indented">
+(<a class=quiet href="#definstrument">definstrument</a> asy (beg dur freq amp index &optional (r 1.0) (ratio 1.0))
+  (let* ((st (floor (* beg *srate*)))
+         (nd (+ st (floor (* dur *srate*))))
+         (asyf (<em class=red>make-asymmetric-fm</em> :r r :ratio ratio :frequency freq)))
+    (run
+     (loop for i from st below nd do
+       (<a class=quiet href="#outa">outa</a> i (* amp (<em class=red>asymmetric-fm</em> asyf index 0.0)))))))
+</pre>
+
+<p>For the other kind of asymmetric-fm, and for asymmetric spectra via "single sideband FM", see dsp.scm in Snd.
+</p>
+
+
+
+
+<div class="innerheader">Other generators</div>
+
+<p>There are a number of other generators in the CLM distribution that aren't
+loaded by default.  Among these are:</p>
+
+<pre class="indented">
+  <a href="balance.html#rms">rms</a>         ; trace the rms of signal
+  <a href="balance.html#gain">gain</a>        ; modify signal to match rms power
+  <a href="balance.html#balance">balance</a>     ; combination of rms and gain
+</pre>
+
+<p>
+green.cl defines several special purpose noise generators.
+butterworth.cl has several Butterworth filters.  
+(See analog-filter.scm in the Snd package for functions to design all the usual analog filters;
+the output is compatible with the Scheme version of CLM's filter generator).
+</p>
+
+<div class="innerheader" id="generic-functions">generic functions</div>
+
+<p>The generators have internal state that is sometimes of interest at run-time.  To get or
+set this state, use these functions (they are described in conjunction with the associated generators):</p>
+
+<table class="spaced">
+<tr><td class="bluish"><em class=def id="mus-channel">mus-channel</em></td><td class="bluish">channel being read/written</td></tr>
+<tr><td><em class=def id="mus-channels">mus-channels</em></td><td>channels open</td></tr>
+<tr><td><em class=def id="mus-data">mus-data</em></td><td>array of data</td></tr>
+<tr><td class="bluish"><em class=def id="mus-describe">mus-describe</em></td><td class="bluish">description of current state</td></tr>
+<tr><td><em class=def id="mus-feedback">mus-feedback</em></td><td>feedback coefficient</td></tr>
+<tr><td class="bluish"><em class=def id="mus-feedforward">mus-feedforward</em></td><td class="bluish">feedforward coefficient</td></tr>
+<tr><td><em class=def id="mus-file-name">mus-file-name</em></td><td>file being read/written</td></tr>
+<tr><td><em class=def id="mus-frequency">mus-frequency</em></td><td>frequency (Hz)</td></tr>
+<tr><td class="bluish"><em class=def id="mus-hop">mus-hop</em></td><td class="bluish">hop size for block processing</td></tr>
+<tr><td><em class=def id="mus-increment">mus-increment</em></td><td>various increments</td></tr>
+<tr><td class="bluish"><em class=def id="mus-interp-type">mus-interp-type</em></td><td class="bluish">interpolation type (mus-interp-linear, etc)</td></tr>
+<tr><td><em class=def id="mus-length">mus-length</em></td><td>data array length</td></tr>
+<tr><td class="bluish"><em class=def id="mus-location">mus-location</em></td><td class="bluish">sample location for reads/writes</td></tr>
+<tr><td><em class=def id="mus-name">mus-name</em></td><td>generator name ("oscil")</td></tr>
+<tr><td class="bluish"><em class=def id="mus-offset">mus-offset</em></td><td class="bluish">envelope offset</td></tr>
+<tr><td><em class=def id="mus-order">mus-order</em></td><td>filter order</td></tr>
+<tr><td class="bluish"><em class=def id="mus-phase">mus-phase</em></td><td class="bluish">phase (radians)</td></tr>
+<tr><td><em class=def id="mus-ramp">mus-ramp</em></td><td>granulate grain envelope ramp setting</td></tr>
+<tr><td class="bluish"><em class=def id="mus-reset">mus-reset</em></td><td class="bluish">set gen to default starting state</td></tr>
+<tr><td><em class=def id="mus-run">mus-run</em></td><td>run any generator</td></tr>
+<tr><td class="bluish"><em class=def id="mus-scaler">mus-scaler</em></td><td class="bluish">scaler, normally on an amplitude</td></tr>
+<tr><td><em class=def id="mus-width">mus-width</em></td><td>width of interpolation tables, etc</td></tr>
+<tr><td class="bluish"><em class=def id="mus-xcoeff">mus-xcoeff</em></td><td class="bluish">x (input) coefficient</td></tr>
+<tr><td><em class=def id="mus-xcoeffs">mus-xcoeffs</em></td><td>array of x (input) coefficients</td></tr>
+<tr><td class="bluish"><em class=def id="mus-ycoeff">mus-ycoeff</em></td><td class="bluish">y (output, feedback) coefficient</td></tr>
+<tr><td><em class=def id="mus-ycoeffs">mus-ycoeffs</em></td><td>array of y (feedback) coefficients</td></tr>
+</table>
+
+<p>Many of these are settable:
+<code>(setf (mus-frequency osc1) 440.0)</code>
+sets osc1's current frequency to (<a class=quiet href="#hztoradians">hz->radians</a> 440.0). 
+</p>
+
+<pre class="indented">
+(definstrument backandforth (onset duration file src-ratio)
+  ;; read file forwards and backwards until dur is used up
+  ;; a slightly improved version is 'scratch' in ug1.ins
+  (let* ((last-sample (<a class=quiet href="#sound-framples">sound-framples</a> file))
+         (beg (floor (* *srate* onset)))
+         (end (+ beg (floor (* *srate* duration))))
+	 (input (<a class=quiet href="#make-readin">make-readin</a> file))
+         (s (<a class=quiet href="#make-src">make-src</a> :srate src-ratio))
+         (cs 0))
+    (run
+     (loop for i from beg below end do
+       (declare (type :integer cs last-sample)
+		(type :float src-ratio))
+       (if (>= cs last-sample) (setf (<em class=red>mus-increment</em> s) (- src-ratio)))
+       (if (<= cs 0) (setf (<em class=red>mus-increment</em> s) src-ratio))
+       (<a class=quiet href="#outa">outa</a> i (<a class=quiet href="#src">src</a> s 0.0 #'(lambda (dir) 
+			      (incf cs dir)
+			      (setf (<em class=red>mus-increment</em> input) dir)
+			      (<a class=quiet href="#readin">readin</a> input))))))))
+
+;;; (with-sound () (backandforth 0 10 "pistol.snd" 2.0))
+</pre>
+
+
+
+
+<!--  IN-ANY/OUT-ANY  -->
+
+<div class="innerheader" id="soundio">Sound IO</div>
+
+<p>Sound file IO is supported by a variety of functions.  To read and write sound files into an
+array, use <b>array->file</b> and <b>file->array</b>.  
+Within the run-loop, <b>out-any</b>, <b>in-any</b>, and <b>readin</b>
+are the simplest input and output generators; <b>locsig</b> provides a sort of sound placement; <b>dlocsig</b> provides
+moving sound placement.  When you use with-sound, the variable <b>*output*</b> is bound to a <b>sample->file</b>
+object, so output by default goes to with-sound's output file. You can open (for reading or
+writing) any sound files via <b>make-file->sample</b> (or ->frample), and <b>make-sample->file</b>
+(or frample->).  These return an IO object which you subsequently pass to <b>file->sample</b>
+(for input) and <b>sample->file</b> (for output).  To close the connection to the file system,
+you can use <b>mus-close</b>, but it's also called automatically during garbage collection, if needed.
+</p>
+
+<table class="spaced">
+<tr><td><em class=def id="mus-input?">mus-input?</em><code> obj</code></td><td>t if obj performs sound input</td></tr>
+<tr><td><em class=def id="mus-output?">mus-output?</em><code> obj</code></td><td>t if obj performs sound output</td></tr>
+<tr><td><em class=def id="filetosample?">file->sample?</em><code> obj</code></td><td>t if obj reads a sound file returning a sample</td></tr>
+<tr><td><em class=def id="sampletofile?">sample->file?</em><code> obj</code></td><td>t if obj writes a sample to a sound file</td></tr>
+<tr><td><em class=def id="frampletofile?">frample->file?</em><code> obj</code></td><td>t if obj writes a frample to a sound file</td></tr>
+<tr><td><em class=def id="filetoframple?">file->frample?</em><code> obj</code></td><td>t if obj reads a sound file returning a frample</td></tr>
+<tr><td></td><td></td></tr>
+<tr><td><em class=def id="make-filetosample">make-file->sample</em><code> name buffer-size</code></td><td>return gen that reads samples from sound file name</td></tr>
+<tr><td><em class=def id="make-sampletofile">make-sample->file</em><code> name &optional chans format type comment</code></td><td>return gen that writes samples to sound file name</td></tr>
+<tr><td><em class=def id="make-filetoframple">make-file->frample</em><code> name buffer-size</code></td><td>return gen that reads framples from sound file name</td></tr>
+<tr><td><em class=def id="make-frampletofile">make-frample->file</em><code> name &optional chans format type comment</code></td><td>return gen that writes framples to sound file name</td></tr>
+<tr><td><em class=def id="filetosample">file->sample</em><code> obj samp &optional chan</code></td><td>return sample at samp in channel chan</td></tr>
+<tr><td><em class=def id="sampletofile">sample->file</em><code> obj samp chan val</code></td><td>write (add) sample val at samp in channel chan</td></tr>
+<tr><td><em class=def id="filetoframple">file->frample</em><code> obj samp &optional outf</code></td><td>return frample at samp</td></tr>
+<tr><td><em class=def id="frampletofile">frample->file</em><code> obj samp val</code></td><td>write (add) frample val at samp</td></tr>
+<tr><td></td><td></td></tr>
+<tr><td><em class=def id="filetoarray">file->array</em><code> file channel beg dur array</code></td><td>read samples from file into array</td></tr>
+<tr><td><em class=def id="arraytofile">array->file</em><code> file data len srate channels </code></td><td>write samples in array to file</td></tr>
+<tr><td></td><td></td></tr>
+<tr><td><em class=def id="continue-frampletofile">continue-frample->file</em><code> file</code></td><td>reopen file for more output</td></tr>
+<tr><td><em class=def id="continue-sampletofile">continue-sample->file</em><code> file</code></td><td>reopen file for more output</td></tr>
+<tr><td><em class=def id="mus-close">mus-close</em><code> obj</code></td><td>close the output file associated with obj</td></tr>
+</table>
+
+
+<!-- INDEX ina-outa:Input and output --><em class=def id="ina-outa"></em>
+<div class="innerheader">out-any</div>
+
+<pre class="indented">
+<em class=def id="outa">outa</em> loc data
+<em class=def id="out-any">out-any</em> loc data &optional (channel 0) (o-stream *output*)
+</pre>
+
+<p><b>out-any</b> adds data into o-stream at sample
+position loc.  O-stream defaults to the current output
+file (it is a frample->file instance, not a file name).  The reverb stream, if any,
+is named *reverb*; the direct output is *output*.
+You can output anywhere at any time, but because of the way data is buffered internally, your
+instrument will run much faster if it does sequential output.
+<a href="#locsig">Locsig</a> is another output function.</p>
+
+<p>Many of the CLM examples and instruments use <b>outa</b> and <b>outb</b>.
+These are macros equivalent to <code>(out-any loc data 0 *output*)</code> etc.
+</p>
+
+
+
+<div class="innerheader">in-any</div>
+
+<pre class="indented">
+<em class=def id="in-any">in-any</em> loc channel i-stream
+<em class=def id="ina">ina</em> loc
+</pre>
+
+<p><b>in-any</b> returns the sample at position loc in
+i-stream as a float.
+Many of the CLM examples and instruments use <b>ina</b> and <b>inb</b>; one example is
+the digital zipper instrument <a href="zipper.ins">zipper.ins</a>.
+</p>
+
+<pre class="indented">
+(definstrument simple-ina (beg dur amp file)
+  (let* ((start (floor (* beg *srate*)))
+	 (end (+ start (floor (* dur *srate*))))
+	 (fil (<em class=red>open-input</em> file)))          ; actually make-file->sample
+    (run
+     (loop for i from start to end do
+       (<a class=quiet href="#outa">outa</a> i (* amp (<em class=red>in-any</em> i 0 fil))))) ; actually file->sample
+    (close-input fil)))
+</pre>
+
+
+
+
+<!--  READIN  -->
+
+<div class="innerheader">readin</div>
+
+<pre class="indented">
+ <em class=def id="make-readin">make-readin</em> <a class=quiet href="#optional-key">&optional-key</a> file (channel 0) start (direction 1)
+ <em class=def id="readin">readin</em> rd
+ <em class=def id="readin?">readin?</em> rd
+</pre>
+
+<table class="method">
+<tr><td colspan=2 class="title">readin methods</td></tr>
+<tr><td class="inner"><em class=gen>mus-channel</em></td>    <td class="inner">channel arg to make-readin (no setf)</td></tr>
+<tr><td class="inner"><em class=gen>mus-location</em></td>   <td class="inner">current location in file</td></tr>
+<tr><td class="inner"><em class=gen>mus-increment</em></td>  <td class="inner">sample increment (direction arg to make-readin)</td></tr>
+<tr><td class="inner"><em class=gen>mus-file-name</em></td>  <td class="inner">name of file associated with gen</td></tr>
+<tr><td class="inner"><em class=gen>mus-length</em></td>     <td class="inner">number of framples in file associated with gen</td></tr>
+</table>
+
+<p><b>readin</b> returns successive samples from file.
+file should be either an IO instance, as returned by <a href="#open-input">open-input</a>, 
+or a filename.
+start is the frample at which to start reading file. 
+channel is which channel to read (0-based).
+size is the read buffer size in samples.  It defaults to <b>*clm-file-buffer-size*</b>.
+Here is an instrument that applies an envelope to a sound file using
+readin and <a href="#env">env</a> (see also the fullmix instrument in fullmix.ins):
+</p>
+
+<pre class="indented">
+(<a class=quiet href="#definstrument">definstrument</a> env-sound (file beg &optional (amp 1.0) (amp-env '(0 1 100 1)))
+  (let* ((st (floor (* beg *srate*)))
+         (dur (<a class=quiet href="#sound-duration">sound-duration</a> file))
+         (rev-amount .01)
+         (rdA (<em class=red>make-readin</em> file))
+         (ampf (<a class=quiet href="#make-env">make-env</a> amp-env amp dur))
+         (nd (+ st (floor (* *srate* dur)))))
+    (run
+      (loop for i from st below nd do
+        (let ((outval (* (<a class=quiet href="#env">env</a> ampf) (<em class=red>readin</em> rdA))))
+  	  (<a class=quiet href="#outa">outa</a> i outval)
+	  (if *reverb* (<a class=quiet href="#outa">outa</a> i (* outval rev-amount) *reverb*)))))))
+</pre>
+
+
+
+
+<!--  LOCSIG  -->
+
+<!-- INDEX make-locsig:Sound placement -->
+
+<div class="innerheader">locsig</div>
+
+<pre class="indented">
+ <em class=def id="make-locsig">make-locsig</em> <a class=quiet href="#optional-key">&optional-key</a> (degree 0.0) (distance 1.0) (reverb 0.0) channels (type *clm-locsig-type*)
+ <em class=def id="locsig">locsig</em> loc i in-sig
+ <em class=def id="locsig?">locsig?</em> loc
+ <em class=def id="locsig-ref">locsig-ref</em> loc chan
+ <em class=def id="locsig-set!">locsig-set!</em> loc chan val
+ <em class=def id="locsig-reverb-ref">locsig-reverb-ref</em> loc chan
+ <em class=def id="locsig-reverb-set!">locsig-reverb-set!</em> loc chan val
+ <em class=def id="move-locsig">move-locsig</em> loc degree distance
+ <em class=def id="locsig-type">locsig-type</em> ()
+</pre>
+
+<table class="method">
+<tr><td colspan=2 class="title">locsig methods</td></tr>
+<tr><td class="inner"><em class=gen>mus-data</em></td>     <td class="inner">output scalers (a vct)</td></tr>
+<tr><td class="inner"><em class=gen>mus-xcoeff</em></td>   <td class="inner">reverb scaler</td></tr>
+<tr><td class="inner"><em class=gen>mus-xcoeffs</em></td>  <td class="inner">reverb scalers (a vct)</td></tr>
+<tr><td class="inner"><em class=gen>mus-channels</em></td> <td class="inner">output channels</td></tr>
+<tr><td class="inner"><em class=gen>mus-length</em></td>   <td class="inner">output channels</td></tr>
+</table>
+
+<p><b>locsig</b> normally takes the place of <a href="#outa">out-any</a> in an
+instrument.  It tries to place a signal between channels 0 and 1 (or 4 channels placed in a circle) in
+an extremely dumb manner: it just scales the respective amplitudes
+("that old trick never works").  reverb determines how much of
+the direct signal gets sent to the reverberator.  distance tries to
+imitate a distance cue by fooling with the relative amounts of direct and
+reverberated signal (independent of reverb).  distance should
+be greater than or equal to 1.0.  
+type (returned by the function <b>locsig-type</b>) can be <b>mus-interp-linear</b> (the default) or <b>mus-interp-sinusoidal</b>.
+This parameter can be set globally via <b>*clm-locsig-type*</b>.  The mus-interp-sinusoidal
+case uses sin and cos to set the respective channel amplitudes (this is reported to
+help with the "hole-in-the-middle" problem).
+</p>
+
+<p>Locsig is a
+kludge, but then so is any pretence of placement when you're piping the signal
+out a loudspeaker.  It is my current belief that locsig does the right
+thing for all the wrong reasons; a good concert hall provides auditory
+spaciousness by interfering with the ear's attempt to localize a sound.
+A diffuse sound source is the ideal!  By sending an arbitrary mix of
+signal and reverberation to various speakers, locsig gives you a very
+diffuse source; it does the opposite of what it claims to do, and by
+some perversity of Mother Nature, that is what you want.  (See "Binaural
+Phenomena" by J Blauert).
+</p>
+
+<p>Locsig can send output to any number of channels.
+If channels > 2, the speakers are assumed to be evenly spaced in
+a circle.
+You can use <b>locsig-set!</b> and <b>locsig-ref</b> to override the placement decisions.
+To have full output to both channels,</p>
+
+<pre class="indented">
+(setf (locsig-ref loc 0) 1.0) ; or (<a class=quiet href="#locsig-set!">locsig-set!</a> loc 0 1.0)
+(setf (locsig-ref loc 1) 1.0)
+</pre>
+
+<p>These locations can be set via envelopes and so on within the run
+loop to pan between speakers (but see move-locsig below):</p>
+
+<pre class="indented">
+(<a class=quiet href="#definstrument">definstrument</a> space (file onset duration &key (distance-env '(0 1 100 10)) (amplitude-env '(0 1 100 1))
+		     (degree-env '(0 45 50 0 100 90)) (reverb-amount .05))
+  (let* ((beg (floor (* onset *srate*)))
+	 (end (+ beg (floor (* *srate* duration))))
+         (loc (<em class=red>make-locsig</em> :degree 0 :distance 1 :reverb reverb-amount))
+         (rdA (<a class=quiet href="#make-readin">make-readin</a> :file file))
+         (dist-env (<a class=quiet href="#make-env">make-env</a> distance-env :duration duration))
+         (amp-env (<a class=quiet href="#make-env">make-env</a> amplitude-env :duration duration))
+         (deg-env (<a class=quiet href="#make-env">make-env</a> (scale-envelope degree-env (/ 1.0 90.0)) :duration duration))
+         (dist-scaler 0.0))
+    (run
+      (loop for i from beg below end do
+        (let ((rdval (* (<a class=quiet href="#readin">readin</a> rdA) (<a class=quiet href="#env">env</a> amp-env)))
+	      (degval (<a class=quiet href="#env">env</a> deg-env))
+	      (distval (<a class=quiet href="#env">env</a> dist-env)))
+          (setf dist-scaler (/ 1.0 distval))
+          (setf (<em class=red>locsig-ref</em> loc 0) (* (- 1.0 degval) dist-scaler))
+          (if (> (<a class=quiet href="#mus-channels">mus-channels</a> *output*) 1) (setf (<em class=red>locsig-ref</em> loc 1) (* degval dist-scaler)))
+          (when *reverb* (setf (<em class=red>locsig-reverb-ref</em> loc 0) (* reverb-amount (sqrt dist-scaler))))
+          (<em class=red>locsig</em> loc i rdval))))))
+</pre>
+
+<p>For a moving sound
+source, see either move-locsig, or Fernando Lopez Lezcano's <a class=def href="http://ccrma.stanford.edu/~nando/clm/dlocsig/index.html">dlocsig</a>.
+Here is an example of move-locsig:
+</p>
+
+<pre class="indented">
+(<a class=quiet href="#definstrument">definstrument</a> move-osc (start dur freq amp &key (degree 0) (dist 1.0) (reverb 0))
+  (let* ((beg (floor (* start *srate*)))
+         (end (+ beg (floor (* dur *srate*))) )
+         (car (<a class=quiet href="#make-oscil">make-oscil</a> :frequency freq))
+         (loc (<a class=quiet href="#make-locsig">make-locsig</a> :degree degree :distance dist :channels 2))
+	 (pan-env (<a class=quiet href="#make-env">make-env</a> '(0 0 1 90) :duration dur)))
+    (run
+     (loop for i from beg to end do
+       (let ((ut (* amp (<a class=quiet href="#oscil">oscil</a> car))))
+	 (<em class=red>move-locsig</em> loc (<a class=quiet href="#env">env</a> pan-env) dist)
+         (<a class=quiet href="#locsig">locsig</a> loc i ut))))))
+</pre>
+
+
+
+
+<!--  MOVE-SOUND  -->
+
+<div class="innerheader">move-sound</div>
+
+<pre class="indented">
+ <em class=def id="make-move-sound">make-move-sound</em> dlocs-list (output *output*) (revout *reverb*)
+ <em class=def id="move-sound">move-sound</em> dloc i in-sig
+ <em class=def id="move-sound?">move-sound?</em> dloc
+</pre>
+
+<p><b>move-sound</b> is intended as the run-time portion of dlocsig.  make-dlocsig (described in
+<a href="dlocsig.html">dlocsig.html</a>) creates a move-sound structure, passing it to the move-sound generator inside the
+dlocsig macro.  All the necessary data is packaged up in a list:
+</p>
+
+<pre class="indented">
+(list
+  (start 0)               ; absolute sample number at which samples first reach the listener
+  (end 0)                 ; absolute sample number of end of input samples
+  (out-channels 0)        ; number of output channels in soundfile
+  (rev-channels 0)        ; number of reverb channels in soundfile
+  path                    ; interpolated delay line for doppler
+  delay                   ; tap doppler env
+  rev                     ; reverberation amount
+  out-delays              ; delay lines for output channels that have additional delays
+  gains                   ; gain envelopes, one for each output channel
+  rev-gains               ; reverb gain envelopes, one for each reverb channel
+  out-map)                ; mapping of speakers to output channels
+</pre>
+
+<p>Here's an instrument that uses this generator to pan a sound through four channels:
+</p>
+
+<pre class="indented">
+(definstrument simple-dloc (beg dur freq amp)
+  (let* ((os (<a class=quiet href="#make-oscil">make-oscil</a> freq))
+	 (start (floor (* beg *srate*)))
+	 (end (+ start (floor (* dur *srate*))))
+	 (loc (<em class=red>make-move-sound</em> (list start end 4 0
+				     (<a class=quiet href="#make-delay">make-delay</a> 12) 
+				     (<a class=quiet href="#make-env">make-env</a> '(0 0 10 1) :duration dur)
+				     (<a class=quiet href="#make-env">make-env</a> '(0 0 1 0) :duration dur)
+				     (make-array 4 :initial-element nil)
+				     (make-array 4 :initial-contents 
+				       (list
+					(<a class=quiet href="#make-env">make-env</a> '(0 0 1 1 2 0 3 0 4 0) :duration dur)
+					(<a class=quiet href="#make-env">make-env</a> '(0 0 1 0 2 1 3 0 4 0) :duration dur)
+					(<a class=quiet href="#make-env">make-env</a> '(0 0 1 0 2 0 3 1 4 0) :duration dur)
+					(<a class=quiet href="#make-env">make-env</a> '(0 0 1 0 2 0 3 0 4 1) :duration dur)))
+				     nil
+				     (make-integer-array 4 :initial-contents (list 0 1 2 3))))))
+    (run
+     (loop for i from start to end do
+       (<em class=red>move-sound</em> loc i (* amp (<a class=quiet href="#oscil">oscil</a> os)))))))
+</pre>
+
+
+
+<div class="innerheader" id="functions">Useful functions</div>
+
+<p>There are several commonly-used functions, some of which can occur in the run macro. These include
+a few that look for all the world like generators.</p>
+
+<table class="spaced">
+<tr><td><em class=def id="hztoradians">hz->radians</em><code> freq</code></td><td>convert freq to radians per sample</td></tr>
+<tr><td><em class=def id="radianstohz">radians->hz</em><code> rads</code></td><td>convert rads to Hz</td></tr>
+<tr><td><em class=def id="dbtolinear">db->linear</em><code> dB</code></td><td>convert dB to linear value</td></tr>
+<tr><td><em class=def id="lineartodb">linear->db</em><code> val</code></td><td>convert val to dB</td></tr>
+<tr><td><em class=def id="timestosamples">times->samples</em><code> start duration</code></td><td>convert start and duration from seconds to samples (beg+dur in latter case)</td></tr>
+<tr><td><em class=def id="samplestoseconds">samples->seconds</em><code> samps</code></td><td>convert samples to seconds</td></tr>
+<tr><td><em class=def id="secondstosamples">seconds->samples</em><code> secs</code></td><td>convert seconds to samples</td></tr>
+<tr><td><em class=def id="degreestoradians">degrees->radians</em><code> degs</code></td><td>convert degrees to radians</td></tr>
+<tr><td><em class=def id="radianstodegrees">radians->degrees</em><code> rads</code></td><td>convert radians to degrees</td></tr>
+<tr><td><em class=def id="clear-array">clear-array</em><code> arr</code></td><td>set all values in arr to 0.0</td></tr>
+<tr><td><em class=def id="sound-samples">sound-samples</em><code> filename</code></td><td>samples of sound according to header (can be incorrect)</td></tr>
+<tr><td><em class=def id="sound-framples">sound-framples</em><code> filename</code></td><td>samples per channel</td></tr>
+<tr><td><em class=def id="sound-datum-size">sound-datum-size</em><code> filename</code></td><td>bytes per sample</td></tr>
+<tr><td><em class=def id="sound-data-location">sound-data-location</em><code> filename</code></td><td>location of first sample (bytes)</td></tr>
+<tr><td><em class=def id="sound-chans">sound-chans</em><code> filename</code></td><td>number of channels (samples are interleaved)</td></tr>
+<tr><td><em class=def id="sound-srate">sound-srate</em><code> filename</code></td><td>sampling rate</td></tr>
+<tr><td><em class=def id="sound-header-type">sound-header-type</em><code> filename</code></td><td>header type (aiff etc)</td></tr>
+<tr><td><em class=def id="sound-data-format">sound-data-format</em><code> filename</code></td><td>data format (alaw etc)</td></tr>
+<tr><td><em class=def id="sound-length">sound-length</em><code> filename</code></td><td>true file length (for error checks)</td></tr>
+<tr><td><em class=def id="sound-duration">sound-duration</em><code> filename</code></td><td>file length in seconds</td></tr>
+<tr><td><em class=def id="sound-maxamp">sound-maxamp</em><code> name vals</code></td><td>get max amp vals and times of file name</td></tr>
+<tr><td><em class=def id="sound-loop-info">sound-loop-info</em><code> name vals</code></td><td>get loop info of file name in vals (make-integer-array 6)</td></tr>
+</table>
+
+<p>
+<b>hz->radians</b>
+converts its argument to radians/sample (for any situation where a
+frequency is used as an amplitude, glissando or FM).  It
+can be used within run. hz->radians is equivalent to 
+</p>
+
+<pre class="indented">
+  freq-in-hz * 2 * pi / *srate*.  
+</pre>
+
+<blockquote>
+<p>
+Freq-in-hz * 2 * pi gives us the number of radians traversed per
+second; we then divide by the number of samples per second to get the
+radians per sample; in dimensional terms: (radians/sec) /
+(sample/sec) = radians/sample.  We need this conversion whenever a
+frequency-related value is actually being accessed on every sample, as
+an increment of a phase variable.  (We are also assuming
+our wave table size is 2 * pi). This conversion value was named "mag"
+in Mus10 and "in-hz" in CLM-1.  The inverse is radians->hz.
+</p></blockquote>
+
+<p>These names are different from the underlying sndlib names mostly due
+to confusion and inattention. Nearly all the sndlib constants and functions
+are imported into clm under names that are the same as the C name except
+"_" is replaced by "-". So <b>mus-sound-duration</b> exists,
+and is the same as <b>sound-duration</b> mentioned above.  See <a href="sndlib.html">sndlib.html</a>
+for some info.
+<code>(mus-sound-srate (mus-file-name *output*))</code>
+for example, returns the
+current output sampling rate; this is the same as <code>*srate*</code>.
+</p>
+
+
+
+<!--  POLYNOMIAL  -->
+
+<div class="innerheader">polynomial</div>
+
+<pre class="indented">
+<em class=def id="polynomial">polynomial</em> coeffs x
+</pre>
+
+<p><b>polynomial</b> evaluates a polynomial, defined by giving its coefficients,
+at a particular point (x).
+coeffs is an array of coefficients where
+coeffs[0] is the constant term, and so on.  For
+waveshaping, use the function <a href="#partialstopolynomial">partials->polynomial</a>.
+Abramowitz and Stegun, "A Handbook of Mathematical Functions" is a
+treasure-trove of interesting polynomials.
+See also the <a href="#brighten">brighten</a> instrument.
+</p>
+
+
+
+
+<!--  ARRAY-INTERP  -->
+
+<div class="innerheader">array-interp and dot-product</div>
+
+<pre class="indented">
+<em class=def id="array-interp">array-interp</em> fn x &optional size
+<em class=def id="dot-product">dot-product</em> in1 in2
+<em class=def id="edot-product">edot-product</em> freq data [Scheme/C versions]
+<em class=def id="mus-interpolate">mus-interpolate</em> type x v size y1
+</pre>
+
+<p>These functions underlie some of the generators, and can be
+called within run.  See <a href="mus.lisp">mus.lisp</a> for
+details. <b>array-interp</b> can be used for companding and similar functions —
+load the array (call it "compander" below) with the positive half 
+of the companding function, then:
+</p>
+
+<pre class="indented">
+  (let ((in-val (<a class=quiet href="#readin">readin</a> rd))            ; in-coming signal
+        (func-len (length compander)))  ; size of array
+    (* (signum in-val) 
+       (<em class=red>array-interp</em> compander (abs (* in-val (1- func-len))) func-len)))
+</pre>
+
+<p>
+<b>dot-product</b> is the usual "inner product" or "scalar product".
+</p>
+
+<p>
+<b>mus-interpolate</b> is the function used whenever table lookup interpolation is requested, as in
+delay or wave-train. The type is one of the interpolation types (mus-interp-linear, for example).
+</p>
+
+
+
+<!--  CONTRAST-ENHANCEMENT  -->
+
+<div class="innerheader">contrast-enhancement</div>
+
+<pre class="indented">
+ <em class=def id="contrast-enhancement">contrast-enhancement</em> in-samp &optional (fm-index 1.0)
+</pre>
+
+<p><b>contrast-enhancement</b> phase-modulates a sound file.  It's like audio MSG.
+The actual algorithm is sin(in-samp * pi/2 +
+(fm-index * sin(in-samp * 2*pi))).  The result is to brighten the
+sound, helping it cut through a huge mix.</p>
+
+<p>
+Waveshaping can provide a similar effect:</p>
+
+<pre class="indented">
+(<a class=quiet href="#definstrument">definstrument</a> <em class=def id="brighten">brighten</em> (start duration file file-maxamp partials)
+  (multiple-value-bind (beg end) (<a class=quiet href="#timestosamples">times->samples</a> start duration)
+    (let ((fil (<a class=quiet href="#open-input*">open-input*</a> file)))
+      (when fil
+        (unwind-protect
+	  (let ((coeffs (<a class=quiet href="#partialstopolynomial">partials->polynomial</a> (normalize-partials partials)))
+		(rd (<a class=quiet href="#make-readin">make-readin</a> fil)))
+	    (run (loop for i from beg below end do
+		   (<a class=quiet href="#outa">outa</a> i (* file-maxamp (<a class=quiet href="#polynomial">polynomial</a> coeffs (/ (<a class=quiet href="#readin">readin</a> rd) file-maxamp)))))))
+	  (<a class=quiet href="#close-input">close-input</a> fil))))))
+
+(<a class=quiet href="#with-sound">with-sound</a> () (brighten 0 3 "oboe" .15 '(1 1 3 .5 7 .1)))
+</pre>
+
+<p>In this case, it is important to scale the file input to the waveshaper to go from
+-1.0 to 1.0 to get the full effect of the Chebyshev polynomials.  Unfortunately,
+if you don't add an overall amplitude envelope to bring the output to 0, you'll
+get clicks if you include even numbered partials.  These partials create a non-zero
+constant term in the polynomial, so when the sound decays to 0, the polynomial
+output decays to some (possibly large) non-zero value.  In the example above,
+I've used only odd partials for this reason.  Another thing to note here is that
+the process is not linear; that is the sinusoids that make up the input are not
+independently expanded into the output spectrum, but instead you get sum and difference
+tones, (not to mention phase cancellations) much as in FM with a complex wave.  
+</p>
+
+
+
+
+<!--  AMPLITUDE-MODULATE  -->
+
+<div class="innerheader">ring-modulate and amplitude-modulate</div>
+
+<pre class="indented">
+<em class=def id="ring-modulate">ring-modulate</em> in1 in2
+<em class=def id="amplitude-modulate">amplitude-modulate</em> am-carrier input1 input2
+</pre>
+
+<b>ring-modulate</b> returns (* in1 in2).
+<b>amplitude-modulate</b> returns (* input1 (+ am-carrier input2))
+
+<p>ring-modulation is sometimes called "double-sideband-suppressed-carrier" modulation —
+that is, amplitude modulation with the carrier subtracted out (set to 0.0 above).
+The nomenclature here is a bit confusing — I can't remember now why I used
+these names; think of "carrier" as "carrier amplitude" and "input1" as "carrier". Normal amplitude modulation using this function would be:
+</p>
+
+<pre class="indented">
+(defvar carrier (<a class=quiet href="#make-oscil">make-oscil</a> carrier-freq (* .5 pi)))
+...
+(amplitude-modulate 1.0 (<a class=quiet href="#oscil">oscil</a> carrier) signal)
+</pre>
+
+<p>
+Since neither needs any state information, there are no associated make
+functions.</p>
+
+<p>Both of these take advantage of the "Modulation Theorem"; since
+multiplying a signal by e^(iwt) translates its spectrum by w /
+two-pi Hz, multiplying by a sinusoid splits its spectrum into two equal parts
+translated up and down by w/two-pi Hz.  The simplest case is: </p>
+
+<pre class="indented">
+cos f1 * cos f2 = (cos (f1 + f2) + cos (f1 - f2)) / 2.
+</pre>
+
+<p>We can use these to shift all the components of a signal by the same
+amount up or down ("single-sideband modulation").
+</p>
+
+
+
+<!--  FFT  -->
+
+<!-- INDEX fft:Fourier transforms  -->
+<div class="innerheader">FFT</div>
+
+<pre class="indented">
+<em class=def id="fft">fft</em> rdat idat fftsize &optional sign
+<em class=def id="make-fft-window">make-fft-window</em> <a class=quiet href="#optional-key">&optional-key</a> type size (beta 0.0) (alpha 0.0)
+<em class=def id="rectangulartopolar">rectangular->polar</em> rdat idat
+<em class=def id="rectangulartomagnitudes">rectangular->magnitudes</em> rdat idat
+<em class=def id="polartorectangular">polar->rectangular</em> rdat idat
+<em class=def id="spectrum">spectrum</em> rdat idat window norm-type
+<em class=def id="convolution">convolution</em> rdat idat size
+<em class=def id="autocorrelate">autocorrelate</em> dat1 size
+<em class=def id="correlate">correlate</em> dat1 dat2 size
+</pre>
+
+<p>These provide run-time access to the standard fft routines and their habitual companions.
+<b>make-fft-window</b> can return many of the standard windows including:</p>
+
+<pre class="indented">
+  rectangular-window   ; no change in data
+  bartlett-window      ; triangle
+  parzen-window        ; raised triangle
+  welch-window         ; parzen squared
+  hann-window          ; cosine (sometimes known as "hanning-window" — a sort of in-joke)
+  hamming-window       ; raised cosine
+  blackman2-window     ; Blackman-Harris windows of various orders
+  blackman3-window
+  blackman4-window     ; also blackman5..10
+  exponential-window
+  kaiser-window        ; beta argument used here
+</pre>
+
+<p>The
+magnitude of the spectrum is returned by <b>rectangular->polar</b>.
+<b>spectrum</b> calls the fft, translates to polar coordinates,
+then returns the results (in the lower half of "rdat") in dB (norm-type = 0), or linear normalized to 1.0 (norm-type = 1),
+or linear unnormalized (norm-type not 0 or 1). 
+</p>
+
+<p>The following instrument implements fft overlap-add, but instead
+of scaling the various spectral components to filter a sound, it reverses a portion
+of the spectrum, a distortion that can be effective with speech sounds.</p>
+
+<pre class="indented">
+(<a class=quiet href="#definstrument">definstrument</a> inside-out (beg dur file amp lo hi &optional (fftsize 1024))
+  ;; fft overlap-add (and buffer), but the fft bins between lo and hi are reversed
+  (let ((fil (<a class=quiet href="#open-input*">open-input*</a> file)))
+    (when fil
+      (unwind-protect
+        (let* ((start (floor (* beg *srate*)))
+               (end (+ start (floor (* dur *srate*))))
+               (fdr (make-double-float-array fftsize))
+               (fdi (make-double-float-array fftsize))
+               (wtb (make-double-float-array fftsize))
+               (filptr 0)
+               (fft2 (floor fftsize 2))
+               (fft4 (floor fftsize 4))
+               (ctr fft2)
+               (fftn (/ 1.0 fftsize))
+               (first-time 1)
+               (mid (* .5 (+ hi lo))))
+	  (when (zerop lo) (setf lo 1))
+          (run
+           (loop for i from start below end do
+             (when (= ctr fft2)
+               (<em class=red>clear-array</em> fdr)
+               (<em class=red>clear-array</em> fdi)
+               (dotimes (k fft2)
+                 (setf (aref fdr (+ k fft4)) (* (<a class=quiet href="#ina">ina</a> filptr fil) fftn))
+                 (incf filptr))
+               (<em class=red>fft</em> fdr fdi fftsize 1)
+               (let ((j1 hi) ; now reverse bins between lo and hi
+                     (k0 (- fftsize lo))
+                     (k1 (- fftsize hi)))
+                 (loop for j0 from lo to mid do
+                   (let ((tmprj (aref fdr j0))
+                         (tmprk (aref fdr k0))
+                         (tmpij (aref fdi j0))
+                         (tmpik (aref fdi k0)))
+                     (setf (aref fdr j0) (aref fdr j1))
+                     (setf (aref fdr j1) tmprj)
+                     (setf (aref fdr k0) (aref fdr k1))
+                     (setf (aref fdr k1) tmprk)
+                     (setf (aref fdi j0) (aref fdi j1))
+                     (setf (aref fdi j1) tmpij)
+                     (setf (aref fdi k0) (aref fdi k1))
+                     (setf (aref fdi k1) tmpik)
+                     (incf k1)
+                     (decf k0)
+                     (decf j1))))
+               (<em class=red>fft</em> fdr fdi fftsize -1)
+               (dotimes (k fft2)
+                 (setf (aref wtb k) (aref wtb (+ k fft2)))
+                 (setf (aref wtb (+ k fft2)) 0.0))
+               (if (= first-time 1)
+                   (progn
+                     (dotimes (k fftsize) (setf (aref wtb k) (aref fdr k)))
+                     (setf first-time 0)
+		     (setf ctr fft4))
+                 (progn
+                   (dotimes (k fft2) (incf (aref wtb k) (aref fdr k)))
+                   (dotimes (k fft2) (setf (aref wtb (+ k fft2)) (aref fdr (+ k fft2))))
+		   (setf ctr 0))))
+             (<a class=quiet href="#outa">outa</a> i (* amp (aref wtb ctr)))
+             (incf ctr))))
+        (<a class=quiet href="#close-input">close-input</a> fil)))))
+
+(<a class=quiet href="#with-sound">with-sound</a> () (inside-out 0 1.0 "fyow" 1.0 3 8))
+</pre>
+
+<p>There are many other examples of run-time FFTs: 
+the <a href="#cross-synthesis">cross-synthesis</a> instrument above, 
+<a href="san.ins">san.ins</a>,
+and <a href="anoi.ins">anoi.ins</a>.
+</p>
+
+
+
+<div class="innerheader" id="def-clm-struct">def-clm-struct</div>
+
+<p><b>def-clm-struct</b> is syntactically like def-struct, but sets up
+the struct field names for the run macro.  There are several examples in prc-toolkit95.lisp, and other instruments.
+The fields can only be of a numerical type (no generators, for example).
+</p>
+
+
+<div class="innerheader" id="definstrument">Definstrument</div>
+
+<!-- INDEX ins-files:Instruments --><em class=def id="ins-files"></em>
+<p><b>definstrument</b> defines an instrument in CLM.
+Its syntax is almost the same as defun; it has a few bizarre options (for miserable
+historical reasons), but they should be resolutely ignored.
+There are a bazillion example instruments included in CLM and Snd.
+The following instruments live in *.ins files in the CLM
+directory (see also the file <a href="ins">ins</a>), and in various
+*.scm, *.rb, and *.fs files in the Snd tarball.  If you're reading this
+file from outside ccrma, and the instrument url has snd/snd, change that
+to clm/clm.
+</p>
+
+<table class="borderspaced">
+<tr>
+<th class="beige">instrument</th>
+<th class="beige">function</th>
+<th class="beige">CL</th>
+<th class="beige">Scheme</th>
+<th class="beige">Ruby</th>
+<th class="beige">Forth</th>
+</tr>
+<tr><td class="br">complete-add</td>      
+    <td class="br">additive synthesis</td>
+    <td class="br">add.ins</td>
+    <td></td>
+    <td></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">addflts</td>
+    <td class="br">filters</td>
+    <td class="br">addflt.ins</td> 
+        <td class="br"><a href="dsp.scm">dsp.scm</a></td>
+	<td class="br"><a href="dsp.rb">dsp.rb</a></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">add-sound</td>
+    <td class="br">mix in a sound file</td>
+    <td class="br">addsnd.ins</td>
+    <td></td>
+    <td></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">bullfrog et al</td>
+    <td class="br">many animals (frogs, insects, birds)</td>
+    <td class="br"></td>
+    <td class="br"><a href="animals.scm">animals.scm</a></td>
+    <td></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">anoi</td>
+    <td class="br">noise reduction</td>
+    <td class="br">anoi.ins</td>
+        <td class="br"><a href="clm-ins.scm">clm-ins.scm</a></td>
+        <td class="br"><a href="clm-ins.rb">clm-ins.rb</a></td>
+        <td class="br"><a href="clm-ins.fs">clm-ins.fs</a></td>
+    </tr>
+
+<tr><td class="br">autoc</td>
+    <td class="br">pitch estimation (Bret Battey)</td>
+    <td class="br">autoc.ins</td>
+    <td></td>
+    <td></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">badd</td>
+    <td class="br">fancier additive synthesis (Doug Fulton)</td>
+    <td class="br">badd.ins</td>
+    <td></td>
+    <td></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">bandedwg</td>               
+    <td class="br">Juan Reyes banded waveguide instrument</td>      
+    <td class="br">bandedwg.ins</td>      
+	<td class="br"><a href="bandedwg.cms">bandedwg.cms</a></td>
+    <td></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">fm-bell</td>
+    <td class="br">fm bell sounds (Michael McNabb)</td>
+    <td class="br">bell.ins</td>
+	<td class="br"><a href="clm-ins.scm">clm-ins.scm</a></td>
+	<td class="br"><a href="clm-ins.rb">clm-ins.rb</a></td>
+	<td class="br"><a href="clm-ins.fs">clm-ins.fs</a></td>
+    </tr>
+
+<tr><td class="br">bigbird</td>
+    <td class="br">waveshaping</td>
+    <td class="br">bigbird.ins</td>
+	<td class="br"><a href="bird.scm">bird.scm</a></td>
+	<td class="br"><a href="bird.rb">bird.rb</a></td>
+	<td class="br"><a href="clm-ins.fs">clm-ins.fs, bird.fs</a></td>
+    </tr>
+
+<tr><td class="br">singbowl</td>               
+    <td class="br">Juan Reyes Tibetan bowl instrument</td>      
+    <td class="br">bowl.ins</td>      
+	<td class="br"><a href="bowl.cms">bowl.cms</a></td>
+    <td></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">canter</td>            
+    <td class="br">fm bagpipes (Peter Commons)</td>      
+    <td class="br">canter.ins</td>
+	<td class="br"><a href="clm-ins.scm">clm-ins.scm</a></td>
+	<td class="br"><a href="clm-ins.rb">clm-ins.rb</a></td>
+	<td class="br"><a href="clm-ins.fs">clm-ins.fs</a></td>
+    </tr>
+
+<tr><td class="br">cellon</td>            
+    <td class="br">feedback fm (Stanislaw Krupowicz)</td>      
+    <td class="br">cellon.ins</td>    
+	<td class="br"><a href="clm-ins.scm">clm-ins.scm</a></td>
+	<td class="br"><a href="clm-ins.rb">clm-ins.rb</a></td>
+	<td class="br"><a href="clm-ins.fs">clm-ins.fs</a></td>
+    </tr>
+
+<tr><td class="br">cnvrev</td>            
+    <td class="br">convolution (aimed at reverb)</td>      
+    <td class="br">cnv.ins</td>
+    <td class="br"><a href="clm-ins.scm">clm-ins.scm</a></td>
+    <td></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">moving sounds</td>     
+    <td class="br">sound movement (Fernando Lopez-Lezcano)</td>      
+    <td class="br">dlocsig.lisp</td> 
+	<td class="br"><a href="dlocsig.scm">dlocsig.scm</a></td>
+        <td class="br"><a href="dlocsig.rb">dlocsig.rb</a></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">drone</td>             
+    <td class="br">additive synthesis (bag.clm) (Peter Commons)</td>      
+    <td class="br">drone.ins</td>      
+	<td class="br"><a href="clm-ins.scm">clm-ins.scm</a></td>
+	<td class="br"><a href="clm-ins.rb">clm-ins.rb</a></td>
+	<td class="br"><a href="clm-ins.fs">clm-ins.fs</a></td>
+    </tr>
+
+<tr><td class="br">expandn</td>             
+    <td class="br">granular synthesis (Michael Klingbeil)</td>      
+    <td class="br">expandn.ins</td>      
+	<td class="br"><a href="clm-ins.scm">clm-ins.scm</a></td>
+    <td></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">granulate-sound</td>   
+    <td class="br">examples granular synthesis</td>      
+    <td class="br">expsrc.ins</td>    
+	<td class="br"><a href="clm-ins.scm">clm-ins.scm</a></td>
+	<td class="br"><a href="clm-ins.rb">clm-ins.rb</a></td>
+	<td class="br"><a href="clm-ins.fs">clm-ins.fs</a></td>
+    </tr>
+
+<tr><td class="br">cross-fade</td>        
+    <td class="br">cross-fades in the frequency domain</td>      
+    <td class="br">fade.ins</td>        
+	<td class="br"><a href="fade.scm">fade.scm</a></td>
+    <td></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">filter-sound</td>      
+    <td class="br">filter a sound file</td>      
+    <td class="br">fltsnd.ins</td>    
+	<td class="br"><a href="dsp.scm">dsp.scm</a></td>
+    <td></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">stereo-flute</td>      
+    <td class="br">physical model of a flute (Nicky Hind)</td>      
+    <td class="br">flute.ins</td>      
+	<td class="br"><a href="clm-ins.scm">clm-ins.scm</a></td>
+	<td class="br"><a href="clm-ins.rb">clm-ins.rb</a></td>
+	<td class="br"><a href="clm-ins.fs">clm-ins.fs</a></td>
+    </tr>
+
+<tr><td class="br">fm examples</td>       
+    <td class="br">fm bell, gong, drum (Paul Weineke, Jan Mattox)</td>      
+    <td class="br">fmex.ins</td>        
+	<td class="br"><a href="clm-ins.scm">clm-ins.scm</a></td>
+	<td class="br"><a href="clm-ins.rb">clm-ins.rb</a></td>
+	<td class="br"><a href="clm-ins.fs">clm-ins.fs</a></td>
+    </tr>
+
+<tr><td class="br">Jezar's reverb</td>    
+    <td class="br">fancy reverb (Jezar Wakefield)</td>      
+    <td class="br">freeverb.ins</td> 
+	<td class="br"><a href="freeverb.scm">freeverb.scm</a></td>
+	<td class="br"><a href="freeverb.rb">freeverb.rb</a></td>
+	<td class="br"><a href="clm-ins.fs">clm-ins.fs</a></td>
+    </tr>
+
+<tr><td class="br">fofins</td>
+    <td class="br">FOF synthesis</td>
+    <td class="br"><a href="#wave-train">sndclm.html</a></td> 
+	<td class="br"><a href="clm-ins.scm">clm-ins.scm</a></td>
+	<td class="br"><a href="clm-ins.rb">clm-ins.rb</a></td>
+	<td class="br"><a href="clm-ins.fs">clm-ins.fs</a></td>
+    </tr>
+
+<tr><td class="br">fullmix</td>           
+    <td class="br">a mixer</td>      
+    <td class="br">fullmix.ins</td>  
+	<td class="br"><a href="clm-ins.scm">clm-ins.scm</a></td>
+	<td class="br"><a href="clm-ins.rb">clm-ins.rb</a></td>
+	<td class="br"><a href="clm-ins.fs">clm-ins.fs</a></td>
+    </tr>
+
+<tr><td class="br">grani</td>             
+    <td class="br">granular synthesis (Fernando Lopez-Lezcano)</td>      
+    <td class="br">grani.ins</td>      
+	<td class="br"><a href="grani.scm">grani.scm</a></td>
+    <td></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">grapheq</td>           
+    <td class="br">graphic equalizer (Marco Trevisani)</td>      
+    <td class="br">grapheq.ins</td>  
+	<td class="br"><a href="clm-ins.scm">clm-ins.scm</a></td>
+	<td class="br"><a href="clm-ins.rb">clm-ins.rb</a></td>
+	<td class="br"><a href="clm-ins.fs">clm-ins.fs</a></td>
+    </tr>
+
+<tr><td class="br">fm-insect</td>         
+    <td class="br">fm</td>      
+    <td class="br">insect.ins</td>    
+	<td class="br"><a href="clm-ins.scm">clm-ins.scm</a></td>
+	<td class="br"><a href="clm-ins.rb">clm-ins.rb</a></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">jc-reverb</td>         
+    <td class="br">a reverberator (see also jlrev)</td>      
+    <td class="br">jcrev.ins</td>      
+	<td class="br"><a href="jcrev.scm">jcrev.scm</a></td>
+	<td class="br"><a href="clm-ins.rb">clm-ins.rb</a></td>
+	<td class="br"><a href="clm-ins.fs">clm-ins.fs</a></td>
+    </tr>
+
+<tr><td class="br">fm-voice</td>          
+    <td class="br">fm voice (John Chowning)</td>      
+    <td class="br">jcvoi.ins</td>     
+    <td class="br"><a href="jcvoi.scm">jcvoi.scm </a></td>
+    <td></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">kiprev</td>            
+    <td class="br">a fancier reverberator (Kip Sheeline)</td>      
+    <td class="br">kiprev.ins</td>    
+    <td></td>
+    <td></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">lbj-piano</td>         
+    <td class="br">additive synthesis piano (Doug Fulton)</td>      
+    <td class="br">lbjPiano.ins</td> 
+	<td class="br"><a href="clm-ins.scm">clm-ins.scm</a></td>
+	<td class="br"><a href="clm-ins.rb">clm-ins.rb</a></td>
+	<td class="br"><a href="clm-ins.fs">clm-ins.fs</a></td>
+    </tr>
+
+<tr><td class="br">rotates</td>               
+    <td class="br">Juan Reyes Leslie instrument</td>      
+    <td class="br">leslie.ins</td>      
+	<td class="br"><a href="leslie.cms">leslie.cms</a></td>
+    <td></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">maraca</td>            
+    <td class="br">Perry Cook's maraca physical models</td>      
+    <td class="br">maraca.ins</td>    
+	<td class="br"><a href="maraca.scm">maraca.scm</a></td>
+	<td class="br"><a href="maraca.rb">maraca.rb</a></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">maxfilter</td>         
+    <td class="br">Juan Reyes modular synthesis</td>      
+    <td class="br">maxf.ins</td>        
+	<td class="br"><a href="maxf.scm">maxf.scm</a></td>
+	<td class="br"><a href="maxf.rb">maxf.rb</a></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">mlb-voice</td>         
+    <td class="br">fm voice (Marc LeBrun)</td>      
+    <td class="br">mlbvoi.ins</td>
+	<td class="br"><a href="clm-ins.scm">clm-ins.scm</a></td>
+	<td class="br"><a href="clm-ins.rb">clm-ins.rb</a></td>
+	<td class="br"><a href="clm-ins.fs">clm-ins.fs</a></td>
+    </tr>
+
+<tr><td class="br">moog filters</td>      
+    <td class="br">Moog filters (Fernando Lopez-Lezcano)</td>      
+    <td class="br">moog.lisp</td>      
+	<td class="br"><a href="moog.scm">moog.scm</a></td>
+    <td></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">fm-noise</td>          
+    <td class="br">noise maker</td>      
+    <td class="br">noise.ins</td>      
+	<td class="br"><a href="noise.scm">noise.scm</a></td>
+	<td class="br"><a href="noise.rb">noise.rb</a></td>
+	<td class="br"><a href="clm-ins.fs">clm-ins.fs</a></td>
+    </tr>
+
+<tr><td class="br">nrev</td>              
+    <td class="br">a popular reverberator (Michael McNabb)</td>      
+    <td class="br">nrev.ins</td>        
+	<td class="br"><a href="clm-ins.scm">clm-ins.scm</a></td>
+	<td class="br"><a href="clm-ins.rb">clm-ins.rb</a></td>
+	<td class="br"><a href="clm-ins.fs">clm-ins.fs</a></td>
+    </tr>
+
+<tr><td class="br">one-cut</td>           
+    <td class="br">"cut and paste" (Fernando Lopez-Lezcano)</td>      
+    <td class="br">one-cut.ins</td>  
+    <td></td>
+    <td></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">p</td>                 
+    <td class="br">Scott van Duyne's piano physical model</td>      
+    <td class="br">piano.ins</td>      
+	<td class="br"><a href="piano.scm">piano.scm</a></td>
+	<td class="br"><a href="piano.rb">piano.rb</a></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">pluck</td>             
+    <td class="br">Karplus-Strong synthesis (David Jaffe)</td>      
+    <td class="br">pluck.ins</td>      
+	<td class="br"><a href="clm-ins.scm">clm-ins.scm</a></td>
+	<td class="br"><a href="clm-ins.rb">clm-ins.rb</a></td>
+	<td class="br"><a href="clm-ins.fs">clm-ins.fs</a></td>
+    </tr>
+
+<tr><td class="br">pqw</td>               
+    <td class="br">waveshaping</td>      
+    <td class="br">pqw.ins</td>          
+	<td class="br"><a href="clm-ins.scm">clm-ins.scm</a></td>
+	<td class="br"><a href="clm-ins.rb">clm-ins.rb</a></td>	
+	<td class="br"><a href="clm-ins.fs">clm-ins.fs</a></td>
+    </tr>
+
+<tr><td class="br">pqw-vox</td>           
+    <td class="br">waveshaping voice</td>      
+    <td class="br">pqwvox.ins</td>    
+	<td class="br"><a href="clm-ins.scm">clm-ins.scm</a></td>
+	<td class="br"><a href="clm-ins.rb">clm-ins.rb</a></td>
+	<td class="br"><a href="clm-ins.fs">clm-ins.fs</a></td>
+    </tr>
+
+<tr><td class="br">physical models</td>   
+    <td class="br">physical modelling (Perry Cook)</td>      
+    <td class="br">prc-toolkit95.lisp</td>
+	<td class="br"><a href="prc95.scm">prc95.scm</a></td>
+	<td class="br"><a href="prc95.rb">prc95.rb</a></td>
+	<td class="br"><a href="clm-ins.fs">clm-ins.fs</a></td>
+    </tr>
+
+<tr><td class="br">various ins</td>       
+    <td class="br">from Perry Cook's Synthesis Toolkit</td>      
+    <td class="br">prc96.ins</td>      
+	<td class="br"><a href="clm-ins.scm">clm-ins.scm</a></td>
+	<td class="br"><a href="clm-ins.rb">clm-ins.rb</a></td>
+	<td class="br"><a href="clm-ins.fs">clm-ins.fs</a></td>
+    </tr>
+
+<tr><td class="br">pvoc</td>              
+    <td class="br">phase vocoder (Michael Klingbeil)</td>      
+    <td class="br">pvoc.ins</td>        
+	<td class="br"><a href="pvoc.scm">pvoc.scm</a></td>
+	<td class="br"><a href="pvoc.rb">pvoc.rb</a></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">resflt</td>            
+    <td class="br">filters (Xavier Serra, Richard Karpen)</td>      
+    <td class="br">resflt.ins</td>    
+	<td class="br"><a href="clm-ins.scm">clm-ins.scm</a></td>
+	<td class="br"><a href="clm-ins.rb">clm-ins.rb</a></td>
+	<td class="br"><a href="clm-ins.fs">clm-ins.fs</a></td>
+    </tr>
+
+<tr><td class="br">reson</td>             
+    <td class="br">fm formants (John Chowning)</td>      
+    <td class="br">reson.ins</td>      
+	<td class="br"><a href="clm-ins.scm">clm-ins.scm</a></td>
+	<td class="br"><a href="clm-ins.rb">clm-ins.rb</a></td>
+	<td class="br"><a href="clm-ins.fs">clm-ins.fs</a></td>
+    </tr>
+
+<tr><td class="br">ring-modulate</td>     
+    <td class="br">ring-modulation of sounds (Craig Sapp)</td>      
+    <td class="br">ring-modulate.ins</td>
+	<td class="br"><a href="examp.scm">examp.scm</a></td>
+	<td class="br"><a href="examp.rb">examp.rb</a></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">rmsenv</td>            
+    <td class="br">rms envelope of sound (Bret Battey)</td>      
+    <td class="br">rmsenv.ins</td>    
+    <td></td>
+    <td></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">pins</td>              
+    <td class="br">spectral modelling</td>      
+    <td class="br">san.ins</td>          
+	<td class="br"><a href="clm-ins.scm">clm-ins.scm</a></td>
+	<td class="br"><a href="clm-ins.rb">clm-ins.rb</a></td>
+	<td class="br"><a href="clm-ins.fs">clm-ins.fs</a></td>
+    </tr>
+
+<tr><td class="br">scanned</td>           
+    <td class="br">Juan Reyes scanned synthesis instrument</td>      
+    <td class="br">scanned.ins</td>  
+	<td class="br"><a href="dsp.scm">dsp.scm</a></td>
+    <td></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">scentroid</td>         
+    <td class="br">spectral scentroid envelope (Bret Battey)</td>      
+    <td class="br">scentroid.ins</td> 
+	<td class="br"><a href="dsp.scm">dsp.scm</a></td>
+    <td></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">shepard</td>            
+    <td class="br">Shepard tones (Juan Reyes)</td>      
+    <td class="br">shepard.ins</td>    
+	<td class="br"><a href="sndscm.html#wsdoc">sndscm.html</a></td>
+    <td></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">singer</td>            
+    <td class="br">Perry Cook's vocal tract physical model</td>      
+    <td class="br">singer.ins</td>    
+	<td class="br"><a href="singer.scm">singer.scm</a></td>
+	<td class="br"><a href="singer.rb">singer.rb</a></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">sndwarp</td>           
+    <td class="br">Csound-like sndwarp generator (Bret Battey)</td>      
+    <td class="br">sndwarp.ins</td>   
+	<td class="br"><a href="sndwarp.scm">sndwarp.scm</a></td>
+    <td></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">stochastic</td>        
+    <td class="br">Bill Sack's stochastic synthesis implementation</td>      
+    <td class="br">stochastic.ins</td><td class="br"><a href="stochastic.scm">stochastic.scm</a></td>
+    <td></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">bow</td>               
+    <td class="br">Juan Reyes bowed string physical model</td>      
+    <td class="br">strad.ins</td>      
+	<td class="br"><a href="strad.scm">strad.scm</a></td>
+	<td class="br"><a href="strad.rb">strad.rb</a></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">track-rms</td>         
+    <td class="br">rms envelope of sound file (Michael Edwards)</td>      
+    <td class="br">track-rms.ins</td>        
+    <td></td>
+    <td></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">fm-trumpet</td>        
+    <td class="br">fm trumpet (Dexter Morrill)</td>      
+    <td class="br">trp.ins</td>          
+	<td class="br"><a href="clm-ins.scm">clm-ins.scm</a></td>
+	<td class="br"><a href="clm-ins.rb">clm-ins.rb</a></td>
+	<td class="br"><a href="clm-ins.fs">clm-ins.fs</a></td>
+    </tr>
+
+<tr><td class="br">various ins</td>       
+    <td class="br">granular synthesis, formants, etc</td>      
+    <td class="br">ugex.ins</td>        
+	<td class="br"><a href="clm-ins.scm">clm-ins.scm</a></td>
+	<td class="br"><a href="clm-ins.rb">clm-ins.rb</a></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">test ins</td>          
+    <td class="br">CLM regression tests — see clm-test.lisp</td>      
+    <td class="br">ug(1,2,3,4).ins</td>   
+	<td class="br"><a href="clm23.scm">clm23.scm</a></td>
+    <td></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">fm-violin</td>         
+    <td class="br">fm violin (fmviolin.clm, popi.clm)</td>      
+    <td class="br">v.ins</td>              
+	<td class="br"><a href="v.scm">v.scm</a></td>
+	<td class="br"><a href="v.rb">v.rb</a></td>
+	<td class="br"><a href="clm-ins.fs">clm-ins.fs</a></td>
+    </tr>
+
+<tr><td class="br">vowel</td>             
+    <td class="br">vowels (Michelle Daniels)</td>      
+    <td class="br">vowel.ins</td>      
+    <td></td>
+    <td></td>
+    <td></td>
+    </tr>
+
+<tr><td class="br">vox</td>               
+    <td class="br">fm voice (cream.clm)</td>      
+    <td class="br">vox.ins</td>          
+	<td class="br"><a href="clm-ins.scm">clm-ins.scm</a></td>
+	<td class="br"><a href="clm-ins.rb">clm-ins.rb</a></td>
+	<td class="br"><a href="clm-ins.fs">clm-ins.fs</a></td>
+    </tr>
+
+<tr><td class="br">zc, zn</td>            
+    <td class="br">interpolating delays</td>      
+    <td class="br">zd.ins</td>            
+	<td class="br"><a href="clm-ins.scm">clm-ins.scm</a></td>
+	<td class="br"><a href="clm-ins.rb">clm-ins.rb</a></td>
+	<td class="br"><a href="clm-ins.fs">clm-ins.fs</a></td>
+    </tr>
+
+<tr><td class="br">zipper</td>            
+    <td class="br">The 'digital zipper' effect.</td>      
+    <td class="br">zipper.ins</td>    
+	<td class="br"><a href="zip.scm">zip.scm</a></td>
+	<td class="br"><a href="zip.rb">zip.rb</a></td>
+    <td></td>
+    </tr>
+
+</table>
+
+<p>The file <a href="clm-test.lisp">clm-test.lisp</a> exercises most of these instruments. 
+If you develop
+an interesting instrument that you're willing to share, please send it to me
+(bil at ccrma.stanford.edu). </p>
+
+<p>Although all the examples in this document use run followed by a loop,
+you can use other constructs instead:</p>
+
+<pre class="indented">
+(<a class=quiet href="#definstrument">definstrument</a> no-loop-1 (beg dur)
+  (let ((o (<a class=quiet href="#make-oscil">make-oscil</a> 660)))
+    (run 
+     (let ((j beg)) 
+       (loop for i from 0 below dur do
+	 (<a class=quiet href="#outa">outa</a> (+ i j) (* .1 (<a class=quiet href="#oscil">oscil</a> o))))))))
+
+(<a class=quiet href="#definstrument">definstrument</a> no-loop-2 (beg dur)
+  (let ((o (<a class=quiet href="#make-oscil">make-oscil</a> 440)))
+    (run
+     (dotimes (k dur)
+       (<a class=quiet href="#outa">outa</a> (+ k beg) (* .1 (<a class=quiet href="#oscil">oscil</a> o)))))))
+</pre>
+
+<p>And, of course, <a href="#out-any">out-any</a> and <a href="#locsig">locsig</a> can be called any number of times
+(including zero) per sample and at any output location.  Except in
+extreme cases (spraying samples to random locations several seconds
+apart), there is almost no speed penalty associated with such output,
+so don't feel constrained to write an instrument as a sample-at-a-time loop.
+That form was necessary in the old days, so nearly all current instruments
+still use it (they are translations of older instruments), but there's no
+good reason not to write an instrument such as:</p>
+
+<pre class="indented">
+(<a class=quiet href="#definstrument">definstrument</a> noisey (beg dur)
+  (run
+   (dotimes (i dur)
+     (dotimes (k (random 10))
+       (<a class=quiet href="#outa">outa</a> (+ beg (floor (random dur))) (centered-random .01))))))
+</pre>
+
+
+
+<!--  WITH-SOUND  -->
+
+<div class="header" id="note-lists">Note lists</div>
+
+<!-- INDEX note-lists:Note lists  -->
+
+<p>A note list in CLM is any lisp expression that opens an output sound file and calls an instrument.  The simplest way to
+do this is with with-sound or clm-load.
+</p>
+
+
+<div class="innerheader">with-sound</div>
+
+<pre class="indented">
+ <em class=def id="with-sound">with-sound</em> &key 
+   ;; "With-sound: check it out!" — Duane Kuiper, Giants broadcaster after Strawberry homer
+   (output <a href="#*clm-file-name*">*clm-file-name*</a>)        ; name of output sound file ("test.snd" normally)
+   (channels <a href="#*clm-channels*">*clm-channels*</a>)       ; can be any number (defaults to 1, see defaults.lisp)
+   (srate <a href="#*clm-srate*">*clm-srate*</a>)             ; also 'sampling-rate' for backwards compatibility
+   continue-old-file               ; open and continue old output file
+   reverb                          ; name of the reverberator, if any.  The reverb
+                                   ;   is a normal clm instrument (see <a href="nrev.ins">nrev.ins</a>)
+   reverb-data                     ; arguments passed to the reverberator; an unquoted list
+   (reverb-channels *clm-reverb-channels*) ; chans in temp reverb stream (input to reverb)
+   revfile                         ; reverb file name
+   (play *clm-play*)               ; play new sound automatically?
+   (notehook *clm-notehook*)       ; function evaluated on each instrument call
+   (statistics *clm-statistics*)   ; print out various fascinating numbers
+   (decay-time 1.0)                ; ring time of reverb after end of piece
+   comment                         ; comment placed in header (set to :none to squelch comment)
+   info                            ; non-comment header string
+   (header-type <a href="#*clm-header-type*">*clm-header-type*</a>) ; output file type (see also <a href="#header-types">header types</a>)
+   (data-format <a href="#*clm-data-format*">*clm-data-format*</a>) ; output data format (see <a href="#header-types">header types</a>)
+   save-body                       ; if t, copy the body (as a string) into the header
+   scaled-to                       ; if a number, scale results to have that max amp
+   scaled-by                       ; scale output by some number
+   (clipped *clm-clipped*)         ; if t, clip output rather than allowing data to wrap-around
+   (verbose <em class=emdef>*clm-verbose*</em>)         ; some instruments use this to display info during computation
+   (force-recomputation nil)       ; if t, force with-mix calls to recompute
+</pre>
+
+<p><b>with-sound</b> is a macro that performs all the various services needed to
+produce and play a sound file; it also wraps an unwind-protect around its body to
+make sure that everything is cleaned up properly if you happen to interrupt
+computation; at the end it returns the output file name.  with-sound opens an
+output sound file, evaluates its body (normally a bunch of instrument calls),
+applies reverb, if any, as a second pass, and plays the sound, if desired.
+The sound file's name defaults to "test.snd" or something similar; use the
+<b>output</b> argument to write some other file: 
+</p>
+
+<pre class="indented">
+  (with-sound (:<em class=red>output</em> "new.wave") (fm-violin 0 1 440 .1))
+</pre>
+
+<p>
+The <b>channels</b>, <b>srate</b>, <b>data-format</b>, and <b>header-type</b> arguments
+set the sound characteristics.  The default values for these are set in defaults.lisp.
+Reverberation is handled as a second pass through a reverb instrument (nrev.ins for
+example).  The <b>reverb</b> argument sets the choice of reverberator.
+</p>
+
+<pre class="indented">
+(<a class=quiet href="#with-sound">with-sound</a> (:output "new.snd") (simp 0 1 440 .1))
+(<a class=quiet href="#with-sound">with-sound</a> (:srate 44100 :channels 2) ...)
+(<a class=quiet href="#with-sound">with-sound</a> (:reverb jc-reverb) ...)
+(<a class=quiet href="#with-sound">with-sound</a> (:reverb nrev :reverb-data (:reverb-factor 1.2 :lp-coeff .95))...)
+</pre>
+
+
+<p>With-sound can be called within itself, so you can make an output sound file
+for each section of a piece as well as the whole thing, all in one run.  Since it is the basis of <a href="#mix-and-with-mix">with-mix</a> and
+<a href="#sound-let">sound-let</a>, all of these can be nested indefinitely:</p>
+
+<pre class="indented">
+(<a class=quiet href="#with-sound">with-sound</a> () 
+  (mix (<a class=quiet href="#with-sound">with-sound</a> (:output "hiho.snd") 
+            (fm-violin 0 1 440 .1))))
+
+(<a class=quiet href="#with-sound">with-sound</a> ()
+  (<a class=quiet href="#with-mix">with-mix</a> () "s1" 0
+    (<a class=quiet href="#sound-let">sound-let</a> ((tmp ()
+                  (fm-violin 0 1 440 .1)))
+      (mix tmp))))
+
+(<a class=quiet href="#with-sound">with-sound</a> (:verbose t)
+  (<a class=quiet href="#with-mix">with-mix</a> () "s6" 0
+    (<a class=quiet href="#sound-let">sound-let</a> ((tmp ()
+                  (fm-violin 0 1 440 .1))
+                (tmp1 (:reverb nrev)
+                  (mix "oboe.snd")))
+      (mix tmp1)
+      (mix tmp :output-frample *srate*))
+    (fm-violin .5 .1 330 .1)))
+
+(<a class=quiet href="#with-sound">with-sound</a> (:verbose t)
+  (<a class=quiet href="#sound-let">sound-let</a> ((tmp ()
+                (<a class=quiet href="#with-mix">with-mix</a> () "s7" 0
+                  (<a class=quiet href="#sound-let">sound-let</a> ((tmp ()
+                                (fm-violin 0 1 440 .1))
+                              (tmp1 ()
+                                (mix "oboe.snd")))
+                   (mix tmp1)
+                   (mix tmp :output-frample *srate*))
+                 (fm-violin .5 .1 330 .1))))
+    (mix tmp)))
+</pre>
+
+<p>You can call with-sound within an instrument:</p>
+
+<pre class="indented">
+(<a class=quiet href="#definstrument">definstrument</a> msnd (beg dur freq amp)
+  (let ((os (<a class=quiet href="#make-oscil">make-oscil</a> freq)))
+    (run
+     (loop for i from beg below (+ beg dur) do
+       (<a class=quiet href="#outa">outa</a> i (* amp (<a class=quiet href="#oscil">oscil</a> os)))))))
+
+(<a class=quiet href="#definstrument">definstrument</a> call-msnd (beg dur sr amp)
+  (let* ((temp-file (<a class=quiet href="#with-sound">with-sound</a> (:output "temp.snd") (msnd 0 dur 440.0 .1)))
+	 (tfile (<a class=quiet href="#open-input">open-input</a> temp-file))
+	 (reader (<a class=quiet href="#make-src">make-src</a> :input tfile :srate sr))
+	 (new-dur (/ dur sr)))
+    (run
+     (loop for i from beg below (+ beg new-dur) do
+       (<a class=quiet href="#outa">outa</a> i (* amp (<a class=quiet href="#src">src</a> reader)))))
+    (<a class=quiet href="#close-input">close-input</a> tfile)
+    (delete-file temp-file)))
+</pre>
+
+<p>
+Besides :channels, :reverb, and :srate, the most useful options are :scaled-to and
+:statistics.
+statistics, if t, causes clm
+to keep track of a variety of interesting things and print them out at the end
+of the computation.  scaled-to tells clm to make sure the final output
+file has a maxamp of whatever the argument is to :scaled-to — that is,</p>
+
+<pre class="indented">
+(<a class=quiet href="#with-sound">with-sound</a> (:scaled-to .5) 
+  (dotimes (i 32) (mix "oboe.snd" :output-frample (* i *srate*))))
+</pre>
+
+<p>will produce test.snd with a maxamp of .5, no matter how loud the intermediate
+mix actually is.
+Similarly, the scaled-by argument causes all the output to
+be scaled (in amplitude) by its value.</p>
+
+<pre class="indented">
+(<a class=quiet href="#with-sound">with-sound</a> (:scaled-by 2.0) (fm-violin 0 1 440 .1)) 
+</pre>
+
+<p>produces a note that is .2 in amplitude.
+</p>
+
+<p>If revfile is specfied, but not reverb, the reverb stream is
+written to revfile, but not mixed with the direct signal in any way. 
+Normally the reverb output is not deleted by with-sound; you can set
+<b>*clm-delete-reverb*</b> to t to have it deleted automatically.
+</p>
+
+<p>
+The macro <b>scaled-by</b> scales its body by
+its first argument (much like <a href="#with-offset">with-offset</a>):</p>
+
+<pre class="indented">
+(<a class=quiet href="#with-sound">with-sound</a> () 
+  (fm-violin 0 1 440 .1)
+  (scaled-by 2.0
+    (fm-violin 0 .25 660 .1)) ; actual amp is .2
+  (fm-violin .5 440 .1))
+</pre>
+
+<p>There is also the parallel macro <b>scaled-to</b>.
+These are built on the macro <em class=emdef>with-current-sound</em>
+which sets up an embedded with-sound call with all the current with-sound arguments in place
+except output, comment, scaled-to, and scaled-by.</p>
+
+<p>Other with-sound options that might need explanation are :notehook and :continue-old-file.</p>
+
+<p><em class="noem" id="notehook">Notehook</em> declares a function that is evaluated each time any instrument is called.
+The arguments passed to the notehook function are the current instrument name (a string) and all its
+arguments.  The following prints out the instrument arguments for any
+calls on simp that are encountered:</p>
+
+<pre class="indented">
+(<a class=quiet href="#with-sound">with-sound</a> (<em class=red>:notehook</em>
+              #'(lambda (name &rest args) 
+		  (when (string-equal name "simp")
+	            (print (format nil "(simp ~{~A ~})" args))
+                    (force-output))))
+  (simp 0 1 440 .1)
+  (toot .5 .5 660 .2))
+</pre>
+
+<p>If the notehook function returns :done, the instrument exits immediately.
+</p>
+
+<p>Continue-old-file, if t, re-opens a previously existing file
+for further processing.  Normally with-sound clobbers any existing file
+of the same name as the output file (see output above).  By using
+continue-old-file, you can both add new stuff to an existing file, or
+(by subtracting) delete old stuff to any degree of selectivity.  When you erase
+a previous note, remember that the subtraction has to be exact; you have
+to create exactly the same note again, then subtract it.  By the same token,
+you can make a selected portion louder or softer by adding or subtracting a
+scaled version of the original.  
+The option data-format underlies :scaled-to.
+CLM can read and write sound data in all the currently popular formats,
+leaving aside proprietary compression schemes.  The names used in
+:data-format can be found in <a href="initmus.lisp">initmus.lisp</a>,
+along with the headers CLM knows about.</p>
+
+<p>You can make your own specialized versions of with-sound:
+</p>
+
+<pre class="indented">
+(defmacro with-my-sound ((&rest args) &body body)
+  `(let ((filename (<a class=quiet href="#with-sound">with-sound</a> ,args ,.body)))
+     ;; any post-processing you like here
+     filename))
+</pre>
+
+<p>One such specialization is <em class=def id="with-threaded-sound">with-threaded-sound</em>,
+available in sbcl if you built sbcl with threads.
+with-threaded-sound looks exactly like with-sound, but
+each note (each separate expression in the with-sound body) is handled by a separate thread.
+</p>
+
+<pre class="indented">
+(with-threaded-sound ()
+  (fm-violin 0 1 440 .1)
+  (fm-violin 0 1 660 .1))
+</pre>
+
+<p>If start a thread for each note, then join them all at once, the computation slows down a lot due to
+all the thread overhead, so *clm-threads* sets the number of threads running
+through the note list at any one time.  It defaults to 4.  You can speed up
+with-threaded-sound if you set *clm-file-buffer-size* large enough to accommodate
+the entire output, then pass :output-safety 1 to with-threaded-sound.
+Even so, my tests indicate that 
+it is sometimes faster to use with-sound; I need to figure out why...
+</p>
+ 
+<p><em class=def id="clm-load">clm-load</em> is the same as with-sound, but its first argument is the name
+of a file containing clm instrument calls (i.e. the body of
+with-sound), the reverb argument is the name of the reverb function,
+and the reverb-data argument is the list; that is, clm-load's arguments
+look like normal lisp, whereas with-sound's are unquoted in these two cases.</p>
+
+<pre class="indented">
+(<a class=quiet href="#with-sound">with-sound</a> (:reverb jc-reverb :reverb-data (:volume .3)) ...)
+(<a class=quiet href="#clm-load">clm-load</a> "test.clm" :reverb 'jc-reverb :reverb-data '(volume .3))
+</pre>
+
+<p>The with-sound output is normally sent to the speakers via the <b>play</b> function.
+There are several associated functions:</p>
+
+<pre class="indented">
+<em class=emdef>play</em> &optional file start end wait
+<em class=def id="dac">dac</em> &optional file start end wait
+<em class=def id="sldac">sl-dac</em> file &optional (output-device mus-audio-default)
+<em class=emdef>stop-playing</em>
+<em class=def id="stop-dac">stop-dac</em>
+</pre>
+
+<p><b>play</b> (or <b>dac</b>) starts playing file (or the last file played, if no
+argument is given); in some cases (MCL and ACL) it then returns to the lisp listener;
+to interrupt the dac in those cases, use <b>stop-playing</b> (or <b>stop-dac</b>). 
+Currently, <b>play</b> calls the sndplay program if possible; <b>sl-dac</b> is
+the same thing, but calls the sl_dac function.  The latter gives you control over the
+output device (sndplay will also someday).  In some cases, sndplay's default buffer
+size is not ideal; you can use <a href="#*clm-player*">*clm-player*</a> and sndplay's bufsize argument to
+set it to the correct value for your audio system. play's start and end arguments are in seconds,
+and default to playing the entire sound.  The wait argument in some cases causes
+the play call to wait until the complete sound has been played before returning to the listener.
+</p>
+
+<p>The *clm-* variables (like *clm-srate*) set the default values.
+The corresponding un-clm'd versions (*srate*) hold the current values.  So, if
+with-sound doesn't include the :srate argument, *srate* is the same as *clm-srate*;
+otherwise it reflects the :srate value for the duration of the with-sound call.
+The local variables that are currently exported are:
+*srate*, *safety*, and *debug*.  Unexported, but available in the clm package
+are *channels*, *data-format*, *header-type*, *notehook*, *clipped*, *verbose*,
+and *statistics*.  
+</p>
+
+<pre class="indented">
+<em class=def id="musfloatequalfudgefactor">mus-float-equal-fudge-factor</em>     how far apart values can be and still be considered equal
+<em class=def id="musarrayprintlength">mus-array-print-length</em> ()        how many array (vct) elements to print in mus-describe
+<em class=def id="musfilebuffersize">mus-file-buffer-size</em> ()          size of input/ouput buffers (default 8192)
+<em class=def id="makefircoeffs">make-fir-coeffs</em> (order spectr)
+<em class=def id="mussrate">mus-srate</em> ()                     current sampling rate
+</pre>
+
+
+
+<!-- INDEX mix-and-with-mix:Checkpoints -->
+
+<div class="innerheader" id="mix-and-with-mix">with-mix</div>
+
+<pre class="indented">
+<em class=def id="with-mix">with-mix</em> options file begin &body body
+</pre>
+
+<p>With-mix is a macro, callable within <a href="#with-sound">with-sound</a> or <a href="#clm-load">clm-load</a>,
+which saves the computation in its body in a separate file named file
+(without the .snd extension), and can tell when that file's data is up to date
+and does not need to be recomputed.
+</p>
+
+<pre class="indented">
+(<a class=quiet href="#with-sound">with-sound</a> () 
+  (fm-violin 0 .1 440 .1)
+  (<em class=red>with-mix</em> () "sec1" .5 
+    (fm-violin 0 .1 550 .1)
+    (fm-violin .1 .1 660 .1))
+  (<em class=red>with-mix</em> (:reverb jc-reverb) "sec2" 1.0
+    (fm-violin 0 .1 880 .1 :reverb-amount .2)
+    (fm-violin .1 .1 1320 .1 :reverb-amount .2))
+  (fm-violin 2 .1 220 .1)
+  (<em class=red>mix</em> "/zap/slow.snd"))
+</pre>
+
+<p>Now, if we change just the first note in the with-mix call, the
+second with-mix section will not be recomputed, but will be mixed in from the
+saved file "sec2.snd".  By surrounding stable sections of a piece with calls on
+mix or with-mix, you can save a huge amount of time that would
+otherwise be spent waiting for these notes to be recomputed.  This check-point
+or makefile capability is built on <a href="#open-input">open-input</a>.</p>
+
+<blockquote>
+With-mix performs a string comparison of its body to decide whether
+it needs to recompute its note calls.  It then loads that body from
+a separate saved file.  This can be confusing if global variables
+are present.
+
+<pre class="indented">
+  > USER(2): (let ((rstr .1)) (<a class=quiet href="#with-sound">with-sound</a> () (<a class=quiet href="#with-mix">with-mix</a> () "sec" 0 (fm-violin 0 1 440 rstr))))
+  > ; Loading /zap/sec.clm
+  > Error: Attempt to take the value of the unbound variable `RSTR'.
+</pre>
+
+Here the code evaluated is basically
+<code>
+(let ((rstr .1)) (load "/zap/sec.clm"))
+</code>
+where rstr has lexical scope.  To make rstr visible within the load,
+
+<pre class="indented">
+  (let ((rstr1 .1)) 
+    (declare (special rstr1))
+    (<a class=quiet href="#with-sound">with-sound</a> () (<a class=quiet href="#with-mix">with-mix</a> () "sec" 0 (fm-violin 0 1 440 rstr1))))
+</pre>
+
+but if you then evaluate the same form again, changing rstr1 to (say) .5,
+with-mix does not notice that rstr1's value has changed, so
+it does not recompute its body, leaving the resultant amplitude at .1.
+</blockquote>
+
+<p>The fastest way to mix sound files is with <b>mix</b>:</p>
+
+<pre class="indented">
+<em class=def id="mix">mix</em> &optional-key filename (input-frample 0) (output-frample 0) framples output
+</pre>
+
+
+
+
+<div class="innerheader">c-level IO</div>
+
+<!-- INDEX open-input:Sound file IO -->
+
+<pre class="indented">
+<em class=def id="open-input">open-input</em> &optional name &key start channel restartable
+<em class=def id="close-input">close-input</em> i-stream
+<em class=def id="open-input*">open-input*</em> name &key start channel restartable
+</pre>
+
+<p>These functions open and close input sound files.  <b>open-input</b>
+takes either a string or a pathname and returns an IO object.
+Various clm
+functions use that object as a handle on the file.  The variable
+<b>*clm-file-name*</b>, used as the default name in most such calls, is "/zap/test.snd" at CCRMA.</p>
+
+<p>Open-input normally opens the sound file name and returns a list or perhaps a structure
+that other clm functions can use to access the file.  If you don't
+give a complete file name (name without the .snd extension),
+open-input checks to see if there's either no .snd file or a later .cm
+or .clm file, and in that case, suspends the current computation, makes the
+sound file from the sources, then resumes the old computation, opening the
+(newly computed) sound file.  If you are working in sections, and keep the
+sections in separate files, the various layers of mixing can automatically
+notice when some section has changed, and update everything for you.
+Similarly, if all your sound files get deleted, the whole piece can still
+regenerate itself in one operation. 
+If you want the convenience of the directory
+search (see <a href="#*clm-search-list*">*clm-search-list*</a>) <b>open-input*</b>.
+Normally if open-input* can't find a file, it prints a warning and returns
+nil.  If you would rather that it drop into the debugger with an option
+to specify a new file name at that time, set the restartable argument to t.
+</p>
+
+<p>Open-input's &key parameters are patterned after Lisp's load
+function:
+verbose (the default is nil) turns on some informational printout;
+element-type can be nil (the default), or :sound.  In the latter case, the file passed to
+open-input is assumed to contain sound data, no matter what extension it has, providing
+a way to override the check for out of date sound files and so on;
+if-does-not-exist can be nil or :error (the default).  In the latter case, if no sound file
+associated with name can be found or created, you get an error message.
+start is the sample to start at when reading the first data buffer.
+end is the sample to stop at when reading the initial buffer (it defaults to buffer-size).
+If you are reading only a small portion of a file many times, you can save some
+time by setting explicitly the bounds of the initial read via start and end.
+The implicit load triggered by open-input with a non-specific file name
+sets 
+<em class=def id="*open-input-pathname*">*open-input-pathname*</em> and 
+<em class=def id="*open-input-truename*">*open-input-truename*</em> and notices
+<em class=def id="*open-input-verbose*">*open-input-verbose*</em> (if t, print out informational
+messages).</p>
+
+
+
+
+<div class="innerheader" id="sound-let">sound-let</div>
+
+<p><b>sound-let</b> is a form of let* that creates temporary sound streams
+within with-sound.  Its syntax is like that of let and
+with-sound:</p>
+
+<pre class="indented">
+(<em class=red>sound-let</em> ((temp-1 () (fm-violin 0 1 440 .1))
+            (temp-2 () (fm-violin 0 2 660 .1)
+                       (fm-violin .125 .5 880 .1)))
+  (granulate-sound temp-1 0 2 0 2);temp-1's value is the name of the temp file
+  (granulate-sound temp-2 1 1 0 2))
+</pre>
+
+<p>This creates two temporary files and passes them along to the subsequent calls
+on granulate-sound.  The first list after the sound file identifier (i.e. after
+"temp-1" in the example) is the list of <a href="#with-sound">with-sound</a> options to be passed
+along when creating this temporary file.  These default to :output
+with a unique name generated internally, and all other variables are taken from
+the overall (enclosing) output file.  The rest of the list is the body of the
+associated <a href="#with-sound">with-sound</a>, which can contain embedded sound-lets.
+The difference between sound-let and a simple embedded with-sound is primarily that
+sound-let names and later deletes the temporary files it creates, whereas with-sound leaves
+its output intact.
+</p>
+
+
+
+<div class="innerheader">clm defaults</div>
+
+<p>These default values are set in defaults.lisp. Generally, the default value is *clm-<var>, and the
+current dynamic value of that variable is *<var>*.
+</p>
+
+<table class="spaced">
+<tr><td><em class=def id="*clm-array-print-length*">*clm-array-print-length*</em></td><td>number of IO data buffer elements printed</td></tr>
+<tr><td class="bluish"><em class=def id="*clm-channels*">*clm-channels*</em></td><td class="bluish">default output channels (1)</td></tr>
+<tr><td><em class=def id="*clm-clipped*">*clm-clipped*</em></td><td>default for clipped arg in with-sound</td></tr>
+<tr><td class="bluish"><em class=def id="*clm-dac-wait-default*">*clm-dac-wait-default*</em></td><td class="bluish">default choice of whether play function should wait for completion</td></tr>
+<tr><td><em class=def id="*clm-data-format*">*clm-data-format*</em></td><td>default output sound file data format</td></tr>
+<tr><td class="bluish"><em class=def id="*clm-date*">*clm-date*</em></td><td class="bluish">creation date of the current version</td></tr>
+<tr><td><em class=def id="*clm-default-frequency*">*clm-default-frequency*</em></td><td>default make-* frequency (0.0)</td></tr>
+<tr><td><em class=def id="*clm-delete-reverb*">*clm-delete-reverb*</em></td><td>should with-sound delete the temporary reverb output (default nil)</td></tr>
+<tr><td class="bluish"><em class=def id="*clm-file-buffer-size*">*clm-file-buffer-size*</em></td><td class="bluish">IO buffer sizes (in samples)</td></tr>
+<tr><td><em class=def id="*clm-file-name*">*clm-file-name*</em></td><td>default sound file name</td></tr>
+<tr><td class="bluish"><em class=def id="*clm-header-type*">*clm-header-type*</em></td><td class="bluish">default output sound file header type</td></tr>
+<tr><td><em class=def id="*clm-init*">*clm-init*</em></td><td>name of site-specific initializations (see <a href="#clm-init.lisp">clm-init.lisp</a>)</td></tr>
+<tr><td class="bluish"><em class=def id="*clm-instruments*">*clm-instruments*</em></td><td class="bluish">list of the currently loaded clm instruments</td></tr>
+<tr><td><em class=def id="*clm-locsig-type*">*clm-locsig-type*</em></td><td>locsig interpolation choice (<b>mus-interp-linear</b> or <b>mus-interp-sinusoidal</b>)</td></tr>
+<tr><td class="bluish"><em class=def id="*clm-news*">*clm-news*</em></td><td class="bluish">brief list of recent changes (HISTORY.clm)</td></tr>
+<tr><td><em class=def id="*clm-notehook*">*clm-notehook*</em></td><td>default for notehook arg in with-sound</td></tr>
+<tr><td class="bluish"><em class=def id="*clm-play*">*clm-play*</em></td><td class="bluish">default for play arg in with-sound</td></tr>
+<tr><td><em class=def id="*clm-player*">*clm-player*</em></td><td>user-supplied DAC function</td></tr>
+<tr><td class="bluish"><em class=def id="*clm-reverb-channels*">*clm-reverb-channels*</em></td><td class="bluish">reverb stream chans in with-sound</td></tr>
+<tr><td><em class=def id="*clm-safety*">*clm-safety*</em></td><td>default safety setting (run loop debugging choices)</td></tr>
+<tr><td class="bluish"><em class=def id="*clm-search-list*">*clm-search-list*</em></td><td class="bluish">pathname list for file searches (open-input*)</td></tr>
+<tr><td><em class=def id="*clm-srate*">*clm-srate*</em></td><td>default sampling rate (44100)</td></tr>
+<tr><td class="bluish"><em class=def id="*clm-statistics*">*clm-statistics*</em></td><td class="bluish">default statistics arg in with-sound</td></tr>
+<tr><td><em class=def id="*clm-table-size*">*clm-table-size*</em></td><td>default table-lookup table size (in Scheme, the associated function is <b>clm-table-size</b>)</td></tr>
+<tr><td class="bluish"><em class=def id="*clm-tempfile-data-format*">*clm-tempfile-data-format*</em></td><td class="bluish">intermediate with-sound file data format</td></tr>
+<tr><td><em class=def id="*clm-tempfile-header-type*">*clm-tempfile-header-type*</em></td><td>intermediate with-sound file header type</td></tr>
+<tr><td class="bluish"><em class=def id="*clm-version*">*clm-version*</em></td><td class="bluish">version identifier (a number — also *clm-revision*)</td></tr>
+<tr><td><em class=def id="*output*">*output*</em></td><td>current output stream (for outa and friends)</td></tr>
+<tr><td class="bluish"><em class=def id="*reverb*">*reverb*</em></td><td class="bluish">current reverb stream</td></tr>
+<tr><td><em class=def id="two-pi">two-pi</em></td><td>2*pi</td></tr>
+</table>
+
+<p><b>*clm-player*</b> can be used to override CLM's normal play routine (which
+calls sndplay in most cases).
+</p>
+
+<pre class="indented">
+(setf *clm-player* (lambda (name) (clm::run-in-shell "sndplay" (format nil "~A -bufsize 1024" name))))
+</pre>
+
+<p>On machines with plenty of memory and slow disks, you can speed up CLM
+computations by setting <b>*clm-file-buffer-size*</b> to some number larger
+than its default (65536):
+</p>
+
+<pre class="indented">
+  (let ((*clm-file-buffer-size* (* 1024 1024))) (<a class=quiet href="#with-sound">with-sound</a> ...) <!-- ) -->
+</pre>
+
+<p>The macro <em class=def id="with-offset">with-offset</em> can be used to set local
+begin time offsets.  Its argument is in seconds:</p>
+
+<pre class="indented">
+(<a class=quiet href="#with-sound">with-sound</a> () 
+  (fm-violin 0 1 440 .1)
+  (<em class=red>with-offset</em> 1.0
+    (fm-violin 0 .25 660 .1)) ; actually starts at 1.0
+  (fm-violin .5 440 .1))
+</pre>
+
+
+
+
+<div class="innerheader">examples</div>
+
+<p>The file <a href="files">files</a> describes briefly each of the files in the clm
+directory;  <a href="clm-example.lisp">clm-example.lisp</a> shows one way to write notelists;  
+<a href="cm-clm.lisp">cm-clm.lisp</a> is
+a brief example of using Rick Taube's Common Music to drive CLM.  There are several
+*.clm files included in the clm distribution.  clm-test.lisp runs my standard
+set of regression tests, exercising many of the instruments. <a href="pitches.cl">pitches.cl</a>
+provides the standard pitch names as lisp variables (a4 = 440.0 and so on).
+</p>
+
+
+
+<div class="innerheader" id="run*">run*</div>
+
+<p><b>run*</b> takes two arguments, a list of variables, and the usual
+run macro body.  The run body is executed (in C normally) and then
+the variables are set to the values they had when the run loop
+exited. 
+This extension of <a href="#run">run</a> is
+needed because in C
+instruments, everything that happens within the run loop is normally hidden
+from the lisp interpreter; if you set a global variable's value, for example,
+only the run-specific version of that variable is affected.  You need <b>run*</b>
+to return such values back to Lisp.
+</p>
+
+<pre class="indented">
+(<a class=quiet href="#definstrument">definstrument</a> p (beg dur frq amp)
+  (let* ((s (<a class=quiet href="#make-oscil">make-oscil</a> frq))
+	 (start (floor (* beg *srate*)))
+	 (end (+ start (floor (* dur *srate*))))
+	 (hi 0.0))
+    (<em class=red>run*</em> (amp hi)
+      (loop for i from start below end do
+	(incf hi .001)
+	(<a class=quiet href="#outa">outa</a> i (* amp (<a class=quiet href="#oscil">oscil</a> s)))))
+    (print (format nil "~A ~A" hi amp))))
+</pre>
+
+<p>A more useful instrument is Michael Edwards' <a href="track-rms.ins">track-rms.ins</a>; see also
+the sr3 instrument in ug.ins.
+Here's another instrument that implements legato between notes by using the previous note's phases:
+</p>
+
+<pre class="indented">
+(defstruct fmins carrier modulator)
+(<a class=quiet href="#definstrument">definstrument</a> fmsimp (beg dur frq amp ind &optional previous-oscils)
+  (let* ((start (floor (* *srate* beg)))
+	 (end (+ start (floor (* *srate* dur))))
+	 (carrier (if previous-oscils
+		      (fmins-carrier previous-oscils)
+		    (<a class=quiet href="#make-oscil">make-oscil</a>)))
+	 (modulator (if previous-oscils
+			(fmins-modulator previous-oscils)
+		      (<a class=quiet href="#make-oscil">make-oscil</a>))))
+    (setf (<a class=quiet href="#mus-frequency">mus-frequency</a> carrier) frq)
+    (setf (<a class=quiet href="#mus-frequency">mus-frequency</a> modulator) frq)
+    (<em class=red>run*</em> (carrier modulator)
+     (loop for i from start below end do
+       (<a class=quiet href="#outa">outa</a> i (* amp (<a class=quiet href="#oscil">oscil</a> carrier (* ind (<a class=quiet href="#oscil">oscil</a> modulator)))))))
+    (if previous-oscils
+	(progn
+	  (setf (fmins-carrier previous-oscils) carrier)
+	  (setf (fmins-modulator previous-oscils) modulator)))))
+
+;;; (defvar oscs (make-fmins :carrier (<a class=quiet href="#make-oscil">make-oscil</a>) :modulator (<a class=quiet href="#make-oscil">make-oscil</a>)))
+;;; (<a class=quiet href="#with-sound">with-sound</a> () (fmsimp 0 1.01 440 .1 0.0 oscs) (fmsimp 1.01 1 660 .1 0.0 oscs))
+;;; (<a class=quiet href="#with-sound">with-sound</a> () (fmsimp 0 1.01 440 .1 0.0) (fmsimp 1.01 1 660 .1 0.0))
+;;;     the 1.01 (as opposed to 1.0) is needed because the phases line up just by chance in the 1.0 case
+;;;     for portamento, the instrument could notice an in-coming osc set and
+;;;     change the frequency envelope accordingly
+</pre>
+
+
+
+<div class="header" id="debugging-aids">Debugging</div>
+
+<!-- INDEX debugging-aids:Debugging  -->
+
+<p>CLM provides several built-in data display and instrument debugging aids.
+But debugging an instrument is still too much pain.  I suggest that you
+develop the algorithm in Snd/Scheme where there are elaborate and
+robust debugging tools. 
+</p>
+
+<p>The optimize safety option can be used to check for array index and null
+generator problems (these will be reported as bus errors and segmentation
+faults, sigh).  <code>(pushnew :debug *features*)</code> before loading CLM to see what it
+is sending to the C compiler.
+</p>
+
+
+
+<div class="innerheader">The error handler</div>
+
+<p>When you hit an error within with-sound, depending on the context of the error and
+the lisp you're running, you'll see a variety of restart options:</p>
+
+<pre class="indented">
+  Restart actions (select using :continue):
+   0: return from break.
+   1: try to exit current note cleanly and go on.
+   2: abort current note.
+   3: close files and return to top-level.
+   4: jump past remaining notes.
+</pre>
+
+<p>The last four are provided by CLM.  The first tries to jump to the end of the
+current instrument, allowing open input files to be closed and so forth.
+The second jumps out of the current note, but tries to continue processing
+the body of with-sound.  The third closes all files and jumps out of with-sound.
+The fourth jumps to the end of the body of with-sound and tries to handle 
+all the usual with-sound closing options such as reverb, statistics, and
+scaling.
+</p>
+
+<p>If you hit a C error (segfault, etc), start gdb with lisp ('gdb /usr/local/lisp/acl'),
+'run', load clm, run your instrument, then when the error drops you into the gdb debugger, 'where'.  This
+should give you some idea where the problem is.  In the worst case, trace clm::run-in-shell and compile/load
+the instrument to find out what the C compilation sequence is on your machine; next, make whatever changes
+you like to the instrument C code (produced by the run macro, named clm_INSNAME.c); to add a print
+statement that will send its output to the lisp listener, use the function mus_error with a first argument
+of 0; next run the C compiler and loader, making a new instrument object file, start gdb with lisp, run
+lisp loading clm, load your instrument, and run it.
+</p>
+
+<p>In Windows using ACL, you can get into the debugger via:
+</p>
+
+<pre class="indented">
+c:\program files\acl80\mlisp.exe -! -I mlisp.dxl 
+</pre>
+
+<p>or some facsimile thereof.  When you hit a segfault, get a call stack (stack trace).
+I don't know how to print out function arguments in this case.
+In ACL, you can maximize the lisp-level information at an error with:
+</p>
+
+<pre class="indented">
+:zoom :all t :verbose t :count t
+</pre>
+
+<p>ffi-test.lisp has a bunch of FFI calls outside the with-sound/definstrument context.
+The base CLM test suite is clm-test.lisp, but it's more of a "regression" test — I run
+it in the various lisps whenever I make some code change.
+</p>
+
+
+
+<div class="header" id="appendices">Appendices</div>
+
+<div class="innerheader" id="header-types">header and data types</div>
+
+<!-- INDEX header-types:Sound file formats  -->
+<!-- INDEX header-types:Data formats  -->
+<!-- INDEX header-types:Headers  -->
+
+<p>CLM can write NeXT/Sun, AIFF/AIFC, RIFF ("wave"), RF64, CAFF, raw (no header), NIST-sphere, and "old-style" IRCAM headers.
+The default choice is set by <a href="#*clm-header-type*">*clm-header-type*</a>
+set in <a href="defaults.lisp">defaults.lisp</a>. The output data format is normally
+16-bit signed (2's complement) integer; the default is set by 
+<a href="#*clm-data-format*">*clm-data-format*</a>.
+CLM can read most standard headers, and can read and write most uncompressed
+data formats.</p>
+
+<pre class="indented">
+read/write (many data formats):
+
+    NeXT/Sun/DEC/AFsp
+    AIFF/AIFC
+    RIFF (Microsoft wave)
+    RF64
+    IRCAM (old style)
+    NIST-sphere
+    CAFF
+    no header ("raw")
+
+read-only (in selected data formats):
+
+    8SVX (IFF), EBICSF, INRS, ESPS, SPPACK, ADC (OGI), AVR, VOC, PVF,
+    Sound Tools, Turtle Beach SMP, SoundFont 2.0, Sound Designer I, PSION, MAUD, Kurzweil 2000,
+    Gravis Ultrasound, ASF, PAF, CSL, Comdisco SPW, Goldwave sample, omf, quicktime, sox,
+    Sonic Foundry, SBStudio II, Delusion digital, Digiplayer ST3, Farandole Composer WaveSample,
+    Ultratracker WaveSample, Sample Dump exchange, Yamaha SY85, SY99, and TX16, Covox v8, AVI, 
+    Impulse tracker, Korg, Akai, Turtle Beach, Matlab-5
+
+automatically translated to a readable format:
+
+    IEEE text, Mus10, SAM 16-bit (modes 1 and 4), AVI, NIST shortpack, HCOM, Intel, 
+    IBM, and Oki (Dialogic) ADPCM, G721, G723_24, G723_40, MIDI sample dump, Ogg, Speex, 
+    Flac, Midi, Mpeg, Shorten, Wavepack (via external programs)
+</pre>
+
+<p>I am willing to add almost anything to this list.
+See <a href="headers.c">headers.c</a> for all the gory details.  In
+<a href="#with-sound">with-sound</a>, you can set the output header type with
+the keyword :header-type, and the data type with the :data-format keyword.</p>
+
+<p>The CLM names for the output header types, as used with the :header-type argument to with-sound, are
+<em class="noem" id="mus-aiff">mus-aiff</em>, <em class="noem" id="mus-aifc">mus-aifc</em>, <em class="noem" id="mus-next">mus-next</em>, 
+<em class="noem" id="mus-riff">mus-riff</em>, <em class="noem" id="mus-rf64">mus-rf64</em>, and <em class="noem" id="mus-ircam">mus-ircam</em>.
+The data-formats
+that are exported from the clm package are <em class="noem" id="mus-bshort">mus-bshort</em>, mus-lshort, mus-bint, mus-lint,
+mus-bfloat, mus-lfloat, mus-mulaw, mus-alaw, mus-byte, mus-ubyte, mus-b24int, mus-l24int, mus-bdouble,
+and mus-ldouble.  The "b" stands for big-endian, "l" for little-endian, "u" for unsigned.
+The other header and data format possibilities are listed in initmus.lisp.</p>
+
+<em class="noem" id="raw-data"></em>
+<!-- INDEX raw-data:raw data  -->
+
+<p>If you are trying to read raw (no header) sound files, CLM's default settings for
+the sampling rate, channels, and data format are 44100, 2, and mus-bshort
+respectively.  To change these, call (<em class="noem" id="mus-set-raw-header-defaults">mus-set-raw-header-defaults</em> srate chans format):
+</p>
+
+<pre class="indented">
+(<a class=quiet href="#mus-set-raw-header-defaults">mus-set-raw-header-defaults</a> 8012 1 mus-mulaw)
+(<a class=quiet href="#open-input">open-input</a> "raw.snd")
+</pre>
+
+<p>treats "raw.snd" as mono µlaw data at 8012 Hz.</p>
+
+
+
+<div class="innerheader" id="clm-init.lisp">clm-init.lisp</div>
+
+<!-- INDEX clm-init.lisp:CLM Initialization  -->
+
+<p>If the file clm-init.lisp exists in the same directory as <a href="all.lisp">all.lisp,</a> or
+if you set the clm variable *clm-init* to point to some file, then CLM
+loads that file upon initialization.  
+Here is my clm-init.lisp:</p>
+
+<pre class="indented">
+(compile-and-load "v")
+(compile-and-load "jcrev")
+;;; my two favorite instruments
+
+(setf *clm-search-list* 
+  (append *clm-search-list* 
+	  (list "/home/bil/cl/oboe.snd"
+		"/home/bil/test/sounds/test.snd")))
+;;; these are my standard sound file directories — by including 
+;;; these in the search list I don't need to remember where each 
+;;; file happens to be.  The file names are just fillers —
+;;; the important part of the path is the directory.
+</pre>
+
+
+
+<div class="innerheader" id="savedimages">saved images</div>
+
+<!-- INDEX savedimages:saved images -->
+
+<p>Many lisps have some mechanism to dump the current lisp image as an
+executable file.  In ACL or MCL, some of CLM's state at run-time is handled in C-based
+foreign-function modules that are opaque to Lisp, so there are cases where the naive use
+of dumplisp (acl), or save-application (mcl)
+can fail with a segmentation fault or some other equally
+un-informative error message.  This should only be a problem when the saved image
+has called clm-initialize-links (within with-sound or dac or some such function);
+if you build a clm image and immediately save it, everything
+should work without problem.  Once clm-initialize-links has been called,
+the C modules assume they have been initialized; if code in the saved version of
+a module is then executed, the un-initialized variables may be accessed.
+To get around this problem, call
+<em class=def id="restart-clm">restart-clm</em> before doing anything in the newly executed image.
+</p>
+
+
+</body>
+</html>
diff --git a/config.rpath b/config.rpath
new file mode 100755
index 0000000..5ead758
--- /dev/null
+++ b/config.rpath
@@ -0,0 +1,513 @@
+#! /bin/sh
+# Output a system dependent set of variables, describing how to set the
+# run time search path of shared libraries in an executable.
+#
+#   Copyright 1996-2002 Free Software Foundation, Inc.
+#   Taken from GNU libtool, 2001
+#   Originally by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996
+#
+#   This program is free software; you can redistribute it and/or modify
+#   it under the terms of the GNU General Public License as published by
+#   the Free Software Foundation; either version 2 of the License, or
+#   (at your option) any later version.
+#
+#   This program is distributed in the hope that it will be useful, but
+#   WITHOUT ANY WARRANTY; without even the implied warranty of
+#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#   General Public License for more details.
+#
+#   You should have received a copy of the GNU General Public License
+#   along with this program; if not, write to the Free Software
+#   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#   As a special exception to the GNU General Public License, if you
+#   distribute this file as part of a program that contains a
+#   configuration script generated by Autoconf, you may include it under
+#   the same distribution terms that you use for the rest of that program.
+#
+# The first argument passed to this file is the canonical host specification,
+#    CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or
+#    CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
+# should be set by the caller.
+#
+# The set of defined variables is at the end of this script.
+
+# All known linkers require a `.a' archive for static linking (except M$VC,
+# which needs '.lib').
+libext=a
+shlibext=
+
+host="$1"
+host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+wl=
+if test "$GCC" = yes; then
+  wl='-Wl,'
+else
+  case "$host_os" in
+    aix3* | aix4* | aix5*)
+      wl='-Wl,'
+      ;;
+    hpux9* | hpux10* | hpux11*)
+      wl='-Wl,'
+      ;;
+    irix5* | irix6*)
+      wl='-Wl,'
+      ;;
+    linux*)
+      echo '__INTEL_COMPILER' > conftest.$ac_ext
+      if $CC -E conftest.$ac_ext >/dev/null | grep __INTEL_COMPILER >/dev/null
+      then
+        :
+      else
+        # Intel icc
+        wl='-Qoption,ld,'
+      fi
+      ;;
+    osf3* | osf4* | osf5*)
+      wl='-Wl,'
+      ;;
+    solaris*)
+      wl='-Wl,'
+      ;;
+    sunos4*)
+      wl='-Qoption ld '
+      ;;
+    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+      if test "x$host_vendor" = xsni; then
+        wl='-LD'
+      else
+        wl='-Wl,'
+      fi
+      ;;
+  esac
+fi
+
+hardcode_libdir_flag_spec=
+hardcode_libdir_separator=
+hardcode_direct=no
+hardcode_minus_L=no
+
+case "$host_os" in
+  cygwin* | mingw* | pw32*)
+    # FIXME: the MSVC++ port hasn't been tested in a loooong time
+    # When not using gcc, we currently assume that we are using
+    # Microsoft Visual C++.
+    if test "$GCC" != yes; then
+      with_gnu_ld=no
+    fi
+    ;;
+  openbsd*)
+    with_gnu_ld=no
+    ;;
+esac
+
+ld_shlibs=yes
+if test "$with_gnu_ld" = yes; then
+  case "$host_os" in
+    aix3* | aix4* | aix5*)
+      # On AIX, the GNU linker is very broken
+      ld_shlibs=no
+      ;;
+    amigaos*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      # Samuel A. Falvo II <kc5tja at dolphin.openprojects.net> reports
+      # that the semantics of dynamic libraries on AmigaOS, at least up
+      # to version 4, is to share data among multiple programs linked
+      # with the same dynamic library.  Since this doesn't match the
+      # behavior of shared libraries on other platforms, we can use
+      # them.
+      ld_shlibs=no
+      ;;
+    beos*)
+      if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+        :
+      else
+        ld_shlibs=no
+      fi
+      ;;
+    cygwin* | mingw* | pw32*)
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      hardcode_libdir_flag_spec='-L$libdir'
+      ;;
+    solaris* | sysv5*)
+      if $LD -v 2>&1 | egrep 'BFD 2\.8' > /dev/null; then
+        ld_shlibs=no
+      elif $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+        :
+      else
+        ld_shlibs=no
+      fi
+      ;;
+    sunos4*)
+      hardcode_direct=yes
+      ;;
+    *)
+      if $LD --help 2>&1 | egrep ': supported targets:.* elf' > /dev/null; then
+        :
+      else
+        ld_shlibs=no
+      fi
+      ;;
+  esac
+  if test "$ld_shlibs" = yes; then
+    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+  fi
+else
+  case "$host_os" in
+    aix3*)
+      # Note: this linker hardcodes the directories in LIBPATH if there
+      # are no directories specified by -L.
+      hardcode_minus_L=yes
+      if test "$GCC" = yes; then
+        # Neither direct hardcoding nor static linking is supported with a
+        # broken collect2.
+        hardcode_direct=unsupported
+      fi
+      ;;
+    aix4* | aix5*)
+      if test "$host_cpu" = ia64; then
+        # On IA64, the linker does run time linking by default, so we don't
+        # have to do anything special.
+        aix_use_runtimelinking=no
+      else
+        aix_use_runtimelinking=no
+        # Test if we are trying to use run time linking or normal
+        # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+        # need to do runtime linking.
+        case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+          for ld_flag in $LDFLAGS; do
+            if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+              aix_use_runtimelinking=yes
+              break
+            fi
+          done
+        esac
+      fi
+      hardcode_direct=yes
+      hardcode_libdir_separator=':'
+      if test "$GCC" = yes; then
+        case $host_os in aix4.[012]|aix4.[012].*)
+          collect2name=`${CC} -print-prog-name=collect2`
+          if test -f "$collect2name" && \
+            strings "$collect2name" | grep resolve_lib_name >/dev/null
+          then
+            # We have reworked collect2
+            hardcode_direct=yes
+          else
+            # We have old collect2
+            hardcode_direct=unsupported
+            hardcode_minus_L=yes
+            hardcode_libdir_flag_spec='-L$libdir'
+            hardcode_libdir_separator=
+          fi
+        esac
+      fi
+      if test "$aix_use_runtimelinking" = yes; then
+        hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:/usr/lib:/lib'
+      else
+        if test "$host_cpu" = ia64; then
+          hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+        else
+          hardcode_libdir_flag_spec='${wl}-bnolibpath ${wl}-blibpath:$libdir:/usr/lib:/lib'
+        fi
+      fi
+      ;;
+    amigaos*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      # see comment about different semantics on the GNU ld section
+      ld_shlibs=no
+      ;;
+    cygwin* | mingw* | pw32*)
+      # When not using gcc, we currently assume that we are using
+      # Microsoft Visual C++.
+      # hardcode_libdir_flag_spec is actually meaningless, as there is
+      # no search path for DLLs.
+      hardcode_libdir_flag_spec=' '
+      libext=lib
+      ;;
+    darwin* | rhapsody*)
+      hardcode_direct=yes
+      ;;
+    freebsd1*)
+      ld_shlibs=no
+      ;;
+    freebsd2.2*)
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      ;;
+    freebsd2*)
+      hardcode_direct=yes
+      hardcode_minus_L=yes
+      ;;
+    freebsd*)
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      ;;
+    hpux9* | hpux10* | hpux11*)
+      hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+      hardcode_libdir_separator=:
+      hardcode_direct=yes
+      hardcode_minus_L=yes # Not in the search PATH, but as the default
+                           # location of the library.
+      ;;
+    irix5* | irix6*)
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      ;;
+    netbsd*)
+      hardcode_libdir_flag_spec='-R$libdir'
+      hardcode_direct=yes
+      ;;
+    newsos6)
+      hardcode_direct=yes
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      ;;
+    openbsd*)
+      hardcode_direct=yes
+      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+        hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+      else
+        case "$host_os" in
+          openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+            hardcode_libdir_flag_spec='-R$libdir'
+            ;;
+          *)
+            hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+            ;;
+        esac
+      fi
+      ;;
+    os2*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_minus_L=yes
+      ;;
+    osf3*)
+      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      hardcode_libdir_separator=:
+      ;;
+    osf4* | osf5*)
+      if test "$GCC" = yes; then
+        hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+      else
+        # Both cc and cxx compiler support -rpath directly
+        hardcode_libdir_flag_spec='-rpath $libdir'
+      fi
+      hardcode_libdir_separator=:
+      ;;
+    sco3.2v5*)
+      ;;
+    solaris*)
+      hardcode_libdir_flag_spec='-R$libdir'
+      ;;
+    sunos4*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      hardcode_direct=yes
+      hardcode_minus_L=yes
+      ;;
+    sysv4)
+      if test "x$host_vendor" = xsno; then
+        hardcode_direct=yes # is this really true???
+      else
+        hardcode_direct=no # Motorola manual says yes, but my tests say they lie
+      fi
+      ;;
+    sysv4.3*)
+      ;;
+    sysv5*)
+      hardcode_libdir_flag_spec=
+      ;;
+    uts4*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      ;;
+    dgux*)
+      hardcode_libdir_flag_spec='-L$libdir'
+      ;;
+    sysv4*MP*)
+      if test -d /usr/nec; then
+        ld_shlibs=yes
+      fi
+      ;;
+    sysv4.2uw2*)
+      hardcode_direct=yes
+      hardcode_minus_L=no
+      ;;
+    sysv5uw7* | unixware7*)
+      ;;
+    *)
+      ld_shlibs=no
+      ;;
+  esac
+fi
+
+# Check dynamic linker characteristics
+libname_spec='lib$name'
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+case "$host_os" in
+  aix3*)
+    shlibext=so
+    ;;
+  aix4* | aix5*)
+    shlibext=so
+    ;;
+  amigaos*)
+    shlibext=ixlibrary
+    ;;
+  beos*)
+    shlibext=so
+    ;;
+  bsdi4*)
+    shlibext=so
+    sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+    sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+    ;;
+  cygwin* | mingw* | pw32*)
+    case $GCC,$host_os in
+      yes,cygwin*)
+        shlibext=dll.a
+        ;;
+      yes,mingw*)
+        shlibext=dll
+        sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | sed -e "s/^libraries://" -e "s/;/ /g"`
+        ;;
+      yes,pw32*)
+        shlibext=dll
+        ;;
+      *)
+        shlibext=dll
+        ;;
+    esac
+    ;;
+  darwin* | rhapsody*)
+    shlibext=dylib
+    ;;
+  freebsd1*)
+    ;;
+  freebsd*)
+    shlibext=so
+    ;;
+  gnu*)
+    shlibext=so
+    ;;
+  hpux9* | hpux10* | hpux11*)
+    shlibext=sl
+    ;;
+  irix5* | irix6*)
+    shlibext=so
+    case "$host_os" in
+      irix5*)
+        libsuff= shlibsuff=
+        ;;
+      *)
+        case $LD in
+          *-32|*"-32 ") libsuff= shlibsuff= ;;
+          *-n32|*"-n32 ") libsuff=32 shlibsuff=N32 ;;
+          *-64|*"-64 ") libsuff=64 shlibsuff=64 ;;
+          *) libsuff= shlibsuff= ;;
+        esac
+        ;;
+    esac
+    sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
+    sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
+    ;;
+  linux-gnuoldld* | linux-gnuaout* | linux-gnucoff*)
+    ;;
+  linux-gnu*)
+    shlibext=so
+    ;;
+  netbsd*)
+    shlibext=so
+    ;;
+  newsos6)
+    shlibext=so
+    ;;
+  openbsd*)
+    shlibext=so
+    ;;
+  os2*)
+    libname_spec='$name'
+    shlibext=dll
+    ;;
+  osf3* | osf4* | osf5*)
+    shlibext=so
+    sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+    sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
+    ;;
+  sco3.2v5*)
+    shlibext=so
+    ;;
+  solaris*)
+    shlibext=so
+    ;;
+  sunos4*)
+    shlibext=so
+    ;;
+  sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+    shlibext=so
+    case "$host_vendor" in
+      motorola)
+        sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+        ;;
+    esac
+    ;;
+  uts4*)
+    shlibext=so
+    ;;
+  dgux*)
+    shlibext=so
+    ;;
+  sysv4*MP*)
+    if test -d /usr/nec; then
+      shlibext=so
+    fi
+    ;;
+esac
+
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
+escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+escaped_sys_lib_search_path_spec=`echo "X$sys_lib_search_path_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+escaped_sys_lib_dlsearch_path_spec=`echo "X$sys_lib_dlsearch_path_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+
+sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
+
+# How to pass a linker flag through the compiler.
+wl="$escaped_wl"
+
+# Static library suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally "so").
+shlibext="$shlibext"
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator="$hardcode_libdir_separator"
+
+# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct="$hardcode_direct"
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L="$hardcode_minus_L"
+
+# Compile-time system search path for libraries
+sys_lib_search_path_spec="$escaped_sys_lib_search_path_spec"
+
+# Run-time system search path for libraries
+sys_lib_dlsearch_path_spec="$escaped_sys_lib_dlsearch_path_spec"
+
+EOF
diff --git a/configure b/configure
index b3fa3a3..3952b8a 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for snd 16.9.
+# Generated by GNU Autoconf 2.69 for snd 17.0.
 #
 # Report bugs to <bil at ccrma.stanford.edu>.
 #
@@ -579,9 +579,9 @@ MAKEFLAGS=
 
 # Identity of this package.
 PACKAGE_NAME='snd'
-PACKAGE_TARNAME='ftp://ccrma-ftp.stanford.edu/pub/Lisp/snd-16.tar.gz'
-PACKAGE_VERSION='16.9'
-PACKAGE_STRING='snd 16.9'
+PACKAGE_TARNAME='ftp://ccrma-ftp.stanford.edu/pub/Lisp/snd-17.tar.gz'
+PACKAGE_VERSION='17.0'
+PACKAGE_STRING='snd 17.0'
 PACKAGE_BUGREPORT='bil at ccrma.stanford.edu'
 PACKAGE_URL=''
 
@@ -1310,7 +1310,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures snd 16.9 to adapt to many kinds of systems.
+\`configure' configures snd 17.0 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1359,7 +1359,7 @@ Fine tuning of the installation directories:
   --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
   --mandir=DIR            man documentation [DATAROOTDIR/man]
   --docdir=DIR            documentation root
-                          [DATAROOTDIR/doc/ftp://ccrma-ftp.stanford.edu/pub/Lisp/snd-16.tar.gz]
+                          [DATAROOTDIR/doc/ftp://ccrma-ftp.stanford.edu/pub/Lisp/snd-17.tar.gz]
   --htmldir=DIR           html documentation [DOCDIR]
   --dvidir=DIR            dvi documentation [DOCDIR]
   --pdfdir=DIR            pdf documentation [DOCDIR]
@@ -1380,7 +1380,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of snd 16.9:";;
+     short | recursive ) echo "Configuration of snd 17.0:";;
    esac
   cat <<\_ACEOF
 
@@ -1496,7 +1496,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-snd configure 16.9
+snd configure 17.0
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1957,7 +1957,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by snd $as_me 16.9, which was
+It was created by snd $as_me 17.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3304,7 +3304,7 @@ LOCAL_LANGUAGE="None"
 GRAPHICS_TOOLKIT="None"
 
 PACKAGE=Snd
-VERSION=16.9
+VERSION=17.0
 
 #--------------------------------------------------------------------------------
 # configuration options
@@ -6691,7 +6691,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by snd $as_me 16.9, which was
+This file was extended by snd $as_me 17.0, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -6753,7 +6753,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-snd config.status 16.9
+snd config.status 17.0
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index 7544ef9..3b70129 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5,7 +5,7 @@
 #   gmp, mpfr, and mpc deliberately have none!
 
 
-AC_INIT(snd, 16.9, bil at ccrma.stanford.edu, ftp://ccrma-ftp.stanford.edu/pub/Lisp/snd-16.tar.gz)
+AC_INIT(snd, 17.0, bil at ccrma.stanford.edu, ftp://ccrma-ftp.stanford.edu/pub/Lisp/snd-17.tar.gz)
 
 AC_CONFIG_SRCDIR(snd.c)
 AC_CANONICAL_HOST # needed by case $host below
@@ -24,7 +24,7 @@ LOCAL_LANGUAGE="None"
 GRAPHICS_TOOLKIT="None"
 
 PACKAGE=Snd
-VERSION=16.9
+VERSION=17.0
 
 #--------------------------------------------------------------------------------
 # configuration options
diff --git a/dlocsig.html b/dlocsig.html
new file mode 100644
index 0000000..cd124ad
--- /dev/null
+++ b/dlocsig.html
@@ -0,0 +1,705 @@
+<!DOCTYPE html>
+
+<html>
+<head>
+<title>"dlocsig" dynamic spatial location unit generator</title>
+</head>
+
+<body bgcolor="#ffffff">
+
+<p><table width="100%" bgcolor="#e0e0e0"><tr><td>
+<!-- <img src="/CCRMA/Images/LogoM.gif" border=0 alt="CCRMA"> -->
+<h1><a href="dlocsig.lisp">dlocsig</a>: a dynamic spatial location unit generator for CLM-2</h1></table></p>
+
+<p><font size="-1">by <a href="http://www-ccrma.stanford.edu/~nando/">Fernando Lopez-Lezcano</a>, <a href="mailto:nando at ccrma.stanford.edu">nando at ccrma.stanford.edu</a></font>
+
+<p><a href="dlocsig.lisp">dlocsig.lisp</a> is a unit generator that dynamically moves a sound source in 2d or 3d space and can be used as a replacement for the standard <em>locsig</em> in new or existing CLM instruments (this is a new and much improved version of the old dlocsig). </p>
+
+<p><em><strong>Caveat:</strong> this version of dlocsig only works in clm-3!.</em></p>
+
+<p><em>dlocsig</em> can generate spatial positioning cues for any number of speakers which can be <a href="#arrange-speakers">arbitrarily arranged</a> in 2d or 3d space. There are two speaker arrangements for each possible number of speakers, one in 2d and another in 3d space. The number of output channels of the current output stream (usually defined by the <em>:channels</em> keyword in the enclosing <em>with-sound</em>) and the value of <a href="#dlocsig-3d">dlocsig-3d</a> will determine which speaker arrangement is used. In pieces which can be recompiled from scratch this feature allows the composer to easily create several renditions of the same piece, each one optimized for a particular number, spatial configuration of speakers and rendering technique. Each user-defined speaker arrangement can also include fixed delays for some or all speakers and can map each speaker to an arbitrary output channel. </p>
+
+<p><em>dlocsig</em> can render the output soundfile with different techniques. The default is to use plain vanilla amplitude panning between adyacent speakers (between two speakers in 2d space or three speaker groups in 3d space). <em>dlocsig</em> can also create an <a href="http://www.york.ac.uk/inst/mustech/3d_audio/ambison.htm">Ambisonics</a> encoded four channel output soundfile suitable for feeding into an appropriate decoder for multiple speaker reproduction. Or it can decode the Ambisonics encoded information to an arbitrary number of output channels if the speaker configuration is known in advance. In the (near?) future <em>dlocsig</em> will also be able to render to stereo soundfiles with hrtf generated cues for heaphone or speaker listening environments. In all cases doppler shift is also generated as well as amplitude scaling due to distance with user-defined exponents and ratio of direct to reverberated sound. </p>
+
+<p>The movement of sound sources is described through <em>paths</em>. These are CLOS (Common Lisp Object System) objects that hold the information needed by <em>dlocsig</em> to move the source in space and are independent of the unit generator itself. Paths can be reused across many calls to <em>dlocsig</em> and can be translated, scaled and rotated in space as needed. There are several ways to describe a path in space. Bezier paths are described by a set of discrete points in 2d or 3d space that are latter joined by smoothly curved bezier segments. This description is very compact and easy to specify. A few points can describe a complex trajectory in 3d space. Paths can also be specified in geometric terms and one such implementation (spirals) is currently provided (more to come). </p>
+
+<p>The <em>dlocsig</em> unit generator uses the same interface as all other CLM unit generators. <em>make-dlocsig</em> creates a structure for a given path and returns (as multiple values) the structure and the beginning and ending samples of the note. <em>dlocsig</em> is the macro that gets compiled inside the run loop and localizes the samples in space. </p>
+
+<h2>Contents</h2>
+
+<dl>
+<dt>Source code: <a href="dlocsig.lisp">dlocsig.lisp</a>
+<dt><a href="#rendering">Rendering techniques</a>
+<dt><a href="#global-params">Global parameters</a>
+<dt><a href="#speaker-config">Speaker configuration</a>
+<dt><a href="#paths">Paths</a>
+  <dd><a href="#bezier-paths">Bezier paths</a>
+  <dd><a href="#geometric-paths">Geometric paths</a>
+  <dd><a href="#transformations">Transformations</a>
+  <dd><a href="#visualization">Visualization</a>
+<dt><a href="#dlocsig-ug">Dlocsig (the unit generator)</a>
+<dt><a href="#dlocsig-examples">Examples</a>
+</dl>
+
+<p><table width="100%" cellpadding="5">
+
+<tr valign="top"><td bgcolor="#e0e0e0" colspan="2">
+<a name="global-params"><font size="+2">Rendering techniques</font></a>
+</td>
+<tr><td bgcolor="#e0e0e0" width="20%"></td>
+
+<td>
+<p>Several different techniques can be selected to render the output samples. Each one has advantages and disadvantages and there's no reason not to mix them in a piece. The value of the special variable <a href="#dlocsig-render-using"><font color="b01010">dlocsig-render-using</font></a> or the <a href="#render-using"><font color="b01010">render-using</font></a> <em>make-dlocsig</em> parameter defines which one is used:</p>
+
+<dl>
+
+<dt><strong>amplitude-panning</strong> [1]
+<dd><p>Generates amplitude panning between adyacent speakers. In two-dimensional speaker configurations panning is done between adyacent speakers. Three-dimensional speaker configurations split space in non-overlapping triangles with vertices at the speaker positions. Panning is done within each three speaker group. Transitions between two or three speaker groups define new breakpoints in the trajectory so that the proper speakers reache zero amplitude when transitioning between groups. </p>
+
+<dt><strong>b-format-ambisonics</strong> [2]
+<dd><p>Generates a four channel first order b-format encoded soundfile (an error will be generated if the current output stream is not four channels). The Ambisonics b-format has four discrete channels with information encoded as follows:</p>
+
+<table border>
+<tr><td><strong>W</strong></td><td>(* signal 0.707) (omnidirectional component)</td>
+<tr><td><strong>X</strong></td><td>(* signal (cos A)(cos B))</td>
+<tr><td><strong>Y</strong></td><td>(* signal (sin A)(cos B))</td>
+<tr><td><strong>Z</strong></td><td>(* signal (sin B))</td>
+</table>
+
+<p>A is the counter-clockwise angle of rotation from the front center and B is the angle of elevation above the horizontal plane. Note that our coordinate system is different. The <strong>X</strong> component is in the direction of our y axis (positive values in front of the listener) and the <strong>Y</strong> component is in the direction of our -x axis (to the left of the listener). </p>
+
+<dt><strong>decoded-ambisonics</strong> [3]
+<dd><p>The Ambisonics encoded information is decoded to an arbitrary number of speakers as defined by the currently selected speaker configuration. The decoded channels have higher amplitudes than the equivalent amplitude panning rendering, <a href="#dlocsig-ambisonics-scaler"><font color="b01010">dlocsig-ambisonics-scaler</font></a> is used to (approximately) equalize the amplitude. The default value is a quite arbitrary (but seems to do the trick) 0.707. </p>
+
+<dt><strong>stereo-hrtf</strong> [4]
+<dd><p>Not implemented yet... </p>
+
+
+<tr valign="top"><td bgcolor="#e0e0e0" colspan="2">
+<a name="global-params"><font size="+2">Global parameters</font></a>
+</td>
+
+<tr><td bgcolor="#e0e0e0" width="20%"></td>
+
+<td>
+
+<p>The following parameters are global bindings (special variables) that control the global behavior of dlocsig:</p>
+
+<p><table>
+
+<tr valign=top>
+<td><a name="dlocsig-one-turn"><font color="b01010">dlocsig-one-turn</font></a><br>[number]<br>360</td>
+<td><p>A number that defines the units used to represent angles. By default angles are measured in degrees. Change the variable to represent one turn in the units of interest (for example, setting it to 1.0 will represent angles in turns). </p></td>
+
+<tr valign=top>
+<td><a name="dlocsig-speed-of-sound"><font color="b01010">dlocsig-speed-of-sound</font></a><br>[number]<br>344</td>
+<td><p>A number that defines the units used to represent distances through the value of the speed of sound. The default measures distances in meters. Change the variable to represent the speed of sound in the desired units (ie: <tt>(setf dlocsig-speed-of-sound 1128)</tt> will enable you to measure all distances in feet). </p>
+
+<tr valign=top>
+<td><a name="dlocsig-3d"><font color="b01010">dlocsig-3d</font></a><br>[t|nil]<br>nil</td>
+<td><p>A boolean value that defines what speaker configuration will be used for a given number of channels. Speakers can be arranged in two or three-dimensional patterns. Together with the number of channels of the current output stream <em>dlocsig-3d</em> is used to select a configuration. </p>
+
+<tr valign=top>
+<td><a name="path-3d"><font color="b01010">path-3d</font></a><br>[t|nil]<br>t</td>
+<td><p>A boolean value that defines how bezier paths are going to be parsed. </p>
+
+<tr valign=top>
+<td><a name="dlocsig-render-using"><font color="b01010">dlocsig-render-using</font></a><br>[num]<br>1</td>
+<td><p>A number selected from predefined constants that defines which rendering technique will be used. The default is <strong>amplitude-panning</strong>. Currently available rendering technique constants are: <strong>amplitude-panning</strong>, <strong>b-format-ambisonics</strong>, <strong>decoded-ambisonics</strong></p>
+
+</table>
+
+</td>
+
+<tr valign="top"><td bgcolor="#e0e0e0" colspan="2">
+<a name="speaker-config"><font size="+2">Speaker configuration</font></a>
+</td>
+
+<tr><td bgcolor="#e0e0e0" width="20%"></td>
+
+<td>
+
+<p>The following functions are used to arrange speaker configurations in 2 or 3d space. <a href="#arrange-speakers">arrange-speakers</a> creates a new configuration for a given number of speakers. The configuration includes the position of the speakers in space, optional delays for some or all speakers and a mapping from speakers to output channels. The configurations are stored in <a href="#dlocsig-speaker-configs">dlocsig-speaker-configs</a>, a special variable that holds a bidimensional array. The first index of the array has dimension 2 and is used to differenciate between 2d and 3d configurations (a given number of speakers can be arranged both in 2d or 3d patterns). The second index is by default of dimension 9 and represent the number of speakers of a given configuration. <a href="#set-speaker-configuration">set-speaker-configuration</a> and <a href="#get-speaker-configuration">get-speaker-configuration</a> can be used to store and retrieve a configuration. </p>
+
+<p><table>         
+<tr><td bgcolor="#e0e0e0"><a name="arrange-speakers"><strong>arrange-speakers</strong></a></td><td> &optional-key
+<tr><td></td><td>(speakers '())<br>
+                 (groups '())<br>
+                 (distances '())<br>
+                 (delays '())<br>
+                 (map '())<br>
+</table></p>
+
+<p><em>arrange-speakers</em> returns a speaker configuration structure for a particular number of speakers and associated output channels. It defines the location of all speakers in two or three dimensional space, groups the speakers for panning purposes and optionally adds fixed delays to some speakers and maps individual speakers to output channels. </p>
+
+<p><table>
+
+<tr valign=top>
+<td><a name="speakers"><font color="b01010">speakers</font></a><br>[list]</td>
+<td><p>A list that specifies the location of all speakers in space containing either: sub-lists with azimut and elevation angles (for three dimensional speaker distributions) or just numbers that represent azimut angles (for two dimensional speaker distributions). </p></td>
+
+<tr valign=top>
+<td><a name="groups"><font color="b01010">groups</font></a><br>[list]</td>
+<td><p>A list of lists that describes the grouping of speakers for the purposes of amplitude panning (the signal will be panned between speakers that belong to the same group). Each group can be composed of either two or three speakers and all groups for a given speaker configuration have to have the same length. This parameter <strong>can</strong> be ommited if the speakers are arranged in a two dimensional configuration (and thus have no elevation angles). Each speaker in a group is represented by an integer that is the zero based index of the speaker in the previously defined <a href="#speakers"><font color="b01010">speakers</font></a> list. This is the definition for a simple two dimensional grouping of four speakers:</p>
+
+<table bgcolor="e0e0e0" width=100%><tr><td><pre><font color="101080">
+(arrange-speakers :speakers '((-45 0)(45 0)(135 0)(225 0))
+                  :groups '((0 1)(1 2)(2 3)(3 0)))
+</pre></font></table>
+
+<p>The elevation angles and the group information can be ommited in this case:</p>
+
+<table bgcolor="e0e0e0" width=100%><tr><td><pre><font color="101080">
+(arrange-speakers :speakers '(-45 45 135 225))
+</pre></font></table>
+
+<p>This is another example where the same four speakers are rearranged in a 3d pattern:</p>
+
+<table bgcolor="e0e0e0" width=100%><tr><td><pre><font color="101080">
+(arrange-speakers :speakers '((1 -60 0)(1 60 0)(1 180 0)(1 0 90))
+                  :groups '((0 1 3)(1 2 3)(2 0 3)
+                            ;; floor
+                            (0 1 2)))
+</pre></font></table>
+
+<p>All angles are measured by default in degrees, 0 degrees is right in front of the listener and angles increment clockwise. The unit used to represent angles can be changed by setting <a href="#dlocsig-one-turn">dlocsig-one-turn</a> to the number that represents one turn in the desired unit (ie: <tt>(setf dlocsig-one-turn 1)</tt> will enable you to express all angles in fractions of a turn). </p></td>
+
+<tr valign=top>
+<td><a name="distances"><font color="b01010">distances</font></a><br>[list]</td>
+<td><p>A list of relative distances between the listener and all speakers. This parameter can be used to specify relative fixed delays between speakers to compensate for arrangements where not all speakers are equidistant from the listener. Distances are measured in meters by default. This example configuration will add 14.5mSeconds of delay (5 meters at 344m/s) to the two back channels of a four speaker configuration:</p>
+
+<table bgcolor="e0e0e0" width=100%><tr><td><pre><font color="101080">
+(arrange-speakers :speakers '(-45 45 135 225)
+                  :distances '(0 0 5 5)
+</pre></font></table>
+
+<p>The unit used to represent distances can be changed by setting <a href="#dlocsig-speed-of-sound">dlocsig-speed-of-sound</a> to a number that represents the speed of sound in the desired unit (ie: <tt>(setf dlocsig-speed-of-sound 1128)</tt> will enable you to express all distances in feet). Delays can also be specified directly by using the <a href="#delays"><font color="b01010">delays</font></a> keyword. </p></td>
+
+<tr valign=top>
+<td><a name="delays"><font color="b01010">delays</font></a><br>[list]</td>
+<td><p>A list of relative delays of all speakers. Delays are specified in seconds and must be zero or positive. A fixed delay line of the appropriate length is inserted on all channels that have a non-zero delay. </p></td>
+
+<tr valign=top>
+<td><a name="map"><font color="b01010">map</font></a><br>[list]</td>
+<td><p>A list that maps the speakers to output channels. Each number of the list defines the zero-based output channel where that speaker will be sent. The following configuration of four speakers will generate a soundfile where left front and back speakers have even channel numbers and right front and back speakers have odd channel numbers:</p>
+
+<table bgcolor="e0e0e0" width=100%><tr><td><pre><font color="101080">
+(arrange-speakers :speakers '(-45 45 135 225)
+                  :map '(0 1 3 2)
+</pre></font></table>
+
+</td>
+</table>
+
+<p><table>
+<tr><td bgcolor="#e0e0e0"><a name="set-speaker-configuration"><strong>set-speaker-configuration</strong></a></td>
+<td> <em>config</em>
+</table></p>
+
+<p><em>set-speaker-configuration</em> sets a speaker configuration for a particular number of output channels. The argument <em>config</em> must be a configuration structure created by <a href="#arrange-speakers"><font color="b01010">arrange-speakers</font></a>. The configuration will be stored at the appropriate index in the global configuration array depending on the number of speakers it defines. This example will store a new configuration in the slot corresponding to four output channels:</p>
+
+<table bgcolor="e0e0e0" width=100%><tr><td><pre><font color="101080">
+(set-speaker-configuration (arrange-speakers :speakers '(-45 45 135 225)
+                                             :map '(0 1 3 2)
+</pre></font></table>
+
+<p><table>
+<tr><td bgcolor="#e0e0e0"><a name="get-speaker-configuration"><strong><strong>get-speaker-configuration</strong></a></td>
+<td> <em>channels</em>
+</table></p>
+
+<p><em>get-speaker-configuration</em> retrieves a speaker configuration definition from the global configuration array. The returned configuration will have the number of channels specified by <em>channels</em> and will be either two or three dimensional depending on the value of <a href="#dlocsig-3d"><font color="b01010">dlocsig-3d</font></a>. <a href="#make-dlocsig">make-dlocsig</a> uses this function to retrieve the configuration that matches the number of channels of the enveloping with-sound. </p>
+
+</td>
+</tr>
+
+<tr valign="top"><td bgcolor="#e0e0e0" colspan="2">
+<p><a name="paths"><font size="+2">Paths</font></a></p>
+</td>
+
+<tr><td></td>
+<td>
+
+<p>Paths are used to describe the trajectory of the moving sound source in space. </p>
+
+<p><table width="100%">
+<tr><td bgcolor="#e0e0e0"><a name="bezier-paths"><strong>Bezier paths</strong></a></td></tr>
+</table>
+
+<table width="100%"><tr valign="top"><td><p>Bezier paths are defined by a list of points in 2d or 3d space that the sound source will move through. The bezier path classes will create a curved trajectory that passes through all the specified points and is composed of bezier segments, one segment for each two points in the original description of the path.</p>
+
+<p>The trajectory pictured on the right was created by evaluating the following lisp code:</p>
+
+<table bgcolor="e0e0e0" width=100%><tr><td><pre><font color="101080">
+(make-path 
+ '((-10 10 0 1)(0 5 0 0)(10 10 5 1.5)))
+</pre></font></table>
+
+<p>All the intermediate points that create the smooth trajectory were rendered from the bezier segments fitted by <em>make-path</em> to the three supplied points. </p>
+</td>
+
+<td><img src="pix/fig1.png"></td>
+
+<tr valign="top">
+<td><img src="pix/fig2.png"></td>
+<td><p>The fourth optional parameter controls the relative velocity of the movement. In our example the sound source slows down to zero velocity on the second point and reaches the third point at 1.5 times the speed it started it. </p>
+
+<p>These are the corresponding graphs of average velocity, acceleration and doppler shift for each segment of the trajectory. </p>
+
+</table>
+
+<p>This rendition of the trajectory in terms of a smooth curve is necessary for a perceptually convincing rendition of the doppler frequency effect. A trajectory composed of straigh lines connecting the points would imply a sudden change of the velocity vector at each inflection point. Any such change in the radial velocity component will produce a sudden jump in doppler shift which will translate perceptually in a jump in pitch instead of a jump in doppler shift. This is one way in which the illusion of a moving sound source can be easily destroyed. </p>
+
+<p><table>
+<tr><td bgcolor="#e0e0e0"><a name="make-path"><strong>make-path</strong></a></td><td> &optional-key
+<tr><td></td><td>(3d path-3d)<br>
+                 (path '())<br>
+                 (polar nil)<br>
+                 (closed nil)<br>
+                 (curvature nil)<br>
+                 (error 0.01)<br>
+                 (initial-direction '())<br>
+                 (final-direction '())<br>
+</table></p>
+
+<p><em>make-path</em> returns a bezier path object that can be used as an argument to the <em>make-dlocsig</em> unit generator creation function. </p>
+
+<p><table>
+
+<tr valign=top>
+<td><a name="bezier-3d"><font color="b01010">3d</font></a><br>[t|nil]</td>
+<td><p>Defines how the <a href="#bezier-path"><font color="b01010">path</font></a> parameter will be parsed. If <em>t</em> the path will be interpreted as containing points in 3d space. If <em>nil</em> it will be interpreted as containing 2d points. The default for <em>3d</em> is defined by the <a href="#path-3d">path-3d</a> special variable (normally <em>t</em>. </p>
+
+<tr valign=top>
+<td><a name="bezier-path"><font color="b01010">path</font></a><br>[list]</td>
+<td><p>A list that contains the points in 2d or 3d space the sound source will have to move through and the optional relative velocity of the source at each of those points. Points can be defined in cartesian (the default) or <a href="#bezier-polar"><font color="b01010">polar</font></a> coordinates. To be rendered as a set of bezier segments the path description has to contain at least three points (four points if the path is <a href="#bezier-closed"><font color="b01010">closed</font></a>). Paths with only two points will be rendered as a straight line. Paths with only one point define stationary sound sources. </p>
+
+<p>These are the recognized formats for each point if the components of <a href="#bezier-path"><font color="b01010">path</font></a> are lists and <a href="#bezier-3d"><font color="b01010">3d</font></a> is <em>t</em>: </p>
+
+<dl>
+
+<dt><strong>(x y z v)</strong>
+<dd>x, y, z are the coordinates of the point, v is a relative velocity value
+
+<dt><strong>(x y z)</strong>
+<dd>x, y, z are the coordinates of the point, velocity is <em>nil</em>
+
+<dt><strong>(x y) </strong>
+<dd>x and y are the coordinates of the point, z is 0.0 and velocity is <em>nil</em>
+
+</dl>
+
+<p>If <a href="#bezier-3d"><font color="b01010">3d</font></a> is <em>nil</em>:</p>
+
+<dl>
+
+<dt><strong>(x y v)</strong>
+<dd>x, y are the coordinates, z is 0.0 and v is a relative velocity value
+
+<dt><strong>(x y) </strong>
+<dd>x and y are the coordinates, z is 0.0 and velocity is <em>nil</em>
+
+</dl>
+
+<p>This will move the sound source from left to the right and up and the source's velocity will be zero right in front of the listener's position:</p>
+
+<pre>  (make-path :path '((-10 10 0 1)(0 5 0 0)(10 10 10 1)))</pre>
+
+<tr valign=top>
+<td><a name="bezier-polar"><font color="b01010">polar</font></a><br>[nil|t]</td>
+<td><p>If <em>polar</em> is <em>t</em> <a href="#bezier-path"><font color="b01010">path</font></a> will be interpreted as a list of points in polar coordinates. The formats recognized are the same except the first coordinate is the distance from the source to the listener, the second is the azimut angle and the third (and optional) is the elevation angle. </p>
+
+<tr valign=top>
+<td><a name="bezier-closed"><font color="b01010">closed</font></a><br>[nil|t]</td>
+<td><p>Defines a path as closed. The first and last points of a closed path have to have the same coordinates. Because of limitations in the bezier curve fitting algorithm closed paths have to have at least 4 points. </p>
+
+
+<tr valign=top>
+<td><a name="bezier-curvature"><font color="b01010">curvature</font></a><br>[number|list]</td>
+<td><p>The curvature parameter can be used to affect the transitions between consecutive bezier segments. The default value of 1.0 does not change the fitted value of the bezier segment control points. Values above 1.0 will result in more open transitions between segments. Values below 1.0 will create faster transitions between bezier segments. <em>curvature</em> can be a number in which case it will affect all transitions or it can be a list with one component for each pair of points in the trajectory. In this case each component can be a number (both ends of the segment will have the same curvature) or a list with two numbers (each end of the segment can have a different curvature). </p>
+
+<p>The figure on the left was created by <tt>(make-path '((-10 10)(0 5)(10 10)) :curvature '(0.4 1))</tt>. The first segment of the trajectory changes direction more abruptly than the second that uses the default of 1 for the parameter. The second was created by <tt>(make-path '((-10 10)(0 5)(10 10)) :curvature 0.4)</tt>, now both segments share the same curvature. </p>
+
+<p><table cellpadding="5"><tr>
+<td><img src="pix/c0.png"><br><br>:curvature '(0.4 1)</td>
+<td><img src="pix/c1.png"><br><br>:curvature 0.4</td>
+</table></p>
+
+<tr valign=top>
+<td><a name="bezier-error"><font color="b01010">error</font></a><br>[number]</td>
+<td><p>The bezier curves that represent the trajectory are rendered into a straight line representation. This parameter defines the maximum error allowed between the ideal bezier curve and the midpoint of each rendered linear segment. </p>
+
+<p>The following figures illustrate the effect of the <a href="#bezier-error">error</a> parameter. All figures represent the same path in 2d space <tt>'((-10 10)(0 5)(10 10))</tt>. The one on the left was created with <tt>(make-path '((-10 10)(0 5)(10 10)) :error 3)</tt>. The error bound is so large that no points are actually interpolated between the three supplied points (even though internally the bezier curve control points were calculated). The one on the center was created with <tt>(make-path '((-10 10)(0 5)(10 10)) :error 0.3)</tt>. Two intermediate points are calculated between each of the three supplied points. The one on the right was created with <tt>(make-path '((-10 10)(0 5)(10 10)) :error 0.01)</tt> and closely approaches the ideal bezier curve. </p>
+
+<p><table cellpadding="5"><tr>
+<td><img src="pix/e0.png"><br><br>:error 3</td>
+<td><img src="pix/e1.png"><br><br>:error 0.3</td>
+<td><img src="pix/e2.png"><br><br>:error 0.01</td>
+</table></p>
+
+<tr valign=top>
+<td><a name="initial-direction"><font color="b01010">initial-direction</font></a><br>[list]</td>
+<td><p>If the path is not closed this list defines the initial direction of the movement. The list specifies the direction as a vector expressed in x, y, z coordinates. </p></td>
+
+<tr valign=top>
+<td><a name="final-direction"><font color="b01010">final-direction</font></a><br>[list]</td>
+<td><p>If the path is not closed this list defines the final direction of the movement. The list specifies the direction as a vector expressed in x, y, z coordinates. </p></td>
+
+</table>
+
+<p><table>
+<tr><td bgcolor="#e0e0e0"><a name="make-polar-path"><strong>make-polar-path</strong></a></td><td> &optional-key
+<tr><td></td><td>(3d path-3d)<br>
+                 (path '())<br>
+                 (closed nil)<br>
+                 (curvature nil)<br>
+                 (error 0.01)<br>
+                 (initial-direction '())<br>
+                 (final-direction '())<br>
+</table></p>
+
+<p><em>make-polar-path</em> returns a bezier path object that can be used as an argument to the <em>make-dlocsig</em> unit generator creation function. It will automatically parse the trajectory points as being represented in polar coordinates. </p>
+
+<p><table>
+<tr><td bgcolor="#e0e0e0"><a name="make-closed-path"><strong>make-closed-path</strong></a></td><td> &optional-key
+<tr><td></td><td>(3d path-3d)<br>
+                 (path '())<br>
+                 (polar nil)<br>
+                 (curvature nil)<br>
+                 (error 0.01)<br>
+                 (initial-direction '())<br>
+                 (final-direction '())<br>
+</table></p>
+
+<p><em>make-polar-path</em> returns a bezier path object that can be used as an argument to the <em>make-dlocsig</em> unit generator creation function. It will create a closed path. </p>
+
+<p><table width="100%">
+<tr><td bgcolor="#e0e0e0"><a name="geometric-paths"><strong>Geometric paths</strong></a></td></tr>
+</table>
+
+<p>Geometric paths are defined by a description of the path in terms of geometry. For now only one type of geometric path has been defined as an extension to 3d of the old spiral-path of the old dlocsig implementation. </p>
+
+<p><table>
+<tr><td bgcolor="#e0e0e0"><a name="make-spiral-path"><strong>make-spiral-path</strong></a></td><td> &optional-key
+<tr><td></td><td>(start-angle 0d0)<br>
+                 (total-angle nil)<br>
+                 (step-angle (/ <a href="#dlocsig-one-turn">dlocsig-one-turn</a> 100))<br>
+                 (turns nil)<br>
+                 (distance '(0 10 1 10))<br>
+                 (height '(0 0 1 0))<br>
+                 (velocity '(0 1 1 1))<br>
+</table></p>
+
+<p><em>make-spiral-path</em> returns a spiral trajectory centered around the listener's position. </p>
+
+<p><table>
+
+<tr valign=top>
+<td><a name="start-angle"><font color="b01010">start-angle</font></a><br>[number]</td>
+<td><p>The start angle for the spiral. </p></td>
+
+<tr valign=top>
+<td><a name="total-angle"><font color="b01010">total-angle</font></a><br>[number]</td>
+<td><p>The total angle for the spiral. </p></td>
+
+<tr valign=top>
+<td><a name="step-angle"><font color="b01010">step-angle</font></a><br>[number]</td>
+<td><p>The step angle that will be used to render the spiral. The default is 1/100 of a turn. </p></td>
+
+<tr valign=top>
+<td><a name="turns"><font color="b01010">turns</font></a><br>[number]</td>
+<td><p>An alternative way of specifying the total angle comprised by the spiral. Mutually exclusive with <a href="#total-angle"><font color="b01010">total-angle</font></a></p></td>
+
+<tr valign=top>
+<td><a name="distance"><font color="b01010">distance</font></a><br>[envelope]</td>
+<td><p>Distance from the source to xy = 0,0 expressed as an envelope. </p></td>
+
+<tr valign=top>
+<td><a name="height"><font color="b01010">height</font></a><br>[envelope]</td>
+<td><p>Height of the source expressed as an envelope. </p></td>
+
+<tr valign=top>
+<td><a name="velocity"><font color="b01010">velocity</font></a><br>[envelope]</td>
+<td><p>Relative velocity of the source expressed as an envelope. </p></td>
+
+</table></p>
+
+<p><table width="100%">
+<tr><td bgcolor="#e0e0e0"><a name="transformations"><strong>Path transformations</strong></a></td></tr>
+</table>
+
+<p>Not written yet...</p>
+
+<p><table width="100%">
+<tr><td bgcolor="#e0e0e0"><a name="visualization"><strong>Path visualization</strong></a></td></tr>
+</table>
+
+<p>Ahem, there is no graphical path editor... yet. If your system includes the <em>gnuplot</em> utility you can use the following functions to graphically visualize the path and its properties. </p>
+
+<p><table>
+<tr><td bgcolor="#e0e0e0"><a name="plot"><strong>plot</strong></a></td><td> path
+</table></p>
+
+<p>This will plot two views, one containing the trajectory and the other containing overlapping plots of the velocity, acceleration and doppler shift of the moving sound source. </p>
+
+<p><table>
+<tr><td bgcolor="#e0e0e0"><a name="plot-trajectory"><strong>plot-trajectory</strong></a></td><td> path
+</table></p>
+
+<p>Plots the trajectory of the moving sound source. </p>
+
+<p><table>
+<tr><td bgcolor="#e0e0e0"><a name="plot-velocity"><strong>plot-velocity</strong></a></td><td> path
+</table></p>
+
+<p>Plots the velocity of the moving sound source. </p>
+
+<p><table>
+<tr><td bgcolor="#e0e0e0"><a name="plot-acceleration"><strong>plot-acceleration</strong></a></td><td> path
+</table></p>
+
+<p>Plots the acceleration of the moving sound source. </p>
+
+<p><table>
+<tr><td bgcolor="#e0e0e0"><a name="plot-doppler"><strong>plot-doppler</strong></a></td><td> path
+</table></p>
+
+<p>Plots the doppler shift of the moving sound source. </p>
+
+</td>
+</tr>
+
+<tr valign="top"><td bgcolor="#e0e0e0" colspan="2">
+<p><a name="dlocsig-ug"><font size="+2">DLOCSIG</font></a></p>
+</td>
+
+<tr><td></td>
+<td>
+
+<p><table>         
+<tr><td bgcolor="#e0e0e0"><strong>make-dlocsig</strong></td><td> &optional-key<br>
+<tr><td></td><td>(start-time nil)<br>
+                 (duration nil)<br>
+                 (path dlocsig-path)<br>
+                 (scaler dlocsig-scaler)<br>
+                 (direct-power dlocsig-direct-power)<br>
+                 (reverb-power dlocsig-reverb-power)<br>
+                 (inside-radius dlocsig-inside-radius)<br>
+                 (inside-direct-power dlocsig-inside-direct-power)<br>
+                 (inside-reverb-power dlocsig-inside-reverb-power)<br>
+                 (reverb-amount dlocsig-reverb-amount)<br>
+                 (initial-delay dlocsig-initial-delay)<br>
+                 (unity-gain-dist dlocsig-unity-gain-dist)<br>
+                 (minimum-segment-size dlocsig-minimum-segment-size)<br>
+                 (render-using dlocsig-render-using)<br>
+
+</table></p>
+
+<p><em>make-dlocsig</em> creates a dlocsig structure that can be used as parameter to <em>dlocsig</em> in the Run loop. It returns three values, the first one the structure itself, the second the starting absolute sample in the output soundfile and the third the end sample in the output soundfile. A <em>multiple-value-bind</em> can be used to bind to all three values: </p>
+
+<table bgcolor="e0e0e0" width=100%><tr><td><pre><font color="101080">
+(multiple-value-bind (<font color="000000">dloc beg end</font>)
+    (<font color="000000">make-dlocsig</font> :start-time start-time
+                  :duration duration
+                  :path path)
+...
+    (run
+      (loop for i from <font color="000000">beg</font> below <font color="000000">end</font> do
+        (<font color="000000">dlocsig dloc</font> i sample)))
+</pre></font></table>
+
+<p>All default values are asigned to special variables named <font color="b01010">dlocsig-xxx</font>, where <font color="b01010">xxx</font> stands for the name of the parameter. This enables calls to the instrument to be surrounded by let statements so that local bindings can be established for default parameters. In the following example the first two notes are rendered using amplitude panning between speakers (if the default has not been changed before) and the second two are rendered using ambisonics because they are within the enclosing let that rebinds the special variable dlocsig-render-using:</p>
+
+<table bgcolor="e0e0e0" width=100%><tr><td><pre><font color="101080">
+(with-sound(:channels 8)
+  (some-instrument 0 1 440 0.1)
+  (another-instrument 2.33 0.4 880 0.18)
+  (let* ((dlocsig-render-using decoded-ambisonics))
+    (some-instrument 2 2.5 1000 0.07)
+    (some-instrument 4 2.2 1002 0.05)))
+</pre></font></table>
+
+
+<font size="-1">
+<dl>
+<dt><a href="#dlocsig-reqparms">Required parameters</a>
+<dd><a href="#start-time"><font color="b01010">start-time</font></a>, <a href="#duration"><font color="b01010">duration</font></a>, <a href="#path"><font color="b01010">path</font></a>
+<dt><a href="#dlocsig-keyparms">Optional parameters</a>
+<dd><a href="#scaler"><font color="b01010">scaler</font></a>, <a href="#direct-power"><font color="b01010">direct-power</font></a>, <a href="#reverb-power"><font color="b01010">reverb-power</font></a>, <a href="#inside-radius"><font color="b01010">inside-radius</font></a>, <a href="#inside-direct-power"><font color="b01010">inside-direct-power</font></a>, <a href="#inside-reverb-power"><font color="b01010">inside-reverb-power</font></a>, <a href="#reverb-amount"><font color="b01010">reverb-amount</font></a>, <a href="#initial-delay"><font color="b01010">initial-delay</font></a>, <a href="#unity-gain-distance"><font color="b01010">unity-gain-distance</font></a>, <a href="#minimum-segment-size"><font color="b01010">minimum-segment-size</font></a>, <a href="#render-using"><font color="b01010">render-using</font></a>
+</dl>
+</font>
+
+<p><table>
+
+<tr valign=top><td><a name="start-time"><font color="b01010">start-time</font></a><br>[num]</td>
+<td>Start time of the note in the output soundfile. <p></td>
+
+<tr valign=top><td><a name="duration"><font color="b01010">duration</font></a><br>[num]</td>
+<td><p>Duration of the note. Actually this is <em>not</em> going to be the real duration of the note. This is the duration of the note at the moving source's position. Depending on the net change of distance from the source to the listener the actual duration of the note can be shorter (ending distance is less than starting distance) or longer (ending distance longer than starting distance). The doppler effect due to radial movement of the source translates into a sample rate change of the source which directly leads to the change in duration. The actual duration of the note is returned (indirectly) through the second and third values returned by <em>make-dlocsig</em>. Those numbers (absolute starting and ending samples of the note) should be used to control the main iteration loop inside the run macro. </p></td>
+
+<tr valign=top><td><a name="path"><font color="b01010">path</font></a><br>[path]</td>
+<td><p>A <a href="#paths">path object</a> that describes the movement of the sound source in space. </p></td>
+
+<tr valign=top><td><a name="scaler"><font color="b01010">scaler</font></a>
+<br>[num]<br>1.0</td>
+
+<td><p>Overall amplitude scaler. This number scales the gain envelopes for all output and reverb channels. </p></td>
+
+<tr valign=top><td><a name="direct-power"><font color="b01010">direct-power</font></a>
+<br>[num]<br>1.5</td>
+<td><p>The amplitude of the sound normally decreases as <em>(/ dist)</em> where <em>dist</em> is the distance between the source and the listener. This number can alter the exponent of the denominator so that the law of change becomes <em>(/ (expt dist direct-power)</em>. Positive numbers will make the attenuation with distance increase faster than what would be normal. </p></td>
+
+<tr valign=top><td><a name="reverb-power"><font color="b01010">reverb-power</font></a>
+<br>[num]<br>0.5</td>
+<td><p>Defines how the amplitude of the signal sent to the reverberator output channels changes in amplitude with distance. </p></td>
+
+<tr valign=top><td><a name="inside-radius"><font color="b01010">inside-radius</font></a>
+<br>[num]<br>1.0</td>
+<td><p>Rendering cues are calculated differently when the sound source is inside the sphere delimited by <a href="#inside-radius"><font color="b01010">inside-radius</font></a> (ie: when the sound is somehow "inside" the head of the listener). The exact difference depends on the rendering method used but the general idea is that within that sphere all speakers emit signal which is proportional to the distance to the center of the sphere (the listener's position). </p></td>
+
+<tr valign=top><td><a name="inside-direct-power"><font color="b01010">inside-direct-power</font></a>
+<br>[num]<br>1.5</td>
+<td><p>Within the sphere delimited by <a href="#inside-radius"><font color="b01010">inside-radius</font></a> and when rendering to amplitude panning all speakers output signal proportional to the distance to the listeners position. </p></td>
+
+<tr valign=top><td><a name="inside-reverb-power"><font color="b01010">inside-reverb-power</font></a>
+<br>[num]<br>0.5</td>
+<td><p>This number controls the exponent of the attenuation curve for the revererated sound when inside the sphere delimited by <a href="#inside-radius"><font color="b01010">inside-radius</font></a>. </p></td>
+
+<tr valign=top><td><a name="reverb-amount"><font color="b01010">reverb-amount</font></a>
+<br>[num|env]<br>0.04</td>
+<td>How much signal is sent to the reverberator output channel. Can be a number or an envelope. </p></td>
+
+<tr valign=top><td><a name="initial-delay"><font color="b01010">initial-delay</font></a>
+<br>[t|nil]<br>nil</td>
+<td><p>If set to <em>nil</em> the minumum time delay between the source and the listener is substracted from the delay line. This will reduce but not necessarily eliminate the initial delay from the start of the note at the position of the source and the arrival of the sound at the listener's position. </p></td>
+
+<tr valign=top><td><a name="unity-gain-distance"><font color="b01010">unity-gain-distance</font></a>
+<br>[t|nil|num]<br>nil</td>
+<td><p>If a number is specified it represents the distance at which dlocsig processes the samples with unity gain. If set to <em>nil</em> the minimum distance between source and listener is used as the unity gain distance. If set to <em>t</em> no amplitude normalization is done and the attenuation will accurately represent the object's distance. </p></td>
+
+<tr valign=top><td><a name="minimum-segment-size"><font color="b01010">minimum-segment-size</font></a>
+<br>[num]<br>1.0</td>
+<td><p>Defines the minimum distance between segment breakpoints. If a segment is longer than this distance it is split into smaller segments until the condition is satisfied. Otherwise long segments would not properly render the attenuation versus distance curve (ie: it would be just a linear curve instead of the specified power curve). </p></td>
+
+<tr valign=top><td><a name="render-using"><font color="b01010">render-using</font></a>
+<br>[num]<br>1</td>
+<td><p>Defines the rendering technique used to generate the output samples. Acceptable values are the following predefined constants: <strong>amplitude-panning</strong> (1) for speaker group amplitude panning, <strong>b-format-ambisonics</strong> (2) for four channel ambisonics encoded output and <strong>decoded-ambisonics</strong> (3) for a multichannel decoding of the ambisonics components.  </p></td>
+
+</table>
+
+<p><table>         
+<tr><td bgcolor="#e0e0e0"><strong>dlocsig</strong></td><td> dloc i sample
+</table></p>
+
+<p>Localizes a sample and merges it into the output file at absolute sample number i. </p>
+
+<p><table>
+
+<tr valign=top><td><a name="dloc"><font color="b01010">dloc</font></a><br>[dlocs]</td>
+<td>dlocsig structure created with <a href="#make-dlocsig">make-dlocsig</a>. <p></td>
+
+<tr valign=top><td><a name="i"><font color="b01010">i</font></a><br>[integer]</td>
+<td><p>Absolute sample number in the output soundfile, normally the loop counter of the run loop. </p></td>
+
+<tr valign=top><td><a name="sample"><font color="b01010">sample</font></a><br>[sample]</td>
+<td><p>The sample to be localized. </p></td>
+
+</table>
+
+</td>
+</tr>
+
+<tr valign="top"><td bgcolor="#e0e0e0" colspan="2">
+<p><a name="dlocsig-examples"><font size="+2">Examples</font></a></p>
+</td>
+
+<tr><td></td>
+<td>
+
+<p>This is a very <a href="sinetest.ins">simple instrument</a> that dynamically moves a sine wave in space using dlocsig:</p>
+
+<table bgcolor="e0e0e0" width=100%><tr><td><pre><font color="101080">
+(definstrument sinewave (start-time duration freq amp 
+		         &key
+			 (amp-env '(0 1 1 1))
+			 (path (make-path :path '(-10 10 0 5 10 10))))
+  (multiple-value-bind (dloc beg end)
+      (make-dlocsig :start-time start-time
+		    :duration duration
+		    :path path)
+    (let* ((osc (make-oscil :frequency freq))
+	   (aenv (make-env :envelope amp-env :scaler amp)))
+      (run
+       (loop for i from beg below end do
+	 (dlocsig dloc i (* (env aenv)(oscil osc))))))))
+</pre></font></table>
+
+<p>Note how the starting and ending samples of the main loop in the run macro are provided by the second and third values returned by make-dlocsig. Other than that this a very simple example. This instrument can be called as follows (in a four channel environment): </p>
+
+<table bgcolor="e0e0e0" width=100%><tr><td><pre><font color="101080">
+(with-sound(:channels 4)
+  (sinetest 0 1 440 0.5 :path (make-path '((-10 10)(0 5)(10 10)))))
+</pre></font></table>
+
+<p>This will select the default 2d speaker configuration for four channels (if the default value of dlocsig-3d is not changed to t). The same instrument could be used to render a 3d soundfile for eight channels by calling it with the following parameters:</p>
+
+<table bgcolor="e0e0e0" width=100%><tr><td><pre><font color="101080">
+;; tell the system I want to use the 3d speaker configuration
+(setf dlocsig-3d t)
+;; render the sound with a 3d path
+(with-sound(:channels 8)
+  (sinetest 0 1 440 0.5 :path (make-path '((-10 10 0)(0 5 10)(10 10 5)))))
+</pre></font></table>
+
+<p>Existing instruments can be easily converted to use <em>dlocsig</em>: </p>
+
+<ul>
+<li>add parameters to the <em>definstrument</em> definition. You will need at least one additional parameter to supply the path. 
+<li>replace the calculation of the run loop begin and end samples with the second and third values that are returned by <em>make-dlocsig</em>. Use a <em>multiple-value-bind</em> to get them (see the example above) instead of basing the calculation solely on the starting time and duration of the note (which must be supplied to <em>make-dlocsig</em>). 
+<li>replace the current output code with a call to <em>dlocsig</em>. Look for either the standard <em>locsig</em> or <em>outa</em>. 
+</ul>
+
+<p><em>dlocsig</em> assumes it receives time-ordered samples from the instrument. It will not work in instruments like <a href="http://www-ccrma.stanford.edu/~nando/clm/grani/">grani</a>, a granular synthesis instrument that can randomly splatter samples all over the duration of the note. It will also not work in instruments that generate more than one output channel (ie: <em>dlocsig</em> needs a mono source). In those cases you can use a second instrument which contains dlocsig and a <em>sound-let</em> to hold the rendered sound until it is spatialized. This solution can also be used to spatialize arbitrary instruments when you want to avoid modifying the instrument code (of course, at the expense of having to create the temporary soundfile). Obviously you can also modify your multichannel instrument to use an array of dlocsig structures and spatialize each channel independently!. </p>
+
+<p>Take a look at the <a href="move-sound.ins">move-sound.ins</a> example instrument. The file includes an instrument (<em>move</em>) that can spatialize multichannel soundfiles and a macro (<em>move-it</em>) that can wrap arbitrary lisp code and will spatialize the resulting soundfile. Before trying the example compile and load <em>dlocsig</em>, <em>move-it</em> and Bill's <em>fm-violin</em>:</p>
+
+<table bgcolor="e0e0e0" width=100%><tr><td><pre><font color="101080">
+(with-sound(:channels 4 :play nil)
+  (move-it (:path (make-path '((-10 10)(0.1 0.1)(10 -10))))
+    (fm-violin 0 1 440 0.1)
+    (fm-violin 0.3 2 1020 0.05)))
+</pre></font></table>
+
+<p>The preceding code fragment will create a temporary soundfile with the output of the two fm-violin notes and then will spatialize it using the supplied path. The body of the macro could be made to generate a multichannel soundfile in which case you would have to supply as many paths as channels are generated (each channel is independently spatialized). This rather pointless example illustrates this. The first call to fm-violin outputs to the left channel of the temporary file and the second to the right channel:</p>
+
+<table bgcolor="e0e0e0" width=100%><tr><td><pre><font color="101080">
+(with-sound(:channels 4 :play nil)
+  (move-it (:channels 2 
+            :paths (list (make-path '((-10 10)(0.1 0.1)(10 -10)))
+                         (make-spiral-path :turns 2)))
+    (fm-violin 0 1 440 0.1 :degree 0)
+    (fm-violin 0.3 2 1020 0.05 :degree 90)))
+</pre></font></table>
+
+</td>
+</tr>
+
+</table></p>
+
+<p><table width="100%" bgcolor="#e0e0e0"><tr><td>
+<a name="history"><font size="+2">History</font></a></table>
+
+<p>The original "dlocsig" was born in 1992 while I was working at Keio University in Japan. It was originally written to create localization cues for a four channel environment, the hardware being the QuadBox, a four channel D/A that attached to the DSP port of a NeXT computer. The hardware was originally built by Atau Tanaka at CCRMA while I worked on the software in Japan (mainly a 56K DSP program to play four channel soundfiles on the NeXT and an accompaining c code player - quadplay). </p>
+
+<p>Thanks to Juan Pampin for prodding me to write this second version and for his help in the first stages of the project. </p>
+
+<hr>
+
+<table><tr><td><!--- <img src="/CCRMA/Images/Logo:Small.gif" alt=""> -->
+  <td><font size="2">©1999, 2000, 2001 Fernando Lopez-Lezcano. All Rights Reserved.<br>
+  Created and mantained by Fernando Lopez-Lezcano, 
+  <a href="mailto:nando at ccrma.stanford.edu">nando at ccrma.stanford.edu</a></font><p>
+</table>
+
+</body>
+</html>
diff --git a/expr.scm b/expr.scm
new file mode 100644
index 0000000..de7e508
--- /dev/null
+++ b/expr.scm
@@ -0,0 +1,272 @@
+(define* (linear-expr-1D data (generations 100))
+  
+  (let ((size 100)
+	(range 1.0)
+	(data-size (length data)))
+
+    (let ((population (make-vector size)))
+      
+      (define (initial-generation)
+	(do ((i 0 (+ i 1)))
+	    ((= i size))
+	  (set! (population i) (vector (- (random range) (/ range 2)) (- (random range) (/ range 2))))))
+
+
+      (define (distance coeff offset)
+	(let ((dist 0.0))
+	  (do ((k 0 (+ k 1)))
+	      ((= k data-size) dist)
+	    (let ((err (- (data k) (+ (* coeff k) offset))))
+	      (set! dist (+ dist (* err err)))))))
+	
+
+      (define (next-generation)
+	(let ((distances (make-vector size 0.0)))
+	  (do ((i 0 (+ i 1)))
+	      ((= i size))
+	    (set! (distances i) (cons (distance ((population i) 0) ((population i) 1)) i)))
+	  (sort! distances (lambda (a b) (< (car a) (car b))))
+	  (do ((i (/ size 2) (+ i 1))
+	       (j 0 (+ j 1)))
+	      ((= i size))
+	    (let* ((loc (cdr (distances j)))      ; location (in population) of a good one
+		   (coeff ((population loc) 0))   ;   its coeff
+		   (offset ((population loc) 1))  ;   and offset
+		   (new-loc (cdr (distances i)))) ; location of the bad one
+	      ;(format #t "~D: replace ~A using ~A~%" j (distances i) (distances j))
+	      (set! (population new-loc) (vector (+ coeff (- (random range) (/ range 2)))
+						 (+ offset (- (random range) (/ range 2)))))))
+	  (distances 0)))
+
+
+      (initial-generation)
+      (let ((last-dist size)
+	    (best #f))
+	(call-with-exit
+	 (lambda (done)
+	   (do ((i 0 (+ i 1)))
+	       ((= i generations))
+	     (set! best (next-generation))
+	     ;(format #t "~D: ~A ~A ~A~%" i range (car best) (population (cdr best)))
+	     (if (< (car best) 1e-9)
+		 (done))
+	     (let* ((new-dist (car best))
+		    (improvement (abs (- new-dist last-dist))))
+	       (if (< improvement range)
+		   (set! range (max 0.001 (* range 0.5)))
+		   (if (> improvement range)
+		       (set! range (min 1024.0 (* 2 range)))))
+	       (set! last-dist new-dist)))))
+
+	(let ((simpler-coeff (rationalize ((population (cdr best)) 0) .1))
+	      (simpler-offset (rationalize ((population (cdr best)) 1) .1)))
+	  (let ((dist (distance simpler-coeff simpler-offset)))
+	    (if (< dist (* 2 (car best)))
+		(format #f "~A * k + ~A, err: ~A~%" simpler-coeff simpler-offset dist)
+		(format #f "~A * k + ~A, err: ~A~%" ((population (cdr best)) 0) ((population (cdr best)) 1) (car best)))))))))
+
+
+
+#|
+(linear-expr-1D (let ((v (make-vector 100)))
+	(do ((i 0 (+ i 1))) 
+	    ((= i 100)) 
+	  (set! (v i) (+ 1 (* i 2))) )
+	v))
+"2 * k + 1, err: 0.0"
+
+(linear-expr-1D (let ((v (make-vector 100)))
+	(do ((i 0 (+ i 1))) 
+	    ((= i 100)) 
+	  (set! (v i) (+ 1 (- (random .01) .005) (* i 2))))
+	v))
+"2 * k + 1, err: 0.00079150685524436"
+;; so noise is not a problem
+
+|#
+
+(define *show-progress* #f)
+
+(define* (poly-expr data (generations 100) (top-power 10) (xscale 1.0))
+  
+  (let ((size 100)
+	(range 1.0)
+	(data-size (length data)))
+
+    (let ((population (make-vector size)))
+
+      (define (new-coeffs good-coeffs bad-coeffs power)
+	(let* ((len (length good-coeffs))
+	       (coeffs (make-vector len 0.0)))
+	  (do ((k 0 (+ k 1)))
+	      ((> k power) coeffs)
+	    (let ((local-diff (/ (- (good-coeffs k) (bad-coeffs k)) 2.0)))
+	      (set! (coeffs k) (+ (good-coeffs k) local-diff (- (random range) (/ range 2))))))))
+      
+      (define (initial-generation power)
+	(let ((len (+ 1 power)))
+	  (do ((i 0 (+ i 1)))
+	      ((= i size))
+	    (set! (population i) (new-coeffs (make-vector len 0.0) (make-vector len 0.0) power)))))
+
+      (define (poly coeffs x power)
+	;; 0 => offset, 1 => x, 2 => x^2 etc
+	(if (= power 1)
+	    (+ (coeffs 0) (* (coeffs 1) x))
+	    (let ((sum (coeffs power)))
+	      (do ((k (- power 1) (- k 1)))
+		  ((< k 0) sum)
+		(set! sum (+ (coeffs k) (* x sum)))))))
+
+      (define (distance coeffs power)
+	(let ((dist 0.0))
+	  (do ((k 0 (+ k 1)))
+	      ((= k data-size) dist)
+	    (let ((err (- (data k) (poly coeffs (* xscale k) power))))
+	      (set! dist (+ dist (* err err)))))))
+
+      (define (iterate-distance coeffs power)
+	;; distance if using iterated function, rather than just polynomial
+	(call-with-exit
+	 (lambda (return)
+	   (let* ((dist 0.0)
+		  (y 0.0))
+	     (do ((k 0 (+ k 1)))
+		 ((= k data-size) dist)
+	       (let ((err (modulo (- (data k) y) 2.0)))
+		 (if (nan? err) ; modulo returns NaN if either arg is inf
+		     (return 1.0e50))
+		 (if (> err 1.0)
+		     (set! err (- 2.0 err)))
+		 (set! dist (+ dist (* err err)))
+		 (set! y (poly coeffs y power))))))))
+
+      (define (display-expr coeffs power)
+	(do ((k power (- k 1)))
+	    ((= k 1))
+	  (format #t "~,3g k^~D + " (coeffs k) k))
+	(format #t "~,3g k + ~,3g" (coeffs 1) (coeffs 0)))
+	
+      (define (next-generation power)
+	(let ((distances (make-vector size 0.0)))
+	  (do ((i 0 (+ i 1)))
+	      ((= i size))
+	    (set! (distances i) (cons (distance (population i) power) i)))
+	  (sort! distances (lambda (a b) (< (car a) (car b))))
+	  (do ((i (/ size 2) (+ i 1))
+	       (j 0 (+ j 1)))
+	      ((= i size))
+	    (let* ((good-loc (cdr (distances j)))      ; location (in population) of a good one
+		   (good-coeffs (population good-loc)) ;   its coeffs
+		   (bad-loc (cdr (distances i)))       ; location of the bad one
+		   (bad-coeffs (population bad-loc)))  ;    its coeffs
+	      (set! (population bad-loc) (new-coeffs good-coeffs bad-coeffs power))))
+	  (distances 0)))
+
+      (do ((power 1 (+ power 1)))
+	  ((> power top-power))
+
+	(initial-generation power)
+	(let ((last-dist size)
+	      (best #f))
+	  (call-with-exit
+	   (lambda (done)
+	     (do ((i 0 (+ i 1)))
+		 ((= i generations))
+	       (let ((new-best (next-generation power)))
+		 (if (and *show-progress* 
+			  best
+			  (< (car new-best) (car best)))
+		     (begin
+		       (format #t "    ")
+		       (display-expr (population (cdr new-best)) power)
+		       (format #t ", err: ~,3g~%" (car new-best))))
+		 (set! best new-best))
+	       (if (< (car best) 1e-9)
+		   (done))
+	       (let* ((new-dist (car best))
+		      (improvement (abs (- new-dist last-dist))))
+		 (if (< improvement range)
+		     (set! range (max 0.001 (* range 0.5)))
+		     (if (> improvement range)
+			 (set! range (min 1024.0 (* 2 range)))))
+		 (set! last-dist new-dist)))))
+
+	  (let ((simpler-coeffs (apply vector (map (lambda (x) (rationalize x .1)) (population (cdr best))))))
+	    (let ((dist (distance simpler-coeffs power)))
+	      (if (< dist (* 2 (car best)))
+		  (begin
+		    (display-expr simpler-coeffs power)
+		    (format #t ", err: ~,3g~%~%" dist))
+		  (begin
+		    (display-expr (population (cdr best)) power)
+		    (format #t ", err: ~,3g~%~%" (car best)))))))))))
+
+#|
+:(poly-expr (let ((v (make-vector 100)))
+	(do ((i 0 (+ i 1))) 
+	    ((= i 100)) 
+	  (set! (v i) (+ 1.5 (* i 2))))
+	v)
+	   100 2)
+()
+2 * k + 3/2, err: 0.0
+
+0 * k^2 + 2 * k + 3/2, err: 0.0
+
+
+:(poly-expr (let ((v (make-vector 100)))
+	(do ((i 0 (+ i 1))) 
+	    ((= i 100)) 
+	  (set! (v i) (+ 1.5 (* i 2) (* i i))))
+	v)
+	   100 2)
+()
+101 * k + -3231/2, err: 55527780.0
+
+1 * k^2 + 2 * k + 3/2, err: 0.0
+
+
+(poly-expr (let ((v (make-vector 100)))
+	(do ((i 0 (+ i 1))) 
+	    ((= i 100)) 
+	  (set! (v i) (+ 10 (* i 3) (* i i) (* 2 i i i))))
+	v)
+	   500 3)
+
+71211/4 * k + -775493/2, err: 5073746188744.4
+
+298 * k^2 + -46797/4 * k + 282358/3, err: 142657213706.32
+
+1.9999646468097 * k^3 + 1.0060760943148 * k^2 + 2.7343239562578 * k + 10.395190849075, err: 341.7343511583
+
+
+(poly-expr (let ((v (make-vector 100)))
+	(do ((i 0 (+ i 1))) 
+	    ((= i 100)) 
+	  (set! (v i) (+ 10 (* i 3) (* i i) (* .02 i i i))))
+	v)
+	   500 3)
+
+279 * k + -16405/3, err: 889433525.53111
+
+4 * k^2 + -114 * k + 4756/5, err: 16055636.02
+
+0.01993019520734 * k^3 + 1.0122316382516 * k^2 + 2.423061574187 * k + 16.287894409628, err: 451.01103769494
+
+if scaled by .01:
+
+(poly-expr (let ((v (make-vector 100)))
+	(do ((i 0 (+ i 1))) 
+	    ((= i 100)) 
+	  (set! (v i) (+ 1.0 (* i 32 .01) (* i i 3 .01 .01) (* 1 i i i .01 .01 .01))))
+	v)
+	   500 3 .01)
+
+179/5 k + 1/3, err: 11.3
+
+4.48 k^2 + 31.4 k + 1.05, err: 0.0357
+
+1 k^3 + 3 k^2 + 32 k + 1, err: 4.76e-28
+
+|#
diff --git a/extsnd.html b/extsnd.html
index 5499443..6419a60 100644
--- a/extsnd.html
+++ b/extsnd.html
@@ -3531,10 +3531,10 @@ in the Scheme, Ruby, and Forth files.
          (error 'no-such-region (list "region->float-vector" reg)))
 
         ((< chn (channels reg))
-         (let* ((reader (<em class=red>make-region-sampler</em> 0 reg chn))
-                (len (region-framples reg))
-                (data (make-float-vector len)))
-           (do ((i 0 (+ i 1)))
+         (let ((reader (<em class=red>make-region-sampler</em> 0 reg chn))
+               (len (region-framples reg)))
+           (do ((data (make-float-vector len))
+                (i 0 (+ i 1)))
                ((= i len) data)
              (set! (data i) (<em class=red>reader</em>)))))
 
@@ -9343,14 +9343,12 @@ at the loop points:
 </p>
 <pre class="indented">
 (define (mark-sf2)
-  (let sf2it ((lst (soundfont-info)))
-    (if (pair? lst)
-        (let ((vals (car lst)))
-          (let ((m1 (add-mark (cadr vals))))
-            (set! (mark-name m1) (car vals)))
-          (add-mark (caddr vals))
-          (add-mark (cadddr vals))
-          (sf2it (cdr lst))))))
+  (for-each (lambda (vals)
+              (let ((m1 (add-mark (cadr vals))))
+                (set! (mark-name m1) (car vals)))
+              (add-mark (caddr vals))
+              (add-mark (cadddr vals)))
+    (soundfont-info)))
 </pre>
 
 <img class="indented" src="pix/bongo.png" alt="soundfont marks">
@@ -9685,9 +9683,9 @@ how long the resultant note will be given an src envelope:
 
 (define (<em class="noem">src-duration</em> e)
   (let* ((len (length e))
-	 (all-x (- (e (- len 2)) (e 0))) ; last x - first x
-	 (dur 0.0))
-    (do ((i 0 (+ i 2)))
+	 (all-x (- (e (- len 2)) (e 0)))) ; last x - first x
+    (do ((dur 0.0)
+         (i 0 (+ i 2)))
 	((>= i (- len 2)) dur)
       (let* ((x0 (e i))
 	     (x1 (e (+ i 2)))
@@ -11297,9 +11295,9 @@ Here's an example that displays a histogram of the current values in 16 bins:
          (step (/ 1.0 len))
          (i 0 (+ i 1))) 
         ((= i len) v)
-      (let* ((val (<a class=quiet href="#readsample">read-sample</a> fd))
-             (bin (floor (* (abs val) 16.0))))
-        (do ((j 0 (+ j 1))) 
+      (let ((val (<a class=quiet href="#readsample">read-sample</a> fd)))
+        (do ((bin (floor (* (abs val) 16.0)))
+             (j 0 (+ j 1))) 
             ((= j steps))
           (set! (v (+ j bin)) (+ step (v (+ j bin)))))))))
 </pre>
diff --git a/freeverb-readme.txt b/freeverb-readme.txt
new file mode 100644
index 0000000..36361f4
--- /dev/null
+++ b/freeverb-readme.txt
@@ -0,0 +1,67 @@
+Freeverb - Free, studio-quality reverb SOURCE CODE in the public domain
+-----------------------------------------------------------------------
+
+Written by Jezar at Dreampoint - http://www.dreampoint.co.uk
+
+
+Introduction
+------------
+
+Hello.
+
+I'll try to keep this "readme" reasonably small. There are few things in the world that I hate more than long "readme" files. Except "coding conventions" - but more on that later...
+
+In this zip file you will find two folders of C++ source code:
+
+"Components" - Contains files that should clean-compile ON ANY TYPE OF COMPUTER OR SYSTEM WHATSOEVER. It should not be necessary to make ANY changes to these files to get them to compile, except to make up for inadequacies of certain compilers. These files create three classes - a comb filter, an allpass filter, and a reverb model made up of a number of instances of the filters, with some features to control the filters at a macro level. You will need to link these classes into another program that interfaces with them. The files in the components drawer are completely independant, and can be built without dependancies on anything else. Because of the simple interface, it should be possible to interface these files to any system - VST, DirectX, anything - without changing them AT ALL.
+
+"FreeverbVST" - Contains a Steinberg VST implementation of this version of Freeverb, using the components in (surprise) the components folder. It was built on a PC but may compile properly for the Macintosh with no problems. I don't know - I don't have a Macintosh. If you've figured out how to compile the examples in the Steinberg VST Development Kit, then you should easilly figure out how to bring the files into a project and get it working in a few minutes. It should be very simple.
+
+Note that this version of Freeverb doesn't contain predelay, or any EQ. I thought that might make it difficult to understand the "reverb" part of the code. Once you figure out how Freeverb works, you should find it trivial to add such features with little CPU overhead.
+
+Also, the code in this version of Freeverb has been optimised. This has changed the sound *slightly*, but not significantly compared to how much processing power it saves.
+
+Finally, note that there is also a built copy of this version of Freeverb called "Freeverb3.dll" - this is a VST plugin for the PC. If you want a version for the Mac or anything else, then you'll need to build it yourself from the code.
+
+
+Technical Explanation
+---------------------
+
+Freeverb is a simple implementation of the standard Schroeder/Moorer reverb model. I guess the only reason why it sounds better than other reverbs, is simply because I spent a long while doing listening tests in order to create the values found in "tuning.h". It uses 8 comb filters on both the left and right channels), and you might possibly be able to get away with less if CPU power is a serious constraint for you. It then feeds the result of the reverb through 4 allpass filters on both the left and right channels. These "smooth" the sound. Adding more than four allpasses doesn't seem to add anything significant to the sound, and if you use less, the sound gets a bit "grainy". The filters on the right channel are slightly detuned compared to the left channel in order to create a stereo effect.
+
+Hopefully, you should find the code in the components drawer a model of brevity and clarity. Notice that I don't use any "coding conventions". Personally, I think that coding conventions suck. They are meant to make the code "clearer", but they inevitably do the complete opposite, making the code completely unfathomable. Anyone whose done Windows programming with its - frankly stupid - "Hungarian notation" will know exactly what I mean. Coding conventions typically promote issues that are irrelevant up to the status of appearing supremely important. It may have helped back people in the days when compilers where somewhat feeble in their type-safety, but not in the new millenium with advanced C++ compilers.
+
+Imagine if we rewrote the English language to conform to coding conventions. After all, The arguments should be just as valid for the English language as they are for a computer language. For example, we could put a lower-case "n" in front of every noun, a lower-case "p" in front of a persons name, a lower-case "v" in front of every verb, and a lower-case "a" in front of every adjective. Can you imagine what the English language would look like? All in the name of "clarity". It's just as stupid to do this for computer code as it would be to do it for the English language. I hope that the code for Freeverb in the components drawer demonstrates this, and helps start a movement back towards sanity in coding practices.
+
+
+Background
+----------
+
+Why is the Freeverb code now public domain? Simple. I only intended to create Freeverb to provide me and my friends with studio-quality reverb for free. I never intended to make any money out of it. However, I simply do not have the time to develop it any further. I'm working on a "concept album" at the moment, and I'll never finish it if I spend any more time programming. 
+
+In any case, I make more far money as a contract programmer - making Mobile Internet products - than I ever could writing plugins, so it simply doesn't make financial sense for me to spend any more time on it.
+
+Rather than give Freeverb to any particular individual or organisation to profit from it, I've decided to give it away to the internet community at large, so that quality, FREE (or at the very least, low-cost) reverbs can be developed for all platforms.
+
+Feel free to use the source code for Freeverb in any of your own products, whether they are also available for free, or even if they are commercial - I really don't mind. You may do with the code whatever you wish. If you use it in a product (whether commercial or not), it would be very nice of you, if you were to send me a copy of your product - although I appreciate that this isn't always possible in all circumstances.
+
+HOWEVER, please don't bug me with questions about how to use this code. I gave away Freeverb because I don't have time to maintain it. That means I *certainly* don't have time to answer questions about the source code, so please don't email questions to me. I *will* ignore them. If you can't figure the code for Freeverb out - then find somebody who can. I hope that either way, you enjoy experimenting with it.
+
+
+Disclaimer
+----------
+
+This software and source code is given away for free, without any warranties of any kind. It has been given away to the internet community as a free gift, so please treat it in the same spirit.
+
+
+I hope this code is useful and interesting to you all!
+I hope you have lots of fun experimenting with it and make good products!
+
+Very best regards,
+Jezar.
+Technology Consultant
+Dreampoint Design and Engineering
+http://www.dreampoint.co.uk
+
+
+//ends
diff --git a/freeverb.html b/freeverb.html
new file mode 100644
index 0000000..add5beb
--- /dev/null
+++ b/freeverb.html
@@ -0,0 +1,108 @@
+<!DOCTYPE HTML>
+<html lang="en">
+  <head>
+    <title>freeverb for clm-2</title>
+
+<style type="text/css">
+	A.quiet {color:black; text-decoration:none}
+	A.quiet:hover {text-decoration:underline}
+	EM.def {font-weight: bold; font-style: normal; text-decoration:none; text-color:black}
+        PRE.indented {padding-left: 1.0cm;
+	             }
+
+        BODY.body {background-color: #ffffff;    /* white */
+	           margin-left: 0.5cm; 
+		   margin-right: 1.0cm;
+                   }
+        DIV.topheader {margin-top: 10px;
+	            margin-bottom: 40px;
+	            border: 4px solid #00ff00; /* green */
+		    background-color: #f5f5dc; /* beige */
+		    font-family: 'Helvetica';
+		    font-size: 30px;
+		    text-align: center;
+		    padding-top: 10px;
+		    padding-bottom: 10px;
+	           }
+        DIV.innerheader {margin-top: 60px;
+	            margin-bottom: 30px;
+	            border: 4px solid #00ff00; /* green */
+		    background-color: #eefdee; /* lightgreen */
+		    padding-left: 30px;
+		    width: 50%;
+		    padding-top: 20px;
+		    padding-bottom: 20px;
+	           }
+</style>
+  </head>
+
+  <body class="body">
+
+<div class="topheader"><a href="freeverb.ins" class="quiet">freeverb</a>: a multichannel reverb instrument</div>
+
+
+<p>translated to clm-2 by <a href="http://www-ccrma.stanford.edu/~nando/">Fernando Lopez-Lezcano</a>, <a href="mailto:nando at ccrma.stanford.edu">nando at ccrma.stanford.edu</a>
+</p>
+
+<p>Freeverb, a free studio-quality reverb, was created by <strong>Jezar Wakefield</strong> at <a href="http://www.dreampoint.co.uk/">Dreampoint Design and Engineering</a>. Here's the <a href="readme.txt">readme.txt</a> that is part of the <a href="http://home.onet.co.uk/~jzracc/source_code.htm">C++ source package</a> I downloaded. This clm-2 instrument uses the same reverberation model and tuning for the filters as the original freeverb source code. </p>
+
+<p>Here's a list of some differences with respect to the original freeverb code:</p>
+
+<ul>
+<li>freeverb.ins can process either mono or multichannel input soundfiles, in the latter case the input and output number of channels must match. This has been tailored to function with <a href="http://www-ccrma.stanford.edu/~nando/clm/dlocsig/">dlocsig</a>, a multichannel spatialization unit generator for clm. The latest version of dlocsig can output to multichannel reverberation streams and can thus generate local and global reverberation. 
+<li>there no <em>wet</em> parameter to freeverb.ins as it would not apply to the way clm generates and processes reverberation.
+<li>the name of the <em>width</em> parameter has been changed to <em>global</em>, which better reflects the effect in a multichanenl environment
+<li>it has predelays
+<li>it is possible to control damping individually in each channel
+</ul>
+
+
+<div class="innerheader">Parameters</div>
+
+<p>All parameters have similarly named global bindings that you can use in a <em>let</em> statement to change the behavior of the reverberator (instead of passing parameters to the reverb instrument through <em>:reverb-data</em> in a <em>with-sound</em>). Prepend <em>freeverb-</em> to the parameter name to get the global binding name. </p> 
+
+<pre class="indented"><em class=def id="start-time">start-time</em></pre>
+<p>Start time of the instrument in the output stream (this is normally supplied automatically by <em>with-sound</em>). <p>
+
+
+<pre class="indented"><em class=def id="duration">duration</em></pre>
+<p>Duration of the reverberation (this is normally supplied automatically by <em>with-sound</em>, use the <em>:decay-time</em> parameter to allow the reverb to ring for more time). </p>
+
+
+<pre class="indented"><em class=def id="room-decay">room-decay</em></pre>
+<p>Determines the decay time of the reverberation. </p>
+
+
+<pre class="indented"><em class=def id="damping">damping</em></pre>
+<p>High frequency damping. This parameter can be a number, or an array or list (with same number of elements as output channels). It is possible to control the damping for each output channel. </p>
+
+
+<pre class="indented"><em class=def id="global">global</em></pre>
+<p>Controls how the outputs of all reverbs (one per channel) is mixed into the output stream. Specifying "0" will connect each reverberator directly to each output channel, "1" will mix all reverberated channels equally into all output channels. Intermediate values will allow for an arbitrary balance between local and global reverberation. The overall gain of the mixing matrix is kept constant. See <b>output-mixer</b> for a complete override to this parameter. </p>
+
+
+<pre class="indented"><em class=def id="predelay">predelay</em></pre>
+<p>Determines the predelay that is applied to the input streams. An array or list lets you specify the individual predelays for all chanenels. </p>
+
+
+<pre class="indented"><em class=def id="output-gain">output-gain</em></pre>
+<p>Overall gain multiplier for the output streams.  Its default value is 1.0.</p>
+
+
+<pre class="indented"><em class=def id="output-mixer">output-mixer</em></pre>
+<p>Overrides <b>global</b> and sets the output mixing matrix directly (for example, you might want to change the contribution to global reverb of a particular channel so that it is proportional to the distance between speakers). </p>
+
+
+<hr>
+
+<table><tr><td><!--- <img src="/CCRMA/Images/Logo:Small.gif" alt=""> -->
+  <td><p>© 2001 Fernando Lopez-Lezcano. All Rights Reserved.<br>
+  Created and mantained by Fernando Lopez-Lezcano, 
+  <a href="mailto:nando at ccrma.stanford.edu">nando at ccrma.stanford.edu</a></p>
+<!-- Created: Wed Jan 24 20:05:29 PST 2001 -->
+<!-- hhmts start -->
+Last modified: Mon Feb 13 2:55:00 PST 2012 (by BIL, reformatted for HTML5)
+<!-- hhmts end -->
+</table>
+  </body>
+</html>
diff --git a/freeverb.scm b/freeverb.scm
index b9611d0..d00265e 100644
--- a/freeverb.scm
+++ b/freeverb.scm
@@ -86,7 +86,7 @@
 	  (format () ";;; freeverb: ~d input channels, ~d output channels~%" in-chans out-chans))
       (if (and (> in-chans 1)
 	       (not (= in-chans out-chans)))
-	  (error "input must be mono or input channels must equal output channels"))
+	  (error 'wrong-type-arg "input must be mono or input channels must equal output channels"))
 
       (let ((out-mix (or output-mixer
 		       (let ((v (make-float-vector (list out-chans out-chans))))
diff --git a/funcs.scm b/funcs.scm
deleted file mode 100644
index 77e7174..0000000
--- a/funcs.scm
+++ /dev/null
@@ -1,47 +0,0 @@
-(define-envelope pna '(0 0 1 1 10 .6000 25 .3000 100 0 ))
-(define-envelope ind2 '(0 1 25 .4000 75 .6000 100 0 ))
-(define-envelope high_att_ind '(0 1 25 .2000 75 .4000 100 0 ))
-(define-envelope no_att_ind '(0 .6000 75 .6000 100 0 ))
-(define-envelope no_dec_ind '(0 1 25 .4000 75 .6000 100 .6000 ))
-(define-envelope no_att_or_dec_ind '(0 .6000 100 .6000 ))
-(define-envelope ampf '(0 0 25 1 60 .7000 75 1 100 0 ))
-(define-envelope rampf '(0 0 100 1 ))
-(define-envelope fast_up '(0 0 25 1 100 1 ))
-(define-envelope slow_up '(0 0 25 0 100 1 ))
-(define-envelope tapf '(0 0 1 1 99 1 100 0 ))
-(define-envelope skwfrq '(0 -1 5 .2500 10 0 100 .1000 ))
-(define-envelope oldpizzf '(0 0 1 1 5 .6000 10 .3000 25 .1000 100 0 ))
-(define-envelope newpizzf '(0 0 1 1 5 .6000 10 .3000 25 .1000 99 .0200 100 0 ))
-(define-envelope pizzf '(0 0 1 1 5 .6000 10 .3000 25 .1000 100 0 ))
-(define-envelope legatof '(0 0 30 1 90 1 100 0 ))
-(define-envelope marcatof '(0 0 3 1 10 .8000 95 1 100 0 ))
-(define-envelope onef '(0 1 100 1 ))
-(define-envelope mod_up '(0 0 25 0 75 1 100 1 ))
-(define-envelope mod_down '(0 1 25 1 75 0 100 0 ))
-(define-envelope one_to_zero '(0 1 75 1 100 0 ))
-(define-envelope zero_to_one '(0 0 75 0 100 1 ))
-(define-envelope down_flat '(0 1 25 0 75 .0500 100 0 ))
-(define-envelope down_down '(0 1 25 0 75 .0500 100 -1 ))
-(define-envelope down_up '(0 1 25 0 75 .0500 100 1 ))
-(define-envelope flat_down '(0 -.1000 10 .1000 25 0 75 .0500 100 -1 ))
-(define-envelope flat_up '(0 -.1000 10 .1000 25 0 75 0 100 1 ))
-(define-envelope up_flat '(0 -1 25 .0500 75 0 100 0 ))
-(define-envelope up_up '(0 -1 25 .0500 75 0 100 1 ))
-(define-envelope up_down '(0 -1 25 .0500 75 0 100 -1 ))
-(define-envelope swellf '(0 0 25 .8000 50 1 75 .8000 100 0 ))
-(define-envelope fpf '(0 0 25 1 50 .3000 75 .3000 100 0 ))
-(define-envelope indswell '(1 1 25 .4000 75 1 100 0 ))
-(define-envelope pyr '(0 1 25 .1000 95 .1000 100 0 ))
-(define-envelope fbell '(0 1 2 1.1000 25 .7500 75 .5000 100 .2000 ))
-(define-envelope lowbell '(0 1 5 1.2500 25 .8000 75 .5000 100 .2000 ))
-(define-envelope abell '(0 0 .1000 1 10 .6000 25 .3000 50 .1500 90 .1000 100 0 ))
-(define-envelope dwnup '(0 1 10 .4000 20 1 35 .3000 45 .8000 60 .2000 80 .6000 100 0 ))
-(define-envelope up50down '(0 0 50 1 100 0 ))
-(define-envelope metalamp '(0 0 .5000 1 5 1 10 .5000 15 .2500 35 .1000 100 0 ))
-(define-envelope slowupfastdown '(0 0 25 1 97 1 100 0 ))
-(define-envelope slowup '(0 0 50 .1000 95 1 100 0 ))
-(define-envelope indtoone '(0 1 25 .4000 100 .6500 ))
-
-(define-envelope whoosh '(0 0 75 .1000 90 .3000 97 .6000 100 1 ))
-(define-envelope mamp '(0 0 50 1 100 0 ))
-(define-envelope n_amp '(0 0 65 1 100 0 ))
diff --git a/gl.c b/gl.c
index df2f97f..26e6bad 100644
--- a/gl.c
+++ b/gl.c
@@ -4455,7 +4455,7 @@ static void define_functions(void)
 {
 #if HAVE_SCHEME
 static s7_pointer s_boolean, s_integer, s_real, s_any;
-static s7_pointer pl_bit, pl_bi, pl_t, pl_ttri, pl_ttit, pl_ttr, pl_ttir, pl_ttb, pl_tti, pl_ttiti, pl_ttrriir, pl_ttititiiti, pl_ttititi, pl_ttrri, pl_ttrrri, pl_tb, pl_bt, pl_iiiiitiiit, pl_iiiiiiiit, pl_iiiiiiiiiiit, pl_iiiiiiit, pl_iiiiiiiiiit, pl_iiiiiit, pl_iiiiiiiiit, pl_irrrt, pl_irrrrtttrrt, pl_i, pl_tiirrrrt, pl_tiiiit, pl_tiiit, pl_tiiiiiiit, pl_tiiiiiiiit, pl_tirriit, pl_tirriirriit, pl_tirrir, pl_tir, pl_tit, pl_tiiiiiiiiit, pl_tiiiiiiiiiit, pl_tiiib, pl_ti, pl_tiiiiiit, pl_tiir, pl_tiiiiit, pl_tiit, pl_tibiit, pl_tiib, pl_trrrrt, pl_tr;
+static s7_pointer pl_t, pl_ttri, pl_ttit, pl_ttr, pl_ttir, pl_ttb, pl_tti, pl_ttiti, pl_ttrriir, pl_ttititiiti, pl_ttititi, pl_ttrri, pl_ttrrri, pl_tb, pl_bt, pl_iiiiitiiit, pl_iiiiiiiit, pl_iiiiiiiiiiit, pl_iiiiiiit, pl_iiiiiiiiiit, pl_iiiiiit, pl_iiiiiiiiit, pl_irrrt, pl_irrrrtttrrt, pl_i, pl_tiirrrrt, pl_tiiiit, pl_tiiit, pl_tiiiiiiit, pl_tiiiiiiiit, pl_tirriit, pl_tirriirriit, pl_tirrir, pl_tir, pl_tit, pl_tiiiiiiiiit, pl_tiiiiiiiiiit, pl_tiiib, pl_ti, pl_tiiiiiit, pl_tiir, pl_tiiiiit, pl_tiit, pl_tibiit, pl_tiib, pl_trrrrt, pl_tr, pl_bit, pl_bi;
 #if USE_MOTIF
 static s7_pointer pl_tttti, pl_ttttb, pl_ittit;
 #endif
@@ -4465,8 +4465,6 @@ static s7_pointer pl_tttti, pl_ttttb, pl_ittit;
   s_real = s7_make_symbol(s7, "real?");
   s_any = s7_t(s7);
 
-  pl_bit = s7_make_circular_signature(s7, 2, 3, s_boolean, s_integer, s_any);
-  pl_bi = s7_make_circular_signature(s7, 1, 2, s_boolean, s_integer);
   pl_t = s7_make_circular_signature(s7, 0, 1, s_any);
   pl_ttri = s7_make_circular_signature(s7, 3, 4, s_any, s_any, s_real, s_integer);
   pl_ttit = s7_make_circular_signature(s7, 3, 4, s_any, s_any, s_integer, s_any);
@@ -4514,6 +4512,8 @@ static s7_pointer pl_tttti, pl_ttttb, pl_ittit;
   pl_tiib = s7_make_circular_signature(s7, 3, 4, s_any, s_integer, s_integer, s_boolean);
   pl_trrrrt = s7_make_circular_signature(s7, 5, 6, s_any, s_real, s_real, s_real, s_real, s_any);
   pl_tr = s7_make_circular_signature(s7, 1, 2, s_any, s_real);
+  pl_bit = s7_make_circular_signature(s7, 2, 3, s_boolean, s_integer, s_any);
+  pl_bi = s7_make_circular_signature(s7, 1, 2, s_boolean, s_integer);
 
 #if USE_MOTIF
   pl_tttti = s7_make_circular_signature(s7, 4, 5, s_any, s_any, s_any, s_any, s_integer);
@@ -5727,7 +5727,7 @@ void Init_libgl(void)
       define_integers();
       define_functions();
       Xen_provide_feature("gl");
-      Xen_define("gl-version", C_string_to_Xen_string("23-Oct-16"));
+      Xen_define("gl-version", C_string_to_Xen_string("26-Jul-16"));
       gl_already_inited = true;
     }
 }
diff --git a/grfsnd.html b/grfsnd.html
index eb5649b..314cd43 100644
--- a/grfsnd.html
+++ b/grfsnd.html
@@ -1541,7 +1541,7 @@ if you have an executable file with:
 </p>
 
 <pre class="indented">
-#!/home/bil/test/snd-16/snd -l
+#!/home/bil/test/snd-17/snd -l
 !#
 (define a-test 32)
 (display "hiho")
@@ -1552,12 +1552,12 @@ if you have an executable file with:
 </p>
 
 <pre class="indented">
-/home/bil/test/snd-16/ script
+/home/bil/test/snd-17/ script
 hiho
 > a-test
 32
 > (<a class=quiet href="extsnd.html#exit">exit</a>)
-/home/bil/test/snd-16/ 
+/home/bil/test/snd-17/ 
 </pre>
 
 <p>
@@ -1574,7 +1574,7 @@ writes the result as "test.snd":
 <tr>
 <td class="scheme">
 <pre class="indented">
-#!/home/bil/snd-16/snd -l
+#!/home/bil/snd-17/snd -l
 !#
 (open-sound "oboe.snd")
 (scale-by 2.0)
@@ -1585,7 +1585,7 @@ writes the result as "test.snd":
 
 <td class="ruby">
 <pre class="indented">
-#!/home/bil/snd-16/snd -batch
+#!/home/bil/snd-17/snd -batch
 open_sound "oboe.snd"
 scale_by 2.0
 save_sound_as "test.snd"
@@ -1616,7 +1616,7 @@ as it scans the startup arguments (see snd-test.scm).
 </p>
 
 <pre class="indented">
-#!/home/bil/test/snd-16/snd -l
+#!/home/bil/test/snd-17/snd -l
 !#
 (if (= (length (<a class=quiet href="extsnd.html#scriptargs">script-args</a>)) 2) ;i.e. ("-l" "script")
   (display "usage: script file-name...")
diff --git a/index.scm b/index.scm
index d7c0670..55f6e50 100644
--- a/index.scm
+++ b/index.scm
@@ -14,12 +14,12 @@ and if one is found, and the Snd documentation can be found, calls *html-program
 				 ((and (string? *html-dir*)
 				       (file-exists? (string-append *html-dir* "/snd.html")))
 				  *html-dir*)
+				 ((file-exists? "/usr/share/doc/snd-17/snd.html")       "/usr/share/doc/snd-17")
+				 ((file-exists? "/usr/local/share/doc/snd-17/snd.html") "/usr/local/share/doc/snd-17")
+				 ((file-exists? "/usr/doc/snd-17/snd.html")             "/usr/doc/snd-17")
 				 ((file-exists? "/usr/share/doc/snd-16/snd.html")       "/usr/share/doc/snd-16")
 				 ((file-exists? "/usr/local/share/doc/snd-16/snd.html") "/usr/local/share/doc/snd-16")
-				 ((file-exists? "/usr/doc/snd-16/snd.html")             "/usr/doc/snd-16")
-				 ((file-exists? "/usr/share/doc/snd-15/snd.html")       "/usr/share/doc/snd-15")
-				 ((file-exists? "/usr/local/share/doc/snd-15/snd.html") "/usr/local/share/doc/snd-15")
-				 (else (and (file-exists? "/usr/doc/snd-15/snd.html")   "/usr/doc/snd-15")))))
+				 (else (and (file-exists? "/usr/doc/snd-16/snd.html")   "/usr/doc/snd-16")))))
 		  (if dir
 		      (system (string-append *html-program* " file:" dir "/" n))))))
 	     
diff --git a/lint.scm b/lint.scm
index c3daea5..734d384 100644
--- a/lint.scm
+++ b/lint.scm
@@ -20,7 +20,7 @@
 (define *report-doc-strings* #f)                          ; old-style (CL) doc strings
 (define *report-func-as-arg-arity-mismatch* #f)           ; as it says... (slow, and this error almost never happens)
 (define *report-constant-expressions-in-do* #f)           ; kinda dumb
-(define *report-bad-variable-names* '(l ll O ~))          ; bad names -- a list to check such as:
+(define *report-bad-variable-names* '(l ll .. O ~)) ; bad names -- a list to check such as:
 ;;;             '(l ll .. ~ data datum new item info temp tmp temporary val vals value foo bar baz aux dummy O var res retval result count str)
 (define *report-built-in-functions-used-as-variables* #f) ; string and length are the most common cases
 (define *report-forward-functions* #f)                    ; functions used before being defined
@@ -99,7 +99,7 @@
 	      defined? denominator dilambda? do dynamic-wind
 	      eof-object? eq? equal? eqv? even? exact->inexact exact? exp expt
 	      float? float-vector float-vector-ref float-vector? floor for-each funclet 
-	      gcd gensym gensym? ; why was gensym omitted earlier?
+	      gcd gensym gensym?
 	      hash-table hash-table* hash-table-entries hash-table-ref hash-table? help hook-functions
 	      if imag-part inexact->exact inexact? infinite? inlet input-port? 
 	      int-vector int-vector-ref int-vector? iterator-at-end? iterator-sequence integer->char
@@ -171,6 +171,7 @@
 			         catch throw error procedure-documentation procedure-signature help procedure-source funclet 
 			         procedure-setter arity aritable? not eq? eqv? equal? morally-equal? gc s7-version emergency-exit 
 			         exit dilambda make-hook hook-functions stacktrace tree-leaves tree-memq object->let
+				 getenv directory? file-exists?
 				 #_{list} #_{apply_values} #_{append} unquote))
 			      ht))
 
@@ -321,7 +322,7 @@
 				(hash-table-set! h d #t))
 			      '(define define* define-constant lambda lambda* curlet require load eval eval-string
 				define-macro define-macro* define-bacro define-bacro* define-expansion 
-				definstrument defanimal define-envelope 
+				definstrument define-animal define-envelope 
 				define-values define-module define-method
 				define-syntax define-public define-inlinable define-integrable define^))
 		    h))
@@ -396,10 +397,14 @@
 	    (set! str1 (truncated-list->string f1))
 	    (set! len1 (length str1)))
 	  (when (> len2 target-line-length)
-	    (set! ((funclet lint-pretty-print) '*pretty-print-left-margin*) pp-left-margin)
-	    (set! ((funclet lint-pretty-print) '*pretty-print-length*) (- 114 pp-left-margin))
-	    (set! str2 (lint-pp f2))
-	    (set! len2 (length str2)))
+	    (let ((old-len2 len2))
+	      (set! ((funclet lint-pretty-print) '*pretty-print-left-margin*) pp-left-margin)
+	      (set! ((funclet lint-pretty-print) '*pretty-print-length*) (- 114 pp-left-margin))
+	      (set! str2 (lint-pp f2))
+	      (set! len2 (length str2))
+	      (when (> len2 (* 10 old-len2)) ; this is aimed at some pathological s7test cases -- never hit otherwise I think
+		(set! str2 (truncated-list->string f2))
+		(set! len2 (length str2)))))
 	  (format #f (if (< (+ len1 len2) target-line-length)
 			 (values "~A -> ~A" str1 str2)
 			 (values "~%~NC~A ->~%~NC~A" pp-left-margin #\space str1 pp-left-margin #\space str2))))))
@@ -714,8 +719,8 @@
     (define (tree-equal-member sym tree)
       (and (pair? tree)
 	   (or (equal? (car tree) sym)
-	       (tree-member sym (car tree))
-	       (tree-member sym (cdr tree)))))
+	       (tree-equal-member sym (car tree))
+	       (tree-equal-member sym (cdr tree)))))
 
     (define (tree-unquoted-member sym tree)
       (and (unquoted-pair? tree)
@@ -1175,7 +1180,8 @@
 	      (when (and (len=1? body)
 			 (pair? (car body))
 			 (case (caar body) ; change body to use if
-			   ((if) #t) ; only 1 hit for 2 reversal branches
+			   ((if) 
+			    #t) ; only 1 hit for 2 reversal branches, say 20 hits for 2 ifs + repeated return vals (collapsible) -- see tmp
 			   ((when)
 			    (set! body `((if ,(cadar body) 
 					     ,@(if (null? (cdddar body)) 
@@ -1310,11 +1316,11 @@
 							     (len=3? (cdr tree))
 							     (not (tree-memq res-name (cadr tree)))
 							     (tree-memq res-name (cddr tree)))
-							`(if ,(cadr tree)
-							     ,(if (eq? (caddr tree) res-name)
+							(list 'if (cadr tree)
+							      (if (eq? (caddr tree) res-name)
 								  '(values)
 								  (subst (caddr tree)))
-							     ,(if (eq? (cadddr tree) res-name)
+							      (if (eq? (cadddr tree) res-name)
 								  '(values)
 								  (subst (cadddr tree)))))
 						       
@@ -1379,6 +1385,7 @@
 			    (set! for-each-case (rewrite-map #t name iter sequence
 							     (copy (unbegin (cadr cdrf))) 
 							     initial-value)))))
+
 		      (let ((iters ()))
 			;; recursion -> for-each
 			(when (and (null? (cddr nf))
@@ -1408,7 +1415,7 @@
 							   (unbegin (copy (cadr nf) (make-list (- (length (cadr nf)) 1)))) 
 							   initial-value)))))))
 		
-		;;    any number of args here, still if-based as above
+		;; any number of args here, still if-based as above
 		;;
 		;; recursion->do
 		;;   (n ((a b) (c d)) (if .1. (begin .2. (n (+ a 1) (cdr c))) .3.)) -> (do ((a b (+ a 1)) (c d (cdr c))) ((not .1.) .3.) .2.)
@@ -1431,7 +1438,7 @@
 			  (set! result do-body)
 			  (set! do-body old-res)))
 
-		      (when (< (tree-leaves result) 30)
+		      (when (< (tree-leaves result) 50)
 			(let ((call (if (eq? (car do-body) name)
 					do-body
 					(and (eq? (car do-body) 'begin)
@@ -1518,13 +1525,13 @@
 				  (set! default-value (cadddr value))))
 			  (unless (eq? default-value :unset)
 			    (let ((new-arglist (if (symbol? arglist)
-						   (if default-value
-						       `((,(car var1) ,default-value))
-						       (list (car var1)))
+						   (list (if default-value
+							     (list (car var1) default-value)
+							     (car var1)))
 						   (append (copy arglist (make-list (abs (length arglist))))
-							   (if default-value ; #f is default
-							       `((,(car var1) ,default-value))
-							       (list (car var1))))))
+							   (list (if default-value ; #f is default
+								     (list (car var1) default-value)
+								     (car var1))))))
 				  (new-body (if (null? (cdadr body))               ; 0 other vars
 						'...
 						(list (if (or (eq? (car body) 'let) 
@@ -1615,6 +1622,7 @@
 		((rational? c)     'rational?)
 		((real? c)	   'real?)
 		((number? c)       'number?)
+		((byte-vector? c)  'byte-vector?)
 		((string? c)       'string?)
 		((null? c)	   'null?)
 		((char? c)	   'char?)
@@ -1622,10 +1630,9 @@
 		((keyword? c)
 		 (cond ((assq c markers) => cdr)
 		       (else 'keyword?)))
-		((vector? c)       'vector?)
 		((float-vector? c) 'float-vector?)
 		((int-vector? c)   'int-vector?)
-		((byte-vector? c)  'byte-vector?)
+		((vector? c)       'vector?)
 		((let? c)	   'let?)
 		((hash-table? c)   'hash-table?)
 		((input-port? c)   'input-port?)
@@ -1985,13 +1992,7 @@
 			   (or (string=? "compute" (substring sname 0 7))      ; compute-* is as bad as get-*
 			       (string=? "calculate" (substring sname 0 9))))) ;   perhaps one exception: computed-goto*
 		  (lint-format "surely there's a better name for this variable than ~A" caller vname)
-#|
-		  (if (let ((p (char-position #\@ sname))) ; this happens 3 times (in a test suite)!
-			(and (integer? p)
-			     (string->number (substring sname 0 p))
-			     (string->number (substring sname (+ p 1)))))
-		      (lint-format "s7 does not implement scheme's polar notation: ~A" caller vname))
-|#
+		  ;; polar notation (see tmp) gets 3 hits (in a test suite)!
 		  ))))))
 
 
@@ -3029,7 +3030,10 @@
 						  (and (null? (cdddr p))
 						       (equal? (caddr p) last)))
 						(cddr form))
-					(set! form `(,op (,(car form) ,@(map cadr (cdr form))) ,last)))))))))
+					(set! form (list op 
+							 (cons (car form) 
+							       (map cadr (cdr form))) 
+							 last)))))))))
 		  ;; (or (and A B) (and A C)) -> (and A (or B C))
 		  ;; (or (and A B) (and C B)) -> (and (or A C) B)
 		  ;; (and (or A B) (or A C)) -> (or A (and B C))
@@ -3095,7 +3099,7 @@
 				    ((begin)
 				     (let* ((len1 (- (length val) 1))
 					    (new-last (simplify-boolean (list 'not (list-ref val len1)) () () env)))
-				       `(,@(copy val (make-list len1)) ,new-last)))))
+				       (append (copy val (make-list len1)) (list new-last))))))
 
 				 ((not (equal? val arg))
 				  (list 'not val))
@@ -3348,105 +3352,107 @@
 				 (vals ())
 				 (start #f))
 			     
-			     (define (constant-arg p)
-			       (if (code-constant? (cadr p))
-				   (set! vals (cons (cadr p) vals))
-				   (and (code-constant? (caddr p))
-					(set! vals (cons (caddr p) vals)))))
-			     
-			     (define (upgrade-eqf)
-			       (set! eqfnc (case eqfnc 
-					     ((string=? string-ci=? = equal?) 'equal?)
-					     ((#f eq?) 'eq?)
-					     (else 'eqv?))))
-
-			     (define (collect-vals p)
-			       ;; = can't share: (equal? 1 1.0) -> #f, so (or (not x) (= x 1)) can't be simplified
-			       ;;   except via member+morally-equal? but that brings in float-epsilon and NaN differences.
-			       ;;   We could add both: 1 1.0 as in cond?
-			       ;;
-			       ;; another problem: using memx below means the returned value of the expression
-			       ;;   may not match the original (#t -> '(...)), so perhaps we should add a one-time
-			       ;;   warning about this, and wrap it in (pair? (mem...)) as an example.
-			       ;;
-			       ;; and another thing... the original might be broken: (eq? x #(1)) where equal?
-			       ;;   is more sensible, but that also changes the behavior of the expression:
-			       ;;   (memq x '(#(1))) may be #f (or #t!) when (member x '(#(1))) is '(#(1)).
-			       ;;
-			       ;; I think I'll try to turn out a more-or-less working expression, but warn about it.
-					  
-			       (case (car p) 
-				 ((string=? equal?)
-				  (set! eqfnc (if (or (not eqfnc)
-						      (eq? eqfnc (car p)))
-						  (car p)
-						  'equal?))
-				  (and (= (length p) 3)
-				       (constant-arg p)))
-				 
-				 ((char=?)
-				  (if (memq eqfnc '(#f char=?))
-				      (set! eqfnc 'char=?)
-				      (if (not (eq? eqfnc 'equal?))
-					  (set! eqfnc 'eqv?)))
-				  (and (= (length p) 3)
-				       (constant-arg p)))
-				 
-				 ((eq? eqv?)
-				  (let ((leqf (car (->eqf (->lint-type ((if (code-constant? (cadr p)) cadr caddr) p))))))
-				    (cond ((not eqfnc) 
-					   (set! eqfnc leqf))
-					  
-					  ((or (memq leqf '(#t equal?))
-					       (not (eq? eqfnc leqf)))
-					   (set! eqfnc 'equal?))
-					  
-					  ((memq eqfnc '(#f eq?))
-					   (set! eqfnc leqf))))
-				  (and (= (length p) 3)
-				       (constant-arg p)))
-				 
-				 ((char-ci=? string-ci=? =)
-				  (and (or (not eqfnc)
-					   (eq? eqfnc (car p)))
-				       (set! eqfnc (car p))
-				       (= (length p) 3)
-				       (constant-arg p)))
+			     (define collect-vals
+			       (let ()
+				 (define (constant-arg p)
+				   (if (code-constant? (cadr p))
+				       (set! vals (cons (cadr p) vals))
+				       (and (code-constant? (caddr p))
+					    (set! vals (cons (caddr p) vals)))))
 				 
-				 ((eof-object?)
-				  (upgrade-eqf)
-				  (set! vals (cons #<eof> vals)))
+				 (define (upgrade-eqf)
+				   (set! eqfnc (case eqfnc 
+						 ((string=? string-ci=? = equal?) 'equal?)
+						 ((#f eq?) 'eq?)
+						 (else 'eqv?))))
 				 
-				 ((not)
-				  (upgrade-eqf)
-				  (set! vals (cons #f vals)))
-				 
-				 ((boolean?) 
-				  (upgrade-eqf)
-				  (set! vals (cons #f (cons #t vals))))
-				 
-				 ((zero?)
-				  (if (memq eqfnc '(#f eq?)) (set! eqfnc 'eqv?))
-				  (set! vals (cons 0 (cons 0.0 vals))))
-				 
-				 ((null?)
-				  (upgrade-eqf)
-				  (set! vals (cons () vals)))
-				 
-				 ((memq memv member)
-				  (cond ((eq? (car p) 'member)
-					 (set! eqfnc 'equal?))
-					
-					((eq? (car p) 'memv)
-					 (set! eqfnc (if (eq? eqfnc 'string=?) 'equal? 'eqv?)))
-					
-					((not eqfnc)
-					 (set! eqfnc 'eq?)))
-				  (and (= (length p) 3)
-				       (quoted-pair? (caddr p))
-				       (set! vals (append (cadr (caddr p)) vals))))
-				 
-				 (else #f)))
+				 (lambda (p)
+				   ;; = can't share: (equal? 1 1.0) -> #f, so (or (not x) (= x 1)) can't be simplified
+				   ;;   except via member+morally-equal? but that brings in float-epsilon and NaN differences.
+				   ;;   We could add both: 1 1.0 as in cond?
+				   ;;
+				   ;; another problem: using memx below means the returned value of the expression
+				   ;;   may not match the original (#t -> '(...)), so perhaps we should add a one-time
+				   ;;   warning about this, and wrap it in (pair? (mem...)) as an example.
+				   ;;
+				   ;; and another thing... the original might be broken: (eq? x #(1)) where equal?
+				   ;;   is more sensible, but that also changes the behavior of the expression:
+				   ;;   (memq x '(#(1))) may be #f (or #t!) when (member x '(#(1))) is '(#(1)).
+				   ;;
+				   ;; I think I'll try to turn out a more-or-less working expression, but warn about it.
+				   
+				   (case (car p) 
+				     ((string=? equal?)
+				      (set! eqfnc (if (or (not eqfnc)
+							  (eq? eqfnc (car p)))
+						      (car p)
+						      'equal?))
+				      (and (= (length p) 3)
+					   (constant-arg p)))
+				     
+				     ((char=?)
+				      (if (memq eqfnc '(#f char=?))
+					  (set! eqfnc 'char=?)
+					  (if (not (eq? eqfnc 'equal?))
+					      (set! eqfnc 'eqv?)))
+				      (and (= (length p) 3)
+					   (constant-arg p)))
+				     
+				     ((eq? eqv?)
+				      (let ((leqf (car (->eqf (->lint-type ((if (code-constant? (cadr p)) cadr caddr) p))))))
+					(cond ((not eqfnc) 
+					       (set! eqfnc leqf))
+					      
+					      ((or (memq leqf '(#t equal?))
+						   (not (eq? eqfnc leqf)))
+					       (set! eqfnc 'equal?))
+					      
+					      ((memq eqfnc '(#f eq?))
+					       (set! eqfnc leqf))))
+				      (and (= (length p) 3)
+					   (constant-arg p)))
+				     
+				     ((char-ci=? string-ci=? =)
+				      (and (or (not eqfnc)
+					       (eq? eqfnc (car p)))
+					   (set! eqfnc (car p))
+					   (= (length p) 3)
+					   (constant-arg p)))
+				     
+				     ((eof-object?)
+				      (upgrade-eqf)
+				      (set! vals (cons #<eof> vals)))
+				     
+				     ((not)
+				      (upgrade-eqf)
+				      (set! vals (cons #f vals)))
+				     
+				     ((boolean?) 
+				      (upgrade-eqf)
+				      (set! vals (cons #f (cons #t vals))))
+				     
+				     ((zero?)
+				      (if (memq eqfnc '(#f eq?)) (set! eqfnc 'eqv?))
+				      (set! vals (cons 0 (cons 0.0 vals))))
+				     
+				     ((null?)
+				      (upgrade-eqf)
+				      (set! vals (cons () vals)))
+				     
+				     ((memq memv member)
+				      (cond ((eq? (car p) 'member)
+					     (set! eqfnc 'equal?))
+					    
+					    ((eq? (car p) 'memv)
+					     (set! eqfnc (if (eq? eqfnc 'string=?) 'equal? 'eqv?)))
+					    
+					    ((not eqfnc)
+					     (set! eqfnc 'eq?)))
+				      (and (= (length p) 3)
+					   (quoted-pair? (caddr p))
+					   (set! vals (append (cadr (caddr p)) vals))))
+				     
+				     (else #f)))))
 
 			     (do ((fp (cdr form) (cdr fp)))
 				 ((not (pair? fp)))
@@ -3751,12 +3757,14 @@
 						   (equal? (cadr arg1) (cadr arg2)))
 					  (if (and (rational? (caddr arg1))
 						   (rational? (caddr arg2)))
-					      (return `(,(car arg1) 
-							,(cadr arg1)
-							,((if (memq (car arg1) '(< <=)) min max) (caddr arg1) (caddr arg2)))))
-					  (return `(,(car arg1) 
-						    ,(cadr arg1)
-						    (,(if (memq (car arg1) '(< <=)) 'min 'max) ,(caddr arg1) ,(caddr arg2)))))
+					      (return (list (car arg1) 
+							    (cadr arg1)
+							    ((if (memq (car arg1) '(< <=)) min max) (caddr arg1) (caddr arg2)))))
+					  (return (list (car arg1) 
+							(cadr arg1)
+							(list (if (memq (car arg1) '(< <=)) 'min 'max) 
+							      (caddr arg1) 
+							      (caddr arg2)))))
 
 					(when (and (or (equal? (caddr arg1) (cadr arg2))     ; (and (op x y) (op y z))
 						       (equal? (cadr arg1) (caddr arg2))     ; (and (op x y) (op z x))
@@ -3844,7 +3852,7 @@
 
 				      (when (and (member (cadr arg1) arg2)
 						 (memq (car arg2) '(string=? char=? eq? eqv? equal?))
-						 (null? (cdddr arg2))
+						 (len=2? (cdr arg2))
 						 (hash-table-ref bools (car arg1))
 						 (or (and (code-constant? (cadr arg2))
 							  (compatible? (car arg1) (->lint-type (cadr arg2))))
@@ -4115,7 +4123,7 @@
 							     (and (len>1? val)         ;   and redundant tests
 								  (hash-table-ref booleans (car val))
 								  (any? (lambda (p)
-									  (and (pair? p)
+									  (and (len>1? p)
 									       (subsumes? (car val) (car p))
 									       (equal? (cadr val) (cadr p))))
 									new-form)))))
@@ -4142,16 +4150,19 @@
 			(fix:<= . <=) (fx<= . <=) (flo:<= . <=) (fl<= . <=)
 			(fix:>= . >=) (fx>= . >=) (flo:>= . >=) (fl>= . >=)
 			(fxlogand . logand) (fxlogior . logior) (fxlogxor . logxor) (fxlognot . lognot)
+			(fxand . logand) (fxior . logior) (fxxor . logxor) (fxnot . lognot)
 			(fix:quotient . quotient) (fix:min . min) (fix:max . max) (fxquotient . quotient)
+			(flmax . max) (flmin . min)
 			(flo:abs . abs) (flabs . abs)
 			(flo:sin . sin) (flsin . sin)
 			(flo:cos . cos) (flcos . cos)
 			(flo:tan . tan) (fltan . tan)
+			(flo:asin . asin) (flasin . asin)
+			(flo:acos . acos) (flacos . acos)
 			(flo:atan . atan) (flatan . atan)
 			(flo:sqrt . sqrt) (flsqrt . sqrt)
-			(flo:exp . exp) (flexp . exp)
+			(flo:exp . exp) (flexp . exp) (flexpt . expt)
 			(flo:log . log) (fllog . log))))
-	
 	(lambda (tree)
 	  (cond ((assq tree dumb-ops) => cdr)
 		((or (not (pair? tree))
@@ -4396,7 +4407,7 @@
 					  (pair? (cddr arg1)) 
 					  (pair? (cddr arg2))
 					  (equal? (cddr arg1) (cddr arg2)))
-				     `(/ (+ ,(cadr arg1) ,(cadr arg2)) ,@(cddr arg1)))
+				     (cons '/ (cons (list '+ (cadr arg1) (cadr arg2)) (cddr arg1))))
 				    
 				    (else (cons '+ val)))))
 			   (else 
@@ -4509,18 +4520,16 @@
 					       (eq? op2 'exp))
 					  (list 'exp (list '+ (cadr arg1) (cadr arg2))))
 					 
-					 ((and (eq? op1 'sqrt)        ; (* (sqrt x) (sqrt y)) -> (sqrt (* x y))
-					       (eq? op2 'sqrt))
-					  (list 'sqrt (list '* (cadr arg1) (cadr arg2))))
+					 ;; (* (sqrt x) (sqrt y)) -> (sqrt (* x y)) if x and y not both negative?
 					 
 					 ((not (and (eq? op1 'expt) (eq? op2 'expt)))
 					  (cons '* val))
 					 
 					 ((equal? (cadr arg1) (cadr arg2)) ; (* (expt x y) (expt x z)) -> (expt x (+ y z))
-					  `(expt ,(cadr arg1) (+ ,(caddr arg1) ,(caddr arg2))))
+					  (list 'expt (cadr arg1) (list '+ (caddr arg1) (caddr arg2))))
 					 
 					 ((equal? (caddr arg1) (caddr arg2)) ; (* (expt x y) (expt z y)) -> (expt (* x z) y)
-					  `(expt (* ,(cadr arg1) ,(cadr arg2)) ,(caddr arg1)))
+					  (list 'expt (list '* (cadr arg1) (cadr arg2)) (caddr arg1)))
 					 
 					 (else (cons '* val)))))
 				
@@ -4543,7 +4552,7 @@
 			       0) 
 			      
 			      ((memv -1 val)
-			       `(- (* ,@(remove -1 val))))    ; (* -1 x y) -> (- (* x y))
+			       (list '- (cons '* (remove -1 val))))    ; (* -1 x y) -> (- (* x y))
 			      
 			      ((let search ((args val))       ; (* x (if y 0 z) w) -> (if y 0 (* x z w))
 				 (and (pair? args)
@@ -4589,7 +4598,7 @@
 						 (if (null? div)
 						     (cons '* (reverse mul))
 						     `(/ (* ,@(reverse mul)) ,@(reverse div))))))
-				   (if (equal? expr form)
+				   (if (morally-equal? expr form) ; possible NaN
 				       form
 				       (simplify-numerics expr env)))))
 			      
@@ -4663,8 +4672,8 @@
 			      (let ((true (caddr arg2))
 				    (false (cadddr arg2)))
 				`(if ,(cadr arg2)
-				     ,(if (eqv? true 0) arg1 `(- ,arg1 ,true))
-				     ,(if (eqv? true 0) `(- ,arg1 ,false) arg1))))
+				     ,(if (eqv? true 0) arg1 (list '- arg1 true))
+				     ,(if (eqv? true 0) (list '- arg1 false) arg1))))
 			     
 			     (else (cons '- args)))))
 		    (else 
@@ -5027,14 +5036,16 @@
 		      
 		      ((memq (caar args) '(* + / -)) ; maybe extend this list
 		       `(,(car form) (,(caar args) ,@(map (lambda (p)
-							    (if (and (pair? p)
+							    (if (and (len=2? p)
 								     (memq (car p) '(inexact->exact exact)))
 								(cadr p)
 								p))
 							  (cdar args)))))
 		      ((and (eq? (caar args) 'random)
 			    (eq? (car form) 'floor)
+			    (null? (cddar args))
 			    (float? (cadar args))
+			    (not (nan? (cadar args)))   ; (floor (random nan.0))!
 			    (= (floor (cadar args)) (cadar args)))
 		       (list 'random (floor (cadar args))))
 		      
@@ -5069,6 +5080,8 @@
 		      ((and (eq? (caar args) '-)      ; (abs (- x)) -> (abs x)
 			    (len=1? (cdar args)))
 		       (list (car form) (cadar args)))
+
+		      ;; make-polar as arg never happens
 		      
 		      (else (cons (car form) args))))
 	      (hash-table-set! h 'abs numabs)
@@ -5262,7 +5275,7 @@
 				    (integer-result? (caar args))
 				    (and (eq? (caar args) 'random)
 					 (pair? (cdar args))
-					 (rational? (cadar args))))))
+					 (rational? (cadar args)))))) ; perhaps (exact (random 10.0)) -> (random 10)??
 		       (car args))
 		      ((number? (car args))
 		       (catch #t (lambda () (inexact->exact (car args))) (lambda any (cons (car form) args))))
@@ -5991,7 +6004,7 @@
 						    (and (every? code-constant? elements)
 							 elements)
 						    (and (every? (lambda (e)
-								   (and (pair? e)
+								   (and (len=2? e)
 									(eq? (car e) 'quote)))
 								 elements)
 							 (map caadr elements))))))
@@ -7293,7 +7306,7 @@
 	    ;; not string->number -- no point in copying a number and it's caught below
 	    (when (pair? (cdr form))
 
-	      (if (code-constant? (cadr form))
+	      (if (every? code-constant? (cdr form))
 		  (let ((seq (checked-eval form)))
 		    (if (not (eq? seq :checked-eval-error))   ;  (symbol->string 'abs) -> "abs"
 			(lint-format "perhaps ~A -> ~A~A" caller
@@ -8034,7 +8047,7 @@
 						       ((string-append)        ; (apply string-append (map ...))
 							(if (eq? (car cdr-args) 'symbol->string)
 							    (lint-format "perhaps ~A" caller ; (apply string-append (map symbol->string ...))
-									 (lists->string form `(format #f "~{~A~}" ,(cadr cdr-args))))
+									 (lists->string form (list 'format #f "~{~A~}" (cadr cdr-args))))
 							    (if (simple-lambda? (car cdr-args))
 								(let ((body (caddar cdr-args)))
 								  (if (and (len=3? body)
@@ -8105,7 +8118,8 @@
 			      (= (car ary) (cdr ary)) ; else () as last, so can't suggest (car last)
 			      (= (cdr ary) (- len 2)))
 			 (lint-format "perhaps ~A" caller
-				      (lists->string form `(,@(copy (cdr form) (make-list (- len 2))) (car ,(list-ref form (- len 1))))))))))))
+				      (lists->string form (append (copy (cdr form) (make-list (- len 2)))
+								  (list (list 'car (list-ref form (- len 1)))))))))))))
 
 	 (hash-special 'apply sp-apply))
 
@@ -8126,7 +8140,7 @@
 			 (lint-format "format with one argument takes a string: ~A" caller (truncated-list->string form)))
 
 			((and (string? (cadr form))        ; (format "str") -> str
-			      (eq? head 'format)    ; not snd-display
+			      (eq? head 'format)           ; not snd-display, error, etc
 			      (not (char-position #\~ (cadr form))))
 			 (lint-format "perhaps ~A" caller (lists->string form (cadr form)))))
 		  env)
@@ -8237,15 +8251,14 @@
 			    (lint-format "perhaps ~A" caller             ; (format #f "~S" x) -> (object->string x)
 					 (lists->string form (cons 'object->string
 								   (cons (cadddr form) 
-									 (if (string=? (caddr form) "~A") '(#f) ()))))))))
+									 (if (string=? (caddr form) "~A") '(#f) ())))))))
+		    (if (and (eq? (cadr form) 't)                          ; (format t " ")
+			     (not (var-member 't env)))
+			(lint-format "'t in ~A should probably be #t" caller (truncated-list->string form))))
 		  
 		  (if (any? all-caps-warning (cdr form))
 		      (lint-format "There's no need to shout: ~A" caller (truncated-list->string form)))
 
-		  (if (and (eq? (cadr form) 't)                          ; (format t " ")
-			   (not (var-member 't env)))
-		      (lint-format "'t in ~A should probably be #t" caller (truncated-list->string form)))
-		  
 		  (if (not (string? control-string))
 		      (if (not (proper-list? args))
 			  (lint-format "~S looks suspicious" caller form))
@@ -8261,7 +8274,8 @@
 					    (if (> ndirs nargs) "too few" "too many")
 					    (truncated-list->string form)))
 
-			      ((and (not (cadr form))                   ; (format #f "123")
+			      ((and (eq? head 'format)
+				    (not (cadr form))                   ; (format #f "123")
 				    (zero? ndirs)
 				    (not (char-position #\~ control-string)))
 			       (lint-format "~A could be ~S, (format is a no-op here)" caller (truncated-list->string form) (caddr form)))
@@ -8276,22 +8290,22 @@
 			 (case (car a)
 			   ((number->string)
 			    (if (null? (cddr a))                      ; (format #f "~A" (number->string x))
-				(lint-format "format arg ~A could be ~A" caller a (cadr a))
+				(lint-format "~A arg ~A could be ~A" caller head a (cadr a))
 				(if (and (pair? (cddr a))
 					 (integer? (caddr a))
 					 (memv (caddr a) '(2 8 10 16)))
 				    (if (= (caddr a) 10)
-					(lint-format "format arg ~A could be ~A" caller a (cadr a))
-					(lint-format "format arg ~A could use the format directive ~~~A and change the argument to ~A" caller a
+					(lint-format "~A arg ~A could be ~A" caller head a (cadr a))
+					(lint-format "~A arg ~A could use the format directive ~~~A and change the argument to ~A" caller head a
 						     (case (caddr a) ((2) "B") ((8) "O") (else "X"))
 						     (cadr a))))))
 			   
 			   ((symbol->string list->string object->string vector->string) ; (format #f "~A" (symbol->string 'x))
-			    (lint-format "format arg ~A could be ~A" caller a (cadr a)))
+			    (lint-format "~A arg ~A could be ~A" caller head a (cadr a)))
 			   
 			   ((make-string)                             ; (format #f "~A" (make-string len c))
 			    (if (pair? (cddr a))
-				(lint-format "format arg ~A could use the format directive ~~NC and change the argument to ... ~A ~A ..." caller a
+				(lint-format "~A arg ~A could use the format directive ~~NC and change the argument to ... ~A ~A ..." caller head a
 					     (cadr a) (if (char? (caddr a)) (format #f "~W" (caddr a)) (caddr a)))))
 			   
 			   ((apply)
@@ -8300,17 +8314,29 @@
 				(lint-format "use ~~{...~~} rather than ~A: ~A" caller (cadr a) a)))
 			   
 			   ((string-append)                           ; (format #f "~A" (string-append x y))
-			    (lint-format "format appends strings, so ~A seems wasteful" caller a)))))
+			    (if (eq? head 'format)
+				(lint-format "format appends strings, so ~A seems wasteful" caller a))))))
 		     args)))))
 	  (hash-special 'format sp-format))
 	
-	;; ---------------- error ----------------
+	;; ---------------- error/throw ----------------
 	(let ()
 	  (define (sp-error caller head form env)
-	    (if (any? all-caps-warning (cdr form))
-		(lint-format "There's no need to shout: ~A" caller (truncated-list->string form))))
-	  (hash-special 'error sp-error))
-	
+	    (when (pair? (cdr form))
+	      (let* ((tag (cadr form))
+		     (eq (eqf tag env)))
+		(if (string? tag)
+		    (lint-format "~A's first argument should be a catchable tag, not ~S" caller head tag)
+		    (if (not (member eq '((eq? eq?) (#t #t))))
+			(lint-format "~A tag ~S is unreliable (catch uses eq? to match tags)" caller 'error tag)))
+		(if (and (pair? (cddr form))
+			 (string? (caddr form))
+			 (proper-list? (cdddr form)))
+		    ((hash-table-ref special-case-functions 'format) caller head form env)))))
+
+	  (hash-special 'error sp-error)
+	  (hash-special 'throw sp-error))
+
 	;; ---------------- sort! ----------------
 	(let ()
 	 (define (sp-sort caller head form env)
@@ -8362,10 +8388,11 @@
 				(null? (cdddr str)))
 		       (lint-format "perhaps ~A" caller 
 				    (lists->string form 
-						   (if (and (integer? (caddr form))
-							    (integer? (caddr str)))
-						       (list 'substring (cadr str) (+ (caddr str) (caddr form)))
-						       (list 'substring (cadr str) (list '+ (caddr str) (caddr form)))))))
+						   (list 'substring (cadr str)
+							 (if (and (integer? (caddr form))
+								  (integer? (caddr str)))
+							     (+ (caddr str) (caddr form))
+							     (list '+ (caddr str) (caddr form)))))))
 		     
 		     ;; end indices are complicated -- since this rarely happens, not worth the trouble
 		     (if (eqv? (caddr form) 0)   ;  (substring x 0) -> (copy x)
@@ -8465,10 +8492,11 @@
 			     (eq? (caadr form) 'list-tail))
 			(lint-format "perhaps ~A" caller      ; (list-tail (list-tail x 1) 2) -> (list-tail x 3)
 				     (lists->string form 
-						    (if (and (integer? (caddr form))
-							     (integer? (caddr (cadr form))))
-							(list 'list-tail (cadadr form) (+ (caddr (cadr form)) (caddr form)))
-							(list 'list-tail (cadadr form) (list '+ (caddr (cadr form)) (caddr form))))))))))
+						    (list 'list-tail (cadadr form)
+							  (if (and (integer? (caddr form))
+								   (integer? (caddr (cadr form))))
+							      (+ (caddr (cadr form)) (caddr form))
+							      (list '+ (caddr (cadr form)) (caddr form))))))))))
 	  (hash-special 'list-tail sp-list-tail))
 	
 	;; ---------------- eq? ----------------
@@ -8572,7 +8600,7 @@
 			
 		  ;; (equal? a (list b)) and equivalents happens a lot, but is the extra consing worse than 
 		  ;;    (and (pair? a) (equal? (car a) b) (null? (cdr a))) -- code readability seems more important here
-		  
+
 		  (cond ((or (eq? (car eq1) 'equal?)
 			     (eq? (car eq2) 'equal?))
 			 (if (eq? head 'equal?)
@@ -8587,10 +8615,10 @@
 			 (if (eq? head 'eqv?)
 			     (if specific-op                    ; (eqv? (integer->char x) #\null)
 				 (lint-format "~A could be ~A in ~S" caller head specific-op form))
-				 (lint-format "~A ~A be eqv?~A in ~S" caller head 
-					      (if (eq? head 'eq?) "should" "could") 
-					      (if specific-op (format #f " or ~A" specific-op) "")
-					      form)))
+			     (lint-format "~A ~A be eqv?~A in ~S" caller head 
+					  (if (eq? head 'eq?) "should" "could") 
+					  (if specific-op (format #f " or ~A" specific-op) "")
+					  form)))
 			
 			((not (or (eq? (car eq1) 'eq?)
 				  (eq? (car eq2) 'eq?))))
@@ -8610,6 +8638,17 @@
 				      form))))))
 	  (hash-special 'eqv? sp-eqv?)
 	  (hash-special 'equal? sp-eqv?))
+
+	(let ()
+	  (define (sp-morally-equal caller head form env)
+	    (if (and (= (length form) 3)
+		     (code-constant? (cadr form))
+		     (code-constant? (caddr form)))
+		(lint-format "perhaps ~A" caller
+			     (lists->string form
+					    (apply morally-equal? (cdr form))))))
+	  (hash-special 'morally-equal? sp-morally-equal))
+
 	
 	;; ---------------- map for-each ----------------
 	(let ()
@@ -8656,7 +8695,7 @@
 									 (cddr form))))
 							  (if (eq? head 'for-each)
 							      (cons (cadr form) args)
-							      `(list (,(cadr form) , at args))))))))
+							      (list 'list (cons (cadr form) args))))))))
 		    ;; 2 happens a lot, but introduces evaluation order quibbles
 		    ;;   we used to check for values if list arg -- got 4 hits!
 
@@ -9307,21 +9346,12 @@
 	   (lambda (caller head form env)
 	     (if (len=2? form)
 		 (let ((arg (cadr form)))
-		   (if (and (pair? arg)
+		   (if (and (len>1? arg)
 			    (eq? (car arg) 'quote)
 			    (symbol? (cadr arg))            ;  (*s7* 'vector-print-length)
 			    (not (hash-table-ref s7-fields (cadr arg))))
 		       (lint-format "unknown *s7* field: ~A" caller arg)))))))
 	
-	;; ---------------- throw ----------------
-	(hash-special 'throw 
-	 (lambda (caller head form env)
-	   (if (pair? (cdr form))
-	       (let* ((tag (cadr form))
-		      (eq (eqf tag env)))
-		 (if (not (member eq '((eq? eq?) (#t #t))))
-		     (lint-format "~A tag ~S is unreliable (catch uses eq? to match tags)" caller 'throw tag))))))
-	
 	;; ---------------- make-hash-table ----------------
 	(hash-special 'make-hash-table 
 	 (lambda (caller head form env)
@@ -9408,7 +9438,7 @@
 				  (lists->string form      ;  (cons* (symbol->string v) " | " (w)) -> (cons (symbol->string v) (cons " | " (w)))
 						 (if (any-null? (cadddr form))
 						     (list 'list (cadr form) (caddr form))
-						     `(cons ,(cadr form) (cons ,@(cddr form))))))))))
+						     (list 'cons (cadr form) (cons 'cons (cddr form))))))))))
 	  (hash-special 'cons* sp-cons*))
 
 	;; ---------------- the-environment etc ----------------
@@ -9900,7 +9930,8 @@
 			  ((do)
 			   (if (len>1? (cdr arg))
 			       (let ((end+res (caddr arg)))
-				 (check-arg (if (len>1? end+res)
+				 (check-arg (if (and (pair? end+res)
+						     (> (length end+res) 1))
 						(list-ref end+res (- (length end+res) 1))
 						())))))
 			  
@@ -9908,7 +9939,8 @@
 			   (if (len>1? (cdr arg))
 			       (for-each
 				(lambda (clause)
-				  (if (and (len>1? clause)
+				  (if (and (pair? clause)
+					   (> (length clause) 1)
 					   (not (eq? (cadr clause) '=>)))
 				      (check-arg (list-ref clause (- (length clause) 1)))))
 				(cddr arg))))
@@ -10458,10 +10490,9 @@
 		       (when (> (length hist) 2) ; an experiment -- if all refs are by list-ref (in effect) suggest a vector
 			 (let ((init (var-initial-value local-var)))
 			   ;; (format *stderr* "hist: ~A~%init: ~A~%outer: ~A~%" hist init outer-form)
-			   (when (pair? init)
-			     
-			     ;; list->vector
-			     (if (and (or (memq (car init) '(list make-list string->list vector->list))
+			   (when (and (pair? init)
+				      ;; list->vector
+				      (or (memq (car init) '(list make-list string->list vector->list))
 					  (and (eq? (car init) 'quote)
 					       (pair? (cdr init))
 					       (pair? (cadr init))))
@@ -10473,10 +10504,10 @@
 							 (memq (car p) '(list-ref list-set! length reverse map for-each
 									 list->vector list->string list? pair? null? quote)))))
 					      hist))
-				 (lint-format "~A could be a vector, rather than a list" caller vname))
+			     (lint-format "~A could be a vector, rather than a list" caller vname))))
 			     ;; string->byte-vector got no hits (see tmp)
 			     ;; vector->int|float-vector is mostly test stuff
-			     )))
+			     ;; there are only a few a-lists>20 in len
 		       ;; --------
 
 		       (let ((first (car hist)))                               ; all but the initial binding have to match this
@@ -10524,7 +10555,7 @@
 						     (+ lint-left-margin 4) #\space
 						     ;;        "probably" here because the accesses could have hidden protective assumptions
 						     ;;          i.e. full accessor is not valid at point of let binding
-						     `(,vname (,new-op ,@(tree-subst (var-initial-value local-var) vname (cdr first))))
+						     (list vname (cons new-op (tree-subst (var-initial-value local-var) vname (cdr first))))
 						     (truncated-list->string outer-form))))))))))))
 		 
 		 ;; translate to dilambda fixing arg if necessary and mention generic set!
@@ -10739,7 +10770,7 @@
 						vname (truncated-list->string (var-initial-value local-var)) (var-definer local-var))))
 			     
 			     ;; not ref'd or set
-			     (if (not (memq vname '(documentation signature iterator? defanimal)))
+			     (if (not (memq vname '(documentation signature iterator? define-animal)))
 				 (let ((val (if (pair? (var-history local-var)) (car (var-history local-var)) (var-initial-value local-var)))
 				       (def (var-definer local-var)))
 				   (let-temporarily ((line-number (if (eq? caller top-level:) -1 line-number)))
@@ -11063,7 +11094,7 @@
 										     (and (pair? new-unused)
 											  (set! unused new-unused)))))
 									    (cddr p))))
-							   (lint-format "~A parameter ~A is a function whose parameter~P ~{~A~^, ~} ~A never used~%" caller
+							   (lint-format "~A parameter ~A is a function whose parameter~P ~{~A~^, ~} ~A never used" caller
 									vname (car p) 
 									(length unused) 
 									(map (lambda (p) (+ p 1)) (reverse unused))
@@ -11442,7 +11473,7 @@
 					      ;; (... (define f14 (lambda (x y) (if (positive? x) (+ x y) y))) (+ (f11 1 2) (f14 1 2))) ->
 					      ;;    (... (let ((f14 (lambda (x y) (if (positive? x) (+ x y) y)))) (+ (f11 1 2) (f14 1 2))))
 					      (lint-format "the scope of ~A could be reduced: ~A" caller name
-							   (truncated-lists->string `(... ,expr ,use-expr , at end-dots)
+							   (truncated-lists->string (cons '... (cons expr (cons use-expr end-dots)))
 										    `(... (,letx ((,name ,(caddr expr))) 
 												 ,use-expr)
 											  , at end-dots)))))
@@ -11451,7 +11482,7 @@
 					    ;;    (... (set! x (+ x y)) ...)
 					    (lint-format "use set! to redefine ~A: ~A" caller name
 							 (lists->string (cons '... (cons use-expr end-dots))
-									`(... (set! ,name ,(caddr use-expr)) , at end-dots))))
+									(cons '... (cons (list 'set! name (caddr use-expr)) end-dots)))))
 					   ((pair? (cadr use-expr))
 					    (if (symbol? (caadr use-expr))
 						(let-temporarily ((target-line-length 120))
@@ -11877,7 +11908,7 @@
 					    (lint-format "assuming ~A is not a macro, perhaps ~A" caller
 							 func-name
 							 (lists->string (list '... (car start-repeats) '...) 
-									`(for-each ,func (vector ,@(reverse args)))))))))))))
+									(list 'for-each func (cons 'vector (reverse args)))))))))))))
 		    (set! repeats 0)
 		    (set! repeat-arg 0)
 		    (set! start-repeats fs)))
@@ -12641,16 +12672,18 @@
 			     (let ((cc1 (simplify-boolean (list 'not (car c1)) () () env)))
 			       (lint-format "perhaps ~A" caller 
 					    (lists->string form 
-							   (if (null? (cddr c2)) 
-							       (list 'and cc1 (cadr c2))
-							       `(and ,cc1 (begin ,@(cdr c2))))))))
+							   (list 'and cc1
+								 (if (null? (cddr c2))
+								     (cadr c2)
+								     (cons 'begin (cdr c2))))))))
 			(and (pair? (car c1))  ; (cond ((null? x) #t) (else y)) -> (or (null? x) y)
 			     (eq? (return-type (caar c1) env) 'boolean?)
 			     (lint-format "perhaps ~A" caller
 					  (lists->string form 
-							 (if (null? (cddr c2)) 
-							     (list 'or (car c1) (cadr c2))
-							     (list 'or (car c1) (cons 'begin (cdr c2)))))))))
+							 (list 'or (car c1)
+							       (if (null? (cddr c2)) 
+								   (cadr c2)
+								   (cons 'begin (cdr c2)))))))))
 	       (and (boolean? (cadr c2))
 		    (null? (cddr c2))
 		    (not (equal? (cadr c1) (cadr c2)))
@@ -12710,7 +12743,7 @@
 			 (if (equal? eqv-select (cadr p)) 
 			     (values (caddr p) (other-case (caddr p)))
 			     (values (cadr p) (other-case (cadr p)))))
-			(else               (error "oops"))))
+			(else               (error 'wrong-type-arg "oops"))))
 		    (cdr test))
 	       exprs))))
     
@@ -12911,30 +12944,34 @@
 	(let ((inner-name (cadr inner))
 	      (inner-args (caddr inner))
 	      (inner-body (cdddr inner)))
+	  (when (pair? inner-body)
 	  (do ((p outer-args (cdr p))
 	       (a inner-args (cdr a)))
 	      ((or (null? p)
 		   (not (pair? a))
 		   (not (pair? (car a)))
+		   (pair? (caar a))
 		   (and (not (eq? (car p) (caar a)))
 			(tree-memq (car p) inner-body)))
 	       ;; args can be reversed, but rarely match as symbols
 	       (when (and (null? p)
 			  (or (null? a)
 			      (and (null? (cdr a))
+				   (pair? (cdar a))
 				   (code-constant? (cadar a)))))
-		 (let* ((args-match (do ((p outer-args (cdr p))
-					 (a inner-args (cdr a)))
-					((or (null? p)
-					     (not (eq? (car p) (caar a)))
-					     (not (eq? (caar a) (cadar a))))
-					 (null? p))))
+		 (let* ((args-match (do ((p1 outer-args (cdr p1))
+					 (a1 inner-args (cdr a1)))
+					((or (null? p1)
+					     (null? (cdar a1))
+					     (not (eq? (car p1) (caar a1)))
+					     (not (eq? (caar a1) (cadar a1))))
+					 (null? p1))))
 			(args-aligned (and (not args-match)
-					   (do ((p outer-args (cdr p))
-						(a inner-args (cdr a)))
-					       ((or (null? p)
-						    (not (eq? (car p) (cadar a))))
-						(null? p))))))
+					   (do ((p1 outer-args (cdr p1))
+						(a1 inner-args (cdr a1)))
+					       ((or (null? p1)
+						    (not (eq? (car p1) (cadar a1))))
+						(null? p1))))))
 		   (when (or args-match args-aligned)
 		     (let ((definer (if (null? a) 'define 'define*))
 			   (extras (if (and (pair? a)
@@ -12955,7 +12992,7 @@
 									  (reverse result))
 								       (set! result (cons (caar a) result))))
 							       , at extras)
-						      ,@(tree-subst outer-name inner-name inner-body)))))))))))))
+						      ,@(tree-subst outer-name inner-name inner-body))))))))))))))
     
     (define (set!? form env)
       (and *report-any-!-as-setter* ; (inc! x) when inc! is unknown, assume it sets x
@@ -12982,42 +13019,43 @@
 
 
     (define (check-definee caller sym form env)
-      (cond ((keyword? sym)               ; (define :x 1)
-	     (lint-format "keywords are constants ~A" caller sym))
-	    
-	    ((and (eq? sym 'pi)           ; (define pi (atan 0 -1))
-		  (member (caddr form) '((atan 0 -1)
-					 (acos -1)
-					 (* 2 (acos 0))
-					 (* 4 (atan 1))
-					 (* 4 (atan 1 1)))))
-	     (lint-format "~A is one of its many names, but pi is a predefined constant in s7" caller (caddr form)))
-	    
-	    ((constant? sym)              ; (define most-positive-fixnum 432)
-	     (lint-format "~A is a constant in s7: ~A" caller sym form))
-	    
-	    ((eq? sym 'quote)
-	     (lint-format "either a stray quote, or a real bad idea: ~A" caller (truncated-list->string form)))
-	    
-	    ((pair? sym)
-	     (check-definee caller (car sym) form env))
-	    
-	    ((let ((v (var-member sym env)))
-	       (and (var? v)
-		    (eq? (var-definer v) 'define-constant)
-		    (len>2? form)
-		    (not (equal? (caddr form) (var-initial-value v)))
-		    v))
-	     => (lambda (v)
-		  (let ((line (if (and (pair? (var-initial-value v))
-				       (positive? (pair-line-number (var-initial-value v))))
-				  (format #f "(line ~D): " (pair-line-number (var-initial-value v)))
-				  "")))
-		    (lint-format "~A in ~A is already a constant, defined ~A~A" caller sym
-				 (truncated-list->string form)
-				 line
-				 (truncated-list->string (var-initial-value v))))))))
-				   
+      (when (pair? (cddr form))
+	(cond ((keyword? sym)               ; (define :x 1)
+	       (lint-format "keywords are constants ~A" caller sym))
+	      
+	      ((and (eq? sym 'pi)           ; (define pi (atan 0 -1))
+		    (member (caddr form) '((atan 0 -1)
+					   (acos -1)
+					   (* 2 (acos 0))
+					   (* 4 (atan 1))
+					   (* 4 (atan 1 1)))))
+	       (lint-format "~A is one of its many names, but pi is a predefined constant in s7" caller (caddr form)))
+	      
+	      ((constant? sym)              ; (define most-positive-fixnum 432)
+	       (lint-format "~A is a constant in s7: ~A" caller sym form))
+	      
+	      ((eq? sym 'quote)
+	       (lint-format "either a stray quote, or a real bad idea: ~A" caller (truncated-list->string form)))
+	      
+	      ((pair? sym)
+	       (check-definee caller (car sym) form env))
+	      
+	      ((let ((v (var-member sym env)))
+		 (and (var? v)
+		      (eq? (var-definer v) 'define-constant)
+		      (len>2? form)
+		      (not (equal? (caddr form) (var-initial-value v)))
+		      v))
+	       => (lambda (v)
+		    (let ((line (if (and (pair? (var-initial-value v))
+					 (positive? (pair-line-number (var-initial-value v))))
+				    (format #f "(line ~D): " (pair-line-number (var-initial-value v)))
+				    "")))
+		      (lint-format "~A in ~A is already a constant, defined ~A~A" caller sym
+				   (truncated-list->string form)
+				   line
+				   (truncated-list->string (var-initial-value v)))))))))
+    
     (define binders (let ((h (make-hash-table)))
 		      (for-each
 		       (lambda (op)
@@ -13417,7 +13455,7 @@
 		      (hash-walker op define-walker))
 		    '(define define* define-constant 
 		      define-macro define-macro* define-bacro define-bacro* define-expansion
-		      definstrument defanimal define-envelope        ; for clm
+		      definstrument define-animal define-envelope        ; for clm
 		      define-public define*-public defmacro-public define-inlinable 
 		      define-integrable define^)))                   ; these give more informative names in Guile and scmutils (MIT-scheme))
 
@@ -13566,7 +13604,13 @@
 			   (begin
 			     (if (memq (car settee) '(vector-ref list-ref string-ref hash-table-ref))
 				 ;; (set! (vector-ref v 0) 3)
-				 (lint-format "~A as target of set!~A" caller (car settee) (truncated-list->string form)))
+				 (lint-format "~A as target of set!~A" caller (car settee) (truncated-list->string form))
+				 (if (and (eq? (car settee) 'symbol-access)
+					  (len>1? setval)
+					  (eq? (car setval) 'lambda)
+					  (list? (cadr setval))
+					  (not (= (length (cadr setval)) 2)))
+				     (lint-format "symbol-access function should take 2 arguments: ~A" caller (truncated-list->string form))))
 			     (lint-walk caller settee env) ; this counts as a reference since it's by reference so to speak
 			     
 			     ;; try type check (dilambda signatures)
@@ -13614,6 +13658,7 @@
 
 		       ((cond)                      ; (set! x (cond (z w) (else x))) -> (if z (set! x w)) -- this never happens
 			(if (and (= (length setval) 3)
+				 (pair? (caddr setval))
 				 (memq (caaddr setval) '(#t else))
 				 (null? (cddr (caddr setval)))
 				 (null? (cddadr setval)))
@@ -13786,9 +13831,10 @@
 							   ;;          (if x (f y) (g y)) -> ((if x f g) y)
 							   ;; but f and g can't be or/and unless there are no expressions
 							   ;;   I now like all of these -- originally found them odd: CL influence!
-							   (if (equal? true-op test)
-							       `((or ,test ,false-op) , at true-rest)
-							       `((if ,test ,true-op ,false-op) , at true-rest)))
+							   (cons (if (equal? true-op test)
+								     (list 'or test false-op)
+								     (list 'if test true-op false-op))
+								 true-rest))
 							  
 							  ((and (eq? (caadr diff) #t)
 								(not (cadadr diff)))
@@ -13882,9 +13928,9 @@
 						 ;; (if A (+ B B E C) (+ D D E C)) -> (+ (if A (+ B B) (+ D D)) E C)
 						 (lint-format "perhaps ~A" caller
 							      (lists->string form 
-									     `(,true-op 
-									       (if ,expr ,tp ,tq)
-									       ,@(car headdiff)))))))))))))))
+									     (cons true-op 
+										   (cons (list 'if expr tp tq)
+											 (car headdiff))))))))))))))))
 		       ;;    (when (and (pair? true)...)
 		       ;; end tree-subst section
 		       
@@ -13966,7 +14012,7 @@
 								  (if (pair? (car false))
 								      (list (list (caar false) '...))
 								      (list (car false) '...)))))))
-					(lists->string form `(cond (,nexpr , at nfalse) , at true-rest)))))
+					(lists->string form (cons 'cond (cons (cons nexpr nfalse) true-rest))))))
 
 		       ;; true-op = case happens a lot, but never in a way that (not expr)->false can be combined in the case
 
@@ -14000,8 +14046,8 @@
 							(lists->string form 
 								       (simplify-boolean
 									(if (not false)
-									    `(and ,expr (not ,true-test) ,true-false)
-									    `(if (and ,expr (not ,true-test)) ,true-false ,false))
+									    (list 'and expr (list 'not true-test) true-false)
+									    (list 'if (list 'and expr (list 'not true-test)) true-false false))
 									() () env)))))
 				   
 				   ;; (if a (if b d e) (if c d e)) -> (if (if a b c) d e)? reversed does not happen.
@@ -14052,7 +14098,7 @@
 			   (case false-op
 			     ((cond)                 ; (if a A (cond...)) -> (cond (a  A) ...)
 			      (when (proper-list? false-rest)
-				(lint-format "perhaps ~A" caller (lists->string form `(cond (,expr ,true) , at false-rest)))))
+				(lint-format "perhaps ~A" caller (lists->string form (cons 'cond (cons (list expr true) false-rest))))))
 			     
 			     ((if)
 
@@ -14153,7 +14199,7 @@
 		       (if (pair? false)
 			   (let ((false-test (and (pair? false-rest) (car false-rest))))
 			     (if (and (eq? false-op 'if)   ; (if x 3 (if (not x) 4)) -> (if x 3 4)
-				      (len>1? false-rest)
+				      (> (or (length false-rest) 0) 1) ; proper-list and len>1?
 				      (not (side-effect? test env)))
 				 (if (or (equal? test false-test) 
 					 (equal? expr false-test))
@@ -14192,7 +14238,7 @@
 						     (member setval test)) ; that's all there's room for
 						(let ((f (if (equal? settee (if (memq test-op '(< <=)) rel-arg1 rel-arg2)) 'max 'min)))
 						  (lint-format "perhaps ~A" caller
-							       (lists->string form `(set! ,settee (,f , at true-rest)))))))))
+							       (lists->string form (list 'set! settee (cons f true-rest)))))))))
 				       
 				       ;; (if (<= (list-ref ind i) 32) (list-set! ind i 32)) -> (list-set! ind i (max (list-ref ind i) 32))
 				       ((list-set! vector-set!)
@@ -14212,7 +14258,7 @@
 								  (if (memq test-op '(< <=)) 'max 'min)))))
 					      (if mx-op
 						  (lint-format "perhaps ~A" caller
-							       (lists->string form `(,true-op ,settee ,index (,mx-op ,@(cdr test)))))))))))))))
+							       (lists->string form (list true-op settee index (cons mx-op (cdr test)))))))))))))))
 			     
 			     (cond ((not (pair? true-rest)))
 				   ((not (eq? (car true) 'if))                ; (if test0 (if test1 expr)) -> (if (and test0 test1) expr)
@@ -14248,6 +14294,7 @@
 			       (let ((f (if (equal? (cadr test) (if (memq (car test) '(< <=)) true false))
 					    'min 'max)))
 				 (lint-format "perhaps ~A" caller (lists->string form (list f true false))))))
+		       ;; no hits for negative?/positive? and 0/0.0 here
 		       
 		       (cond ((eq? expr #t) ; (if #t #f) -> #f
 			      (lint-format "perhaps ~A" caller (lists->string form true)))
@@ -14284,10 +14331,11 @@
 				      ;; (if x y #t) -> (or (not x) y)
 				      (lint-format "perhaps ~A" caller
 						   (let ((nexpr (if false 
-								    (if (and (len>1? expr) 
-									     (eq? (car expr) 'not))
-									(list 'or (cadr expr) true) 
-									(list 'or (list 'not expr) true))
+								    (list 'or (if (and (len>1? expr) 
+										       (eq? (car expr) 'not))
+										  (cadr expr)
+										  (list 'not expr))
+									  true)
 								    (list 'and expr true))))
 						     (lists->string form (simplify-boolean nexpr () () env)))))))
 			     ((= len 4)
@@ -14570,7 +14618,7 @@
 						(lists->string form 
 							       (if (not (or (side-effect? expr env)
 									    (tree-set-member (map car sv) expr)))
-								   `(let ,(reverse sv) (if ,expr ,ntv ,nfv))
+								   (list 'let (reverse sv) (list 'if expr ntv nfv))
 								   (let ((uniq (find-unique-name form)))
 								     `(let ((,uniq ,expr))
 									(let ,(reverse sv)
@@ -14594,7 +14642,7 @@
 						     (eq? (car expr) 'not))
 						(cons 'unless (cons (cadr expr) (unbegin true)))
 						(cons 'when (cons expr (unbegin true)))))))
-		       
+
 		       (if (symbol? expr)
 			   (set-ref expr caller form env)
 			   (lint-walk caller expr env))
@@ -14624,9 +14672,9 @@
 		      (lint-format "perhaps ~A"
 				   caller 
 				   (truncated-lists->string form
-							    `(,(if (eq? head 'when) 'unless 'when)
-							      ,(cadr test)
-							      ,@(cddr form)))))
+							    (cons (if (eq? head 'when) 'unless 'when)
+								  (cons (cadr test)
+									(cddr form))))))
 		  (if (never-false test)
 		      (lint-format "~A test is never false: ~A" caller head (truncated-list->string form))
 		      (if (never-true test)       ; (unless #f...)
@@ -14679,10 +14727,10 @@
 									     (cadr form))
 									#f)
 								       ,@(cdr body))))
-			  (when (or (and (memq (car body) '(when unless))
-					 (len>1? body))
-				    (and (eq? (car body) 'if)
-					 (len=3? body)))
+			  (when (case (car body) 
+				  ((when unless) (len>1? body))
+				  ((if)		 (len=3? body))
+				  (else #f))
 			    (let ((new-test (let ((inner-test (if (eq? (car body) 'unless)
 								  (list 'not (cadr body))
 								  (cadr body)))
@@ -14797,7 +14845,7 @@
 								 (cdr form))))
 						;; (cond ((< x 1) (+ x 1)) ((< y 1) (+ x 3)) (else (+ x 2))) -> (+ x (cond ((< x 1) 1) ((< y 1) 3) (else 2)))
 						(lint-format "perhaps ~A" caller
-							     (lists->string form `(, at header (cond , at middle) , at trailer))))))))
+							     (lists->string form (append header (list (cons 'cond middle)) trailer))))))))
 				    (partition-form (cdr form) (if else-error (- len 1) len)))))
 			       
 			       ;; not escaping else here because the trailing args might be evaluated first
@@ -14814,20 +14862,20 @@
 				     ;; (cond (X (f y z)) (Y (f y z)) (Z (f y z))) -> (if (or X Y Z) (f y z))
 				     (lint-format "perhaps ~A" caller
 						  (lists->string form
-								 `(if (or ,@(map car (cdr form)))
-								      ,first-result)))
+								 (list 'if (cons 'or (map car (cdr form))) first-result)))
 				     ;; here we need an else clause else (apply #<unspecified> args)
 				     (if (memq (car else-clause) '(#t else))
 					 ;; (cond (X (f y z)) (else (g y z))) -> ((cond (X f) (else g)) y z)
 					 (lint-format "perhaps ~A" caller
 						      (lists->string form
-								     `((cond ,@(map (lambda (c)
-										      (list (car c) (caadr c)))
-										    (cdr form)))
-								       ,@(cdr first-result))))))))))))
+								     (cons (cons 'cond (map (lambda (c)
+											      (list (car c) (caadr c)))
+											    (cdr form)))
+									   (cdr first-result))))))))))))
 		   ;; ----------------
 		   (let ((falses ())
-			 (trues ()))
+			 (trues ())
+			 (prev-bool #f))
 		     (for-each
 		      (lambda (clause)
 			(set! ctr (+ ctr 1))
@@ -14835,7 +14883,8 @@
 			    (begin
 			      (set! all-eqv #f)
 			      (set! has-combinations #f)
-			      ;; ; (cond 1)
+			      (set! prev-bool #f)
+			      ;; (cond 1)
 			      (lint-format "cond clause ~A in ~A is not a pair?" caller clause (truncated-list->string form))) 
 			    (begin
 			      
@@ -14846,6 +14895,25 @@
 						   (not (and (pair? (cdr clause))
 							     (eq? (cadr clause) '=>))) ; case sends selector, but cond sends test result
 						   (cond-eqv? (car clause) eqv-select #t))))
+
+			      ;; look for successive clause tests where the earlier includes the current (number? followed by integer? etc)
+			      ;;   slightly sloppy I guess -- the arg could be self-modifying!
+			      (if (and (pair? clause)
+				       (len>1? (car clause))
+				       (hash-table-ref bools (caar clause)))
+				  (begin
+				    (if (and prev-bool
+					     (equal? (cadar prev-clause) (cadar clause))  ; args match
+					     (subsumes? prev-bool (caar clause)))         ; previous test already included this case
+					(lint-format "~A makes ~A pointless in ~A~A~%" caller
+						     (car prev-clause) 
+						     (car clause)
+						     (truncated-list->string form)
+						     (if (eq? prev-bool 'list?)
+							 (format #f "~%~NC(r5rs list? is proper-list? in s7)" (+ lint-left-margin 4) #\space)
+							 "")))
+				    (set! prev-bool (caar clause)))
+				  (set! prev-bool #f))
 			      
 			      (if (and (pair? prev-clause)
 				       (not has-combinations)
@@ -14919,7 +14987,7 @@
 											  (else ,@(unbegin (cadddr first-sequel))))))))))
 					     ((when unless)
 					      ;; (cond (a A) (else (when b B)))
-					      (when (len>1? (cdr first-sequel)) 
+					      (when (> (length first-sequel) 2)
 						(lint-format "else clause could be folded into the outer cond: ~A" caller 
 							     (lists->string form 
 									    (append (copy form (make-list ctr))
@@ -15090,7 +15158,7 @@
 		       (cond ((equal? (simplify-boolean (car c1) () () env)
 				      (simplify-boolean (list 'not (car c2)) () () env))
 			      (lint-format "perhaps ~A" caller  ; (cond ((x) y) ((not (x)) z)) -> (cond ((x) y) (else z))
-					   (lists->string form `(cond ,c1 (else ,@(cdr c2))))))
+					   (lists->string form (list 'cond c1 (cons 'else (cdr c2))))))
 			     ((and (pair? (cdr c2))
 				   (not (pair? (cadr c2)))
 				   (not (memq (car c2) '(else #t)))
@@ -15365,9 +15433,9 @@
 		       (lint-format "perhaps ~A" caller
 				    (lists->string form
 						   (let ((not-reps 
-							  (simplify-boolean (if (null? (cdr reps))
-										(list 'not (car reps))
-										(list 'not (cons 'and reps)))
+							  (simplify-boolean (list 'not (if (null? (cdr reps))
+											   (car reps)
+											   (cons 'and reps)))
 									    () () env)))
 						     `(,@(copy form (make-list head-len))
 						       (,not-reps
@@ -15411,7 +15479,7 @@
 								   (if (and (pair? (car clause))
 									    (eq? (caar clause) 'not))
 								       (cons 'unless (append (cdar clause) (cdr clause)))
-								       (cons 'when (cons (car clause) (cdr clause))))))))))
+								       (cons 'when clause))))))))
 
 			 (when has-else ; len > 1 here
 			   (let ((last-clause (list-ref form (- len 1)))) ; not the else branch! -- just before it.
@@ -15534,10 +15602,10 @@
 									 ((eq? (car a) #t)
 									  (if (not (car b))
 									      nexpr
-									      (simplify-boolean `(or ,nexpr ,(car b)) () () env)))
+									      (simplify-boolean (list 'or nexpr (car b)) () () env)))
 									 
 									 ((car a) ; i.e a is not #f
-									  `(if ,nexpr ,(car a) ,(car b)))
+									  (list 'if nexpr (car a) (car b)))
 									 
 									 ((eq? (car b) #t)
 									  (simplify-boolean (list 'not nexpr) () () env))
@@ -15570,11 +15638,13 @@
 				 ;; (cond ((and A B) c) (B d) (else e)) -> (cond (B (if A c d)) (else e))
 				 (lint-format "perhaps ~A" caller
 					      (lists->string form
-							     `(cond (,(car arg2)
-								     (if ,((if (equal? (car arg2) (cadar arg1)) caddar cadar) arg1)
-									 ,(cadr arg1)
-									 ,(cadr arg2)))
-								    ,@(cdddr form))))))
+							     (cons 'cond 
+								   (cons (list (car arg2)
+									       (list 'if 
+										     ((if (equal? (car arg2) (cadar arg1)) caddar cadar) arg1)
+										     (cadr arg1)
+										     (cadr arg2)))
+									 (cdddr form)))))))
 
 			     (if (and (len=1? last-clause)   ; (cond ... ((or ...)) (else ...)) -> (cond ... (else (or ... ...)))
 				      (pair? (car last-clause))
@@ -15665,6 +15735,9 @@
 		      (selector (cadr form))
 		      (suggest made-suggestion))
 
+                  ;(let ((leaves (tree-leaves form)) (branches (length (cddr form))))
+                  ;  (if (> leaves 100) (format *stderr* "case: ~A in ~A: ~A~%" leaves branches (/ (* 1.0 leaves) branches))))
+
 		  ;; ----------------
 		  ;; if regular case + else -- just like cond above
 		  (let ((len (- (length form) 2))) ; number of clauses
@@ -15750,7 +15823,7 @@
 								   (middle (if (len=1? (car first-clause))
 									       (list 'eqv? (cadr form) (caar first-clause))
 									       `(memv ,(cadr form) ',(car first-clause)))))
-							      (lists->string form `(, at header (if ,middle ,fmid ,emid) , at trailer)))))))
+							      (lists->string form (append header (cons (list 'if middle fmid emid) trailer))))))))
 					 ;; len > 2 so use case in the revision
 					 (let ((middle (map (lambda (c)
 							      (if (and else-error 
@@ -15966,13 +16039,28 @@
 						    ;; else-foldable as (((keys-from-test) true-branch) (else false-branch))
 						    (set! else-foldable 
 							  (if (pair? (cdddr expr))
-							      `(,(case-branch (cadr expr) selector (list (caddr expr)))
-								(else ,(cadddr expr)))
+							      (list (case-branch (cadr expr) selector (list (caddr expr)))
+								    (list 'else (cadddr expr)))
 							      (list (case-branch (cadr expr) selector (cddr expr))))))))))))))
 			     
 			     (lint-walk-open-body caller (car form) exprs env))))
 		     (cddr form))
 
+		    (let ((key-phrase 
+			   (let ((keylen (length all-keys)))
+			     (cond ((< keylen 20))
+				   ((every? char? all-keys)
+				    "vector (indexed by char->integer)")
+				   ((every? (lambda (k) (and (integer? k) (<= 0 k 1000))) all-keys)
+				    "vector")
+				   ((> keylen 40)
+				    "hash-table")))))
+		      (when (string? key-phrase)
+			(lint-format "perhaps use a ~A rather than a case statement:~%~NC~A" caller
+				     key-phrase
+				     (+ lint-left-margin 4) #\space
+				     (truncated-list->string form))))
+
 		    (if (and has-else
 			     (pair? result)
 			     (not else-foldable))
@@ -16005,8 +16093,8 @@
 				   (when (len>1? clause)             ; ignore clauses that are messed up
 				     (let ((keys (car clause))
 					   (exprs (cdr clause)))
-				       (when (and (not (eq? keys 'else))
-						  (not (equal? exprs else-exprs)))
+				       (unless (or (eq? keys 'else)
+						   (equal? exprs else-exprs))
 					 (let ((prev (member exprs new-keys-and-exprs (lambda (a b) (equal? a (cdr b))))))
 					   (if prev
 					       (let* ((cur-clause (car prev))
@@ -16373,7 +16461,7 @@
 		   ;; do -> for-each
 		   (when (len=1? step-vars)
 		     (let ((var (car step-vars)))
-		       (when (and (len>1? (cdr var))
+		       (when (and (len>2? var)
 				  (len>1? (caddr var))
 				  (len=1? (caddr form))
 				  (pair? (caaddr form))
@@ -16660,16 +16748,17 @@
 			     (lint-format "perhaps ~A" caller 
 					  (lists->string form 
 							 (if (eq? vname (cadadr p))
-							     (if (and (pair? (cddr p))
-								      (len>1? (caddr p))
-								      (memq (caaddr p) '(else #t t)))
-								 (if (null? (cddr (caddr p)))
-								     (list 'or vvalue (cadr (caddr p)))
-								     (list 'or vvalue (cons 'begin (cdaddr p))))
-								 (list 'or vvalue 
-								      (cons 'cond (cddr p))))
-							     `(cond (,vvalue => ,(caadr (cadr p))) 
-								    ,@(cddr p))))))
+							     (list 'or vvalue
+								   (if (and (pair? (cddr p))
+									    (len>1? (caddr p))
+									    (memq (caaddr p) '(else #t t)))
+								       (if (null? (cddr (caddr p)))
+									   (cadr (caddr p))
+									   (cons 'begin (cdaddr p)))
+								       (cons 'cond (cddr p))))
+							     (cons 'cond 
+								   (cons (list vvalue '=> (caadr (cadr p)))
+									 (cddr p)))))))
 			   
 			   (when (and (null? (cddr p))         ; (let ((x (+ y 1))) (abs x)) -> (abs (+ y 1))
 				      (eq? vname (cadr p)))    ;   not tree-subst or trailing (pair) args: the let might be forcing evaluation order
@@ -16702,13 +16791,15 @@
 					    (len=2? if-false)
 					    (eq? vname (cadr if-false)))
 				   (let ((else-clause (if (eq? if-true vname)
-							  `((else #f))
+							  (list (list 'else #f))
 							  (if (and (pair? if-true)
 								   (tree-unquoted-member vname if-true))
 							      :oops! ; if the let var appears in the else portion, we can't do anything with =>
-							      `((else ,if-true))))))
+							      (list (list 'else if-true))))))
 				     (unless (eq? else-clause :oops!)
-				       (lint-format "perhaps ~A" caller (lists->string form `(cond (,vvalue => ,(car if-false)) , at else-clause))))))))
+				       (lint-format "perhaps ~A" caller 
+						    (lists->string form 
+								   (cons 'cond (cons (list vvalue '=> (car if-false)) else-clause)))))))))
 			     
 			     (let ((crf #f))
 			       ;; all this stuff still misses (cond ((not x)...)) and (set! y (if x (cdr x)...)) i.e. need embedding in this case
@@ -16718,14 +16809,24 @@
 						   (equal? (cadr p) (list 'not vname)))
 					      (and (pair? vvalue)
 						   (memq (car vvalue) '(assoc assv assq member memv memq))
-						   (pair? (cadr p))
+						   (len>1? (cadr p))         ; (let ((x (memq z y))) (if (pair? x) (g x))) -> (cond ((memq z y) => g))
 						   (or (eq? (caadr p) 'pair?)
+						       (and (eq? (caadr p) 'list?)
+							    (lint-format "in ~A, ~A can't be null so pair? might be better" caller p vname)
+							    #t)
 						       (and (eq? (caadr p) 'null?)
 							    ;; (let ((x (assoc y z))) (if (null? x) (g x)))
 							    (lint-format "in ~A, ~A can't be null because ~A in ~A only returns #f or a pair" 
 									 caller p vname (car vvalue) (truncated-list->string (car varlist)))
 							    #f))
-						   (eq? (cadadr p) vname)))
+						   (eq? (cadadr p) vname))
+					      (and (memq (car vvalue) '(char-position string-position string->number length arity)) ; length|arity only in s7
+						   (or (eq? (cadr p) vname)
+						       (and (len>1? (cadr p))
+							    (or (memq (caadr p) '(number? complex?))
+								(and (not (eq? (car vvalue) 'string->number))
+								     (eq? (caadr p) 'integer?)))
+							    (eq? (cadadr p) vname)))))
 					  
 					  (or (and (len=2? (caddr p))   ; one func arg
 						   (or (eq? vname (cadr (caddr p)))
@@ -16751,11 +16852,11 @@
 					      (null? (cdddr p))))
 				 (let ((else-clause (if (pair? (cdddr p))
 							(if (eq? (cadddr p) vname)
-							    `((else #f)) ; this stands in for the local var
+							    (list (list 'else #f)) ; this stands in for the local var
 							    (if (and (pair? (cadddr p))
 								     (tree-unquoted-member vname (cadddr p)))
 								:oops! ; if the let var appears in the else portion, we can't do anything with =>
-								`((else ,(cadddr p)))))
+								(list (list 'else (cadddr p)))))
 							(case (car p)
 							  ((and) '((else #f)))
 							  ((or)  '((else #t)))
@@ -16763,7 +16864,9 @@
 				   (unless (eq? else-clause :oops!)
 				     ;; (let ((x (assoc y z))) (if x (cdr x))) -> (cond ((assoc y z) => cdr))
 				     (lint-format "perhaps ~A" caller 
-						  (lists->string form `(cond (,vvalue => ,(or crf (caaddr p))) , at else-clause))))))))
+						  (lists->string form (cons 'cond 
+									    (cons (list vvalue '=> (or crf (caaddr p))) 
+										  else-clause)))))))))
 			   )) ; one var in varlist
 		       
 
@@ -16807,57 +16910,66 @@
 			   ((cond)
 			    ;; happens about a dozen times
 			    (let ((vars (map car (cadr form))))
-			      (if (tree-set-member vars (cdar body))
-				  (call-with-exit
-				   (lambda (quit)
-				     (let ((branch-let #f))
-				       (for-each (lambda (c)
-						   (if (and (not branch-let)
-							    (pair? c)
-							    (side-effect? (car c) env))
-						       (quit))
-						   (when (and (pair? c)
-							      (tree-set-member vars c))
-						     (if branch-let (quit))
-						     (set! branch-let c)))
-						 (cdar body))
-				       (if (and branch-let
+			      (when (tree-set-member vars (cdar body))
+				(call-with-exit
+				 (lambda (quit)
+				   (let ((branch-let #f))
+				     (for-each (lambda (c)
+						 (if (and (not branch-let)
+							  (pair? c)
+							  (side-effect? (car c) env))
+						     (quit))
+						 (when (and (pair? c)
+							    (tree-set-member vars c))
+						   (if branch-let (quit))
+						   (set! branch-let c)))
+					       (cdar body))
+				     (when (and branch-let
 						(not (memq (car branch-let) vars))
 						(not (tree-set-member vars (car branch-let))))
-					   (lint-format "perhaps move the let into the '~A branch: ~A" caller
-							(truncated-list->string branch-let)
-							(lists->string form
+				       (lint-format "perhaps move the let into the '~A branch: ~A" caller
+						    (truncated-list->string branch-let)
+						    (lists->string form
+								   (if (eq? '=> (cadr branch-let))
+								       (if (eq? branch-let (cadar body))
+									   `(cond (,(car branch-let) => (let ,(cadr form) ,@(cddr branch-let))) ...)
+									   `(cond ... (,(car branch-let) => (let ,(cadr form) ,@(cddr branch-let))) ...))
 								       (if (eq? branch-let (cadar body))
 									   `(cond (,(car branch-let) (let ,(cadr form) ,@(cdr branch-let))) ...)
-									   `(cond ... (,(car branch-let) (let ,(cadr form) ,@(cdr branch-let))) ...)))))))))))
+									   `(cond ... (,(car branch-let) (let ,(cadr form) ,@(cdr branch-let))) ...))))))))))))
 			   ((case)
 			    (let ((vars (map car (cadr form)))
 				  (test (cadar body)))
-			      (if (and (not (memq test vars))
-				       (not (tree-set-member vars test))
-				       (tree-set-member vars (cddar body)))
-				  (call-with-exit
-				   (lambda (quit)
-				     (let ((branch-let #f))
-				       (for-each (lambda (c)
-						   (when (and (pair? c)
-							      (tree-set-member vars (cdr c)))
-						     (if branch-let (quit))
-						     (set! branch-let c)))
-						 (cddar body))
-				       (if (proper-list? branch-let)
-					   (lint-format "perhaps move the let into the '~A branch: ~A" caller
-							(truncated-list->string branch-let)
-							(lists->string form
+			      (when (and (not (memq test vars))
+					 (not (tree-set-member vars test))
+					 (tree-set-member vars (cddar body)))
+				(call-with-exit
+				 (lambda (quit)
+				   (let ((branch-let #f))
+				     (for-each (lambda (c)
+						 (when (and (pair? c)
+							    (tree-set-member vars (cdr c)))
+						   (if branch-let (quit))
+						   (set! branch-let c)))
+					       (cddar body))
+				     (when (proper-list? branch-let)
+				       (lint-format "perhaps move the let into the '~A branch: ~A" caller
+						    (truncated-list->string branch-let)
+						    (lists->string form
+								   (if (eq? '=> (cadr branch-let))
+								       (if (eq? branch-let (caddar body))
+									   `(case ,test (,(car branch-let) => (let ,(cadr form) ,@(cddr branch-let))) ...)
+									   `(case ,test ... (,(car branch-let) => (let ,(cadr form) ,@(cddr branch-let))) ...))
 								       (if (eq? branch-let (caddar body))
 									   `(case ,test (,(car branch-let) (let ,(cadr form) ,@(cdr branch-let))) ...)
-									   `(case ,test ... (,(car branch-let) (let ,(cadr form) ,@(cdr branch-let))) ...)))))))))))
+									   `(case ,test ... (,(car branch-let) (let ,(cadr form) ,@(cdr branch-let))) ...))))))))))))
 			   ((when unless) ; no hits -- maybe someday?
 			    (let ((test (cadar body))
 				  (vars (map car (cadr form))))
 			      (unless (or (memq test vars)
 					  (tree-set-member vars test)
-					  (side-effect? test env))
+					  (side-effect? test env)
+					  (not (proper-list? (cddar body))))
 				(lint-format "perhaps move the let inside the ~A: ~A" caller
 					     (caar body)
 					     (truncated-lists->string form `(,(caar body) ,test (let ,(cadr form) ,@(cddar body))))))))))
@@ -16868,9 +16980,10 @@
 		       (when (and (= suggest made-suggestion)
 				  (not named-let)
 				  (< (length varlist) 8)
+				  (every? pair? varlist)
 				  (not (memq (caar body) '(lambda lambda* define define* define-macro)))
 				  (not (and (eq? (caar body) 'set!)
-					    (any? (lambda (v) (eq? (car v) (cadar body))) varlist)))
+					    (any? (lambda (v) (and (eq? (car v) (cadar body)))) varlist)))
 				  (not (any-macro? (caar body) env))
 				  (not (any? (lambda (p)
 					       (and (unquoted-pair? p)
@@ -16902,14 +17015,12 @@
 					caller (lists->string form new-body))))
 		       ) ; null cdr body etc
 		     
-		     (when (and (pair? (cadr form))       ; (let ((x x)) (+ x 1)) -> (+ x 1), (let ((x x))...) does not copy x if x is a sequence
-				(= suggest made-suggestion)
+		     (when (and (pair? (cadr form))         ; (let ((x x)) (+ x 1)) -> (+ x 1), (let ((x x))...) does not copy x if x is a sequence
+				(= suggest made-suggestion) ;   used to check for returned lambda here, but that doesn't matter
 				(every? (lambda (c)       
 					  (and (len>1? c)  ; the usual... (let binding might be messed up)
 					       (eq? (car c) (cadr c))))
-					(cadr form))
-				(not (and (pair? (caddr form))
-					  (memq (caaddr form) '(lambda lambda*)))))
+					(cadr form)))
 		       (let ((vs (map car (cadr form))))
 			 (unless (any? (lambda (p) 
 					 (and (pair? p)
@@ -17022,17 +17133,18 @@
 				       ;; the pattern (set! x y) ... (set! y x) happens a few times (say 5 to 10)
 				       (lint-format "perhaps use let-temporarily here: ~A" caller
 						    (lists->string form
-								   (let ((new-let `(let-temporarily 
-										       ((,saved-name ,(if (pair? first-pos) 
-													  (caddar first-pos) 
-													  saved-name)))
-										     ,@(map (lambda (expr)
-											      (if (or (and (pair? first-pos)
-													   (eq? expr (car first-pos)))
-												      (eq? expr (car last-pos)))
-												  (values)
-												  expr))
-											    body))))
+								   (let ((new-let (cons 'let-temporarily 
+											(cons (list (list saved-name 
+													  (if (pair? first-pos) 
+													      (caddar first-pos) 
+													      saved-name)))
+											      (map (lambda (expr)
+												     (if (or (and (pair? first-pos)
+														  (eq? expr (car first-pos)))
+													     (eq? expr (car last-pos)))
+													 (values)
+													 expr))
+												   body)))))
 								     (if (null? (cdr vars)) ; we know vars is a pair, want len=1
 									 new-let
 									 (list 'let (map (lambda (v)
@@ -17130,14 +17242,15 @@
 								      setval
 								      (list 'let (map (lambda (v) (if (eq? (car v) settee) (values) v)) varlist)
 									    setval))
-								  `(let ,(map (lambda (v)
-										(if (eq? (car v) settee)  ; (let ((x 0)) (set! x 1)...) -> (let ((x 1)) ...)
-										    (list (car v) setval) ; replace initial with set! value
-										    v))
-									      varlist)
-								     ,@(if (null? (cddr body))
-									   (cdr body)
-									   (list (cadr body) '...)))))))
+								  (cons 'let 
+									(cons (map (lambda (v)
+										     (if (eq? (car v) settee)  ; (let ((x 0)) (set! x 1)...) -> (let ((x 1)) ...)
+											 (list (car v) setval) ; replace initial with set! value
+											 v))
+										   varlist)
+									      (if (null? (cddr body))
+										  (cdr body)
+										  (list (cadr body) '...))))))))
 				;; repetition for the moment
 				(when (and (pair? varlist)
 					   (assq settee vars)           ; settee is a local var
@@ -17300,17 +17413,18 @@
 						  varlist))
 				 ;; (let ((xx 0)) (do ((x 1 (+ x 1)) (y x (- y 1))) ((= x 3) xx) (display y))) ->
 				 ;;    (do ((xx 0) (x 1 (+ x 1)) (y x (- y 1))) ...)
-				 (lint-format "perhaps ~A" caller
-					      (lists->string form
-							     (let ((do-form (cdar body)))
-							       (if (null? (cdr body))    ; do is only expr in let
-								   (list 'do (append varlist (car do-form))
-									 '...)
-								   `(do ,(append varlist (car do-form))
-									(,(and (pair? (cadr do-form)) (caadr do-form))
-									 ,@(if (side-effect? (cdadr do-form) env) (cdadr do-form) ())
-									 ,@(cdr body))   ; include rest of let as do return value
-								      ...)))))))))
+				 (let ((do-form (cdar body)))
+				   (if (pair? do-form)
+				       (lint-format "perhaps ~A" caller
+						    (lists->string form
+								   (if (null? (cdr body))    ; do is only expr in let
+								       (list 'do (append varlist (car do-form))
+									     '...)
+								       `(do ,(append varlist (car do-form))
+									    (,(and (pair? (cadr do-form)) (caadr do-form))
+									     ,@(if (side-effect? (cdadr do-form) env) (cdadr do-form) ())
+									     ,@(cdr body))   ; include rest of let as do return value
+									  ...))))))))))
 
 			 (when (and (> (length body) 3)  ; setting this to 1 did not catch anything new
 				    (every? pair? varlist)
@@ -17471,7 +17585,9 @@
 				   ;; (let ((x 1) (y (f g 2))) (let loop ((a (+ x 1)) (b y)) (loop a b))) -> (let loop ((a (+ 1 1)) (b (f g 2))) (loop a b))
 				   (lint-format "perhaps ~A" caller
 						(lists->string form
-							       `(let ,inner-vars ,new-args , at named-body)))))))
+							       (cons 'let 
+								     (cons inner-vars 
+									   (cons new-args named-body)))))))))
 			   
 			   ;; maybe more code than this is worth -- combine lets
 			   (when (and (memq (car inner) '(let let*))
@@ -17585,6 +17701,7 @@
 			      (pair? body)
 			      (pair? (car body))
 			      (eq? (caar body) 'do)
+			      (len>2? (car body))
 			      (< (tree-leaves (cdr body)) *max-cdr-len*))
 		     (let ((inits (if (pair? (cadar body))
 				      (map cadr (cadar body))
@@ -17969,7 +18086,9 @@
 				     (lint-format "perhaps ~A" caller
 						  (case varlist-len
 						    ((1) (lists->string form 
-									`(cond (,(cadr last-var) => ,(caaddr p)) , at else-clause)))
+									(cons 'cond 
+									      (cons (list (cadr last-var) '=> (caaddr p)) 
+										    else-clause))))
 						    ((2) (lists->string form 
 									`(let (,(car varlist))
 									   (cond (,(cadr last-var) => ,(caaddr p)) , at else-clause))))
@@ -18432,9 +18551,9 @@
 				  ;; (call-with-input-file "file" (lambda (p) (read-char p))) -> (call-with-input-file "file" read-char)
 				  (lint-format "perhaps ~A" caller 
 					       (lists->string form 
-							      (if (= len 2)
-								  (list head (caar body))
-								  (list head (cadr form) (caar body)))))
+							      (list head (if (= len 2)
+									     (caar body)
+									     (values (cadr form) (caar body))))))
 				  (let ((cc (make-var :name port
 						      :initial-value (list (case head 
 									     ((call-with-input-string)  'open-input-string)
@@ -18585,12 +18704,12 @@
 		     (lint-walk-body caller (caadr form) (cddr form) new-env))))))
 	
 	(hash-walker 'let-syntax (lambda (caller form env)
-						    (lint-walk-body caller 'define-method (cddr form) env)
-						    env))
+				   (lint-walk-body caller 'define-method (cddr form) env)
+				   env))
 	
 	(hash-walker 'letrec-syntax (lambda (caller form env)
-						       (lint-walk-body caller 'define-method (cddr form) env)
-						       env))
+				      (lint-walk-body caller 'define-method (cddr form) env)
+				      env))
 	
 	;; ---------------- case-lambda ----------------
 	(let ()
@@ -18627,9 +18746,9 @@
 		   (lint-format "perhaps ~A" caller 
 				(lists->string form 
 					       (if doc-string
-						   `(let ((documentation ,doc-string))
-						      (lambda ,(caar body) ,@(cdar body)))
-						   (cons 'lambda (cons (caar body) (cdar body)))))))
+						   (list 'let (list (list 'documentation doc-string))
+						      (cons 'lambda (car body)))
+						   (cons 'lambda (car body))))))
 		  ((2) 
 		   (when (let arglists-equal? ((args1 (caar body))
 					       (args2 (caadr body)))
@@ -18786,10 +18905,11 @@
 				       (set! lvars (sort! lvars (lambda (a b) (< (caddr a) (caddr b)))))
 				       
 				       (if named-let
-					   `(,(car tree) ,(cadr (assq (cadr tree) lvars)) 
+					   `(,(car tree) ,(cadr (assq (cadr tree) lvars))
 					     ,(map (lambda (v) (list (cadr v) (cadddr v))) (cdr lvars))
 					     , at new-body)
-					   `(,(car tree) ,(map (lambda (v) (list (cadr v) (cadddr v))) lvars)
+					   `(,(car tree) 
+					     ,(map (lambda (v) (list (cadr v) (cadddr v))) lvars)
 					     , at new-body)))))
 				  
 				  ((letrec letrec*)
@@ -18810,9 +18930,9 @@
 				     (for-each (lambda (local lv)
 						 (list-set! lv 3 (walker (cadr local) lvars)))
 					       locals lvars)
-				     `(,(car tree) 
-				       ,(map (lambda (v) (list (cadr v) (cadddr v))) lvars)
-				       ,@(walker body (append lvars vars)))))
+				     (cons (car tree) 
+					   (cons (map (lambda (v) (list (cadr v) (cadddr v))) lvars)
+						 (walker body (append lvars vars))))))
 				  
 				  ((do)
 				   (if (not (and (len>1? (cdr tree))
@@ -18883,6 +19003,7 @@
 				  
 				  ((lambda*)
 				   (if (not (and (pair? (cdr tree))
+						 (proper-list? (cddr tree))
 						 (or (symbol? (cadr tree)) 
 						     (proper-list? (cadr tree)))))
 				       (quit))
@@ -19178,7 +19299,8 @@
 							      (format #f "(~A ... (~A ~A))"
 								      (car arg) head
 								      (truncated-list->string (list-ref body len)))))))))
-				     (when (eq? (car arg) 'or)
+				     (when (and (eq? (car arg) 'or)
+						(proper-list? arg))
 				       (let ((else-clause (let ((last-clause (list-ref arg (- (length arg) 1))))
 							    (if (and (pair? last-clause)
 								     (memq (car last-clause) '(error throw)))
@@ -19231,7 +19353,7 @@
 						     (lint-format "perhaps~A~%~NC~A ->~%~NC~A" caller 
 								  disclaimer
 								  (+ lint-left-margin 4) #\space
-								  (lint-pp `(, at header ,(one-call-and-dots (car p)) , at trailer))
+								  (lint-pp (append header (cons (one-call-and-dots (car p)) trailer)))
 								  (+ lint-left-margin 4) #\space
 								  (if (and (memq (caar p) '(let let*))
 									   (list? (cadar p))
@@ -19241,7 +19363,7 @@
 									(if (< (tree-leaves last) 12)
 									    (format #f "(~A ... ~A)"
 										    (caar p)
-										    (lint-pp `(, at header ,last , at trailer)))
+										    (lint-pp (append header (cons last trailer))))
 									    (lint-pp `(let ((_1_ ,(one-call-and-dots (car p))))
 											(, at header _1_ , at trailer)))))
 								      (lint-pp `(let ((_1_ ,(one-call-and-dots (car p))))
@@ -19283,19 +19405,19 @@
 					    (hash-table-ref no-side-effect-functions head)
 					    (not (memq head unsafe-makers)))
 				       (for-each (lambda (p)
-						   (if (let constable? ((cp p))
-							 (and (len>1? cp)
-							      (memq (car cp) '(list vector))
-							      (every? (lambda (inp) 
-									(or (code-constant? inp)
-									    (constable? inp)))
-								      (cdr cp))))
-						       (let ((pval (eval/error caller p)))
-							 (if (not (eq? pval :error))
-							     (lint-format "perhaps ~A -> ~A~A" caller 
-									  (truncated-list->string p)
-									  (if (eq? (car p) 'list) "'" "") 
-									  (object->string pval))))))
+						   (when (let constable? ((cp p))
+							   (and (len>1? cp)
+								(memq (car cp) '(list vector))
+								(every? (lambda (inp) 
+									  (or (code-constant? inp)
+									      (constable? inp)))
+									(cdr cp))))
+						     (let ((pval (eval/error caller p)))
+						       (if (not (eq? pval :error))
+							   (lint-format "perhaps ~A -> ~A~A" caller 
+									(truncated-list->string p)
+									(if (eq? (car p) 'list) "'" "") 
+									(object->string pval))))))
 						 (cdr form)))
 
 				   (when (and (not (= line-number last-simplify-numeric-line-number))
@@ -19356,7 +19478,7 @@
 							 (if (side-effect? test env)
 							     (format #f " (ignoring ~S's possible side-effects)" test)
 							     "")
-							 (lists->string form `(, at header ,middle , at q))))))))))))
+							 (lists->string form (append header (cons middle q)))))))))))))
 			  ((pair? head)
 			   (cond ((not (and (pair? (cdr head))
 					    (memq (car head) '(lambda lambda*)))))
@@ -19459,61 +19581,91 @@
 					(lint-format "perhaps ~A" caller      ; `(,x) -> (list x) 
 						     (lists->string form (list 'list (cadr form)))))))
 			       ((3)
-				(when (pair? (caddr form))
-				  (let ((arg1 (cadr form))
-					(arg2 (caddr form)))
-				    (if (not (or (and (pair? arg1)
-						      (tree-set-member '(#_{apply_values} #_{list} #_{append} unquote) arg1))
-						 (tree-set-member '(#_{append} unquote) arg2)
-						 (tree-set-member '(#_{list} #_{apply_values}) (cdr arg2))))
+				(let ((arg1 (cadr form))
+				      (arg2 (caddr form)))
+				  (if (not (or (and (pair? arg1)
+						    (tree-set-member '(#_{apply_values} #_{append} unquote) arg1))
+					       (and (pair? arg2)
+						    (or (tree-set-member '(#_{append} unquote) arg2)
+							(tree-set-member '(#_{list} #_{apply_values}) (cdr arg2))))))
 					(lint-format "perhaps ~A" caller        ; `(f ,(map g x)) -> (list 'f (map g x))
 						     (lists->string form        ; `(f ,@(map g x)) -> (cons 'f (map g x))
-								    (case (car arg2)
-								      ((#_{apply_values})
-								       (list 'cons arg1 (cadr arg2)))
-								      ((#_{list})
-								       `(list ,arg1 (list ,@(cdr arg2))))
-								      (else 
-								       (list 'list arg1 arg2)))))
-					(if (and (eq? (car arg2) #_{apply_values})
-						 (not (qq-tree? (cadr arg2)))
-						 (pair? arg1)            ; `(, at x , at y) -> (append x y)
+								    (if (pair? arg2)
+									(case (car arg2)
+									  ((#_{apply_values})
+									   (list 'cons (un_{list} arg1) (cadr arg2)))
+									  ((#_{list})
+									   (list 'list (un_{list} arg1) (cons 'list (cdr arg2))))
+									  (else 
+									   (list 'list (un_{list} arg1) arg2)))
+									(list 'list (un_{list} arg1) arg2))))
+					(if (and (len=2? arg1)
 						 (eq? (car arg1) #_{apply_values})
 						 (not (qq-tree? (cadr arg1))))
-					    (lint-format "perhaps ~A" caller
-							 (lists->string form 
-									(list 'append 
-									      (un_{list} (cadr arg1)) 
-									      (un_{list} (cadr arg2))))))))))
-			       
-			       ;; `(+ ,y ,@(map f x)) -> (cons '+ (cons y (map f x)))
-			       ;; `(+ ,y , at x , at z etc) -> (cons '+ (cons y (append x z ...)))
-			       ;; `(f , at x , at y etc) -> (cons 'f (append x y ...))
-			       ;; `(, at x , at y etc) -> (append x y ...)
-			       (else                       ; checked already that form is a proper-list, so the length here is > 3
+					    (if (and (len=2? arg2)
+						     (not (qq-tree? (cadr arg2)))
+						     (eq? (car arg2) #_{apply_values}))  ; `(, at x , at y) -> (append x y)
+						(lint-format "perhaps ~A" caller
+							     (lists->string form 
+									    (list 'append 
+										  (un_{list} (cadr arg1)) 
+										  (un_{list} (cadr arg2)))))
+						(if (not (and (pair? arg2)
+							      (tree-set-member '(#_{apply_values} #_{append} unquote) arg2)))
+						    (lint-format "perhaps ~A" caller     ; `(, at x ,y) -> (append x (list y))
+								 (lists->string form
+										(list 'append 
+										      (un_{list} (cadr arg1))
+										      (list 'list (un_{list} arg2)))))))))))
+
+			       (else                  ; checked already that form is a proper-list, so the length here is > 3
 				(define (safe-av? p)
 				  (and (pair? p)
 				       (eq? (car p) #_{apply_values})
 				       (not (tree-set-member '(#_{apply_values} #_{list} #_{append} unquote) (cdr p)))))
 				  
 				(let ((args (cdr form)))      ; car is #_{list}
-				  (when (every? safe-av? (cddr args))
-				    (if (safe-av? (cadr args))
-					(if (safe-av? (car args))
-					    (lint-format "perhaps ~A" caller
-							 (lists->string form
-									(cons 'append (map cadr args))))
-					    (if (not (tree-set-member '(#_{apply_values} #_{list} #_{append} unquote) (car args)))
-						(lint-format "perhaps ~A" caller
-							     (lists->string form
-									    `(cons ,(car args) (append ,@(map cadr (cdr args))))))))
-					(if (not (or (tree-set-member '(#_{apply_values} #_{list} #_{append} unquote) (car args))
-						     (tree-set-member '(#_{apply_values} #_{list} #_{append} unquote) (cadr args))))
-					    (lint-format "perhaps ~A" caller
-							 (lists->string form
-									(if (null? (cdddr args))
-									    `(cons ,(car args) (cons ,(cadr args) ,(cadr (caddr args))))
-									    `(cons ,(car args) (cons ,(cadr args) (append ,@(map cadr (cddr args)))))))))))))))))
+				  (cond ((not (every? safe-av? (cddr args)))
+					 (if (and (len=3? args)
+						  (safe-av? (car args))   ; `(, at x , at y ,z) -> (append x y (list z)) etc
+						  (safe-av? (cadr args))
+						  (not (and (pair? (caddr args))
+							    (memq (caaddr args) '(#_{apply_values} #_{append} unquote)))))
+					     (lint-format "perhaps ~A" caller
+							  (lists->string form
+									 (list 'append (cadar args) (cadadr args) 
+									       (list 'list (un_{list} (caddr args))))))))
+					
+					;; `(+ ,y ,@(map f x)) -> (cons '+ (cons y (map f x)))
+					;; `(+ ,y , at x , at z etc) -> (cons '+ (cons y (append x z ...)))
+					;; `(f , at x , at y etc) -> (cons 'f (append x y ...))
+					;; `(, at x , at y etc) -> (append x y ...)
+					((safe-av? (cadr args))
+					 (if (safe-av? (car args))
+					     (lint-format "perhaps ~A" caller
+							  (lists->string form
+									 (cons 'append (map cadr args))))
+					     (if (not (tree-set-member '(#_{apply_values} #_{append} unquote) (car args)))
+						 (lint-format "perhaps ~A" caller
+							      (lists->string form
+									     `(cons ,(un_{list} (car args)) (append ,@(map cadr (cdr args)))))))))
+
+					((not (or (tree-set-member '(#_{apply_values} #_{append} unquote) (car args))
+						  (tree-set-member '(#_{apply_values} #_{append} unquote) (cadr args))))
+					 (lint-format "perhaps ~A" caller
+						      (lists->string form
+								     `(cons ,(un_{list} (car args))
+									    (cons ,(un_{list} (cadr args))
+										  ,(if (null? (cdddr args))
+										       (cadr (caddr args))
+										       (cons 'append (map cadr (cddr args)))))))))
+					((and (len=3? args)
+					      (safe-av? (car args))   ; `(, at x ,y , at z) -> (append x (cons y z))
+					      (not (tree-set-member '(#_{apply_values} #_{append} unquote) (cadr args))))
+					 (lint-format "perhaps ~A" caller
+						      (lists->string form
+								     (list 'append (cadar args) 
+									   (list 'cons (un_{list} (cadr args)) (cadr (caddr args))))))))))))))
 		    (let ((vars env))
 		      (for-each
 		       (lambda (f)
@@ -19844,7 +19996,7 @@
 		    (cons #\! (lambda (str)
 				(if (member str '("!optional" "!default" "!rest" "!key" "!aux" "!false" "!true" "!r6rs") string-ci=?) ; for MIT-scheme
 				    (string->keyword (substring str 1))
-				    (if (string=? str "!eof") ; Bigloo?
+				    (if (string=? str "!eof") ; Bigloo? or Chicken? Guile writes it as #<eof> but can't read it
 					(begin
 					  (format outport "~NC#!eof is probably #<eof> in s7~%" lint-left-margin #\space)
 					  #<eof>)
@@ -20198,26 +20350,4 @@
     #f))
 |#
 
-;;; list|vector->let? lst->ht if assoc 
-;;; case->vector|hash named-let->call/exit?
-;;;   it appears that case->vector is always a big win, case->hash less so, alist even less, but still a win
-;;;   the data should be in the closure, not spelled out
-;;; make-list in recur or built-in?
-;;; if x `() `() -- lint could embed the if here and elsewhere
-;;; recur|do->assoc/member/*-position -- didn't I check this?
-;;;
-;;; 3472 3849 4619 12932 14923 16868 17303 18896
-;;; 
-;;; "(let () (define (func x) (if (close-input-port ) (caaddr /) (with-input-from-file 0(let   (make-dilambda (lambda () 1) (lambda (a) a))  (set!  i01+))))) 16868
-;;; "(let () (define (func x) (if (or . 1+0/0i  ) (caaddr (caaadr  /)))) (define (hi) (func (make-hook '(0 0 #f)))) 3472
-;;; "(let () (define (func x) (cond ((byte-vector-ref ) (iterator? 12.)) (else (unless .+2 '((x 1) y . 2)  1  - or  case  quote  . __asdf__  ))))" 14923
-;;; "(let () (define (func x) (lambda* .(lcm  . do  ))) (define (hi) (func (string #\\a #\\null #\\b))) (hi))" 18896
-;;; "(let () (define (func x) (let . `(((x 1)))   )) (define (hi) (func =>)) (hi))" 12923
-;;; "(let () (define (func x) (do . 1  )) (define (hi) (func (cons 1 2))) (hi))" (list 'do (append varlist (car do-form)) '...) 17303
-;;;
-;;; repl complification 
-;;;   (let ((line-len (- (+ end prompt-length 1) start))) (if (>= line-len last-col) (set! end (- (+ end line-len) last-col))))
-;;;   (let ((line-len (- (+ end prompt-length 1) start))) (if (>= line-len last-col) (set! end (- (+ start last-col) prompt-length 1))))
-
-
-;;; 169 28349 696530
+;;; 174 28550 727902
diff --git a/marks-menu.scm b/marks-menu.scm
index 193b348..c98f039 100644
--- a/marks-menu.scm
+++ b/marks-menu.scm
@@ -637,16 +637,15 @@ between two marks,using the granulate generator to fix up the selection duration
     (define loop-data '(0 0 0 0 0 0 1 1))
     
     (define (update-labels start range end sus-rel range-in-secs)
-      (let ((sr2 (* sus-rel 2)))
-	(if range-in-secs
-	    (begin
-	      (change-label start (format #f "~,3F" (/ (loop-data sr2) (srate))))
-	      (change-label range (format #f "~,3F" (/ (- (loop-data (+ 1 sr2)) (loop-data sr2)) (srate))))
-	      (change-label end (format #f "~,3F" (/ (loop-data (+ 1 sr2)) (srate)))))
-	    (begin
-	      (change-label start (format #f "~D" (loop-data sr2)))
-	      (change-label range (format #f "~D" (- (loop-data (+ 1 sr2)) (loop-data sr2))))
-	      (change-label end (format #f "~D" (loop-data (+ 1 sr2))))))))
+      (if range-in-secs
+	  (begin
+	    (change-label start (format #f "~,3F" (/ (loop-data (* sus-rel 2)) (srate))))
+	    (change-label range (format #f "~,3F" (/ (- (loop-data (+ 1 (* sus-rel 2))) (loop-data (* sus-rel 2))) (srate))))
+	    (change-label end (format #f "~,3F" (/ (loop-data (+ 1 (* sus-rel 2))) (srate)))))
+	  (begin
+	    (change-label start (format #f "~D" (loop-data (* sus-rel 2))))
+	    (change-label range (format #f "~D" (- (loop-data (+ 1 (* sus-rel 2))) (loop-data (* sus-rel 2)))))
+	    (change-label end (format #f "~D" (loop-data (+ 1 (* sus-rel 2))))))))
     
     (define (create-loop-dialog)
       (unless (Widget? loop-dialog)
diff --git a/mkinstalldirs b/mkinstalldirs
index 6fbe5e1..4f58503 100755
--- a/mkinstalldirs
+++ b/mkinstalldirs
@@ -1,150 +1,40 @@
 #! /bin/sh
 # mkinstalldirs --- make directory hierarchy
-
-scriptversion=2004-02-15.20
-
-# Original author: Noah Friedman <friedman at prep.ai.mit.edu>
+# Author: Noah Friedman <friedman at prep.ai.mit.edu>
 # Created: 1993-05-16
-# Public domain.
-#
-# This file is maintained in Automake, please report
-# bugs to <bug-automake at gnu.org> or send patches to
-# <automake-patches at gnu.org>.
-
-errstatus=0
-dirmode=""
+# Public domain
 
-usage="\
-Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
-
-Create each directory DIR (with mode MODE, if specified), including all
-leading file name components.
-
-Report bugs to <bug-automake at gnu.org>."
-
-# process command line arguments
-while test $# -gt 0 ; do
-  case $1 in
-    -h | --help | --h*)         # -h for help
-      echo "$usage"
-      exit 0
-      ;;
-    -m)                         # -m PERM arg
-      shift
-      test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
-      dirmode=$1
-      shift
-      ;;
-    --version)
-      echo "$0 $scriptversion"
-      exit 0
-      ;;
-    --)                         # stop option processing
-      shift
-      break
-      ;;
-    -*)                         # unknown option
-      echo "$usage" 1>&2
-      exit 1
-      ;;
-    *)                          # first non-opt arg
-      break
-      ;;
-  esac
-done
+# $Id: mkinstalldirs,v 1.13 1999/01/05 03:18:55 bje Exp $
 
-for file
-do
-  if test -d "$file"; then
-    shift
-  else
-    break
-  fi
-done
-
-case $# in
-  0) exit 0 ;;
-esac
-
-# Solaris 8's mkdir -p isn't thread-safe.  If you mkdir -p a/b and
-# mkdir -p a/c at the same time, both will detect that a is missing,
-# one will create a, then the other will try to create a and die with
-# a "File exists" error.  This is a problem when calling mkinstalldirs
-# from a parallel make.  We use --version in the probe to restrict
-# ourselves to GNU mkdir, which is thread-safe.
-case $dirmode in
-  '')
-    if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
-      echo "mkdir -p -- $*"
-      exec mkdir -p -- "$@"
-    else
-      # On NextStep and OpenStep, the `mkdir' command does not
-      # recognize any option.  It will interpret all options as
-      # directories to create, and then abort because `.' already
-      # exists.
-      test -d ./-p && rmdir ./-p
-      test -d ./--version && rmdir ./--version
-    fi
-    ;;
-  *)
-    if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
-       test ! -d ./--version; then
-      echo "mkdir -m $dirmode -p -- $*"
-      exec mkdir -m "$dirmode" -p -- "$@"
-    else
-      # Clean up after NextStep and OpenStep mkdir.
-      for d in ./-m ./-p ./--version "./$dirmode";
-      do
-        test -d $d && rmdir $d
-      done
-    fi
-    ;;
-esac
+errstatus=0
 
 for file
 do
-  set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
-  shift
-
-  pathcomp=
-  for d
-  do
-    pathcomp="$pathcomp$d"
-    case $pathcomp in
-      -*) pathcomp=./$pathcomp ;;
-    esac
+   set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
+   shift
 
-    if test ! -d "$pathcomp"; then
-      echo "mkdir $pathcomp"
+   pathcomp=
+   for d
+   do
+     pathcomp="$pathcomp$d"
+     case "$pathcomp" in
+       -* ) pathcomp=./$pathcomp ;;
+     esac
 
-      mkdir "$pathcomp" || lasterr=$?
+     if test ! -d "$pathcomp"; then
+        echo "mkdir $pathcomp"
 
-      if test ! -d "$pathcomp"; then
-	errstatus=$lasterr
-      else
-	if test ! -z "$dirmode"; then
-	  echo "chmod $dirmode $pathcomp"
-	  lasterr=""
-	  chmod "$dirmode" "$pathcomp" || lasterr=$?
+        mkdir "$pathcomp" || lasterr=$?
 
-	  if test ! -z "$lasterr"; then
-	    errstatus=$lasterr
-	  fi
-	fi
-      fi
-    fi
+        if test ! -d "$pathcomp"; then
+  	  errstatus=$lasterr
+        fi
+     fi
 
-    pathcomp="$pathcomp/"
-  done
+     pathcomp="$pathcomp/"
+   done
 done
 
 exit $errstatus
 
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
-# End:
+# mkinstalldirs ends here
diff --git a/numerics.scm b/numerics.scm
index 807047f..5213973 100644
--- a/numerics.scm
+++ b/numerics.scm
@@ -78,7 +78,7 @@
 					;0 <= m <= L and -1<= x <= 1 (x real)
   (if (or (not (<= 0 m L)) 
 	  (> (abs x) 1.0))
-      (snd-error "invalid arguments to plgndr")
+      (error 'wrong-type-arg "invalid arguments to plgndr: ~A ~A ~A" L m x)
       (let ((pmm 1.0)
 	    (fact 0.0) 
 	    (somx2 0.0))
@@ -486,7 +486,7 @@
 
     (cond ((zero? m) 0)
 
-	  ((zero? n) (error "divide by zero (sin-m*pi/n n = 0)"))
+	  ((zero? n) (error 'divide-by-zero "divide by zero (sin-m*pi/n n = 0)"))
 
 	  ((= n 1) 0)
 
diff --git a/peak-phases.scm b/peak-phases.scm
index b6a3271..8149c3f 100644
--- a/peak-phases.scm
+++ b/peak-phases.scm
@@ -1770,35 +1770,34 @@
 (vector 33 6.4944429397583 #(0 1 0 0 1 0 1 0 1 1 0 0 1 0 0 1 1 1 1 1 1 1 0 1 1 1 0 0 0 1 1 1 0)
      
      5.602961 #(0.000000 1.602314 1.153414 1.251950 1.483737 0.842898 0.331110 1.775787 1.322292 1.204304 1.308143 0.894156 0.779513 0.992393 1.543652 0.196767 0.377438 0.791269 1.809959 1.067569 0.948715 1.605054 1.761811 1.528262 1.622887 0.603858 1.560497 -0.275070 0.725193 1.894504 0.570411 -0.063928 0.717166)
-     5.600898 #(0.000000 1.565915 1.109943 1.184168 1.378773 0.717596 0.183242 1.605396 1.133788 0.997647 1.072893 0.622377 0.504323 0.695343 1.211677 -0.159322 0.000891 0.374701 1.389316 0.610198 0.476731 1.118406 1.242714 0.986179 1.071299 -0.016109 0.956906 -0.918170 0.056362 -0.800814 -0.129753 -0.803517 -0.055888)
      5.597136 #(0.000000 1.557449 1.088288 1.150465 1.337871 0.662053 0.113020 1.530031 1.050090 0.909972 0.971771 0.522071 0.385177 0.561017 1.072763 -0.306711 -0.153565 0.216767 1.206455 0.419699 0.268764 0.907465 1.030833 0.764615 0.842050 -0.267857 0.704934 -1.182847 -0.198387 -1.081887 -0.424937 -1.088630 -0.351619)
+     5.596725 #(0.000000 1.566022 1.098312 1.164250 1.358443 0.666170 0.123772 1.539713 1.080327 0.949887 1.000744 0.558327 0.425174 0.601125 1.113026 -0.252224 -0.088541 0.265061 1.258875 0.446564 0.313471 0.950131 1.109618 0.844385 0.897432 -0.212241 0.780013 -1.109704 -0.115786 -1.020678 -0.360032 -1.011400 -0.261343)
      )
 
 ;;; 34 odd --------------------------------------------------------------------------------  ; 5.8309518
 (vector 34 6.5771403312683 #(0 0 1 1 0 1 0 1 0 1 1 1 0 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0)
 
-     5.740544 #(0.000000 1.128136 0.272558 -0.038354 0.299624 0.550945 0.313230 0.243494 0.297552 -0.035270 1.018110 0.345979 1.524929 0.448210 1.252682 0.941202 0.533185 0.349491 1.187324 0.383773 0.599245 -0.155984 1.372487 0.578854 1.244062 1.476419 0.215593 0.058496 0.148247 1.077304 1.406503 0.859804 1.327046 0.146527)
      5.736524 #(0.000000 1.147547 0.291150 -0.006695 0.331715 0.598656 0.377280 0.313054 0.385030 0.054407 1.121795 0.464840 1.643084 0.588724 1.379213 1.083268 0.685423 0.507435 1.364150 0.564530 0.787739 0.046245 1.602176 0.800707 1.479490 1.714846 0.475118 0.321271 0.414765 1.347014 1.695461 1.159002 1.635795 0.467652)
      5.735124 #(0.000000 1.151079 0.303275 0.009213 0.352648 0.621401 0.398500 0.340493 0.415657 0.089181 1.158671 0.503098 1.689244 0.630365 1.437198 1.139624 0.747050 0.574490 1.429562 0.636715 0.861565 0.124539 1.677944 0.886280 1.563928 1.805767 0.564016 0.418044 0.516828 1.455556 1.805244 1.274392 1.750370 0.585946)
+
+     5.726763 #(0.000000 0.521088 0.839864 -0.270328 0.106461 0.594493 0.912053 0.335459 0.073864 -0.102740 1.749662 0.269076 -0.400446 1.146608 1.213635 1.316789 0.277153 0.225837 0.820353 0.267439 1.091657 0.638340 0.943946 0.943137 1.375324 -0.060276 1.246654 1.081748 0.490601 1.575344 -0.162170 0.862426 -0.257430 0.979156)
      )
 
 ;;; 35 odd -------------------------------------------------------------------------------- ; 5.9160
 (vector 35 6.7392678260803 #(0 1 1 1 1 1 0 0 1 0 0 0 0 1 1 0 0 1 1 0 0 0 1 0 1 1 0 0 0 0 1 0 1 0 0)
      
      5.833275 #(0.000000 0.446552 1.591598 1.665970 0.393066 0.930519 1.356028 1.466278 0.225797 1.216894 0.009583 0.233020 1.866671 1.148796 1.079614 1.602870 0.201424 1.366765 -0.045388 1.214248 0.402056 0.196949 1.726073 1.538289 -0.146596 -0.105825 1.452686 0.350527 1.133547 0.212285 1.683225 0.967867 0.587559 1.049939 0.968758)
-     5.830949 #(0.000000 0.498937 1.478339 1.602467 0.347616 0.917540 1.301063 1.420209 0.179499 1.261926 0.031275 0.331399 1.875100 1.070562 1.044304 1.606779 0.124432 1.363669 -0.136690 1.213449 0.431774 0.190661 1.701735 1.505925 -0.135468 -0.090922 1.434638 0.184651 1.259885 0.134757 1.603758 0.986421 0.582320 0.983018 0.861243)
      5.829080 #(0.000000 0.497100 1.491890 1.596922 0.345822 0.905314 1.289198 1.408451 0.175537 1.253647 0.017296 0.308648 1.866063 1.066612 1.036810 1.601555 0.120109 1.362578 -0.137194 1.172758 0.396767 0.181785 1.659182 1.493825 -0.172588 -0.136985 1.413668 0.161393 1.212058 0.116371 1.561298 0.937104 0.534780 0.940796 0.811381)
+     5.801532 #(0.000000 0.927725 1.438033 1.774007 -0.034765 1.171294 1.852476 0.032758 0.171011 1.057321 0.072523 0.411003 0.226068 0.608849 1.088831 1.232775 0.200272 1.575286 -0.349548 0.605647 0.182255 -0.103231 1.616568 1.743988 -0.717919 -0.725884 1.098676 0.041994 0.836925 -0.062098 1.045714 0.845090 -0.268575 1.174773 0.082224)
      )
 
 ;;; 36 odd -------------------------------------------------------------------------------- ; 6
 (vector 36 6.8277182579041 #(0 1 1 0 1 1 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 0 1 0 1 0 1 0 0 0 0)
 
-     5.977640 #(0.000000 -0.070466 1.538192 0.984355 0.488221 1.019554 1.547512 1.704002 1.584416 0.668394 -0.001385 0.884114 1.504028 -0.187464 0.437132 1.457048 0.752720 0.480053 1.746828 0.789836 0.816665 1.133277 1.144098 1.330854 0.114924 1.293712 1.538716 1.521496 0.841528 0.693020 1.172435 0.408530 0.666143 -0.084621 1.417045 -0.037001)
      5.976745 #(0.000000 -0.073257 1.533876 0.975969 0.478187 1.010858 1.535830 1.689302 1.568605 0.651527 -0.024395 0.862716 1.478779 -0.214334 0.406925 1.426003 0.719408 0.448022 1.710025 0.750736 0.773696 1.092187 1.101088 1.282764 0.068797 1.243309 1.489191 1.468200 0.785508 0.637704 1.113799 0.348302 0.603604 -0.148385 1.352941 -0.104705)
 
-	;; 35+1
-     6.030643 #(0.000000 1.022108 1.134386 0.040000 1.020689 1.082726 -0.154753 1.098409 0.988397 0.898657 1.161207 0.157216 -0.172638 1.251128 1.003109 0.170160 0.036385 0.822058 1.148915 -0.012280 -0.203882 0.002376 0.142366 -0.019253 0.880987 1.211008 -0.244514 0.790432 -0.315814 0.996657 -0.069816 0.913294 0.063655 0.034201 0.148650 -0.048872)
-     6.023572 #(0.000000 1.006794 1.135292 0.054179 1.034731 1.098175 -0.131238 1.084424 0.944530 0.864373 1.175974 0.171650 -0.115246 1.244948 1.003278 0.206506 0.095902 0.771056 1.143860 -0.009618 -0.227281 -0.055671 0.132916 -0.028444 0.924379 1.277595 -0.228977 0.811154 -0.325012 1.010432 -0.091469 1.009174 0.052639 0.009978 0.088793 -0.099301)
+     5.960025 #(0.000000 0.027789 1.591853 0.857776 0.624960 1.324909 0.156351 -0.230158 1.697016 0.659657 0.520966 1.083004 1.822528 0.222251 0.714424 1.599399 0.814438 0.880832 0.051251 1.142535 1.118282 1.536193 1.725315 1.587074 0.517264 1.709171 0.186771 -0.125580 1.406799 1.306872 1.550984 1.274588 1.346631 0.746111 -0.274969 0.625962)
+     5.957189 #(0.000000 0.038432 1.566182 0.852765 0.623133 1.335230 0.177339 -0.261409 1.689761 0.660972 0.517736 1.113776 1.830477 0.253316 0.715445 1.610776 0.831462 0.915258 0.123471 1.172123 1.129176 1.503725 1.726755 1.608189 0.558348 1.714972 0.234579 -0.115145 1.449076 1.331940 1.562678 1.318186 1.394888 0.813295 -0.247940 0.681896)
      )
 
 ;;; 37 odd -------------------------------------------------------------------------------- ; 6.0827
@@ -1817,7 +1816,7 @@
      ;; 37+1
      6.138688 #(0.000000 1.046261 1.784835 0.956057 1.812170 0.474533 0.170721 0.206638 1.084578 1.210612 0.877325 1.304868 0.216526 1.666615 0.017582 0.377950 1.122637 -0.152317 0.759942 0.908307 1.610556 0.619180 0.252252 1.289240 1.682699 1.456452 0.437125 0.204631 1.313659 1.057657 0.251390 0.015459 0.426277 0.374256 0.211841 0.291412 0.083784 0.055093)
      6.083887 #(0.000000 0.923862 1.611390 0.817918 1.754742 0.426019 -0.073572 0.266086 1.131851 0.939137 0.821284 1.244337 0.020499 1.771350 -0.393124 0.462703 1.202089 0.162178 0.305348 0.967986 1.601121 0.651721 0.401008 1.152776 1.574159 1.381877 0.356957 -0.147015 1.147917 0.879848 0.141473 -0.066297 0.229961 -0.090653 -0.039418 -0.160701 -0.229243 -0.042427)
-     6.071867 #(0.000000 0.944036 1.607201 0.797816 1.718584 0.420065 -0.059045 0.275494 1.154646 0.929597 0.831226 1.201567 0.015578 1.785021 -0.383659 0.450200 1.236941 0.229526 0.311716 0.995680 1.636374 0.653676 0.415881 1.185098 1.583909 1.377065 0.371001 -0.135054 1.163433 0.923979 0.132227 -0.056662 0.272813 -0.091419 -0.074532 -0.117986 -0.224658 -0.054697)
+     6.071192 #(0.000000 0.940257 1.605649 0.794643 1.716848 0.415861 -0.070422 0.262049 1.139575 0.918835 0.812529 1.191545 -0.001925 -0.235160 -0.407750 0.430854 1.210825 0.197239 0.282594 0.966031 1.603055 0.618511 0.387609 1.148863 1.547245 1.342558 0.329760 -0.175102 1.122736 0.874532 0.093959 -0.102716 0.220424 -0.141270 -0.115620 -0.175392 -0.276776 -0.104039)
      )
 
 ;;; 39 odd -------------------------------------------------------------------------------- ; 6.2449
@@ -1832,8 +1831,8 @@
 (vector 40 7.5038495063782 #(0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 1 1 0 0 1 1 0 1 1 1 1 0 0 1 0 1 1 0 1 0 1 0 1 1 1)
 
      6.272478 #(0.000000 1.284197 1.055354 1.062168 0.387815 0.825054 0.121504 1.716073 1.070732 1.544312 0.376494 1.037163 0.380448 0.304545 1.428265 0.150454 0.740589 -1.906896 0.496136 -0.130727 1.453974 1.546206 0.424585 1.220704 1.332527 1.409234 0.400583 1.072058 1.397035 -0.550500 0.327899 1.771283 0.928925 0.550551 1.392166 1.184654 1.462753 1.291611 1.910777 1.578007)
-     6.271470 #(0.000000 1.282926 1.057782 1.060351 0.390936 0.827085 0.122713 1.716376 1.073865 1.544429 0.381570 1.039001 0.385845 0.306548 1.430083 0.149941 0.743880 -1.909303 0.500639 -0.136118 1.457188 1.550354 0.423281 1.220278 1.342030 1.413951 0.403331 1.074537 1.403741 -0.553119 0.335170 1.772882 0.932238 0.555171 1.391653 1.184054 1.458853 1.289849 1.914050 1.583854)
      6.269331 #(0.000000 1.294861 1.141313 1.106097 0.405055 0.791716 0.150416 1.755897 1.078717 1.540848 0.420537 1.081697 0.464806 0.321274 1.347064 0.195720 0.731658 -0.009086 0.519341 -0.124695 1.424567 1.540630 0.338763 1.279036 1.364830 1.454130 0.302572 1.113714 1.404052 -0.565630 0.324138 1.812694 0.904341 0.525469 1.406208 1.209965 1.471676 1.353706 1.903755 1.597218)
+     6.265198 #(0.000000 1.305916 1.193211 1.131633 0.400580 0.759598 0.164070 1.799072 1.091771 1.559662 0.436556 1.108470 0.518624 0.349203 1.311455 0.208409 0.728546 -0.009336 0.551231 -0.062893 1.432448 1.592165 0.332763 1.326264 1.383816 1.474947 0.298106 1.148715 1.434554 -0.546890 0.369301 1.865917 0.945786 0.522218 1.444025 1.269985 1.507602 1.425880 1.940882 1.667877)
      )
 
 ;;; 41 odd -------------------------------------------------------------------------------- ; 6.4031
diff --git a/pix/newbuttons.png b/pix/newbuttons.png
new file mode 100644
index 0000000..a042e3a
Binary files /dev/null and b/pix/newbuttons.png differ
diff --git a/repl.scm b/repl.scm
index 19084fa..80d06bb 100644
--- a/repl.scm
+++ b/repl.scm
@@ -188,7 +188,7 @@
 	    (define (badexpr h)            ; *missing-close-paren-hook* function for Enter command
 	      (let ((ow (owlet)))
 		(if (ow 'error-file)
-		    (error "missing close paren in ~S" (ow 'error-file))
+		    (error 'syntax-error "missing close paren in ~S" (ow 'error-file))
 		    (set! (h 'result) 'string-read-error))))
 	    
 	    (define (shell? h)             ; *unbound-variable-hook* function, also for Enter
diff --git a/s7.c b/s7.c
index 5ed61b3..658feed 100644
--- a/s7.c
+++ b/s7.c
@@ -5167,7 +5167,7 @@ static s7_pointer new_symbol(s7_scheme *sc, const char *name, unsigned int len,
   unheap(x);
   typeflag(x) = T_SYMBOL;
   symbol_set_name_cell(x, str);
-  set_global_slot(x, sc->undefined);                       /* was sc->nil; */
+  set_global_slot(x, sc->undefined);                       /* was sc->nil */
   set_initial_slot(x, sc->undefined);
   symbol_set_local(x, 0LL, sc->nil);
   symbol_set_tag(x, 0);
@@ -42863,7 +42863,7 @@ s7_pointer s7_arity(s7_scheme *sc, s7_pointer x)
 static s7_pointer g_arity(s7_scheme *sc, s7_pointer args)
 {
   #define H_arity "(arity obj) the min and max acceptable args for obj if it is applicable, otherwise #f."
-  #define Q_arity pcl_t
+  #define Q_arity s7_make_signature(sc, 2, s7_make_signature(sc, 2, sc->is_pair_symbol, sc->is_boolean_symbol), sc->T)
   /* check_method(sc, p, sc->arity_symbol, args); */
   return(s7_arity(sc, car(args)));
 }
@@ -45829,6 +45829,7 @@ static char *stacktrace_walker(s7_scheme *sc, s7_pointer code, s7_pointer e,
 		  spaces_len = strlen(spaces);
 
 		  if (notes_start_col < 0) notes_start_col = 50;
+		  if (notes_start_col > total_cols) notes_start_col = 0;
 		  notes_max = total_cols - notes_start_col;
 
 		  old_short_print = sc->short_print;
@@ -47440,9 +47441,9 @@ and applies it to the rest of the arguments."
 
   if (is_not_null(args))
     {
-      if (is_string(car(args)))                    /* CL-style error? -- use tag = 'no-catch */
+      if (is_string(car(args)))                     /* CL-style error? -- use tag = 'no-catch */
 	{
-	  s7_error(sc, sc->no_catch_symbol, args);        /* this can have trailing args (implicit format) */
+	  s7_error(sc, sc->no_catch_symbol, args);  /* this can have trailing args (implicit format) */
 	  return(sc->unspecified);
 	}
       return(s7_error(sc, car(args), cdr(args)));
@@ -74667,7 +74668,7 @@ s7_scheme *s7_init(void)
                                      defun("emergency-exit",	emergency_exit,		0, 1, false);
                                      defun("exit",		exit,			0, 1, false);
 #if DEBUGGING
-                              s7_define_function(sc, "abort",  g_abort,         0, 0, true, "drop into gdb I hope");
+  s7_define_function(sc, "abort", g_abort, 0, 0, true, "drop into gdb I hope");
 #endif
 
   sym = s7_define_function(sc, "(c-object set)", g_internal_object_set, 1, 0, true, "internal object setter redirection");
@@ -74927,14 +74928,14 @@ s7_scheme *s7_init(void)
   s7_define_macro(sc, "quasiquote", g_quasiquote, 1, 0, false, H_quasiquote);
 
 #if (!WITH_PURE_S7)
-  s7_eval_c_string(sc, "(define-macro (defmacro name args . body) `(define-macro ,(cons name args) , at body))");
-  s7_eval_c_string(sc, "(define-macro (defmacro* name args . body) `(define-macro* ,(cons name args) , at body))");
+  s7_eval_c_string(sc, "(define-macro (defmacro name args . body) (cons 'define-macro (cons (cons name args) body)))");
+  s7_eval_c_string(sc, "(define-macro (defmacro* name args . body) (cons 'define-macro* (cons (cons name args) body)))");
 
-  s7_eval_c_string(sc, "(define-macro (call-with-values producer consumer) `(,consumer (,producer)))");   
+  s7_eval_c_string(sc, "(define-macro (call-with-values producer consumer) (list consumer (list producer)))");   
   /* (call-with-values (lambda () (values 1 2 3)) +) */
 
   s7_eval_c_string(sc, "(define-macro (multiple-value-bind vars expression . body)                            \n\
-                          `((lambda ,vars , at body) ,expression))");
+                          (list (cons 'lambda (cons vars body)) expression))");
 
   s7_eval_c_string(sc, "(define-macro (cond-expand . clauses)                                                 \n\
                           (letrec ((traverse (lambda (tree)                                                   \n\
@@ -74943,10 +74944,10 @@ s7_scheme *s7_init(void)
 				                          (if (null? (cdr tree)) () (traverse (cdr tree))))   \n\
 			                            (if (memq tree '(and or not else)) tree                   \n\
 			                                (and (symbol? tree) (provided? tree)))))))            \n\
-                            `(cond ,@(map (lambda (clause)                                                    \n\
-		                             (cons (traverse (car clause))                                    \n\
-			                           (if (null? (cdr clause)) '(#f) (cdr clause))))             \n\
-		                          clauses))))");
+                            (cons 'cond (map (lambda (clause)                                                 \n\
+		                               (cons (traverse (car clause))                                  \n\
+			                             (if (null? (cdr clause)) '(#f) (cdr clause))))           \n\
+		                             clauses))))");
 #endif
 
   s7_eval_c_string(sc, "(define-expansion (reader-cond . clauses)                                             \n\
@@ -75158,6 +75159,8 @@ int main(int argc, char **argv)
  * perhaps keyword paralleling symbol, keyword->string since string->keyword
  * could (apply append (map...)) omit the extra copy?
  * add a check for symbol-table glommage
+ * (list 1 (symbol ".") 2) -> (1 . 2)
+ * maybe use 'not for signature of #f?
  *
  * Snd:
  * in FC 25 the close-window decoration does not close Snd -- under gdb it works?
diff --git a/s7.html b/s7.html
index 45cbb2f..44c9e05 100644
--- a/s7.html
+++ b/s7.html
@@ -2850,7 +2850,7 @@ indexing syntax with the field or method name.  To evaluate a form in the contex
        (let ((gf ((car args) ',name))) ; get local definition
 	 (if (not (eq? gf ,name))      ; avoid infinite recursion
              (apply gf args)
-	     (error "attempt to call generic function wrapper recursively"))))))
+	     (error 'syntax-error "attempt to call generic function wrapper recursively"))))))
 
 (define-macro (define-slot-accessor name slot)
   `(define ,name (dilambda 
@@ -4374,13 +4374,13 @@ send that info to the current-error-port:
 <pre class="indented">
 (catch #t
   (lambda ()
-    (error 'oops)
+    (error 'oops))
   (lambda args
     (format (current-error-port) "~A: ~A~%~A[~A]:~%~A~%" 
       (car args)                        ; the error type
       (apply format #f (cadr args))     ; the error info
       (port-filename) (port-line-number); error file location
-      (stacktrace)))))                  ; and a stacktrace
+      (stacktrace))))                   ; and a stacktrace
 </pre>
 
 <blockquote>
@@ -4954,7 +4954,7 @@ at startup *features* is:
 
 <pre class="indented">
 > *features*
-<em class="gray">(snd-16.7 snd15 snd audio snd-s7 snd-gtk gsl alsa gtk2 xg clm6 clm sndlib linux
+<em class="gray">(snd-17.0 snd17 snd audio snd-s7 snd-gtk gsl alsa gtk2 xg clm6 clm sndlib linux
  dlopen complex-numbers system-extras ratio s7-3.26 s7) </em>
 > (provided? 'gsl)
 <em class="gray">#t</em>
@@ -5108,7 +5108,7 @@ rest.  Say we'd like #t<number> to interpret the number in base 12:
 	    expr
 	    (values))
 	(if (not (pair? e))
-	    (error "strange #+ chooser: ~S~%" e)
+	    (error 'wrong-type-arg "strange #+ chooser: ~S~%" e)
 	    (begin      ; evaluate the #+(...) expression as in cond-expand
 	      (define (traverse tree)
 		(if (pair? tree)                                             
@@ -8424,7 +8424,7 @@ int main(int argc, char **argv)
  *
  * and run it:
  *   ex3
- *   > (cload "/home/bil/snd-16/ex3a.so" "init_ex")
+ *   > (cload "/home/bil/snd-17/ex3a.so" "init_ex")
  *   <em class="gray">#t</em>
  *   > (add-1 2)
  *   <em class="gray">3</em>
diff --git a/s7test.scm b/s7test.scm
index c2dca6d..cd21a0c 100644
--- a/s7test.scm
+++ b/s7test.scm
@@ -1602,14 +1602,12 @@ void block_init(s7_scheme *sc)
 (test (eqv? else else) #t)
 (test (let ((p (lambda (x) x))) (eqv? p p)) #t)
 
-(if with-bignums
-    (begin
-      (test (eqv? (bignum "1+i") (bignum "1+i")) #t)
-      (test (eqv? (bignum "1+i") 1+i) #t)
-      (test (eqv? 1+i (bignum "1+i")) #t)
-      (test (eqv? (bignum "2.0") (bignum "2.0")) #t)
-      (test (eqv? (bignum "2.0") (bignum "1.0")) #f)
-      ))
+(when with-bignums
+  (test (eqv? (bignum "1+i") (bignum "1+i")) #t)
+  (test (eqv? (bignum "1+i") 1+i) #t)
+  (test (eqv? 1+i (bignum "1+i")) #t)
+  (test (eqv? (bignum "2.0") (bignum "2.0")) #t)
+  (test (eqv? (bignum "2.0") (bignum "1.0")) #f))
 
 ;; from M Weaver:
 (test (list (eqv? +0.0 -0.0)
@@ -1871,10 +1869,8 @@ void block_init(s7_scheme *sc)
 	(equal? v1 v2))
       #f)
 
-(if with-bignums
-    (begin
-      (test (equal? (/ (* 5 most-positive-fixnum) (* 3 most-negative-fixnum)) -46116860184273879035/27670116110564327424) #t)
-      ))
+(when with-bignums
+  (test (equal? (/ (* 5 most-positive-fixnum) (* 3 most-negative-fixnum)) -46116860184273879035/27670116110564327424) #t))
 
 
 
@@ -2174,8 +2170,7 @@ void block_init(s7_scheme *sc)
 (test (morally-equal? (int-vector 1) (int-vector 1)) #t)
 (test (morally-equal? (float-vector 0.0) (float-vector nan.0)) #f)
 (test (morally-equal? (float-vector nan.0) (float-vector nan.0)) #t)
-(let ((old-err (*s7* 'morally-equal-float-epsilon)))
-  (set! (*s7* 'morally-equal-float-epsilon) 0.0)
+(let-temporarily (((*s7* 'morally-equal-float-epsilon) 0.0))
   (test (morally-equal? (float-vector 0.0) (float-vector nan.0)) #f)
   (test (morally-equal? (float-vector nan.0) (float-vector nan.0)) #t)
   (test (morally-equal? (float-vector 0.0) (float-vector 0.0)) #t)
@@ -2183,8 +2178,7 @@ void block_init(s7_scheme *sc)
   (set! (*s7* 'morally-equal-float-epsilon) 0.01)
   (test (morally-equal? (float-vector 0.0) (float-vector 1e-15)) #t)
   (test (morally-equal? (float-vector 0.0) (float-vector 0.005)) #t)
-  (test (morally-equal? (float-vector 0.0) (float-vector 0.02)) #f)
-  (set! (*s7* 'morally-equal-float-epsilon) old-err))
+  (test (morally-equal? (float-vector 0.0) (float-vector 0.02)) #f))
 
 (unless with-bignums (test (morally-equal? (random-state 100) (random-state 100)) #t))
 
@@ -2206,497 +2200,495 @@ void block_init(s7_scheme *sc)
 (test (morally-equal? (- 4/3 1 -63.0) 190/3) #t)
 (test (morally-equal? 190/3 (- 4/3 1 -63.0)) #t)
 
-(if (not with-bignums) 
-    (begin
-      (test (morally-equal? (+ 5e-16 nan.0) nan.0) #t)
-      (test (morally-equal? (+ 0+5e-16i nan.0) nan.0) #t)
-      (test (morally-equal? (+ 1/0 0+5e-16i) 1/0) #t)
-      (test (morally-equal? 1/0 (+ 1/0 0+5e-16i)) #t)
-      (test (morally-equal? 0 (+ 0 5e-16)) #t)
-      (test (morally-equal? 0 (- 0 1/1428571428571429)) #t)
-      (test (morally-equal? 0 (+ 0 0+5e-16i)) #t)
-      (test (morally-equal? 0 (+ 0 0-1/1428571428571429i)) #t)
-      (test (morally-equal? 0 (+ 0 1e-11)) #f)
-      (test (morally-equal? 0 0) #t)
-      (test (morally-equal? 0 1/1000) #f)
-      (test (morally-equal? 0 0.0) #t)
-      (test (morally-equal? 0 1e-16) #t)
-      (test (morally-equal? 0 0+i) #f)
-      (test (morally-equal? 0 1e-16+i) #f)
-      (test (morally-equal? 0 0+1e-16i) #t)
-      (test (morally-equal? 0 1e-300) #t)
-      (test (morally-equal? 0 0+1e-300i) #t)
-      (test (morally-equal? 0 1/0) #f)
-      (test (morally-equal? 0 (- 0/0)) #f)
-      (test (morally-equal? 0 (log 0)) #f)
-      (test (morally-equal? 1 (+ 1 5e-16)) #t)
-      (test (morally-equal? 1 (- 1 1/1428571428571429)) #t)
-      (test (morally-equal? 1 (+ 1 0+5e-16i)) #t)
-      (test (morally-equal? 1 (+ 1 0-1/1428571428571429i)) #t)
-      (test (morally-equal? 1 (+ 1 1e-11)) #f)
-      (test (morally-equal? 1 1) #t)
-      (test (morally-equal? 1 1.0) #t)
-      (test (morally-equal? 1 1e-16) #f)
-      (test (morally-equal? 1 1e4) #f)
-      (test (morally-equal? 1 0+i) #f)
-      (test (morally-equal? 1 1e-16+i) #f)
-      (test (morally-equal? 1 (complex 1 1/0)) #f)
-      (test (morally-equal? 1 (complex (real-part (log 0)) 1)) #f)
-      (test (morally-equal? 1 (complex 1 (real-part (log 0)))) #f)
-      (test (morally-equal? 1000 (+ 1000 5e-16)) #t)
-      (test (morally-equal? 1000 (- 1000 1/1428571428571429)) #t)
-      (test (morally-equal? 1000 (+ 1000 0+5e-16i)) #t)
-      (test (morally-equal? 1000 (+ 1000 0-1/1428571428571429i)) #t)
-      (test (morally-equal? 1000 (+ 1000 1e-11)) #f)
-      (test (morally-equal? 1000 1000) #t)
-      (test (morally-equal? 1000 1/1000) #f)
-      (test (morally-equal? 1000 1e4) #f)
-      (test (morally-equal? 1/1000 (+ 1/1000 5e-16)) #t)
-      (test (morally-equal? 1/1000 (- 1/1000 1/1428571428571429)) #t)
-      (test (morally-equal? 1/1000 (+ 1/1000 0+5e-16i)) #t)
-      (test (morally-equal? 1/1000 (+ 1/1000 0-1/1428571428571429i)) #t)
-      (test (morally-equal? 1/1000 (+ 1/1000 1e-11)) #f)
-      (test (morally-equal? 1/1000 0) #f)
-      (test (morally-equal? 1/1000 1/1000) #t)
-      (test (morally-equal? 1/1000 0.0) #f)
-      (test (morally-equal? 1/1000 1e-16) #f)
-      (test (morally-equal? 1/1000 1e-16+i) #f)
-      (test (morally-equal? 1/1000 0+1e-16i) #f)
-      (test (morally-equal? 1/1000 1e-300) #f)
-      (test (morally-equal? 1/1000 0+1e-300i) #f)
-      (test (morally-equal? 1/1000 1/0) #f)
-      (test (morally-equal? 0.0 (+ 0.0 5e-16)) #t)
-      (test (morally-equal? 0.0 (- 0.0 1/1428571428571429)) #t)
-      (test (morally-equal? 0.0 (+ 0.0 0+5e-16i)) #t)
-      (test (morally-equal? 0.0 (+ 0.0 0-1/1428571428571429i)) #t)
-      (test (morally-equal? 0.0 (+ 0.0 1e-11)) #f)
-      (test (morally-equal? 0.0 0) #t)
-      (test (morally-equal? 0.0 1/1000) #f)
-      (test (morally-equal? 0.0 0.0) #t)
-      (test (morally-equal? 0.0 1e-16) #t)
-      (test (morally-equal? 0.0 0+i) #f)
-      (test (morally-equal? 0.0 1+i) #f)
-      (test (morally-equal? 0.0 1e-16+i) #f)
-      (test (morally-equal? 0.0 0+1e-16i) #t)
-      (test (morally-equal? 0.0 1e-300) #t)
-      (test (morally-equal? 0.0 0+1e-300i) #t)
-      (test (morally-equal? 0.0 1/0) #f)
-      (test (morally-equal? 0.0 (real-part (log 0))) #f)
-      (test (morally-equal? 0.0 (- (real-part (log 0)))) #f)
-      (test (morally-equal? 0.0 (- 0/0)) #f)
-      (test (morally-equal? 0.0 (log 0)) #f)
-      (test (morally-equal? 1.0 (+ 1.0 5e-16)) #t)
-      (test (morally-equal? 1.0 (- 1.0 1/1428571428571429)) #t)
-      (test (morally-equal? 1.0 (+ 1.0 0+5e-16i)) #t)
-      (test (morally-equal? 1.0 (+ 1.0 0-1/1428571428571429i)) #t)
-      (test (morally-equal? 1.0 (+ 1.0 1e-11)) #f)
-      (test (morally-equal? 1.0 1) #t)
-      (test (morally-equal? 1.0 1.0) #t)
-      (test (morally-equal? 1.0 1e-16+i) #f)
-      (test (morally-equal? 1.0 0+1e-16i) #f)
-      (test (morally-equal? 1.0 1e-300) #f)
-      (test (morally-equal? 1.0 0+1e-300i) #f)
-      (test (morally-equal? 1.0 1/0) #f)
-      (test (morally-equal? 1.0 (- 0/0)) #f)
-      (test (morally-equal? 1.0 (complex 1/0 1)) #f)
-      (test (morally-equal? 1.0 (complex 1 1/0)) #f)
-      (test (morally-equal? 1.0 (complex 1 (real-part (log 0)))) #f)
-      (test (morally-equal? 1e-16 (+ 1e-16 5e-16)) #t)
-      (test (morally-equal? 1e-16 (- 1e-16 1/1428571428571429)) #t)
-      (test (morally-equal? 1e-16 (+ 1e-16 0+5e-16i)) #t)
-      (test (morally-equal? 1e-16 (+ 1e-16 0-1/1428571428571429i)) #t)
-      (test (morally-equal? 1e-16 (+ 1e-16 1e-11)) #f)
-      (test (morally-equal? 1e-16 0) #t)
-      (test (morally-equal? 1e-16 1/1000) #f)
-      (test (morally-equal? 1e-16 0.0) #t)
-      (test (morally-equal? 1e-16 1e-16) #t)
-      (test (morally-equal? 1e-16 1e-16+i) #f)
-      (test (morally-equal? 1e-16 0+1e-16i) #t)
-      (test (morally-equal? 1e-16 1e-300) #t)
-      (test (morally-equal? 1e-16 0+1e-300i) #t)
-      (test (morally-equal? 1e-16 1/0) #f)
-      (test (morally-equal? 1e4 (+ 1e4 5e-16)) #t)
-      (test (morally-equal? 1e4 (- 1e4 1/1428571428571429)) #t)
-      (test (morally-equal? 1e4 (+ 1e4 0+5e-16i)) #t)
-      (test (morally-equal? 1e4 (+ 1e4 0-1/1428571428571429i)) #t)
-      (test (morally-equal? 1e4 (+ 1e4 1e-11)) #f)
-      (test (morally-equal? 1e4 1000) #f)
-      (test (morally-equal? 1e4 1/1000) #f)
-      (test (morally-equal? 1e4 1e-16) #f)
-      (test (morally-equal? 1e4 1e4) #t)
-      (test (morally-equal? 1e4 1e-16+i) #f)
-      (test (morally-equal? 1e4 0+1e-16i) #f)
-      (test (morally-equal? 1e4 1e-300) #f)
-      (test (morally-equal? 1e4 0+1e-300i) #f)
-      (test (morally-equal? 1e4 1/0) #f)
-      (test (morally-equal? 0+i (+ 0+i 5e-16)) #t)
-      (test (morally-equal? 0+i (- 0+i 1/1428571428571429)) #t)
-      (test (morally-equal? 0+i (+ 0+i 0+5e-16i)) #t)
-      (test (morally-equal? 0+i (+ 0+i 0-1/1428571428571429i)) #t)
-      (test (morally-equal? 0+i (+ 0+i 1e-11)) #f)
-      (test (morally-equal? 0+i 0) #f)
-      (test (morally-equal? 0+i 1/1000) #f)
-      (test (morally-equal? 0+i 0.0) #f)
-      (test (morally-equal? 0+i 1e-16) #f)
-      (test (morally-equal? 0+i 0+i) #t)
-      (test (morally-equal? 0+i 1+i) #f)
-      (test (morally-equal? 0+i 1e-16+i) #t)
-      (test (morally-equal? 0+i 0+1e-16i) #f)
-      (test (morally-equal? 0+i 1e-300) #f)
-      (test (morally-equal? 0+i 0+1e-300i) #f)
-      (test (morally-equal? 0+i 1/0) #f)
-      (test (morally-equal? 0+i (real-part (log 0))) #f)
-      (test (morally-equal? 0+i (- (real-part (log 0)))) #f)
-      (test (morally-equal? 0+i (- 0/0)) #f)
-      (test (morally-equal? 0+i (log 0)) #f)
-      (test (morally-equal? 0+i (complex 1/0 1)) #f)
-      (test (morally-equal? 0+i (complex 1 1/0)) #f)
-      (test (morally-equal? 0+i (complex 1/0 1/0)) #f)
-      (test (morally-equal? 0+i (complex (real-part (log 0)) 1/0)) #f)
-      (test (morally-equal? 1+i (+ 1+i 5e-16)) #t)
-      (test (morally-equal? 1+i (- 1+i 1/1428571428571429)) #t)
-      (test (morally-equal? 1+i (+ 1+i 0+5e-16i)) #t)
-      (test (morally-equal? 1+i (+ 1+i 0-1/1428571428571429i)) #t)
-      (test (morally-equal? 1+i (+ 1+i 1e-11)) #f)
-      (test (morally-equal? 1+i 0+i) #f)
-      (test (morally-equal? 1+i 1+i) #t)
-      (test (morally-equal? 1+i 1e-16+i) #f)
-      (test (morally-equal? 1+i 0+1e-16i) #f)
-      (test (morally-equal? 1+i 1e-300) #f)
-      (test (morally-equal? 1+i 0+1e-300i) #f)
-      (test (morally-equal? 1e-16+i (+ 1e-16+i 5e-16)) #t)
-      (test (morally-equal? 1e-16+i (- 1e-16+i 1/1428571428571429)) #t)
-      (test (morally-equal? 1e-16+i (+ 1e-16+i 0+5e-16i)) #t)
-      (test (morally-equal? 1e-16+i (+ 1e-16+i 0-1/1428571428571429i)) #t)
-      (test (morally-equal? 1e-16+i (+ 1e-16+i 1e-11)) #f)
-      (test (morally-equal? 1e-16+i 0) #f)
-      (test (morally-equal? 1e-16+i 1e-16) #f)
-      (test (morally-equal? 1e-16+i 1e4) #f)
-      (test (morally-equal? 1e-16+i 0+i) #t)
-      (test (morally-equal? 1e-16+i 1+i) #f)
-      (test (morally-equal? 1e-16+i 1e-16+i) #t)
-      (test (morally-equal? 1e-16+i 0+1e-16i) #f)
-      (test (morally-equal? 1e-16+i 1e-300) #f)
-      (test (morally-equal? 1e-16+i 0+1e-300i) #f)
-      (test (morally-equal? 1e-16+i 1/0) #f)
-      (test (morally-equal? 1e-16+i (real-part (log 0))) #f)
-      (test (morally-equal? 1e-16+i (- (real-part (log 0)))) #f)
-      (test (morally-equal? 1e-16+i (- 0/0)) #f)
-      (test (morally-equal? 1e-16+i (log 0)) #f)
-      (test (morally-equal? 1e-16+i (complex 1/0 1)) #f)
-      (test (morally-equal? 1e-16+i (complex 1 1/0)) #f)
-      (test (morally-equal? 1e-16+i (complex 1/0 1/0)) #f)
-      (test (morally-equal? 1e-16+i (complex (real-part (log 0)) 1/0)) #f)
-      (test (morally-equal? 0+1e-16i (+ 0+1e-16i 5e-16)) #t)
-      (test (morally-equal? 0+1e-16i (- 0+1e-16i 1/1428571428571429)) #t)
-      (test (morally-equal? 0+1e-16i (+ 0+1e-16i 0+5e-16i)) #t)
-      (test (morally-equal? 0+1e-16i (+ 0+1e-16i 0-1/1428571428571429i)) #t)
-      (test (morally-equal? 0+1e-16i (+ 0+1e-16i 1e-11)) #f)
-      (test (morally-equal? 0+1e-16i 0) #t)
-      (test (morally-equal? 0+1e-16i 1/1000) #f)
-      (test (morally-equal? 0+1e-16i 0.0) #t)
-      (test (morally-equal? 0+1e-16i 1e-16) #t)
-      (test (morally-equal? 0+1e-16i 0+i) #f)
-      (test (morally-equal? 0+1e-16i 1+i) #f)
-      (test (morally-equal? 0+1e-16i 1e-16+i) #f)
-      (test (morally-equal? 0+1e-16i 0+1e-16i) #t)
-      (test (morally-equal? 0+1e-16i 1e-300) #t)
-      (test (morally-equal? 0+1e-16i 0+1e-300i) #t)
-      (test (morally-equal? 0+1e-16i 1/0) #f)
-      (test (morally-equal? 0+1e-16i (real-part (log 0))) #f)
-      (test (morally-equal? 0+1e-16i (- (real-part (log 0)))) #f)
-      (test (morally-equal? 0+1e-16i (- 0/0)) #f)
-      (test (morally-equal? 0+1e-16i (log 0)) #f)
-      (test (morally-equal? 1e-300 (+ 1e-300 5e-16)) #t)
-      (test (morally-equal? 1e-300 (- 1e-300 1/1428571428571429)) #t)
-      (test (morally-equal? 1e-300 (+ 1e-300 0+5e-16i)) #t)
-      (test (morally-equal? 1e-300 (+ 1e-300 0-1/1428571428571429i)) #t)
-      (test (morally-equal? 1e-300 (+ 1e-300 1e-11)) #f)
-      (test (morally-equal? 1e-300 0) #t)
-      (test (morally-equal? 1e-300 1/1000) #f)
-      (test (morally-equal? 1e-300 0.0) #t)
-      (test (morally-equal? 1e-300 1e-16) #t)
-      (test (morally-equal? 1e-300 1e-16+i) #f)
-      (test (morally-equal? 1e-300 0+1e-16i) #t)
-      (test (morally-equal? 1e-300 1e-300) #t)
-      (test (morally-equal? 1e-300 0+1e-300i) #t)
-      (test (morally-equal? 1e-300 1/0) #f)
-      (test (morally-equal? 1e-300 (- 0/0)) #f)
-      (test (morally-equal? 1e-300 (log 0)) #f)
-      (test (morally-equal? 0+1e-300i (+ 0+1e-300i 5e-16)) #t)
-      (test (morally-equal? 0+1e-300i (- 0+1e-300i 1/1428571428571429)) #t)
-      (test (morally-equal? 0+1e-300i (+ 0+1e-300i 0+5e-16i)) #t)
-      (test (morally-equal? 0+1e-300i (+ 0+1e-300i 0-1/1428571428571429i)) #t)
-      (test (morally-equal? 0+1e-300i (+ 0+1e-300i 1e-11)) #f)
-      (test (morally-equal? 0+1e-300i 0) #t)
-      (test (morally-equal? 0+1e-300i 1000) #f)
-      (test (morally-equal? 0+1e-300i 1/1000) #f)
-      (test (morally-equal? 0+1e-300i 0.0) #t)
-      (test (morally-equal? 0+1e-300i 1e-16) #t)
-      (test (morally-equal? 0+1e-300i 0+i) #f)
-      (test (morally-equal? 0+1e-300i 1e-16+i) #f)
-      (test (morally-equal? 0+1e-300i 0+1e-16i) #t)
-      (test (morally-equal? 0+1e-300i 1e-300) #t)
-      (test (morally-equal? 0+1e-300i 0+1e-300i) #t)
-      (test (morally-equal? 0+1e-300i 1/0) #f)
-      (test (morally-equal? 0+1e-300i (- 0/0)) #f)
-      (test (morally-equal? 1/0 (+ 1/0 5e-16)) #t)
-      (test (morally-equal? 1/0 (- 1/0 1/1428571428571429)) #t)
-      (test (morally-equal? 1/0 (+ 1/0 0+5e-16i)) #t)
-      (test (morally-equal? 1/0 (+ 1/0 0-1/1428571428571429i)) #t)
-      (test (morally-equal? 1/0 0) #f)
-      (test (morally-equal? 1/0 1/0) #t)
-      (test (morally-equal? 1/0 (real-part (log 0))) #f)
-      (test (morally-equal? 1/0 (- (real-part (log 0)))) #f)
-      (test (morally-equal? 1/0 (- 0/0)) #t)
-      (test (morally-equal? 1/0 (log 0)) #f)
-      (test (morally-equal? 1/0 (complex 1/0 1)) #f)
-      (test (morally-equal? 1/0 (complex 1 1/0)) #f)
-      (test (morally-equal? 1/0 (complex 1/0 1/0)) #f)
-      (test (morally-equal? 1/0 (complex (real-part (log 0)) 1/0)) #f)
-      (test (morally-equal? 1/0 (complex 1/0 (real-part (log 0)))) #f)
-      (test (morally-equal? 1/0 (complex (real-part (log 0)) (real-part (log 0)))) #f)
-      (test (morally-equal? 1/0 (complex (real-part (log 0)) 1)) #f)
-      (test (morally-equal? 1/0 (complex 1 (real-part (log 0)))) #f)
-      (test (morally-equal? (real-part (log 0)) (+ (real-part (log 0)) 5e-16)) #t)
-      (test (morally-equal? (real-part (log 0)) (- (real-part (log 0)) 1/1428571428571429)) #t)
-      (test (morally-equal? (real-part (log 0)) (+ (real-part (log 0)) 0+5e-16i)) #t)
-      (test (morally-equal? (real-part (log 0)) (+ (real-part (log 0)) 0-1/1428571428571429i)) #t)
-      (test (morally-equal? (real-part (log 0)) 0) #f)
-      (test (morally-equal? (real-part (log 0)) 1e-16+i) #f)
-      (test (morally-equal? (real-part (log 0)) 0+1e-16i) #f)
-      (test (morally-equal? (real-part (log 0)) 1e-300) #f)
-      (test (morally-equal? (real-part (log 0)) 0+1e-300i) #f)
-      (test (morally-equal? (real-part (log 0)) 1/0) #f)
-      (test (morally-equal? (real-part (log 0)) (real-part (log 0))) #t)
-      (test (morally-equal? (real-part (log 0)) (- (real-part (log 0)))) #f)
-      (test (morally-equal? (real-part (log 0)) (- 0/0)) #f)
-      (test (morally-equal? (real-part (log 0)) (log 0)) #f)
-      (test (morally-equal? (real-part (log 0)) (complex 1/0 1)) #f)
-      (test (morally-equal? (real-part (log 0)) (complex 1 1/0)) #f)
-      (test (morally-equal? (real-part (log 0)) (complex 1/0 1/0)) #f)
-      (test (morally-equal? (real-part (log 0)) (complex (real-part (log 0)) 1/0)) #f)
-      (test (morally-equal? (real-part (log 0)) (complex 1/0 (real-part (log 0)))) #f)
-      (test (morally-equal? (real-part (log 0)) (complex (real-part (log 0)) (real-part (log 0)))) #f)
-      (test (morally-equal? (real-part (log 0)) (complex (real-part (log 0)) 1)) #f)
-      (test (morally-equal? (real-part (log 0)) (complex 1 (real-part (log 0)))) #f)
-      (test (morally-equal? (- (real-part (log 0))) (+ (- (real-part (log 0))) 5e-16)) #t)
-      (test (morally-equal? (- (real-part (log 0))) (- (- (real-part (log 0))) 1/1428571428571429)) #t)
-      (test (morally-equal? (- (real-part (log 0))) (+ (- (real-part (log 0))) 0+5e-16i)) #t)
-      (test (morally-equal? (- (real-part (log 0))) (+ (- (real-part (log 0))) 0-1/1428571428571429i)) #t)
-      (test (morally-equal? (- (real-part (log 0))) 1e-16+i) #f)
-      (test (morally-equal? (- (real-part (log 0))) 0+1e-16i) #f)
-      (test (morally-equal? (- (real-part (log 0))) 1e-300) #f)
-      (test (morally-equal? (- (real-part (log 0))) 0+1e-300i) #f)
-      (test (morally-equal? (- (real-part (log 0))) 1/0) #f)
-      (test (morally-equal? (- (real-part (log 0))) (real-part (log 0))) #f)
-      (test (morally-equal? (- (real-part (log 0))) (- (real-part (log 0)))) #t)
-      (test (morally-equal? (- (real-part (log 0))) (- 0/0)) #f)
-      (test (morally-equal? (- (real-part (log 0))) (log 0)) #f)
-      (test (morally-equal? (- (real-part (log 0))) (complex 1/0 1)) #f)
-      (test (morally-equal? (- (real-part (log 0))) (complex 1 1/0)) #f)
-      (test (morally-equal? (- (real-part (log 0))) (complex 1/0 1/0)) #f)
-      (test (morally-equal? (- (real-part (log 0))) (complex (real-part (log 0)) 1/0)) #f)
-      (test (morally-equal? (- (real-part (log 0))) (complex 1/0 (real-part (log 0)))) #f)
-      (test (morally-equal? (- (real-part (log 0))) (complex (real-part (log 0)) (real-part (log 0)))) #f)
-      (test (morally-equal? (- (real-part (log 0))) (complex (real-part (log 0)) 1)) #f)
-      (test (morally-equal? (- (real-part (log 0))) (complex 1 (real-part (log 0)))) #f)
-      (test (morally-equal? (- 0/0) (+ (- 0/0) 5e-16)) #t)
-      (test (morally-equal? (- 0/0) (- (- 0/0) 1/1428571428571429)) #t)
-      (test (morally-equal? (- 0/0) (+ (- 0/0) 0+5e-16i)) #t)
-      (test (morally-equal? (- 0/0) (+ (- 0/0) 0-1/1428571428571429i)) #t)
-      (test (morally-equal? (- 0/0) 0) #f)
-      (test (morally-equal? (- 0/0) 1e-300) #f)
-      (test (morally-equal? (- 0/0) 0+1e-300i) #f)
-      (test (morally-equal? (- 0/0) 1/0) #t)
-      (test (morally-equal? (- 0/0) (real-part (log 0))) #f)
-      (test (morally-equal? (- 0/0) (- (real-part (log 0)))) #f)
-      (test (morally-equal? (- 0/0) (- 0/0)) #t)
-      (test (morally-equal? (- 0/0) (log 0)) #f)
-      (test (morally-equal? (- 0/0) (complex 1/0 1)) #f)
-      (test (morally-equal? (- 0/0) (complex 1 1/0)) #f)
-      (test (morally-equal? (- 0/0) (complex 1/0 1/0)) #f)
-      (test (morally-equal? (- 0/0) (complex (real-part (log 0)) 1/0)) #f)
-      (test (morally-equal? (- 0/0) (complex 1/0 (real-part (log 0)))) #f)
-      (test (morally-equal? (- 0/0) (complex (real-part (log 0)) (real-part (log 0)))) #f)
-      (test (morally-equal? (- 0/0) (complex (real-part (log 0)) 1)) #f)
-      (test (morally-equal? (- 0/0) (complex 1 (real-part (log 0)))) #f)
-      (test (morally-equal? (log 0) (+ (log 0) 5e-16)) #t)
-      (test (morally-equal? (log 0) (- (log 0) 1/1428571428571429)) #t)
-      (test (morally-equal? (log 0) (+ (log 0) 0+5e-16i)) #t)
-      (test (morally-equal? (log 0) (+ (log 0) 0-1/1428571428571429i)) #t)
-      (test (morally-equal? (log 0) 0) #f)
-      (test (morally-equal? (log 0) 1/0) #f)
-      (test (morally-equal? (log 0) (real-part (log 0))) #f)
-      (test (morally-equal? (log 0) (- (real-part (log 0)))) #f)
-      (test (morally-equal? (log 0) (- 0/0)) #f)
-      (test (morally-equal? (log 0) (log 0)) #t)
-      (test (morally-equal? (log 0) (complex 1/0 1)) #f)
-      (test (morally-equal? (log 0) (complex 1 1/0)) #f)
-      (test (morally-equal? (log 0) (complex 1/0 1/0)) #f)
-      (test (morally-equal? (log 0) (complex (real-part (log 0)) 1/0)) #f)
-      (test (morally-equal? (log 0) (complex 1/0 (real-part (log 0)))) #f)
-      (test (morally-equal? (log 0) (complex (real-part (log 0)) (real-part (log 0)))) #f)
-      (test (morally-equal? (log 0) (complex (real-part (log 0)) 1)) #f)
-      (test (morally-equal? (log 0) (complex 1 (real-part (log 0)))) #f)
-      (test (morally-equal? (complex 1/0 1) (+ (complex 1/0 1) 5e-16)) #t)
-      (test (morally-equal? (complex 1/0 1) (- (complex 1/0 1) 1/1428571428571429)) #t)
-      (test (morally-equal? (complex 1/0 1) (+ (complex 1/0 1) 0+5e-16i)) #t)
-      (test (morally-equal? (complex 1/0 1) (+ (complex 1/0 1) 0-1/1428571428571429i)) #t)
-      (test (morally-equal? (complex 1/0 1) 0) #f)
-      (test (morally-equal? (complex 1/0 1) 1) #f)
-      (test (morally-equal? (complex 1/0 1) 1e-16+i) #f)
-      (test (morally-equal? (complex 1/0 1) 0+1e-16i) #f)
-      (test (morally-equal? (complex 1/0 1) 1e-300) #f)
-      (test (morally-equal? (complex 1/0 1) 0+1e-300i) #f)
-      (test (morally-equal? (complex 1/0 1) 1/0) #f)
-      (test (morally-equal? (complex 1/0 1) (real-part (log 0))) #f)
-      (test (morally-equal? (complex 1/0 1) (- (real-part (log 0)))) #f)
-      (test (morally-equal? (complex 1/0 1) (- 0/0)) #f)
-      (test (morally-equal? (complex 1/0 1) (log 0)) #f)
-      (test (morally-equal? (complex 1/0 1) (complex 1/0 1)) #t)
-      (test (morally-equal? (complex 1/0 1) (complex 1 1/0)) #f)
-      (test (morally-equal? (complex 1/0 1) (complex 1/0 1/0)) #f)
-      (test (morally-equal? (complex 1/0 1) (complex (real-part (log 0)) 1/0)) #f)
-      (test (morally-equal? (complex 1/0 1) (complex 1/0 (real-part (log 0)))) #f)
-      (test (morally-equal? (complex 1/0 1) (complex (real-part (log 0)) (real-part (log 0)))) #f)
-      (test (morally-equal? (complex 1/0 1) (complex (real-part (log 0)) 1)) #f)
-      (test (morally-equal? (complex 1/0 1) (complex 1 (real-part (log 0)))) #f)
-      (test (morally-equal? (complex 1 1/0) (+ (complex 1 1/0) 5e-16)) #t)
-      (test (morally-equal? (complex 1 1/0) (- (complex 1 1/0) 1/1428571428571429)) #t)
-      (test (morally-equal? (complex 1 1/0) (+ (complex 1 1/0) 0+5e-16i)) #t)
-      (test (morally-equal? (complex 1 1/0) (+ (complex 1 1/0) 0-1/1428571428571429i)) #t)
-      (test (morally-equal? (complex 1 1/0) 0) #f)
-      (test (morally-equal? (complex 1 1/0) 1) #f)
-      (test (morally-equal? (complex 1 1/0) 1e-300) #f)
-      (test (morally-equal? (complex 1 1/0) 0+1e-300i) #f)
-      (test (morally-equal? (complex 1 1/0) 1/0) #f)
-      (test (morally-equal? (complex 1 1/0) (real-part (log 0))) #f)
-      (test (morally-equal? (complex 1 1/0) (- (real-part (log 0)))) #f)
-      (test (morally-equal? (complex 1 1/0) (- 0/0)) #f)
-      (test (morally-equal? (complex 1 1/0) (log 0)) #f)
-      (test (morally-equal? (complex 1 1/0) (complex 1/0 1)) #f)
-      (test (morally-equal? (complex 1 1/0) (complex 1 1/0)) #t)
-      (test (morally-equal? (complex 1 1/0) (complex 1/0 1/0)) #f)
-      (test (morally-equal? (complex 1 1/0) (complex (real-part (log 0)) 1/0)) #f)
-      (test (morally-equal? (complex 1 1/0) (complex 1/0 (real-part (log 0)))) #f)
-      (test (morally-equal? (complex 1 1/0) (complex (real-part (log 0)) (real-part (log 0)))) #f)
-      (test (morally-equal? (complex 1 1/0) (complex (real-part (log 0)) 1)) #f)
-      (test (morally-equal? (complex 1 1/0) (complex 1 (real-part (log 0)))) #f)
-      (test (morally-equal? (complex 1/0 1/0) (+ (complex 1/0 1/0) 5e-16)) #t)
-      (test (morally-equal? (complex 1/0 1/0) (- (complex 1/0 1/0) 1/1428571428571429)) #t)
-      (test (morally-equal? (complex 1/0 1/0) (+ (complex 1/0 1/0) 0+5e-16i)) #t)
-      (test (morally-equal? (complex 1/0 1/0) (+ (complex 1/0 1/0) 0-1/1428571428571429i)) #t)
-      (test (morally-equal? (complex 1/0 1/0) 0) #f)
-      (test (morally-equal? (complex 1/0 1/0) 1/0) #f)
-      (test (morally-equal? (complex 1/0 1/0) (real-part (log 0))) #f)
-      (test (morally-equal? (complex 1/0 1/0) (- (real-part (log 0)))) #f)
-      (test (morally-equal? (complex 1/0 1/0) (- 0/0)) #f)
-      (test (morally-equal? (complex 1/0 1/0) (log 0)) #f)
-      (test (morally-equal? (complex 1/0 1/0) (complex 1/0 1)) #f)
-      (test (morally-equal? (complex 1/0 1/0) (complex 1 1/0)) #f)
-      (test (morally-equal? (complex 1/0 1/0) (complex 1/0 1/0)) #t)
-      (test (morally-equal? (complex 1/0 1/0) (complex (real-part (log 0)) 1/0)) #f)
-      (test (morally-equal? (complex 1/0 1/0) (complex 1/0 (real-part (log 0)))) #f)
-      (test (morally-equal? (complex 1/0 1/0) (complex (real-part (log 0)) (real-part (log 0)))) #f)
-      (test (morally-equal? (complex 1/0 1/0) (complex (real-part (log 0)) 1)) #f)
-      (test (morally-equal? (complex 1/0 1/0) (complex 1 (real-part (log 0)))) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1/0) (+ (complex (real-part (log 0)) 1/0) 5e-16)) #t)
-      (test (morally-equal? (complex (real-part (log 0)) 1/0) (- (complex (real-part (log 0)) 1/0) 1/1428571428571429)) #t)
-      (test (morally-equal? (complex (real-part (log 0)) 1/0) (+ (complex (real-part (log 0)) 1/0) 0+5e-16i)) #t)
-      (test (morally-equal? (complex (real-part (log 0)) 1/0) (+ (complex (real-part (log 0)) 1/0) 0-1/1428571428571429i)) #t)
-      (test (morally-equal? (complex (real-part (log 0)) 1/0) 0) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1/0) 1) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1/0) 1000) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1/0) 1/1000) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1/0) 0.0) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1/0) 1.0) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1/0) 1e-16) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1/0) 1e4) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1/0) 1/0) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1/0) (real-part (log 0))) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1/0) (- (real-part (log 0)))) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1/0) (- 0/0)) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1/0) (log 0)) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1/0) (complex 1/0 1)) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1/0) (complex 1 1/0)) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1/0) (complex 1/0 1/0)) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1/0) (complex (real-part (log 0)) 1/0)) #t)
-      (test (morally-equal? (complex (real-part (log 0)) 1/0) (complex 1/0 (real-part (log 0)))) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1/0) (complex (real-part (log 0)) (real-part (log 0)))) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1/0) (complex (real-part (log 0)) 1)) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1/0) (complex 1 (real-part (log 0)))) #f)
-      (test (morally-equal? (complex 1/0 (real-part (log 0))) (+ (complex 1/0 (real-part (log 0))) 5e-16)) #t)
-      (test (morally-equal? (complex 1/0 (real-part (log 0))) (- (complex 1/0 (real-part (log 0))) 1/1428571428571429)) #t)
-      (test (morally-equal? (complex 1/0 (real-part (log 0))) (+ (complex 1/0 (real-part (log 0))) 0+5e-16i)) #t)
-      (test (morally-equal? (complex 1/0 (real-part (log 0))) (+ (complex 1/0 (real-part (log 0))) 0-1/1428571428571429i)) #t)
-      (test (morally-equal? (complex 1/0 (real-part (log 0))) (real-part (log 0))) #f)
-      (test (morally-equal? (complex 1/0 (real-part (log 0))) (- (real-part (log 0)))) #f)
-      (test (morally-equal? (complex 1/0 (real-part (log 0))) (- 0/0)) #f)
-      (test (morally-equal? (complex 1/0 (real-part (log 0))) (log 0)) #f)
-      (test (morally-equal? (complex 1/0 (real-part (log 0))) (complex 1/0 1)) #f)
-      (test (morally-equal? (complex 1/0 (real-part (log 0))) (complex 1 1/0)) #f)
-      (test (morally-equal? (complex 1/0 (real-part (log 0))) (complex 1/0 1/0)) #f)
-      (test (morally-equal? (complex 1/0 (real-part (log 0))) (complex (real-part (log 0)) 1/0)) #f)
-      (test (morally-equal? (complex 1/0 (real-part (log 0))) (complex 1/0 (real-part (log 0)))) #t)
-      (test (morally-equal? (complex 1/0 (real-part (log 0))) (complex (real-part (log 0)) (real-part (log 0)))) #f)
-      (test (morally-equal? (complex 1/0 (real-part (log 0))) (complex (real-part (log 0)) 1)) #f)
-      (test (morally-equal? (complex 1/0 (real-part (log 0))) (complex 1 (real-part (log 0)))) #f)
-      (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) (+ (complex (real-part (log 0)) (real-part (log 0))) 5e-16)) #t)
-      (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) (- (complex (real-part (log 0)) (real-part (log 0))) 1/1428571428571429)) #t)
-      (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) (+ (complex (real-part (log 0)) (real-part (log 0))) 0+5e-16i)) #t)
-      (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) (+ (complex (real-part (log 0)) (real-part (log 0))) 0-1/1428571428571429i)) #t)
-      (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) 0) #f)
-      (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) 1/0) #f)
-      (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) (real-part (log 0))) #f)
-      (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) (- (real-part (log 0)))) #f)
-      (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) (- 0/0)) #f)
-      (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) (log 0)) #f)
-      (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) (complex 1/0 1)) #f)
-      (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) (complex 1 1/0)) #f)
-      (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) (complex 1/0 1/0)) #f)
-      (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) (complex (real-part (log 0)) 1/0)) #f)
-      (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) (complex 1/0 (real-part (log 0)))) #f)
-      (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) (complex (real-part (log 0)) (real-part (log 0)))) #t)
-      (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) (complex (real-part (log 0)) 1)) #f)
-      (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) (complex 1 (real-part (log 0)))) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1) (+ (complex (real-part (log 0)) 1) 5e-16)) #t)
-      (test (morally-equal? (complex (real-part (log 0)) 1) (- (complex (real-part (log 0)) 1) 1/1428571428571429)) #t)
-      (test (morally-equal? (complex (real-part (log 0)) 1) (+ (complex (real-part (log 0)) 1) 0+5e-16i)) #t)
-      (test (morally-equal? (complex (real-part (log 0)) 1) (+ (complex (real-part (log 0)) 1) 0-1/1428571428571429i)) #t)
-      (test (morally-equal? (complex (real-part (log 0)) 1) 0) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1) 1) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1) 0+1e-300i) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1) 1/0) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1) (real-part (log 0))) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1) (- (real-part (log 0)))) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1) (- 0/0)) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1) (log 0)) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1) (complex 1/0 1)) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1) (complex 1 1/0)) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1) (complex 1/0 1/0)) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1) (complex (real-part (log 0)) 1/0)) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1) (complex 1/0 (real-part (log 0)))) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1) (complex (real-part (log 0)) (real-part (log 0)))) #f)
-      (test (morally-equal? (complex (real-part (log 0)) 1) (complex (real-part (log 0)) 1)) #t)
-      (test (morally-equal? (complex (real-part (log 0)) 1) (complex 1 (real-part (log 0)))) #f)
-      (test (morally-equal? (complex 1 (real-part (log 0))) (+ (complex 1 (real-part (log 0))) 5e-16)) #t)
-      (test (morally-equal? (complex 1 (real-part (log 0))) (- (complex 1 (real-part (log 0))) 1/1428571428571429)) #t)
-      (test (morally-equal? (complex 1 (real-part (log 0))) (+ (complex 1 (real-part (log 0))) 0+5e-16i)) #t)
-      (test (morally-equal? (complex 1 (real-part (log 0))) (+ (complex 1 (real-part (log 0))) 0-1/1428571428571429i)) #t)
-      (test (morally-equal? (complex 1 (real-part (log 0))) (real-part (log 0))) #f)
-      (test (morally-equal? (complex 1 (real-part (log 0))) (- (real-part (log 0)))) #f)
-      (test (morally-equal? (complex 1 (real-part (log 0))) (- 0/0)) #f)
-      (test (morally-equal? (complex 1 (real-part (log 0))) (log 0)) #f)
-      (test (morally-equal? (complex 1 (real-part (log 0))) (complex 1/0 1)) #f)
-      (test (morally-equal? (complex 1 (real-part (log 0))) (complex 1 1/0)) #f)
-      (test (morally-equal? (complex 1 (real-part (log 0))) (complex 1/0 1/0)) #f)
-      (test (morally-equal? (complex 1 (real-part (log 0))) (complex (real-part (log 0)) 1/0)) #f)
-      (test (morally-equal? (complex 1 (real-part (log 0))) (complex 1/0 (real-part (log 0)))) #f)
-      (test (morally-equal? (complex 1 (real-part (log 0))) (complex (real-part (log 0)) (real-part (log 0)))) #f)
-      (test (morally-equal? (complex 1 (real-part (log 0))) (complex (real-part (log 0)) 1)) #f)
-      (test (morally-equal? (complex 1 (real-part (log 0))) (complex 1 (real-part (log 0)))) #t)
-      )) ; end with-bignums
+(unless with-bignums
+  (test (morally-equal? (+ 5e-16 nan.0) nan.0) #t)
+  (test (morally-equal? (+ 0+5e-16i nan.0) nan.0) #t)
+  (test (morally-equal? (+ 1/0 0+5e-16i) 1/0) #t)
+  (test (morally-equal? 1/0 (+ 1/0 0+5e-16i)) #t)
+  (test (morally-equal? 0 (+ 0 5e-16)) #t)
+  (test (morally-equal? 0 (- 0 1/1428571428571429)) #t)
+  (test (morally-equal? 0 (+ 0 0+5e-16i)) #t)
+  (test (morally-equal? 0 (+ 0 0-1/1428571428571429i)) #t)
+  (test (morally-equal? 0 (+ 0 1e-11)) #f)
+  (test (morally-equal? 0 0) #t)
+  (test (morally-equal? 0 1/1000) #f)
+  (test (morally-equal? 0 0.0) #t)
+  (test (morally-equal? 0 1e-16) #t)
+  (test (morally-equal? 0 0+i) #f)
+  (test (morally-equal? 0 1e-16+i) #f)
+  (test (morally-equal? 0 0+1e-16i) #t)
+  (test (morally-equal? 0 1e-300) #t)
+  (test (morally-equal? 0 0+1e-300i) #t)
+  (test (morally-equal? 0 1/0) #f)
+  (test (morally-equal? 0 (- 0/0)) #f)
+  (test (morally-equal? 0 (log 0)) #f)
+  (test (morally-equal? 1 (+ 1 5e-16)) #t)
+  (test (morally-equal? 1 (- 1 1/1428571428571429)) #t)
+  (test (morally-equal? 1 (+ 1 0+5e-16i)) #t)
+  (test (morally-equal? 1 (+ 1 0-1/1428571428571429i)) #t)
+  (test (morally-equal? 1 (+ 1 1e-11)) #f)
+  (test (morally-equal? 1 1) #t)
+  (test (morally-equal? 1 1.0) #t)
+  (test (morally-equal? 1 1e-16) #f)
+  (test (morally-equal? 1 1e4) #f)
+  (test (morally-equal? 1 0+i) #f)
+  (test (morally-equal? 1 1e-16+i) #f)
+  (test (morally-equal? 1 (complex 1 1/0)) #f)
+  (test (morally-equal? 1 (complex (real-part (log 0)) 1)) #f)
+  (test (morally-equal? 1 (complex 1 (real-part (log 0)))) #f)
+  (test (morally-equal? 1000 (+ 1000 5e-16)) #t)
+  (test (morally-equal? 1000 (- 1000 1/1428571428571429)) #t)
+  (test (morally-equal? 1000 (+ 1000 0+5e-16i)) #t)
+  (test (morally-equal? 1000 (+ 1000 0-1/1428571428571429i)) #t)
+  (test (morally-equal? 1000 (+ 1000 1e-11)) #f)
+  (test (morally-equal? 1000 1000) #t)
+  (test (morally-equal? 1000 1/1000) #f)
+  (test (morally-equal? 1000 1e4) #f)
+  (test (morally-equal? 1/1000 (+ 1/1000 5e-16)) #t)
+  (test (morally-equal? 1/1000 (- 1/1000 1/1428571428571429)) #t)
+  (test (morally-equal? 1/1000 (+ 1/1000 0+5e-16i)) #t)
+  (test (morally-equal? 1/1000 (+ 1/1000 0-1/1428571428571429i)) #t)
+  (test (morally-equal? 1/1000 (+ 1/1000 1e-11)) #f)
+  (test (morally-equal? 1/1000 0) #f)
+  (test (morally-equal? 1/1000 1/1000) #t)
+  (test (morally-equal? 1/1000 0.0) #f)
+  (test (morally-equal? 1/1000 1e-16) #f)
+  (test (morally-equal? 1/1000 1e-16+i) #f)
+  (test (morally-equal? 1/1000 0+1e-16i) #f)
+  (test (morally-equal? 1/1000 1e-300) #f)
+  (test (morally-equal? 1/1000 0+1e-300i) #f)
+  (test (morally-equal? 1/1000 1/0) #f)
+  (test (morally-equal? 0.0 (+ 0.0 5e-16)) #t)
+  (test (morally-equal? 0.0 (- 0.0 1/1428571428571429)) #t)
+  (test (morally-equal? 0.0 (+ 0.0 0+5e-16i)) #t)
+  (test (morally-equal? 0.0 (+ 0.0 0-1/1428571428571429i)) #t)
+  (test (morally-equal? 0.0 (+ 0.0 1e-11)) #f)
+  (test (morally-equal? 0.0 0) #t)
+  (test (morally-equal? 0.0 1/1000) #f)
+  (test (morally-equal? 0.0 0.0) #t)
+  (test (morally-equal? 0.0 1e-16) #t)
+  (test (morally-equal? 0.0 0+i) #f)
+  (test (morally-equal? 0.0 1+i) #f)
+  (test (morally-equal? 0.0 1e-16+i) #f)
+  (test (morally-equal? 0.0 0+1e-16i) #t)
+  (test (morally-equal? 0.0 1e-300) #t)
+  (test (morally-equal? 0.0 0+1e-300i) #t)
+  (test (morally-equal? 0.0 1/0) #f)
+  (test (morally-equal? 0.0 (real-part (log 0))) #f)
+  (test (morally-equal? 0.0 (- (real-part (log 0)))) #f)
+  (test (morally-equal? 0.0 (- 0/0)) #f)
+  (test (morally-equal? 0.0 (log 0)) #f)
+  (test (morally-equal? 1.0 (+ 1.0 5e-16)) #t)
+  (test (morally-equal? 1.0 (- 1.0 1/1428571428571429)) #t)
+  (test (morally-equal? 1.0 (+ 1.0 0+5e-16i)) #t)
+  (test (morally-equal? 1.0 (+ 1.0 0-1/1428571428571429i)) #t)
+  (test (morally-equal? 1.0 (+ 1.0 1e-11)) #f)
+  (test (morally-equal? 1.0 1) #t)
+  (test (morally-equal? 1.0 1.0) #t)
+  (test (morally-equal? 1.0 1e-16+i) #f)
+  (test (morally-equal? 1.0 0+1e-16i) #f)
+  (test (morally-equal? 1.0 1e-300) #f)
+  (test (morally-equal? 1.0 0+1e-300i) #f)
+  (test (morally-equal? 1.0 1/0) #f)
+  (test (morally-equal? 1.0 (- 0/0)) #f)
+  (test (morally-equal? 1.0 (complex 1/0 1)) #f)
+  (test (morally-equal? 1.0 (complex 1 1/0)) #f)
+  (test (morally-equal? 1.0 (complex 1 (real-part (log 0)))) #f)
+  (test (morally-equal? 1e-16 (+ 1e-16 5e-16)) #t)
+  (test (morally-equal? 1e-16 (- 1e-16 1/1428571428571429)) #t)
+  (test (morally-equal? 1e-16 (+ 1e-16 0+5e-16i)) #t)
+  (test (morally-equal? 1e-16 (+ 1e-16 0-1/1428571428571429i)) #t)
+  (test (morally-equal? 1e-16 (+ 1e-16 1e-11)) #f)
+  (test (morally-equal? 1e-16 0) #t)
+  (test (morally-equal? 1e-16 1/1000) #f)
+  (test (morally-equal? 1e-16 0.0) #t)
+  (test (morally-equal? 1e-16 1e-16) #t)
+  (test (morally-equal? 1e-16 1e-16+i) #f)
+  (test (morally-equal? 1e-16 0+1e-16i) #t)
+  (test (morally-equal? 1e-16 1e-300) #t)
+  (test (morally-equal? 1e-16 0+1e-300i) #t)
+  (test (morally-equal? 1e-16 1/0) #f)
+  (test (morally-equal? 1e4 (+ 1e4 5e-16)) #t)
+  (test (morally-equal? 1e4 (- 1e4 1/1428571428571429)) #t)
+  (test (morally-equal? 1e4 (+ 1e4 0+5e-16i)) #t)
+  (test (morally-equal? 1e4 (+ 1e4 0-1/1428571428571429i)) #t)
+  (test (morally-equal? 1e4 (+ 1e4 1e-11)) #f)
+  (test (morally-equal? 1e4 1000) #f)
+  (test (morally-equal? 1e4 1/1000) #f)
+  (test (morally-equal? 1e4 1e-16) #f)
+  (test (morally-equal? 1e4 1e4) #t)
+  (test (morally-equal? 1e4 1e-16+i) #f)
+  (test (morally-equal? 1e4 0+1e-16i) #f)
+  (test (morally-equal? 1e4 1e-300) #f)
+  (test (morally-equal? 1e4 0+1e-300i) #f)
+  (test (morally-equal? 1e4 1/0) #f)
+  (test (morally-equal? 0+i (+ 0+i 5e-16)) #t)
+  (test (morally-equal? 0+i (- 0+i 1/1428571428571429)) #t)
+  (test (morally-equal? 0+i (+ 0+i 0+5e-16i)) #t)
+  (test (morally-equal? 0+i (+ 0+i 0-1/1428571428571429i)) #t)
+  (test (morally-equal? 0+i (+ 0+i 1e-11)) #f)
+  (test (morally-equal? 0+i 0) #f)
+  (test (morally-equal? 0+i 1/1000) #f)
+  (test (morally-equal? 0+i 0.0) #f)
+  (test (morally-equal? 0+i 1e-16) #f)
+  (test (morally-equal? 0+i 0+i) #t)
+  (test (morally-equal? 0+i 1+i) #f)
+  (test (morally-equal? 0+i 1e-16+i) #t)
+  (test (morally-equal? 0+i 0+1e-16i) #f)
+  (test (morally-equal? 0+i 1e-300) #f)
+  (test (morally-equal? 0+i 0+1e-300i) #f)
+  (test (morally-equal? 0+i 1/0) #f)
+  (test (morally-equal? 0+i (real-part (log 0))) #f)
+  (test (morally-equal? 0+i (- (real-part (log 0)))) #f)
+  (test (morally-equal? 0+i (- 0/0)) #f)
+  (test (morally-equal? 0+i (log 0)) #f)
+  (test (morally-equal? 0+i (complex 1/0 1)) #f)
+  (test (morally-equal? 0+i (complex 1 1/0)) #f)
+  (test (morally-equal? 0+i (complex 1/0 1/0)) #f)
+  (test (morally-equal? 0+i (complex (real-part (log 0)) 1/0)) #f)
+  (test (morally-equal? 1+i (+ 1+i 5e-16)) #t)
+  (test (morally-equal? 1+i (- 1+i 1/1428571428571429)) #t)
+  (test (morally-equal? 1+i (+ 1+i 0+5e-16i)) #t)
+  (test (morally-equal? 1+i (+ 1+i 0-1/1428571428571429i)) #t)
+  (test (morally-equal? 1+i (+ 1+i 1e-11)) #f)
+  (test (morally-equal? 1+i 0+i) #f)
+  (test (morally-equal? 1+i 1+i) #t)
+  (test (morally-equal? 1+i 1e-16+i) #f)
+  (test (morally-equal? 1+i 0+1e-16i) #f)
+  (test (morally-equal? 1+i 1e-300) #f)
+  (test (morally-equal? 1+i 0+1e-300i) #f)
+  (test (morally-equal? 1e-16+i (+ 1e-16+i 5e-16)) #t)
+  (test (morally-equal? 1e-16+i (- 1e-16+i 1/1428571428571429)) #t)
+  (test (morally-equal? 1e-16+i (+ 1e-16+i 0+5e-16i)) #t)
+  (test (morally-equal? 1e-16+i (+ 1e-16+i 0-1/1428571428571429i)) #t)
+  (test (morally-equal? 1e-16+i (+ 1e-16+i 1e-11)) #f)
+  (test (morally-equal? 1e-16+i 0) #f)
+  (test (morally-equal? 1e-16+i 1e-16) #f)
+  (test (morally-equal? 1e-16+i 1e4) #f)
+  (test (morally-equal? 1e-16+i 0+i) #t)
+  (test (morally-equal? 1e-16+i 1+i) #f)
+  (test (morally-equal? 1e-16+i 1e-16+i) #t)
+  (test (morally-equal? 1e-16+i 0+1e-16i) #f)
+  (test (morally-equal? 1e-16+i 1e-300) #f)
+  (test (morally-equal? 1e-16+i 0+1e-300i) #f)
+  (test (morally-equal? 1e-16+i 1/0) #f)
+  (test (morally-equal? 1e-16+i (real-part (log 0))) #f)
+  (test (morally-equal? 1e-16+i (- (real-part (log 0)))) #f)
+  (test (morally-equal? 1e-16+i (- 0/0)) #f)
+  (test (morally-equal? 1e-16+i (log 0)) #f)
+  (test (morally-equal? 1e-16+i (complex 1/0 1)) #f)
+  (test (morally-equal? 1e-16+i (complex 1 1/0)) #f)
+  (test (morally-equal? 1e-16+i (complex 1/0 1/0)) #f)
+  (test (morally-equal? 1e-16+i (complex (real-part (log 0)) 1/0)) #f)
+  (test (morally-equal? 0+1e-16i (+ 0+1e-16i 5e-16)) #t)
+  (test (morally-equal? 0+1e-16i (- 0+1e-16i 1/1428571428571429)) #t)
+  (test (morally-equal? 0+1e-16i (+ 0+1e-16i 0+5e-16i)) #t)
+  (test (morally-equal? 0+1e-16i (+ 0+1e-16i 0-1/1428571428571429i)) #t)
+  (test (morally-equal? 0+1e-16i (+ 0+1e-16i 1e-11)) #f)
+  (test (morally-equal? 0+1e-16i 0) #t)
+  (test (morally-equal? 0+1e-16i 1/1000) #f)
+  (test (morally-equal? 0+1e-16i 0.0) #t)
+  (test (morally-equal? 0+1e-16i 1e-16) #t)
+  (test (morally-equal? 0+1e-16i 0+i) #f)
+  (test (morally-equal? 0+1e-16i 1+i) #f)
+  (test (morally-equal? 0+1e-16i 1e-16+i) #f)
+  (test (morally-equal? 0+1e-16i 0+1e-16i) #t)
+  (test (morally-equal? 0+1e-16i 1e-300) #t)
+  (test (morally-equal? 0+1e-16i 0+1e-300i) #t)
+  (test (morally-equal? 0+1e-16i 1/0) #f)
+  (test (morally-equal? 0+1e-16i (real-part (log 0))) #f)
+  (test (morally-equal? 0+1e-16i (- (real-part (log 0)))) #f)
+  (test (morally-equal? 0+1e-16i (- 0/0)) #f)
+  (test (morally-equal? 0+1e-16i (log 0)) #f)
+  (test (morally-equal? 1e-300 (+ 1e-300 5e-16)) #t)
+  (test (morally-equal? 1e-300 (- 1e-300 1/1428571428571429)) #t)
+  (test (morally-equal? 1e-300 (+ 1e-300 0+5e-16i)) #t)
+  (test (morally-equal? 1e-300 (+ 1e-300 0-1/1428571428571429i)) #t)
+  (test (morally-equal? 1e-300 (+ 1e-300 1e-11)) #f)
+  (test (morally-equal? 1e-300 0) #t)
+  (test (morally-equal? 1e-300 1/1000) #f)
+  (test (morally-equal? 1e-300 0.0) #t)
+  (test (morally-equal? 1e-300 1e-16) #t)
+  (test (morally-equal? 1e-300 1e-16+i) #f)
+  (test (morally-equal? 1e-300 0+1e-16i) #t)
+  (test (morally-equal? 1e-300 1e-300) #t)
+  (test (morally-equal? 1e-300 0+1e-300i) #t)
+  (test (morally-equal? 1e-300 1/0) #f)
+  (test (morally-equal? 1e-300 (- 0/0)) #f)
+  (test (morally-equal? 1e-300 (log 0)) #f)
+  (test (morally-equal? 0+1e-300i (+ 0+1e-300i 5e-16)) #t)
+  (test (morally-equal? 0+1e-300i (- 0+1e-300i 1/1428571428571429)) #t)
+  (test (morally-equal? 0+1e-300i (+ 0+1e-300i 0+5e-16i)) #t)
+  (test (morally-equal? 0+1e-300i (+ 0+1e-300i 0-1/1428571428571429i)) #t)
+  (test (morally-equal? 0+1e-300i (+ 0+1e-300i 1e-11)) #f)
+  (test (morally-equal? 0+1e-300i 0) #t)
+  (test (morally-equal? 0+1e-300i 1000) #f)
+  (test (morally-equal? 0+1e-300i 1/1000) #f)
+  (test (morally-equal? 0+1e-300i 0.0) #t)
+  (test (morally-equal? 0+1e-300i 1e-16) #t)
+  (test (morally-equal? 0+1e-300i 0+i) #f)
+  (test (morally-equal? 0+1e-300i 1e-16+i) #f)
+  (test (morally-equal? 0+1e-300i 0+1e-16i) #t)
+  (test (morally-equal? 0+1e-300i 1e-300) #t)
+  (test (morally-equal? 0+1e-300i 0+1e-300i) #t)
+  (test (morally-equal? 0+1e-300i 1/0) #f)
+  (test (morally-equal? 0+1e-300i (- 0/0)) #f)
+  (test (morally-equal? 1/0 (+ 1/0 5e-16)) #t)
+  (test (morally-equal? 1/0 (- 1/0 1/1428571428571429)) #t)
+  (test (morally-equal? 1/0 (+ 1/0 0+5e-16i)) #t)
+  (test (morally-equal? 1/0 (+ 1/0 0-1/1428571428571429i)) #t)
+  (test (morally-equal? 1/0 0) #f)
+  (test (morally-equal? 1/0 1/0) #t)
+  (test (morally-equal? 1/0 (real-part (log 0))) #f)
+  (test (morally-equal? 1/0 (- (real-part (log 0)))) #f)
+  (test (morally-equal? 1/0 (- 0/0)) #t)
+  (test (morally-equal? 1/0 (log 0)) #f)
+  (test (morally-equal? 1/0 (complex 1/0 1)) #f)
+  (test (morally-equal? 1/0 (complex 1 1/0)) #f)
+  (test (morally-equal? 1/0 (complex 1/0 1/0)) #f)
+  (test (morally-equal? 1/0 (complex (real-part (log 0)) 1/0)) #f)
+  (test (morally-equal? 1/0 (complex 1/0 (real-part (log 0)))) #f)
+  (test (morally-equal? 1/0 (complex (real-part (log 0)) (real-part (log 0)))) #f)
+  (test (morally-equal? 1/0 (complex (real-part (log 0)) 1)) #f)
+  (test (morally-equal? 1/0 (complex 1 (real-part (log 0)))) #f)
+  (test (morally-equal? (real-part (log 0)) (+ (real-part (log 0)) 5e-16)) #t)
+  (test (morally-equal? (real-part (log 0)) (- (real-part (log 0)) 1/1428571428571429)) #t)
+  (test (morally-equal? (real-part (log 0)) (+ (real-part (log 0)) 0+5e-16i)) #t)
+  (test (morally-equal? (real-part (log 0)) (+ (real-part (log 0)) 0-1/1428571428571429i)) #t)
+  (test (morally-equal? (real-part (log 0)) 0) #f)
+  (test (morally-equal? (real-part (log 0)) 1e-16+i) #f)
+  (test (morally-equal? (real-part (log 0)) 0+1e-16i) #f)
+  (test (morally-equal? (real-part (log 0)) 1e-300) #f)
+  (test (morally-equal? (real-part (log 0)) 0+1e-300i) #f)
+  (test (morally-equal? (real-part (log 0)) 1/0) #f)
+  (test (morally-equal? (real-part (log 0)) (real-part (log 0))) #t)
+  (test (morally-equal? (real-part (log 0)) (- (real-part (log 0)))) #f)
+  (test (morally-equal? (real-part (log 0)) (- 0/0)) #f)
+  (test (morally-equal? (real-part (log 0)) (log 0)) #f)
+  (test (morally-equal? (real-part (log 0)) (complex 1/0 1)) #f)
+  (test (morally-equal? (real-part (log 0)) (complex 1 1/0)) #f)
+  (test (morally-equal? (real-part (log 0)) (complex 1/0 1/0)) #f)
+  (test (morally-equal? (real-part (log 0)) (complex (real-part (log 0)) 1/0)) #f)
+  (test (morally-equal? (real-part (log 0)) (complex 1/0 (real-part (log 0)))) #f)
+  (test (morally-equal? (real-part (log 0)) (complex (real-part (log 0)) (real-part (log 0)))) #f)
+  (test (morally-equal? (real-part (log 0)) (complex (real-part (log 0)) 1)) #f)
+  (test (morally-equal? (real-part (log 0)) (complex 1 (real-part (log 0)))) #f)
+  (test (morally-equal? (- (real-part (log 0))) (+ (- (real-part (log 0))) 5e-16)) #t)
+  (test (morally-equal? (- (real-part (log 0))) (- (- (real-part (log 0))) 1/1428571428571429)) #t)
+  (test (morally-equal? (- (real-part (log 0))) (+ (- (real-part (log 0))) 0+5e-16i)) #t)
+  (test (morally-equal? (- (real-part (log 0))) (+ (- (real-part (log 0))) 0-1/1428571428571429i)) #t)
+  (test (morally-equal? (- (real-part (log 0))) 1e-16+i) #f)
+  (test (morally-equal? (- (real-part (log 0))) 0+1e-16i) #f)
+  (test (morally-equal? (- (real-part (log 0))) 1e-300) #f)
+  (test (morally-equal? (- (real-part (log 0))) 0+1e-300i) #f)
+  (test (morally-equal? (- (real-part (log 0))) 1/0) #f)
+  (test (morally-equal? (- (real-part (log 0))) (real-part (log 0))) #f)
+  (test (morally-equal? (- (real-part (log 0))) (- (real-part (log 0)))) #t)
+  (test (morally-equal? (- (real-part (log 0))) (- 0/0)) #f)
+  (test (morally-equal? (- (real-part (log 0))) (log 0)) #f)
+  (test (morally-equal? (- (real-part (log 0))) (complex 1/0 1)) #f)
+  (test (morally-equal? (- (real-part (log 0))) (complex 1 1/0)) #f)
+  (test (morally-equal? (- (real-part (log 0))) (complex 1/0 1/0)) #f)
+  (test (morally-equal? (- (real-part (log 0))) (complex (real-part (log 0)) 1/0)) #f)
+  (test (morally-equal? (- (real-part (log 0))) (complex 1/0 (real-part (log 0)))) #f)
+  (test (morally-equal? (- (real-part (log 0))) (complex (real-part (log 0)) (real-part (log 0)))) #f)
+  (test (morally-equal? (- (real-part (log 0))) (complex (real-part (log 0)) 1)) #f)
+  (test (morally-equal? (- (real-part (log 0))) (complex 1 (real-part (log 0)))) #f)
+  (test (morally-equal? (- 0/0) (+ (- 0/0) 5e-16)) #t)
+  (test (morally-equal? (- 0/0) (- (- 0/0) 1/1428571428571429)) #t)
+  (test (morally-equal? (- 0/0) (+ (- 0/0) 0+5e-16i)) #t)
+  (test (morally-equal? (- 0/0) (+ (- 0/0) 0-1/1428571428571429i)) #t)
+  (test (morally-equal? (- 0/0) 0) #f)
+  (test (morally-equal? (- 0/0) 1e-300) #f)
+  (test (morally-equal? (- 0/0) 0+1e-300i) #f)
+  (test (morally-equal? (- 0/0) 1/0) #t)
+  (test (morally-equal? (- 0/0) (real-part (log 0))) #f)
+  (test (morally-equal? (- 0/0) (- (real-part (log 0)))) #f)
+  (test (morally-equal? (- 0/0) (- 0/0)) #t)
+  (test (morally-equal? (- 0/0) (log 0)) #f)
+  (test (morally-equal? (- 0/0) (complex 1/0 1)) #f)
+  (test (morally-equal? (- 0/0) (complex 1 1/0)) #f)
+  (test (morally-equal? (- 0/0) (complex 1/0 1/0)) #f)
+  (test (morally-equal? (- 0/0) (complex (real-part (log 0)) 1/0)) #f)
+  (test (morally-equal? (- 0/0) (complex 1/0 (real-part (log 0)))) #f)
+  (test (morally-equal? (- 0/0) (complex (real-part (log 0)) (real-part (log 0)))) #f)
+  (test (morally-equal? (- 0/0) (complex (real-part (log 0)) 1)) #f)
+  (test (morally-equal? (- 0/0) (complex 1 (real-part (log 0)))) #f)
+  (test (morally-equal? (log 0) (+ (log 0) 5e-16)) #t)
+  (test (morally-equal? (log 0) (- (log 0) 1/1428571428571429)) #t)
+  (test (morally-equal? (log 0) (+ (log 0) 0+5e-16i)) #t)
+  (test (morally-equal? (log 0) (+ (log 0) 0-1/1428571428571429i)) #t)
+  (test (morally-equal? (log 0) 0) #f)
+  (test (morally-equal? (log 0) 1/0) #f)
+  (test (morally-equal? (log 0) (real-part (log 0))) #f)
+  (test (morally-equal? (log 0) (- (real-part (log 0)))) #f)
+  (test (morally-equal? (log 0) (- 0/0)) #f)
+  (test (morally-equal? (log 0) (log 0)) #t)
+  (test (morally-equal? (log 0) (complex 1/0 1)) #f)
+  (test (morally-equal? (log 0) (complex 1 1/0)) #f)
+  (test (morally-equal? (log 0) (complex 1/0 1/0)) #f)
+  (test (morally-equal? (log 0) (complex (real-part (log 0)) 1/0)) #f)
+  (test (morally-equal? (log 0) (complex 1/0 (real-part (log 0)))) #f)
+  (test (morally-equal? (log 0) (complex (real-part (log 0)) (real-part (log 0)))) #f)
+  (test (morally-equal? (log 0) (complex (real-part (log 0)) 1)) #f)
+  (test (morally-equal? (log 0) (complex 1 (real-part (log 0)))) #f)
+  (test (morally-equal? (complex 1/0 1) (+ (complex 1/0 1) 5e-16)) #t)
+  (test (morally-equal? (complex 1/0 1) (- (complex 1/0 1) 1/1428571428571429)) #t)
+  (test (morally-equal? (complex 1/0 1) (+ (complex 1/0 1) 0+5e-16i)) #t)
+  (test (morally-equal? (complex 1/0 1) (+ (complex 1/0 1) 0-1/1428571428571429i)) #t)
+  (test (morally-equal? (complex 1/0 1) 0) #f)
+  (test (morally-equal? (complex 1/0 1) 1) #f)
+  (test (morally-equal? (complex 1/0 1) 1e-16+i) #f)
+  (test (morally-equal? (complex 1/0 1) 0+1e-16i) #f)
+  (test (morally-equal? (complex 1/0 1) 1e-300) #f)
+  (test (morally-equal? (complex 1/0 1) 0+1e-300i) #f)
+  (test (morally-equal? (complex 1/0 1) 1/0) #f)
+  (test (morally-equal? (complex 1/0 1) (real-part (log 0))) #f)
+  (test (morally-equal? (complex 1/0 1) (- (real-part (log 0)))) #f)
+  (test (morally-equal? (complex 1/0 1) (- 0/0)) #f)
+  (test (morally-equal? (complex 1/0 1) (log 0)) #f)
+  (test (morally-equal? (complex 1/0 1) (complex 1/0 1)) #t)
+  (test (morally-equal? (complex 1/0 1) (complex 1 1/0)) #f)
+  (test (morally-equal? (complex 1/0 1) (complex 1/0 1/0)) #f)
+  (test (morally-equal? (complex 1/0 1) (complex (real-part (log 0)) 1/0)) #f)
+  (test (morally-equal? (complex 1/0 1) (complex 1/0 (real-part (log 0)))) #f)
+  (test (morally-equal? (complex 1/0 1) (complex (real-part (log 0)) (real-part (log 0)))) #f)
+  (test (morally-equal? (complex 1/0 1) (complex (real-part (log 0)) 1)) #f)
+  (test (morally-equal? (complex 1/0 1) (complex 1 (real-part (log 0)))) #f)
+  (test (morally-equal? (complex 1 1/0) (+ (complex 1 1/0) 5e-16)) #t)
+  (test (morally-equal? (complex 1 1/0) (- (complex 1 1/0) 1/1428571428571429)) #t)
+  (test (morally-equal? (complex 1 1/0) (+ (complex 1 1/0) 0+5e-16i)) #t)
+  (test (morally-equal? (complex 1 1/0) (+ (complex 1 1/0) 0-1/1428571428571429i)) #t)
+  (test (morally-equal? (complex 1 1/0) 0) #f)
+  (test (morally-equal? (complex 1 1/0) 1) #f)
+  (test (morally-equal? (complex 1 1/0) 1e-300) #f)
+  (test (morally-equal? (complex 1 1/0) 0+1e-300i) #f)
+  (test (morally-equal? (complex 1 1/0) 1/0) #f)
+  (test (morally-equal? (complex 1 1/0) (real-part (log 0))) #f)
+  (test (morally-equal? (complex 1 1/0) (- (real-part (log 0)))) #f)
+  (test (morally-equal? (complex 1 1/0) (- 0/0)) #f)
+  (test (morally-equal? (complex 1 1/0) (log 0)) #f)
+  (test (morally-equal? (complex 1 1/0) (complex 1/0 1)) #f)
+  (test (morally-equal? (complex 1 1/0) (complex 1 1/0)) #t)
+  (test (morally-equal? (complex 1 1/0) (complex 1/0 1/0)) #f)
+  (test (morally-equal? (complex 1 1/0) (complex (real-part (log 0)) 1/0)) #f)
+  (test (morally-equal? (complex 1 1/0) (complex 1/0 (real-part (log 0)))) #f)
+  (test (morally-equal? (complex 1 1/0) (complex (real-part (log 0)) (real-part (log 0)))) #f)
+  (test (morally-equal? (complex 1 1/0) (complex (real-part (log 0)) 1)) #f)
+  (test (morally-equal? (complex 1 1/0) (complex 1 (real-part (log 0)))) #f)
+  (test (morally-equal? (complex 1/0 1/0) (+ (complex 1/0 1/0) 5e-16)) #t)
+  (test (morally-equal? (complex 1/0 1/0) (- (complex 1/0 1/0) 1/1428571428571429)) #t)
+  (test (morally-equal? (complex 1/0 1/0) (+ (complex 1/0 1/0) 0+5e-16i)) #t)
+  (test (morally-equal? (complex 1/0 1/0) (+ (complex 1/0 1/0) 0-1/1428571428571429i)) #t)
+  (test (morally-equal? (complex 1/0 1/0) 0) #f)
+  (test (morally-equal? (complex 1/0 1/0) 1/0) #f)
+  (test (morally-equal? (complex 1/0 1/0) (real-part (log 0))) #f)
+  (test (morally-equal? (complex 1/0 1/0) (- (real-part (log 0)))) #f)
+  (test (morally-equal? (complex 1/0 1/0) (- 0/0)) #f)
+  (test (morally-equal? (complex 1/0 1/0) (log 0)) #f)
+  (test (morally-equal? (complex 1/0 1/0) (complex 1/0 1)) #f)
+  (test (morally-equal? (complex 1/0 1/0) (complex 1 1/0)) #f)
+  (test (morally-equal? (complex 1/0 1/0) (complex 1/0 1/0)) #t)
+  (test (morally-equal? (complex 1/0 1/0) (complex (real-part (log 0)) 1/0)) #f)
+  (test (morally-equal? (complex 1/0 1/0) (complex 1/0 (real-part (log 0)))) #f)
+  (test (morally-equal? (complex 1/0 1/0) (complex (real-part (log 0)) (real-part (log 0)))) #f)
+  (test (morally-equal? (complex 1/0 1/0) (complex (real-part (log 0)) 1)) #f)
+  (test (morally-equal? (complex 1/0 1/0) (complex 1 (real-part (log 0)))) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1/0) (+ (complex (real-part (log 0)) 1/0) 5e-16)) #t)
+  (test (morally-equal? (complex (real-part (log 0)) 1/0) (- (complex (real-part (log 0)) 1/0) 1/1428571428571429)) #t)
+  (test (morally-equal? (complex (real-part (log 0)) 1/0) (+ (complex (real-part (log 0)) 1/0) 0+5e-16i)) #t)
+  (test (morally-equal? (complex (real-part (log 0)) 1/0) (+ (complex (real-part (log 0)) 1/0) 0-1/1428571428571429i)) #t)
+  (test (morally-equal? (complex (real-part (log 0)) 1/0) 0) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1/0) 1) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1/0) 1000) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1/0) 1/1000) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1/0) 0.0) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1/0) 1.0) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1/0) 1e-16) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1/0) 1e4) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1/0) 1/0) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1/0) (real-part (log 0))) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1/0) (- (real-part (log 0)))) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1/0) (- 0/0)) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1/0) (log 0)) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1/0) (complex 1/0 1)) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1/0) (complex 1 1/0)) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1/0) (complex 1/0 1/0)) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1/0) (complex (real-part (log 0)) 1/0)) #t)
+  (test (morally-equal? (complex (real-part (log 0)) 1/0) (complex 1/0 (real-part (log 0)))) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1/0) (complex (real-part (log 0)) (real-part (log 0)))) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1/0) (complex (real-part (log 0)) 1)) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1/0) (complex 1 (real-part (log 0)))) #f)
+  (test (morally-equal? (complex 1/0 (real-part (log 0))) (+ (complex 1/0 (real-part (log 0))) 5e-16)) #t)
+  (test (morally-equal? (complex 1/0 (real-part (log 0))) (- (complex 1/0 (real-part (log 0))) 1/1428571428571429)) #t)
+  (test (morally-equal? (complex 1/0 (real-part (log 0))) (+ (complex 1/0 (real-part (log 0))) 0+5e-16i)) #t)
+  (test (morally-equal? (complex 1/0 (real-part (log 0))) (+ (complex 1/0 (real-part (log 0))) 0-1/1428571428571429i)) #t)
+  (test (morally-equal? (complex 1/0 (real-part (log 0))) (real-part (log 0))) #f)
+  (test (morally-equal? (complex 1/0 (real-part (log 0))) (- (real-part (log 0)))) #f)
+  (test (morally-equal? (complex 1/0 (real-part (log 0))) (- 0/0)) #f)
+  (test (morally-equal? (complex 1/0 (real-part (log 0))) (log 0)) #f)
+  (test (morally-equal? (complex 1/0 (real-part (log 0))) (complex 1/0 1)) #f)
+  (test (morally-equal? (complex 1/0 (real-part (log 0))) (complex 1 1/0)) #f)
+  (test (morally-equal? (complex 1/0 (real-part (log 0))) (complex 1/0 1/0)) #f)
+  (test (morally-equal? (complex 1/0 (real-part (log 0))) (complex (real-part (log 0)) 1/0)) #f)
+  (test (morally-equal? (complex 1/0 (real-part (log 0))) (complex 1/0 (real-part (log 0)))) #t)
+  (test (morally-equal? (complex 1/0 (real-part (log 0))) (complex (real-part (log 0)) (real-part (log 0)))) #f)
+  (test (morally-equal? (complex 1/0 (real-part (log 0))) (complex (real-part (log 0)) 1)) #f)
+  (test (morally-equal? (complex 1/0 (real-part (log 0))) (complex 1 (real-part (log 0)))) #f)
+  (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) (+ (complex (real-part (log 0)) (real-part (log 0))) 5e-16)) #t)
+  (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) (- (complex (real-part (log 0)) (real-part (log 0))) 1/1428571428571429)) #t)
+  (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) (+ (complex (real-part (log 0)) (real-part (log 0))) 0+5e-16i)) #t)
+  (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) (+ (complex (real-part (log 0)) (real-part (log 0))) 0-1/1428571428571429i)) #t)
+  (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) 0) #f)
+  (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) 1/0) #f)
+  (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) (real-part (log 0))) #f)
+  (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) (- (real-part (log 0)))) #f)
+  (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) (- 0/0)) #f)
+  (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) (log 0)) #f)
+  (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) (complex 1/0 1)) #f)
+  (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) (complex 1 1/0)) #f)
+  (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) (complex 1/0 1/0)) #f)
+  (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) (complex (real-part (log 0)) 1/0)) #f)
+  (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) (complex 1/0 (real-part (log 0)))) #f)
+  (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) (complex (real-part (log 0)) (real-part (log 0)))) #t)
+  (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) (complex (real-part (log 0)) 1)) #f)
+  (test (morally-equal? (complex (real-part (log 0)) (real-part (log 0))) (complex 1 (real-part (log 0)))) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1) (+ (complex (real-part (log 0)) 1) 5e-16)) #t)
+  (test (morally-equal? (complex (real-part (log 0)) 1) (- (complex (real-part (log 0)) 1) 1/1428571428571429)) #t)
+  (test (morally-equal? (complex (real-part (log 0)) 1) (+ (complex (real-part (log 0)) 1) 0+5e-16i)) #t)
+  (test (morally-equal? (complex (real-part (log 0)) 1) (+ (complex (real-part (log 0)) 1) 0-1/1428571428571429i)) #t)
+  (test (morally-equal? (complex (real-part (log 0)) 1) 0) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1) 1) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1) 0+1e-300i) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1) 1/0) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1) (real-part (log 0))) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1) (- (real-part (log 0)))) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1) (- 0/0)) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1) (log 0)) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1) (complex 1/0 1)) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1) (complex 1 1/0)) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1) (complex 1/0 1/0)) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1) (complex (real-part (log 0)) 1/0)) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1) (complex 1/0 (real-part (log 0)))) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1) (complex (real-part (log 0)) (real-part (log 0)))) #f)
+  (test (morally-equal? (complex (real-part (log 0)) 1) (complex (real-part (log 0)) 1)) #t)
+  (test (morally-equal? (complex (real-part (log 0)) 1) (complex 1 (real-part (log 0)))) #f)
+  (test (morally-equal? (complex 1 (real-part (log 0))) (+ (complex 1 (real-part (log 0))) 5e-16)) #t)
+  (test (morally-equal? (complex 1 (real-part (log 0))) (- (complex 1 (real-part (log 0))) 1/1428571428571429)) #t)
+  (test (morally-equal? (complex 1 (real-part (log 0))) (+ (complex 1 (real-part (log 0))) 0+5e-16i)) #t)
+  (test (morally-equal? (complex 1 (real-part (log 0))) (+ (complex 1 (real-part (log 0))) 0-1/1428571428571429i)) #t)
+  (test (morally-equal? (complex 1 (real-part (log 0))) (real-part (log 0))) #f)
+  (test (morally-equal? (complex 1 (real-part (log 0))) (- (real-part (log 0)))) #f)
+  (test (morally-equal? (complex 1 (real-part (log 0))) (- 0/0)) #f)
+  (test (morally-equal? (complex 1 (real-part (log 0))) (log 0)) #f)
+  (test (morally-equal? (complex 1 (real-part (log 0))) (complex 1/0 1)) #f)
+  (test (morally-equal? (complex 1 (real-part (log 0))) (complex 1 1/0)) #f)
+  (test (morally-equal? (complex 1 (real-part (log 0))) (complex 1/0 1/0)) #f)
+  (test (morally-equal? (complex 1 (real-part (log 0))) (complex (real-part (log 0)) 1/0)) #f)
+  (test (morally-equal? (complex 1 (real-part (log 0))) (complex 1/0 (real-part (log 0)))) #f)
+  (test (morally-equal? (complex 1 (real-part (log 0))) (complex (real-part (log 0)) (real-part (log 0)))) #f)
+  (test (morally-equal? (complex 1 (real-part (log 0))) (complex (real-part (log 0)) 1)) #f)
+  (test (morally-equal? (complex 1 (real-part (log 0))) (complex 1 (real-part (log 0)))) #t)) ; end with-bignums
 
 
 ;;; ----------------
@@ -8848,10 +8840,10 @@ zzy" (lambda (p) (eval (read p))))) 32)
 (test ((make-shared-vector (make-shared-vector (float-vector 1.0 2.0 3.0 4.0) '(2 2)) '(4 1)) 2 0) 3.0)
 
 
-(if with-bignums
-    (let ((v (float-vector (bignum "1.0") (bignum "2.0"))))
-      (test (float-vector? v) #t)
-      (test (v 0) 1.0)))
+(when with-bignums
+  (let ((v (float-vector (bignum "1.0") (bignum "2.0"))))
+    (test (float-vector? v) #t)
+    (test (v 0) 1.0)))
 
 (test (vector? (float-vector)) #t)
 (test (vector? (int-vector)) #t)
@@ -9661,32 +9653,32 @@ zzy" (lambda (p) (eval (read p))))) 32)
  (list "hi" #\a () 1 '(1 . 2) (cons #\a #\b) #f 'a-symbol abs _ht_ _null_ _c_obj_ quasiquote macroexpand 1/0 (log 0) 
        3.14 3/4 1.0+1.0i #t :hi (if #f #f) (lambda (a) (+ a 1))))
 
-(if with-bignums
-    (let ((v (make-vector 2 0.0)))
-      (vector-fill! v 1180591620717411303424)
-      (num-test (v 1) (expt 2 70))
-      (vector-fill! v 3/1180591620717411303424)
-      (num-test (v 0) 3/1180591620717411303424)
-      (vector-fill! v 1180591620717411303424.0)
-      (num-test (v 1) 1180591620717411303424.0)
-      (vector-fill! v (complex (expt 2 70) 1.0))
-      (num-test (v 0) (complex (expt 2 70) 1.0))
-      (set! v (float-vector 1.0))
-      (vector-fill! v (bignum "2.0"))
-      (num-test (v 0) 2.0)
-      (vector-fill! v pi)
-      (num-test (v 0) pi)
-      (set! v (float-vector 0.0 0.0 0.0))
-      (vector-fill! v (bignum "2.0") 1 2)
-      (num-test (v 0) 0.0)
-      (num-test (v 1) 2.0)
-      (set! v (make-int-vector 1))
-      (vector-fill! v (bignum "2"))
-      (num-test (v 0) 2)
-      (set! v (make-int-vector 3 0))
-      (vector-fill! v (bignum "2") 1 2)
-      (num-test (v 0) 0)
-      (num-test (v 1) 2)))
+(when with-bignums
+  (let ((v (make-vector 2 0.0)))
+    (vector-fill! v 1180591620717411303424)
+    (num-test (v 1) (expt 2 70))
+    (vector-fill! v 3/1180591620717411303424)
+    (num-test (v 0) 3/1180591620717411303424)
+    (vector-fill! v 1180591620717411303424.0)
+    (num-test (v 1) 1180591620717411303424.0)
+    (vector-fill! v (complex (expt 2 70) 1.0))
+    (num-test (v 0) (complex (expt 2 70) 1.0))
+    (set! v (float-vector 1.0))
+    (vector-fill! v (bignum "2.0"))
+    (num-test (v 0) 2.0)
+    (vector-fill! v pi)
+    (num-test (v 0) pi)
+    (set! v (float-vector 0.0 0.0 0.0))
+    (vector-fill! v (bignum "2.0") 1 2)
+    (num-test (v 0) 0.0)
+    (num-test (v 1) 2.0)
+    (set! v (make-int-vector 1))
+    (vector-fill! v (bignum "2"))
+    (num-test (v 0) 2)
+    (set! v (make-int-vector 3 0))
+    (vector-fill! v (bignum "2") 1 2)
+    (num-test (v 0) 0)
+    (num-test (v 1) 2)))
 
 (let ((v (make-vector 3)))
   (vector-fill! v v)
@@ -9850,7 +9842,7 @@ zzy" (lambda (p) (eval (read p))))) 32)
 
 (test (let ((sum 0)) (for-each (lambda (n) (set! sum (+ sum n))) (vector 1 2 3)) sum) 6)
 (test (let ((sum 0)) (for-each (lambda (n m) (set! sum (+ sum n (- m)))) (vector 1 2 3) (vector 4 5 6)) sum) -9)
-(test (let () (for-each (lambda (n) (error "oops")) (vector)) #f) #f)
+(test (let () (for-each (lambda (n) (error 'wrong-type-arg "oops")) (vector)) #f) #f)
 (test (let ((sum 0)) (for-each (lambda (n m p) (set! sum (+ sum n (- m) (* 2 p)))) (vector 1 2 3) (vector 4 5 6) (vector 6 7 8)) sum) 33)
 (test (let ((sum 0)) (for-each (lambda (n) (for-each (lambda (m) (set! sum (+ sum (* m n)))) (vector 1 2 3))) (vector 4 5 6)) sum) 90)
 (test (call/cc (lambda (return) (for-each (lambda (n) (return "oops")) (vector 1 2 3)))) "oops")
@@ -10465,17 +10457,14 @@ zzy" (lambda (p) (eval (read p))))) 32)
 	  sum))
       78)
 
-(let ((old-vlen (*s7* 'print-length)))
-  (set! (*s7* 'print-length) 32)
+(let-temporarily (((*s7* 'print-length) 32))
   (test (object->string (make-vector '(8 8) 0)) "#2D((0 0 0 0 0 0 0 0) (0 0 0 0 0 0 0 0) (0 0 0 0 0 0 0 0) (0 0 0 0 0 0 0 0)...)")
   (test (object->string (make-vector 64 0)) "#(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...)")
   (test (object->string (make-vector 32 0)) "#(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)")
   (test (object->string (make-vector 33 0)) "#(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ...)")
-  (test (object->string (make-vector '(8 4) 0)) "#2D((0 0 0 0) (0 0 0 0) (0 0 0 0) (0 0 0 0) (0 0 0 0) (0 0 0 0) (0 0 0 0) (0 0 0 0))")
-  (set! (*s7* 'print-length) old-vlen))
+  (test (object->string (make-vector '(8 4) 0)) "#2D((0 0 0 0) (0 0 0 0) (0 0 0 0) (0 0 0 0) (0 0 0 0) (0 0 0 0) (0 0 0 0) (0 0 0 0))"))
 
-(let ((old-vlen (*s7* 'print-length)))
-  (set! (*s7* 'print-length) 1024) ; check the many-() case
+(let-temporarily (((*s7* 'print-length) 1024))
   (test (object->string (make-vector '(2 1 2 1 2 1 2 1 2 1 2 1 2 1) 0)) "#14D((((((((((((((0) (0))) (((0) (0))))) (((((0) (0))) (((0) (0))))))) (((((((0) (0))) (((0) (0))))) (((((0) (0))) (((0) (0))))))))) (((((((((0) (0))) (((0) (0))))) (((((0) (0))) (((0) (0))))))) (((((((0) (0))) (((0) (0))))) (((((0) (0))) (((0) (0))))))))))) (((((((((((0) (0))) (((0) (0))))) (((((0) (0))) (((0) (0))))))) (((((((0) (0))) (((0) (0))))) (((((0) (0))) (((0) (0))))))))) (((((((((0) (0))) (((0) (0))))) (((((0) (0))) (((0) (0))))))) (((((((0) (0))) (((0) (0))))) (((((0) (0))) (((0) (0))))))))))))) (((((((((((((0) (0))) (((0) (0))))) (((((0) (0))) (((0) (0))))))) (((((((0) (0))) (((0) (0))))) (((((0) (0))) (((0) (0))))))))) (((((((((0) (0))) (((0) (0))))) (((((0) (0))) (((0) (0))))))) (((((((0) (0))) (((0) (0))))) (((((0) (0))) (((0) (0))))))))))) (((((((((((0) (0))) (((0) (0))))) (((((0) (0))) (((0) (0))))))) (((((((0) (0))) (((0) (0))))) (((((0) (0))) (((0) (0))))))))) (((((((((0) (0))) (((0) (0))))) (((((0) (0))) (((0) (0))))))) (((((((0) (0))) (((0) (0))))) (((((0) (0))) (((0) (0))))))))))))))")
 
   (test (object->string (make-vector '(16 1 1 1 1 1 1 1 1 1 1 1 1 1) 0)) "#14D((((((((((((((0))))))))))))) (((((((((((((0))))))))))))) (((((((((((((0))))))))))))) (((((((((((((0))))))))))))) (((((((((((((0))))))))))))) (((((((((((((0))))))))))))) (((((((((((((0))))))))))))) (((((((((((((0))))))))))))) (((((((((((((0))))))))))))) (((((((((((((0))))))))))))) (((((((((((((0))))))))))))) (((((((((((((0))))))))))))) (((((((((((((0))))))))))))) (((((((((((((0))))))))))))) (((((((((((((0))))))))))))) (((((((((((((0))))))))))))))")
@@ -10490,10 +10479,7 @@ zzy" (lambda (p) (eval (read p))))) 32)
 		       (not (equal? (check-shared-vector-after-gc i) (cons 3 i))))
 		   (set! happy #f))))
 	#t)
-  (set! check-shared-vector-after-gc #f)
-
-  (set! (*s7* 'print-length) old-vlen))  
-
+  (set! check-shared-vector-after-gc #f))
 
 
 
@@ -10750,15 +10736,12 @@ zzy" (lambda (p) (eval (read p))))) 32)
   (test (list-set! lst1 9223372036854775807 2) 'error)
   (test (list-tail lst1 9223372036854775807) 'error)
   (test (make-vector lst1 9223372036854775807) 'error)
-  (let ((os (*s7* 'safety)))
-    (set! (*s7* 'safety) 1)
+  (let-temporarily (((*s7* 'safety) 1))
     (test (not (member (map (lambda (x) x) lst1) (list () '(1)))) #f) ; geez -- just want to allow two possible ok results
     (test (not (member (map (lambda (x y) x) lst1 lst1) (list () '(1)))) #f)
     (test (for-each (lambda (x) x) lst1) #<unspecified>) ; was 'error
     (test (for-each (lambda (x y) x) lst1 lst1) #<unspecified>) ; was 'error
-    (test (not (member (map (lambda (x y) (+ x y)) lst1 '(1 2 3)) (list () '(2)))) #f)
-    (set! (*s7* 'safety) os))
-  )
+    (test (not (member (map (lambda (x y) (+ x y)) lst1 '(1 2 3)) (list () '(2)))) #f)))
 
 (let ((lst1 (list 1 -1)))
   (set-cdr! (cdr lst1) lst1)
@@ -11754,20 +11737,20 @@ zzy" (lambda (p) (eval (read p))))) 32)
    (list -1 #\a #(1 2 3) 3.14 3/4 1.0+1.0i 'hi :hi #<eof> #(1 2 3) #(()) "hi" '(1 . 2) '(1 2 3)))
   (set! (hook-functions *error-hook*) old-hook))
 
-(let ((old-hook (hook-functions *unbound-variable-hook*))
-      (hook-val #f))
-  (set! (hook-functions *unbound-variable-hook*) 
-	(list (lambda (hook) 
-		(set! hook-val (hook 'variable)) 
-		(set! (hook 'result) 123))))
-  (let ((val (catch #t
-		    (lambda ()
-		      (+ 1 one-two-three))
-		    (lambda args 'error))))
-    (test val 124))
-  (test (equal? one-two-three 123) #t)
-  (test (equal? hook-val 'one-two-three) #t)
-  (set! (hook-functions *unbound-variable-hook*) old-hook))
+(let ((hook-val #f))
+  (let-temporarily (((hook-functions *unbound-variable-hook*)
+		     (list (lambda (hook) 
+			     (set! hook-val (hook 'variable)) 
+			     (set! (hook 'result) 123)))))
+    (let ((val (catch #t
+		 (lambda ()
+		   (+ 1 one-two-three))
+		 (lambda args
+		   (apply format *stderr* (cadr args))
+		   'error))))
+      (test val 124))
+    (test (equal? one-two-three 123) #t)
+    (test (equal? hook-val 'one-two-three) #t)))
 
 (let ((old-hook (hook-functions *unbound-variable-hook*)))
   (set! (hook-functions *unbound-variable-hook*) 
@@ -12366,16 +12349,13 @@ zzy" (lambda (p) (eval (read p))))) 32)
   (test (or (string=? (object->string hi) "(hash-table '(-9 . \"-9\") '(9 . \"9\") '(-1 . \"-1\") '(1 . \"1\") '(2 . \"2\"))")
 	    (string=? (object->string hi) "(hash-table '(9 . \"9\") '(1 . \"1\") '(2 . \"2\") '(-9 . \"-9\") '(-1 . \"-1\"))"))
 	#t)
-  (let ((old-plen (*s7* 'print-length)))
-    (set! (*s7* 'print-length) 3)
+  (let-temporarily (((*s7* 'print-length) 3))
     (test (or (string=? (object->string hi) "(hash-table '(-9 . \"-9\") '(9 . \"9\") '(-1 . \"-1\") ...)")
 	      (string=? (object->string hi) "(hash-table '(9 . \"9\") '(1 . \"1\") '(2 . \"2\") ...)"))
 	  #t)
     (set! (*s7* 'print-length) 0)
     (test (object->string hi) "(hash-table ...)")
-    (test (object->string (hash-table)) "(hash-table)")
-    (set! (*s7* 'print-length) old-plen))
-  )
+    (test (object->string (hash-table)) "(hash-table)")))
 
 (let ((ht (make-hash-table 277)))
   (test (hash-table? ht) #t)
@@ -12489,26 +12469,26 @@ zzy" (lambda (p) (eval (read p))))) 32)
       (if (not with-windows)
 	  (test (object->string ht1) "(hash-table '(nan.0 . 0))"))))
 
-(if (not with-bignums)      
-    (let ((ht1 (make-hash-table)))
-      (set! (ht1 1) "1")
-      (set! (ht1 1.0) "1.0")
-      (test (ht1 1) "1")
-      (set! (ht1 1/0) "nan")
-      (test (ht1 0/0) "nan")
-      (set! (ht1 (/ (log 0) (log 0))) "nan-nani")
-      (test (ht1 (/ (log 0) (log 0))) "nan-nani")
-      (test (ht1 (- 0/0)) "nan")
-      (test (ht1 (real-part (/ (log 0) (log 0)))) "nan")
-      (test (ht1 (complex 0/0 1/0)) "nan-nani")
-      (set! (ht1 (real-part (log 0))) "-inf")
-      (test (ht1 (real-part (log 0))) "-inf")
-      (set! (ht1 (- (real-part (log 0)))) "inf")
-      (test (ht1 (- (real-part (log 0)))) "inf")
-      (set! (ht1 (log 0)) "log(0)")
-      (test (ht1 (log 0)) "log(0)")
-      (set! (ht1 (complex 80143857/25510582 1)) "pi+i")
-      (test (ht1 (complex pi (- 1.0 1e-16))) "pi+i")))
+(unless with-bignums
+  (let ((ht1 (make-hash-table)))
+    (set! (ht1 1) "1")
+    (set! (ht1 1.0) "1.0")
+    (test (ht1 1) "1")
+    (set! (ht1 1/0) "nan")
+    (test (ht1 0/0) "nan")
+    (set! (ht1 (/ (log 0) (log 0))) "nan-nani")
+    (test (ht1 (/ (log 0) (log 0))) "nan-nani")
+    (test (ht1 (- 0/0)) "nan")
+    (test (ht1 (real-part (/ (log 0) (log 0)))) "nan")
+    (test (ht1 (complex 0/0 1/0)) "nan-nani")
+    (set! (ht1 (real-part (log 0))) "-inf")
+    (test (ht1 (real-part (log 0))) "-inf")
+    (set! (ht1 (- (real-part (log 0)))) "inf")
+    (test (ht1 (- (real-part (log 0)))) "inf")
+    (set! (ht1 (log 0)) "log(0)")
+    (test (ht1 (log 0)) "log(0)")
+    (set! (ht1 (complex 80143857/25510582 1)) "pi+i")
+    (test (ht1 (complex pi (- 1.0 1e-16))) "pi+i")))
 
 (let ((ht (make-hash-table)))
   (set! (ht (string #\a #\null #\b)) 1)
@@ -15061,78 +15041,74 @@ zzy" (lambda (p) (eval (read p))))) 32)
 (test (string=? "\x61\x42\x63" "aBc") #t)
 
 
-(if (provided? 'system-extras)
-    (begin
-
-      ;;; directory?
-      (test (directory? tmp-output-file) #f)
-      (test (directory? ".") #t)
-      (test (directory?) 'error)
-      (test (directory? "." 0) 'error)
-      (for-each
-       (lambda (arg)
-	 (test (directory? arg) 'error))
-       (list -1 #\a 1 'a-symbol (make-vector 3) abs _ht_ _null_ _c_obj_ quasiquote macroexpand 1/0 (log 0) 
-	     3.14 3/4 1.0+1.0i #f #t :hi (if #f #f) (lambda (a) (+ a 1))))
-
-      ;;; file-exists?
-      (test (file-exists? tmp-output-file) #t)
-      (test (file-exists? "not-a-file-I-hope") #f)
-      (test (file-exists?) 'error)
-      (test (file-exists? tmp-output-file 0) 'error)
-      (for-each
-       (lambda (arg)
-	 (test (file-exists? arg) 'error))
-       (list -1 #\a 1 'a-symbol (make-vector 3) abs _ht_ _null_ _c_obj_ quasiquote macroexpand 1/0 (log 0) 
-	     3.14 3/4 1.0+1.0i #f #t :hi (if #f #f) (lambda (a) (+ a 1))))
-
-      ;;; delete-file
-      (test (delete-file tmp-output-file) 0)
-      (test (file-exists? tmp-output-file) #f)
-      (test (delete-file "not-a-file-I-hope") -1)
-      (test (delete-file) 'error)
-      (test (delete-file tmp-output-file 0) 'error)
-      (for-each
-       (lambda (arg)
-	 (test (delete-file arg) 'error))
-       (list -1 #\a 1 'a-symbol (make-vector 3) abs _ht_ _null_ _c_obj_ quasiquote macroexpand 1/0 (log 0) 
-	     3.14 3/4 1.0+1.0i #f #t :hi (if #f #f) (lambda (a) (+ a 1))))
-
-      ;;; getenv
-      (test (pair? (member (getenv "HOME") '("/usr/home/bil" "/Users/bil" "/home/bil") string=?)) #t)
-      (test (getenv "NO-ENV") "")
-      (test (getenv) 'error)
-      (test (getenv "HOME" #t) 'error)
-      (for-each
-       (lambda (arg)
-	 (test (getenv arg) 'error))
-       (list -1 #\a 1 'a-symbol (make-vector 3) abs _ht_ _null_ _c_obj_ quasiquote macroexpand 1/0 (log 0) 
-	     3.14 3/4 1.0+1.0i #f #t :hi (if #f #f) (lambda (a) (+ a 1))))
-
-      ;;; directory->list
-      (test (directory->list) 'error)
-      (test (directory->list "." 0) 'error)
-      (for-each
-       (lambda (arg)
-	 (test (directory->list arg) 'error))
-       (list -1 #\a 1 'a-symbol (make-vector 3) abs _ht_ _null_ _c_obj_ quasiquote macroexpand 1/0 (log 0) 
-	     3.14 3/4 1.0+1.0i #f #t :hi (if #f #f) (lambda (a) (+ a 1))))
-
-      ;;; system
-      (test (system "test -f s7test.scm") 0)
-      (test (system) 'error)
-      (test (let ((str (system "man fgrep" #t)))
-	      (and (string? str)
-		   (> (length str) 10000))) ; osx: 14479, linux: 40761
-	    #t)
-      (for-each
-       (lambda (arg)
-	 (test (system arg) 'error))
-       (list -1 #\a 1 'a-symbol (make-vector 3) abs _ht_ _null_ _c_obj_ quasiquote macroexpand 1/0 (log 0) 
-	     3.14 3/4 1.0+1.0i #f #t :hi (if #f #f) (lambda (a) (+ a 1))))
-      
-      ))
-      
+(when (provided? 'system-extras)
+  ;; directory?
+  (test (directory? tmp-output-file) #f)
+  (test (directory? ".") #t)
+  (test (directory?) 'error)
+  (test (directory? "." 0) 'error)
+  (for-each
+   (lambda (arg)
+     (test (directory? arg) 'error))
+   (list -1 #\a 1 'a-symbol (make-vector 3) abs _ht_ _null_ _c_obj_ quasiquote macroexpand 1/0 (log 0) 
+	 3.14 3/4 1.0+1.0i #f #t :hi (if #f #f) (lambda (a) (+ a 1))))
+  
+  ;; file-exists?
+  (test (file-exists? tmp-output-file) #t)
+  (test (file-exists? "not-a-file-I-hope") #f)
+  (test (file-exists?) 'error)
+  (test (file-exists? tmp-output-file 0) 'error)
+  (for-each
+   (lambda (arg)
+     (test (file-exists? arg) 'error))
+   (list -1 #\a 1 'a-symbol (make-vector 3) abs _ht_ _null_ _c_obj_ quasiquote macroexpand 1/0 (log 0) 
+	 3.14 3/4 1.0+1.0i #f #t :hi (if #f #f) (lambda (a) (+ a 1))))
+  
+  ;; delete-file
+  (test (delete-file tmp-output-file) 0)
+  (test (file-exists? tmp-output-file) #f)
+  (test (delete-file "not-a-file-I-hope") -1)
+  (test (delete-file) 'error)
+  (test (delete-file tmp-output-file 0) 'error)
+  (for-each
+   (lambda (arg)
+     (test (delete-file arg) 'error))
+   (list -1 #\a 1 'a-symbol (make-vector 3) abs _ht_ _null_ _c_obj_ quasiquote macroexpand 1/0 (log 0) 
+	 3.14 3/4 1.0+1.0i #f #t :hi (if #f #f) (lambda (a) (+ a 1))))
+  
+  ;; getenv
+  (test (pair? (member (getenv "HOME") '("/usr/home/bil" "/Users/bil" "/home/bil") string=?)) #t)
+  (test (getenv "NO-ENV") "")
+  (test (getenv) 'error)
+  (test (getenv "HOME" #t) 'error)
+  (for-each
+   (lambda (arg)
+     (test (getenv arg) 'error))
+   (list -1 #\a 1 'a-symbol (make-vector 3) abs _ht_ _null_ _c_obj_ quasiquote macroexpand 1/0 (log 0) 
+	 3.14 3/4 1.0+1.0i #f #t :hi (if #f #f) (lambda (a) (+ a 1))))
+  
+  ;; directory->list
+  (test (directory->list) 'error)
+  (test (directory->list "." 0) 'error)
+  (for-each
+   (lambda (arg)
+     (test (directory->list arg) 'error))
+   (list -1 #\a 1 'a-symbol (make-vector 3) abs _ht_ _null_ _c_obj_ quasiquote macroexpand 1/0 (log 0) 
+	 3.14 3/4 1.0+1.0i #f #t :hi (if #f #f) (lambda (a) (+ a 1))))
+  
+  ;; system
+  (test (system "test -f s7test.scm") 0)
+  (test (system) 'error)
+  (test (let ((str (system "man fgrep" #t)))
+	  (and (string? str)
+	       (> (length str) 10000))) ; osx: 14479, linux: 40761
+	#t)
+  (for-each
+   (lambda (arg)
+     (test (system arg) 'error))
+   (list -1 #\a 1 'a-symbol (make-vector 3) abs _ht_ _null_ _c_obj_ quasiquote macroexpand 1/0 (log 0) 
+	 3.14 3/4 1.0+1.0i #f #t :hi (if #f #f) (lambda (a) (+ a 1)))))
+        
 (let ()
   (define (args2)
     (with-output-to-file tmp-data-file
@@ -15563,13 +15539,13 @@ a2" 3) "132")
     (test (format #f "~W" pi) "3.141592653589793"))
 (test (format #f "~W" 3+4i) "3+4i")
 (test (format #f "~W" 3-4i) "3-4i")
-(if (not with-bignums)
-    (let ((name (if pure-s7 'complex 'complex))
-	  (func (if pure-s7 complex complex)))
-      (test (format #f "~W" (func 1/0 0)) "nan.0")
-      (test (format #f "~W" (func 1/0 1)) (format #f "(~S nan.0 1)" name))
-      (test (format #f "~W" (func inf.0 1/0)) (format #f "(~S inf.0 nan.0)" name))
-      (test (format #f "~W" (log 0)) (format #f "(~S -inf.0 3.141592653589793)" name))))
+(unless with-bignums
+  (let ((name (if pure-s7 'complex 'complex))
+	(func (if pure-s7 complex complex)))
+    (test (format #f "~W" (func 1/0 0)) "nan.0")
+    (test (format #f "~W" (func 1/0 1)) (format #f "(~S nan.0 1)" name))
+    (test (format #f "~W" (func inf.0 1/0)) (format #f "(~S inf.0 nan.0)" name))
+    (test (format #f "~W" (log 0)) (format #f "(~S -inf.0 3.141592653589793)" name))))
 
 ;; see also object->string with :readable
 
@@ -15581,7 +15557,7 @@ a2" 3) "132")
 (test (format #f "~1, 2F" 123.456789) 'error)
 (test (format #f "~1, F" 123.456789) 'error)
 
-(if with-bignums
+(when with-bignums
     (begin
       (test (format #f "~o" 1e19) "1.053071060221172E21")
       (test (format #f "~o" -1e19) "-1.053071060221172E21")
@@ -15711,10 +15687,9 @@ a2" 3) "132")
 (test (format #f "~f" 1) "1")
 (test (format #f "~F" most-positive-fixnum) "9223372036854775807")
 
-(if (not with-bignums) 
-    (begin
-      (test (format #f "~,20F" 1e-20) "0.00000000000000000001")
-      (test (format #f "~,40F" 1e-40) "0.0000000000000000000000000000000000000001")))
+(unless with-bignums
+  (test (format #f "~,20F" 1e-20) "0.00000000000000000001")
+  (test (format #f "~,40F" 1e-40) "0.0000000000000000000000000000000000000001"))
 ;; if with bignums, these needs more bits
 
 ;;; the usual troubles here with big floats:
@@ -15724,39 +15699,36 @@ a2" 3) "132")
 ;;; or small:
 ;;; (format #f "~,30F" 1e-1) -> "0.100000000000000005551115123126"
 
-(if with-bignums
-    (begin
-      (test (format #f "~A" -7043009959286724629649270926654940933664689003233793014518979272497911394287216967075767325693021717277238746020477538876750544587281879084559996466844417586093291189295867052594478662802691926547232838591510540917276694295393715934079679531035912244103731582711556740654671309980075069010778644542022/670550434139267031632063192770201289106737062379324644110801846820471752716238484923370056920388400273070254958650831435834503195629325418985020030706879602898158806736813101434594805676212779217311897830937606064579213895527844045511878668289820732425014254579493444623868748969110751636786165152601) "-7043009959286724629649270926654940933664689003233793014518979272497911394287216967075767325693021717277238746020477538876750544587281879084559996466844417586093291189295867052594478662802691926547232838591510540917276694295393715934079679531035912244103731582711556740654671309980075069010778644542022/670550434139267031632063192770201289106737062379324644110801846820471752716238484923370056920388400273070254958650831435834503195629325418985020030706879602898158806736813101434594805676212779217311897830937606064579213895527844045511878668289820732425014254579493444623868748969110751636786165152601")
-      (test (format #f "~D" -7043009959286724629649270926654940933664689003233793014518979272497911394287216967075767325693021717277238746020477538876750544587281879084559996466844417586093291189295867052594478662802691926547232838591510540917276694295393715934079679531035912244103731582711556740654671309980075069010778644542022/670550434139267031632063192770201289106737062379324644110801846820471752716238484923370056920388400273070254958650831435834503195629325418985020030706879602898158806736813101434594805676212779217311897830937606064579213895527844045511878668289820732425014254579493444623868748969110751636786165152601) "-7043009959286724629649270926654940933664689003233793014518979272497911394287216967075767325693021717277238746020477538876750544587281879084559996466844417586093291189295867052594478662802691926547232838591510540917276694295393715934079679531035912244103731582711556740654671309980075069010778644542022/670550434139267031632063192770201289106737062379324644110801846820471752716238484923370056920388400273070254958650831435834503195629325418985020030706879602898158806736813101434594805676212779217311897830937606064579213895527844045511878668289820732425014254579493444623868748969110751636786165152601")
-    ))
+(when with-bignums
+  (test (format #f "~A" -7043009959286724629649270926654940933664689003233793014518979272497911394287216967075767325693021717277238746020477538876750544587281879084559996466844417586093291189295867052594478662802691926547232838591510540917276694295393715934079679531035912244103731582711556740654671309980075069010778644542022/670550434139267031632063192770201289106737062379324644110801846820471752716238484923370056920388400273070254958650831435834503195629325418985020030706879602898158806736813101434594805676212779217311897830937606064579213895527844045511878668289820732425014254579493444623868748969110751636786165152601) "-7043009959286724629649270926654940933664689003233793014518979272497911394287216967075767325693021717277238746020477538876750544587281879084559996466844417586093291189295867052594478662802691926547232838591510540917276694295393715934079679531035912244103731582711556740654671309980075069010778644542022/670550434139267031632063192770201289106737062379324644110801846820471752716238484923370056920388400273070254958650831435834503195629325418985020030706879602898158806736813101434594805676212779217311897830937606064579213895527844045511878668289820732425014254579493444623868748969110751636786165152601")
+  (test (format #f "~D" -7043009959286724629649270926654940933664689003233793014518979272497911394287216967075767325693021717277238746020477538876750544587281879084559996466844417586093291189295867052594478662802691926547232838591510540917276694295393715934079679531035912244103731582711556740654671309980075069010778644542022/670550434139267031632063192770201289106737062379324644110801846820471752716238484923370056920388400273070254958650831435834503195629325418985020030706879602898158806736813101434594805676212779217311897830937606064579213895527844045511878668289820732425014254579493444623868748969110751636786165152601) "-7043009959286724629649270926654940933664689003233793014518979272497911394287216967075767325693021717277238746020477538876750544587281879084559996466844417586093291189295867052594478662802691926547232838591510540917276694295393715934079679531035912244103731582711556740654671309980075069010778644542022/670550434139267031632063192770201289106737062379324644110801846820471752716238484923370056920388400273070254958650831435834503195629325418985020030706879602898158806736813101434594805676212779217311897830937606064579213895527844045511878668289820732425014254579493444623868748969110751636786165152601"))
+
 (test (format #f "~@F" 1.23) 'error)
 (test (format #f "~{testing ~D ~C ~}" (list 0 #\( 1 #\) 2 #\* 3 #\+ 4 #\, 5 #\- 6 #\. 7 #\/ 8 #\0 9 #\1 10 #\2 11 #\3 12 #\4 13 #\5 14 #\6 15 #\7 16 #\8 17 #\9 18 #\: 19 #\; 20 #\< 21 #\= 22 #\> 23 #\? 24 #\@ 25 #\A 26 #\B 27 #\C 28 #\D 29 #\E 30 #\F 31 #\G 32 #\H 33 #\I 34 #\J 35 #\K 36 #\L 37 #\M 38 #\N 39 #\O 40 #\P 41 #\Q 42 #\R 43 #\S 44 #\T 45 #\U 46 #\V 47 #\W 48 #\X 49 #\Y 50 #\( 51 #\) 52 #\* 53 #\+ 54 #\, 55 #\- 56 #\. 57 #\/ 58 #\0 59 #\1 60 #\2 61 #\3 62 #\4 63 #\5 64 #\6 65 #\7 66 #\8 67 #\9 68 #\: 69 #\; 70 #\< 71 #\= 72 #\> 73 #\? 74 #\@ 75 #\A 76 #\B 77 #\C 78 #\D 79 #\E 80 #\F 81 #\G 82 #\H 83 #\I 84 #\J 85 #\K 86 #\L 87 #\M 88 #\N 89 #\O 90 #\P 91 #\Q 92 #\R 93 #\S 94 #\T 95 #\U 96 #\V 97 #\W 98 #\X 99 #\Y))
       "testing 0 ( testing 1 ) testing 2 * testing 3 + testing 4 , testing 5 - testing 6 . testing 7 / testing 8 0 testing 9 1 testing 10 2 testing 11 3 testing 12 4 testing 13 5 testing 14 6 testing 15 7 testing 16 8 testing 17 9 testing 18 : testing 19 ; testing 20 < testing 21 = testing 22 > testing 23 ? testing 24 @ testing 25 A testing 26 B testing 27 C testing 28 D testing 29 E testing 30 F testing 31 G testing 32 H testing 33 I testing 34 J testing 35 K testing 36 L testing 37 M testing 38 N testing 39 O testing 40 P testing 41 Q testing 42 R testing 43 S testing 44 T testing 45 U testing 46 V testing 47 W testing 48 X testing 49 Y testing 50 ( testing 51 ) testing 52 * testing 53 + testing 54 , testing 55 - testing 56 . testing 57 / testing 58 0 testing 59 1 testing 60 2 testing 61 3 testing 62 4 testing 63 5 testing 64 6 testing 65 7 testing 66 8 testing 67 9 testing 68 : testing 69 ; testing 70 < testing 71 = testing 72 > testing 73 ? testing 74 @ testing 75 A testing 76 B testing 77 C testing 78 D testing 79 E testing 80 F testing 81 G testing 82 H testing 83 I testing 84 J testing 85 K testing 86 L testing 87 M testing 88 N testing 89 O testing 90 P testing 91 Q testing 92 R testing 93 S testing 94 T testing 95 U testing 96 V testing 97 W testing 98 X testing 99 Y ")
 
-(let ((old-len (*s7* 'print-length)))
-  (let ((vect1 #3D(((1 2 3) (3 4 5)) ((5 6 1) (7 8 2))))
-	(vect2 #2d((1 2 3 4 5 6) (7 8 9 10 11 12)))
-	(vect3 #(1 2 3 4 5 6 7 8 9 10 11 12 13 14))
-	(vect4 #3D(((1 2) (3 4) (5 6)) ((7 8) (9 10) (11 12)))))
-    (do ((i 0 (+ i 2)))
-	((>= i 10))
-      (set! (*s7* 'print-length) i)
-      (test (object->string vect1) (format #f "~A" vect1))
-      (test (object->string vect2) (format #f "~A" vect2))
-      (test (object->string vect3) (format #f "~A" vect3))
-      (test (object->string vect4) (format #f "~A" vect4))))
-  (set! (*s7* 'print-length) 0)
-  (test (format #f "~A" #()) "#()")
-  (set! (*s7* 'print-length) old-len))
 
-(let ((old-pl (*s7* 'print-length)))
-  (set! (*s7* 'print-length) 3)
+(let ((vect1 #3D(((1 2 3) (3 4 5)) ((5 6 1) (7 8 2))))
+      (vect2 #2d((1 2 3 4 5 6) (7 8 9 10 11 12)))
+      (vect3 #(1 2 3 4 5 6 7 8 9 10 11 12 13 14))
+      (vect4 #3D(((1 2) (3 4) (5 6)) ((7 8) (9 10) (11 12)))))
+  (do ((i 0 (+ i 2)))
+      ((>= i 10))
+    (set! (*s7* 'print-length) i)
+    (test (object->string vect1) (format #f "~A" vect1))
+    (test (object->string vect2) (format #f "~A" vect2))
+    (test (object->string vect3) (format #f "~A" vect3))
+    (test (object->string vect4) (format #f "~A" vect4))))
+
+(let-temporarily (((*s7* 'print-length) 0))
+  (test (format #f "~A" #()) "#()"))
+
+(let-temporarily (((*s7* 'print-length) 3))
   (let ((lst (list 1)))
     (set-car! lst lst)
     (let ((v (vector 1 1 1 1 1 1 1 1 1 lst)))
       (let ((str (format #f "~A" v)))
-	(test (string=? str "#(1 1 1 ...)") #t))))
-  (set! (*s7* 'print-length) old-pl))
+	(test (string=? str "#(1 1 1 ...)") #t)))))
 
 (test (format #f "~D" 123) "123")
 (test (format #f "~X" 123) "7b")
@@ -16243,8 +16215,7 @@ a2" 3) "132")
 (test (format #f "~@p" #(())) 'error)
 (test (format #f "~@p" 'hi) 'error)
 (test (format #f "~@p" abs) 'error)
-(let ((old-vp (*s7* 'print-length)))
-  (set! (*s7* 'print-length) 3)
+(let-temporarily (((*s7* 'print-length) 3))
   (test (format #f "~{~A~| ~}" '(1 2 3 4 5 6)) "1 2 3 ...")
   (test (format #f "~{~A~| ~}" #(1 2 3 4 5 6)) "1 2 3 ...")
   (test (format #f "~{~A~| ~}" #(1 2)) "1 2")
@@ -16261,8 +16232,7 @@ a2" 3) "132")
   (test (format #f "~{~{~{~A~| ~}~| ~}~}" '((#(1 2) #(3 4)))) "1 2 3 4")
   (test (format #f "~{~{~{~A~| ~}~| ~}~}" #(((1 2) (3 4)))) "1 2 3 4")
   (test (format #f "~{~{~{~A~| ~}~| ~}~}" #(#((1 2) (3 4)))) "1 2 3 4")
-  (test (format #f "~{~{~C~| ~}~| ~}" (list "hiho" "xxx")) "h i h ... x x x")
-  (set! (*s7* 'print-length) old-vp))
+  (test (format #f "~{~{~C~| ~}~| ~}" (list "hiho" "xxx")) "h i h ... x x x"))
 (test (format #f "~{~{~A~^~} ~}" '((hi 1))) "hi1 ")
 (test (format #f "~{~{~A~^~} ~}" '((1 2) (3 4))) "12 34 ")
 (test (format #f "~{~{~A~} ~}" '((1 2) (3 4))) "12 34 ")
@@ -16497,19 +16467,17 @@ a2" 3) "132")
   (test (clean-string '(1.123123 -2.31231323 3.141592653589 4/3)) "(1.123 -2.312 3.142 4/3)")
   (test (clean-string '(1.123123 -2.31231323 3.141592653589 4/3) 6) "(1.123123 -2.312313 3.141593 4/3)"))
 
-(if with-bignums
-    (begin
-      (test (format #f "~P" (bignum "1")) "")
-      (test (format #f "~P" (bignum "1.0")) "")
-      (test (format #f "~P" (bignum "2")) "s")
-      (test (format #f "~P" (bignum "2.0")) "s")
-      (test (format #f "~10,' D" (bignum "1")) "         1")
-      (test (format #f "~10,' D" (bignum "3/4")) "       3/4")
-      (test (format #f "~10,'.D" (bignum "3/4")) ".......3/4")
-      (test (format #f "~10D" (bignum "3/4")) "       3/4")
-      (test (length (format #f "~100D" (bignum "34"))) 100)
-      (test (format #f "~50F" (bignum "12345678.7654321")) "                                1.23456787654321E7")
-      ))
+(when with-bignums
+  (test (format #f "~P" (bignum "1")) "")
+  (test (format #f "~P" (bignum "1.0")) "")
+  (test (format #f "~P" (bignum "2")) "s")
+  (test (format #f "~P" (bignum "2.0")) "s")
+  (test (format #f "~10,' D" (bignum "1")) "         1")
+  (test (format #f "~10,' D" (bignum "3/4")) "       3/4")
+  (test (format #f "~10,'.D" (bignum "3/4")) ".......3/4")
+  (test (format #f "~10D" (bignum "3/4")) "       3/4")
+  (test (length (format #f "~100D" (bignum "34"))) 100)
+  (test (format #f "~50F" (bignum "12345678.7654321")) "                                1.23456787654321E7"))
 
 
 (call-with-output-file tmp-output-file (lambda (p) (format p "this ~A ~C test ~D" "is" #\a 3)))
@@ -16843,34 +16811,28 @@ a2" 3) "132")
 
     (set-current-output-port op1))
 
-  (let ((old-op1 (current-output-port))
-	(op1 (open-output-file tmp-output-file)))
-    (set! (current-output-port) op1)
-    (display 1)
-    (write 2)
-    (write-char #\3)
-    (format-logged #t "~D" 4) ; #t -> output port
-    (write-byte (char->integer #\5))
-    (let ((old-op2 (current-output-port))
-	  (op2 (open-output-file "tmp2.r5rs")))
-      (set! (current-output-port) op2)
-      (display 6)
-      (write 7)
-      (write-char #\8)
-      (format-logged #t "~D" 9)
-      (write-byte (char->integer #\0))
-      (newline)
-      (close-output-port (current-output-port))
-      (set! (current-output-port) old-op2)
-      (let ((old-ip1 (current-input-port))
-	    (ip1 (open-input-file "tmp2.r5rs")))
-	(set! (current-input-port) ip1)
-	(display (read-line))
-	(close-input-port (current-input-port))
-	(set! (current-input-port) old-ip1))
-      (newline)
-      (close-output-port (current-output-port))
-      (set! (current-output-port) old-op1)))
+  (let ((op1 (open-output-file tmp-output-file)))
+    (let-temporarily (((current-output-port) op1))
+      (display 1)
+      (write 2)
+      (write-char #\3)
+      (format-logged #t "~D" 4) ; #t -> output port
+      (write-byte (char->integer #\5))
+      (let ((op2 (open-output-file "tmp2.r5rs")))
+	(let-temporarily (((current-output-port) op2))
+	  (display 6)
+	  (write 7)
+	  (write-char #\8)
+	  (format-logged #t "~D" 9)
+	  (write-byte (char->integer #\0))
+	  (newline)
+	  (close-output-port (current-output-port)))
+	(let ((ip1 (open-input-file "tmp2.r5rs")))
+	  (let-temporarily (((current-input-port) ip1))
+	    (display (read-line))
+	    (close-input-port (current-input-port))))
+	(newline)
+	(close-output-port (current-output-port)))))
 
   (test (call-with-input-file tmp-output-file
 	  (lambda (p)
@@ -17547,9 +17509,7 @@ a2" 3) "132")
 
 (if (and (defined? 'file-exists?)
 	 (file-exists? "/home/bil/test"))
-    (let ((old-path *load-path*))
-      (set! *load-path* (cons "/home/bil/test" *load-path*))
-
+    (let-temporarily ((*load-path* (cons "/home/bil/test" *load-path*)))
       (with-output-to-file "/home/bil/test/load-path-test.scm"
 	(lambda ()
 	  (format-logged #t "(define (load-path-test) *load-path*)~%")))
@@ -17557,9 +17517,7 @@ a2" 3) "132")
       (load "load-path-test.scm")
       (if (or (not (defined? 'load-path-test))
 	      (not (equal? *load-path* (load-path-test))))
-	  (format-logged #t ";*load-path*: ~S, but ~S~%" *load-path* (load-path-test)))
-      (set! *load-path* old-path)))
-
+	  (format-logged #t ";*load-path*: ~S, but ~S~%" *load-path* (load-path-test)))))
 
 ;;; function ports
 (when with-block
@@ -18738,49 +18696,49 @@ c"
       (test (substring (object->string (random-state 9223372036854775807 9223372036854775807)) 0 6) "#<rng ")
       (test (object->string (random-state 9223372036854775807 9223372036854775807) :readable) "#<unprint-readable object>")))
 
-(if full-test
-    (let ()
-      (define (testlet e)
-	(let ((data (cons #f #f)))
-	  (let ((iter (make-iterator e data)))
-	    (do ((val (iterate iter) (iterate iter)))
-		((iterator-at-end? iter))
-	      (let ((sym (car val))
-		    (fnc (cdr val)))
-		(if (procedure? fnc)
-		    (let ((sig (catch #t (lambda () (procedure-signature fnc)) (lambda args #f)))
-			  (doc (catch #t (lambda () (procedure-documentation fnc)) (lambda args #f)))
-			  (src (catch #t (lambda () (procedure-source fnc)) (lambda args #f)))
-			  (ari (catch #t (lambda () (arity fnc)) (lambda args #f))))
-		      (let ((lst (list sym fnc sig doc src ari)))
-			(object->string lst)
-			(object->string lst :readable)))
-		    (begin
-		      (object->string val)
-		      (object->string val :readable))))))))
-      
-      (testlet (rootlet))
-      
-      (require libc.scm)
-      (testlet *libc*)
-      
-      (require libm.scm)
-      (when (defined? '*libm*) (testlet *libm*))
-      
-      (when (provided? 'gtk)
-	(testlet *gtk*))
-      
-      (require libgsl.scm)
-      (when (defined? '*libgsl*) (testlet *libgsl*))
-      
-      (require libgdbm.scm)
-      (when (defined? '*libgdbm*) (testlet *libgdbm*))
-      
-      (require libdl.scm)
-      (when (defined? '*libdl*) (testlet *libdl*))
-      
-      (require libutf8proc.scm)
-      (when (defined? '*libutf8proc*) (testlet *libutf8proc*))))
+(when full-test
+  (let ()
+    (define (testlet e)
+      (let ((data (cons #f #f)))
+	(let ((iter (make-iterator e data)))
+	  (do ((val (iterate iter) (iterate iter)))
+	      ((iterator-at-end? iter))
+	    (let ((sym (car val))
+		  (fnc (cdr val)))
+	      (if (procedure? fnc)
+		  (let ((sig (catch #t (lambda () (procedure-signature fnc)) (lambda args #f)))
+			(doc (catch #t (lambda () (procedure-documentation fnc)) (lambda args #f)))
+			(src (catch #t (lambda () (procedure-source fnc)) (lambda args #f)))
+			(ari (catch #t (lambda () (arity fnc)) (lambda args #f))))
+		    (let ((lst (list sym fnc sig doc src ari)))
+		      (object->string lst)
+		      (object->string lst :readable)))
+		  (begin
+		    (object->string val)
+		    (object->string val :readable))))))))
+    
+    (testlet (rootlet))
+    
+    (require libc.scm)
+    (testlet *libc*)
+    
+    (require libm.scm)
+    (when (defined? '*libm*) (testlet *libm*))
+    
+    (when (provided? 'gtk)
+      (testlet *gtk*))
+    
+    (require libgsl.scm)
+    (when (defined? '*libgsl*) (testlet *libgsl*))
+    
+    (require libgdbm.scm)
+    (when (defined? '*libgdbm*) (testlet *libgdbm*))
+    
+    (require libdl.scm)
+    (when (defined? '*libdl*) (testlet *libdl*))
+    
+    (require libutf8proc.scm)
+    (when (defined? '*libutf8proc*) (testlet *libutf8proc*))))
       
 
 
@@ -21146,20 +21104,19 @@ in s7:
 (test (do () (+)) ())
 (test (do () (+ +) *) +)
 
-(if with-bignums
-    (begin
-      (num-test (do ((i 24444516448431392447461 (+ i 1))
-		     (j 0 (+ j 1)))
-		    ((>= i 24444516448431392447471) j))
-		10)
-      (num-test (do ((i 0 (+ i 24444516448431392447461))
-		     (j 0 (+ j 1)))
-		    ((>= i 244445164484313924474610) j))
-		10)
-      (num-test (do ((i 4096 (* i 2))
-		     (j 0 (+ j 1)))
-		    ((= i 4722366482869645213696) j))
-		60)))
+(when with-bignums
+  (num-test (do ((i 24444516448431392447461 (+ i 1))
+		 (j 0 (+ j 1)))
+		((>= i 24444516448431392447471) j))
+	    10)
+  (num-test (do ((i 0 (+ i 24444516448431392447461))
+		 (j 0 (+ j 1)))
+		((>= i 244445164484313924474610) j))
+	    10)
+  (num-test (do ((i 4096 (* i 2))
+		 (j 0 (+ j 1)))
+		((= i 4722366482869645213696) j))
+	    60))
 
 (test (do ((i 9223372036854775805 (+ i 1))
 	   (j 0 (+ j 1)))
@@ -21261,7 +21218,7 @@ in s7:
 	  (vector-set! vec j n))
 	#(9 8 7 6 5 4 3 2 1 0)))
 
-(test (do ((i 0 (+ i 1))) (#t i) (error "do evaluated its body?")) 0)
+(test (do ((i 0 (+ i 1))) (#t i) (error 'syntax-error "do evaluated its body?")) 0)
 (test (do '() (#t 1)) 'error)
 (test (do . 1) 'error)
 (test (do ((i i i)) (i i)) 'error)
@@ -21869,7 +21826,7 @@ in s7:
  (lambda (arg)
    (test (or arg) arg)
    (test (or #f arg) arg)
-   (test (or arg (error "oops or ")) arg))
+   (test (or arg (error 'test-error "oops or ")) arg))
  (list "hi" -1 #\a 1 'a-symbol #(1 2 3) 3.14 3/4 1.0+1.0i #t (list 1 2 3) #<eof> #<unspecified> '(1 . 2)))
 
 (test (call-with-input-file "s7test.scm"
@@ -21979,9 +21936,9 @@ in s7:
 	      (cdr list))))
   (test (fold and #t '(#t #f #t #t)) #f))
 
-(test (let ((and! and)) (and! #f (error "oops"))) #f)
-(test (let ((and! #f)) (set! and! and) (and! #f (error "oops"))) #f)
-(test (let () (define (try and!) (and! #f (error "oops"))) (try and)) #f)
+(test (let ((and! and)) (and! #f (error 'test-error "oops"))) #f)
+(test (let ((and! #f)) (set! and! and) (and! #f (error 'test-error "oops"))) #f)
+(test (let () (define (try and!) (and! #f (error 'test-error "oops"))) (try and)) #f)
 
 ;;; here are some tests from S. Lewis in the r7rs mailing list
 (let ()
@@ -22485,11 +22442,9 @@ in s7:
   (test (hi 2) 3)
   (test (hi "hi") 3))
 
-(if with-bignums
-    (begin
-      (test (case 8819522415901031498123 ((1) 2) ((8819522415901031498123) 3) (else 4)) 3) 
-      (test (case -9223372036854775809 ((1 9223372036854775807) 2) (else 3)) 3)
-      ))
+(when with-bignums
+  (test (case 8819522415901031498123 ((1) 2) ((8819522415901031498123) 3) (else 4)) 3) 
+  (test (case -9223372036854775809 ((1 9223372036854775807) 2) (else 3)) 3))
 
 ;;; one thing that will hang case I think: circular key list
 
@@ -22972,30 +22927,28 @@ in s7:
 (test (begin 1 . 2) 'error)
 (test (begin ("hi" 1)) #\i)
 
-(if (equal? (begin 1) 1)
-    (begin
-      (test (let () (begin (define x 0)) (set! x (begin (begin 5))) (begin ((begin +) (begin x) (begin (begin 1))))) 6)      
-      
-      (test (let ((x 5))
-	      (begin (begin (begin)
-			    (begin (begin (begin) (define foo (lambda (y) (bar x y)))
-					  (begin)))
-			    (begin))
-		     (begin)
-		     (begin)
-		     (begin (define bar (lambda (a b) (+ (* a b) a))))
-		     (begin))
-	      (begin)
-	      (begin (foo (+ x 3))))
-	    45)
-      
-      (for-each
-       (lambda (arg)
-	 (test (begin arg) arg))
-       (list "hi" -1 #\a 1 'a-symbol #(1 2 3) 3.14 3/4 1.0+1.0i #t (list 1 2 3) '(1 . 2)))
-      
-      (test (if (= 1 1) (begin 2) (begin 3)) 2)
-      ))
+(when (equal? (begin 1) 1)
+  (test (let () (begin (define x 0)) (set! x (begin (begin 5))) (begin ((begin +) (begin x) (begin (begin 1))))) 6)      
+  
+  (test (let ((x 5))
+	  (begin (begin (begin)
+			(begin (begin (begin) (define foo (lambda (y) (bar x y)))
+				      (begin)))
+			(begin))
+		 (begin)
+		 (begin)
+		 (begin (define bar (lambda (a b) (+ (* a b) a))))
+		 (begin))
+	  (begin)
+	  (begin (foo (+ x 3))))
+	45)
+  
+  (for-each
+   (lambda (arg)
+     (test (begin arg) arg))
+   (list "hi" -1 #\a 1 'a-symbol #(1 2 3) 3.14 3/4 1.0+1.0i #t (list 1 2 3) '(1 . 2)))
+  
+  (test (if (= 1 1) (begin 2) (begin 3)) 2))
 
 (test ((lambda (x) (begin (set! x 1) (let ((a x)) (+ a 1)))) 2) 2)
 ;;; apparently these can be considered errors or not (guile says error, stklos and gauche do not)
@@ -24749,28 +24702,27 @@ in s7:
 
 (if (not (= __p__ 432)) (format-logged #t "__p__: ~A~%" __p__))
 
-(if (eq? (curlet) (rootlet)) (begin 
-(let ((__p__ 1))
-  (eval `(define (__p__ a) (+ a ,__p__)) current-rootlet)
-  (if (not (= __p__ 1)) (format-logged #t "    local __p__: ~A~%" __p__)))
-
-(if (not (procedure? __p__)) (format-logged #t "__p__: ~A~%" __p__))
-(if (not (= (__p__ 2) 3)) (format-logged #t "(__p__ 2): ~A~%" (__p__ 2)))
-
-(let ((__p__ 1))
-  (eval `(define __p__ 32))
-  (if (not (= __p__ 32)) (format-logged #t "    local __p__: ~A~%" __p__)))
-
-(if (not (procedure? __p__)) (format-logged #t "__p__: ~A~%" __p__))
-(if (not (= (__p__ 2) 3)) (format-logged #t "(__p__ 2): ~A~%" (__p__ 2)))
-
-(let ((__p__ 1))
-  (eval `(define __p__ 32) (curlet))
-  (if (not (= __p__ 32)) (format-logged #t "    local __p__: ~A~%" __p__)))
-
-(if (not (procedure? __p__)) (format-logged #t "__p__: ~A~%" __p__))
-(if (not (= (__p__ 2) 3)) (format-logged #t "(__p__ 2): ~A~%" (__p__ 2)))
-))
+(when (eq? (curlet) (rootlet))
+  (let ((__p__ 1))
+    (eval `(define (__p__ a) (+ a ,__p__)) current-rootlet)
+    (if (not (= __p__ 1)) (format-logged #t "    local __p__: ~A~%" __p__)))
+  
+  (if (not (procedure? __p__)) (format-logged #t "__p__: ~A~%" __p__))
+  (if (not (= (__p__ 2) 3)) (format-logged #t "(__p__ 2): ~A~%" (__p__ 2)))
+  
+  (let ((__p__ 1))
+    (eval `(define __p__ 32))
+    (if (not (= __p__ 32)) (format-logged #t "    local __p__: ~A~%" __p__)))
+  
+  (if (not (procedure? __p__)) (format-logged #t "__p__: ~A~%" __p__))
+  (if (not (= (__p__ 2) 3)) (format-logged #t "(__p__ 2): ~A~%" (__p__ 2)))
+  
+  (let ((__p__ 1))
+    (eval `(define __p__ 32) (curlet))
+    (if (not (= __p__ 32)) (format-logged #t "    local __p__: ~A~%" __p__)))
+  
+  (if (not (procedure? __p__)) (format-logged #t "__p__: ~A~%" __p__))
+  (if (not (= (__p__ 2) 3)) (format-logged #t "(__p__ 2): ~A~%" (__p__ 2))))
 
 (let ()
   (define-macro (m1) (values))
@@ -25987,7 +25939,7 @@ in s7:
   (define fail-stack ())
   (define (fail)
     (if (not (pair? fail-stack))
-	(error "back-tracking stack exhausted!")
+	(error 'test-error "back-tracking stack exhausted!")
 	(begin
 	  (let ((back-track-point (car fail-stack)))
 	    (set! fail-stack (cdr fail-stack))
@@ -26017,7 +25969,7 @@ in s7:
   (define fail-stack ())
   (define (fail)
     (if (not (pair? fail-stack))
-	(error "back-tracking stack exhausted!")
+	(error 'test-error "back-tracking stack exhausted!")
 	(let ((back-track-point (car fail-stack)))
 	  (set! fail-stack (cdr fail-stack))
 	  (back-track-point back-track-point))))
@@ -27000,7 +26952,7 @@ who says the continuation has to restart the map from the top?
 (test (call-with-exit (lambda (return) (with-input-from-string "hi" return))) ()) ; because thunk? -- does it close the port?
 (test (call-with-exit (lambda (return) (call-with-input-string "hi" return))) 'error)
 (test (call-with-exit (lambda (return) (set! (procedure-setter return) abs))) 'error)
-(test (call-with-exit (lambda (return) (dynamic-wind return (lambda () 1) (lambda () (error "oops"))))) ())
+(test (call-with-exit (lambda (return) (dynamic-wind return (lambda () 1) (lambda () (error 'test-error "oops"))))) ())
 (test (call-with-exit (lambda (return) (map return '(1 2 3)))) 1)
 (test (call-with-exit (lambda (return) (dynamic-wind (lambda () 2) (lambda () 1) return))) ())                ; ?? is this a bug?
 (test (call-with-exit (lambda (return) (dynamic-wind (lambda () 2) (lambda () 1) (lambda () (return 3))))) 3) ; I guess not 
@@ -28358,10 +28310,10 @@ who says the continuation has to restart the map from the top?
 
 ;; from Guile mailing list -- just a bit strange, even confuses emacs!
 (if (not with-windows)
-    (test (let ((v '(\())))
-	  (and (pair? v)
-	       (symbol? (car v)) ; \ -> ((symbol "\\") ())
-	       (null? (cadr v)))) #t))
+    (test (let ((v '(\()))) ; i.e. '( (symbol "\\") ())
+	    (and (pair? v)
+		 (symbol? (car v)) ; \ -> (symbol "\\")
+		 (null? (cadr v)))) #t))
 
 (test #(,1) #(1))
 (test #(,,,1) #(1))
@@ -28804,18 +28756,18 @@ who says the continuation has to restart the map from the top?
   (test (format #f "~A" #(1 2 3 4)) "#(1 2 ...)")
   (set! (*s7* 'print-length) old-vlen))
 
-(if with-bignums
-    (let ((old-vlen (*s7* 'print-length)))
-      (set! (*s7* 'print-length) (bignum "0"))
-      (test (format #f "~A" #()) "#()")
-      (test (format #f "~A" #(1 2 3 4)) "#(1 ...)")
-      (set! (*s7* 'print-length) (bignum "1"))
-      (test (format #f "~A" #()) "#()")
-      (test (format #f "~A" #(1)) "#(1)")
-      (test (format #f "~A" #(1 2 3 4)) "#(1 ...)")
-      (set! (*s7* 'print-length) (bignum "2"))
-      (test (format #f "~A" #(1 2 3 4)) "#(1 ...)")
-      (set! (*s7* 'print-length) old-vlen)))
+(when with-bignums
+  (let ((old-vlen (*s7* 'print-length)))
+    (set! (*s7* 'print-length) (bignum "0"))
+    (test (format #f "~A" #()) "#()")
+    (test (format #f "~A" #(1 2 3 4)) "#(1 ...)")
+    (set! (*s7* 'print-length) (bignum "1"))
+    (test (format #f "~A" #()) "#()")
+    (test (format #f "~A" #(1)) "#(1)")
+    (test (format #f "~A" #(1 2 3 4)) "#(1 ...)")
+    (set! (*s7* 'print-length) (bignum "2"))
+    (test (format #f "~A" #(1 2 3 4)) "#(1 ...)")
+    (set! (*s7* 'print-length) old-vlen)))
 
 
 
@@ -30757,7 +30709,7 @@ or better (define-macro (prog vars . body) `(call-with-exit (lambda (return) (ta
          (else
           `(and ,exp ,(expand (cdr vars) body))))))
      (else
-      (error "not a proper list" vars))))
+      (error 'wrong-type-arg "not a proper list" vars))))
 
   (expand vars body))
 
@@ -31800,7 +31752,7 @@ or better (define-macro (prog vars . body) `(call-with-exit (lambda (return) (ta
 (test (procedure-signature random) '(number? number? random-state?))
 (test (procedure-signature hash-table*) (let ((L (list 'hash-table? #t))) (set-cdr! (cdr L) (cdr L)) L))
 (test (procedure-signature string-ci<=?) (let ((L (list 'boolean? 'string?))) (set-cdr! (cdr L) (cdr L)) L))
-(test (procedure-signature arity) (let ((L (list #t))) (set-cdr! L L) L))
+(test (procedure-signature arity) '((pair? boolean?) #t))
 (test (procedure-signature number?) '(boolean? #t))
 (test (procedure-signature infinite?) '(boolean? number?))
 (test (procedure-signature logbit?) (let ((L (list 'boolean? 'integer?))) (set-cdr! (cdr L) (cdr L)) L))
@@ -32963,7 +32915,7 @@ func
     
     (let ((accessor (X-marks-the-spot () path)))
       (if (not accessor)
-	  (error "can't find the spot! ~A" path)
+	  (error 'test-error "can't find the spot! ~A" path)
 	  (let ((len (length accessor)))
 	    (if (< len 5)                   ; it's a built-in function
 		(let ((name (make-string (+ len 2))))
@@ -33189,7 +33141,7 @@ func
 	   (not (pair? l2))))
      
      (if (not (structures-equal? ',lst ex))
-	 (error "~A and ~A do not match" ',lst ex))
+	 (error 'test-error "~A and ~A do not match" ',lst ex))
      
      (let ((names (flatten ',lst))
 	   (vals (flatten ex)))
@@ -33815,7 +33767,7 @@ func
 		(if (eval (traverse e))
 		    expr
 		    (values)))
-	      (error "strange #+ chooser: ~S~%" e)))))
+	      (error 'test-error "strange #+ chooser: ~S~%" e)))))
   
   (set! *#readers* 
 	(cons (cons #\+ sharp-plus)
@@ -34548,11 +34500,10 @@ func
 (test (let ((v (vector 1 2))) (constant? 'v)) #f)
 ;; that is something that can be set! is not a constant?
 
-(if with-bignums
-    (begin
-      (test (constant? 1624540914719833702142058941) #t)
-      (test (constant? 1624540914719833702142058941.4) #t)
-      (test (constant? 7151305879464824441563197685/828567267217721441067369971) #t)))
+(when with-bignums
+  (test (constant? 1624540914719833702142058941) #t)
+  (test (constant? 1624540914719833702142058941.4) #t)
+  (test (constant? 7151305879464824441563197685/828567267217721441067369971) #t))
 
 (test (constant? lambda) #t)   ; like abs?
 (test (constant? (lambda () 1)) #t)
@@ -36640,6 +36591,10 @@ func
 
 (test (string? (stacktrace)) #t)
 ;(test (stacktrace 123) 'error)
+(test (begin (stacktrace 0 -1 1 20100) #f) #f) ; segfault?
+(do ((i 0 (+ i 1)))
+    ((= i 10))
+  (stacktrace (- (random 100) 50) (- (random 100) 50) (- (random 100) 50) (- (random 100) 50)))
 
 (let ((str ""))
 
@@ -37520,12 +37475,12 @@ hi6: (string-app...
   (test (ht2 'a) 1)
   (test (hash-table-entries ht2) 2))
 
-(if with-bignums
-    (begin
-      (test (let ((x (bignum "1"))) (eq? x (copy x))) #f)
-      (test (let ((x (bignum "1/2"))) (eq? x (copy x))) #f)
-      (test (let ((x (bignum "1.0"))) (eq? x (copy x))) #f)
-      (test (let ((x (bignum "1+i"))) (eq? x (copy x))) #f)))
+(when with-bignums
+  (test (let ((x (bignum "1"))) (eq? x (copy x))) #f)
+  (test (let ((x (bignum "1/2"))) (eq? x (copy x))) #f)
+  (test (let ((x (bignum "1.0"))) (eq? x (copy x))) #f)
+  (test (let ((x (bignum "1+i"))) (eq? x (copy x))) #f))
+
 (test (let ((x 1)) (eq? x (copy x))) #f) 
 (test (= 1 (copy 1)) #t)
 (test (= 1.5 (copy 1.5)) #t)
@@ -38443,7 +38398,7 @@ hi6: (string-app...
 		      (display (car tail))
 		      (display (if (null? (cdr tail)) "'" " "))))
 		(newline)
-		(error "illegal loop syntax"))))
+		(error 'syntax-error "illegal loop syntax"))))
 	  
 	  (define (parse-for forms clauses ops)
 	    ;; forms is (FOR ...)
@@ -39482,7 +39437,8 @@ hi6: (string-app...
 	    (if required-args
 		`(define* (,name . func-args)
 		   (if (< (length func-args) ,required-args)
-		       (error "~A requires ~D argument~A: ~A" 
+		       (error 'syntax-error 
+			      "~A requires ~D argument~A: ~A" 
 			      ',name ,required-args (if (> ,required-args 1) "s" "") func-args)
 		       (apply (lambda* ,(no-opt args ()) , at forms) func-args)))
 		`(define* ,declarations , at forms)))))
@@ -39508,9 +39464,9 @@ hi6: (string-app...
 		    (var (cadr info))
 		    (key (string->keyword (symbol->string var))))
 	       `((eq? (car ,args) ,key )
-		 (if ,got (error "duplicate keyword: ~S" , key))
+		 (if ,got (error 'syntax-error "duplicate keyword: ~S" , key))
 		 (set! ,var (if (null? (cdr ,args))
-				(error "missing value for keyword: ~S" 
+				(error 'syntax-error "missing value for keyword: ~S" 
 				       , user)
 				(cadr ,args)))
 		 (set! ,got #t) ; mark that we have a value for this param
@@ -39576,19 +39532,19 @@ hi6: (string-app...
 			, (if otherkeys?
 			      `((keyword? (car ,args))
 				(if (not (pair? (cdr ,args)))
-				    (error "missing value for keyword ~S" (car ,args)))
+				    (error 'syntax-error "missing value for keyword ~S" (car ,args)))
 				(set! &allow-other-keys (append &allow-other-keys
 								(list (car ,args)
 								      (cadr ,args))))
 				(set! ,mode #t) ; parsing keys now...
 				(set! ,args (cddr ,args)) )
 			      `((keyword? (car ,args)) ;(and ,mode (keyword? (car ,args)))
-				(error "invalid keyword: ~S" (car ,args)) )
+				(error 'syntax-error "invalid keyword: ~S" (car ,args)) )
 			      )
 			  ;; positional clauses illegal if keywords have happened
-			  (,mode (error "positional after keywords: ~S" (car ,args)))
+			  (,mode (error 'syntax-error "positional after keywords: ~S" (car ,args)))
 			  ;; too many value specified
-			  ((not (< ,argn ,SIZE)) (error "too many args: ~S" , args))
+			  ((not (< ,argn ,SIZE)) (error 'wrong-number-of-args "too many args: ~S" , args))
 			  ;; add the valid positional clauses
 			  ,@ posc
 			     ))
@@ -39972,7 +39928,7 @@ hi6: (string-app...
 
 	(define-macro (setf . pairs)
 	  (if (not (even? (length pairs)))
-	      (error "setf has odd number of args"))
+	      (error 'syntax-error "setf has odd number of args"))
 	  `(let () ,@(let ((var #f)) 
 		       (map (lambda (p) 
 			      (if var
@@ -39997,7 +39953,7 @@ hi6: (string-app...
 
 	(define-macro (setq . pairs)
 	  (if (not (even? (length pairs)))
-	      (error "setq has odd number of args"))
+	      (error 'syntax-error "setq has odd number of args"))
 	  `(let () ,@(let ((var #f)) 
 		       (map (lambda (p) 
 			      (if var
@@ -40139,7 +40095,7 @@ hi6: (string-app...
 	(define (ninth l) (if (> (length l) 8) (list-ref l 8) ()))
 	(define (tenth l) (if (> (length l) 9) (list-ref l 9) ()))
 	(define (nth n l) (if (< n (length l)) (list-ref l n) ()))
-	(define (endp val) (if (null? val) #t (if (pair? val) #f (error "bad arg to endp"))))
+	(define (endp val) (if (null? val) #t (if (pair? val) #f (error 'wrong-type-arg "bad arg to endp"))))
 	(define rest cdr)
 	(define list-length length)
 	(define* (cl-make-list size (initial-element ())) (make-list size initial-element))
@@ -40243,7 +40199,7 @@ hi6: (string-app...
 	
 	(define* (pairlis keys data alist)
 	  (if (not (= (length keys) (length data)))
-	      (error "pairlis keys and data lists should have the same length"))
+	      (error 'syntax-error "pairlis keys and data lists should have the same length"))
 	  (let ((lst (or alist ())))
 	    (if (null? keys)
 		lst
@@ -40531,7 +40487,7 @@ hi6: (string-app...
 		   (len (length sequence))
 		   (nd (or (and (number? end) end) len))) ; up to but not including end
 	      (if (< nd start)
-		  (error "count-if :start ~A is greater than ~A ~A" start (if end ":end" "length") nd))
+		  (error 'out-of-range "count-if :start ~A is greater than ~A ~A" start (if end ":end" "length") nd))
 	      (if (not from-end)
 		  (do ((i start (+ i 1)))
 		      ((= i nd))
@@ -40737,7 +40693,7 @@ hi6: (string-app...
 	  (let* ((len (length sequence))
 		 (nd (or (and (number? end) end) len))) ; up to but not including end
 	    (if (< nd start)
-		(error "~A :start ~A is greater than ~A ~A" __func__ start (if end ":end" "length") nd))
+		(error 'out-of-range "~A :start ~A is greater than ~A ~A" __func__ start (if end ":end" "length") nd))
 	    (call-with-exit
 	     (lambda (return)
 	       (if (not from-end)
@@ -40862,7 +40818,7 @@ hi6: (string-app...
 	    (let* ((len (length sequence))
 		   (nd (or (and (number? end) end) len))) ; up to but not including end
 	      (if (< nd start)
-		  (error "~A :start ~A is greater than ~A ~A" __func__ start (if end ":end" "length") nd))
+		  (error 'out-of-range "~A :start ~A is greater than ~A ~A" __func__ start (if end ":end" "length") nd))
 	      (call-with-exit
 	       (lambda (return)
 		 (if (not from-end)
@@ -41166,8 +41122,9 @@ hi6: (string-app...
 	  (if (string? x) x
 	      (if (char? x)
 		  (string x)
-		  (if (symbol? x) (symbol->string x)
-		      (error "string ~A?" x)))))
+		  (if (symbol? x)
+		      (symbol->string x)
+		      (error 'wrong-type-arg "string ~A?" x)))))
 	
 	(define* (string= str-1 str-2 (start1 0) end1 (start2 0) end2)
 	  (let* ((str1 (cl-string str-1))
@@ -41619,7 +41576,7 @@ hi6: (string-app...
 		(let* ((len (length sequence))
 		       (nd (or (and (number? end) end) len))) ; up to but not including end
 		  (if (< nd start)
-		      (error "~A :start ~A is greater than ~A ~A" __func__ start (if end ":end" "length") nd))
+		      (error 'out-of-range "~A :start ~A is greater than ~A ~A" __func__ start (if end ":end" "length") nd))
 		  (let ((cur-count 0))
 		    (if (not (number? count))
 			(set! count len))
@@ -42275,7 +42232,7 @@ hi6: (string-app...
 		   (nd (or (and (number? end) end) slen))
 		   (len (min slen (- nd start))))
 	      (if (< nd start)
-		  (error "~A :start ~A is greater than ~A ~A" __func__ start (if end ":end" "length") nd))
+		  (error 'out-of-range "~A :start ~A is greater than ~A ~A" __func__ start (if end ":end" "length") nd))
 	      (if (not (positive? len))
 		  (or initial-value
 		      (function))
@@ -46698,13 +46655,12 @@ hi6: (string-app...
      (if (not nb) (format-logged #t ";(number? ~A) -> #f?~%" n))))
  (list '1e311 '1e-311 '0e311 '2.1e40000))
 
-(if with-bignums
-    (begin
-      (test (number? 1234567891234567890/1234567) #t)
-      (test (number? 9223372036854775808) #t)
-      (test (number? 9223372036854775808.1) #t)
-      (test (number? 9223372036854775808.1+1.5i) #t)
-      (test (number? 9223372036854775808/3) #t)))
+(when with-bignums
+  (test (number? 1234567891234567890/1234567) #t)
+  (test (number? 9223372036854775808) #t)
+  (test (number? 9223372036854775808.1) #t)
+  (test (number? 9223372036854775808.1+1.5i) #t)
+  (test (number? 9223372036854775808/3) #t))
 
 (test (number?) 'error)
 (test (number? 1 2) 'error)
@@ -46752,15 +46708,13 @@ hi6: (string-app...
        (format-logged #t ";(complex? ~A) -> #f?~%" arg)))
  (list 1 1.0 1.0+0.5i 1/2))
 
-(if with-bignums
-    (begin
-      (test (complex? 1234567891234567890/1234567) #t)
-      (test (complex? 9223372036854775808) #t)
-      (test (complex? 9223372036854775808.1) #t)
-      (test (complex? 9223372036854775808.1+1.5i) #t)
-      (test (complex? 0+92233720368547758081.0i) #t)
-      (test (complex? 9223372036854775808/3) #t)
-      ))
+(when with-bignums
+  (test (complex? 1234567891234567890/1234567) #t)
+  (test (complex? 9223372036854775808) #t)
+  (test (complex? 9223372036854775808.1) #t)
+  (test (complex? 9223372036854775808.1+1.5i) #t)
+  (test (complex? 0+92233720368547758081.0i) #t)
+  (test (complex? 9223372036854775808/3) #t))
 
 (test (complex?) 'error)
 (test (complex? 1 2) 'error)
@@ -46893,14 +46847,12 @@ hi6: (string-app...
 (test (rational? 1+0i) #f) ; ?? 
 (test (rational? 1+0.0i) #f) ; ?? see integer? 
 
-(if with-bignums
-    (begin
-      (test (rational? 1234567891234567890/1234567) #t)
-      (test (rational? 9223372036854775808) #t)
-      (test (rational? 9223372036854775808.1) #f)
-      (test (rational? 9223372036854775808.1+1.5i) #f)
-      (test (rational? 9223372036854775808/3) #t)
-      ))
+(when with-bignums
+  (test (rational? 1234567891234567890/1234567) #t)
+  (test (rational? 9223372036854775808) #t)
+  (test (rational? 9223372036854775808.1) #f)
+  (test (rational? 9223372036854775808.1+1.5i) #f)
+  (test (rational? 9223372036854775808/3) #t))
 
 (test (rational?) 'error)
 (test (rational? 1 2) 'error)
@@ -46945,16 +46897,14 @@ hi6: (string-app...
 (test (integer? 9223372036854775806/9223372036854775807) #f)
 (test (integer? 1+0.0i) #f)
 
-(if with-bignums
-    (begin
-      (test (integer? 1234567891234567890/1234567) #f)
-      (test (integer? 9223372036854775808) #t)
-      (test (integer? 9223372036854775808.1) #f)
-      (test (integer? 9223372036854775808.1+1.5i) #f)
-      (test (integer? 9223372036854775808/3) #f)
-      (test (integer? 9223372036854775808/9223372036854775808) #t)
-      (test (integer? 21345678912345678912345678913456789123456789123456789) #t)
-      ))
+(when with-bignums
+  (test (integer? 1234567891234567890/1234567) #f)
+  (test (integer? 9223372036854775808) #t)
+  (test (integer? 9223372036854775808.1) #f)
+  (test (integer? 9223372036854775808.1+1.5i) #f)
+  (test (integer? 9223372036854775808/3) #f)
+  (test (integer? 9223372036854775808/9223372036854775808) #t)
+  (test (integer? 21345678912345678912345678913456789123456789123456789) #t))
 
 (test (integer?) 'error)
 (test (integer? 1 2) 'error)
@@ -47005,14 +46955,12 @@ hi6: (string-app...
 ;; (test (infinite? (sin 1+1e10i)) #t)
 ;; this hangs in earlier versions
 
-(if with-bignums
-    (begin
-      (test (infinite? (log (bignum "0.0"))) #t)
-      (test (infinite? 1e310) #f)
-      (test (infinite? 1e400) #f)
-      (test (infinite? 1.695681258519314941339000000000000000003E707) #f)
-      (test (infinite? 7151305879464824441563197685/828567267217721441067369971) #f)
-      ))
+(when with-bignums
+  (test (infinite? (log (bignum "0.0"))) #t)
+  (test (infinite? 1e310) #f)
+  (test (infinite? 1e400) #f)
+  (test (infinite? 1.695681258519314941339000000000000000003E707) #f)
+  (test (infinite? 7151305879464824441563197685/828567267217721441067369971) #f))
 
 (test (infinite?) 'error)
 (test (infinite? 1 2) 'error)
@@ -47038,12 +46986,10 @@ hi6: (string-app...
 (test (nan? (real-part 0+nani)) #f)
 (test (nan? (imag-part 0+nani)) #t)
 
-(if with-bignums
-    (begin
-      (test (nan? (bignum "1/0")) #t)
-      (test (nan? 7151305879464824441563197685/828567267217721441067369971) #f)
-      (test (nan? 1624540914719833702142058941.4) #f)
-      ))
+(when with-bignums
+  (test (nan? (bignum "1/0")) #t)
+  (test (nan? 7151305879464824441563197685/828567267217721441067369971) #f)
+  (test (nan? 1624540914719833702142058941.4) #f))
 
 (test (nan?) 'error)
 (test (nan? 1 2) 'error)
@@ -47103,28 +47049,26 @@ hi6: (string-app...
 
 ;;; these all relate to inf/nan
 
-(if (not with-bignums)
-    (begin
-      (test (* 1e12000 1e12000) inf.0)
-      (test (<= 0 inf.0 nan.0) #f)
-      (test (<= 1 nan.0) #f)
-      (test (<= nan.0 1) #f)
-      (test (<= nan.0 inf.0) #f)
-      (test (<= nan.0 nan.0) #f)
-      (test (>= 1 nan.0) #f)
-      (test (>= nan.0 1) #f)
-      (test (>= nan.0 inf.0) #f)
-      (test (>= nan.0 nan.0) #f)
-      (test (floor inf.0) 'error)
-      (test (inexact->exact (complex 1 inf.0)) 'error)
-      (test (nan? (expt 0 nan.0)) #t)
-      (test (nan? (expt 1 nan.0)) #t)
-      (test (nan? (expt nan.0 inf.0)) #t)
-      (test (nan? (expt nan.0 nan.0)) #t)
-      (test (rationalize 1e19) 'error)
-      (test (round inf.0) 'error)
-      (test (truncate inf.0) 'error)
-      ))
+(unless with-bignums
+  (test (* 1e12000 1e12000) inf.0)
+  (test (<= 0 inf.0 nan.0) #f)
+  (test (<= 1 nan.0) #f)
+  (test (<= nan.0 1) #f)
+  (test (<= nan.0 inf.0) #f)
+  (test (<= nan.0 nan.0) #f)
+  (test (>= 1 nan.0) #f)
+  (test (>= nan.0 1) #f)
+  (test (>= nan.0 inf.0) #f)
+  (test (>= nan.0 nan.0) #f)
+  (test (floor inf.0) 'error)
+  (test (inexact->exact (complex 1 inf.0)) 'error)
+  (test (nan? (expt 0 nan.0)) #t)
+  (test (nan? (expt 1 nan.0)) #t)
+  (test (nan? (expt nan.0 inf.0)) #t)
+  (test (nan? (expt nan.0 nan.0)) #t)
+  (test (rationalize 1e19) 'error)
+  (test (round inf.0) 'error)
+  (test (truncate inf.0) 'error))
 
 (num-test (/ -1 -inf.0 -9223372036854775808) 0.0)
 (num-test (angle -inf.0) pi)
@@ -47438,24 +47382,23 @@ hi6: (string-app...
 (let ((d1 1e-312)
       (d2 1e-316)
       (d3 1e-320))
-  (if (not (zero? d3))
-      (begin
-	(when (not with-bignums) 
-	  (test (= d1 d2 d3) #f)
-	  (test (not (= d2 (* 2 d1))) #t))
-	(test (< d1 d2 d3) #f)
-	(test (> d1 d2 d3) #t)
-	(test (rationalize d1) 0)
-	(test (rationalize d3) 0)
-	(test (rationalize (- d1)) 0)
-	(num-test (string->number (number->string d1)) d1)
-	
-	(test (< (sin d3) (sin d2) (sin d1)) #t)
-	(test (< (log d3) (log d2) (log d1)) #t)
-	(test (< (abs d3) (abs d2) (abs d1)) #t)
-	(test (< (sqrt d3) (sqrt d2) (sqrt d1)) #t)
-	(test (<= (exp d3) (exp d2) (exp d3)) #t) ; all might be 1.0
-	)))
+  (when (not (zero? d3))
+    (when (not with-bignums) 
+      (test (= d1 d2 d3) #f)
+      (test (not (= d2 (* 2 d1))) #t))
+    (test (< d1 d2 d3) #f)
+    (test (> d1 d2 d3) #t)
+    (test (rationalize d1) 0)
+    (test (rationalize d3) 0)
+    (test (rationalize (- d1)) 0)
+    (num-test (string->number (number->string d1)) d1)
+    
+    (test (< (sin d3) (sin d2) (sin d1)) #t)
+    (test (< (log d3) (log d2) (log d1)) #t)
+    (test (< (abs d3) (abs d2) (abs d1)) #t)
+    (test (< (sqrt d3) (sqrt d2) (sqrt d1)) #t)
+    (test (<= (exp d3) (exp d2) (exp d3)) #t) ; all might be 1.0
+    ))
 
 
 
@@ -47513,17 +47456,15 @@ hi6: (string-app...
 (test (zero? 1000000000000000000000000000000000) #f)
 (test (zero? 000000000000000000000000000000000) #t)
 
-(if with-bignums 
-    (begin
-      (test (zero? (- (expt 2.3 54) (floor (expt 2.3 54)))) #f)
-      (test (zero? 1e-600) #f)
-      (test (zero? 9.92209574402351949043519108941671096176E-1726) #f)
-      (test (zero? 12345678901234567890) #f)
-      (test (zero? 9223372036854775808) #f)
-      (test (zero? 9223372036854775808.1) #f)
-      (test (zero? 9223372036854775808.1+1.5i) #f)
-      (test (zero? 9223372036854775808/3) #f)
-      ))
+(when with-bignums 
+  (test (zero? (- (expt 2.3 54) (floor (expt 2.3 54)))) #f)
+  (test (zero? 1e-600) #f)
+  (test (zero? 9.92209574402351949043519108941671096176E-1726) #f)
+  (test (zero? 12345678901234567890) #f)
+  (test (zero? 9223372036854775808) #f)
+  (test (zero? 9223372036854775808.1) #f)
+  (test (zero? 9223372036854775808.1+1.5i) #f)
+  (test (zero? 9223372036854775808/3) #f))
 
 (test (zero?) 'error)
 (test (zero? 1 2) 'error)
@@ -47575,19 +47516,17 @@ hi6: (string-app...
        (format-logged #t ";(positive? ~A) -> #t?~%" n)))
  (list -1 -123 -123456123 -3/2 -0.00001 -1.4 -123124124.1))
 
-(if with-bignums
-    (begin
-      (test (positive? 1000000000000000000000000000000000) #t)
-      (test (positive? -1000000000000000000000000000000000) #f)
-      (test (positive? 9.92209574402351949043519108941671096176E-1726) #t)
-      (test (positive? 12345678901234567890) #t)
-      (test (positive? -12345678901234567890) #f)
-      (test (positive? 9223372036854775808) #t)
-      (test (positive? 9223372036854775808.1) #t)
-      (test (positive? 9223372036854775808/3) #t)
-      (test (positive? (/ most-positive-fixnum most-negative-fixnum)) #f)
-      (test (positive? 0+92233720368547758081.0i) 'error)
-      ))
+(when with-bignums
+  (test (positive? 1000000000000000000000000000000000) #t)
+  (test (positive? -1000000000000000000000000000000000) #f)
+  (test (positive? 9.92209574402351949043519108941671096176E-1726) #t)
+  (test (positive? 12345678901234567890) #t)
+  (test (positive? -12345678901234567890) #f)
+  (test (positive? 9223372036854775808) #t)
+  (test (positive? 9223372036854775808.1) #t)
+  (test (positive? 9223372036854775808/3) #t)
+  (test (positive? (/ most-positive-fixnum most-negative-fixnum)) #f)
+  (test (positive? 0+92233720368547758081.0i) 'error))
 
 (test (positive? 1.23+1.0i) 'error)
 (test (positive? 1.23 1.23) 'error)
@@ -47653,18 +47592,16 @@ hi6: (string-app...
       (val2 (catch #t (lambda () (negative? -0.0)) (lambda args 'error))))
   (test (equal? val1 val2) #t))
 
-(if with-bignums
-    (begin
-      (test (negative? 1000000000000000000000000000000000) #f)
-      (test (negative? -1000000000000000000000000000000000) #t)
-      (test (negative? -9.92209574402351949043519108941671096176E-1726) #t)
-      (test (negative? 12345678901234567890) #f)
-      (test (negative? -12345678901234567890) #t)
-      (test (negative? 9223372036854775808) #f)
-      (test (negative? 9223372036854775808.1) #f)
-      (test (negative? 9223372036854775808/3) #f)
-      (test (negative? 0+92233720368547758081.0i) 'error)
-      ))
+(when with-bignums
+  (test (negative? 1000000000000000000000000000000000) #f)
+  (test (negative? -1000000000000000000000000000000000) #t)
+  (test (negative? -9.92209574402351949043519108941671096176E-1726) #t)
+  (test (negative? 12345678901234567890) #f)
+  (test (negative? -12345678901234567890) #t)
+  (test (negative? 9223372036854775808) #f)
+  (test (negative? 9223372036854775808.1) #f)
+  (test (negative? 9223372036854775808/3) #f)
+  (test (negative? 0+92233720368547758081.0i) 'error))
 
 (test (negative? -1-i) 'error)
 (test (negative? 1.23+1.0i) 'error)
@@ -47714,21 +47651,19 @@ hi6: (string-app...
        (format-logged #t ";(odd? ~A) -> #f?~%" n)))
  (list 1 -1 31 50001 543321))
 
-(if with-bignums
-    (begin
-      (test (odd? 12345678901234567891) #t)
-      (test (odd? 12345678901234567890) #f)
-      (test (odd? -1231234567891234567891) #t)
-      (test (odd? -1231234567891234567891) #t)
-      (test (odd? -1239223372036854775808) #f)
-      (test (odd? -9223372036854775808) #f)
-      (test (odd? 1231234567891234567891) #t)
-      (test (odd? 1234567891234567891) #t)
-      (test (odd? 1239223372036854775808) #f)
-      (test (odd? 9223372036854775808) #f)
-      (test (odd? 9223372036854775808/9223372036854775807) 'error)
-      (test (odd? 0+92233720368547758081.0i) 'error)
-      ))
+(when with-bignums
+  (test (odd? 12345678901234567891) #t)
+  (test (odd? 12345678901234567890) #f)
+  (test (odd? -1231234567891234567891) #t)
+  (test (odd? -1231234567891234567891) #t)
+  (test (odd? -1239223372036854775808) #f)
+  (test (odd? -9223372036854775808) #f)
+  (test (odd? 1231234567891234567891) #t)
+  (test (odd? 1234567891234567891) #t)
+  (test (odd? 1239223372036854775808) #f)
+  (test (odd? 9223372036854775808) #f)
+  (test (odd? 9223372036854775808/9223372036854775807) 'error)
+  (test (odd? 0+92233720368547758081.0i) 'error))
 
 (test (odd?) 'error)
 (test (odd? 1.23) 'error)
@@ -47798,21 +47733,19 @@ hi6: (string-app...
 	(if (not ov2)
 	    (begin (set! happy #f) (display "not (odd? ") (display val2) (display ")?") (newline)))))))
 
-(if with-bignums
-    (begin
-      (test (even? 12345678901234567890) #t)
-      (test (even? 12345678901234567891) #f)
-      (test (even? -1231234567891234567891) #f)
-      (test (even? -1234567891234567891) #f)
-      (test (even? -1239223372036854775808) #t)
-      (test (even? -9223372036854775808) #t)
-      (test (even? 1231234567891234567891) #f)
-      (test (even? 1234567891234567891) #f)
-      (test (even? 1239223372036854775808) #t)
-      (test (even? 9223372036854775808) #t)
-      (test (even? 9223372036854775808/9223372036854775807) 'error)
-      (test (even? 0+92233720368547758081.0i) 'error)
-      ))
+(when with-bignums
+  (test (even? 12345678901234567890) #t)
+  (test (even? 12345678901234567891) #f)
+  (test (even? -1231234567891234567891) #f)
+  (test (even? -1234567891234567891) #f)
+  (test (even? -1239223372036854775808) #t)
+  (test (even? -9223372036854775808) #t)
+  (test (even? 1231234567891234567891) #f)
+  (test (even? 1234567891234567891) #f)
+  (test (even? 1239223372036854775808) #t)
+  (test (even? 9223372036854775808) #t)
+  (test (even? 9223372036854775808/9223372036854775807) 'error)
+  (test (even? 0+92233720368547758081.0i) 'error))
 
 (test (even?) 'error)
 (test (even? 1.23) 'error)
@@ -47862,14 +47795,12 @@ hi6: (string-app...
 (test (exact? (imag-part 1+0.0i)) #f)
 (test (exact? (imag-part 1+1i)) #f)
 
-(if with-bignums
-    (begin
-      (test (exact? 12345678901234567890) #t)
-      (test (exact? 9223372036854775808.1) #f)
-      (test (exact? 9223372036854775808) #t)
-      (test (exact? 9223372036854775808/3) #t)
-      (test (exact? 9223372036854775808.1+1.0i) #f)
-      ))
+(when with-bignums
+  (test (exact? 12345678901234567890) #t)
+  (test (exact? 9223372036854775808.1) #f)
+  (test (exact? 9223372036854775808) #t)
+  (test (exact? 9223372036854775808/3) #t)
+  (test (exact? 9223372036854775808.1+1.0i) #f))
 
 (test (exact?) 'error)
 (test (exact? "hi") 'error)
@@ -47902,14 +47833,12 @@ hi6: (string-app...
 (test (inexact? -inf.0) #t)
 (test (inexact? nan.0) #t)
 
-(if with-bignums
-    (begin
-      (test (inexact? 12345678901234567890) #f)
-      (test (inexact? 9223372036854775808.1) #t)
-      (test (inexact? 9223372036854775808) #f)
-      (test (inexact? 9223372036854775808/3) #f)
-      (test (inexact? 9223372036854775808.1+1.0i) #t)
-      ))
+(when with-bignums
+  (test (inexact? 12345678901234567890) #f)
+  (test (inexact? 9223372036854775808.1) #t)
+  (test (inexact? 9223372036854775808) #f)
+  (test (inexact? 9223372036854775808/3) #f)
+  (test (inexact? 9223372036854775808.1+1.0i) #t))
 
 (test (inexact? "hi") 'error)
 (test (inexact? 1.0+23.0i 1.0+23.0i) 'error)
@@ -47966,15 +47895,13 @@ hi6: (string-app...
 (num-test (exact->inexact 9007199254740991) 9.007199254740991E15)
 (test (= (exact->inexact 9007199254740992) (exact->inexact 9007199254740991)) #f)
 
-(if with-bignums 
-    (begin
-      (num-test (truncate (exact->inexact most-positive-fixnum)) 9223372036854775807)
-      (test (= (exact->inexact 9007199254740993) (exact->inexact 9007199254740992)) #f)
-      (num-test (exact->inexact 73786976294838206464) (expt 2.0 66))
-      (num-test (exact->inexact (bignum "0+1.5i")) 0+1.5i)
-      (test (< (abs (- (expt 2 66.5) (exact->inexact 19459393535087060477929284/186481))) 1e-9) #t)
-      (test (< (abs (- (exact->inexact -186198177976134811212136169603791619/103863) (- (expt 2 100.5)))) 1e-9) #t)
-      ))
+(when with-bignums 
+  (num-test (truncate (exact->inexact most-positive-fixnum)) 9223372036854775807)
+  (test (= (exact->inexact 9007199254740993) (exact->inexact 9007199254740992)) #f)
+  (num-test (exact->inexact 73786976294838206464) (expt 2.0 66))
+  (num-test (exact->inexact (bignum "0+1.5i")) 0+1.5i)
+  (test (< (abs (- (expt 2 66.5) (exact->inexact 19459393535087060477929284/186481))) 1e-9) #t)
+  (test (< (abs (- (exact->inexact -186198177976134811212136169603791619/103863) (- (expt 2 100.5)))) 1e-9) #t))
 
 (test (exact->inexact "hi") 'error)
 (test (exact->inexact 1.0+23.0i 1.0+23.0i) 'error)
@@ -48026,17 +47953,13 @@ hi6: (string-app...
       (num-test (inexact->exact 4611686018427388404.0) 4611686018427388404)
       (num-test #e9007199254740995.0 9007199254740995)
       (num-test #e4611686018427388404.0 4611686018427388404)
-      (test (inexact->exact (bignum "0+1.5i")) 'error)
-      ))
-
-(if (not with-bignums)
+      (test (inexact->exact (bignum "0+1.5i")) 'error))
     (begin
       (test (inexact->exact 1.1e54) 'error)
       (test (inexact->exact 1.1e564) 'error)
       (test (inexact->exact .1e20) 'error)
       (test (inexact->exact 1e19) 'error)
-      (test (inexact->exact 1e20) 'error)
-      ))
+      (test (inexact->exact 1e20) 'error)))
 
 (test (inexact->exact inf.0) 'error)
 (test (inexact->exact nan.0) 'error)
@@ -48145,16 +48068,14 @@ hi6: (string-app...
 (num-test (numerator (/ most-negative-fixnum 3)) most-negative-fixnum)
 (num-test (numerator (/ most-negative-fixnum most-positive-fixnum)) most-negative-fixnum)
 
-(if with-bignums
-    (begin
-      (num-test (numerator 1195068768795265792518361315725116351898245581/48889032896862784894921) 24444516448431392447461)
-      (num-test (numerator 24444516448431392447461/1195068768795265792518361315725116351898245581) 1)
-      (num-test (numerator -46116860184273879035/27670116110564327424) -46116860184273879035)
-      (num-test (numerator (/ 9223372036854775808 -9223372036854775807)) -9223372036854775808)
-      (num-test (numerator 1234567891234567890/1234567) 1234567891234567890)
-      (num-test (numerator 9223372036854775808/9223372036854775807) 9223372036854775808)
-      (test (numerator 0+92233720368547758081.0i) 'error)
-      ))
+(when with-bignums
+  (num-test (numerator 1195068768795265792518361315725116351898245581/48889032896862784894921) 24444516448431392447461)
+  (num-test (numerator 24444516448431392447461/1195068768795265792518361315725116351898245581) 1)
+  (num-test (numerator -46116860184273879035/27670116110564327424) -46116860184273879035)
+  (num-test (numerator (/ 9223372036854775808 -9223372036854775807)) -9223372036854775808)
+  (num-test (numerator 1234567891234567890/1234567) 1234567891234567890)
+  (num-test (numerator 9223372036854775808/9223372036854775807) 9223372036854775808)
+  (test (numerator 0+92233720368547758081.0i) 'error))
 
 (test (numerator 0.0) 'error) ; guile thinks this is ok
 (test (numerator 1.23 1.23) 'error)
@@ -48265,16 +48186,14 @@ hi6: (string-app...
 (num-test (denominator (/ 1 most-positive-fixnum)) most-positive-fixnum)
 (num-test (denominator (/ most-negative-fixnum most-positive-fixnum)) most-positive-fixnum)
 
-(if with-bignums
-    (begin
-      (num-test (denominator 1195068768795265792518361315725116351898245581/48889032896862784894921) 1)
-      (num-test (denominator 24444516448431392447461/1195068768795265792518361315725116351898245581) 48889032896862784894921)
-      (num-test (denominator -46116860184273879035/27670116110564327424) 27670116110564327424)
-      (num-test (denominator (/ 9223372036854775808 -9223372036854775807)) 9223372036854775807)
-      (num-test (denominator 1234567891234567890/1234567) 1234567)
-      (num-test (denominator 9223372036854775808/9223372036854775807) 9223372036854775807)
-      (test (denominator 0+92233720368547758081.0i) 'error)
-      ))
+(when with-bignums
+  (num-test (denominator 1195068768795265792518361315725116351898245581/48889032896862784894921) 1)
+  (num-test (denominator 24444516448431392447461/1195068768795265792518361315725116351898245581) 48889032896862784894921)
+  (num-test (denominator -46116860184273879035/27670116110564327424) 27670116110564327424)
+  (num-test (denominator (/ 9223372036854775808 -9223372036854775807)) 9223372036854775807)
+  (num-test (denominator 1234567891234567890/1234567) 1234567)
+  (num-test (denominator 9223372036854775808/9223372036854775807) 9223372036854775807)
+  (test (denominator 0+92233720368547758081.0i) 'error))
 
 (test (denominator 0.0) 'error)
 (test (denominator 1.23 1.23) 'error)
@@ -48362,14 +48281,12 @@ hi6: (string-app...
 (test (real-part inf.0) inf.0)
 (num-test (real-part (+ 2 0+1/0i)) 2)
 
-(if with-bignums
-    (begin
-      (num-test (real-part 0+1e400i) 0.0)
-      (num-test (real-part 0+9223372036854775808.0i) 0.0)
-      (num-test (real-part 1.5+9223372036854775808.0i) 1.5)
-      (num-test (real-part 9223372036854775808.0) 9223372036854775808.0)
-      (num-test (real-part 9223372036854775808.0+1.5i) 9.223372036854775808E18)
-      ))
+(when with-bignums
+  (num-test (real-part 0+1e400i) 0.0)
+  (num-test (real-part 0+9223372036854775808.0i) 0.0)
+  (num-test (real-part 1.5+9223372036854775808.0i) 1.5)
+  (num-test (real-part 9223372036854775808.0) 9223372036854775808.0)
+  (num-test (real-part 9223372036854775808.0+1.5i) 9.223372036854775808E18))
 
 (test (denominator (real-part 3/4+1/2i)) 'error)
 (num-test (denominator (real-part 01/100)) 100)
@@ -48459,14 +48376,12 @@ hi6: (string-app...
 ;(num-test (imag-part (sqrt 1/0)) 0.0)
 ;(test (nan? (imag-part (sqrt (log 1/0)))) #t)
 
-(if with-bignums
-    (begin
-      (num-test (imag-part 0+1e400i) 1e400)
-      (num-test (imag-part 0+9223372036854775808.0i) 9223372036854775808.0)
-      (num-test (imag-part 1.5+9223372036854775808.0i) 9.223372036854775808E18)
-      (num-test (imag-part 9223372036854775808.0) 0)
-      (num-test (imag-part 9223372036854775808.0+1.5i) 1.5)
-      ))
+(when with-bignums
+  (num-test (imag-part 0+1e400i) 1e400)
+  (num-test (imag-part 0+9223372036854775808.0i) 9223372036854775808.0)
+  (num-test (imag-part 1.5+9223372036854775808.0i) 9.223372036854775808E18)
+  (num-test (imag-part 9223372036854775808.0) 0)
+  (num-test (imag-part 9223372036854775808.0+1.5i) 1.5))
 
 (test (imag-part "hi") 'error)
 (test (imag-part 1.0+23.0i 1.0+23.0i) 'error)
@@ -48951,15 +48866,13 @@ hi6: (string-app...
 (test (nan? (complex nan.0 nan.0)) #t)
 (test (nan? (complex nan.0 inf.0)) #t)
 
-(if with-bignums
-    (begin
-      (test (nan? (complex (bignum "0/0") 0)) #t)
-      (test (nan? (complex 0 (bignum "0/0"))) #t)
-      (num-test (complex 0 (* 2 most-positive-fixnum)) 0.0+1.8446744073709551614E19i)
-      (num-test (- (complex 2e20 (* 2 most-positive-fixnum)) 0+1.8446744073709551614E19i) 2e20)
-      (num-test (imag-part (complex 1.0 1180591620717411303424/717897987691852588770249)) 1.644511672909387396372163624382128338027E-3)
-      (test (complex 0.0 0+92233720368547758081.0i) 'error)
-      ))
+(when with-bignums
+  (test (nan? (complex (bignum "0/0") 0)) #t)
+  (test (nan? (complex 0 (bignum "0/0"))) #t)
+  (num-test (complex 0 (* 2 most-positive-fixnum)) 0.0+1.8446744073709551614E19i)
+  (num-test (- (complex 2e20 (* 2 most-positive-fixnum)) 0+1.8446744073709551614E19i) 2e20)
+  (num-test (imag-part (complex 1.0 1180591620717411303424/717897987691852588770249)) 1.644511672909387396372163624382128338027E-3)
+  (test (complex 0.0 0+92233720368547758081.0i) 'error))
 
 (test (complex 0 0+0/0i) 'error)
 (test (complex 0+0/0i 0) 'error)
@@ -49476,22 +49389,20 @@ hi6: (string-app...
       (val2 (catch #t (lambda () (make-polar 1.0 -0.0)) (lambda args 'error))))
   (test (equal? val1 val2) #t))
 
-(if with-bignums
-    (begin
-      (test (nan? (make-polar (bignum "0/0") 0)) #t)
-      (test (nan? (make-polar 0 (bignum "0/0"))) #t)
-      (num-test (make-polar (bignum "1.0") (bignum "0.0")) 1.0)
-      (num-test (make-polar 1000000000000000000000000.0 0.0) 1e24)
-      (num-test (make-polar 1000000000000000000000000.0 pi) -1e24)
-      (num-test (angle (make-polar 1000000000000000000000000.0 4.0)) (- 4 (* 2 pi)))
-      (num-test (make-polar 1000000000000000000000000.0 4.0) -6.536436208636119146391681830977503814246E23-7.568024953079282513726390945118290941345E23i)
-      (num-test (make-polar 1000000000000000000000000.0 -4.0) -6.536436208636119146391681830977503814246E23+7.568024953079282513726390945118290941345E23i)
-      (num-test (magnitude (make-polar 1e24 (* 1e19 pi))) 1e24)
-      (num-test (magnitude (make-polar 100000000000000000000000000000000000000.0 (* 1.5 pi))) 1e38)
-      (num-test (magnitude (make-polar 100000000000000000000000000000000000000.0 .01)) 1e38)
-      (num-test (angle (make-polar 100000000000000000000000000000000000000.0 (* 100 pi))) 0.0)
-      (test (make-polar 0.0 0+92233720368547758081.0i) 'error)
-      ))
+(when with-bignums
+  (test (nan? (make-polar (bignum "0/0") 0)) #t)
+  (test (nan? (make-polar 0 (bignum "0/0"))) #t)
+  (num-test (make-polar (bignum "1.0") (bignum "0.0")) 1.0)
+  (num-test (make-polar 1000000000000000000000000.0 0.0) 1e24)
+  (num-test (make-polar 1000000000000000000000000.0 pi) -1e24)
+  (num-test (angle (make-polar 1000000000000000000000000.0 4.0)) (- 4 (* 2 pi)))
+  (num-test (make-polar 1000000000000000000000000.0 4.0) -6.536436208636119146391681830977503814246E23-7.568024953079282513726390945118290941345E23i)
+  (num-test (make-polar 1000000000000000000000000.0 -4.0) -6.536436208636119146391681830977503814246E23+7.568024953079282513726390945118290941345E23i)
+  (num-test (magnitude (make-polar 1e24 (* 1e19 pi))) 1e24)
+  (num-test (magnitude (make-polar 100000000000000000000000000000000000000.0 (* 1.5 pi))) 1e38)
+  (num-test (magnitude (make-polar 100000000000000000000000000000000000000.0 .01)) 1e38)
+  (num-test (angle (make-polar 100000000000000000000000000000000000000.0 (* 100 pi))) 0.0)
+  (test (make-polar 0.0 0+92233720368547758081.0i) 'error))
 
 (test (make-polar 0 0+0/0i) 'error)
 (test (make-polar 0+0/0i 0) 'error)
@@ -49732,38 +49643,36 @@ hi6: (string-app...
 	 (list 1.0 1.0) (list 2.0 2.0) (list -2.0 2.0) (list 1.000000000000000000000000000000000000002E-309 1.000000000000000000000000000000000000002E-309) 
 	 (list 1e+16 1e+16) ))
   
-(if with-bignums
-    (begin
-      (num-test (abs -1e310) 1e310)
-      (num-test (abs -.1e310) 1e309)
-      (num-test (abs -.00001e309) 1e304)
-      (num-test (abs most-negative-fixnum) 9223372036854775808)
-      (num-test (abs -.1e-400) 1.000000000000000000000000000000000000001E-401)
-      (num-test (abs -1.797693134862315699999999999999999999998E308) 1.797693134862315699999999999999999999998E308)
-      (num-test (abs -12345678901234567890) 12345678901234567890)
-      (num-test (abs 12345678901234567890) 12345678901234567890)
-      (num-test (abs 9223372036854775808.0) 9223372036854775808.0)
-      (num-test (abs -9223372036854775808.0) 9223372036854775808.0)
-      (num-test (abs 9223372036854775808/3) 9223372036854775808/3)
-      (num-test (abs -9223372036854775808/3) 9223372036854775808/3)
-      (num-test (abs 9223372036854775808) 9223372036854775808)
-      (num-test (abs -9223372036854775808) 9223372036854775808)
-      (num-test (abs 1231234567891234567895/4924938271564938271564) 1231234567891234567895/4924938271564938271564)
-      (num-test (abs -1231234567891234567895/4924938271564938271564) 1231234567891234567895/4924938271564938271564)
-      (num-test (abs 5/4924938271564938271564) 5/4924938271564938271564)
-      (num-test (abs -5/4924938271564938271564) 5/4924938271564938271564)
-      (num-test (abs 1231234567891234567895.4924938271564938271564) 1231234567891234567895.4924938271564938271564)
-      (num-test (abs -1231234567891234567895.4924938271564938271564) 1231234567891234567895.4924938271564938271564)
-      
-      (test (< (abs (- 217307123869033896670383722255101771944951615456222473725950809456844385078286527901170732595082536915607499776643486838126400154358628745576030002134993982282420557293291331398770482226850626076965834765751024210059623687394545134173058036837172944503241193618487196846261991269480351798163386073355597133702428176134419602160051931823812274538708325328119629419660293102211559158897247464223430070715316610068188075169995173607390273159413073729599663002285391560133032803005324145809498542320942319/69171005865679080805116192745197553936743146778127491628445014149228719516632195993428601364184241694325570308897501794466504355763015991674090032275753543906386364041957503000266249940077862458146827521257517440768326138892186263673940157476537922438310169667984623997354774657585797547359740040386280140433453254961653602051204994301868729700341678413408419088335979860854285428030584998257285624659397393914631805389952520897186723117920856639645035858695810847480593484518166856238091362466500961 pi)) 1e-30) #t)
-      (test (< (abs (- 86506249226122124054607019515040072569389309675677090446756879032293209564976057920114008345082990143050895371432654098617595803586181179031736344131661104245709204440599410618785461104070923873664766537405043170624321277708803595336768044461421851475181966244993926088957647640608814315524675779027527947452743019231877030652479460288601395608061537360792381908211008391170537372395545350366754911899795085297260398105485029514527793853213999006311528934617756311568188335120606938078206683552323219/31823870623143321794788842272907994994917601540780651644441590671647399038540853367332145707942720183928541015066510539504636213034857780420049324239395126123695561521079512763516656025946557452382852551302156382716241918690232497805575429042492016743374932252325803315778289435501557305339709678335435100310171257145989526559485407857600325792028152511795618358674583299689136950642929744615564346477399823659926550178426308547711386364571735861738189405232059295317994009776897697526162381026548407 (exp 1.0))) 1e-10) #t)
-      
-      (test (< (abs (- 394372834342725903069943709807632345074473102456264/125532772013612015195543173729505082616186012726141 pi)) 1e-100) #t)
-      (test (< (abs (- 37263594917349868210957473113622483286895975031882232950275573404793068492510874215659862655765029385/11861370656940517106115970314230542917832783292279765360251185207749769595904108589726721941267812387 pi)) 1e-200) #t)
-      (test (< (abs (- 9723120205746844213570925835953968530586731050832362731080980958991370971563630998369876152193644009314571826202389376113741653418445346223192649145551112347805140423409409719828584948506325652698166338315337526327656688617124164275819596889301942895/3094965286042593318538169915190725425595617454610327314732861344227207817775353866654459841280603529756895813991351842180977260125352058245398197717632118060786828996125027995519815695529226138848308047979443033939320415958110104195587441744710374021 pi)) 1e-500) #t)
-      (test (< (abs (- 217307123869033896670383722255101771944951615456222473725950809456844385078286527901170732595082536915607499776643486838126400154358628745576030002134993982282420557293291331398770482226850626076965834765751024210059623687394545134173058036837172944503241193618487196846261991269480351798163386073355597133702428176134419602160051931823812274538708325328119629419660293102211559158897247464223430070715316610068188075169995173607390273159413073729599663002285391560133032803005324145809498542320942319/69171005865679080805116192745197553936743146778127491628445014149228719516632195993428601364184241694325570308897501794466504355763015991674090032275753543906386364041957503000266249940077862458146827521257517440768326138892186263673940157476537922438310169667984623997354774657585797547359740040386280140433453254961653602051204994301868729700341678413408419088335979860854285428030584998257285624659397393914631805389952520897186723117920856639645035858695810847480593484518166856238091362466500961 pi)) 1e-1000) #t)
-      (test (< (abs (- 86506249226122124054607019515040072569389309675677090446756879032293209564976057920114008345082990143050895371432654098617595803586181179031736344131661104245709204440599410618785461104070923873664766537405043170624321277708803595336768044461421851475181966244993926088957647640608814315524675779027527947452743019231877030652479460288601395608061537360792381908211008391170537372395545350366754911899795085297260398105485029514527793853213999006311528934617756311568188335120606938078206683552323219/31823870623143321794788842272907994994917601540780651644441590671647399038540853367332145707942720183928541015066510539504636213034857780420049324239395126123695561521079512763516656025946557452382852551302156382716241918690232497805575429042492016743374932252325803315778289435501557305339709678335435100310171257145989526559485407857600325792028152511795618358674583299689136950642929744615564346477399823659926550178426308547711386364571735861738189405232059295317994009776897697526162381026548407 (exp (bignum "1.0")))) 1e-1000) #t)
-      ))
+(when with-bignums
+  (num-test (abs -1e310) 1e310)
+  (num-test (abs -.1e310) 1e309)
+  (num-test (abs -.00001e309) 1e304)
+  (num-test (abs most-negative-fixnum) 9223372036854775808)
+  (num-test (abs -.1e-400) 1.000000000000000000000000000000000000001E-401)
+  (num-test (abs -1.797693134862315699999999999999999999998E308) 1.797693134862315699999999999999999999998E308)
+  (num-test (abs -12345678901234567890) 12345678901234567890)
+  (num-test (abs 12345678901234567890) 12345678901234567890)
+  (num-test (abs 9223372036854775808.0) 9223372036854775808.0)
+  (num-test (abs -9223372036854775808.0) 9223372036854775808.0)
+  (num-test (abs 9223372036854775808/3) 9223372036854775808/3)
+  (num-test (abs -9223372036854775808/3) 9223372036854775808/3)
+  (num-test (abs 9223372036854775808) 9223372036854775808)
+  (num-test (abs -9223372036854775808) 9223372036854775808)
+  (num-test (abs 1231234567891234567895/4924938271564938271564) 1231234567891234567895/4924938271564938271564)
+  (num-test (abs -1231234567891234567895/4924938271564938271564) 1231234567891234567895/4924938271564938271564)
+  (num-test (abs 5/4924938271564938271564) 5/4924938271564938271564)
+  (num-test (abs -5/4924938271564938271564) 5/4924938271564938271564)
+  (num-test (abs 1231234567891234567895.4924938271564938271564) 1231234567891234567895.4924938271564938271564)
+  (num-test (abs -1231234567891234567895.4924938271564938271564) 1231234567891234567895.4924938271564938271564)
+  
+  (test (< (abs (- 217307123869033896670383722255101771944951615456222473725950809456844385078286527901170732595082536915607499776643486838126400154358628745576030002134993982282420557293291331398770482226850626076965834765751024210059623687394545134173058036837172944503241193618487196846261991269480351798163386073355597133702428176134419602160051931823812274538708325328119629419660293102211559158897247464223430070715316610068188075169995173607390273159413073729599663002285391560133032803005324145809498542320942319/69171005865679080805116192745197553936743146778127491628445014149228719516632195993428601364184241694325570308897501794466504355763015991674090032275753543906386364041957503000266249940077862458146827521257517440768326138892186263673940157476537922438310169667984623997354774657585797547359740040386280140433453254961653602051204994301868729700341678413408419088335979860854285428030584998257285624659397393914631805389952520897186723117920856639645035858695810847480593484518166856238091362466500961 pi)) 1e-30) #t)
+  (test (< (abs (- 86506249226122124054607019515040072569389309675677090446756879032293209564976057920114008345082990143050895371432654098617595803586181179031736344131661104245709204440599410618785461104070923873664766537405043170624321277708803595336768044461421851475181966244993926088957647640608814315524675779027527947452743019231877030652479460288601395608061537360792381908211008391170537372395545350366754911899795085297260398105485029514527793853213999006311528934617756311568188335120606938078206683552323219/31823870623143321794788842272907994994917601540780651644441590671647399038540853367332145707942720183928541015066510539504636213034857780420049324239395126123695561521079512763516656025946557452382852551302156382716241918690232497805575429042492016743374932252325803315778289435501557305339709678335435100310171257145989526559485407857600325792028152511795618358674583299689136950642929744615564346477399823659926550178426308547711386364571735861738189405232059295317994009776897697526162381026548407 (exp 1.0))) 1e-10) #t)
+  
+  (test (< (abs (- 394372834342725903069943709807632345074473102456264/125532772013612015195543173729505082616186012726141 pi)) 1e-100) #t)
+  (test (< (abs (- 37263594917349868210957473113622483286895975031882232950275573404793068492510874215659862655765029385/11861370656940517106115970314230542917832783292279765360251185207749769595904108589726721941267812387 pi)) 1e-200) #t)
+  (test (< (abs (- 9723120205746844213570925835953968530586731050832362731080980958991370971563630998369876152193644009314571826202389376113741653418445346223192649145551112347805140423409409719828584948506325652698166338315337526327656688617124164275819596889301942895/3094965286042593318538169915190725425595617454610327314732861344227207817775353866654459841280603529756895813991351842180977260125352058245398197717632118060786828996125027995519815695529226138848308047979443033939320415958110104195587441744710374021 pi)) 1e-500) #t)
+  (test (< (abs (- 217307123869033896670383722255101771944951615456222473725950809456844385078286527901170732595082536915607499776643486838126400154358628745576030002134993982282420557293291331398770482226850626076965834765751024210059623687394545134173058036837172944503241193618487196846261991269480351798163386073355597133702428176134419602160051931823812274538708325328119629419660293102211559158897247464223430070715316610068188075169995173607390273159413073729599663002285391560133032803005324145809498542320942319/69171005865679080805116192745197553936743146778127491628445014149228719516632195993428601364184241694325570308897501794466504355763015991674090032275753543906386364041957503000266249940077862458146827521257517440768326138892186263673940157476537922438310169667984623997354774657585797547359740040386280140433453254961653602051204994301868729700341678413408419088335979860854285428030584998257285624659397393914631805389952520897186723117920856639645035858695810847480593484518166856238091362466500961 pi)) 1e-1000) #t)
+  (test (< (abs (- 86506249226122124054607019515040072569389309675677090446756879032293209564976057920114008345082990143050895371432654098617595803586181179031736344131661104245709204440599410618785461104070923873664766537405043170624321277708803595336768044461421851475181966244993926088957647640608814315524675779027527947452743019231877030652479460288601395608061537360792381908211008391170537372395545350366754911899795085297260398105485029514527793853213999006311528934617756311568188335120606938078206683552323219/31823870623143321794788842272907994994917601540780651644441590671647399038540853367332145707942720183928541015066510539504636213034857780420049324239395126123695561521079512763516656025946557452382852551302156382716241918690232497805575429042492016743374932252325803315778289435501557305339709678335435100310171257145989526559485407857600325792028152511795618358674583299689136950642929744615564346477399823659926550178426308547711386364571735861738189405232059295317994009776897697526162381026548407 (exp (bignum "1.0")))) 1e-1000) #t))
 
 (test (abs 0+0i) 0.0)
 (test (abs 1.23 1.23) 'error)
@@ -50281,23 +50190,21 @@ hi6: (string-app...
 	 (list 0.1+0.1i 0.14142135623731) (list 1e+16+1e+16i 1.4142135623731e+16) (list 1e-16+1e-16i 1.4142135623731e-16) 
 	 ))
   
-(if with-bignums
-    (begin
-      (num-test (magnitude (complex (expt 2 63) (expt 2 63))) 1.304381782533278221234957180625250836888E19)
-      (num-test (magnitude most-negative-fixnum) 9223372036854775808)
-      (num-test (magnitude 1e400+1e400i) 1.414213562373095048801688724209698078569E400)
-      (num-test (magnitude .1e400+.1e400i) 1.41421356237309504880168872420969807857E399)
-      (num-test (magnitude .001e310+.001e310i) 1.414213562373095048801688724209698078572E307)
-      (num-test (magnitude 1e-310+1e-310i) 1.414213562373095048801688724209698078569E-310)
-      (num-test (magnitude 1e-400+1e-400i) 1.414213562373095048801688724209698078568E-400)
-      (num-test (magnitude -1.797693134862315699999999999999999999998E308) 1.797693134862315699999999999999999999998E308)
-      (num-test (magnitude 9223372036854775808.1) 9223372036854775808.1)
-      (num-test (magnitude 9223372036854775808) 9223372036854775808) 
-      (num-test (magnitude 9223372036854775808/3) 9223372036854775808/3) 
-      (num-test (magnitude 9223372036854775808.1+1.0e19i) 1.360406526484765934746566522678055771386E19)
-      (num-test (magnitude 1.0e19+9223372036854775808.1i) 1.360406526484765934746566522678055771386E19)
-      (num-test (magnitude 14142135623730950488.0168872420969+14142135623730950488.0168872420969i) 1.9999999999999999999999999999999885751772054578776001965575456E19)
-      ))
+(when with-bignums
+  (num-test (magnitude (complex (expt 2 63) (expt 2 63))) 1.304381782533278221234957180625250836888E19)
+  (num-test (magnitude most-negative-fixnum) 9223372036854775808)
+  (num-test (magnitude 1e400+1e400i) 1.414213562373095048801688724209698078569E400)
+  (num-test (magnitude .1e400+.1e400i) 1.41421356237309504880168872420969807857E399)
+  (num-test (magnitude .001e310+.001e310i) 1.414213562373095048801688724209698078572E307)
+  (num-test (magnitude 1e-310+1e-310i) 1.414213562373095048801688724209698078569E-310)
+  (num-test (magnitude 1e-400+1e-400i) 1.414213562373095048801688724209698078568E-400)
+  (num-test (magnitude -1.797693134862315699999999999999999999998E308) 1.797693134862315699999999999999999999998E308)
+  (num-test (magnitude 9223372036854775808.1) 9223372036854775808.1)
+  (num-test (magnitude 9223372036854775808) 9223372036854775808) 
+  (num-test (magnitude 9223372036854775808/3) 9223372036854775808/3) 
+  (num-test (magnitude 9223372036854775808.1+1.0e19i) 1.360406526484765934746566522678055771386E19)
+  (num-test (magnitude 1.0e19+9223372036854775808.1i) 1.360406526484765934746566522678055771386E19)
+  (num-test (magnitude 14142135623730950488.0168872420969+14142135623730950488.0168872420969i) 1.9999999999999999999999999999999885751772054578776001965575456E19))
 
 (test (magnitude "hi") 'error)
 (test (magnitude 1.0+23.0i 1.0+23.0i) 'error)
@@ -50776,13 +50683,11 @@ hi6: (string-app...
       (val2 (catch #t (lambda () (angle -0.0)) (lambda args 'error))))
   (test (equal? val1 val2) #t))
 
-(if with-bignums
-    (begin
-      (num-test (angle -1.797693134862315699999999999999999999998E308) 3.141592653589793238462643383279502884195E0)
-      (num-test (angle (complex 1.0 1.0)) (angle (complex (expt 2 70) (expt 2 70))))
-      (num-test (angle (make-polar 1000000000000000000000000.0 (* .1 pi))) (* .1 pi))
-      (num-test (angle (complex most-positive-fixnum most-positive-fixnum)) 7.853981633974483096156608458198757210488E-1)
-      ))
+(when with-bignums
+  (num-test (angle -1.797693134862315699999999999999999999998E308) 3.141592653589793238462643383279502884195E0)
+  (num-test (angle (complex 1.0 1.0)) (angle (complex (expt 2 70) (expt 2 70))))
+  (num-test (angle (make-polar 1000000000000000000000000.0 (* .1 pi))) (* .1 pi))
+  (num-test (angle (complex most-positive-fixnum most-positive-fixnum)) 7.853981633974483096156608458198757210488E-1))
 
 (test (angle) 'error)
 (test (angle "hi") 'error)
@@ -50844,17 +50749,15 @@ hi6: (string-app...
 (test (integer-length 1/0) 'error)
 (test (integer-length (log 0)) 'error)
 
-(if with-bignums
-    (begin
-      (test (integer-length (bignum "100000000000000000000000000000000000")) (ceiling (log (bignum "100000000000000000000000000000000000") 2)))
-      (num-test (integer-length (+ (expt 2 48) (expt 2 46))) 49)
-      (num-test (integer-length (ash 1 64)) 65)
-      (num-test (integer-length 9223372036854775808) 64) ; ??
-      (num-test (integer-length (* 4 most-positive-fixnum)) 65)
-      (num-test (integer-length (* most-positive-fixnum most-positive-fixnum)) 126)
-      (test (integer-length 0+92233720368547758081.0i) 'error)
-      (test (integer-length 92233720368547758081.0) 'error)
-      ))
+(when with-bignums
+  (test (integer-length (bignum "100000000000000000000000000000000000")) (ceiling (log (bignum "100000000000000000000000000000000000") 2)))
+  (num-test (integer-length (+ (expt 2 48) (expt 2 46))) 49)
+  (num-test (integer-length (ash 1 64)) 65)
+  (num-test (integer-length 9223372036854775808) 64) ; ??
+  (num-test (integer-length (* 4 most-positive-fixnum)) 65)
+  (num-test (integer-length (* most-positive-fixnum most-positive-fixnum)) 126)
+  (test (integer-length 0+92233720368547758081.0i) 'error)
+  (test (integer-length 92233720368547758081.0) 'error))
 
 (for-each
  (lambda (arg)
@@ -50940,8 +50843,7 @@ hi6: (string-app...
       (test (integer-decode-float (bignum "1E310")) '(4503599627370496 972 1))
       (test (integer-decode-float (bignum "-1E310")) '(4503599627370496 972 -1))
       (test (integer-decode-float 0+92233720368547758081.0i) 'error)
-      (test (integer-decode-float 92233720368547758081/123) 'error)
-      )
+      (test (integer-decode-float 92233720368547758081/123) 'error))
     (begin
       (test (integer-decode-float 1/0) '(6755399441055744 972 1)) ; nan
       (test (integer-decode-float (real-part (log 0))) '(4503599627370496 972 -1)) ; -inf
@@ -51007,14 +50909,12 @@ hi6: (string-app...
 (num-test (lognot 9223372036854775807) -9223372036854775808)
 (num-test (lognot most-positive-fixnum) most-negative-fixnum)
 
-(if with-bignums
-    (begin
-      (test (lognot 9223372036854775808) -9223372036854775809)
-      (test (lognot 618970019642690137449562111) (- (expt 2 89)))
-      (num-test (lognot (+ (expt 2 48) (expt 2 46))) -351843720888321)
-      (test (lognot 0+92233720368547758081.0i) 'error)
-      (test (lognot 92233720368547758081.0) 'error)
-      ))
+(when with-bignums
+  (test (lognot 9223372036854775808) -9223372036854775809)
+  (test (lognot 618970019642690137449562111) (- (expt 2 89)))
+  (num-test (lognot (+ (expt 2 48) (expt 2 46))) -351843720888321)
+  (test (lognot 0+92233720368547758081.0i) 'error)
+  (test (lognot 92233720368547758081.0) 'error))
 
 (test (lognot) 'error)
 (test (lognot 1.0) 'error)
@@ -51053,13 +50953,11 @@ hi6: (string-app...
 (num-test (logior 9223372036854775807 9223372036854775807) 9223372036854775807)
 (num-test (logior) 0)
 
-(if with-bignums
-    (begin
-      (test (logior (expt 2 63) (expt 2 75)) (+ (expt 2 63) (expt 2 75)))
-      (num-test (logior (+ (expt 2 48) (expt 2 46)) (expt 2 48)) 351843720888320)
-      (test (logior 0+92233720368547758081.0i) 'error)
-      (test (logior 92233720368547758081.0) 'error)
-      ))
+(when with-bignums
+  (test (logior (expt 2 63) (expt 2 75)) (+ (expt 2 63) (expt 2 75)))
+  (num-test (logior (+ (expt 2 48) (expt 2 46)) (expt 2 48)) 351843720888320)
+  (test (logior 0+92233720368547758081.0i) 'error)
+  (test (logior 92233720368547758081.0) 'error))
 
 (test (logior 0 1.0) 'error)
 (test (logior 0 1/2) 'error)
@@ -51110,14 +51008,12 @@ hi6: (string-app...
 (num-test (logand 9223372036854775807 9223372036854775807) 9223372036854775807)
 (num-test (logand) -1)
 
-(if with-bignums
-    (begin
-      (test (logand 9223372036854775808 -9223372036854775809) 0)
-      (test (logand 618970019642690137449562111 (expt 2 88)) (expt 2 88))
-      (num-test (logand (+ (expt 2 48) (expt 2 46)) (expt 2 48)) 281474976710656)
-      (test (logand 0+92233720368547758081.0i) 'error)
-      (test (logand 92233720368547758081.0) 'error)
-      ))
+(when with-bignums
+  (test (logand 9223372036854775808 -9223372036854775809) 0)
+  (test (logand 618970019642690137449562111 (expt 2 88)) (expt 2 88))
+  (num-test (logand (+ (expt 2 48) (expt 2 46)) (expt 2 48)) 281474976710656)
+  (test (logand 0+92233720368547758081.0i) 'error)
+  (test (logand 92233720368547758081.0) 'error))
 
 (test (logand 0 1.0) 'error)
 (test (logand 1+i) 'error)
@@ -51163,13 +51059,11 @@ hi6: (string-app...
 (num-test (logxor 9223372036854775807 9223372036854775807) 0)
 (num-test (logxor) 0)
 
-(if with-bignums
-    (begin
-      (test (logxor 37788155234994016485376 (+ (expt 2 63) 1)) (+ 1 (expt 2 75)))
-      (num-test (logxor (+ (expt 2 48) (expt 2 46)) (expt 2 48)) 70368744177664)
-      (test (logxor 0+92233720368547758081.0i) 'error)
-      (test (logxor 92233720368547758081.0) 'error)
-      ))
+(when with-bignums
+  (test (logxor 37788155234994016485376 (+ (expt 2 63) 1)) (+ 1 (expt 2 75)))
+  (num-test (logxor (+ (expt 2 48) (expt 2 46)) (expt 2 48)) 70368744177664)
+  (test (logxor 0+92233720368547758081.0i) 'error)
+  (test (logxor 92233720368547758081.0) 'error))
 
 (test (logxor 0 1.0) 'error)
 (test (logxor 0 1/2) 'error)
@@ -51599,13 +51493,11 @@ hi6: (string-app...
 (test (logbit? most-positive-fixnum most-positive-fixnum) #f)
 (test (logbit? (ash most-negative-fixnum 1) 1) #f)
 
-(if with-bignums
-    (begin
-      (test (logbit? (ash 1 64) 64) #t)
-      (test (logbit? (ash 1 64) 63) #f)
-      (test (logbit? most-negative-fixnum 63) #t)
-      (test (logbit? (bignum "-1") 64) #t)
-      ))
+(when with-bignums
+  (test (logbit? (ash 1 64) 64) #t)
+  (test (logbit? (ash 1 64) 63) #f)
+  (test (logbit? most-negative-fixnum 63) #t)
+  (test (logbit? (bignum "-1") 64) #t))
 
 (test (logbit? 0 1.0) 'error)
 (test (logbit? 1+i) 'error)
@@ -51701,27 +51593,25 @@ hi6: (string-app...
 	   (ash 2 (- (* i 2) 1)))
 	#t))
 
-(if with-bignums
-    (begin
-      (num-test (ash 1 48) 281474976710656)
-      (num-test (ash most-positive-fixnum 2) 36893488147419103228)
-      (num-test (ash 281474976710656 -48) 1)
-      (num-test (ash -100000000000000000000000000000000 -100) -79)
-      ;; (floor (/ -100000000000000000000000000000000 (expt 2 100))) = -79
-      (num-test (ash -100000000000000000000000000000000 -200) -1)
-      (num-test (ash 1 63) 9223372036854775808)
-      (num-test (ash 1 64) 18446744073709551616)
-      (num-test (ash 1 100) 1267650600228229401496703205376)
-      (num-test (ash 18446744073709551616 -63) 2)
-      (num-test (ash 1267650600228229401496703205376 -100) 1)
-      (test (ash 1 89) (expt 2 89))
-      (test (ash 1 0+92233720368547758081.0i) 'error)
-      (test (ash 1 92233720368547758081.0) 'error)
-      (test (ash 0+92233720368547758081.0i -1) 'error)
-      (test (ash 92233720368547758081.0 1) 'error)
-      (num-test (ash 9223372036854775807 1) 18446744073709551614)
-      (num-test (ash -9223372036854775807 1) -18446744073709551614)
-      ))
+(when with-bignums
+  (num-test (ash 1 48) 281474976710656)
+  (num-test (ash most-positive-fixnum 2) 36893488147419103228)
+  (num-test (ash 281474976710656 -48) 1)
+  (num-test (ash -100000000000000000000000000000000 -100) -79)
+  ;; (floor (/ -100000000000000000000000000000000 (expt 2 100))) = -79
+  (num-test (ash -100000000000000000000000000000000 -200) -1)
+  (num-test (ash 1 63) 9223372036854775808)
+  (num-test (ash 1 64) 18446744073709551616)
+  (num-test (ash 1 100) 1267650600228229401496703205376)
+  (num-test (ash 18446744073709551616 -63) 2)
+  (num-test (ash 1267650600228229401496703205376 -100) 1)
+  (test (ash 1 89) (expt 2 89))
+  (test (ash 1 0+92233720368547758081.0i) 'error)
+  (test (ash 1 92233720368547758081.0) 'error)
+  (test (ash 0+92233720368547758081.0i -1) 'error)
+  (test (ash 92233720368547758081.0 1) 'error)
+  (num-test (ash 9223372036854775807 1) 18446744073709551614)
+  (num-test (ash -9223372036854775807 1) -18446744073709551614))
 
 (test (ash 1 (expt 2 32)) 'error)
 (test (ash) 'error)
@@ -51876,11 +51766,10 @@ hi6: (string-app...
 (num-test (truncate most-positive-fixnum) most-positive-fixnum)
 (num-test (truncate 1+0i) 1)
 
-(if with-bignums
-    (begin
-      (num-test (truncate 8388608.9999999995) 8388608)
-      (num-test (truncate -8388609.0000000005) -8388609)
-      (num-test (truncate -8388609.9999999995) -8388609)))
+(when with-bignums
+  (num-test (truncate 8388608.9999999995) 8388608)
+  (num-test (truncate -8388609.0000000005) -8388609)
+  (num-test (truncate -8388609.9999999995) -8388609))
 
 (test (= (truncate (* 111738283365989051/177100989030047175 1.0)) (truncate 130441933147714940/206745572560704147)) #t)
 (test (= (truncate (* 114243/80782 114243/80782 1.0)) (truncate (* 275807/195025 275807/195025))) #f)
@@ -51897,60 +51786,58 @@ hi6: (string-app...
 (test (= (truncate (* 54608393/38613965 54608393/38613965 1.0)) (truncate (* 131836323/93222358 131836323/93222358))) #f)
 (test (= (truncate (* 9369319/6625109 9369319/6625109 1.0)) (truncate (* 54608393/38613965 54608393/38613965))) #t)
 
-(if with-bignums
-    (begin
-      (num-test (truncate (+ (expt 2.0 62) 512)) 4611686018427388416)
-      (num-test (truncate (+ (expt 2.0 62) 513)) 4611686018427388417)
-      (num-test (truncate (exact->inexact most-negative-fixnum)) most-negative-fixnum)
-      (test (truncate (exact->inexact most-positive-fixnum)) most-positive-fixnum)
-
-      (num-test (truncate 1e19) 10000000000000000000)
-      (num-test (truncate 1e32) 100000000000000000000000000000000)
-      (num-test (truncate -1e19) -10000000000000000000)
-      (num-test (truncate -1e32) -100000000000000000000000000000000)
-      (num-test (truncate 100000000000000000000000000000000/3) 33333333333333333333333333333333)
-      (num-test (truncate -100000000000000000000000000000000/3) -33333333333333333333333333333333)
-      (num-test (truncate 200000000000000000000000000000000/3) 66666666666666666666666666666666)
-      (num-test (truncate -200000000000000000000000000000000/3) -66666666666666666666666666666666)
-
-      (let ((old-prec (*s7* 'bignum-precision)))
-	(set! (*s7* 'bignum-precision) 512)
-
-      (test (= (truncate (* 111760107268250945908601/79026329715516201199301 111760107268250945908601/79026329715516201199301 1.0)) 
-	       (truncate (* 269812766699283348307203/190786436983767147107902 269812766699283348307203/190786436983767147107902))) #f)
-      (test (= (truncate (* 1180872205318713601/835002744095575440 1180872205318713601/835002744095575440 1.0)) 
-	       (truncate (* 2850877693509864481/2015874949414289041 2850877693509864481/2015874949414289041))) #f)
-      (test (= (truncate (* 1362725501650887306817/963592443113182178088 1362725501650887306817/963592443113182178088 1.0)) 
-	       (truncate (* 3289910387877251662993/2326317944764069484905 3289910387877251662993/2326317944764069484905))) #f)
-      (test (= (truncate (* 14398739476117879/10181446324101389 14398739476117879/10181446324101389 1.0)) 
-	       (truncate (* 34761632124320657/24580185800219268 34761632124320657/24580185800219268))) #f)
-      (test (= (truncate (* 1572584048032918633353217/1111984844349868137938112 1572584048032918633353217/1111984844349868137938112 1.0)) 
-	       (truncate (* 3796553736732654909229441/2684568892382786771291329 3796553736732654909229441/2684568892382786771291329))) #f)
-      (test (= (truncate (* 16616132878186749607/11749380235262596085 16616132878186749607/11749380235262596085 1.0)) 
-	       (truncate (* 40114893348711941777/28365513113449345692 40114893348711941777/28365513113449345692))) #f)
-      (test (= (truncate (* 19175002942688032928599/13558774610046711780701 19175002942688032928599/13558774610046711780701 1.0)) 
-	       (truncate (* 46292552162781456490001/32733777552734744709300 46292552162781456490001/32733777552734744709300))) #f)
-      (test (= (truncate (* 202605639573839043/143263821649299118 202605639573839043/143263821649299118 1.0)) 
-	       (truncate (* 489133282872437279/345869461223138161 489133282872437279/345869461223138161))) #f)
-      (test (= (truncate (* 269812766699283348307203/190786436983767147107902 269812766699283348307203/190786436983767147107902 1.0)) 
-	       (truncate (* 1572584048032918633353217/1111984844349868137938112 1572584048032918633353217/1111984844349868137938112))) #t)
-      (test (= (truncate (* 2850877693509864481/2015874949414289041 2850877693509864481/2015874949414289041 1.0)) 
-	       (truncate (* 16616132878186749607/11749380235262596085 16616132878186749607/11749380235262596085))) #t)
-      (test (= (truncate (* 3289910387877251662993/2326317944764069484905 3289910387877251662993/2326317944764069484905 1.0)) 
-	       (truncate (* 19175002942688032928599/13558774610046711780701 19175002942688032928599/13558774610046711780701))) #t)
-      (test (= (truncate (* 34761632124320657/24580185800219268 34761632124320657/24580185800219268 1.0)) 
-	       (truncate (* 202605639573839043/143263821649299118 202605639573839043/143263821649299118))) #t)
-      (test (= (truncate (* 46292552162781456490001/32733777552734744709300 46292552162781456490001/32733777552734744709300 1.0)) 
-	       (truncate (* 111760107268250945908601/79026329715516201199301 111760107268250945908601/79026329715516201199301))) #f)
-      (test (= (truncate (* 489133282872437279/345869461223138161 489133282872437279/345869461223138161 1.0)) 
-	       (truncate (* 1180872205318713601/835002744095575440 1180872205318713601/835002744095575440))) #f)
-      (test (= (truncate (* 564459384575477049359/399133058537705128729 564459384575477049359/399133058537705128729 1.0)) 
-	       (truncate (* 1362725501650887306817/963592443113182178088 1362725501650887306817/963592443113182178088))) #f)
-      (test (= (truncate (* 5964153172084899/4217293152016490 5964153172084899/4217293152016490 1.0)) 
-	       (truncate (* 14398739476117879/10181446324101389 14398739476117879/10181446324101389))) #f)
-
-      (set! (*s7* 'bignum-precision) old-prec))
-      ))
+(when with-bignums
+  (num-test (truncate (+ (expt 2.0 62) 512)) 4611686018427388416)
+  (num-test (truncate (+ (expt 2.0 62) 513)) 4611686018427388417)
+  (num-test (truncate (exact->inexact most-negative-fixnum)) most-negative-fixnum)
+  (test (truncate (exact->inexact most-positive-fixnum)) most-positive-fixnum)
+  
+  (num-test (truncate 1e19) 10000000000000000000)
+  (num-test (truncate 1e32) 100000000000000000000000000000000)
+  (num-test (truncate -1e19) -10000000000000000000)
+  (num-test (truncate -1e32) -100000000000000000000000000000000)
+  (num-test (truncate 100000000000000000000000000000000/3) 33333333333333333333333333333333)
+  (num-test (truncate -100000000000000000000000000000000/3) -33333333333333333333333333333333)
+  (num-test (truncate 200000000000000000000000000000000/3) 66666666666666666666666666666666)
+  (num-test (truncate -200000000000000000000000000000000/3) -66666666666666666666666666666666)
+  
+  (let ((old-prec (*s7* 'bignum-precision)))
+    (set! (*s7* 'bignum-precision) 512)
+    
+    (test (= (truncate (* 111760107268250945908601/79026329715516201199301 111760107268250945908601/79026329715516201199301 1.0)) 
+	     (truncate (* 269812766699283348307203/190786436983767147107902 269812766699283348307203/190786436983767147107902))) #f)
+    (test (= (truncate (* 1180872205318713601/835002744095575440 1180872205318713601/835002744095575440 1.0)) 
+	     (truncate (* 2850877693509864481/2015874949414289041 2850877693509864481/2015874949414289041))) #f)
+    (test (= (truncate (* 1362725501650887306817/963592443113182178088 1362725501650887306817/963592443113182178088 1.0)) 
+	     (truncate (* 3289910387877251662993/2326317944764069484905 3289910387877251662993/2326317944764069484905))) #f)
+    (test (= (truncate (* 14398739476117879/10181446324101389 14398739476117879/10181446324101389 1.0)) 
+	     (truncate (* 34761632124320657/24580185800219268 34761632124320657/24580185800219268))) #f)
+    (test (= (truncate (* 1572584048032918633353217/1111984844349868137938112 1572584048032918633353217/1111984844349868137938112 1.0)) 
+	     (truncate (* 3796553736732654909229441/2684568892382786771291329 3796553736732654909229441/2684568892382786771291329))) #f)
+    (test (= (truncate (* 16616132878186749607/11749380235262596085 16616132878186749607/11749380235262596085 1.0)) 
+	     (truncate (* 40114893348711941777/28365513113449345692 40114893348711941777/28365513113449345692))) #f)
+    (test (= (truncate (* 19175002942688032928599/13558774610046711780701 19175002942688032928599/13558774610046711780701 1.0)) 
+	     (truncate (* 46292552162781456490001/32733777552734744709300 46292552162781456490001/32733777552734744709300))) #f)
+    (test (= (truncate (* 202605639573839043/143263821649299118 202605639573839043/143263821649299118 1.0)) 
+	     (truncate (* 489133282872437279/345869461223138161 489133282872437279/345869461223138161))) #f)
+    (test (= (truncate (* 269812766699283348307203/190786436983767147107902 269812766699283348307203/190786436983767147107902 1.0)) 
+	     (truncate (* 1572584048032918633353217/1111984844349868137938112 1572584048032918633353217/1111984844349868137938112))) #t)
+    (test (= (truncate (* 2850877693509864481/2015874949414289041 2850877693509864481/2015874949414289041 1.0)) 
+	     (truncate (* 16616132878186749607/11749380235262596085 16616132878186749607/11749380235262596085))) #t)
+    (test (= (truncate (* 3289910387877251662993/2326317944764069484905 3289910387877251662993/2326317944764069484905 1.0)) 
+	     (truncate (* 19175002942688032928599/13558774610046711780701 19175002942688032928599/13558774610046711780701))) #t)
+    (test (= (truncate (* 34761632124320657/24580185800219268 34761632124320657/24580185800219268 1.0)) 
+	     (truncate (* 202605639573839043/143263821649299118 202605639573839043/143263821649299118))) #t)
+    (test (= (truncate (* 46292552162781456490001/32733777552734744709300 46292552162781456490001/32733777552734744709300 1.0)) 
+	     (truncate (* 111760107268250945908601/79026329715516201199301 111760107268250945908601/79026329715516201199301))) #f)
+    (test (= (truncate (* 489133282872437279/345869461223138161 489133282872437279/345869461223138161 1.0)) 
+	     (truncate (* 1180872205318713601/835002744095575440 1180872205318713601/835002744095575440))) #f)
+    (test (= (truncate (* 564459384575477049359/399133058537705128729 564459384575477049359/399133058537705128729 1.0)) 
+	     (truncate (* 1362725501650887306817/963592443113182178088 1362725501650887306817/963592443113182178088))) #f)
+    (test (= (truncate (* 5964153172084899/4217293152016490 5964153172084899/4217293152016490 1.0)) 
+	     (truncate (* 14398739476117879/10181446324101389 14398739476117879/10181446324101389))) #f)
+    
+    (set! (*s7* 'bignum-precision) old-prec)))
 
 (test (truncate) 'error)
 (test (truncate 1.23+1.0i) 'error)
@@ -52033,8 +51920,7 @@ hi6: (string-app...
       (num-test (floor 9007199254740990.95) 9007199254740990)
       (num-test (floor 9007199254740993.95) 9007199254740993)
       (num-test (floor (+ 0.995 (expt 2.0 46))) 70368744177664)
-      (num-test (floor (+ 0.9995 (expt 2.0 45))) 35184372088832)
-      )
+      (num-test (floor (+ 0.9995 (expt 2.0 45))) 35184372088832))
     (begin
       (test (floor 1e308) 'error)
       (test (floor 1e19) 'error)
@@ -52056,43 +51942,41 @@ hi6: (string-app...
 (test (= (floor (* 54608393/38613965 54608393/38613965 1.0)) (floor (* 131836323/93222358 131836323/93222358))) #f)
 (test (= (floor (* 9369319/6625109 9369319/6625109 1.0)) (floor (* 54608393/38613965 54608393/38613965))) #t)
 
-(if with-bignums 
-    (begin
-      (num-test (floor (+ (expt 2.0 62) 512)) 4611686018427388416)
-      (num-test (floor (+ (expt 2.0 62) 513)) 4611686018427388417)
-      (num-test (floor (exact->inexact most-negative-fixnum)) most-negative-fixnum)
-      (test (floor (exact->inexact most-positive-fixnum)) most-positive-fixnum)
-
-      (num-test (floor 1e19) 10000000000000000000)
-      (num-test (floor 1e32) 100000000000000000000000000000000)
-      (num-test (floor -1e19) -10000000000000000000)
-      (num-test (floor -1e32) -100000000000000000000000000000000)
-      (num-test (floor 100000000000000000000000000000000/3) 33333333333333333333333333333333)
-      (num-test (floor -100000000000000000000000000000000/3) -33333333333333333333333333333334)
-      (num-test (floor 200000000000000000000000000000000/3) 66666666666666666666666666666666)
-      (num-test (floor -200000000000000000000000000000000/3) -66666666666666666666666666666667)
-
-      (test (= (floor (* 1180872205318713601/835002744095575440 1180872205318713601/835002744095575440 1.0)) 
-	       (floor (* 2850877693509864481/2015874949414289041 2850877693509864481/2015874949414289041))) #f)
-      (test (= (floor (* 1362725501650887306817/963592443113182178088 1362725501650887306817/963592443113182178088 1.0)) 
-	       (floor (* 3289910387877251662993/2326317944764069484905 3289910387877251662993/2326317944764069484905))) #f)
-      (test (= (floor (* 14398739476117879/10181446324101389 14398739476117879/10181446324101389 1.0)) 
-	       (floor (* 34761632124320657/24580185800219268 34761632124320657/24580185800219268))) #f)
-      (test (= (floor (* 202605639573839043/143263821649299118 202605639573839043/143263821649299118 1.0)) 
-	       (floor (* 489133282872437279/345869461223138161 489133282872437279/345869461223138161))) #f)
-      (test (= (floor (* 2850877693509864481/2015874949414289041 2850877693509864481/2015874949414289041 1.0)) 
-	       (floor (* 16616132878186749607/11749380235262596085 16616132878186749607/11749380235262596085))) #t)
-      (test (= (floor (* 34761632124320657/24580185800219268 34761632124320657/24580185800219268 1.0)) 
-	       (floor (* 202605639573839043/143263821649299118 202605639573839043/143263821649299118))) #t)
-      (test (= (floor (* 40114893348711941777/28365513113449345692 40114893348711941777/28365513113449345692 1.0)) 
-	       (floor (* 96845919575610633161/68480406462161287469 96845919575610633161/68480406462161287469))) #f)
-      (test (= (floor (* 46292552162781456490001/32733777552734744709300 46292552162781456490001/32733777552734744709300 1.0)) 
-	       (floor (* 111760107268250945908601/79026329715516201199301 111760107268250945908601/79026329715516201199301))) #f)
-      (test (= (floor (* 489133282872437279/345869461223138161 489133282872437279/345869461223138161 1.0)) 
-	       (floor (* 1180872205318713601/835002744095575440 1180872205318713601/835002744095575440))) #f)
-      (test (= (floor (* 5964153172084899/4217293152016490 5964153172084899/4217293152016490 1.0)) 
-	       (floor (* 14398739476117879/10181446324101389 14398739476117879/10181446324101389))) #f)
-      ))
+(when with-bignums 
+  (num-test (floor (+ (expt 2.0 62) 512)) 4611686018427388416)
+  (num-test (floor (+ (expt 2.0 62) 513)) 4611686018427388417)
+  (num-test (floor (exact->inexact most-negative-fixnum)) most-negative-fixnum)
+  (test (floor (exact->inexact most-positive-fixnum)) most-positive-fixnum)
+  
+  (num-test (floor 1e19) 10000000000000000000)
+  (num-test (floor 1e32) 100000000000000000000000000000000)
+  (num-test (floor -1e19) -10000000000000000000)
+  (num-test (floor -1e32) -100000000000000000000000000000000)
+  (num-test (floor 100000000000000000000000000000000/3) 33333333333333333333333333333333)
+  (num-test (floor -100000000000000000000000000000000/3) -33333333333333333333333333333334)
+  (num-test (floor 200000000000000000000000000000000/3) 66666666666666666666666666666666)
+  (num-test (floor -200000000000000000000000000000000/3) -66666666666666666666666666666667)
+  
+  (test (= (floor (* 1180872205318713601/835002744095575440 1180872205318713601/835002744095575440 1.0)) 
+	   (floor (* 2850877693509864481/2015874949414289041 2850877693509864481/2015874949414289041))) #f)
+  (test (= (floor (* 1362725501650887306817/963592443113182178088 1362725501650887306817/963592443113182178088 1.0)) 
+	   (floor (* 3289910387877251662993/2326317944764069484905 3289910387877251662993/2326317944764069484905))) #f)
+  (test (= (floor (* 14398739476117879/10181446324101389 14398739476117879/10181446324101389 1.0)) 
+	   (floor (* 34761632124320657/24580185800219268 34761632124320657/24580185800219268))) #f)
+  (test (= (floor (* 202605639573839043/143263821649299118 202605639573839043/143263821649299118 1.0)) 
+	   (floor (* 489133282872437279/345869461223138161 489133282872437279/345869461223138161))) #f)
+  (test (= (floor (* 2850877693509864481/2015874949414289041 2850877693509864481/2015874949414289041 1.0)) 
+	   (floor (* 16616132878186749607/11749380235262596085 16616132878186749607/11749380235262596085))) #t)
+  (test (= (floor (* 34761632124320657/24580185800219268 34761632124320657/24580185800219268 1.0)) 
+	   (floor (* 202605639573839043/143263821649299118 202605639573839043/143263821649299118))) #t)
+  (test (= (floor (* 40114893348711941777/28365513113449345692 40114893348711941777/28365513113449345692 1.0)) 
+	   (floor (* 96845919575610633161/68480406462161287469 96845919575610633161/68480406462161287469))) #f)
+  (test (= (floor (* 46292552162781456490001/32733777552734744709300 46292552162781456490001/32733777552734744709300 1.0)) 
+	   (floor (* 111760107268250945908601/79026329715516201199301 111760107268250945908601/79026329715516201199301))) #f)
+  (test (= (floor (* 489133282872437279/345869461223138161 489133282872437279/345869461223138161 1.0)) 
+	   (floor (* 1180872205318713601/835002744095575440 1180872205318713601/835002744095575440))) #f)
+  (test (= (floor (* 5964153172084899/4217293152016490 5964153172084899/4217293152016490 1.0)) 
+	   (floor (* 14398739476117879/10181446324101389 14398739476117879/10181446324101389))) #f))
 
 (let ((val1 (catch #t (lambda () (floor 0.0)) (lambda args 'error)))
       (val2 (catch #t (lambda () (floor -0.0)) (lambda args 'error))))
@@ -52187,8 +52071,7 @@ hi6: (string-app...
       (num-test (ceiling 8388608.0000000005) 8388609)
       (num-test (ceiling 8388609.0000000005) 8388610)
       (num-test (ceiling 8388607.9999999995) 8388608)
-      (num-test (ceiling 9223372036854775806.9) 9223372036854775807)
-      )
+      (num-test (ceiling 9223372036854775806.9) 9223372036854775807))
     (begin
       (test (ceiling 1e308) 'error)
       (test (ceiling 1e19) 'error)
@@ -52215,54 +52098,52 @@ hi6: (string-app...
 (test (= (ceiling (* 54608393/38613965 54608393/38613965 1.0)) (ceiling (* 131836323/93222358 131836323/93222358))) #f)
 (test (= (ceiling (* 9369319/6625109 9369319/6625109 1.0)) (ceiling (* 54608393/38613965 54608393/38613965))) #t)
 
-(if with-bignums
-    (begin
-      (num-test (ceiling (+ (expt 2.0 62) 512)) 4611686018427388416)
-      (num-test (ceiling (+ (expt 2.0 62) 513)) 4611686018427388417)
-      (num-test (ceiling (exact->inexact most-negative-fixnum)) most-negative-fixnum)
-      (test (ceiling (exact->inexact most-positive-fixnum)) most-positive-fixnum)
-      (num-test (ceiling 123456789012345678901234567890.1) 123456789012345678901234567891)
-      (num-test (ceiling -123456789012345678901234567890.1) -123456789012345678901234567890)
-
-      (num-test (ceiling  9223372036854775806.7)  9223372036854775807)
-      (num-test (ceiling -9223372036854775807.9) -9223372036854775807)
-      (num-test (ceiling -1e19) -10000000000000000000)
-      (num-test (ceiling -1e32) -100000000000000000000000000000000)
-      (num-test (ceiling 100000000000000000000000000000000/3) 33333333333333333333333333333334)
-      (num-test (ceiling -100000000000000000000000000000000/3) -33333333333333333333333333333333)
-      (num-test (ceiling 200000000000000000000000000000000/3) 66666666666666666666666666666667)
-      (num-test (ceiling -200000000000000000000000000000000/3) -66666666666666666666666666666666)
-
-      (test (= (ceiling (* 1180872205318713601/835002744095575440 1180872205318713601/835002744095575440 1.0)) 
-	       (ceiling (* 2850877693509864481/2015874949414289041 2850877693509864481/2015874949414289041))) #f)
-
-;      (test (= (ceiling (* 1362725501650887306817/963592443113182178088 1362725501650887306817/963592443113182178088 1.0)) 
-;	       (ceiling (* 3289910387877251662993/2326317944764069484905 3289910387877251662993/2326317944764069484905))) #f)
-;;; this requires much more precision (2048 bits)
-      (test (= (ceiling (* 1362725501650887306817/963592443113182178088 1362725501650887306817/963592443113182178088)) 
-	       (ceiling (* 3289910387877251662993/2326317944764069484905 3289910387877251662993/2326317944764069484905))) #f)
-
-      (test (= (ceiling (* 14398739476117879/10181446324101389 14398739476117879/10181446324101389 1.0)) 
-	       (ceiling (* 34761632124320657/24580185800219268 34761632124320657/24580185800219268))) #f)
-      (test (= (ceiling (* 16616132878186749607/11749380235262596085 16616132878186749607/11749380235262596085 1.0)) 
-	       (ceiling (* 40114893348711941777/28365513113449345692 40114893348711941777/28365513113449345692))) #f)
-      (test (= (ceiling (* 19175002942688032928599/13558774610046711780701 19175002942688032928599/13558774610046711780701 1.0)) 
-	       (ceiling (* 46292552162781456490001/32733777552734744709300 46292552162781456490001/32733777552734744709300))) #f)
-      (test (= (ceiling (* 202605639573839043/143263821649299118 202605639573839043/143263821649299118 1.0)) 
-	       (ceiling (* 489133282872437279/345869461223138161 489133282872437279/345869461223138161))) #f)
-      (test (= (ceiling (* 2850877693509864481/2015874949414289041 2850877693509864481/2015874949414289041 1.0)) 
-	       (ceiling (* 16616132878186749607/11749380235262596085 16616132878186749607/11749380235262596085))) #t)
-      (test (= (ceiling (* 34761632124320657/24580185800219268 34761632124320657/24580185800219268 1.0)) 
-	       (ceiling (* 202605639573839043/143263821649299118 202605639573839043/143263821649299118))) #t)
-      (test (= (ceiling (* 489133282872437279/345869461223138161 489133282872437279/345869461223138161 1.0)) 
-	       (ceiling (* 1180872205318713601/835002744095575440 1180872205318713601/835002744095575440))) #f)
-      (test (= (ceiling (* 564459384575477049359/399133058537705128729 564459384575477049359/399133058537705128729 1.0)) 
-	       (ceiling (* 1362725501650887306817/963592443113182178088 1362725501650887306817/963592443113182178088))) #f)
-      (test (= (ceiling (* 5964153172084899/4217293152016490 5964153172084899/4217293152016490 1.0)) 
-	       (ceiling (* 14398739476117879/10181446324101389 14398739476117879/10181446324101389))) #f)
-      (test (= (ceiling (* 96845919575610633161/68480406462161287469 96845919575610633161/68480406462161287469 1.0)) 
-	       (ceiling (* 564459384575477049359/399133058537705128729 564459384575477049359/399133058537705128729))) #t)
-      ))
+(when with-bignums
+  (num-test (ceiling (+ (expt 2.0 62) 512)) 4611686018427388416)
+  (num-test (ceiling (+ (expt 2.0 62) 513)) 4611686018427388417)
+  (num-test (ceiling (exact->inexact most-negative-fixnum)) most-negative-fixnum)
+  (test (ceiling (exact->inexact most-positive-fixnum)) most-positive-fixnum)
+  (num-test (ceiling 123456789012345678901234567890.1) 123456789012345678901234567891)
+  (num-test (ceiling -123456789012345678901234567890.1) -123456789012345678901234567890)
+  
+  (num-test (ceiling  9223372036854775806.7)  9223372036854775807)
+  (num-test (ceiling -9223372036854775807.9) -9223372036854775807)
+  (num-test (ceiling -1e19) -10000000000000000000)
+  (num-test (ceiling -1e32) -100000000000000000000000000000000)
+  (num-test (ceiling 100000000000000000000000000000000/3) 33333333333333333333333333333334)
+  (num-test (ceiling -100000000000000000000000000000000/3) -33333333333333333333333333333333)
+  (num-test (ceiling 200000000000000000000000000000000/3) 66666666666666666666666666666667)
+  (num-test (ceiling -200000000000000000000000000000000/3) -66666666666666666666666666666666)
+  
+  (test (= (ceiling (* 1180872205318713601/835002744095575440 1180872205318713601/835002744095575440 1.0)) 
+	   (ceiling (* 2850877693509864481/2015874949414289041 2850877693509864481/2015874949414289041))) #f)
+  
+  ;;      (test (= (ceiling (* 1362725501650887306817/963592443113182178088 1362725501650887306817/963592443113182178088 1.0)) 
+  ;;	       (ceiling (* 3289910387877251662993/2326317944764069484905 3289910387877251662993/2326317944764069484905))) #f)
+  ;; this requires much more precision (2048 bits)
+  (test (= (ceiling (* 1362725501650887306817/963592443113182178088 1362725501650887306817/963592443113182178088)) 
+	   (ceiling (* 3289910387877251662993/2326317944764069484905 3289910387877251662993/2326317944764069484905))) #f)
+  
+  (test (= (ceiling (* 14398739476117879/10181446324101389 14398739476117879/10181446324101389 1.0)) 
+	   (ceiling (* 34761632124320657/24580185800219268 34761632124320657/24580185800219268))) #f)
+  (test (= (ceiling (* 16616132878186749607/11749380235262596085 16616132878186749607/11749380235262596085 1.0)) 
+	   (ceiling (* 40114893348711941777/28365513113449345692 40114893348711941777/28365513113449345692))) #f)
+  (test (= (ceiling (* 19175002942688032928599/13558774610046711780701 19175002942688032928599/13558774610046711780701 1.0)) 
+	   (ceiling (* 46292552162781456490001/32733777552734744709300 46292552162781456490001/32733777552734744709300))) #f)
+  (test (= (ceiling (* 202605639573839043/143263821649299118 202605639573839043/143263821649299118 1.0)) 
+	   (ceiling (* 489133282872437279/345869461223138161 489133282872437279/345869461223138161))) #f)
+  (test (= (ceiling (* 2850877693509864481/2015874949414289041 2850877693509864481/2015874949414289041 1.0)) 
+	   (ceiling (* 16616132878186749607/11749380235262596085 16616132878186749607/11749380235262596085))) #t)
+  (test (= (ceiling (* 34761632124320657/24580185800219268 34761632124320657/24580185800219268 1.0)) 
+	   (ceiling (* 202605639573839043/143263821649299118 202605639573839043/143263821649299118))) #t)
+  (test (= (ceiling (* 489133282872437279/345869461223138161 489133282872437279/345869461223138161 1.0)) 
+	   (ceiling (* 1180872205318713601/835002744095575440 1180872205318713601/835002744095575440))) #f)
+  (test (= (ceiling (* 564459384575477049359/399133058537705128729 564459384575477049359/399133058537705128729 1.0)) 
+	   (ceiling (* 1362725501650887306817/963592443113182178088 1362725501650887306817/963592443113182178088))) #f)
+  (test (= (ceiling (* 5964153172084899/4217293152016490 5964153172084899/4217293152016490 1.0)) 
+	   (ceiling (* 14398739476117879/10181446324101389 14398739476117879/10181446324101389))) #f)
+  (test (= (ceiling (* 96845919575610633161/68480406462161287469 96845919575610633161/68480406462161287469 1.0)) 
+	   (ceiling (* 564459384575477049359/399133058537705128729 564459384575477049359/399133058537705128729))) #t))
 
 (let ((val1 (catch #t (lambda () (ceiling 0.0)) (lambda args 'error)))
       (val2 (catch #t (lambda () (ceiling -0.0)) (lambda args 'error))))
@@ -52386,43 +52267,41 @@ hi6: (string-app...
 (num-test (round 400000000000000000/800000000000000001) 0)
 (num-test (round 400000000000000000/799999999999999999) 1)
 
-(if with-bignums
-    (begin
-      (num-test (round (+ (expt 2.0 62) 512)) 4611686018427388416)
-      (num-test (round (+ (expt 2.0 62) 513)) 4611686018427388417)
-      (num-test (round (exact->inexact most-negative-fixnum)) most-negative-fixnum)
-      (test (round (exact->inexact most-positive-fixnum)) most-positive-fixnum)
-
-      (num-test (round -1e19) -10000000000000000000)
-      (num-test (round -1e32) -100000000000000000000000000000000)
-      (num-test (round 100000000000000000000000000000000/3) 33333333333333333333333333333333)
-      (num-test (round -100000000000000000000000000000000/3) -33333333333333333333333333333333)
-      (num-test (round 200000000000000000000000000000000/3) 66666666666666666666666666666667)
-      (num-test (round -200000000000000000000000000000000/3) -66666666666666666666666666666667)
-
-      (test (= (round (* 1180872205318713601/835002744095575440 1180872205318713601/835002744095575440 1.0)) 
-	       (round (* 2850877693509864481/2015874949414289041 2850877693509864481/2015874949414289041))) #t)
-      (test (= (round (* 1362725501650887306817/963592443113182178088 1362725501650887306817/963592443113182178088 1.0)) 
-	       (round (* 3289910387877251662993/2326317944764069484905 3289910387877251662993/2326317944764069484905))) #t)
-      (test (= (round (* 14398739476117879/10181446324101389 14398739476117879/10181446324101389 1.0)) 
-	       (round (* 34761632124320657/24580185800219268 34761632124320657/24580185800219268))) #t)
-      (test (= (round (* 16616132878186749607/11749380235262596085 16616132878186749607/11749380235262596085 1.0)) 
-	       (round (* 40114893348711941777/28365513113449345692 40114893348711941777/28365513113449345692))) #t)
-      (test (= (round (* 202605639573839043/143263821649299118 202605639573839043/143263821649299118 1.0)) 
-	       (round (* 489133282872437279/345869461223138161 489133282872437279/345869461223138161))) #t)
-      (test (= (round (* 2850877693509864481/2015874949414289041 2850877693509864481/2015874949414289041 1.0)) 
-	       (round (* 16616132878186749607/11749380235262596085 16616132878186749607/11749380235262596085))) #t)
-      (test (= (round (* 34761632124320657/24580185800219268 34761632124320657/24580185800219268 1.0)) 
-	       (round (* 202605639573839043/143263821649299118 202605639573839043/143263821649299118))) #t)
-      (test (= (round (* 40114893348711941777/28365513113449345692 40114893348711941777/28365513113449345692 1.0)) 
-	       (round (* 96845919575610633161/68480406462161287469 96845919575610633161/68480406462161287469))) #t)
-      (test (= (round (* 489133282872437279/345869461223138161 489133282872437279/345869461223138161 1.0)) 
-	       (round (* 1180872205318713601/835002744095575440 1180872205318713601/835002744095575440))) #t)
-      (test (= (round (* 5964153172084899/4217293152016490 5964153172084899/4217293152016490 1.0)) 
-	       (round (* 14398739476117879/10181446324101389 14398739476117879/10181446324101389))) #t)
-      (test (= (round (* 96845919575610633161/68480406462161287469 96845919575610633161/68480406462161287469 1.0)) 
-	       (round (* 564459384575477049359/399133058537705128729 564459384575477049359/399133058537705128729))) #t)
-      ))
+(when with-bignums
+  (num-test (round (+ (expt 2.0 62) 512)) 4611686018427388416)
+  (num-test (round (+ (expt 2.0 62) 513)) 4611686018427388417)
+  (num-test (round (exact->inexact most-negative-fixnum)) most-negative-fixnum)
+  (test (round (exact->inexact most-positive-fixnum)) most-positive-fixnum)
+  
+  (num-test (round -1e19) -10000000000000000000)
+  (num-test (round -1e32) -100000000000000000000000000000000)
+  (num-test (round 100000000000000000000000000000000/3) 33333333333333333333333333333333)
+  (num-test (round -100000000000000000000000000000000/3) -33333333333333333333333333333333)
+  (num-test (round 200000000000000000000000000000000/3) 66666666666666666666666666666667)
+  (num-test (round -200000000000000000000000000000000/3) -66666666666666666666666666666667)
+  
+  (test (= (round (* 1180872205318713601/835002744095575440 1180872205318713601/835002744095575440 1.0)) 
+	   (round (* 2850877693509864481/2015874949414289041 2850877693509864481/2015874949414289041))) #t)
+  (test (= (round (* 1362725501650887306817/963592443113182178088 1362725501650887306817/963592443113182178088 1.0)) 
+	   (round (* 3289910387877251662993/2326317944764069484905 3289910387877251662993/2326317944764069484905))) #t)
+  (test (= (round (* 14398739476117879/10181446324101389 14398739476117879/10181446324101389 1.0)) 
+	   (round (* 34761632124320657/24580185800219268 34761632124320657/24580185800219268))) #t)
+  (test (= (round (* 16616132878186749607/11749380235262596085 16616132878186749607/11749380235262596085 1.0)) 
+	   (round (* 40114893348711941777/28365513113449345692 40114893348711941777/28365513113449345692))) #t)
+  (test (= (round (* 202605639573839043/143263821649299118 202605639573839043/143263821649299118 1.0)) 
+	   (round (* 489133282872437279/345869461223138161 489133282872437279/345869461223138161))) #t)
+  (test (= (round (* 2850877693509864481/2015874949414289041 2850877693509864481/2015874949414289041 1.0)) 
+	   (round (* 16616132878186749607/11749380235262596085 16616132878186749607/11749380235262596085))) #t)
+  (test (= (round (* 34761632124320657/24580185800219268 34761632124320657/24580185800219268 1.0)) 
+	   (round (* 202605639573839043/143263821649299118 202605639573839043/143263821649299118))) #t)
+  (test (= (round (* 40114893348711941777/28365513113449345692 40114893348711941777/28365513113449345692 1.0)) 
+	   (round (* 96845919575610633161/68480406462161287469 96845919575610633161/68480406462161287469))) #t)
+  (test (= (round (* 489133282872437279/345869461223138161 489133282872437279/345869461223138161 1.0)) 
+	   (round (* 1180872205318713601/835002744095575440 1180872205318713601/835002744095575440))) #t)
+  (test (= (round (* 5964153172084899/4217293152016490 5964153172084899/4217293152016490 1.0)) 
+	   (round (* 14398739476117879/10181446324101389 14398739476117879/10181446324101389))) #t)
+  (test (= (round (* 96845919575610633161/68480406462161287469 96845919575610633161/68480406462161287469 1.0)) 
+	   (round (* 564459384575477049359/399133058537705128729 564459384575477049359/399133058537705128729))) #t))
 
 (test (equal? (let ((vals ())) 
 		(do ((k 1/3 (+ k 1/3))) ((> k 2) (reverse vals)) 
@@ -53054,374 +52933,372 @@ hi6: (string-app...
 (if (not with-bignums)
     (num-test (modulo 3/2 most-negative-fixnum) 'error))
 
-(if with-bignums
-    (begin
-      (num-test (modulo 3/2 most-negative-fixnum) -18446744073709551613/2)
-      (num-test (modulo (+ 2 (* 3 499127 495037 490459 468803)) (* 499127 495037 490459 468803)) 2)
-      (num-test (modulo -9223372036854775808 5.551115123125783999999999999999999999984E-17) 3.258027528318940824192395666614174842834E-17)
-      (num-test (modulo 12345678901234567890 12345678901234567) 890)
-      (num-test (modulo 12345678901234567890 3123) 1071)
-      (num-test (modulo 460683358924445799142 518) 0)
-      (num-test (modulo 113021475230160 74635) 67850)
-      (num-test (modulo 74228340534140364 363909) 357201)
-      (num-test (modulo 69242022961311060 48305942) 17170072)
-      (num-test (modulo 286967952870300 2273388) 2067312)
-      (num-test (modulo 302822258393413362492399 29) 0)
-      (num-test (modulo 10491072879382200 133) 0)
-      (num-test (modulo 167206737423420464 609) 539)
-      (num-test (modulo 72212583812867784 4888799) 1883149)
-      (num-test (modulo 4170116471639397292390 1798025) 1078815)
-      (num-test (modulo 83910330283522050 35224) 9282)
-      (num-test (modulo 275373383775647594346 66884092) 19813626)
-      (num-test (modulo 14656657495570695990 37) 7)
-      (num-test (modulo 95470974177676509874110 1219) 0)
-      (num-test (modulo 619506317623001424 5957) 3304)
-      (num-test (modulo 11268171656665155960 9858) 372)
-      (num-test (modulo 6172860073826160 5167394) 906830)
-      (num-test (modulo 26457493095663264 1491412) 1103724)
-      (num-test (modulo 8481384175941103284 313836405) 93136149)
-      (num-test (modulo 60356595775749199080 176098815946) 156894620552)
-      (num-test (modulo 611492274956002440 37) 0)
-      (num-test (modulo 164614611843685080 1711) 177)
-      (num-test (modulo 93177516542679418720 62197) 37333)
-      (num-test (modulo 938959746797519770440 127558) 0)
-      (num-test (modulo 137670522526899326250 200) 50)
-      (num-test (modulo 852063402206742880 41643478) 23771242)
-      (num-test (modulo 55947291202307909360 188546228) 125937196)
-      (num-test (modulo 12877971214039423262680 9832253830) 8120608300)
-      (num-test (modulo 192158415774146059920 53) 0)
-      (num-test (modulo 902814024155808960 1829) 434)
-      (num-test (modulo 1265864304573235487120 4921) 1295)
-      (num-test (modulo 14172662463567665400 95817) 38076)
-      (num-test (modulo 32171996211745702482324 2368555) 459984)
-      (num-test (modulo 971324258606045826300 4576748) 342908)
-      (num-test (modulo 2400649320046378377000 1704690) 165540)
-      (num-test (modulo 953233796456393760 18342152493) 178603257)
-      (num-test (modulo 28906333140964843080 236206740) 140736420)
-      (num-test (modulo 775403093708557121609032 41) 0)
-      (num-test (modulo 12587009808135760402860 2491) 1410)
-      (num-test (modulo 510685807527370566909720 76) 44)
-      (num-test (modulo 9842598153710524682146590 10089) 3363)
-      (num-test (modulo 44936631038618189620242012 30740) 24592)
-      (num-test (modulo 934589372977008750144 373650) 202194)
-      (num-test (modulo 33027125273398900134069150 840577803) 0)
-      (num-test (modulo 4428219127938822420288 1695783782) 1071746452)
-      (num-test (modulo 29316428815807608915440 560764380) 415244720)
-      (num-test (modulo 1364397376360544429904 19) 0)
-      (num-test (modulo 4991450791697293128313385277 329) 133)
-      (num-test (modulo 75448279792981695149550 3009) 2385)
-      (num-test (modulo 181031604499464166188731133 3364) 1641)
-      (num-test (modulo 405831142402606479845286 2746214) 1938504)
-      (num-test (modulo 89170366469003867207160 25337230) 23157930)
-      (num-test (modulo 13523725766340619200 1490114045) 621483730)
-      (num-test (modulo 104705939487154940255412 192200052) 48253032)
-      (num-test (modulo 7232591421499800642000 16584679460) 4668328860)
-      (num-test (modulo 14043796716396386984750160 33382708236) 717907704)
-      (num-test (modulo 13894638105872256412416 23) 0)
-      (num-test (modulo 147611447155643499428400 118) 68)
-      (num-test (modulo 13356594697070649024 4558) 1802)
-      (num-test (modulo 15089731174706036171537760 90) 60)
-      (num-test (modulo 307230141273924828960 1971507) 1430805)
-      (num-test (modulo 2582563944548247741930009096 22873474) 3518996)
-      (num-test (modulo 1074296602920111687342072 146235518) 73672588)
-      (num-test (modulo 774058642832724262993980 407557010) 187324340)
-      (num-test (modulo 291091930213008490369569480 13412544348) 10762778160)
-      (num-test (modulo 2089068565149831833568 7302038455228) 470177842332)
-      (num-test (modulo 1064437567441124038217970656 5) 1)
-      (num-test (modulo 142557826750459447787460 1333) 527)
-      (num-test (modulo 311779340580033594160200 23693) 0)
-      (num-test (modulo 29314187023691666530559664 110143) 0)
-      (num-test (modulo 222003853016244177637944900 857463) 0)
-      (num-test (modulo 6247776111945111006243552 77976501) 12576855)
-      (num-test (modulo 1140058514761397155259712 5530338) 502758)
-      (num-test (modulo 580962736822969724865449808 55686036) 13545252)
-      (num-test (modulo 4100502596989506786787500 45333475410) 13925822190)
-      (num-test (modulo 1497378750311599979536944 262630276090) 236984817664)
-      (num-test (modulo 105637634198318524045536 2633013240) 452166936)
-      (num-test (modulo 11415822547029425161364106595632 7) 3)
-      (num-test (modulo 198305933339312916107438448 177) 15)
-      (num-test (modulo 3127415425979879537134790928 3335) 2668)
-      (num-test (modulo 589703503861221139260034914750 13209) 4641)
-      (num-test (modulo 3108579252052448504121792 14322) 12936)
-      (num-test (modulo 636976201153021006473464400 66264077) 55801328)
-      (num-test (modulo 9544425315508129998909285900 1488396) 850512)
-      (num-test (modulo 458100280193857502802977376 260747103934) 17656078468)
-      (num-test (modulo 114208186302155358124900650 22076867505) 6602131305)
-      (num-test (modulo 90107067439719108194114160 28566806069714) 24735629596458)
-      (num-test (modulo 2976572787365723002218245484 110104803958578) 49695655366500)
-      (num-test (modulo 53453375725613238735360 17) 7)
-      (num-test (modulo 888822833524306124874229800 106) 0)
-      (num-test (modulo 21275338550698297089687698855820 3021) 0)
-      (num-test (modulo 417525245705449941528380320750068 5828) 0)
-      (num-test (modulo 1954871230146370370001829871352 22765249) 0)
-      (num-test (modulo 903057827710908645847577520 648545995) 631903275)
-      (num-test (modulo 6002846634833433581621040 28493572159) 8965596645)
-      (num-test (modulo 26428903214964558277189300080 100428856) 20778384)
-      (num-test (modulo 470486531607553676511206181180 28495896) 23264436)
-      (num-test (modulo 483599554429365539310928369206620 5577334078910) 3472679709510)
-      (num-test (modulo 134511400157705323668887400 1285071093558916) 114037248705380)
-      (num-test (modulo 25897125642468049125349982599216 1183846707540) 999692775256)
-      (num-test (modulo 1118034209930460291955200 3) 0)
-      (num-test (modulo 16297594064835666104344589410644 413) 0)
-      (num-test (modulo 536762539932642345554192060100 1378) 0)
-      (num-test (modulo 933250179448203335817687635834340 58029) 55821)
-      (num-test (modulo 65573457048202714607131200 486115) 32895)
-      (num-test (modulo 85664559165674439863772868932 322014) 0)
-      (num-test (modulo 7232817686074320060728552759760 11307940) 0)
-      (num-test (modulo 78400098291720425971762131120 5646921093) 0)
-      (num-test (modulo 345445746644065669842240 19727989065) 1869036660)
-      (num-test (modulo 627854758484491743169777558200 750371721805653) 32673867918264)
-      (num-test (modulo 788233263079483492974876830792850 7170146100) 1202847750)
-      (num-test (modulo 18378856389802641496737518160 6247594493140) 1385698158460)
-      (num-test (modulo 9620902642431357480148667659080 59) 0)
-      (num-test (modulo 16008524600631853118144316000 629) 620)
-      (num-test (modulo 4342138447708715023205684275423920 53041) 5133)
-      (num-test (modulo 2431833161592653384508687244500 47541) 0)
-      (num-test (modulo 39424620224103957589082132160 1671734) 0)
-      (num-test (modulo 652830233576052788654372406432 552231327) 231166602)
-      (num-test (modulo 6892963340916411083970414000 3662431431) 935088876)
-      (num-test (modulo 29102758215190063506219566460000 10565720) 0)
-      (num-test (modulo 21253900104556838003127171970777418412 1182797770) 1026303562)
-      (num-test (modulo 3964268932242030284914943132662620 21244177854110) 13576270590290)
-      (num-test (modulo 6070388091189460078138338240 40809131994181213) 6560348180153677)
-      (num-test (modulo 9685989954133695108793384134000 964113514382876) 108668324726468)
-      (num-test (modulo 56468122001858834917195045500 429400787158167902) 411466139739284938)
-      (num-test (modulo 18843408973202596901221568364900 47) 0)
-      (num-test (modulo 7800980538292163259967028613764250 6) 0)
-      (num-test (modulo 270433907726619219545089642715200 3422) 3132)
-      (num-test (modulo 45771666919597903071546708768 2342359) 1698374)
-      (num-test (modulo 47198294949461301503537593835384892 314502) 130548)
-      (num-test (modulo 3165335901519110207943908102359110 14953473) 10646010)
-      (num-test (modulo 189219585097956261544520863361400 35605794) 0)
-      (num-test (modulo 38532137569034426600955256933810890813 1341358608707) 100754920326)
-      (num-test (modulo 1396277868664090735481380981225896 312520860) 187512516)
-      (num-test (modulo 864038349500762576564773759109700 714136202724) 614489290716)
-      (num-test (modulo 12514185871591242579049167322464 10706997440178) 749897068284)
-      (num-test (modulo 1981802660405609330969478067056636 33312289752) 27681419124)
-      (num-test (modulo 979313401024175219420658240 125278417383795) 92954907481995)
-      (num-test (modulo 4074026154111369481048033354344 29) 0)
-      (num-test (modulo 599666571180604695702511920885005100 129) 0)
-      (num-test (modulo 5703263639326551702474610108800 1978) 0)
-      (num-test (modulo 134137932950214683609064669163440 190619) 115401)
-      (num-test (modulo 344735091370772631136645455600 1048985) 0)
-      (num-test (modulo 6759508339299085316106145385400 4969610) 1763410)
-      (num-test (modulo 700334422308861928135313594400 228529587) 194401350)
-      (num-test (modulo 10277417891211405957191810814198480 2516552038) 1372664748)
-      (num-test (modulo 490099971577877358878082782880 9282588354) 7843699422)
-      (num-test (modulo 1954558750269048828645390249600 5575829490) 2295929790)
-      (num-test (modulo 1360588454560018295496656378989200 7868178296420) 3049105010900)
-      (num-test (modulo 4337552841738910859248770564912480 17722936528737830) 1203686858124400)
-      (num-test (modulo 215913068853045803981566931862756 7009479781500) 1803638466756)
-      (num-test (modulo 44890707654126305940250882318870941900 18329973480720) 7637488950300)
-      (num-test (modulo 28579720891831355496720656680837200 3) 0)
-      (num-test (modulo 29332703209780553199747293473184160 1711) 551)
-      (num-test (modulo 3648979393315349438003046604440000 186) 0)
-      (num-test (modulo 1159760236369472473822068077011807878780 25714) 0)
-      (num-test (modulo 158186359726371025615685433600 31395) 17940)
-      (num-test (modulo 331091450443070201468559735703944 28424) 0)
-      (num-test (modulo 9734443639363161342241553023288200 1961348207) 1708271019)
-      (num-test (modulo 701896612128009033011419603540080 51300) 47880)
-      (num-test (modulo 86169288128517384618860929451245320 5032162527446) 925322642976)
-      (num-test (modulo 64828800524794653881296183831741773624 4645294472) 311380888)
-      (num-test (modulo 49068907706533938991402184550000 268183371225) 262983139650)
-      (num-test (modulo 1708602980304476478496020543612288 4083128544) 131713824)
-      (num-test (modulo 17608179287674151740172985536160 980399424528) 962337263616)
-      (num-test (modulo 43194437079731225735521919644800 178119261126453036) 70796157206439912)
-      (num-test (modulo 817555977437791699707628651571149344 59) 0)
-      (num-test (modulo 19062946261334997559157066059536 533) 287)
-      (num-test (modulo 6533849124840489114353090499099000 598) 130)
-      (num-test (modulo 427663965127849896842400211428345149025 234) 117)
-      (num-test (modulo 352395507261316174741530450071590608 154734) 26418)
-      (num-test (modulo 391579493632653867660919800000 9221565) 1166160)
-      (num-test (modulo 2618798923882923048581401148931738000 681876) 419616)
-      (num-test (modulo 174712575449141140214591110997980800 233260339838) 37341839152)
-      (num-test (modulo 88598141227372995032227898284800 1929763976) 1797148024)
-      (num-test (modulo 210110141308655567793064872567302676320 720390430628) 523536832148)
-      (num-test (modulo 668425085137718599277317523827419000 19898594339442) 17330916357006)
-      (num-test (modulo 89533471731097208414073727453200 4173840860670546) 1611748174428756)
-      (num-test (modulo 113987439157802480362236410675251462620 21548296273949445) 20414175417425790)
-      (num-test (modulo 48129335993995093308894209644253760 1009442888504820) 947047755795120)
-      (num-test (modulo 3497836376962291922989777163497680 138736290091634664) 23686683674181528)
-      (num-test (modulo 11371924962562208722154622794880 3) 0)
-      (num-test (modulo 9451631862008339290824315653784000 703) 171)
-      (num-test (modulo 16869347753325980368094612370435598560 806) 0)
-      (num-test (modulo 4701845646467068759127854100132739552 3198) 504)
-      (num-test (modulo 1029865193584911347147121232800485280 1005771) 24531)
-      (num-test (modulo 10657125216930337802109861408000 2415138) 2210802)
-      (num-test (modulo 14382707743772734802155022983680 247913634) 7969170)
-      (num-test (modulo 60134748581470366378101904574533857248 54828228) 9878960)
-      (num-test (modulo 214830664120540781167218700750596000 505665810) 223433730)
-      (num-test (modulo 48933004118344447687599112101802800 6263883444) 849340128)
-      (num-test (modulo 5498670161558110606435630054129739400 262699548132) 255270333864)
-      (num-test (modulo 35941673649029587182509620977230062500 25622409466332) 7911836749404)
-      (num-test (modulo 1592802602494326390643157055239113248 736377633395508) 260180363298804)
-      (num-test (modulo 4043816553144402557587143272522043028314 5011466158645380) 1781651263267134)
-      (num-test (modulo 7171921165220830707276631005512550 1765284492289500) 1588756043060550)
-      (num-test (modulo 2402189359210218692854826119405968750 23) 22)
-      (num-test (modulo 26149068753160488131648964110990162400 1147) 868)
-      (num-test (modulo 556184059176863945810376239306506311552 4089) 0)
-      (num-test (modulo 67871323087036310486238021899264593800 13395) 0)
-      (num-test (modulo 12750401179065252879838440979200 7177173) 0)
-      (num-test (modulo 278110245000092733617125071646080 17748) 0)
-      (num-test (modulo 13408203364935178481017292708752000 50619404) 13680920)
-      (num-test (modulo 124271828931784534297423756437875067000 8839796595) 1143112215)
-      (num-test (modulo 11893442806922081156953529319100769836176 972789007267) 210492262442)
-      (num-test (modulo 352581052555284857902053030133344488264100 923561430099) 488944286523)
-      (num-test (modulo 6108908012714804315575319947340956346976 31944833628092) 28158060036920)
-      (num-test (modulo 67475643422116264959949054821520228800 22515435540) 8157766500)
-      (num-test (modulo 470601888939348535946408832 5135943991060962937) 4475576385383445628)
-      (num-test (modulo 110759232155568113345545635903016614000 30159198663300) 0)
-      (num-test (modulo 146100914712024458707469587112300146320 26868173101560) 24880219882560)
-      (num-test (modulo 12173192708601511002951184416658091200 466645866900785428350) 288583529752854077950)
-      (num-test (modulo 5784684831478746253226687170890240 13) 0)
-      (num-test (modulo 35042260655085685815432622412891903767500 667) 0)
-      (num-test (modulo 2903871349270676921837488659419545120987500 530) 0)
-      (num-test (modulo 630123969240840167098426767919876491188000 77691) 51794)
-      (num-test (modulo 33192703032132982013024959634241667249800 4684718) 4051648)
-      (num-test (modulo 4731525733734729472809717145544850000 90706055) 0)
-      (num-test (modulo 214011009809686092216200126896120006823232 50400042) 45006552)
-      (num-test (modulo 5854250735296111435541950856160000 24357777002) 2121729090)
-      (num-test (modulo 35348208247612761916374738259136697649608 156806713508) 8948839908)
-      (num-test (modulo 612558317420289618714916924536521515286100 2377007388) 375316956)
-      (num-test (modulo 181857299802925368992522029882739454720 21606337755618) 0)
-      (num-test (modulo 4731635341196946327443020710970699860000 58092526675092) 44387995860156)
-      (num-test (modulo 22081740554432638182773611616166588288192 61419768950540) 49135815160432)
-      (num-test (modulo 125627844706077784535328068665849312000 30482033400) 19356933400)
-      (num-test (modulo 1225504716872819103560254268197955520 510813364186125) 233201076344145)
-      (num-test (modulo 5209185280578468690281136425214396728400 2327880739319250103818) 518788605323339989776)
-      (num-test (modulo 230425011604643097634961294406535254400 31) 0)
-      (num-test (modulo 13222608481676137093434201748083744000 893) 0)
-      (num-test (modulo 13348198818240350339028224064019716678960 651) 117)
-      (num-test (modulo 7236172685650198160266777676385295337308176 23426) 14144)
-      (num-test (modulo 756264162229440667711265021676693350760 28899) 0)
-      (num-test (modulo 40915062421030872924283823601517905600 36345062) 0)
-      (num-test (modulo 1174590526522170015825602834292923520 4991486258) 1554170940)
-      (num-test (modulo 2891892862328155581145450075391651333218020 35138529818) 0)
-      (num-test (modulo 1993335355070485984559797658834121810059400 535644500) 433741400)
-      (num-test (modulo 6324295450641455215591954662726515160 367472693133) 134441229195)
-      (num-test (modulo 6576388154814679090356195121505112000 15901952377630) 3827367890390)
-      (num-test (modulo 117828556355409428513249595788296238400 565992666495795) 106570976318730)
-      (num-test (modulo 592831716700236607285748949860604000 139641978135660) 133123065151440)
-      (num-test (modulo 106766839071170184723986891291602032000 1584924526628112) 785519540106048)
-      (num-test (modulo 21677148858122146832326483307664860804937400 247815827510760) 183567279637600)
-      (num-test (modulo 14079549844487257384278196623697173813600 160967604100961853832) 160644118308938243512)
-      (num-test (modulo 2696480372014145687016224877963234647656980 2219319031453896088860) 1749775073012430835800)
-      (num-test (modulo 13545431257849875145060979241270859310160 29) 0)
-      (num-test (modulo 137485634482479300158725199474868559498162500 329) 188)
-      (num-test (modulo 529252417743761759027305009539254400 3243) 0)
-      (num-test (modulo 133897419738958073238580385894509887148800 330455) 0)
-      (num-test (modulo 3896215507210178905244623173635584334007288624 1005238) 0)
-      (num-test (modulo 17654511984514518592175290794029073043800 1060530) 511980)
-      (num-test (modulo 16470780256339082688310222474503880382858400 913836) 0)
-      (num-test (modulo 57267105834722825210001789897760395576000 2958974018) 2329405078)
-      (num-test (modulo 521977833444747522001426544601807810543216 1066521690) 625031316)
-      (num-test (modulo 1699559962174727325529414216960251941390400 25883611479) 16915574049)
-      (num-test (modulo 10654036597801063717295948399628964800 317449894126222) 116812646389120)
-      (num-test (modulo 381902381115592200811990304316262139150724960 4640335440216) 0)
-      (num-test (modulo 425968526187959807410151867411382902838703889232 1882826315615025) 1191718303295157)
-      (num-test (modulo 174609167728518272531601927200939868792000 1712923655178450) 541648883945400)
-      (num-test (modulo 3325168366561555458817274989681612518000 1699726139891780) 1568977975284720)
-      (num-test (modulo 11429650426242566426919762928176000 7414967839104) 1771142792832)
-      (num-test (modulo 2104794191230056678355480848036599377844400 16946684823025584) 9111120872594400)
-      (num-test (modulo 11894522530167763519415142641640874994880 7) 0)
-      (num-test (modulo 5906329981690378696996009087718418780000 185) 0)
-      (num-test (modulo 3056294774178096513474941936265025440000 658) 0)
-      (num-test (modulo 10491907660880423349353457742257185280 123369) 0)
-      (num-test (modulo 673239479595593149777212259021965839229225628776 15470) 12376)
-      (num-test (modulo 1506608574369860432616005754109397877696 1474070) 1179256)
-      (num-test (modulo 4849814041048623250005708880379694793905000 2172220582) 0)
-      (num-test (modulo 21154344928580705924176101470087564940000 5023204186) 0)
-      (num-test (modulo 346448039376394135288065831861806112294000 776147372) 25037012)
-      (num-test (modulo 2339009760844587560470606952218133142645504 194201967414) 78730527330)
-      (num-test (modulo 2242982161480922111384667548175169152 21419749763490) 17054708275722)
-      (num-test (modulo 4717315265246821759830981157482117120 45609714193992) 45557259088536)
-      (num-test (modulo 16628111321698075419789804224660024289936 4643626415880804) 3203755070835528)
-      (num-test (modulo 115557531507210992033160068979962880 88406536976058378) 13997397131802546)
-      (num-test (modulo 21059511907771200155093927745003762840000 180298981648603620) 88715511648941760)
-      (num-test (modulo 2124921015128697258800067298086064536000 2282525112298516782924) 1050493715522523120240)
-      (num-test (modulo 16015671538624533047089928322348864000 49817926936366875) 31511531988217125)
-      (num-test (modulo 166517667014186289390514558017250969134523800 43413708621878528404068) 4443969735426840626952)
-      (num-test (modulo 2780796292789128359666429021610464935722000 47) 0)
-      (num-test (modulo 21297913114430245153455383503409684916193317960 58) 0)
-      (num-test (modulo 1516745257039775143654568869485529015398000 6293) 0)
-      (num-test (modulo 8447692776411453120390905608381515479808 2030) 518)
-      (num-test (modulo 958876033949638283967045624731391031146081240 9834415) 9667730)
-      (num-test (modulo 4731349833403602529573388098680617532624192 14868) 0)
-      (num-test (modulo 6375001358038970462026761077388061675464000 430513678) 0)
-      (num-test (modulo 254088526608579040642428151389718385042344800 4799428101) 294233472)
-      (num-test (modulo 21140490542258031885408065086507444825621023648 164778747198) 63851269926)
-      (num-test (modulo 34214837305812460226811046733375808000 4312787868) 2681970660)
-      (num-test (modulo 11450197571956515037245443769386989035470896800 75585518430279) 69771247781796)
-      (num-test (modulo 1211397915863796187148880114197307052796506376580 538601201880) 128795939580)
-      (num-test (modulo 5454139401260819402160859765169199667337088 30452838731872) 22996976784800)
-      (num-test (modulo 744935981632690384026127091216926530879171660 1032747922358460) 630836297950320)
-      (num-test (modulo 324574326062026951443376280715122947502400 103751223626207988025) 7552030128655111125)
-      (num-test (modulo 15272163751269260921486082393684080908800 6484309049057400) 4436632507249800)
-      (num-test (modulo 386527546655781220813671331401971490218262720 3481571963427119100) 243571263764902920)
-      (num-test (modulo 3189682029126430413458911948222943640000 6724598925622907976570) 2607219061590696572250)
-      (num-test (modulo 709403542855323660533377490060722241678400 7) 0)
-      (num-test (modulo 139803787314578422635552652090095842837312147438904 123) 0)
-      (num-test (modulo 171985399350431759069945935900956183322827030835560 18241) 0)
-      (num-test (modulo 33090522521924986387051477884789600000 26187) 25578)
-      (num-test (modulo 1733723010009930088165729903139785699319986530 372945) 23805)
-      (num-test (modulo 56408303994570817306318494803635460247582000 5761730) 3307860)
-      (num-test (modulo 25845509336769185412951159262424903513866295760 64371378271) 0)
-      (num-test (modulo 624970361450506104794172455132584603069611058500 108222780) 0)
-      (num-test (modulo 82823962548382643645255524843049561752323600 135325929794) 123023572540)
-      (num-test (modulo 170620453449723034746079844571491973300000 9460614789626) 4845680745906)
-      (num-test (modulo 125144597811313015929871740675462711600000 12764411911636) 5714078712188)
-      (num-test (modulo 257193319319332344553297882967977761077115600 6510126541380) 1111485019260)
-      (num-test (modulo 879624546681838385457288074812140664728758550 10045784120501316) 5303606126868522)
-      (num-test (modulo 18300938860777100857669855248554588369659200 118088077425391892) 94617840861501464)
-      (num-test (modulo 8394780474625841647581984803260010511075000 746584618179400) 91432008031000)
-      (num-test (modulo 146802334713757872619395774222116859916800 718775571956687400) 62390745247132200)
-      (num-test (modulo 240155883351717999820072393833707008014911556000 1350921510529331832) 1096988895768179232)
-      (num-test (modulo 918942437243241528855354123800826649596480 74343962238703160850) 1608809218075839780)
-      (num-test (modulo 1361069299753299783990135442290762165844800 8281085446358585640) 7375208194228544280)
-
-      (num-test (modulo 1/9223372036854775807 -1/3) -9223372036854775804/27670116110564327421)
-      (num-test (modulo -1/9223372036854775807 1/3) 9223372036854775804/27670116110564327421)
-      (num-test (modulo 9223372036854775807 1/3) 0)
-      (num-test (modulo (/ (expt 3 10)) (/ (expt 2 61))) 1991/136157723851059414171648)
-      (num-test (modulo (/ (expt 3 20)) (/ (expt 2 61))) 487228559/2009994358920301836855410688)
-      (num-test (modulo -2/9223372036854775807 2/3) 18446744073709551608/27670116110564327421)
-      (num-test (modulo 2/9223372036854775807 -2/3) -18446744073709551608/27670116110564327421)
-      (num-test (modulo 57473596068/6659027209 318281039/225058681) 218279130532125402/1498671880400651329)
-      (num-test (modulo 25808688679/9809721694 1855077841/1311738121) 15656443452349049505/12867785902420496974)
-      (num-test (modulo 17026679261/10439860591 4478554083/3166815962) 7164879387815321029/33061117160633553542)
-      (num-test (modulo 480544481373/103768467013 10812186007/7645370045) 308048482161795610512/793348329316760825585)
-      (num-test (modulo 137528045312/217976794617 63018038201/44560482149) 137528045312/217976794617)
-      (num-test (modulo 1591258440050/975675645481 152139002499/107578520350) 22746909008980882960481/104961742282377144038350)
-      (num-test (modulo 6721373040371/1193652440098 367296043199/259717522849) 430386901580727488556473/310012454884916918799202)
-      (num-test (modulo 56850567176297/8573543875303 886731088897/627013566048) 1309091318011705591580273/1343932079730680866628136)
-      (num-test (modulo 176638380405175/18340740190704 5168247530883/3654502875938) 38394278980353599950554679/33513143886879715286440176)
-      (num-test (modulo 551230231989018/83130157078217 12477253282759/8822750406821) 714422652331325234782048966/733436627180932669467318157)
-      (num-test (modulo 1360510821127147/517121682660006 30122754096401/21300003689580) 2233626037506212134611298309/1835782291436657618117489580)
-      (num-test (modulo 5849200401628882/766512153894657 175568277047523/124145519261542) 53275930148683942294955132989/95159049365535186345899381094)
-      (num-test (modulo 15914407453568626/6048967074079039 423859315570607/299713796309065) 2205856429990054302964180188017/1812958885520765991472282188535)
-      (num-test (modulo 25997605614346611/9881527843552324 1023286908188737/723573111879672) 127934269420347558776141264953/105147174292423231311078293496)
-      (num-test (modulo 1528546195606366451/177100989030047175 5964153172084899/4217293152016490) 10878285025401489444908608411504/74688678825176546867355107791575)
-      (num-test (modulo 1991152086194052263/206745572560704147 14398739476117879/10181446324101389) 2411554265852820467970218680028029/2104968949772418231181062860760183)
-      (num-test (modulo 1657796840421716313/630118245525664765 34761632124320657/24580185800219268) 18845015710796719738302110345968279/15488423551129023359673258461692020)
-      (num-test (modulo 30769194397037159797/5464318637170278738 202605639573839043/143263821649299118) 271701765358086704077048080811413961/195709792667626007806640474599388271)
-      (num-test (modulo 63477669249275110720/7354673373747273033 489133282872437279/345869461223138161) 370494072414302426447989361648602678/2543756917250129165517177396348512313)
-      (num-test (modulo 275806591309589148297/36143248623210700400 1180872205318713601/835002744095575440) 9600268203288030825290513354903593/17147563511880433985428780967862600)
-      
-      (num-test (modulo 1e19 10) 0.0)
-      (num-test (modulo .1e20 10) 0.0)
-      (num-test (modulo 1e20 10) 0.0)
-      (num-test (modulo 1e21 10) 0.0)
-      (num-test (modulo 1e19 -1) 0.0)
-      (num-test (modulo 1e19 1) 0.0)
-      (num-test (modulo .1e20 1) 0.0)
-      (num-test (modulo 1e20 1) 0.0)
-      (num-test (modulo 10000000000000000000 1) 0)
-      (num-test (modulo 100000000000000000000 1) 0)
-      (num-test (modulo 10000000000000000000 10) 0)
-      (num-test (modulo 100000000000000000000 10) 0)
-
-      (test (modulo 1361069299753299783990135442290762165844800+i 8281085446358585640) 'error)
-      ))
+(when with-bignums
+  (num-test (modulo 3/2 most-negative-fixnum) -18446744073709551613/2)
+  (num-test (modulo (+ 2 (* 3 499127 495037 490459 468803)) (* 499127 495037 490459 468803)) 2)
+  (num-test (modulo -9223372036854775808 5.551115123125783999999999999999999999984E-17) 3.258027528318940824192395666614174842834E-17)
+  (num-test (modulo 12345678901234567890 12345678901234567) 890)
+  (num-test (modulo 12345678901234567890 3123) 1071)
+  (num-test (modulo 460683358924445799142 518) 0)
+  (num-test (modulo 113021475230160 74635) 67850)
+  (num-test (modulo 74228340534140364 363909) 357201)
+  (num-test (modulo 69242022961311060 48305942) 17170072)
+  (num-test (modulo 286967952870300 2273388) 2067312)
+  (num-test (modulo 302822258393413362492399 29) 0)
+  (num-test (modulo 10491072879382200 133) 0)
+  (num-test (modulo 167206737423420464 609) 539)
+  (num-test (modulo 72212583812867784 4888799) 1883149)
+  (num-test (modulo 4170116471639397292390 1798025) 1078815)
+  (num-test (modulo 83910330283522050 35224) 9282)
+  (num-test (modulo 275373383775647594346 66884092) 19813626)
+  (num-test (modulo 14656657495570695990 37) 7)
+  (num-test (modulo 95470974177676509874110 1219) 0)
+  (num-test (modulo 619506317623001424 5957) 3304)
+  (num-test (modulo 11268171656665155960 9858) 372)
+  (num-test (modulo 6172860073826160 5167394) 906830)
+  (num-test (modulo 26457493095663264 1491412) 1103724)
+  (num-test (modulo 8481384175941103284 313836405) 93136149)
+  (num-test (modulo 60356595775749199080 176098815946) 156894620552)
+  (num-test (modulo 611492274956002440 37) 0)
+  (num-test (modulo 164614611843685080 1711) 177)
+  (num-test (modulo 93177516542679418720 62197) 37333)
+  (num-test (modulo 938959746797519770440 127558) 0)
+  (num-test (modulo 137670522526899326250 200) 50)
+  (num-test (modulo 852063402206742880 41643478) 23771242)
+  (num-test (modulo 55947291202307909360 188546228) 125937196)
+  (num-test (modulo 12877971214039423262680 9832253830) 8120608300)
+  (num-test (modulo 192158415774146059920 53) 0)
+  (num-test (modulo 902814024155808960 1829) 434)
+  (num-test (modulo 1265864304573235487120 4921) 1295)
+  (num-test (modulo 14172662463567665400 95817) 38076)
+  (num-test (modulo 32171996211745702482324 2368555) 459984)
+  (num-test (modulo 971324258606045826300 4576748) 342908)
+  (num-test (modulo 2400649320046378377000 1704690) 165540)
+  (num-test (modulo 953233796456393760 18342152493) 178603257)
+  (num-test (modulo 28906333140964843080 236206740) 140736420)
+  (num-test (modulo 775403093708557121609032 41) 0)
+  (num-test (modulo 12587009808135760402860 2491) 1410)
+  (num-test (modulo 510685807527370566909720 76) 44)
+  (num-test (modulo 9842598153710524682146590 10089) 3363)
+  (num-test (modulo 44936631038618189620242012 30740) 24592)
+  (num-test (modulo 934589372977008750144 373650) 202194)
+  (num-test (modulo 33027125273398900134069150 840577803) 0)
+  (num-test (modulo 4428219127938822420288 1695783782) 1071746452)
+  (num-test (modulo 29316428815807608915440 560764380) 415244720)
+  (num-test (modulo 1364397376360544429904 19) 0)
+  (num-test (modulo 4991450791697293128313385277 329) 133)
+  (num-test (modulo 75448279792981695149550 3009) 2385)
+  (num-test (modulo 181031604499464166188731133 3364) 1641)
+  (num-test (modulo 405831142402606479845286 2746214) 1938504)
+  (num-test (modulo 89170366469003867207160 25337230) 23157930)
+  (num-test (modulo 13523725766340619200 1490114045) 621483730)
+  (num-test (modulo 104705939487154940255412 192200052) 48253032)
+  (num-test (modulo 7232591421499800642000 16584679460) 4668328860)
+  (num-test (modulo 14043796716396386984750160 33382708236) 717907704)
+  (num-test (modulo 13894638105872256412416 23) 0)
+  (num-test (modulo 147611447155643499428400 118) 68)
+  (num-test (modulo 13356594697070649024 4558) 1802)
+  (num-test (modulo 15089731174706036171537760 90) 60)
+  (num-test (modulo 307230141273924828960 1971507) 1430805)
+  (num-test (modulo 2582563944548247741930009096 22873474) 3518996)
+  (num-test (modulo 1074296602920111687342072 146235518) 73672588)
+  (num-test (modulo 774058642832724262993980 407557010) 187324340)
+  (num-test (modulo 291091930213008490369569480 13412544348) 10762778160)
+  (num-test (modulo 2089068565149831833568 7302038455228) 470177842332)
+  (num-test (modulo 1064437567441124038217970656 5) 1)
+  (num-test (modulo 142557826750459447787460 1333) 527)
+  (num-test (modulo 311779340580033594160200 23693) 0)
+  (num-test (modulo 29314187023691666530559664 110143) 0)
+  (num-test (modulo 222003853016244177637944900 857463) 0)
+  (num-test (modulo 6247776111945111006243552 77976501) 12576855)
+  (num-test (modulo 1140058514761397155259712 5530338) 502758)
+  (num-test (modulo 580962736822969724865449808 55686036) 13545252)
+  (num-test (modulo 4100502596989506786787500 45333475410) 13925822190)
+  (num-test (modulo 1497378750311599979536944 262630276090) 236984817664)
+  (num-test (modulo 105637634198318524045536 2633013240) 452166936)
+  (num-test (modulo 11415822547029425161364106595632 7) 3)
+  (num-test (modulo 198305933339312916107438448 177) 15)
+  (num-test (modulo 3127415425979879537134790928 3335) 2668)
+  (num-test (modulo 589703503861221139260034914750 13209) 4641)
+  (num-test (modulo 3108579252052448504121792 14322) 12936)
+  (num-test (modulo 636976201153021006473464400 66264077) 55801328)
+  (num-test (modulo 9544425315508129998909285900 1488396) 850512)
+  (num-test (modulo 458100280193857502802977376 260747103934) 17656078468)
+  (num-test (modulo 114208186302155358124900650 22076867505) 6602131305)
+  (num-test (modulo 90107067439719108194114160 28566806069714) 24735629596458)
+  (num-test (modulo 2976572787365723002218245484 110104803958578) 49695655366500)
+  (num-test (modulo 53453375725613238735360 17) 7)
+  (num-test (modulo 888822833524306124874229800 106) 0)
+  (num-test (modulo 21275338550698297089687698855820 3021) 0)
+  (num-test (modulo 417525245705449941528380320750068 5828) 0)
+  (num-test (modulo 1954871230146370370001829871352 22765249) 0)
+  (num-test (modulo 903057827710908645847577520 648545995) 631903275)
+  (num-test (modulo 6002846634833433581621040 28493572159) 8965596645)
+  (num-test (modulo 26428903214964558277189300080 100428856) 20778384)
+  (num-test (modulo 470486531607553676511206181180 28495896) 23264436)
+  (num-test (modulo 483599554429365539310928369206620 5577334078910) 3472679709510)
+  (num-test (modulo 134511400157705323668887400 1285071093558916) 114037248705380)
+  (num-test (modulo 25897125642468049125349982599216 1183846707540) 999692775256)
+  (num-test (modulo 1118034209930460291955200 3) 0)
+  (num-test (modulo 16297594064835666104344589410644 413) 0)
+  (num-test (modulo 536762539932642345554192060100 1378) 0)
+  (num-test (modulo 933250179448203335817687635834340 58029) 55821)
+  (num-test (modulo 65573457048202714607131200 486115) 32895)
+  (num-test (modulo 85664559165674439863772868932 322014) 0)
+  (num-test (modulo 7232817686074320060728552759760 11307940) 0)
+  (num-test (modulo 78400098291720425971762131120 5646921093) 0)
+  (num-test (modulo 345445746644065669842240 19727989065) 1869036660)
+  (num-test (modulo 627854758484491743169777558200 750371721805653) 32673867918264)
+  (num-test (modulo 788233263079483492974876830792850 7170146100) 1202847750)
+  (num-test (modulo 18378856389802641496737518160 6247594493140) 1385698158460)
+  (num-test (modulo 9620902642431357480148667659080 59) 0)
+  (num-test (modulo 16008524600631853118144316000 629) 620)
+  (num-test (modulo 4342138447708715023205684275423920 53041) 5133)
+  (num-test (modulo 2431833161592653384508687244500 47541) 0)
+  (num-test (modulo 39424620224103957589082132160 1671734) 0)
+  (num-test (modulo 652830233576052788654372406432 552231327) 231166602)
+  (num-test (modulo 6892963340916411083970414000 3662431431) 935088876)
+  (num-test (modulo 29102758215190063506219566460000 10565720) 0)
+  (num-test (modulo 21253900104556838003127171970777418412 1182797770) 1026303562)
+  (num-test (modulo 3964268932242030284914943132662620 21244177854110) 13576270590290)
+  (num-test (modulo 6070388091189460078138338240 40809131994181213) 6560348180153677)
+  (num-test (modulo 9685989954133695108793384134000 964113514382876) 108668324726468)
+  (num-test (modulo 56468122001858834917195045500 429400787158167902) 411466139739284938)
+  (num-test (modulo 18843408973202596901221568364900 47) 0)
+  (num-test (modulo 7800980538292163259967028613764250 6) 0)
+  (num-test (modulo 270433907726619219545089642715200 3422) 3132)
+  (num-test (modulo 45771666919597903071546708768 2342359) 1698374)
+  (num-test (modulo 47198294949461301503537593835384892 314502) 130548)
+  (num-test (modulo 3165335901519110207943908102359110 14953473) 10646010)
+  (num-test (modulo 189219585097956261544520863361400 35605794) 0)
+  (num-test (modulo 38532137569034426600955256933810890813 1341358608707) 100754920326)
+  (num-test (modulo 1396277868664090735481380981225896 312520860) 187512516)
+  (num-test (modulo 864038349500762576564773759109700 714136202724) 614489290716)
+  (num-test (modulo 12514185871591242579049167322464 10706997440178) 749897068284)
+  (num-test (modulo 1981802660405609330969478067056636 33312289752) 27681419124)
+  (num-test (modulo 979313401024175219420658240 125278417383795) 92954907481995)
+  (num-test (modulo 4074026154111369481048033354344 29) 0)
+  (num-test (modulo 599666571180604695702511920885005100 129) 0)
+  (num-test (modulo 5703263639326551702474610108800 1978) 0)
+  (num-test (modulo 134137932950214683609064669163440 190619) 115401)
+  (num-test (modulo 344735091370772631136645455600 1048985) 0)
+  (num-test (modulo 6759508339299085316106145385400 4969610) 1763410)
+  (num-test (modulo 700334422308861928135313594400 228529587) 194401350)
+  (num-test (modulo 10277417891211405957191810814198480 2516552038) 1372664748)
+  (num-test (modulo 490099971577877358878082782880 9282588354) 7843699422)
+  (num-test (modulo 1954558750269048828645390249600 5575829490) 2295929790)
+  (num-test (modulo 1360588454560018295496656378989200 7868178296420) 3049105010900)
+  (num-test (modulo 4337552841738910859248770564912480 17722936528737830) 1203686858124400)
+  (num-test (modulo 215913068853045803981566931862756 7009479781500) 1803638466756)
+  (num-test (modulo 44890707654126305940250882318870941900 18329973480720) 7637488950300)
+  (num-test (modulo 28579720891831355496720656680837200 3) 0)
+  (num-test (modulo 29332703209780553199747293473184160 1711) 551)
+  (num-test (modulo 3648979393315349438003046604440000 186) 0)
+  (num-test (modulo 1159760236369472473822068077011807878780 25714) 0)
+  (num-test (modulo 158186359726371025615685433600 31395) 17940)
+  (num-test (modulo 331091450443070201468559735703944 28424) 0)
+  (num-test (modulo 9734443639363161342241553023288200 1961348207) 1708271019)
+  (num-test (modulo 701896612128009033011419603540080 51300) 47880)
+  (num-test (modulo 86169288128517384618860929451245320 5032162527446) 925322642976)
+  (num-test (modulo 64828800524794653881296183831741773624 4645294472) 311380888)
+  (num-test (modulo 49068907706533938991402184550000 268183371225) 262983139650)
+  (num-test (modulo 1708602980304476478496020543612288 4083128544) 131713824)
+  (num-test (modulo 17608179287674151740172985536160 980399424528) 962337263616)
+  (num-test (modulo 43194437079731225735521919644800 178119261126453036) 70796157206439912)
+  (num-test (modulo 817555977437791699707628651571149344 59) 0)
+  (num-test (modulo 19062946261334997559157066059536 533) 287)
+  (num-test (modulo 6533849124840489114353090499099000 598) 130)
+  (num-test (modulo 427663965127849896842400211428345149025 234) 117)
+  (num-test (modulo 352395507261316174741530450071590608 154734) 26418)
+  (num-test (modulo 391579493632653867660919800000 9221565) 1166160)
+  (num-test (modulo 2618798923882923048581401148931738000 681876) 419616)
+  (num-test (modulo 174712575449141140214591110997980800 233260339838) 37341839152)
+  (num-test (modulo 88598141227372995032227898284800 1929763976) 1797148024)
+  (num-test (modulo 210110141308655567793064872567302676320 720390430628) 523536832148)
+  (num-test (modulo 668425085137718599277317523827419000 19898594339442) 17330916357006)
+  (num-test (modulo 89533471731097208414073727453200 4173840860670546) 1611748174428756)
+  (num-test (modulo 113987439157802480362236410675251462620 21548296273949445) 20414175417425790)
+  (num-test (modulo 48129335993995093308894209644253760 1009442888504820) 947047755795120)
+  (num-test (modulo 3497836376962291922989777163497680 138736290091634664) 23686683674181528)
+  (num-test (modulo 11371924962562208722154622794880 3) 0)
+  (num-test (modulo 9451631862008339290824315653784000 703) 171)
+  (num-test (modulo 16869347753325980368094612370435598560 806) 0)
+  (num-test (modulo 4701845646467068759127854100132739552 3198) 504)
+  (num-test (modulo 1029865193584911347147121232800485280 1005771) 24531)
+  (num-test (modulo 10657125216930337802109861408000 2415138) 2210802)
+  (num-test (modulo 14382707743772734802155022983680 247913634) 7969170)
+  (num-test (modulo 60134748581470366378101904574533857248 54828228) 9878960)
+  (num-test (modulo 214830664120540781167218700750596000 505665810) 223433730)
+  (num-test (modulo 48933004118344447687599112101802800 6263883444) 849340128)
+  (num-test (modulo 5498670161558110606435630054129739400 262699548132) 255270333864)
+  (num-test (modulo 35941673649029587182509620977230062500 25622409466332) 7911836749404)
+  (num-test (modulo 1592802602494326390643157055239113248 736377633395508) 260180363298804)
+  (num-test (modulo 4043816553144402557587143272522043028314 5011466158645380) 1781651263267134)
+  (num-test (modulo 7171921165220830707276631005512550 1765284492289500) 1588756043060550)
+  (num-test (modulo 2402189359210218692854826119405968750 23) 22)
+  (num-test (modulo 26149068753160488131648964110990162400 1147) 868)
+  (num-test (modulo 556184059176863945810376239306506311552 4089) 0)
+  (num-test (modulo 67871323087036310486238021899264593800 13395) 0)
+  (num-test (modulo 12750401179065252879838440979200 7177173) 0)
+  (num-test (modulo 278110245000092733617125071646080 17748) 0)
+  (num-test (modulo 13408203364935178481017292708752000 50619404) 13680920)
+  (num-test (modulo 124271828931784534297423756437875067000 8839796595) 1143112215)
+  (num-test (modulo 11893442806922081156953529319100769836176 972789007267) 210492262442)
+  (num-test (modulo 352581052555284857902053030133344488264100 923561430099) 488944286523)
+  (num-test (modulo 6108908012714804315575319947340956346976 31944833628092) 28158060036920)
+  (num-test (modulo 67475643422116264959949054821520228800 22515435540) 8157766500)
+  (num-test (modulo 470601888939348535946408832 5135943991060962937) 4475576385383445628)
+  (num-test (modulo 110759232155568113345545635903016614000 30159198663300) 0)
+  (num-test (modulo 146100914712024458707469587112300146320 26868173101560) 24880219882560)
+  (num-test (modulo 12173192708601511002951184416658091200 466645866900785428350) 288583529752854077950)
+  (num-test (modulo 5784684831478746253226687170890240 13) 0)
+  (num-test (modulo 35042260655085685815432622412891903767500 667) 0)
+  (num-test (modulo 2903871349270676921837488659419545120987500 530) 0)
+  (num-test (modulo 630123969240840167098426767919876491188000 77691) 51794)
+  (num-test (modulo 33192703032132982013024959634241667249800 4684718) 4051648)
+  (num-test (modulo 4731525733734729472809717145544850000 90706055) 0)
+  (num-test (modulo 214011009809686092216200126896120006823232 50400042) 45006552)
+  (num-test (modulo 5854250735296111435541950856160000 24357777002) 2121729090)
+  (num-test (modulo 35348208247612761916374738259136697649608 156806713508) 8948839908)
+  (num-test (modulo 612558317420289618714916924536521515286100 2377007388) 375316956)
+  (num-test (modulo 181857299802925368992522029882739454720 21606337755618) 0)
+  (num-test (modulo 4731635341196946327443020710970699860000 58092526675092) 44387995860156)
+  (num-test (modulo 22081740554432638182773611616166588288192 61419768950540) 49135815160432)
+  (num-test (modulo 125627844706077784535328068665849312000 30482033400) 19356933400)
+  (num-test (modulo 1225504716872819103560254268197955520 510813364186125) 233201076344145)
+  (num-test (modulo 5209185280578468690281136425214396728400 2327880739319250103818) 518788605323339989776)
+  (num-test (modulo 230425011604643097634961294406535254400 31) 0)
+  (num-test (modulo 13222608481676137093434201748083744000 893) 0)
+  (num-test (modulo 13348198818240350339028224064019716678960 651) 117)
+  (num-test (modulo 7236172685650198160266777676385295337308176 23426) 14144)
+  (num-test (modulo 756264162229440667711265021676693350760 28899) 0)
+  (num-test (modulo 40915062421030872924283823601517905600 36345062) 0)
+  (num-test (modulo 1174590526522170015825602834292923520 4991486258) 1554170940)
+  (num-test (modulo 2891892862328155581145450075391651333218020 35138529818) 0)
+  (num-test (modulo 1993335355070485984559797658834121810059400 535644500) 433741400)
+  (num-test (modulo 6324295450641455215591954662726515160 367472693133) 134441229195)
+  (num-test (modulo 6576388154814679090356195121505112000 15901952377630) 3827367890390)
+  (num-test (modulo 117828556355409428513249595788296238400 565992666495795) 106570976318730)
+  (num-test (modulo 592831716700236607285748949860604000 139641978135660) 133123065151440)
+  (num-test (modulo 106766839071170184723986891291602032000 1584924526628112) 785519540106048)
+  (num-test (modulo 21677148858122146832326483307664860804937400 247815827510760) 183567279637600)
+  (num-test (modulo 14079549844487257384278196623697173813600 160967604100961853832) 160644118308938243512)
+  (num-test (modulo 2696480372014145687016224877963234647656980 2219319031453896088860) 1749775073012430835800)
+  (num-test (modulo 13545431257849875145060979241270859310160 29) 0)
+  (num-test (modulo 137485634482479300158725199474868559498162500 329) 188)
+  (num-test (modulo 529252417743761759027305009539254400 3243) 0)
+  (num-test (modulo 133897419738958073238580385894509887148800 330455) 0)
+  (num-test (modulo 3896215507210178905244623173635584334007288624 1005238) 0)
+  (num-test (modulo 17654511984514518592175290794029073043800 1060530) 511980)
+  (num-test (modulo 16470780256339082688310222474503880382858400 913836) 0)
+  (num-test (modulo 57267105834722825210001789897760395576000 2958974018) 2329405078)
+  (num-test (modulo 521977833444747522001426544601807810543216 1066521690) 625031316)
+  (num-test (modulo 1699559962174727325529414216960251941390400 25883611479) 16915574049)
+  (num-test (modulo 10654036597801063717295948399628964800 317449894126222) 116812646389120)
+  (num-test (modulo 381902381115592200811990304316262139150724960 4640335440216) 0)
+  (num-test (modulo 425968526187959807410151867411382902838703889232 1882826315615025) 1191718303295157)
+  (num-test (modulo 174609167728518272531601927200939868792000 1712923655178450) 541648883945400)
+  (num-test (modulo 3325168366561555458817274989681612518000 1699726139891780) 1568977975284720)
+  (num-test (modulo 11429650426242566426919762928176000 7414967839104) 1771142792832)
+  (num-test (modulo 2104794191230056678355480848036599377844400 16946684823025584) 9111120872594400)
+  (num-test (modulo 11894522530167763519415142641640874994880 7) 0)
+  (num-test (modulo 5906329981690378696996009087718418780000 185) 0)
+  (num-test (modulo 3056294774178096513474941936265025440000 658) 0)
+  (num-test (modulo 10491907660880423349353457742257185280 123369) 0)
+  (num-test (modulo 673239479595593149777212259021965839229225628776 15470) 12376)
+  (num-test (modulo 1506608574369860432616005754109397877696 1474070) 1179256)
+  (num-test (modulo 4849814041048623250005708880379694793905000 2172220582) 0)
+  (num-test (modulo 21154344928580705924176101470087564940000 5023204186) 0)
+  (num-test (modulo 346448039376394135288065831861806112294000 776147372) 25037012)
+  (num-test (modulo 2339009760844587560470606952218133142645504 194201967414) 78730527330)
+  (num-test (modulo 2242982161480922111384667548175169152 21419749763490) 17054708275722)
+  (num-test (modulo 4717315265246821759830981157482117120 45609714193992) 45557259088536)
+  (num-test (modulo 16628111321698075419789804224660024289936 4643626415880804) 3203755070835528)
+  (num-test (modulo 115557531507210992033160068979962880 88406536976058378) 13997397131802546)
+  (num-test (modulo 21059511907771200155093927745003762840000 180298981648603620) 88715511648941760)
+  (num-test (modulo 2124921015128697258800067298086064536000 2282525112298516782924) 1050493715522523120240)
+  (num-test (modulo 16015671538624533047089928322348864000 49817926936366875) 31511531988217125)
+  (num-test (modulo 166517667014186289390514558017250969134523800 43413708621878528404068) 4443969735426840626952)
+  (num-test (modulo 2780796292789128359666429021610464935722000 47) 0)
+  (num-test (modulo 21297913114430245153455383503409684916193317960 58) 0)
+  (num-test (modulo 1516745257039775143654568869485529015398000 6293) 0)
+  (num-test (modulo 8447692776411453120390905608381515479808 2030) 518)
+  (num-test (modulo 958876033949638283967045624731391031146081240 9834415) 9667730)
+  (num-test (modulo 4731349833403602529573388098680617532624192 14868) 0)
+  (num-test (modulo 6375001358038970462026761077388061675464000 430513678) 0)
+  (num-test (modulo 254088526608579040642428151389718385042344800 4799428101) 294233472)
+  (num-test (modulo 21140490542258031885408065086507444825621023648 164778747198) 63851269926)
+  (num-test (modulo 34214837305812460226811046733375808000 4312787868) 2681970660)
+  (num-test (modulo 11450197571956515037245443769386989035470896800 75585518430279) 69771247781796)
+  (num-test (modulo 1211397915863796187148880114197307052796506376580 538601201880) 128795939580)
+  (num-test (modulo 5454139401260819402160859765169199667337088 30452838731872) 22996976784800)
+  (num-test (modulo 744935981632690384026127091216926530879171660 1032747922358460) 630836297950320)
+  (num-test (modulo 324574326062026951443376280715122947502400 103751223626207988025) 7552030128655111125)
+  (num-test (modulo 15272163751269260921486082393684080908800 6484309049057400) 4436632507249800)
+  (num-test (modulo 386527546655781220813671331401971490218262720 3481571963427119100) 243571263764902920)
+  (num-test (modulo 3189682029126430413458911948222943640000 6724598925622907976570) 2607219061590696572250)
+  (num-test (modulo 709403542855323660533377490060722241678400 7) 0)
+  (num-test (modulo 139803787314578422635552652090095842837312147438904 123) 0)
+  (num-test (modulo 171985399350431759069945935900956183322827030835560 18241) 0)
+  (num-test (modulo 33090522521924986387051477884789600000 26187) 25578)
+  (num-test (modulo 1733723010009930088165729903139785699319986530 372945) 23805)
+  (num-test (modulo 56408303994570817306318494803635460247582000 5761730) 3307860)
+  (num-test (modulo 25845509336769185412951159262424903513866295760 64371378271) 0)
+  (num-test (modulo 624970361450506104794172455132584603069611058500 108222780) 0)
+  (num-test (modulo 82823962548382643645255524843049561752323600 135325929794) 123023572540)
+  (num-test (modulo 170620453449723034746079844571491973300000 9460614789626) 4845680745906)
+  (num-test (modulo 125144597811313015929871740675462711600000 12764411911636) 5714078712188)
+  (num-test (modulo 257193319319332344553297882967977761077115600 6510126541380) 1111485019260)
+  (num-test (modulo 879624546681838385457288074812140664728758550 10045784120501316) 5303606126868522)
+  (num-test (modulo 18300938860777100857669855248554588369659200 118088077425391892) 94617840861501464)
+  (num-test (modulo 8394780474625841647581984803260010511075000 746584618179400) 91432008031000)
+  (num-test (modulo 146802334713757872619395774222116859916800 718775571956687400) 62390745247132200)
+  (num-test (modulo 240155883351717999820072393833707008014911556000 1350921510529331832) 1096988895768179232)
+  (num-test (modulo 918942437243241528855354123800826649596480 74343962238703160850) 1608809218075839780)
+  (num-test (modulo 1361069299753299783990135442290762165844800 8281085446358585640) 7375208194228544280)
+  
+  (num-test (modulo 1/9223372036854775807 -1/3) -9223372036854775804/27670116110564327421)
+  (num-test (modulo -1/9223372036854775807 1/3) 9223372036854775804/27670116110564327421)
+  (num-test (modulo 9223372036854775807 1/3) 0)
+  (num-test (modulo (/ (expt 3 10)) (/ (expt 2 61))) 1991/136157723851059414171648)
+  (num-test (modulo (/ (expt 3 20)) (/ (expt 2 61))) 487228559/2009994358920301836855410688)
+  (num-test (modulo -2/9223372036854775807 2/3) 18446744073709551608/27670116110564327421)
+  (num-test (modulo 2/9223372036854775807 -2/3) -18446744073709551608/27670116110564327421)
+  (num-test (modulo 57473596068/6659027209 318281039/225058681) 218279130532125402/1498671880400651329)
+  (num-test (modulo 25808688679/9809721694 1855077841/1311738121) 15656443452349049505/12867785902420496974)
+  (num-test (modulo 17026679261/10439860591 4478554083/3166815962) 7164879387815321029/33061117160633553542)
+  (num-test (modulo 480544481373/103768467013 10812186007/7645370045) 308048482161795610512/793348329316760825585)
+  (num-test (modulo 137528045312/217976794617 63018038201/44560482149) 137528045312/217976794617)
+  (num-test (modulo 1591258440050/975675645481 152139002499/107578520350) 22746909008980882960481/104961742282377144038350)
+  (num-test (modulo 6721373040371/1193652440098 367296043199/259717522849) 430386901580727488556473/310012454884916918799202)
+  (num-test (modulo 56850567176297/8573543875303 886731088897/627013566048) 1309091318011705591580273/1343932079730680866628136)
+  (num-test (modulo 176638380405175/18340740190704 5168247530883/3654502875938) 38394278980353599950554679/33513143886879715286440176)
+  (num-test (modulo 551230231989018/83130157078217 12477253282759/8822750406821) 714422652331325234782048966/733436627180932669467318157)
+  (num-test (modulo 1360510821127147/517121682660006 30122754096401/21300003689580) 2233626037506212134611298309/1835782291436657618117489580)
+  (num-test (modulo 5849200401628882/766512153894657 175568277047523/124145519261542) 53275930148683942294955132989/95159049365535186345899381094)
+  (num-test (modulo 15914407453568626/6048967074079039 423859315570607/299713796309065) 2205856429990054302964180188017/1812958885520765991472282188535)
+  (num-test (modulo 25997605614346611/9881527843552324 1023286908188737/723573111879672) 127934269420347558776141264953/105147174292423231311078293496)
+  (num-test (modulo 1528546195606366451/177100989030047175 5964153172084899/4217293152016490) 10878285025401489444908608411504/74688678825176546867355107791575)
+  (num-test (modulo 1991152086194052263/206745572560704147 14398739476117879/10181446324101389) 2411554265852820467970218680028029/2104968949772418231181062860760183)
+  (num-test (modulo 1657796840421716313/630118245525664765 34761632124320657/24580185800219268) 18845015710796719738302110345968279/15488423551129023359673258461692020)
+  (num-test (modulo 30769194397037159797/5464318637170278738 202605639573839043/143263821649299118) 271701765358086704077048080811413961/195709792667626007806640474599388271)
+  (num-test (modulo 63477669249275110720/7354673373747273033 489133282872437279/345869461223138161) 370494072414302426447989361648602678/2543756917250129165517177396348512313)
+  (num-test (modulo 275806591309589148297/36143248623210700400 1180872205318713601/835002744095575440) 9600268203288030825290513354903593/17147563511880433985428780967862600)
+  
+  (num-test (modulo 1e19 10) 0.0)
+  (num-test (modulo .1e20 10) 0.0)
+  (num-test (modulo 1e20 10) 0.0)
+  (num-test (modulo 1e21 10) 0.0)
+  (num-test (modulo 1e19 -1) 0.0)
+  (num-test (modulo 1e19 1) 0.0)
+  (num-test (modulo .1e20 1) 0.0)
+  (num-test (modulo 1e20 1) 0.0)
+  (num-test (modulo 10000000000000000000 1) 0)
+  (num-test (modulo 100000000000000000000 1) 0)
+  (num-test (modulo 10000000000000000000 10) 0)
+  (num-test (modulo 100000000000000000000 10) 0)
+  
+  (test (modulo 1361069299753299783990135442290762165844800+i 8281085446358585640) 'error))
       
 (test (modulo 123 123 123) 'error)
 (test (modulo 123) 'error)
@@ -53900,73 +53777,71 @@ hi6: (string-app...
 
 (num-test (quotient 1e16 1e14) 100)
 
-(if with-bignums
-    (begin
-      (num-test (quotient 1.00000000000000e-12 1E-16) 10000)
-      
-      (num-test (quotient -1.797693134862315699999999999999999999998E308 -9223372036854775808) 19490628022799995908501125008172039088075481712089442747863503837260448050616338003410135413043522984719682345909025832711116783129727902847513862872544943321023332545672815506523677443663683097294005030046422806743414556504424564204282517830151319186021046775247332737488676655598816722944)
-      (num-test (quotient -9223372036854775808 5.551115123125783999999999999999999999984E-17) -166153499473114445265356059994784304)
-      (num-test (quotient 295147905149568077200 34359738366) 8589934591)
-      (num-test (quotient 696898287454081973170944403677937368733396 1180591620717411303422) 590295810358705651711)
-      (num-test (quotient 1e19 10) 1000000000000000000)
-      (num-test (quotient .1e20 10) 1000000000000000000)
-      (num-test (quotient 1e20 10) 10000000000000000000)
-      (num-test (quotient 1e21 10) 100000000000000000000)
-      (num-test (quotient 1e19 -1) -10000000000000000000)
-      (num-test (quotient 1e19 1) 10000000000000000000)
-      (num-test (quotient .1e20 1) 10000000000000000000)
-      (num-test (quotient 1e20 1) 100000000000000000000)
-      (num-test (quotient 10000000000000000000 1) 10000000000000000000)
-      (num-test (quotient 100000000000000000000 1) 100000000000000000000)
-      (num-test (quotient 10000000000000000000 10) 1000000000000000000)
-      (num-test (quotient 100000000000000000000 10) 10000000000000000000)
-
-      (num-test (quotient 1 1/9223372036854775807) 9223372036854775807)
-      (num-test (quotient 9223372036854775807 2/3) 13835058055282163710)
-      (test (quotient 1361069299753299783990135442290762165844800+i 8281085446358585640) 'error)
-      (test (quotient 1231231231231231232123 0.0) 'error)
-      (test (quotient 1231231231231231232123 0) 'error)
-
-      ;; the tests that multiply by 2.0 may be on the edge of the 128 bit default precision
-      (test (= (quotient (* 4478554083/3166815962 4478554083/3166815962) 2) (quotient (* 10812186007/7645370045 10812186007/7645370045) 2)) #f)
-      (test (= (quotient 2.0 (* 4478554083/3166815962 4478554083/3166815962)) (quotient (* 10812186007/7645370045 10812186007/7645370045) 2.0)) #t)
-      (test (= (quotient 4478554083/3166815962 10812186007/7645370045) (floor (/ 4478554083/3166815962 10812186007/7645370045))) #t)
-      (test (= (quotient (* 63018038201/44560482149 63018038201/44560482149) 2) (quotient (* 152139002499/107578520350 152139002499/107578520350) 2)) #f)
-      (test (= (quotient 2.0 (* 63018038201/44560482149 63018038201/44560482149)) (quotient (* 152139002499/107578520350 152139002499/107578520350) 2.0)) #t)
-      (test (= (quotient 63018038201/44560482149 152139002499/107578520350) (floor (/ 63018038201/44560482149 152139002499/107578520350))) #t)
-      (test (= (quotient (* 367296043199/259717522849 367296043199/259717522849) 2) (quotient (* 886731088897/627013566048 886731088897/627013566048) 2)) #f)
-      (test (= (quotient 2.0 (* 367296043199/259717522849 367296043199/259717522849)) (quotient (* 886731088897/627013566048 886731088897/627013566048) 2.0)) #t)
-      (test (= (quotient 367296043199/259717522849 886731088897/627013566048) (floor (/ 367296043199/259717522849 886731088897/627013566048))) #t)
-      (test (= (quotient (* 5168247530883/3654502875938 5168247530883/3654502875938) 2) (quotient (* 12477253282759/8822750406821 12477253282759/8822750406821) 2)) #f)
-      (test (= (quotient 2.0 (* 5168247530883/3654502875938 5168247530883/3654502875938)) (quotient (* 12477253282759/8822750406821 12477253282759/8822750406821) 2.0)) #t)
-      (test (= (quotient 5168247530883/3654502875938 12477253282759/8822750406821) (floor (/ 5168247530883/3654502875938 12477253282759/8822750406821))) #t)
-      (test (= (quotient (* 30122754096401/21300003689580 30122754096401/21300003689580) 2) (quotient (* 175568277047523/124145519261542 175568277047523/124145519261542) 2)) #t)
-      (test (= (quotient 2.0 (* 30122754096401/21300003689580 30122754096401/21300003689580)) (quotient (* 175568277047523/124145519261542 175568277047523/124145519261542) 2.0)) #f)
-      (test (= (quotient 30122754096401/21300003689580 175568277047523/124145519261542) (floor (/ 30122754096401/21300003689580 175568277047523/124145519261542))) #t)
-      
-      (test (= (quotient (* 423859315570607/299713796309065 423859315570607/299713796309065) 2) 
-	       (quotient (* 1023286908188737/723573111879672 1023286908188737/723573111879672) 2)) #f)
-      (test (= (quotient 423859315570607/299713796309065 1023286908188737/723573111879672) 
-	       (floor (/ 423859315570607/299713796309065 1023286908188737/723573111879672))) #t)
-      (test (= (quotient (* 1023286908188737/723573111879672 1023286908188737/723573111879672) 2) 
-	       (quotient (* 5964153172084899/4217293152016490 5964153172084899/4217293152016490) 2)) #t)
-      (test (= (quotient (* 3289910387877251662993/2326317944764069484905 3289910387877251662993/2326317944764069484905) 2) 
-	       (quotient (* 19175002942688032928599/13558774610046711780701 19175002942688032928599/13558774610046711780701) 2)) #t)
-      (test (= (quotient 3289910387877251662993/2326317944764069484905 19175002942688032928599/13558774610046711780701) 
-	       (floor (/ 3289910387877251662993/2326317944764069484905 19175002942688032928599/13558774610046711780701))) #t)
-      (test (= (quotient (* 46292552162781456490001/32733777552734744709300 46292552162781456490001/32733777552734744709300) 2) 
-	       (quotient (* 111760107268250945908601/79026329715516201199301 111760107268250945908601/79026329715516201199301) 2)) #f)
-      (test (= (quotient 46292552162781456490001/32733777552734744709300 111760107268250945908601/79026329715516201199301) 
-	       (floor (/ 46292552162781456490001/32733777552734744709300 111760107268250945908601/79026329715516201199301))) #t)
-      (test (= (quotient (* 269812766699283348307203/190786436983767147107902 269812766699283348307203/190786436983767147107902) 2) 
-	       (quotient (* 1572584048032918633353217/1111984844349868137938112 1572584048032918633353217/1111984844349868137938112) 2)) #t)
-      (test (= (quotient 269812766699283348307203/190786436983767147107902 1572584048032918633353217/1111984844349868137938112) 
-	       (floor (/ 269812766699283348307203/190786436983767147107902 1572584048032918633353217/1111984844349868137938112))) #t)
-      (test (= (quotient (* 1572584048032918633353217/1111984844349868137938112 1572584048032918633353217/1111984844349868137938112) 2) 
-	       (quotient (* 3796553736732654909229441/2684568892382786771291329 3796553736732654909229441/2684568892382786771291329) 2)) #f)
-      (test (= (quotient 1572584048032918633353217/1111984844349868137938112 3796553736732654909229441/2684568892382786771291329) 
-	       (floor (/ 1572584048032918633353217/1111984844349868137938112 3796553736732654909229441/2684568892382786771291329))) #t)
-      ))
+(when with-bignums
+  (num-test (quotient 1.00000000000000e-12 1E-16) 10000)
+  
+  (num-test (quotient -1.797693134862315699999999999999999999998E308 -9223372036854775808) 19490628022799995908501125008172039088075481712089442747863503837260448050616338003410135413043522984719682345909025832711116783129727902847513862872544943321023332545672815506523677443663683097294005030046422806743414556504424564204282517830151319186021046775247332737488676655598816722944)
+  (num-test (quotient -9223372036854775808 5.551115123125783999999999999999999999984E-17) -166153499473114445265356059994784304)
+  (num-test (quotient 295147905149568077200 34359738366) 8589934591)
+  (num-test (quotient 696898287454081973170944403677937368733396 1180591620717411303422) 590295810358705651711)
+  (num-test (quotient 1e19 10) 1000000000000000000)
+  (num-test (quotient .1e20 10) 1000000000000000000)
+  (num-test (quotient 1e20 10) 10000000000000000000)
+  (num-test (quotient 1e21 10) 100000000000000000000)
+  (num-test (quotient 1e19 -1) -10000000000000000000)
+  (num-test (quotient 1e19 1) 10000000000000000000)
+  (num-test (quotient .1e20 1) 10000000000000000000)
+  (num-test (quotient 1e20 1) 100000000000000000000)
+  (num-test (quotient 10000000000000000000 1) 10000000000000000000)
+  (num-test (quotient 100000000000000000000 1) 100000000000000000000)
+  (num-test (quotient 10000000000000000000 10) 1000000000000000000)
+  (num-test (quotient 100000000000000000000 10) 10000000000000000000)
+  
+  (num-test (quotient 1 1/9223372036854775807) 9223372036854775807)
+  (num-test (quotient 9223372036854775807 2/3) 13835058055282163710)
+  (test (quotient 1361069299753299783990135442290762165844800+i 8281085446358585640) 'error)
+  (test (quotient 1231231231231231232123 0.0) 'error)
+  (test (quotient 1231231231231231232123 0) 'error)
+  
+  ;; the tests that multiply by 2.0 may be on the edge of the 128 bit default precision
+  (test (= (quotient (* 4478554083/3166815962 4478554083/3166815962) 2) (quotient (* 10812186007/7645370045 10812186007/7645370045) 2)) #f)
+  (test (= (quotient 2.0 (* 4478554083/3166815962 4478554083/3166815962)) (quotient (* 10812186007/7645370045 10812186007/7645370045) 2.0)) #t)
+  (test (= (quotient 4478554083/3166815962 10812186007/7645370045) (floor (/ 4478554083/3166815962 10812186007/7645370045))) #t)
+  (test (= (quotient (* 63018038201/44560482149 63018038201/44560482149) 2) (quotient (* 152139002499/107578520350 152139002499/107578520350) 2)) #f)
+  (test (= (quotient 2.0 (* 63018038201/44560482149 63018038201/44560482149)) (quotient (* 152139002499/107578520350 152139002499/107578520350) 2.0)) #t)
+  (test (= (quotient 63018038201/44560482149 152139002499/107578520350) (floor (/ 63018038201/44560482149 152139002499/107578520350))) #t)
+  (test (= (quotient (* 367296043199/259717522849 367296043199/259717522849) 2) (quotient (* 886731088897/627013566048 886731088897/627013566048) 2)) #f)
+  (test (= (quotient 2.0 (* 367296043199/259717522849 367296043199/259717522849)) (quotient (* 886731088897/627013566048 886731088897/627013566048) 2.0)) #t)
+  (test (= (quotient 367296043199/259717522849 886731088897/627013566048) (floor (/ 367296043199/259717522849 886731088897/627013566048))) #t)
+  (test (= (quotient (* 5168247530883/3654502875938 5168247530883/3654502875938) 2) (quotient (* 12477253282759/8822750406821 12477253282759/8822750406821) 2)) #f)
+  (test (= (quotient 2.0 (* 5168247530883/3654502875938 5168247530883/3654502875938)) (quotient (* 12477253282759/8822750406821 12477253282759/8822750406821) 2.0)) #t)
+  (test (= (quotient 5168247530883/3654502875938 12477253282759/8822750406821) (floor (/ 5168247530883/3654502875938 12477253282759/8822750406821))) #t)
+  (test (= (quotient (* 30122754096401/21300003689580 30122754096401/21300003689580) 2) (quotient (* 175568277047523/124145519261542 175568277047523/124145519261542) 2)) #t)
+  (test (= (quotient 2.0 (* 30122754096401/21300003689580 30122754096401/21300003689580)) (quotient (* 175568277047523/124145519261542 175568277047523/124145519261542) 2.0)) #f)
+  (test (= (quotient 30122754096401/21300003689580 175568277047523/124145519261542) (floor (/ 30122754096401/21300003689580 175568277047523/124145519261542))) #t)
+  
+  (test (= (quotient (* 423859315570607/299713796309065 423859315570607/299713796309065) 2) 
+	   (quotient (* 1023286908188737/723573111879672 1023286908188737/723573111879672) 2)) #f)
+  (test (= (quotient 423859315570607/299713796309065 1023286908188737/723573111879672) 
+	   (floor (/ 423859315570607/299713796309065 1023286908188737/723573111879672))) #t)
+  (test (= (quotient (* 1023286908188737/723573111879672 1023286908188737/723573111879672) 2) 
+	   (quotient (* 5964153172084899/4217293152016490 5964153172084899/4217293152016490) 2)) #t)
+  (test (= (quotient (* 3289910387877251662993/2326317944764069484905 3289910387877251662993/2326317944764069484905) 2) 
+	   (quotient (* 19175002942688032928599/13558774610046711780701 19175002942688032928599/13558774610046711780701) 2)) #t)
+  (test (= (quotient 3289910387877251662993/2326317944764069484905 19175002942688032928599/13558774610046711780701) 
+	   (floor (/ 3289910387877251662993/2326317944764069484905 19175002942688032928599/13558774610046711780701))) #t)
+  (test (= (quotient (* 46292552162781456490001/32733777552734744709300 46292552162781456490001/32733777552734744709300) 2) 
+	   (quotient (* 111760107268250945908601/79026329715516201199301 111760107268250945908601/79026329715516201199301) 2)) #f)
+  (test (= (quotient 46292552162781456490001/32733777552734744709300 111760107268250945908601/79026329715516201199301) 
+	   (floor (/ 46292552162781456490001/32733777552734744709300 111760107268250945908601/79026329715516201199301))) #t)
+  (test (= (quotient (* 269812766699283348307203/190786436983767147107902 269812766699283348307203/190786436983767147107902) 2) 
+	   (quotient (* 1572584048032918633353217/1111984844349868137938112 1572584048032918633353217/1111984844349868137938112) 2)) #t)
+  (test (= (quotient 269812766699283348307203/190786436983767147107902 1572584048032918633353217/1111984844349868137938112) 
+	   (floor (/ 269812766699283348307203/190786436983767147107902 1572584048032918633353217/1111984844349868137938112))) #t)
+  (test (= (quotient (* 1572584048032918633353217/1111984844349868137938112 1572584048032918633353217/1111984844349868137938112) 2) 
+	   (quotient (* 3796553736732654909229441/2684568892382786771291329 3796553736732654909229441/2684568892382786771291329) 2)) #f)
+  (test (= (quotient 1572584048032918633353217/1111984844349868137938112 3796553736732654909229441/2684568892382786771291329) 
+	   (floor (/ 1572584048032918633353217/1111984844349868137938112 3796553736732654909229441/2684568892382786771291329))) #t))
 
 (test (quotient 123 123 123) 'error)
 (test (quotient 123) 'error)
@@ -54417,100 +54292,98 @@ hi6: (string-app...
 (num-test (+ (remainder 2351934037/272500658 54608393/38613965) (* 54608393/38613965 (quotient 2351934037/272500658 54608393/38613965))) 2351934037/272500658)
 (num-test (+ (remainder 1657851173/630138897 131836323/93222358) (* 131836323/93222358 (quotient 1657851173/630138897 131836323/93222358))) 1657851173/630138897)
 
-(if with-bignums
-    (begin
-      (num-test (remainder -9223372036854775808 5.551115123125783999999999999999999999984E-17) -2.295798100238055639010781305842101573944E-17)
-      (num-test (remainder 295147905149568077200 34359738366) 21754858894)
-      (num-test (remainder 696898287454081973170944403677937368733396 1180591620717411303422) 314390899110894278354)
-      (num-test (remainder 1e19 10) 0.0)
-      (num-test (remainder .1e20 10) 0.0)
-      (num-test (remainder 1e20 10) 0.0)
-      (num-test (remainder 1e21 10) 0.0)
-      (num-test (remainder 1e19 -1) 0.0)
-      (num-test (remainder 1e19 1) 0.0)
-      (num-test (remainder .1e20 1) 0.0)
-      (num-test (remainder 1e20 1) 0.0)
-      (num-test (remainder 10000000000000000000 1) 0)
-      (num-test (remainder 100000000000000000000 1) 0)
-      (num-test (remainder 10000000000000000000 10) 0)
-      (num-test (remainder 100000000000000000000 10) 0)
-
-      (num-test (remainder 9223372036854775807 1/3) 0)
-      (num-test (remainder 9223372036854775807 2/3) 1/3)
-      (num-test (remainder 922337203685477580 1/3) 0)
-      (test (remainder 1361069299753299783990135442290762165844800+i 8281085446358585640) 'error)
-      (test (remainder 1231231231231231232123 0.0) 'error)
-      (test (remainder 1231231231231231232123 0) 'error)
-
-      (test (= (remainder (* 4478554083/3166815962 4478554083/3166815962) 2) 
-	       (remainder (* 10812186007/7645370045 10812186007/7645370045) 2)) #f)
-      (test (= (remainder 2.0 (* 4478554083/3166815962 4478554083/3166815962)) 
-	       (remainder (* 10812186007/7645370045 10812186007/7645370045) 2.0)) #f)
-      (test (= (remainder 367296043199/259717522849 886731088897/627013566048) 
-	       (floor (/ 367296043199/259717522849 886731088897/627013566048))) #f)
-      (test (= (remainder (* 5168247530883/3654502875938 5168247530883/3654502875938) 2) 
-	       (remainder (* 12477253282759/8822750406821 12477253282759/8822750406821) 2)) #f)
-      (test (= (remainder 2.0 (* 423859315570607/299713796309065 423859315570607/299713796309065)) 
-	       (remainder (* 1023286908188737/723573111879672 1023286908188737/723573111879672) 2.0)) #f)
-      (test (= (remainder 2.0 (* 34761632124320657/24580185800219268 34761632124320657/24580185800219268)) 
-	       (remainder (* 202605639573839043/143263821649299118 202605639573839043/143263821649299118) 2.0)) #f)
-      (test (= (remainder 34761632124320657/24580185800219268 202605639573839043/143263821649299118) 
-	       (floor (/ 34761632124320657/24580185800219268 202605639573839043/143263821649299118))) #f)
-      (test (= (remainder (* 489133282872437279/345869461223138161 489133282872437279/345869461223138161) 2) 
-	       (remainder (* 1180872205318713601/835002744095575440 1180872205318713601/835002744095575440) 2)) #f)
-      (test (= (remainder (* 2850877693509864481/2015874949414289041 2850877693509864481/2015874949414289041) 2) 
-	       (remainder (* 16616132878186749607/11749380235262596085 16616132878186749607/11749380235262596085) 2)) #f)
-      (test (= (remainder (* 564459384575477049359/399133058537705128729 564459384575477049359/399133058537705128729) 2) 
-	       (remainder (* 1362725501650887306817/963592443113182178088 1362725501650887306817/963592443113182178088) 2)) #f)
-      (test (= (remainder 564459384575477049359/399133058537705128729 1362725501650887306817/963592443113182178088) 
-	       (floor (/ 564459384575477049359/399133058537705128729 1362725501650887306817/963592443113182178088))) #f)
-      (test (= (remainder (* 3289910387877251662993/2326317944764069484905 3289910387877251662993/2326317944764069484905) 2) 
-	       (remainder (* 19175002942688032928599/13558774610046711780701 19175002942688032928599/13558774610046711780701) 2)) #f)
-      (test (= (remainder (* 46292552162781456490001/32733777552734744709300 46292552162781456490001/32733777552734744709300) 2) 
-	       (remainder (* 111760107268250945908601/79026329715516201199301 111760107268250945908601/79026329715516201199301) 2)) #f)
-      (test (= (remainder 46292552162781456490001/32733777552734744709300 111760107268250945908601/79026329715516201199301) 
-	       (floor (/ 46292552162781456490001/32733777552734744709300 111760107268250945908601/79026329715516201199301))) #f)
-      (test (= (remainder (* 269812766699283348307203/190786436983767147107902 269812766699283348307203/190786436983767147107902) 2) 
-	       (remainder (* 1572584048032918633353217/1111984844349868137938112 1572584048032918633353217/1111984844349868137938112) 2)) #f)
-      (test (= (remainder 269812766699283348307203/190786436983767147107902 1572584048032918633353217/1111984844349868137938112) 
-	       (floor (/ 269812766699283348307203/190786436983767147107902 1572584048032918633353217/1111984844349868137938112))) #f)
-
-      (num-test (+ (remainder 37496514441/6659027209 318281039/225058681) 
-		   (* 318281039/225058681 (quotient 37496514441/6659027209 318281039/225058681))) 37496514441/6659027209)
-      (num-test (+ (remainder 74857297149/9809721694 1855077841/1311738121) 
-		   (* 1855077841/1311738121 (quotient 74857297149/9809721694 1855077841/1311738121))) 74857297149/9809721694)
-      (num-test (+ (remainder 48346261034/10439860591 4478554083/3166815962) 
-		   (* 4478554083/3166815962 (quotient 48346261034/10439860591 4478554083/3166815962))) 48346261034/10439860591)
-      (num-test (+ (remainder 584312948386/103768467013 10812186007/7645370045) 
-		   (* 10812186007/7645370045 (quotient 584312948386/103768467013 10812186007/7645370045))) 584312948386/103768467013)
-      (num-test (+ (remainder 1663365607631/217976794617 63018038201/44560482149) 
-		   (* 63018038201/44560482149 (quotient 1663365607631/217976794617 63018038201/44560482149))) 1663365607631/217976794617)
-      (num-test (+ (remainder 4518285376493/975675645481 152139002499/107578520350) 
-		   (* 152139002499/107578520350 (quotient 4518285376493/975675645481 152139002499/107578520350))) 4518285376493/975675645481)
-      (num-test (+ (remainder 10302330360665/1193652440098 367296043199/259717522849) 
-		   (* 367296043199/259717522849 (quotient 10302330360665/1193652440098 367296043199/259717522849))) 10302330360665/1193652440098)
-      (num-test (+ (remainder 73997654926903/8573543875303 886731088897/627013566048) 
-		   (* 886731088897/627013566048 (quotient 73997654926903/8573543875303 886731088897/627013566048))) 73997654926903/8573543875303)
-      (num-test (+ (remainder 176638380405175/18340740190704 5168247530883/3654502875938) 
-		   (* 5168247530883/3654502875938 (quotient 176638380405175/18340740190704 5168247530883/3654502875938))) 176638380405175/18340740190704)
-      (num-test (+ (remainder 468100074910801/83130157078217 12477253282759/8822750406821) 
-		   (* 12477253282759/8822750406821 (quotient 468100074910801/83130157078217 12477253282759/8822750406821))) 468100074910801/83130157078217)
-      (num-test (+ (remainder 843389138467141/517121682660006 30122754096401/21300003689580) 
-		   (* 30122754096401/21300003689580 (quotient 843389138467141/517121682660006 30122754096401/21300003689580))) 843389138467141/517121682660006)
-      (num-test (+ (remainder 1250127478260940/766512153894657 175568277047523/124145519261542) 
-		   (* 175568277047523/124145519261542 (quotient 1250127478260940/766512153894657 175568277047523/124145519261542))) 1250127478260940/766512153894657)
-      (num-test (+ (remainder 21963374527647665/6048967074079039 423859315570607/299713796309065) 
-		   (* 423859315570607/299713796309065 (quotient 21963374527647665/6048967074079039 423859315570607/299713796309065))) 21963374527647665/6048967074079039)
-      (num-test (+ (remainder 45760661301451259/9881527843552324 1023286908188737/723573111879672) 
-		   (* 1023286908188737/723573111879672 (quotient 45760661301451259/9881527843552324 1023286908188737/723573111879672))) 45760661301451259/9881527843552324)
-      (num-test (+ (remainder 1528546195606366451/177100989030047175 5964153172084899/4217293152016490) 
-		   (* 5964153172084899/4217293152016490 (quotient 1528546195606366451/177100989030047175 5964153172084899/4217293152016490))) 1528546195606366451/177100989030047175)
-      (num-test (+ (remainder 543933078269123234/206745572560704147 14398739476117879/10181446324101389) 
-		   (* 14398739476117879/10181446324101389 (quotient 543933078269123234/206745572560704147 14398739476117879/10181446324101389))) 543933078269123234/206745572560704147)
-      (num-test (+ (remainder 4808388068050040138/630118245525664765 34761632124320657/24580185800219268) 
-		   (* 34761632124320657/24580185800219268 (quotient 4808388068050040138/630118245525664765 34761632124320657/24580185800219268))) 4808388068050040138/630118245525664765)
-
-      ))
+(when with-bignums
+  (num-test (remainder -9223372036854775808 5.551115123125783999999999999999999999984E-17) -2.295798100238055639010781305842101573944E-17)
+  (num-test (remainder 295147905149568077200 34359738366) 21754858894)
+  (num-test (remainder 696898287454081973170944403677937368733396 1180591620717411303422) 314390899110894278354)
+  (num-test (remainder 1e19 10) 0.0)
+  (num-test (remainder .1e20 10) 0.0)
+  (num-test (remainder 1e20 10) 0.0)
+  (num-test (remainder 1e21 10) 0.0)
+  (num-test (remainder 1e19 -1) 0.0)
+  (num-test (remainder 1e19 1) 0.0)
+  (num-test (remainder .1e20 1) 0.0)
+  (num-test (remainder 1e20 1) 0.0)
+  (num-test (remainder 10000000000000000000 1) 0)
+  (num-test (remainder 100000000000000000000 1) 0)
+  (num-test (remainder 10000000000000000000 10) 0)
+  (num-test (remainder 100000000000000000000 10) 0)
+  
+  (num-test (remainder 9223372036854775807 1/3) 0)
+  (num-test (remainder 9223372036854775807 2/3) 1/3)
+  (num-test (remainder 922337203685477580 1/3) 0)
+  (test (remainder 1361069299753299783990135442290762165844800+i 8281085446358585640) 'error)
+  (test (remainder 1231231231231231232123 0.0) 'error)
+  (test (remainder 1231231231231231232123 0) 'error)
+  
+  (test (= (remainder (* 4478554083/3166815962 4478554083/3166815962) 2) 
+	   (remainder (* 10812186007/7645370045 10812186007/7645370045) 2)) #f)
+  (test (= (remainder 2.0 (* 4478554083/3166815962 4478554083/3166815962)) 
+	   (remainder (* 10812186007/7645370045 10812186007/7645370045) 2.0)) #f)
+  (test (= (remainder 367296043199/259717522849 886731088897/627013566048) 
+	   (floor (/ 367296043199/259717522849 886731088897/627013566048))) #f)
+  (test (= (remainder (* 5168247530883/3654502875938 5168247530883/3654502875938) 2) 
+	   (remainder (* 12477253282759/8822750406821 12477253282759/8822750406821) 2)) #f)
+  (test (= (remainder 2.0 (* 423859315570607/299713796309065 423859315570607/299713796309065)) 
+	   (remainder (* 1023286908188737/723573111879672 1023286908188737/723573111879672) 2.0)) #f)
+  (test (= (remainder 2.0 (* 34761632124320657/24580185800219268 34761632124320657/24580185800219268)) 
+	   (remainder (* 202605639573839043/143263821649299118 202605639573839043/143263821649299118) 2.0)) #f)
+  (test (= (remainder 34761632124320657/24580185800219268 202605639573839043/143263821649299118) 
+	   (floor (/ 34761632124320657/24580185800219268 202605639573839043/143263821649299118))) #f)
+  (test (= (remainder (* 489133282872437279/345869461223138161 489133282872437279/345869461223138161) 2) 
+	   (remainder (* 1180872205318713601/835002744095575440 1180872205318713601/835002744095575440) 2)) #f)
+  (test (= (remainder (* 2850877693509864481/2015874949414289041 2850877693509864481/2015874949414289041) 2) 
+	   (remainder (* 16616132878186749607/11749380235262596085 16616132878186749607/11749380235262596085) 2)) #f)
+  (test (= (remainder (* 564459384575477049359/399133058537705128729 564459384575477049359/399133058537705128729) 2) 
+	   (remainder (* 1362725501650887306817/963592443113182178088 1362725501650887306817/963592443113182178088) 2)) #f)
+  (test (= (remainder 564459384575477049359/399133058537705128729 1362725501650887306817/963592443113182178088) 
+	   (floor (/ 564459384575477049359/399133058537705128729 1362725501650887306817/963592443113182178088))) #f)
+  (test (= (remainder (* 3289910387877251662993/2326317944764069484905 3289910387877251662993/2326317944764069484905) 2) 
+	   (remainder (* 19175002942688032928599/13558774610046711780701 19175002942688032928599/13558774610046711780701) 2)) #f)
+  (test (= (remainder (* 46292552162781456490001/32733777552734744709300 46292552162781456490001/32733777552734744709300) 2) 
+	   (remainder (* 111760107268250945908601/79026329715516201199301 111760107268250945908601/79026329715516201199301) 2)) #f)
+  (test (= (remainder 46292552162781456490001/32733777552734744709300 111760107268250945908601/79026329715516201199301) 
+	   (floor (/ 46292552162781456490001/32733777552734744709300 111760107268250945908601/79026329715516201199301))) #f)
+  (test (= (remainder (* 269812766699283348307203/190786436983767147107902 269812766699283348307203/190786436983767147107902) 2) 
+	   (remainder (* 1572584048032918633353217/1111984844349868137938112 1572584048032918633353217/1111984844349868137938112) 2)) #f)
+  (test (= (remainder 269812766699283348307203/190786436983767147107902 1572584048032918633353217/1111984844349868137938112) 
+	   (floor (/ 269812766699283348307203/190786436983767147107902 1572584048032918633353217/1111984844349868137938112))) #f)
+  
+  (num-test (+ (remainder 37496514441/6659027209 318281039/225058681) 
+	       (* 318281039/225058681 (quotient 37496514441/6659027209 318281039/225058681))) 37496514441/6659027209)
+  (num-test (+ (remainder 74857297149/9809721694 1855077841/1311738121) 
+	       (* 1855077841/1311738121 (quotient 74857297149/9809721694 1855077841/1311738121))) 74857297149/9809721694)
+  (num-test (+ (remainder 48346261034/10439860591 4478554083/3166815962) 
+	       (* 4478554083/3166815962 (quotient 48346261034/10439860591 4478554083/3166815962))) 48346261034/10439860591)
+  (num-test (+ (remainder 584312948386/103768467013 10812186007/7645370045) 
+	       (* 10812186007/7645370045 (quotient 584312948386/103768467013 10812186007/7645370045))) 584312948386/103768467013)
+  (num-test (+ (remainder 1663365607631/217976794617 63018038201/44560482149) 
+	       (* 63018038201/44560482149 (quotient 1663365607631/217976794617 63018038201/44560482149))) 1663365607631/217976794617)
+  (num-test (+ (remainder 4518285376493/975675645481 152139002499/107578520350) 
+	       (* 152139002499/107578520350 (quotient 4518285376493/975675645481 152139002499/107578520350))) 4518285376493/975675645481)
+  (num-test (+ (remainder 10302330360665/1193652440098 367296043199/259717522849) 
+	       (* 367296043199/259717522849 (quotient 10302330360665/1193652440098 367296043199/259717522849))) 10302330360665/1193652440098)
+  (num-test (+ (remainder 73997654926903/8573543875303 886731088897/627013566048) 
+	       (* 886731088897/627013566048 (quotient 73997654926903/8573543875303 886731088897/627013566048))) 73997654926903/8573543875303)
+  (num-test (+ (remainder 176638380405175/18340740190704 5168247530883/3654502875938) 
+	       (* 5168247530883/3654502875938 (quotient 176638380405175/18340740190704 5168247530883/3654502875938))) 176638380405175/18340740190704)
+  (num-test (+ (remainder 468100074910801/83130157078217 12477253282759/8822750406821) 
+	       (* 12477253282759/8822750406821 (quotient 468100074910801/83130157078217 12477253282759/8822750406821))) 468100074910801/83130157078217)
+  (num-test (+ (remainder 843389138467141/517121682660006 30122754096401/21300003689580) 
+	       (* 30122754096401/21300003689580 (quotient 843389138467141/517121682660006 30122754096401/21300003689580))) 843389138467141/517121682660006)
+  (num-test (+ (remainder 1250127478260940/766512153894657 175568277047523/124145519261542) 
+	       (* 175568277047523/124145519261542 (quotient 1250127478260940/766512153894657 175568277047523/124145519261542))) 1250127478260940/766512153894657)
+  (num-test (+ (remainder 21963374527647665/6048967074079039 423859315570607/299713796309065) 
+	       (* 423859315570607/299713796309065 (quotient 21963374527647665/6048967074079039 423859315570607/299713796309065))) 21963374527647665/6048967074079039)
+  (num-test (+ (remainder 45760661301451259/9881527843552324 1023286908188737/723573111879672) 
+	       (* 1023286908188737/723573111879672 (quotient 45760661301451259/9881527843552324 1023286908188737/723573111879672))) 45760661301451259/9881527843552324)
+  (num-test (+ (remainder 1528546195606366451/177100989030047175 5964153172084899/4217293152016490) 
+	       (* 5964153172084899/4217293152016490 (quotient 1528546195606366451/177100989030047175 5964153172084899/4217293152016490))) 1528546195606366451/177100989030047175)
+  (num-test (+ (remainder 543933078269123234/206745572560704147 14398739476117879/10181446324101389) 
+	       (* 14398739476117879/10181446324101389 (quotient 543933078269123234/206745572560704147 14398739476117879/10181446324101389))) 543933078269123234/206745572560704147)
+  (num-test (+ (remainder 4808388068050040138/630118245525664765 34761632124320657/24580185800219268) 
+	       (* 34761632124320657/24580185800219268 (quotient 4808388068050040138/630118245525664765 34761632124320657/24580185800219268))) 4808388068050040138/630118245525664765))
+  
 
 (test (remainder 123 123 123) 'error)
 (test (remainder 123) 'error)
@@ -54540,43 +54413,41 @@ hi6: (string-app...
        #<eof> '(1 2 3) #\newline (lambda (a) (+ a 1)) #<unspecified> #<undefined>))
 
 
-(if with-bignums
-    (let ((top-exp 60))
-      (let ((happy #t))
-	(do ((i 2 (+ i 1)))
-	    ((or (not happy) (> i top-exp)))
-	  (let* ((val1 (inexact->exact (expt 2 i)))
-		 (val2 (+ val1 1))
-		 (mv (modulo val2 2))
-		 (qv (quotient val2 2))
-		 (rv (remainder val2 2)))
-	    (if (not (= mv 1))
-		(begin (set! happy #f) (display "(modulo ") (display val2) (display " 2) = ") (display mv) (display "?") (newline)))
-	    (if (not (= qv (/ val1 2)))
-		(begin (set! happy #f) (display "(quotient ") (display val2) (display " 2) = ") (display qv) (display "?") (newline)))
-	    (if (not (= rv 1))
-		(begin (set! happy #f) (display "(remainder ") (display val2) (display " 2) = ") (display rv) (display "?") (newline))))))
-      
-      (let ((happy #t))
-	(do ((i 2 (+ i 1)))
-	    ((or (not happy) (> i top-exp)))
-	  (let* ((val1 (inexact->exact (expt 2 i)))
-		 (val2 (/ (+ val1 1) 2))
-		 (mv (modulo val2 2))
-		 (qv (quotient val2 2))
-		 (rv (remainder val2 2)))
-	    (if (not (= mv 1/2))
-		(begin (set! happy #f) (display "(modulo ") (display val2) (display " 2) = ") (display mv) (display "?") (newline)))
-	    (if (not (= qv (/ val1 4)))
-		(begin (set! happy #f) (display "(quotient ") (display val2) (display " 2) = ") (display qv) (display "?") (newline)))
-	    (if (not (= rv 1/2))
-		(begin (set! happy #f) (display "(remainder ") (display val2) (display " 2) = ") (display rv) (display "?") (newline))))))))
+(when with-bignums
+  (let ((top-exp 60))
+    (let ((happy #t))
+      (do ((i 2 (+ i 1)))
+	  ((or (not happy) (> i top-exp)))
+	(let* ((val1 (inexact->exact (expt 2 i)))
+	       (val2 (+ val1 1))
+	       (mv (modulo val2 2))
+	       (qv (quotient val2 2))
+	       (rv (remainder val2 2)))
+	  (if (not (= mv 1))
+	      (begin (set! happy #f) (display "(modulo ") (display val2) (display " 2) = ") (display mv) (display "?") (newline)))
+	  (if (not (= qv (/ val1 2)))
+	      (begin (set! happy #f) (display "(quotient ") (display val2) (display " 2) = ") (display qv) (display "?") (newline)))
+	  (if (not (= rv 1))
+	      (begin (set! happy #f) (display "(remainder ") (display val2) (display " 2) = ") (display rv) (display "?") (newline))))))
+    
+    (let ((happy #t))
+      (do ((i 2 (+ i 1)))
+	  ((or (not happy) (> i top-exp)))
+	(let* ((val1 (inexact->exact (expt 2 i)))
+	       (val2 (/ (+ val1 1) 2))
+	       (mv (modulo val2 2))
+	       (qv (quotient val2 2))
+	       (rv (remainder val2 2)))
+	  (if (not (= mv 1/2))
+	      (begin (set! happy #f) (display "(modulo ") (display val2) (display " 2) = ") (display mv) (display "?") (newline)))
+	  (if (not (= qv (/ val1 4)))
+	      (begin (set! happy #f) (display "(quotient ") (display val2) (display " 2) = ") (display qv) (display "?") (newline)))
+	  (if (not (= rv 1/2))
+	      (begin (set! happy #f) (display "(remainder ") (display val2) (display " 2) = ") (display rv) (display "?") (newline))))))))
 
-(if (not with-bignums)
-    (begin
-;      (test (modulo 1e20 10) 'error)
-      (test (remainder 1e20 10) 'error)
-      (test (quotient 1e20 10) 'error)))
+(unless with-bignums
+  (test (remainder 1e20 10) 'error)
+  (test (quotient 1e20 10) 'error))
 
 
 
@@ -55097,359 +54968,355 @@ hi6: (string-app...
  (list "hi" () (integer->char 65) #f #t '(1 2) _ht_ _null_ _c_obj_ 'a-symbol (cons 1 2) (make-vector 3) abs 
        #<eof> '(1 2 3) #\newline (lambda (a) (+ a 1)) #<unspecified> #<undefined>))
 
-(if with-bignums 
-    (begin
-      (num-test (gcd -9223372036854775808 -9223372036854775808) 9223372036854775808)
-      (num-test (gcd -9223372036854775808 9223372036854775807 -9223372036854775808) 1)
-      (num-test (gcd 12345678901234567890 12345) 15)
-      (num-test (gcd 2155967190204955525121 -12850565775361 93458656690177) 557057)
-      (num-test (gcd 2155967190204955525121 0) 2155967190204955525121)
-      (num-test (gcd 2155967190204955525121 12850565775361 93458656690177) 557057)
-      (num-test (gcd 2346026393680644703525505657 17293822570713318399) 11)
-      (num-test (gcd 974507656412513757857315037382926980395082974811562770185617915360 -1539496810360685510909469177732386446833404488164283) 1)
-      (num-test (gcd 460683358924445799142 518) 518)
-      (num-test (gcd 113021475230160 74635) 6785)
-      (num-test (gcd 74228340534140364 363909) 1677)
-      (num-test (gcd 69242022961311060 48305942) 60458)
-      (num-test (gcd -286967952870300 2273388) 156)
-      (num-test (gcd 302822258393413362492399 29) 29)
-      (num-test (gcd 10491072879382200 133) 133)
-      (num-test (gcd 167206737423420464 609) 7)
-      (num-test (gcd 72212583812867784 4888799) 47)
-      (num-test (gcd 4170116471639397292390 1798025) 359605)
-      (num-test (gcd 83910330283522050 35224) 238)
-      (num-test (gcd 275373383775647594346 66884092) 104834)
-      (num-test (gcd 14656657495570695990 37) 1)
-      (num-test (gcd 95470974177676509874110 1219) 1219)
-      (num-test (gcd 619506317623001424 -5957) 7)
-      (num-test (gcd 11268171656665155960 9858) 186)
-      (num-test (gcd 6172860073826160 5167394) 3074)
-      (num-test (gcd 26457493095663264 1491412) 3956)
-      (num-test (gcd -8481384175941103284 313836405) 51)
-      (num-test (gcd 60356595775749199080 -176098815946) 1716346)
-      (num-test (gcd 611492274956002440 37) 37)
-      (num-test (gcd 164614611843685080 1711) 59)
-      (num-test (gcd 93177516542679418720 62197) 37)
-      (num-test (gcd 938959746797519770440 127558) 127558)
-      (num-test (gcd 137670522526899326250 200) 50)
-      (num-test (gcd 852063402206742880 41643478) 58406)
-      (num-test (gcd 55947291202307909360 188546228) 6364)
-      (num-test (gcd 12877971214039423262680 9832253830) 121730)
-      (num-test (gcd 192158415774146059920 53) 53)
-      (num-test (gcd 902814024155808960 1829) 31)
-      (num-test (gcd 1265864304573235487120 4921) 259)
-      (num-test (gcd -14172662463567665400 95817) 57)
-      (num-test (gcd 32171996211745702482324 2368555) 259)
-      (num-test (gcd 971324258606045826300 4576748) 236)
-      (num-test (gcd 2400649320046378377000 1704690) 930)
-      (num-test (gcd 953233796456393760 18342152493) 574287)
-      (num-test (gcd 28906333140964843080 236206740) 823020)
-      (num-test (gcd 775403093708557121609032 41) 41)
-      (num-test (gcd 12587009808135760402860 2491) 47)
-      (num-test (gcd 510685807527370566909720 76) 4)
-      (num-test (gcd 9842598153710524682146590 10089) 3363)
-      (num-test (gcd 44936631038618189620242012 30740) 6148)
-      (num-test (gcd 934589372977008750144 373650) 282)
-      (num-test (gcd 33027125273398900134069150 840577803) 840577803)
-      (num-test (gcd 4428219127938822420288 1695783782) 12502)
-      (num-test (gcd 29316428815807608915440 560764380) 153340)
-      (num-test (gcd 1364397376360544429904 19) 19)
-      (num-test (gcd 4991450791697293128313385277 329) 7)
-      (num-test (gcd 75448279792981695149550 3009) 3)
-      (num-test (gcd 181031604499464166188731133 3364) 1)
-      (num-test (gcd 405831142402606479845286 2746214) 161542)
-      (num-test (gcd 89170366469003867207160 25337230) 11470)
-      (num-test (gcd 13523725766340619200 1490114045) 28595)
-      (num-test (gcd 104705939487154940255412 192200052) 26196)
-      (num-test (gcd 7232591421499800642000 16584679460) 7820)
-      (num-test (gcd 14043796716396386984750160 -33382708236) 358953852)
-      (num-test (gcd 13894638105872256412416 23) 23)
-      (num-test (gcd 147611447155643499428400 118) 2)
-      (num-test (gcd 13356594697070649024 4558) 106)
-      (num-test (gcd 15089731174706036171537760 90) 30)
-      (num-test (gcd 307230141273924828960 1971507) 1581)
-      (num-test (gcd 2582563944548247741930009096 22873474) 1759498)
-      (num-test (gcd 1074296602920111687342072 146235518) 21758)
-      (num-test (gcd 774058642832724262993980 -407557010) 2531410)
-      (num-test (gcd 291091930213008490369569480 13412544348) 26508)
-      (num-test (gcd 2089068565149831833568 7302038455228) 68171356)
-      (num-test (gcd 1064437567441124038217970656 5) 1)
-      (num-test (gcd 142557826750459447787460 1333) 31)
-      (num-test (gcd 311779340580033594160200 23693) 23693)
-      (num-test (gcd 29314187023691666530559664 110143) 110143)
-      (num-test (gcd 222003853016244177637944900 857463) 857463)
-      (num-test (gcd 6247776111945111006243552 77976501) 2515371)
-      (num-test (gcd 1140058514761397155259712 5530338) 502758)
-      (num-test (gcd 580962736822969724865449808 55686036) 1505028)
-      (num-test (gcd 4100502596989506786787500 45333475410) 563730)
-      (num-test (gcd 1497378750311599979536944 262630276090) 361046)
-      (num-test (gcd 105637634198318524045536 2633013240) 150072)
-      (num-test (gcd 11415822547029425161364106595632 7) 1)
-      (num-test (gcd 198305933339312916107438448 177) 3)
-      (num-test (gcd 3127415425979879537134790928 3335) 667)
-      (num-test (gcd 589703503861221139260034914750 13209) 357)
-      (num-test (gcd 3108579252052448504121792 14322) 462)
-      (num-test (gcd 636976201153021006473464400 66264077) 3487583)
-      (num-test (gcd 9544425315508129998909285900 1488396) 212628)
-      (num-test (gcd 458100280193857502802977376 260747103934) 6212554)
-      (num-test (gcd 114208186302155358124900650 22076867505) 6342105)
-      (num-test (gcd 90107067439719108194114160 28566806069714) 3408519994)
-      (num-test (gcd 2976572787365723002218245484 -110104803958578) 2966904798)
-      (num-test (gcd 53453375725613238735360 17) 1)
-      (num-test (gcd 888822833524306124874229800 106) 106)
-      (num-test (gcd 21275338550698297089687698855820 3021) 3021)
-      (num-test (gcd 417525245705449941528380320750068 5828) 5828)
-      (num-test (gcd 1954871230146370370001829871352 22765249) 22765249)
-      (num-test (gcd 903057827710908645847577520 648545995) 520085)
-      (num-test (gcd 6002846634833433581621040 28493572159) 27869)
-      (num-test (gcd 26428903214964558277189300080 100428856) 3463064)
-      (num-test (gcd 470486531607553676511206181180 28495896) 2964)
-      (num-test (gcd 483599554429365539310928369206620 5577334078910) 105232718470)
-      (num-test (gcd 134511400157705323668887400 -1285071093558916) 340069628)
-      (num-test (gcd -25897125642468049125349982599216 1183846707540) 26307704612)
-      (num-test (gcd 1118034209930460291955200 3) 3)
-      (num-test (gcd 16297594064835666104344589410644 413) 413)
-      (num-test (gcd 536762539932642345554192060100 1378) 1378)
-      (num-test (gcd 933250179448203335817687635834340 58029) 69)
-      (num-test (gcd 65573457048202714607131200 486115) 3655)
-      (num-test (gcd 85664559165674439863772868932 322014) 322014)
-      (num-test (gcd 7232817686074320060728552759760 11307940) 11307940)
-      (num-test (gcd 78400098291720425971762131120 5646921093) 5646921093)
-      (num-test (gcd 345445746644065669842240 19727989065) 2193705)
-      (num-test (gcd 627854758484491743169777558200 -750371721805653) 156322329)
-      (num-test (gcd 788233263079483492974876830792850 7170146100) 5867550)
-      (num-test (gcd 18378856389802641496737518160 6247594493140) 824329660)
-      (num-test (gcd 9620902642431357480148667659080 59) 59)
-      (num-test (gcd 16008524600631853118144316000 629) 1)
-      (num-test (gcd 4342138447708715023205684275423920 53041) 1711)
-      (num-test (gcd 2431833161592653384508687244500 47541) 47541)
-      (num-test (gcd 39424620224103957589082132160 1671734) 1671734)
-      (num-test (gcd 652830233576052788654372406432 552231327) 12842589)
-      (num-test (gcd 6892963340916411083970414000 3662431431) 77924073)
-      (num-test (gcd 29102758215190063506219566460000 10565720) 10565720)
-      (num-test (gcd 21253900104556838003127171970777418412 1182797770) 62698)
-      (num-test (gcd 3964268932242030284914943132662620 21244177854110) 18521515130)
-      (num-test (gcd 6070388091189460078138338240 40809131994181213) 274113073169)
-      (num-test (gcd 9685989954133695108793384134000 964113514382876) 169529367748)
-      (num-test (gcd 56468122001858834917195045500 -429400787158167902) 2090772606538)
-      (num-test (gcd 18843408973202596901221568364900 47) 47)
-      (num-test (gcd 7800980538292163259967028613764250 6) 6)
-      (num-test (gcd 270433907726619219545089642715200 3422) 58)
-      (num-test (gcd 45771666919597903071546708768 2342359) 2183)
-      (num-test (gcd 47198294949461301503537593835384892 314502) 5934)
-      (num-test (gcd 3165335901519110207943908102359110 14953473) 207)
-      (num-test (gcd 189219585097956261544520863361400 35605794) 35605794)
-      (num-test (gcd -38532137569034426600955256933810890813 -1341358608707) 6436369)
-      (num-test (gcd 1396277868664090735481380981225896 312520860) 62504172)
-      (num-test (gcd -864038349500762576564773759109700 714136202724) 16607818668)
-      (num-test (gcd 12514185871591242579049167322464 10706997440178) 200614518)
-      (num-test (gcd 1981802660405609330969478067056636 33312289752) 14779188)
-      (num-test (gcd 979313401024175219420658240 125278417383795) 1551032145)
-      (num-test (gcd 4074026154111369481048033354344 29) 29)
-      (num-test (gcd 599666571180604695702511920885005100 129) 129)
-      (num-test (gcd 5703263639326551702474610108800 1978) 1978)
-      (num-test (gcd 134137932950214683609064669163440 190619) 143)
-      (num-test (gcd 344735091370772631136645455600 1048985) 1048985)
-      (num-test (gcd 6759508339299085316106145385400 4969610) 160310)
-      (num-test (gcd 700334422308861928135313594400 228529587) 432003)
-      (num-test (gcd 10277417891211405957191810814198480 2516552038) 228777458)
-      (num-test (gcd 490099971577877358878082782880 9282588354) 17547426)
-      (num-test (gcd 1954558750269048828645390249600 5575829490) 327989970)
-      (num-test (gcd 1360588454560018295496656378989200 7868178296420) 14873682980)
-      (num-test (gcd 4337552841738910859248770564912480 17722936528737830) 338114285990)
-      (num-test (gcd 215913068853045803981566931862756 7009479781500) 2930844)
-      (num-test (gcd 44890707654126305940250882318870941900 18329973480720) 1527497790060)
-      (num-test (gcd 28579720891831355496720656680837200 3) 3)
-      (num-test (gcd 29332703209780553199747293473184160 1711) 29)
-      (num-test (gcd 3648979393315349438003046604440000 186) 186)
-      (num-test (gcd 1159760236369472473822068077011807878780 25714) 25714)
-      (num-test (gcd 158186359726371025615685433600 31395) 4485)
-      (num-test (gcd 331091450443070201468559735703944 28424) 28424)
-      (num-test (gcd 9734443639363161342241553023288200 1961348207) 63269297)
-      (num-test (gcd 701896612128009033011419603540080 51300) 3420)
-      (num-test (gcd 86169288128517384618860929451245320 5032162527446) 180164066)
-      (num-test (gcd 64828800524794653881296183831741773624 4645294472) 6354712)
-      (num-test (gcd 49068907706533938991402184550000 268183371225) 742890225)
-      (num-test (gcd 1708602980304476478496020543612288 4083128544) 131713824)
-      (num-test (gcd 17608179287674151740172985536160 980399424528) 91686096)
-      (num-test (gcd 43194437079731225735521919644800 -178119261126453036) 80633436453804)
-      (num-test (gcd 817555977437791699707628651571149344 59) 59)
-      (num-test (gcd 19062946261334997559157066059536 533) 41)
-      (num-test (gcd 6533849124840489114353090499099000 598) 26)
-      (num-test (gcd 427663965127849896842400211428345149025 234) 117)
-      (num-test (gcd 352395507261316174741530450071590608 154734) 3774)
-      (num-test (gcd 391579493632653867660919800000 9221565) 645)
-      (num-test (gcd 2618798923882923048581401148931738000 681876) 52452)
-      (num-test (gcd 174712575449141140214591110997980800 233260339838) 126154862)
-      (num-test (gcd 88598141227372995032227898284800 1929763976) 155288)
-      (num-test (gcd 210110141308655567793064872567302676320 720390430628) 468699044)
-      (num-test (gcd 668425085137718599277317523827419000 19898594339442) 58711254)
-      (num-test (gcd 89533471731097208414073727453200 4173840860670546) 2257350384354)
-      (num-test (gcd 113987439157802480362236410675251462620 21548296273949445)  1134120856523655)
-      (num-test (gcd 48129335993995093308894209644253760 1009442888504820) 84891337020)
-      (num-test (gcd -3497836376962291922989777163497680 138736290091634664)  3383811953454504)
-      (num-test (gcd 11371924962562208722154622794880 3) 3)
-      (num-test (gcd 9451631862008339290824315653784000 703) 19)
-      (num-test (gcd 16869347753325980368094612370435598560 806) 806)
-      (num-test (gcd 4701845646467068759127854100132739552 3198) 6)
-      (num-test (gcd 1029865193584911347147121232800485280 1005771) 24531)
-      (num-test (gcd 10657125216930337802109861408000 2415138) 2838)
-      (num-test (gcd 14382707743772734802155022983680 247913634) 144894)
-      (num-test (gcd 60134748581470366378101904574533857248 54828228) 493948)
-      (num-test (gcd 214830664120540781167218700750596000 505665810) 11759670)
-      (num-test (gcd 48933004118344447687599112101802800 6263883444) 106167516)
-      (num-test (gcd 5498670161558110606435630054129739400 262699548132) 1346604)
-      (num-test (gcd 35941673649029587182509620977230062500 25622409466332) 525598668)
-      (num-test (gcd 1592802602494326390643157055239113248 736377633395508) 960075141324)
-      (num-test (gcd 4043816553144402557587143272522043028314 5011466158645380)  366067652202)
-      (num-test (gcd 7171921165220830707276631005512550 1765284492289500) 176528449228950)
-      (num-test (gcd 2402189359210218692854826119405968750 23) 1)
-      (num-test (gcd 26149068753160488131648964110990162400 1147) 31)
-      (num-test (gcd 556184059176863945810376239306506311552 4089) 4089)
-      (num-test (gcd 67871323087036310486238021899264593800 13395) 13395)
-      (num-test (gcd 12750401179065252879838440979200 -7177173) 7177173)
-      (num-test (gcd 278110245000092733617125071646080 17748) 17748)
-      (num-test (gcd 13408203364935178481017292708752000 50619404) 1368092)
-      (num-test (gcd 124271828931784534297423756437875067000 -8839796595) 4068015)
-      (num-test (gcd 11893442806922081156953529319100769836176 972789007267) 983608703)
-      (num-test (gcd 352581052555284857902053030133344488264100 923561430099) 54327142947)
-      (num-test (gcd 6108908012714804315575319947340956346976 31944833628092) 97096758748)
-      (num-test (gcd 67475643422116264959949054821520228800 22515435540) 326310660)
-      (num-test (gcd 470601888939348535946408832 5135943991060962937) 36905011)
-      (num-test (gcd -110759232155568113345545635903016614000 30159198663300)  30159198663300)
-      (num-test (gcd 146100914712024458707469587112300146320 26868173101560) 10304280)
-      (num-test (gcd 12173192708601511002951184416658091200 466645866900785428350)  1496624001041650)
-      (num-test (gcd 5784684831478746253226687170890240 13) 13)
-      (num-test (gcd 35042260655085685815432622412891903767500 667) 667)
-      (num-test (gcd 2903871349270676921837488659419545120987500 530) 530)
-      (num-test (gcd 630123969240840167098426767919876491188000 77691) 25897)
-      (num-test (gcd 33192703032132982013024959634241667249800 4684718) 126614)
-      (num-test (gcd 4731525733734729472809717145544850000 90706055) 90706055)
-      (num-test (gcd 214011009809686092216200126896120006823232 50400042) 258)
-      (num-test (gcd 5854250735296111435541950856160000 24357777002) 817622)
-      (num-test (gcd 35348208247612761916374738259136697649608 156806713508) 8596388)
-      (num-test (gcd 612558317420289618714916924536521515286100 2377007388) 125105652)
-      (num-test (gcd 181857299802925368992522029882739454720 21606337755618)  21606337755618)
-      (num-test (gcd 4731635341196946327443020710970699860000 58092526675092) 776108892)
-      (num-test (gcd 22081740554432638182773611616166588288192 61419768950540)  12283953790108)
-      (num-test (gcd 125627844706077784535328068665849312000 30482033400) 32200)
-      (num-test (gcd 1225504716872819103560254268197955520 510813364186125) 168863922045)
-      (num-test (gcd 5209185280578468690281136425214396728400 2327880739319250103818)  829166238)
-      (num-test (gcd 230425011604643097634961294406535254400 31) 31)
-      (num-test (gcd 13222608481676137093434201748083744000 893) 893)
-      (num-test (gcd 13348198818240350339028224064019716678960 651) 3)
-      (num-test (gcd 7236172685650198160266777676385295337308176 23426) 442)
-      (num-test (gcd 756264162229440667711265021676693350760 28899) 28899)
-      (num-test (gcd 40915062421030872924283823601517905600 36345062) 36345062)
-      (num-test (gcd 1174590526522170015825602834292923520 4991486258) 145114)
-      (num-test (gcd 2891892862328155581145450075391651333218020 35138529818) 35138529818)
-      (num-test (gcd 1993335355070485984559797658834121810059400 535644500) 2612900)
-      (num-test (gcd 6324295450641455215591954662726515160 367472693133) 8962748613)
-      (num-test (gcd 6576388154814679090356195121505112000 15901952377630) 969690370)
-      (num-test (gcd 117828556355409428513249595788296238400 565992666495795) 33126555)
-      (num-test (gcd 592831716700236607285748949860604000 139641978135660) 343100683380)
-      (num-test (gcd 106766839071170184723986891291602032000 1584924526628112)  1983635202288)
-      (num-test (gcd 21677148858122146832326483307664860804937400 247815827510760)  9178363981880)
-      (num-test (gcd 14079549844487257384278196623697173813600 160967604100961853832)  42959600534344)
-      (num-test (gcd 2696480372014145687016224877963234647656980 -2219319031453896088860)  1258830987778727220)
-      (num-test (gcd 13545431257849875145060979241270859310160 29) 29)
-      (num-test (gcd 137485634482479300158725199474868559498162500 329) 47)
-      (num-test (gcd 529252417743761759027305009539254400 3243) 3243)
-      (num-test (gcd 133897419738958073238580385894509887148800 330455) 330455)
-      (num-test (gcd 3896215507210178905244623173635584334007288624 1005238) 1005238)
-      (num-test (gcd 17654511984514518592175290794029073043800 1060530) 36570)
-      (num-test (gcd 16470780256339082688310222474503880382858400 913836) 913836)
-      (num-test (gcd 57267105834722825210001789897760395576000 2958974018) 62956894)
-      (num-test (gcd 521977833444747522001426544601807810543216 1066521690) 4960566)
-      (num-test (gcd 1699559962174727325529414216960251941390400 25883611479) 30924267)
-      (num-test (gcd 10654036597801063717295948399628964800 317449894126222) 19212606314)
-      (num-test (gcd 381902381115592200811990304316262139150724960 4640335440216)  4640335440216)
-      (num-test (gcd 425968526187959807410151867411382902838703889232 1882826315615025)  4430179566153)
-      (num-test (gcd 174609167728518272531601927200939868792000 1712923655178450) 6189150)
-      (num-test (gcd 3325168366561555458817274989681612518000 1699726139891780)  130748164607060)
-      (num-test (gcd 11429650426242566426919762928176000 7414967839104) 5416338816)
-      (num-test (gcd 2104794191230056678355480848036599377844400 -16946684823025584)  182222417451888)
-      (num-test (gcd 11894522530167763519415142641640874994880 7) 7)
-      (num-test (gcd 5906329981690378696996009087718418780000 185) 185)
-      (num-test (gcd 3056294774178096513474941936265025440000 658) 658)
-      (num-test (gcd 10491907660880423349353457742257185280 123369) 123369)
-      (num-test (gcd 673239479595593149777212259021965839229225628776 15470) 3094)
-      (num-test (gcd 1506608574369860432616005754109397877696 1474070) 294814)
-      (num-test (gcd 4849814041048623250005708880379694793905000 2172220582) 2172220582)
-      (num-test (gcd 21154344928580705924176101470087564940000 5023204186) 5023204186)
-      (num-test (gcd 346448039376394135288065831861806112294000 776147372) 25037012)
-      (num-test (gcd 2339009760844587560470606952218133142645504 194201967414) 5248701822)
-      (num-test (gcd 2242982161480922111384667548175169152 21419749763490) 2316901002)
-      (num-test (gcd 4717315265246821759830981157482117120 45609714193992) 26227552728)
-      (num-test (gcd 16628111321698075419789804224660024289936 4643626415880804)  1653124391556)
-      (num-test (gcd 115557531507210992033160068979962880 88406536976058378)  36546728803662)
-      (num-test (gcd 21059511907771200155093927745003762840000 180298981648603620)  191197223381340)
-      (num-test (gcd 2124921015128697258800067298086064536000 2282525112298516782924)  15103625661372)
-      (num-test (gcd 16015671538624533047089928322348864000 49817926936366875)  69075001125)
-      (num-test (gcd 166517667014186289390514558017250969134523800 -43413708621878528404068)  1188862957578074004)
-      (num-test (gcd -2780796292789128359666429021610464935722000 47) 47)
-      (num-test (gcd 21297913114430245153455383503409684916193317960 58) 58)
-      (num-test (gcd 1516745257039775143654568869485529015398000 6293) 6293)
-      (num-test (gcd 8447692776411453120390905608381515479808 2030) 14)
-      (num-test (gcd 958876033949638283967045624731391031146081240 9834415) 166685)
-      (num-test (gcd 4731349833403602529573388098680617532624192 14868) 14868)
-      (num-test (gcd 6375001358038970462026761077388061675464000 430513678) 430513678)
-      (num-test (gcd 254088526608579040642428151389718385042344800 4799428101) 255411)
-      (num-test (gcd 21140490542258031885408065086507444825621023648 164778747198)  13189686)
-      (num-test (gcd 34214837305812460226811046733375808000 4312787868) 746028)
-      (num-test (gcd 11450197571956515037245443769386989035470896800 75585518430279)  5814270648483)
-      (num-test (gcd 1211397915863796187148880114197307052796506376580 538601201880)  11708721780)
-      (num-test (gcd 5454139401260819402160859765169199667337088 30452838731872)  48414687968)
-      (num-test (gcd 744935981632690384026127091216926530879171660 1032747922358460)  60868033380)
-      (num-test (gcd 324574326062026951443376280715122947502400 103751223626207988025)  3334229637375325)
-      (num-test (gcd 15272163751269260921486082393684080908800 6484309049057400)  341279423634600)
-      (num-test (gcd 386527546655781220813671331401971490218262720 3481571963427119100)  1915440648660)
-      (num-test (gcd 3189682029126430413458911948222943640000 -6724598925622907976570)  829921474949490)
-      (num-test (gcd -709403542855323660533377490060722241678400 7) 7)
-      (num-test (gcd 139803787314578422635552652090095842837312147438904 123) 123)
-      (num-test (gcd 171985399350431759069945935900956183322827030835560 18241) 18241)
-      (num-test (gcd 33090522521924986387051477884789600000 26187) 609)
-      (num-test (gcd 1733723010009930088165729903139785699319986530 372945) 7935)
-      (num-test (gcd 56408303994570817306318494803635460247582000 5761730) 10810)
-      (num-test (gcd 25845509336769185412951159262424903513866295760 64371378271)  64371378271)
-      (num-test (gcd 624970361450506104794172455132584603069611058500 108222780)  108222780)
-      (num-test (gcd 82823962548382643645255524843049561752323600 135325929794)  12302357254)
-      (num-test (gcd 170620453449723034746079844571491973300000 9460614789626)  230746702186)
-      (num-test (gcd 125144597811313015929871740675462711600000 12764411911636)  12726233212)
-      (num-test (gcd 257193319319332344553297882967977761077115600 6510126541380)  158783574180)
-      (num-test (gcd 879624546681838385457288074812140664728758550 10045784120501316)  80757786714)
-      (num-test (gcd 18300938860777100857669855248554588369659200 118088077425391892)  1433647093268)
-      (num-test (gcd 8394780474625841647581984803260010511075000 746584618179400)  11198041400)
-      (num-test (gcd 146802334713757872619395774222116859916800 718775571956687400)  854667743111400)
-      (num-test (gcd 240155883351717999820072393833707008014911556000 -1350921510529331832)  10157304590446104)
-      (num-test (gcd -918942437243241528855354123800826649596480 -74343962238703160850)  3476056267530)
-      (num-test (gcd 1361069299753299783990135442290762165844800 8281085446358585640)  8546011812547560)
-
-      (num-test (gcd 111738283365989051/177100989030047175 5964153172084899/4217293152016490) 1/149377357650353093734710215583150)
-      (num-test (gcd 11571718688839/18340740190704 5168247530883/3654502875938) 1/33513143886879715286440176)
-      (num-test (gcd 130441933147714940/206745572560704147 14398739476117879/10181446324101389) 1/2104968949772418231181062860760183)
-      (num-test (gcd 137528045312/217976794617 63018038201/44560482149) 1/9713151065427067791933)
-      (num-test (gcd 205632218873398596256/325919355854421968365 16616132878186749607/11749380235262596085) 1/5590292610168557896833020882635974965)
-      (num-test (gcd 22803850947114245497/36143248623210700400 1180872205318713601/835002744095575440) 1/34295127023760867970857561935725200)
-      (num-test (gcd 326267455807135/517121682660006 30122754096401/21300003689580) 1/1835782291436657618117489580)
-      (num-test (gcd 3447601211185766107/5464318637170278738 202605639573839043/143263821649299118) 1/391419585335252015613280949198776542)
-      (num-test (gcd 3816473305410548/6048967074079039 423859315570607/299713796309065) 313/1812958885520765991472282188535)
-      (num-test (gcd 397560349370386783/630118245525664765 34761632124320657/24580185800219268) 17/15488423551129023359673258461692020)
-      (num-test (gcd 4640282259296926456/7354673373747273033 489133282872437279/345869461223138161) 1/2543756917250129165517177396348512313)
-      (num-test (gcd 483615324366283/766512153894657 175568277047523/124145519261542) 1/95159049365535186345899381094)
-      (num-test (gcd 50247984153525417450/79641170620168673833 2850877693509864481/2015874949414289041) 1/160546640795227287934843564657515364153)
-      (num-test (gcd 5409303924479/8573543875303 886731088897/627013566048) 1/5375728318922723466512544)
-      (num-test (gcd 5680010011095224105765/9002602871306688466954 40114893348711941777/28365513113449345692) 1/127681724900613301985499022520606932131084)
-      (num-test (gcd 615582794569/975675645481 152139002499/107578520350) 19/104961742282377144038350)
-      (num-test (gcd 6189245291/9809721694 1855077841/1311738121) 1/12867785902420496974)
-      (num-test (gcd 6234549927241963/9881527843552324 1023286908188737/723573111879672) 1/105147174292423231311078293496)
-      (num-test (gcd 65470613321/103768467013 10812186007/7645370045) 1/793348329316760825585)
-      (num-test (gcd 6586818670/10439860591 4478554083/3166815962) 1/33061117160633553542)
-      (num-test (gcd 7530699980955811472069/11935877073996486182239 96845919575610633161/68480406462161287469) 1/817373713509671731923053344199644801063091)
-      (num-test (gcd 753110839881/1193652440098 367296043199/259717522849) 1/310012454884916918799202)
-      ))
-
-
+(when with-bignums 
+  (num-test (gcd -9223372036854775808 -9223372036854775808) 9223372036854775808)
+  (num-test (gcd -9223372036854775808 9223372036854775807 -9223372036854775808) 1)
+  (num-test (gcd 12345678901234567890 12345) 15)
+  (num-test (gcd 2155967190204955525121 -12850565775361 93458656690177) 557057)
+  (num-test (gcd 2155967190204955525121 0) 2155967190204955525121)
+  (num-test (gcd 2155967190204955525121 12850565775361 93458656690177) 557057)
+  (num-test (gcd 2346026393680644703525505657 17293822570713318399) 11)
+  (num-test (gcd 974507656412513757857315037382926980395082974811562770185617915360 -1539496810360685510909469177732386446833404488164283) 1)
+  (num-test (gcd 460683358924445799142 518) 518)
+  (num-test (gcd 113021475230160 74635) 6785)
+  (num-test (gcd 74228340534140364 363909) 1677)
+  (num-test (gcd 69242022961311060 48305942) 60458)
+  (num-test (gcd -286967952870300 2273388) 156)
+  (num-test (gcd 302822258393413362492399 29) 29)
+  (num-test (gcd 10491072879382200 133) 133)
+  (num-test (gcd 167206737423420464 609) 7)
+  (num-test (gcd 72212583812867784 4888799) 47)
+  (num-test (gcd 4170116471639397292390 1798025) 359605)
+  (num-test (gcd 83910330283522050 35224) 238)
+  (num-test (gcd 275373383775647594346 66884092) 104834)
+  (num-test (gcd 14656657495570695990 37) 1)
+  (num-test (gcd 95470974177676509874110 1219) 1219)
+  (num-test (gcd 619506317623001424 -5957) 7)
+  (num-test (gcd 11268171656665155960 9858) 186)
+  (num-test (gcd 6172860073826160 5167394) 3074)
+  (num-test (gcd 26457493095663264 1491412) 3956)
+  (num-test (gcd -8481384175941103284 313836405) 51)
+  (num-test (gcd 60356595775749199080 -176098815946) 1716346)
+  (num-test (gcd 611492274956002440 37) 37)
+  (num-test (gcd 164614611843685080 1711) 59)
+  (num-test (gcd 93177516542679418720 62197) 37)
+  (num-test (gcd 938959746797519770440 127558) 127558)
+  (num-test (gcd 137670522526899326250 200) 50)
+  (num-test (gcd 852063402206742880 41643478) 58406)
+  (num-test (gcd 55947291202307909360 188546228) 6364)
+  (num-test (gcd 12877971214039423262680 9832253830) 121730)
+  (num-test (gcd 192158415774146059920 53) 53)
+  (num-test (gcd 902814024155808960 1829) 31)
+  (num-test (gcd 1265864304573235487120 4921) 259)
+  (num-test (gcd -14172662463567665400 95817) 57)
+  (num-test (gcd 32171996211745702482324 2368555) 259)
+  (num-test (gcd 971324258606045826300 4576748) 236)
+  (num-test (gcd 2400649320046378377000 1704690) 930)
+  (num-test (gcd 953233796456393760 18342152493) 574287)
+  (num-test (gcd 28906333140964843080 236206740) 823020)
+  (num-test (gcd 775403093708557121609032 41) 41)
+  (num-test (gcd 12587009808135760402860 2491) 47)
+  (num-test (gcd 510685807527370566909720 76) 4)
+  (num-test (gcd 9842598153710524682146590 10089) 3363)
+  (num-test (gcd 44936631038618189620242012 30740) 6148)
+  (num-test (gcd 934589372977008750144 373650) 282)
+  (num-test (gcd 33027125273398900134069150 840577803) 840577803)
+  (num-test (gcd 4428219127938822420288 1695783782) 12502)
+  (num-test (gcd 29316428815807608915440 560764380) 153340)
+  (num-test (gcd 1364397376360544429904 19) 19)
+  (num-test (gcd 4991450791697293128313385277 329) 7)
+  (num-test (gcd 75448279792981695149550 3009) 3)
+  (num-test (gcd 181031604499464166188731133 3364) 1)
+  (num-test (gcd 405831142402606479845286 2746214) 161542)
+  (num-test (gcd 89170366469003867207160 25337230) 11470)
+  (num-test (gcd 13523725766340619200 1490114045) 28595)
+  (num-test (gcd 104705939487154940255412 192200052) 26196)
+  (num-test (gcd 7232591421499800642000 16584679460) 7820)
+  (num-test (gcd 14043796716396386984750160 -33382708236) 358953852)
+  (num-test (gcd 13894638105872256412416 23) 23)
+  (num-test (gcd 147611447155643499428400 118) 2)
+  (num-test (gcd 13356594697070649024 4558) 106)
+  (num-test (gcd 15089731174706036171537760 90) 30)
+  (num-test (gcd 307230141273924828960 1971507) 1581)
+  (num-test (gcd 2582563944548247741930009096 22873474) 1759498)
+  (num-test (gcd 1074296602920111687342072 146235518) 21758)
+  (num-test (gcd 774058642832724262993980 -407557010) 2531410)
+  (num-test (gcd 291091930213008490369569480 13412544348) 26508)
+  (num-test (gcd 2089068565149831833568 7302038455228) 68171356)
+  (num-test (gcd 1064437567441124038217970656 5) 1)
+  (num-test (gcd 142557826750459447787460 1333) 31)
+  (num-test (gcd 311779340580033594160200 23693) 23693)
+  (num-test (gcd 29314187023691666530559664 110143) 110143)
+  (num-test (gcd 222003853016244177637944900 857463) 857463)
+  (num-test (gcd 6247776111945111006243552 77976501) 2515371)
+  (num-test (gcd 1140058514761397155259712 5530338) 502758)
+  (num-test (gcd 580962736822969724865449808 55686036) 1505028)
+  (num-test (gcd 4100502596989506786787500 45333475410) 563730)
+  (num-test (gcd 1497378750311599979536944 262630276090) 361046)
+  (num-test (gcd 105637634198318524045536 2633013240) 150072)
+  (num-test (gcd 11415822547029425161364106595632 7) 1)
+  (num-test (gcd 198305933339312916107438448 177) 3)
+  (num-test (gcd 3127415425979879537134790928 3335) 667)
+  (num-test (gcd 589703503861221139260034914750 13209) 357)
+  (num-test (gcd 3108579252052448504121792 14322) 462)
+  (num-test (gcd 636976201153021006473464400 66264077) 3487583)
+  (num-test (gcd 9544425315508129998909285900 1488396) 212628)
+  (num-test (gcd 458100280193857502802977376 260747103934) 6212554)
+  (num-test (gcd 114208186302155358124900650 22076867505) 6342105)
+  (num-test (gcd 90107067439719108194114160 28566806069714) 3408519994)
+  (num-test (gcd 2976572787365723002218245484 -110104803958578) 2966904798)
+  (num-test (gcd 53453375725613238735360 17) 1)
+  (num-test (gcd 888822833524306124874229800 106) 106)
+  (num-test (gcd 21275338550698297089687698855820 3021) 3021)
+  (num-test (gcd 417525245705449941528380320750068 5828) 5828)
+  (num-test (gcd 1954871230146370370001829871352 22765249) 22765249)
+  (num-test (gcd 903057827710908645847577520 648545995) 520085)
+  (num-test (gcd 6002846634833433581621040 28493572159) 27869)
+  (num-test (gcd 26428903214964558277189300080 100428856) 3463064)
+  (num-test (gcd 470486531607553676511206181180 28495896) 2964)
+  (num-test (gcd 483599554429365539310928369206620 5577334078910) 105232718470)
+  (num-test (gcd 134511400157705323668887400 -1285071093558916) 340069628)
+  (num-test (gcd -25897125642468049125349982599216 1183846707540) 26307704612)
+  (num-test (gcd 1118034209930460291955200 3) 3)
+  (num-test (gcd 16297594064835666104344589410644 413) 413)
+  (num-test (gcd 536762539932642345554192060100 1378) 1378)
+  (num-test (gcd 933250179448203335817687635834340 58029) 69)
+  (num-test (gcd 65573457048202714607131200 486115) 3655)
+  (num-test (gcd 85664559165674439863772868932 322014) 322014)
+  (num-test (gcd 7232817686074320060728552759760 11307940) 11307940)
+  (num-test (gcd 78400098291720425971762131120 5646921093) 5646921093)
+  (num-test (gcd 345445746644065669842240 19727989065) 2193705)
+  (num-test (gcd 627854758484491743169777558200 -750371721805653) 156322329)
+  (num-test (gcd 788233263079483492974876830792850 7170146100) 5867550)
+  (num-test (gcd 18378856389802641496737518160 6247594493140) 824329660)
+  (num-test (gcd 9620902642431357480148667659080 59) 59)
+  (num-test (gcd 16008524600631853118144316000 629) 1)
+  (num-test (gcd 4342138447708715023205684275423920 53041) 1711)
+  (num-test (gcd 2431833161592653384508687244500 47541) 47541)
+  (num-test (gcd 39424620224103957589082132160 1671734) 1671734)
+  (num-test (gcd 652830233576052788654372406432 552231327) 12842589)
+  (num-test (gcd 6892963340916411083970414000 3662431431) 77924073)
+  (num-test (gcd 29102758215190063506219566460000 10565720) 10565720)
+  (num-test (gcd 21253900104556838003127171970777418412 1182797770) 62698)
+  (num-test (gcd 3964268932242030284914943132662620 21244177854110) 18521515130)
+  (num-test (gcd 6070388091189460078138338240 40809131994181213) 274113073169)
+  (num-test (gcd 9685989954133695108793384134000 964113514382876) 169529367748)
+  (num-test (gcd 56468122001858834917195045500 -429400787158167902) 2090772606538)
+  (num-test (gcd 18843408973202596901221568364900 47) 47)
+  (num-test (gcd 7800980538292163259967028613764250 6) 6)
+  (num-test (gcd 270433907726619219545089642715200 3422) 58)
+  (num-test (gcd 45771666919597903071546708768 2342359) 2183)
+  (num-test (gcd 47198294949461301503537593835384892 314502) 5934)
+  (num-test (gcd 3165335901519110207943908102359110 14953473) 207)
+  (num-test (gcd 189219585097956261544520863361400 35605794) 35605794)
+  (num-test (gcd -38532137569034426600955256933810890813 -1341358608707) 6436369)
+  (num-test (gcd 1396277868664090735481380981225896 312520860) 62504172)
+  (num-test (gcd -864038349500762576564773759109700 714136202724) 16607818668)
+  (num-test (gcd 12514185871591242579049167322464 10706997440178) 200614518)
+  (num-test (gcd 1981802660405609330969478067056636 33312289752) 14779188)
+  (num-test (gcd 979313401024175219420658240 125278417383795) 1551032145)
+  (num-test (gcd 4074026154111369481048033354344 29) 29)
+  (num-test (gcd 599666571180604695702511920885005100 129) 129)
+  (num-test (gcd 5703263639326551702474610108800 1978) 1978)
+  (num-test (gcd 134137932950214683609064669163440 190619) 143)
+  (num-test (gcd 344735091370772631136645455600 1048985) 1048985)
+  (num-test (gcd 6759508339299085316106145385400 4969610) 160310)
+  (num-test (gcd 700334422308861928135313594400 228529587) 432003)
+  (num-test (gcd 10277417891211405957191810814198480 2516552038) 228777458)
+  (num-test (gcd 490099971577877358878082782880 9282588354) 17547426)
+  (num-test (gcd 1954558750269048828645390249600 5575829490) 327989970)
+  (num-test (gcd 1360588454560018295496656378989200 7868178296420) 14873682980)
+  (num-test (gcd 4337552841738910859248770564912480 17722936528737830) 338114285990)
+  (num-test (gcd 215913068853045803981566931862756 7009479781500) 2930844)
+  (num-test (gcd 44890707654126305940250882318870941900 18329973480720) 1527497790060)
+  (num-test (gcd 28579720891831355496720656680837200 3) 3)
+  (num-test (gcd 29332703209780553199747293473184160 1711) 29)
+  (num-test (gcd 3648979393315349438003046604440000 186) 186)
+  (num-test (gcd 1159760236369472473822068077011807878780 25714) 25714)
+  (num-test (gcd 158186359726371025615685433600 31395) 4485)
+  (num-test (gcd 331091450443070201468559735703944 28424) 28424)
+  (num-test (gcd 9734443639363161342241553023288200 1961348207) 63269297)
+  (num-test (gcd 701896612128009033011419603540080 51300) 3420)
+  (num-test (gcd 86169288128517384618860929451245320 5032162527446) 180164066)
+  (num-test (gcd 64828800524794653881296183831741773624 4645294472) 6354712)
+  (num-test (gcd 49068907706533938991402184550000 268183371225) 742890225)
+  (num-test (gcd 1708602980304476478496020543612288 4083128544) 131713824)
+  (num-test (gcd 17608179287674151740172985536160 980399424528) 91686096)
+  (num-test (gcd 43194437079731225735521919644800 -178119261126453036) 80633436453804)
+  (num-test (gcd 817555977437791699707628651571149344 59) 59)
+  (num-test (gcd 19062946261334997559157066059536 533) 41)
+  (num-test (gcd 6533849124840489114353090499099000 598) 26)
+  (num-test (gcd 427663965127849896842400211428345149025 234) 117)
+  (num-test (gcd 352395507261316174741530450071590608 154734) 3774)
+  (num-test (gcd 391579493632653867660919800000 9221565) 645)
+  (num-test (gcd 2618798923882923048581401148931738000 681876) 52452)
+  (num-test (gcd 174712575449141140214591110997980800 233260339838) 126154862)
+  (num-test (gcd 88598141227372995032227898284800 1929763976) 155288)
+  (num-test (gcd 210110141308655567793064872567302676320 720390430628) 468699044)
+  (num-test (gcd 668425085137718599277317523827419000 19898594339442) 58711254)
+  (num-test (gcd 89533471731097208414073727453200 4173840860670546) 2257350384354)
+  (num-test (gcd 113987439157802480362236410675251462620 21548296273949445)  1134120856523655)
+  (num-test (gcd 48129335993995093308894209644253760 1009442888504820) 84891337020)
+  (num-test (gcd -3497836376962291922989777163497680 138736290091634664)  3383811953454504)
+  (num-test (gcd 11371924962562208722154622794880 3) 3)
+  (num-test (gcd 9451631862008339290824315653784000 703) 19)
+  (num-test (gcd 16869347753325980368094612370435598560 806) 806)
+  (num-test (gcd 4701845646467068759127854100132739552 3198) 6)
+  (num-test (gcd 1029865193584911347147121232800485280 1005771) 24531)
+  (num-test (gcd 10657125216930337802109861408000 2415138) 2838)
+  (num-test (gcd 14382707743772734802155022983680 247913634) 144894)
+  (num-test (gcd 60134748581470366378101904574533857248 54828228) 493948)
+  (num-test (gcd 214830664120540781167218700750596000 505665810) 11759670)
+  (num-test (gcd 48933004118344447687599112101802800 6263883444) 106167516)
+  (num-test (gcd 5498670161558110606435630054129739400 262699548132) 1346604)
+  (num-test (gcd 35941673649029587182509620977230062500 25622409466332) 525598668)
+  (num-test (gcd 1592802602494326390643157055239113248 736377633395508) 960075141324)
+  (num-test (gcd 4043816553144402557587143272522043028314 5011466158645380)  366067652202)
+  (num-test (gcd 7171921165220830707276631005512550 1765284492289500) 176528449228950)
+  (num-test (gcd 2402189359210218692854826119405968750 23) 1)
+  (num-test (gcd 26149068753160488131648964110990162400 1147) 31)
+  (num-test (gcd 556184059176863945810376239306506311552 4089) 4089)
+  (num-test (gcd 67871323087036310486238021899264593800 13395) 13395)
+  (num-test (gcd 12750401179065252879838440979200 -7177173) 7177173)
+  (num-test (gcd 278110245000092733617125071646080 17748) 17748)
+  (num-test (gcd 13408203364935178481017292708752000 50619404) 1368092)
+  (num-test (gcd 124271828931784534297423756437875067000 -8839796595) 4068015)
+  (num-test (gcd 11893442806922081156953529319100769836176 972789007267) 983608703)
+  (num-test (gcd 352581052555284857902053030133344488264100 923561430099) 54327142947)
+  (num-test (gcd 6108908012714804315575319947340956346976 31944833628092) 97096758748)
+  (num-test (gcd 67475643422116264959949054821520228800 22515435540) 326310660)
+  (num-test (gcd 470601888939348535946408832 5135943991060962937) 36905011)
+  (num-test (gcd -110759232155568113345545635903016614000 30159198663300)  30159198663300)
+  (num-test (gcd 146100914712024458707469587112300146320 26868173101560) 10304280)
+  (num-test (gcd 12173192708601511002951184416658091200 466645866900785428350)  1496624001041650)
+  (num-test (gcd 5784684831478746253226687170890240 13) 13)
+  (num-test (gcd 35042260655085685815432622412891903767500 667) 667)
+  (num-test (gcd 2903871349270676921837488659419545120987500 530) 530)
+  (num-test (gcd 630123969240840167098426767919876491188000 77691) 25897)
+  (num-test (gcd 33192703032132982013024959634241667249800 4684718) 126614)
+  (num-test (gcd 4731525733734729472809717145544850000 90706055) 90706055)
+  (num-test (gcd 214011009809686092216200126896120006823232 50400042) 258)
+  (num-test (gcd 5854250735296111435541950856160000 24357777002) 817622)
+  (num-test (gcd 35348208247612761916374738259136697649608 156806713508) 8596388)
+  (num-test (gcd 612558317420289618714916924536521515286100 2377007388) 125105652)
+  (num-test (gcd 181857299802925368992522029882739454720 21606337755618)  21606337755618)
+  (num-test (gcd 4731635341196946327443020710970699860000 58092526675092) 776108892)
+  (num-test (gcd 22081740554432638182773611616166588288192 61419768950540)  12283953790108)
+  (num-test (gcd 125627844706077784535328068665849312000 30482033400) 32200)
+  (num-test (gcd 1225504716872819103560254268197955520 510813364186125) 168863922045)
+  (num-test (gcd 5209185280578468690281136425214396728400 2327880739319250103818)  829166238)
+  (num-test (gcd 230425011604643097634961294406535254400 31) 31)
+  (num-test (gcd 13222608481676137093434201748083744000 893) 893)
+  (num-test (gcd 13348198818240350339028224064019716678960 651) 3)
+  (num-test (gcd 7236172685650198160266777676385295337308176 23426) 442)
+  (num-test (gcd 756264162229440667711265021676693350760 28899) 28899)
+  (num-test (gcd 40915062421030872924283823601517905600 36345062) 36345062)
+  (num-test (gcd 1174590526522170015825602834292923520 4991486258) 145114)
+  (num-test (gcd 2891892862328155581145450075391651333218020 35138529818) 35138529818)
+  (num-test (gcd 1993335355070485984559797658834121810059400 535644500) 2612900)
+  (num-test (gcd 6324295450641455215591954662726515160 367472693133) 8962748613)
+  (num-test (gcd 6576388154814679090356195121505112000 15901952377630) 969690370)
+  (num-test (gcd 117828556355409428513249595788296238400 565992666495795) 33126555)
+  (num-test (gcd 592831716700236607285748949860604000 139641978135660) 343100683380)
+  (num-test (gcd 106766839071170184723986891291602032000 1584924526628112)  1983635202288)
+  (num-test (gcd 21677148858122146832326483307664860804937400 247815827510760)  9178363981880)
+  (num-test (gcd 14079549844487257384278196623697173813600 160967604100961853832)  42959600534344)
+  (num-test (gcd 2696480372014145687016224877963234647656980 -2219319031453896088860)  1258830987778727220)
+  (num-test (gcd 13545431257849875145060979241270859310160 29) 29)
+  (num-test (gcd 137485634482479300158725199474868559498162500 329) 47)
+  (num-test (gcd 529252417743761759027305009539254400 3243) 3243)
+  (num-test (gcd 133897419738958073238580385894509887148800 330455) 330455)
+  (num-test (gcd 3896215507210178905244623173635584334007288624 1005238) 1005238)
+  (num-test (gcd 17654511984514518592175290794029073043800 1060530) 36570)
+  (num-test (gcd 16470780256339082688310222474503880382858400 913836) 913836)
+  (num-test (gcd 57267105834722825210001789897760395576000 2958974018) 62956894)
+  (num-test (gcd 521977833444747522001426544601807810543216 1066521690) 4960566)
+  (num-test (gcd 1699559962174727325529414216960251941390400 25883611479) 30924267)
+  (num-test (gcd 10654036597801063717295948399628964800 317449894126222) 19212606314)
+  (num-test (gcd 381902381115592200811990304316262139150724960 4640335440216)  4640335440216)
+  (num-test (gcd 425968526187959807410151867411382902838703889232 1882826315615025)  4430179566153)
+  (num-test (gcd 174609167728518272531601927200939868792000 1712923655178450) 6189150)
+  (num-test (gcd 3325168366561555458817274989681612518000 1699726139891780)  130748164607060)
+  (num-test (gcd 11429650426242566426919762928176000 7414967839104) 5416338816)
+  (num-test (gcd 2104794191230056678355480848036599377844400 -16946684823025584)  182222417451888)
+  (num-test (gcd 11894522530167763519415142641640874994880 7) 7)
+  (num-test (gcd 5906329981690378696996009087718418780000 185) 185)
+  (num-test (gcd 3056294774178096513474941936265025440000 658) 658)
+  (num-test (gcd 10491907660880423349353457742257185280 123369) 123369)
+  (num-test (gcd 673239479595593149777212259021965839229225628776 15470) 3094)
+  (num-test (gcd 1506608574369860432616005754109397877696 1474070) 294814)
+  (num-test (gcd 4849814041048623250005708880379694793905000 2172220582) 2172220582)
+  (num-test (gcd 21154344928580705924176101470087564940000 5023204186) 5023204186)
+  (num-test (gcd 346448039376394135288065831861806112294000 776147372) 25037012)
+  (num-test (gcd 2339009760844587560470606952218133142645504 194201967414) 5248701822)
+  (num-test (gcd 2242982161480922111384667548175169152 21419749763490) 2316901002)
+  (num-test (gcd 4717315265246821759830981157482117120 45609714193992) 26227552728)
+  (num-test (gcd 16628111321698075419789804224660024289936 4643626415880804)  1653124391556)
+  (num-test (gcd 115557531507210992033160068979962880 88406536976058378)  36546728803662)
+  (num-test (gcd 21059511907771200155093927745003762840000 180298981648603620)  191197223381340)
+  (num-test (gcd 2124921015128697258800067298086064536000 2282525112298516782924)  15103625661372)
+  (num-test (gcd 16015671538624533047089928322348864000 49817926936366875)  69075001125)
+  (num-test (gcd 166517667014186289390514558017250969134523800 -43413708621878528404068)  1188862957578074004)
+  (num-test (gcd -2780796292789128359666429021610464935722000 47) 47)
+  (num-test (gcd 21297913114430245153455383503409684916193317960 58) 58)
+  (num-test (gcd 1516745257039775143654568869485529015398000 6293) 6293)
+  (num-test (gcd 8447692776411453120390905608381515479808 2030) 14)
+  (num-test (gcd 958876033949638283967045624731391031146081240 9834415) 166685)
+  (num-test (gcd 4731349833403602529573388098680617532624192 14868) 14868)
+  (num-test (gcd 6375001358038970462026761077388061675464000 430513678) 430513678)
+  (num-test (gcd 254088526608579040642428151389718385042344800 4799428101) 255411)
+  (num-test (gcd 21140490542258031885408065086507444825621023648 164778747198)  13189686)
+  (num-test (gcd 34214837305812460226811046733375808000 4312787868) 746028)
+  (num-test (gcd 11450197571956515037245443769386989035470896800 75585518430279)  5814270648483)
+  (num-test (gcd 1211397915863796187148880114197307052796506376580 538601201880)  11708721780)
+  (num-test (gcd 5454139401260819402160859765169199667337088 30452838731872)  48414687968)
+  (num-test (gcd 744935981632690384026127091216926530879171660 1032747922358460)  60868033380)
+  (num-test (gcd 324574326062026951443376280715122947502400 103751223626207988025)  3334229637375325)
+  (num-test (gcd 15272163751269260921486082393684080908800 6484309049057400)  341279423634600)
+  (num-test (gcd 386527546655781220813671331401971490218262720 3481571963427119100)  1915440648660)
+  (num-test (gcd 3189682029126430413458911948222943640000 -6724598925622907976570)  829921474949490)
+  (num-test (gcd -709403542855323660533377490060722241678400 7) 7)
+  (num-test (gcd 139803787314578422635552652090095842837312147438904 123) 123)
+  (num-test (gcd 171985399350431759069945935900956183322827030835560 18241) 18241)
+  (num-test (gcd 33090522521924986387051477884789600000 26187) 609)
+  (num-test (gcd 1733723010009930088165729903139785699319986530 372945) 7935)
+  (num-test (gcd 56408303994570817306318494803635460247582000 5761730) 10810)
+  (num-test (gcd 25845509336769185412951159262424903513866295760 64371378271)  64371378271)
+  (num-test (gcd 624970361450506104794172455132584603069611058500 108222780)  108222780)
+  (num-test (gcd 82823962548382643645255524843049561752323600 135325929794)  12302357254)
+  (num-test (gcd 170620453449723034746079844571491973300000 9460614789626)  230746702186)
+  (num-test (gcd 125144597811313015929871740675462711600000 12764411911636)  12726233212)
+  (num-test (gcd 257193319319332344553297882967977761077115600 6510126541380)  158783574180)
+  (num-test (gcd 879624546681838385457288074812140664728758550 10045784120501316)  80757786714)
+  (num-test (gcd 18300938860777100857669855248554588369659200 118088077425391892)  1433647093268)
+  (num-test (gcd 8394780474625841647581984803260010511075000 746584618179400)  11198041400)
+  (num-test (gcd 146802334713757872619395774222116859916800 718775571956687400)  854667743111400)
+  (num-test (gcd 240155883351717999820072393833707008014911556000 -1350921510529331832)  10157304590446104)
+  (num-test (gcd -918942437243241528855354123800826649596480 -74343962238703160850)  3476056267530)
+  (num-test (gcd 1361069299753299783990135442290762165844800 8281085446358585640)  8546011812547560)
+  
+  (num-test (gcd 111738283365989051/177100989030047175 5964153172084899/4217293152016490) 1/149377357650353093734710215583150)
+  (num-test (gcd 11571718688839/18340740190704 5168247530883/3654502875938) 1/33513143886879715286440176)
+  (num-test (gcd 130441933147714940/206745572560704147 14398739476117879/10181446324101389) 1/2104968949772418231181062860760183)
+  (num-test (gcd 137528045312/217976794617 63018038201/44560482149) 1/9713151065427067791933)
+  (num-test (gcd 205632218873398596256/325919355854421968365 16616132878186749607/11749380235262596085) 1/5590292610168557896833020882635974965)
+  (num-test (gcd 22803850947114245497/36143248623210700400 1180872205318713601/835002744095575440) 1/34295127023760867970857561935725200)
+  (num-test (gcd 326267455807135/517121682660006 30122754096401/21300003689580) 1/1835782291436657618117489580)
+  (num-test (gcd 3447601211185766107/5464318637170278738 202605639573839043/143263821649299118) 1/391419585335252015613280949198776542)
+  (num-test (gcd 3816473305410548/6048967074079039 423859315570607/299713796309065) 313/1812958885520765991472282188535)
+  (num-test (gcd 397560349370386783/630118245525664765 34761632124320657/24580185800219268) 17/15488423551129023359673258461692020)
+  (num-test (gcd 4640282259296926456/7354673373747273033 489133282872437279/345869461223138161) 1/2543756917250129165517177396348512313)
+  (num-test (gcd 483615324366283/766512153894657 175568277047523/124145519261542) 1/95159049365535186345899381094)
+  (num-test (gcd 50247984153525417450/79641170620168673833 2850877693509864481/2015874949414289041) 1/160546640795227287934843564657515364153)
+  (num-test (gcd 5409303924479/8573543875303 886731088897/627013566048) 1/5375728318922723466512544)
+  (num-test (gcd 5680010011095224105765/9002602871306688466954 40114893348711941777/28365513113449345692) 1/127681724900613301985499022520606932131084)
+  (num-test (gcd 615582794569/975675645481 152139002499/107578520350) 19/104961742282377144038350)
+  (num-test (gcd 6189245291/9809721694 1855077841/1311738121) 1/12867785902420496974)
+  (num-test (gcd 6234549927241963/9881527843552324 1023286908188737/723573111879672) 1/105147174292423231311078293496)
+  (num-test (gcd 65470613321/103768467013 10812186007/7645370045) 1/793348329316760825585)
+  (num-test (gcd 6586818670/10439860591 4478554083/3166815962) 1/33061117160633553542)
+  (num-test (gcd 7530699980955811472069/11935877073996486182239 96845919575610633161/68480406462161287469) 1/817373713509671731923053344199644801063091)
+  (num-test (gcd 753110839881/1193652440098 367296043199/259717522849) 1/310012454884916918799202))
 
 
 
@@ -55880,383 +55747,380 @@ hi6: (string-app...
   (num-test (flcm 40) 5342931457063200)
   (if with-bignums (num-test (flcm 100) 69720375229712477164533808935312303556800)))
 
-(if with-bignums 
-    (begin
-      (num-test (let ((n 1)) (do ((i 2 (+ i 1))) ((= i 100)) (set! n (lcm n i))) n) 69720375229712477164533808935312303556800)
-      (num-test (lcm -9223372036854775808 -9223372036854775808) 9223372036854775808)
-      (num-test (lcm -9223372036854775808 9223372036854775807 -9223372036854775808) 85070591730234615856620279821087277056)
-      (num-test (lcm 1/21 1/2432902008176640001) 1)
-      (num-test (lcm 132120577 33292289 260046847) 1143841133453061178785791)
-      (num-test (lcm 132120577 33292289) 4398596432330753)
-      (num-test (lcm 132120577/12 33292289/6 260046847/4) 1143841133453061178785791/2)
-      (num-test (lcm 2/132120577 3/33292289 4/260046847) 12)
-      (num-test (lcm 21 2432902008176640001) 51090942171709440021)
-      (num-test (lcm 2353913150770005286438421033702874906038383291674012942337 9641628265553941653251772554046975615133217962696757011808257)
-		22695555569123220026272727097682721551725929819788097280747860983024240452040931523149698041303750665450606153441476609)
-      (num-test (lcm 2432902008176640001 21) 51090942171709440021)
-      (num-test (lcm 2432902008176640001/21 21/2432902008176640001) 51090942171709440021)
-      (num-test (lcm 557057 23068673 167772161) 2155967190204955525121)
-      (num-test (lcm 9223372036854775807 -9223372036854775808) 85070591730234615856620279821087277056)
-      (num-test (lcm 524288 19073486328125) 10000000000000000000)
-      (num-test (lcm 2147483648 4656612873077392578125) 10000000000000000000000000000000)
-      (num-test (lcm (/ (expt 2 57) 3) (/ 65 11)) 9367487224930631680)
-      (num-test (lcm 460683358924445799142 518) 460683358924445799142)
-      (num-test (lcm 113021475230160 74635) 1243236227531760)
-      (num-test (lcm 74228340534140364 363909) 16107549895908458988)
-      (num-test (lcm 69242022961311060 48305942) 55324376346087536940)
-      (num-test (lcm 286967952870300 2273388) 4181983977178881900)
-      (num-test (lcm 302822258393413362492399 29) 302822258393413362492399)
-      (num-test (lcm 10491072879382200 133) 10491072879382200)
-      (num-test (lcm 167206737423420464 609) 14546986155837580368)
-      (num-test (lcm 72212583812867784 4888799) 7511336330463068288328)
-      (num-test (lcm 4170116471639397292390 1798025) 20850582358196986461950)
-      (num-test (lcm 83910330283522050 35224) 12418728881961263400)
-      (num-test (lcm 275373383775647594346 66884092) 175688218848863165192748)
-      (num-test (lcm 14656657495570695990 37) 542296327336115751630)
-      (num-test (lcm 95470974177676509874110 1219) 95470974177676509874110)
-      (num-test (lcm 619506317623001424 5957) 527199876297174211824)
-      (num-test (lcm 11268171656665155960 9858) 597213097803253265880)
-      (num-test (lcm 6172860073826160 5167394) 10376577784101774960)
-      (num-test (lcm 26457493095663264 1491412) 9974474897065050528)
-      (num-test (lcm 8481384175941103284 313836405) 52191512141200849929103020)
-      (num-test (lcm 60356595775749199080 176098815946) 6192647083187643574807080)
-      (num-test (lcm 611492274956002440 37) 611492274956002440)
-      (num-test (lcm 164614611843685080 1711) 4773823743466867320)
-      (num-test (lcm 93177516542679418720 62197) 156631405308244102868320)
-      (num-test (lcm 938959746797519770440 127558) 938959746797519770440)
-      (num-test (lcm 137670522526899326250 200) 550682090107597305000)
-      (num-test (lcm 852063402206742880 41643478) 607521205773407673440)
-      (num-test (lcm 55947291202307909360 188546228) 1657550396450776430608720)
-      (num-test (lcm 12877971214039423262680 9832253830) 1040166612929178256349926280)
-      (num-test (lcm 192158415774146059920 53) 192158415774146059920)
-      (num-test (lcm 902814024155808960 1829) 53266027425192728640)
-      (num-test (lcm 1265864304573235487120 4921) 24051421786891474255280)
-      (num-test (lcm 14172662463567665400 95817) 23824245601257245537400)
-      (num-test (lcm 32171996211745702482324 2368555) 294212905356414449200852980)
-      (num-test (lcm 971324258606045826300 4576748) 18836891347147046709435900)
-      (num-test (lcm 2400649320046378377000 1704690) 4400390203645011565041000)
-      (num-test (lcm 953233796456393760 18342152493) 30445334225020760300640)
-      (num-test (lcm 28906333140964843080 236206740) 8296117611456909963960)
-      (num-test (lcm 775403093708557121609032 41) 775403093708557121609032)
-      (num-test (lcm 12587009808135760402860 2491) 667111519831195301351580)
-      (num-test (lcm 510685807527370566909720 76) 9703030343020040771284680)
-      (num-test (lcm 9842598153710524682146590 10089) 29527794461131574046439770)
-      (num-test (lcm 44936631038618189620242012 30740) 224683155193090948101210060)
-      (num-test (lcm 934589372977008750144 373650) 1238330919194536593940800)
-      (num-test (lcm 33027125273398900134069150 840577803) 33027125273398900134069150)
-      (num-test (lcm 4428219127938822420288 1695783782) 600648070732749811910284608)
-      (num-test (lcm 29316428815807608915440 560764380) 107210180179408425803764080)
-      (num-test (lcm 1364397376360544429904 19) 1364397376360544429904)
-      (num-test (lcm 4991450791697293128313385277 329) 234598187209772777030729108019)
-      (num-test (lcm 75448279792981695149550 3009) 75674624632360640234998650)
-      (num-test (lcm 181031604499464166188731133 3364) 608990317536197455058891531412)
-      (num-test (lcm 405831142402606479845286 2746214) 6899129420844310157369862)
-      (num-test (lcm 89170366469003867207160 25337230) 196977339530029542660616440)
-      (num-test (lcm 13523725766340619200 1490114045) 704734873409776007131200)
-      (num-test (lcm 104705939487154940255412 192200052) 768227478017255796653957844)
-      (num-test (lcm 7232591421499800642000 16584679460) 15338901584491041700955526000)
-      (num-test (lcm 14043796716396386984750160 33382708236) 1306073094624863989581764880)
-      (num-test (lcm 13894638105872256412416 23) 13894638105872256412416)
-      (num-test (lcm 147611447155643499428400 118) 8709075382182966466275600)
-      (num-test (lcm 13356594697070649024 4558) 574333571974037908032)
-      (num-test (lcm 15089731174706036171537760 90) 45269193524118108514613280)
-      (num-test (lcm 307230141273924828960 1971507) 383115986168584261713120)
-      (num-test (lcm 2582563944548247741930009096 22873474) 33573331279127220645090118248)
-      (num-test (lcm 1074296602920111687342072 146235518) 7220347468226070650626065912)
-      (num-test (lcm 774058642832724262993980 407557010) 124623441496068606342030780)
-      (num-test (lcm 291091930213008490369569480 13412544348) 147286985941108248965685135059880)
-      (num-test (lcm 2089068565149831833568 7302038455228) 223766401218893937188969184)
-      (num-test (lcm 1064437567441124038217970656 5) 5322187837205620191089853280)
-      (num-test (lcm 142557826750459447787460 1333) 6129986550269756254860780)
-      (num-test (lcm 311779340580033594160200 23693) 311779340580033594160200)
-      (num-test (lcm 29314187023691666530559664 110143) 29314187023691666530559664)
-      (num-test (lcm 222003853016244177637944900 857463) 222003853016244177637944900)
-      (num-test (lcm 6247776111945111006243552 77976501) 193681059470298441193550112)
-      (num-test (lcm 1140058514761397155259712 5530338) 12540643662375368707856832)
-      (num-test (lcm 580962736822969724865449808 55686036) 21495621262449879820021642896)
-      (num-test (lcm 4100502596989506786787500 45333475410) 329750117342105167273090387500)
-      (num-test (lcm 1497378750311599979536944 262630276090) 1089215763657912499114866119760)
-      (num-test (lcm 105637634198318524045536 2633013240) 1853412292009498504378929120)
-      (num-test (lcm 11415822547029425161364106595632 7) 79910757829205976129548746169424)
-      (num-test (lcm 198305933339312916107438448 177) 11700050067019462050338868432)
-      (num-test (lcm 3127415425979879537134790928 3335) 15637077129899397685673954640)
-      (num-test (lcm 589703503861221139260034914750 13209) 21819029642865182152621291845750)
-      (num-test (lcm 3108579252052448504121792 14322) 96365956813625903627775552)
-      (num-test (lcm 636976201153021006473464400 66264077) 12102547821907399122995823600)
-      (num-test (lcm 9544425315508129998909285900 1488396) 66810977208556909992365001300)
-      (num-test (lcm 458100280193857502802977376 260747103934) 19226926860016393250143763448096)
-      (num-test (lcm 114208186302155358124900650 22076867505) 397558696517802801632779162650)
-      (num-test (lcm 90107067439719108194114160 28566806069714) 755187332212285845774870774960)
-      (num-test (lcm 2976572787365723002218245484 110104803958578) 110463592711929346335321308156724)
-      (num-test (lcm 53453375725613238735360 17) 908707387335425058501120)
-      (num-test (lcm 888822833524306124874229800 106) 888822833524306124874229800)
-      (num-test (lcm 21275338550698297089687698855820 3021) 21275338550698297089687698855820)
-      (num-test (lcm 417525245705449941528380320750068 5828) 417525245705449941528380320750068)
-      (num-test (lcm 1954871230146370370001829871352 22765249) 1954871230146370370001829871352)
-      (num-test (lcm 903057827710908645847577520 648545995) 1126113111155503081371929167440)
-      (num-test (lcm 6002846634833433581621040 28493572159) 6137376430766685661618749127440)
-      (num-test (lcm 26428903214964558277189300080 100428856) 766438193233972190038489702320)
-      (num-test (lcm 470486531607553676511206181180 28495896) 4523257514875021045978736225864520)
-      (num-test (lcm 483599554429365539310928369206620 5577334078910) 25630776384756373583479203567950860)
-      (num-test (lcm 134511400157705323668887400 1285071093558916) 508298000951744289230204144827800)
-      (num-test (lcm 25897125642468049125349982599216 1183846707540) 1165370653911062210640749216964720)
-      (num-test (lcm 1118034209930460291955200 3) 1118034209930460291955200)
-      (num-test (lcm 16297594064835666104344589410644 413) 16297594064835666104344589410644)
-      (num-test (lcm 536762539932642345554192060100 1378) 536762539932642345554192060100)
-      (num-test (lcm 933250179448203335817687635834340 58029) 784863400915939005422675301736679940)
-      (num-test (lcm 65573457048202714607131200 486115) 8721269787410961042748449600)
-      (num-test (lcm 85664559165674439863772868932 322014) 85664559165674439863772868932)
-      (num-test (lcm 7232817686074320060728552759760 11307940) 7232817686074320060728552759760)
-      (num-test (lcm 78400098291720425971762131120 5646921093) 78400098291720425971762131120)
-      (num-test (lcm 345445746644065669842240 19727989065) 3106593599570082568891264320)
-      (num-test (lcm 627854758484491743169777558200 750371721805653) 3013801413922642432418609934436637400)
-      (num-test (lcm 788233263079483492974876830792850 7170146100) 963221047483128828415299487228862700)
-      (num-test (lcm 18378856389802641496737518160 6247594493140) 139293352578314219903773650134640)
-      (num-test (lcm 9620902642431357480148667659080 59) 9620902642431357480148667659080)
-      (num-test (lcm 16008524600631853118144316000 629) 10069361973797435611312774764000)
-      (num-test (lcm 4342138447708715023205684275423920 53041) 134606291878970165719376212538141520)
-      (num-test (lcm 2431833161592653384508687244500 47541) 2431833161592653384508687244500)
-      (num-test (lcm 39424620224103957589082132160 1671734) 39424620224103957589082132160)
-      (num-test (lcm 652830233576052788654372406432 552231327) 28071700043770269912138013476576)
-      (num-test (lcm 6892963340916411083970414000 3662431431) 323969277023071320946609458000)
-      (num-test (lcm 29102758215190063506219566460000 10565720) 29102758215190063506219566460000)
-      (num-test (lcm 21253900104556838003127171970777418412 1182797770) 400954825472464748928994099228715998342380)
-      (num-test (lcm 3964268932242030284914943132662620 21244177854110) 4547016465281608736797439773164025140)
-      (num-test (lcm 6070388091189460078138338240 40809131994181213) 903741167852013248053001382156480)
-      (num-test (lcm 9685989954133695108793384134000 964113514382876) 55084224869158324083707975570058000)
-      (num-test (lcm 56468122001858834917195045500 429400787158167902) 11597366428619765656458601249744500)
-      (num-test (lcm 18843408973202596901221568364900 47) 18843408973202596901221568364900)
-      (num-test (lcm 7800980538292163259967028613764250 6) 7800980538292163259967028613764250)
-      (num-test (lcm 270433907726619219545089642715200 3422) 15955600555870533953160288920196800)
-      (num-test (lcm 45771666919597903071546708768 2342359) 49112998604728549995769618508064)
-      (num-test (lcm 47198294949461301503537593835384892 314502) 2501509632321448979687492473275399276)
-      (num-test (lcm 3165335901519110207943908102359110 14953473) 228660700189839002311659977406319747290)
-      (num-test (lcm 189219585097956261544520863361400 35605794) 189219585097956261544520863361400)
-      (num-test (lcm 38532137569034426600955256933810890813 1341358608707) 8030213065799481606918878410776991078101639)
-      (num-test (lcm 1396277868664090735481380981225896 312520860) 6981389343320453677406904906129480)
-      (num-test (lcm 864038349500762576564773759109700 714136202724) 37153649028532790792285271641717100)
-      (num-test (lcm 12514185871591242579049167322464 10706997440178) 667894614152696207686433109167226144)
-      (num-test (lcm 1981802660405609330969478067056636 33312289752) 4466983196554243432005203563145657544)
-      (num-test (lcm 979313401024175219420658240 125278417383795) 79100122714123656647825986703040)
-      (num-test (lcm 4074026154111369481048033354344 29) 4074026154111369481048033354344)
-      (num-test (lcm 599666571180604695702511920885005100 129) 599666571180604695702511920885005100)
-      (num-test (lcm 5703263639326551702474610108800 1978) 5703263639326551702474610108800)
-      (num-test (lcm 134137932950214683609064669163440 190619) 178805864622636173250883203994865520)
-      (num-test (lcm 344735091370772631136645455600 1048985) 344735091370772631136645455600)
-      (num-test (lcm 6759508339299085316106145385400 4969610) 209544758518271644799290506947400)
-      (num-test (lcm 700334422308861928135313594400 228529587) 370476909401387959983580891437600)
-      (num-test (lcm 10277417891211405957191810814198480 2516552038) 113051596803325465529109918956183280)
-      (num-test (lcm 490099971577877358878082782880 9282588354) 259262884964697122846505792143520)
-      (num-test (lcm 1954558750269048828645390249600 5575829490) 33227498754573830086971634243200)
-      (num-test (lcm 1360588454560018295496656378989200 7868178296420) 719751292462249678317731224485286800)
-      (num-test (lcm 4337552841738910859248770564912480 17722936528737830) 227361507305428490509242806701017464160)
-      (num-test (lcm 215913068853045803981566931862756 7009479781500) 516383093295665670947415013416263818500)
-      (num-test (lcm 44890707654126305940250882318870941900 18329973480720) 538688491849515671283010587826451302800)
-      (num-test (lcm 28579720891831355496720656680837200 3) 28579720891831355496720656680837200)
-      (num-test (lcm 29332703209780553199747293473184160 1711) 1730629489377052638785090314917865440)
-      (num-test (lcm 3648979393315349438003046604440000 186) 3648979393315349438003046604440000)
-      (num-test (lcm 1159760236369472473822068077011807878780 25714) 1159760236369472473822068077011807878780)
-      (num-test (lcm 158186359726371025615685433600 31395) 1107304518084597179309798035200)
-      (num-test (lcm 331091450443070201468559735703944 28424) 331091450443070201468559735703944)
-      (num-test (lcm 9734443639363161342241553023288200 1961348207) 301767752820258001609488143721934200)
-      (num-test (lcm 701896612128009033011419603540080 51300) 10528449181920135495171294053101200)
-      (num-test (lcm 86169288128517384618860929451245320 5032162527446) 2406794386717619069789404620502733032920)
-      (num-test (lcm 64828800524794653881296183831741773624 4645294472) 47389853183624891987227510381003236519144)
-      (num-test (lcm 49068907706533938991402184550000 268183371225) 17713875682058751975896188622550000)
-      (num-test (lcm 1708602980304476478496020543612288 4083128544) 52966692389438770833376636851980928)
-      (num-test (lcm 17608179287674151740172985536160 980399424528) 188284261123099704557669734338158880)
-      (num-test (lcm 43194437079731225735521919644800 178119261126453036) 95416511509126277649767920495363200)
-      (num-test (lcm 817555977437791699707628651571149344 59) 817555977437791699707628651571149344)
-      (num-test (lcm 19062946261334997559157066059536 533) 247818301397354968269041858773968)
-      (num-test (lcm 6533849124840489114353090499099000 598) 150278529871331249630121081479277000)
-      (num-test (lcm 427663965127849896842400211428345149025 234) 855327930255699793684800422856690298050)
-      (num-test (lcm 352395507261316174741530450071590608 154734) 14448215797713963164402748452935214928)
-      (num-test (lcm 391579493632653867660919800000 9221565) 5598412020466052345948170380600000)
-      (num-test (lcm 2618798923882923048581401148931738000 681876) 34044386010477999631558214936112594000)
-      (num-test (lcm 174712575449141140214591110997980800 233260339838) 323043552005461968256778964235266499200)
-      (num-test (lcm 88598141227372995032227898284800 1929763976) 1101009101032564209265496091985209600)
-      (num-test (lcm 210110141308655567793064872567302676320 720390430628) 322939287191403607697940709135944213503840)
-      (num-test (lcm 668425085137718599277317523827419000 19898594339442) 226544635130131000822866287128160329737000)
-      (num-test (lcm 89533471731097208414073727453200 4173840860670546) 165547389230798738357622322060966800)
-      (num-test (lcm 113987439157802480362236410675251462620 21548296273949445) 2165761343998247126882491802829777789780)
-      (num-test (lcm 48129335993995093308894209644253760 1009442888504820) 572305934304595654536061046879821460160)
-      (num-test (lcm 3497836376962291922989777163497680 138736290091634664) 143411291455453968842580863703404880)
-      (num-test (lcm 11371924962562208722154622794880 3) 11371924962562208722154622794880)
-      (num-test (lcm 9451631862008339290824315653784000 703) 349710378894308553760499679190008000)
-      (num-test (lcm 16869347753325980368094612370435598560 806) 16869347753325980368094612370435598560)
-      (num-test (lcm 4701845646467068759127854100132739552 3198) 2506083729566947648615146235370750181216)
-      (num-test (lcm 1029865193584911347147121232800485280 1005771) 42224472936981365233031970544819896480)
-      (num-test (lcm 10657125216930337802109861408000 2415138) 9069213559607717469595492058208000)
-      (num-test (lcm 14382707743772734802155022983680 247913634) 24608812949595149246487244325076480)
-      (num-test (lcm 60134748581470366378101904574533857248 54828228) 6674957092543210667969311407773258154528)
-      (num-test (lcm 214830664120540781167218700750596000 505665810) 9237718557183253590190404132275628000)
-      (num-test (lcm 48933004118344447687599112101802800 6263883444) 2887047242982322413568347614006365200)
-      (num-test (lcm 5498670161558110606435630054129739400 262699548132) 1072697071127240891435282017849791951370200)
-      (num-test (lcm 35941673649029587182509620977230062500 25622409466332) 1752120648716543345560161513018988316812500)
-      (num-test (lcm 1592802602494326390643157055239113248 736377633395508) 1221679596113148341623301461368399861216)
-      (num-test (lcm 4043816553144402557587143272522043028314 5011466158645380) 55359848612546871013367991400826769057618660)
-      (num-test (lcm 7171921165220830707276631005512550 1765284492289500) 71719211652208307072766310055125500)
-      (num-test (lcm 2402189359210218692854826119405968750 23) 55250355261835029935661000746337281250)
-      (num-test (lcm 26149068753160488131648964110990162400 1147) 967515543866938060871011672106636008800)
-      (num-test (lcm 556184059176863945810376239306506311552 4089) 556184059176863945810376239306506311552)
-      (num-test (lcm 67871323087036310486238021899264593800 13395) 67871323087036310486238021899264593800)
-      (num-test (lcm 12750401179065252879838440979200 7177173) 12750401179065252879838440979200)
-      (num-test (lcm 278110245000092733617125071646080 17748) 278110245000092733617125071646080)
-      (num-test (lcm 13408203364935178481017292708752000 50619404) 496103524502601603797639830223824000)
-      (num-test (lcm 124271828931784534297423756437875067000 8839796595) 270042684268767793028301822739502520591000)
-      (num-test (lcm 11893442806922081156953529319100769836176 972789007267) 11762614936045938264227040496590661367978064)
-      (num-test (lcm 352581052555284857902053030133344488264100 923561430099) 5993877893439842584334901512266856300489700)
-      (num-test (lcm 6108908012714804315575319947340956346976 31944833628092) 2009830736183170619824280262675174638155104)
-      (num-test (lcm 67475643422116264959949054821520228800 22515435540) 4655819396126022282236484782684895787200)
-      (num-test (lcm 470601888939348535946408832 5135943991060962937) 65492053197870222825732159796881558144)
-      (num-test (lcm 110759232155568113345545635903016614000 30159198663300) 110759232155568113345545635903016614000)
-      (num-test (lcm 146100914712024458707469587112300146320 26868173101560) 380954774790565399517176676594819048626034640)
-      (num-test (lcm 12173192708601511002951184416658091200 466645866900785428350) 3795589313349242529209176349929576178068800)
-      (num-test (lcm 5784684831478746253226687170890240 13) 5784684831478746253226687170890240)
-      (num-test (lcm 35042260655085685815432622412891903767500 667) 35042260655085685815432622412891903767500)
-      (num-test (lcm 2903871349270676921837488659419545120987500 530) 2903871349270676921837488659419545120987500)
-      (num-test (lcm 630123969240840167098426767919876491188000 77691) 1890371907722520501295280303759629473564000)
-      (num-test (lcm 33192703032132982013024959634241667249800 4684718) 1228130012188920334481923506466941688242600)
-      (num-test (lcm 4731525733734729472809717145544850000 90706055) 4731525733734729472809717145544850000)
-      (num-test (lcm 214011009809686092216200126896120006823232 50400042) 41806836755312368428342478589030147212911547968)
-      (num-test (lcm 5854250735296111435541950856160000 24357777002) 174403983655206455776230257955862560000)
-      (num-test (lcm 35348208247612761916374738259136697649608 156806713508) 644786666644704390116591600584912501826499528)
-      (num-test (lcm 612558317420289618714916924536521515286100 2377007388) 11638608030985502755583421566193908790435900)
-      (num-test (lcm 181857299802925368992522029882739454720 21606337755618) 181857299802925368992522029882739454720)
-      (num-test (lcm 4731635341196946327443020710970699860000 58092526675092) 354167636923932629555437543236867855220860000)
-      (num-test (lcm 22081740554432638182773611616166588288192 61419768950540) 110408702772163190913868058080832941440960)
-      (num-test (lcm 125627844706077784535328068665849312000 30482033400) 118925222307474416497014710218320253656864000)
-      (num-test (lcm 1225504716872819103560254268197955520 510813364186125) 3707151768540277788269769161298815448000)
-      (num-test (lcm 5209185280578468690281136425214396728400 2327880739319250103818) 14624765850878700374498228867533344237423825059372400)
-      (num-test (lcm 230425011604643097634961294406535254400 31) 230425011604643097634961294406535254400)
-      (num-test (lcm 13222608481676137093434201748083744000 893) 13222608481676137093434201748083744000)
-      (num-test (lcm 13348198818240350339028224064019716678960 651) 2896559143558156023569124621892278519334320)
-      (num-test (lcm 7236172685650198160266777676385295337308176 23426) 383517152339460502494139216848420652877333328)
-      (num-test (lcm 756264162229440667711265021676693350760 28899) 756264162229440667711265021676693350760)
-      (num-test (lcm 40915062421030872924283823601517905600 36345062) 40915062421030872924283823601517905600)
-      (num-test (lcm 1174590526522170015825602834292923520 4991486258) 40402390340783082034353260691173690317440)
-      (num-test (lcm 2891892862328155581145450075391651333218020 35138529818) 2891892862328155581145450075391651333218020)
-      (num-test (lcm 1993335355070485984559797658834121810059400 535644500) 408633747789449626834758520060994971062177000)
-      (num-test (lcm 6324295450641455215591954662726515160 367472693133) 259296113476299663839270141171787121560)
-      (num-test (lcm 6576388154814679090356195121505112000 15901952377630) 107846189350805922402751243797562331688000)
-      (num-test (lcm 117828556355409428513249595788296238400 565992666495795) 2013191495492007395999396032982202432871329600)
-      (num-test (lcm 592831716700236607285748949860604000 139641978135660) 241282508696996299165299822593265828000)
-      (num-test (lcm 106766839071170184723986891291602032000 1584924526628112) 85306704417864977594465526141990023568000)
-      (num-test (lcm 21677148858122146832326483307664860804937400 247815827510760) 585283019169297964472815049306951241733309800)
-      (num-test (lcm 14079549844487257384278196623697173813600 160967604100961853832) 52755411528451062517793341673751996512389960800)
-      (num-test (lcm 2696480372014145687016224877963234647656980 2219319031453896088860) 4753894895860938846209604459849182683819255740)
-      (num-test (lcm 13545431257849875145060979241270859310160 29) 13545431257849875145060979241270859310160)
-      (num-test (lcm 137485634482479300158725199474868559498162500 329) 962399441377355101111076396324079916487137500)
-      (num-test (lcm 529252417743761759027305009539254400 3243) 529252417743761759027305009539254400)
-      (num-test (lcm 133897419738958073238580385894509887148800 330455) 133897419738958073238580385894509887148800)
-      (num-test (lcm 3896215507210178905244623173635584334007288624 1005238) 3896215507210178905244623173635584334007288624)
-      (num-test (lcm 17654511984514518592175290794029073043800 1060530) 511980847550921039173083433026843118270200)
-      (num-test (lcm 16470780256339082688310222474503880382858400 913836) 16470780256339082688310222474503880382858400)
-      (num-test (lcm 57267105834722825210001789897760395576000 2958974018) 2691553974231972784870084125194738592072000)
-      (num-test (lcm 521977833444747522001426544601807810543216 1066521690) 112225234190620717230306707089388679266791440)
-      (num-test (lcm 1699559962174727325529414216960251941390400 25883611479) 1422531688340246771468119699595730874943764800)
-      (num-test (lcm 10654036597801063717295948399628964800 317449894126222) 176036646705466975800880955407069385390400)
-      (num-test (lcm 381902381115592200811990304316262139150724960 4640335440216) 381902381115592200811990304316262139150724960)
-      (num-test (lcm 425968526187959807410151867411382902838703889232 1882826315615025) 181036623629882918149314543649837733706449152923600)
-      (num-test (lcm 174609167728518272531601927200939868792000 1712923655178450) 48325242369824705024158690915447549888986499656000)
-      (num-test (lcm 3325168366561555458817274989681612518000 1699726139891780) 43227188765300220964624574865860962734000)
-      (num-test (lcm 11429650426242566426919762928176000 7414967839104) 15647191433526073438453155448672944000)
-      (num-test (lcm 2104794191230056678355480848036599377844400 16946684823025584) 195745859784395271087059718867403742139529200)
-      (num-test (lcm 11894522530167763519415142641640874994880 7) 11894522530167763519415142641640874994880)
-      (num-test (lcm 5906329981690378696996009087718418780000 185) 5906329981690378696996009087718418780000)
-      (num-test (lcm 3056294774178096513474941936265025440000 658) 3056294774178096513474941936265025440000)
-      (num-test (lcm 10491907660880423349353457742257185280 123369) 10491907660880423349353457742257185280)
-      (num-test (lcm 673239479595593149777212259021965839229225628776 15470) 3366197397977965748886061295109829196146128143880)
-      (num-test (lcm 1506608574369860432616005754109397877696 1474070) 7533042871849302163080028770546989388480)
-      (num-test (lcm 4849814041048623250005708880379694793905000 2172220582) 4849814041048623250005708880379694793905000)
-      (num-test (lcm 21154344928580705924176101470087564940000 5023204186) 21154344928580705924176101470087564940000)
-      (num-test (lcm 346448039376394135288065831861806112294000 776147372) 10739889220668218193930040787715989481114000)
-      (num-test (lcm 2339009760844587560470606952218133142645504 194201967414) 86543361151249739737412457232070926277883648)
-      (num-test (lcm 2242982161480922111384667548175169152 21419749763490) 20736370082891124919751251482879438810240)
-      (num-test (lcm 4717315265246821759830981157482117120 45609714193992) 8203411246264223040346076232861401671680)
-      (num-test (lcm 16628111321698075419789804224660024289936 4643626415880804) 46708364702649893854189560067070008230430224)
-      (num-test (lcm 115557531507210992033160068979962880 88406536976058378) 279533668715943389728214206862530206720)
-      (num-test (lcm 21059511907771200155093927745003762840000 180298981648603620) 19859119729028241746253573863538548358120000)
-      (num-test (lcm 2124921015128697258800067298086064536000 2282525112298516782924) 321127237090271040335932409977291910220921912000)
-      (num-test (lcm 16015671538624533047089928322348864000 49817926936366875) 11550742548729092601556962655002835949760000)
-      (num-test (lcm 166517667014186289390514558017250969134523800 43413708621878528404068) 6080725646357040729673420115115953639885405604600)
-      (num-test (lcm 2780796292789128359666429021610464935722000 47) 2780796292789128359666429021610464935722000)
-      (num-test (lcm 21297913114430245153455383503409684916193317960 58) 21297913114430245153455383503409684916193317960)
-      (num-test (lcm 1516745257039775143654568869485529015398000 6293) 1516745257039775143654568869485529015398000)
-      (num-test (lcm 8447692776411453120390905608381515479808 2030) 1224915452579660702456681313215319744572160)
-      (num-test (lcm 958876033949638283967045624731391031146081240 9834415) 56573686003028658754055691859152070837618793160)
-      (num-test (lcm 4731349833403602529573388098680617532624192 14868) 4731349833403602529573388098680617532624192)
-      (num-test (lcm 6375001358038970462026761077388061675464000 430513678) 6375001358038970462026761077388061675464000)
-      (num-test (lcm 254088526608579040642428151389718385042344800 4799428101) 4774577503501808752711867392764198173330701136800)
-      (num-test (lcm 21140490542258031885408065086507444825621023648 164778747198) 264108148344429592344402957125737508206483448434464)
-      (num-test (lcm 34214837305812460226811046733375808000 4312787868) 197795974464901832571194661165645546048000)
-      (num-test (lcm 11450197571956515037245443769386989035470896800 75585518430279) 148852568435434695484190769002030857461121658400)
-      (num-test (lcm 1211397915863796187148880114197307052796506376580 538601201880) 55724304129734624608848485253076124428639293322680)
-      (num-test (lcm 5454139401260819402160859765169199667337088 30452838731872) 3430653683393055403959180792291426590755028352)
-      (num-test (lcm 744935981632690384026127091216926530879171660 1032747922358460) 12639328800361857745771298356677592449426905555220)
-      (num-test (lcm 324574326062026951443376280715122947502400 103751223626207988025) 10099779304072092648063539727012480757432180800)
-      (num-test (lcm 15272163751269260921486082393684080908800 6484309049057400) 290171111274115957508235565479997537267200)
-      (num-test (lcm 386527546655781220813671331401971490218262720 3481571963427119100) 702565997265680899293657490452822449622871959067200)
-      (num-test (lcm 3189682029126430413458911948222943640000 6724598925622907976570) 25845014249628523826120631630482407871222520000)
-      (num-test (lcm 709403542855323660533377490060722241678400 7) 709403542855323660533377490060722241678400)
-      (num-test (lcm 139803787314578422635552652090095842837312147438904 123) 139803787314578422635552652090095842837312147438904)
-      (num-test (lcm 171985399350431759069945935900956183322827030835560 18241) 171985399350431759069945935900956183322827030835560)
-      (num-test (lcm 33090522521924986387051477884789600000 26187) 1422892468442774414643213549045952800000)
-      (num-test (lcm 1733723010009930088165729903139785699319986530 372945) 81484981470466714143789305447569927868039366910)
-      (num-test (lcm 56408303994570817306318494803635460247582000 5761730) 30065626029106245624267757730337700311961206000)
-      (num-test (lcm 25845509336769185412951159262424903513866295760 64371378271) 25845509336769185412951159262424903513866295760)
-      (num-test (lcm 624970361450506104794172455132584603069611058500 108222780) 624970361450506104794172455132584603069611058500)
-      (num-test (lcm 82823962548382643645255524843049561752323600 135325929794) 911063588032209080097810773273545179275559600)
-      (num-test (lcm 170620453449723034746079844571491973300000 9460614789626) 6995438591438644424589273627431170905300000)
-      (num-test (lcm 125144597811313015929871740675462711600000 12764411911636) 125520031604746954977661355897489099734800000)
-      (num-test (lcm 257193319319332344553297882967977761077115600 6510126541380) 10544926092092626126685213201687088204161739600)
-      (num-test (lcm 879624546681838385457288074812140664728758550 10045784120501316) 109420015859940604120573892778181425848269191068700)
-      (num-test (lcm 18300938860777100857669855248554588369659200 118088077425391892) 1507430033023349020545408306968192889420458644800)
-      (num-test (lcm 8394780474625841647581984803260010511075000 746584618179400) 559688409023779488485938508818148160783881325000)
-      (num-test (lcm 146802334713757872619395774222116859916800 718775571956687400) 123460763494270370872911846120800279190028800)
-      (num-test (lcm 240155883351717999820072393833707008014911556000 1350921510529331832) 31940732485778493976069628379883032065983236948000)
-      (num-test (lcm 918942437243241528855354123800826649596480 74343962238703160850) 19653830834705779820109799278313370922778988193600)
-      (num-test (lcm 1361069299753299783990135442290762165844800 8281085446358585640) 1318876151460947490686441243579748538703611200)
-
-      (num-test (lcm 111738283365989051/177100989030047175 5964153172084899/4217293152016490)
-		(/ (* 111738283365989051/177100989030047175 5964153172084899/4217293152016490) 
-		   (gcd 111738283365989051/177100989030047175 5964153172084899/4217293152016490)))
-      (num-test (lcm 11571718688839/18340740190704 5168247530883/3654502875938) 
-		(/ (* 11571718688839/18340740190704 5168247530883/3654502875938) (gcd 11571718688839/18340740190704 5168247530883/3654502875938)))
-      (num-test (lcm 130441933147714940/206745572560704147 14398739476117879/10181446324101389) 
-		(/ (* 130441933147714940/206745572560704147 14398739476117879/10181446324101389) 
-		   (gcd 130441933147714940/206745572560704147 14398739476117879/10181446324101389)))
-      (num-test (lcm 137528045312/217976794617 63018038201/44560482149) 
-		(/ (* 137528045312/217976794617 63018038201/44560482149) (gcd 137528045312/217976794617 63018038201/44560482149)))
-      (num-test (lcm 326267455807135/517121682660006 30122754096401/21300003689580) 
-		(/ (* 326267455807135/517121682660006 30122754096401/21300003689580) (gcd 326267455807135/517121682660006 30122754096401/21300003689580)))
-      (num-test (lcm 3816473305410548/6048967074079039 423859315570607/299713796309065) 
-		(/ (* 3816473305410548/6048967074079039 423859315570607/299713796309065) (gcd 3816473305410548/6048967074079039 423859315570607/299713796309065)))
-      (num-test (lcm 397560349370386783/630118245525664765 34761632124320657/24580185800219268) 
-		(/ (* 397560349370386783/630118245525664765 34761632124320657/24580185800219268) 
-		   (gcd 397560349370386783/630118245525664765 34761632124320657/24580185800219268)))
-      (num-test (lcm 483615324366283/766512153894657 175568277047523/124145519261542) 
-		(/ (* 483615324366283/766512153894657 175568277047523/124145519261542) (gcd 483615324366283/766512153894657 175568277047523/124145519261542)))
-      (num-test (lcm 52449289519716/83130157078217 12477253282759/8822750406821) 
-		(/ (* 52449289519716/83130157078217 12477253282759/8822750406821) (gcd 52449289519716/83130157078217 12477253282759/8822750406821)))
-      (num-test (lcm 5409303924479/8573543875303 886731088897/627013566048) 
-		(/ (* 5409303924479/8573543875303 886731088897/627013566048) (gcd 5409303924479/8573543875303 886731088897/627013566048)))
-      (num-test (lcm 615582794569/975675645481 152139002499/107578520350) 
-		(/ (* 615582794569/975675645481 152139002499/107578520350) (gcd 615582794569/975675645481 152139002499/107578520350)))
-      (num-test (lcm 6189245291/9809721694 1855077841/1311738121) 
-		(/ (* 6189245291/9809721694 1855077841/1311738121) (gcd 6189245291/9809721694 1855077841/1311738121)))
-      (num-test (lcm 65470613321/103768467013 10812186007/7645370045) 
-		(/ (* 65470613321/103768467013 10812186007/7645370045) (gcd 65470613321/103768467013 10812186007/7645370045)))
-      (num-test (lcm 6586818670/10439860591 4478554083/3166815962) 
-		(/ (* 6586818670/10439860591 4478554083/3166815962) (gcd 6586818670/10439860591 4478554083/3166815962)))
-      (num-test (lcm 7530699980955811472069/11935877073996486182239 96845919575610633161/68480406462161287469) 
-		(/ (* 7530699980955811472069/11935877073996486182239 96845919575610633161/68480406462161287469) 
-		   (gcd 7530699980955811472069/11935877073996486182239 96845919575610633161/68480406462161287469)))
-      (num-test (lcm 753110839881/1193652440098 367296043199/259717522849) 
-		(/ (* 753110839881/1193652440098 367296043199/259717522849) (gcd 753110839881/1193652440098 367296043199/259717522849)))
-
-      ))
-
+(when with-bignums 
+  (num-test (let ((n 1)) (do ((i 2 (+ i 1))) ((= i 100)) (set! n (lcm n i))) n) 69720375229712477164533808935312303556800)
+  (num-test (lcm -9223372036854775808 -9223372036854775808) 9223372036854775808)
+  (num-test (lcm -9223372036854775808 9223372036854775807 -9223372036854775808) 85070591730234615856620279821087277056)
+  (num-test (lcm 1/21 1/2432902008176640001) 1)
+  (num-test (lcm 132120577 33292289 260046847) 1143841133453061178785791)
+  (num-test (lcm 132120577 33292289) 4398596432330753)
+  (num-test (lcm 132120577/12 33292289/6 260046847/4) 1143841133453061178785791/2)
+  (num-test (lcm 2/132120577 3/33292289 4/260046847) 12)
+  (num-test (lcm 21 2432902008176640001) 51090942171709440021)
+  (num-test (lcm 2353913150770005286438421033702874906038383291674012942337 9641628265553941653251772554046975615133217962696757011808257)
+	    22695555569123220026272727097682721551725929819788097280747860983024240452040931523149698041303750665450606153441476609)
+  (num-test (lcm 2432902008176640001 21) 51090942171709440021)
+  (num-test (lcm 2432902008176640001/21 21/2432902008176640001) 51090942171709440021)
+  (num-test (lcm 557057 23068673 167772161) 2155967190204955525121)
+  (num-test (lcm 9223372036854775807 -9223372036854775808) 85070591730234615856620279821087277056)
+  (num-test (lcm 524288 19073486328125) 10000000000000000000)
+  (num-test (lcm 2147483648 4656612873077392578125) 10000000000000000000000000000000)
+  (num-test (lcm (/ (expt 2 57) 3) (/ 65 11)) 9367487224930631680)
+  (num-test (lcm 460683358924445799142 518) 460683358924445799142)
+  (num-test (lcm 113021475230160 74635) 1243236227531760)
+  (num-test (lcm 74228340534140364 363909) 16107549895908458988)
+  (num-test (lcm 69242022961311060 48305942) 55324376346087536940)
+  (num-test (lcm 286967952870300 2273388) 4181983977178881900)
+  (num-test (lcm 302822258393413362492399 29) 302822258393413362492399)
+  (num-test (lcm 10491072879382200 133) 10491072879382200)
+  (num-test (lcm 167206737423420464 609) 14546986155837580368)
+  (num-test (lcm 72212583812867784 4888799) 7511336330463068288328)
+  (num-test (lcm 4170116471639397292390 1798025) 20850582358196986461950)
+  (num-test (lcm 83910330283522050 35224) 12418728881961263400)
+  (num-test (lcm 275373383775647594346 66884092) 175688218848863165192748)
+  (num-test (lcm 14656657495570695990 37) 542296327336115751630)
+  (num-test (lcm 95470974177676509874110 1219) 95470974177676509874110)
+  (num-test (lcm 619506317623001424 5957) 527199876297174211824)
+  (num-test (lcm 11268171656665155960 9858) 597213097803253265880)
+  (num-test (lcm 6172860073826160 5167394) 10376577784101774960)
+  (num-test (lcm 26457493095663264 1491412) 9974474897065050528)
+  (num-test (lcm 8481384175941103284 313836405) 52191512141200849929103020)
+  (num-test (lcm 60356595775749199080 176098815946) 6192647083187643574807080)
+  (num-test (lcm 611492274956002440 37) 611492274956002440)
+  (num-test (lcm 164614611843685080 1711) 4773823743466867320)
+  (num-test (lcm 93177516542679418720 62197) 156631405308244102868320)
+  (num-test (lcm 938959746797519770440 127558) 938959746797519770440)
+  (num-test (lcm 137670522526899326250 200) 550682090107597305000)
+  (num-test (lcm 852063402206742880 41643478) 607521205773407673440)
+  (num-test (lcm 55947291202307909360 188546228) 1657550396450776430608720)
+  (num-test (lcm 12877971214039423262680 9832253830) 1040166612929178256349926280)
+  (num-test (lcm 192158415774146059920 53) 192158415774146059920)
+  (num-test (lcm 902814024155808960 1829) 53266027425192728640)
+  (num-test (lcm 1265864304573235487120 4921) 24051421786891474255280)
+  (num-test (lcm 14172662463567665400 95817) 23824245601257245537400)
+  (num-test (lcm 32171996211745702482324 2368555) 294212905356414449200852980)
+  (num-test (lcm 971324258606045826300 4576748) 18836891347147046709435900)
+  (num-test (lcm 2400649320046378377000 1704690) 4400390203645011565041000)
+  (num-test (lcm 953233796456393760 18342152493) 30445334225020760300640)
+  (num-test (lcm 28906333140964843080 236206740) 8296117611456909963960)
+  (num-test (lcm 775403093708557121609032 41) 775403093708557121609032)
+  (num-test (lcm 12587009808135760402860 2491) 667111519831195301351580)
+  (num-test (lcm 510685807527370566909720 76) 9703030343020040771284680)
+  (num-test (lcm 9842598153710524682146590 10089) 29527794461131574046439770)
+  (num-test (lcm 44936631038618189620242012 30740) 224683155193090948101210060)
+  (num-test (lcm 934589372977008750144 373650) 1238330919194536593940800)
+  (num-test (lcm 33027125273398900134069150 840577803) 33027125273398900134069150)
+  (num-test (lcm 4428219127938822420288 1695783782) 600648070732749811910284608)
+  (num-test (lcm 29316428815807608915440 560764380) 107210180179408425803764080)
+  (num-test (lcm 1364397376360544429904 19) 1364397376360544429904)
+  (num-test (lcm 4991450791697293128313385277 329) 234598187209772777030729108019)
+  (num-test (lcm 75448279792981695149550 3009) 75674624632360640234998650)
+  (num-test (lcm 181031604499464166188731133 3364) 608990317536197455058891531412)
+  (num-test (lcm 405831142402606479845286 2746214) 6899129420844310157369862)
+  (num-test (lcm 89170366469003867207160 25337230) 196977339530029542660616440)
+  (num-test (lcm 13523725766340619200 1490114045) 704734873409776007131200)
+  (num-test (lcm 104705939487154940255412 192200052) 768227478017255796653957844)
+  (num-test (lcm 7232591421499800642000 16584679460) 15338901584491041700955526000)
+  (num-test (lcm 14043796716396386984750160 33382708236) 1306073094624863989581764880)
+  (num-test (lcm 13894638105872256412416 23) 13894638105872256412416)
+  (num-test (lcm 147611447155643499428400 118) 8709075382182966466275600)
+  (num-test (lcm 13356594697070649024 4558) 574333571974037908032)
+  (num-test (lcm 15089731174706036171537760 90) 45269193524118108514613280)
+  (num-test (lcm 307230141273924828960 1971507) 383115986168584261713120)
+  (num-test (lcm 2582563944548247741930009096 22873474) 33573331279127220645090118248)
+  (num-test (lcm 1074296602920111687342072 146235518) 7220347468226070650626065912)
+  (num-test (lcm 774058642832724262993980 407557010) 124623441496068606342030780)
+  (num-test (lcm 291091930213008490369569480 13412544348) 147286985941108248965685135059880)
+  (num-test (lcm 2089068565149831833568 7302038455228) 223766401218893937188969184)
+  (num-test (lcm 1064437567441124038217970656 5) 5322187837205620191089853280)
+  (num-test (lcm 142557826750459447787460 1333) 6129986550269756254860780)
+  (num-test (lcm 311779340580033594160200 23693) 311779340580033594160200)
+  (num-test (lcm 29314187023691666530559664 110143) 29314187023691666530559664)
+  (num-test (lcm 222003853016244177637944900 857463) 222003853016244177637944900)
+  (num-test (lcm 6247776111945111006243552 77976501) 193681059470298441193550112)
+  (num-test (lcm 1140058514761397155259712 5530338) 12540643662375368707856832)
+  (num-test (lcm 580962736822969724865449808 55686036) 21495621262449879820021642896)
+  (num-test (lcm 4100502596989506786787500 45333475410) 329750117342105167273090387500)
+  (num-test (lcm 1497378750311599979536944 262630276090) 1089215763657912499114866119760)
+  (num-test (lcm 105637634198318524045536 2633013240) 1853412292009498504378929120)
+  (num-test (lcm 11415822547029425161364106595632 7) 79910757829205976129548746169424)
+  (num-test (lcm 198305933339312916107438448 177) 11700050067019462050338868432)
+  (num-test (lcm 3127415425979879537134790928 3335) 15637077129899397685673954640)
+  (num-test (lcm 589703503861221139260034914750 13209) 21819029642865182152621291845750)
+  (num-test (lcm 3108579252052448504121792 14322) 96365956813625903627775552)
+  (num-test (lcm 636976201153021006473464400 66264077) 12102547821907399122995823600)
+  (num-test (lcm 9544425315508129998909285900 1488396) 66810977208556909992365001300)
+  (num-test (lcm 458100280193857502802977376 260747103934) 19226926860016393250143763448096)
+  (num-test (lcm 114208186302155358124900650 22076867505) 397558696517802801632779162650)
+  (num-test (lcm 90107067439719108194114160 28566806069714) 755187332212285845774870774960)
+  (num-test (lcm 2976572787365723002218245484 110104803958578) 110463592711929346335321308156724)
+  (num-test (lcm 53453375725613238735360 17) 908707387335425058501120)
+  (num-test (lcm 888822833524306124874229800 106) 888822833524306124874229800)
+  (num-test (lcm 21275338550698297089687698855820 3021) 21275338550698297089687698855820)
+  (num-test (lcm 417525245705449941528380320750068 5828) 417525245705449941528380320750068)
+  (num-test (lcm 1954871230146370370001829871352 22765249) 1954871230146370370001829871352)
+  (num-test (lcm 903057827710908645847577520 648545995) 1126113111155503081371929167440)
+  (num-test (lcm 6002846634833433581621040 28493572159) 6137376430766685661618749127440)
+  (num-test (lcm 26428903214964558277189300080 100428856) 766438193233972190038489702320)
+  (num-test (lcm 470486531607553676511206181180 28495896) 4523257514875021045978736225864520)
+  (num-test (lcm 483599554429365539310928369206620 5577334078910) 25630776384756373583479203567950860)
+  (num-test (lcm 134511400157705323668887400 1285071093558916) 508298000951744289230204144827800)
+  (num-test (lcm 25897125642468049125349982599216 1183846707540) 1165370653911062210640749216964720)
+  (num-test (lcm 1118034209930460291955200 3) 1118034209930460291955200)
+  (num-test (lcm 16297594064835666104344589410644 413) 16297594064835666104344589410644)
+  (num-test (lcm 536762539932642345554192060100 1378) 536762539932642345554192060100)
+  (num-test (lcm 933250179448203335817687635834340 58029) 784863400915939005422675301736679940)
+  (num-test (lcm 65573457048202714607131200 486115) 8721269787410961042748449600)
+  (num-test (lcm 85664559165674439863772868932 322014) 85664559165674439863772868932)
+  (num-test (lcm 7232817686074320060728552759760 11307940) 7232817686074320060728552759760)
+  (num-test (lcm 78400098291720425971762131120 5646921093) 78400098291720425971762131120)
+  (num-test (lcm 345445746644065669842240 19727989065) 3106593599570082568891264320)
+  (num-test (lcm 627854758484491743169777558200 750371721805653) 3013801413922642432418609934436637400)
+  (num-test (lcm 788233263079483492974876830792850 7170146100) 963221047483128828415299487228862700)
+  (num-test (lcm 18378856389802641496737518160 6247594493140) 139293352578314219903773650134640)
+  (num-test (lcm 9620902642431357480148667659080 59) 9620902642431357480148667659080)
+  (num-test (lcm 16008524600631853118144316000 629) 10069361973797435611312774764000)
+  (num-test (lcm 4342138447708715023205684275423920 53041) 134606291878970165719376212538141520)
+  (num-test (lcm 2431833161592653384508687244500 47541) 2431833161592653384508687244500)
+  (num-test (lcm 39424620224103957589082132160 1671734) 39424620224103957589082132160)
+  (num-test (lcm 652830233576052788654372406432 552231327) 28071700043770269912138013476576)
+  (num-test (lcm 6892963340916411083970414000 3662431431) 323969277023071320946609458000)
+  (num-test (lcm 29102758215190063506219566460000 10565720) 29102758215190063506219566460000)
+  (num-test (lcm 21253900104556838003127171970777418412 1182797770) 400954825472464748928994099228715998342380)
+  (num-test (lcm 3964268932242030284914943132662620 21244177854110) 4547016465281608736797439773164025140)
+  (num-test (lcm 6070388091189460078138338240 40809131994181213) 903741167852013248053001382156480)
+  (num-test (lcm 9685989954133695108793384134000 964113514382876) 55084224869158324083707975570058000)
+  (num-test (lcm 56468122001858834917195045500 429400787158167902) 11597366428619765656458601249744500)
+  (num-test (lcm 18843408973202596901221568364900 47) 18843408973202596901221568364900)
+  (num-test (lcm 7800980538292163259967028613764250 6) 7800980538292163259967028613764250)
+  (num-test (lcm 270433907726619219545089642715200 3422) 15955600555870533953160288920196800)
+  (num-test (lcm 45771666919597903071546708768 2342359) 49112998604728549995769618508064)
+  (num-test (lcm 47198294949461301503537593835384892 314502) 2501509632321448979687492473275399276)
+  (num-test (lcm 3165335901519110207943908102359110 14953473) 228660700189839002311659977406319747290)
+  (num-test (lcm 189219585097956261544520863361400 35605794) 189219585097956261544520863361400)
+  (num-test (lcm 38532137569034426600955256933810890813 1341358608707) 8030213065799481606918878410776991078101639)
+  (num-test (lcm 1396277868664090735481380981225896 312520860) 6981389343320453677406904906129480)
+  (num-test (lcm 864038349500762576564773759109700 714136202724) 37153649028532790792285271641717100)
+  (num-test (lcm 12514185871591242579049167322464 10706997440178) 667894614152696207686433109167226144)
+  (num-test (lcm 1981802660405609330969478067056636 33312289752) 4466983196554243432005203563145657544)
+  (num-test (lcm 979313401024175219420658240 125278417383795) 79100122714123656647825986703040)
+  (num-test (lcm 4074026154111369481048033354344 29) 4074026154111369481048033354344)
+  (num-test (lcm 599666571180604695702511920885005100 129) 599666571180604695702511920885005100)
+  (num-test (lcm 5703263639326551702474610108800 1978) 5703263639326551702474610108800)
+  (num-test (lcm 134137932950214683609064669163440 190619) 178805864622636173250883203994865520)
+  (num-test (lcm 344735091370772631136645455600 1048985) 344735091370772631136645455600)
+  (num-test (lcm 6759508339299085316106145385400 4969610) 209544758518271644799290506947400)
+  (num-test (lcm 700334422308861928135313594400 228529587) 370476909401387959983580891437600)
+  (num-test (lcm 10277417891211405957191810814198480 2516552038) 113051596803325465529109918956183280)
+  (num-test (lcm 490099971577877358878082782880 9282588354) 259262884964697122846505792143520)
+  (num-test (lcm 1954558750269048828645390249600 5575829490) 33227498754573830086971634243200)
+  (num-test (lcm 1360588454560018295496656378989200 7868178296420) 719751292462249678317731224485286800)
+  (num-test (lcm 4337552841738910859248770564912480 17722936528737830) 227361507305428490509242806701017464160)
+  (num-test (lcm 215913068853045803981566931862756 7009479781500) 516383093295665670947415013416263818500)
+  (num-test (lcm 44890707654126305940250882318870941900 18329973480720) 538688491849515671283010587826451302800)
+  (num-test (lcm 28579720891831355496720656680837200 3) 28579720891831355496720656680837200)
+  (num-test (lcm 29332703209780553199747293473184160 1711) 1730629489377052638785090314917865440)
+  (num-test (lcm 3648979393315349438003046604440000 186) 3648979393315349438003046604440000)
+  (num-test (lcm 1159760236369472473822068077011807878780 25714) 1159760236369472473822068077011807878780)
+  (num-test (lcm 158186359726371025615685433600 31395) 1107304518084597179309798035200)
+  (num-test (lcm 331091450443070201468559735703944 28424) 331091450443070201468559735703944)
+  (num-test (lcm 9734443639363161342241553023288200 1961348207) 301767752820258001609488143721934200)
+  (num-test (lcm 701896612128009033011419603540080 51300) 10528449181920135495171294053101200)
+  (num-test (lcm 86169288128517384618860929451245320 5032162527446) 2406794386717619069789404620502733032920)
+  (num-test (lcm 64828800524794653881296183831741773624 4645294472) 47389853183624891987227510381003236519144)
+  (num-test (lcm 49068907706533938991402184550000 268183371225) 17713875682058751975896188622550000)
+  (num-test (lcm 1708602980304476478496020543612288 4083128544) 52966692389438770833376636851980928)
+  (num-test (lcm 17608179287674151740172985536160 980399424528) 188284261123099704557669734338158880)
+  (num-test (lcm 43194437079731225735521919644800 178119261126453036) 95416511509126277649767920495363200)
+  (num-test (lcm 817555977437791699707628651571149344 59) 817555977437791699707628651571149344)
+  (num-test (lcm 19062946261334997559157066059536 533) 247818301397354968269041858773968)
+  (num-test (lcm 6533849124840489114353090499099000 598) 150278529871331249630121081479277000)
+  (num-test (lcm 427663965127849896842400211428345149025 234) 855327930255699793684800422856690298050)
+  (num-test (lcm 352395507261316174741530450071590608 154734) 14448215797713963164402748452935214928)
+  (num-test (lcm 391579493632653867660919800000 9221565) 5598412020466052345948170380600000)
+  (num-test (lcm 2618798923882923048581401148931738000 681876) 34044386010477999631558214936112594000)
+  (num-test (lcm 174712575449141140214591110997980800 233260339838) 323043552005461968256778964235266499200)
+  (num-test (lcm 88598141227372995032227898284800 1929763976) 1101009101032564209265496091985209600)
+  (num-test (lcm 210110141308655567793064872567302676320 720390430628) 322939287191403607697940709135944213503840)
+  (num-test (lcm 668425085137718599277317523827419000 19898594339442) 226544635130131000822866287128160329737000)
+  (num-test (lcm 89533471731097208414073727453200 4173840860670546) 165547389230798738357622322060966800)
+  (num-test (lcm 113987439157802480362236410675251462620 21548296273949445) 2165761343998247126882491802829777789780)
+  (num-test (lcm 48129335993995093308894209644253760 1009442888504820) 572305934304595654536061046879821460160)
+  (num-test (lcm 3497836376962291922989777163497680 138736290091634664) 143411291455453968842580863703404880)
+  (num-test (lcm 11371924962562208722154622794880 3) 11371924962562208722154622794880)
+  (num-test (lcm 9451631862008339290824315653784000 703) 349710378894308553760499679190008000)
+  (num-test (lcm 16869347753325980368094612370435598560 806) 16869347753325980368094612370435598560)
+  (num-test (lcm 4701845646467068759127854100132739552 3198) 2506083729566947648615146235370750181216)
+  (num-test (lcm 1029865193584911347147121232800485280 1005771) 42224472936981365233031970544819896480)
+  (num-test (lcm 10657125216930337802109861408000 2415138) 9069213559607717469595492058208000)
+  (num-test (lcm 14382707743772734802155022983680 247913634) 24608812949595149246487244325076480)
+  (num-test (lcm 60134748581470366378101904574533857248 54828228) 6674957092543210667969311407773258154528)
+  (num-test (lcm 214830664120540781167218700750596000 505665810) 9237718557183253590190404132275628000)
+  (num-test (lcm 48933004118344447687599112101802800 6263883444) 2887047242982322413568347614006365200)
+  (num-test (lcm 5498670161558110606435630054129739400 262699548132) 1072697071127240891435282017849791951370200)
+  (num-test (lcm 35941673649029587182509620977230062500 25622409466332) 1752120648716543345560161513018988316812500)
+  (num-test (lcm 1592802602494326390643157055239113248 736377633395508) 1221679596113148341623301461368399861216)
+  (num-test (lcm 4043816553144402557587143272522043028314 5011466158645380) 55359848612546871013367991400826769057618660)
+  (num-test (lcm 7171921165220830707276631005512550 1765284492289500) 71719211652208307072766310055125500)
+  (num-test (lcm 2402189359210218692854826119405968750 23) 55250355261835029935661000746337281250)
+  (num-test (lcm 26149068753160488131648964110990162400 1147) 967515543866938060871011672106636008800)
+  (num-test (lcm 556184059176863945810376239306506311552 4089) 556184059176863945810376239306506311552)
+  (num-test (lcm 67871323087036310486238021899264593800 13395) 67871323087036310486238021899264593800)
+  (num-test (lcm 12750401179065252879838440979200 7177173) 12750401179065252879838440979200)
+  (num-test (lcm 278110245000092733617125071646080 17748) 278110245000092733617125071646080)
+  (num-test (lcm 13408203364935178481017292708752000 50619404) 496103524502601603797639830223824000)
+  (num-test (lcm 124271828931784534297423756437875067000 8839796595) 270042684268767793028301822739502520591000)
+  (num-test (lcm 11893442806922081156953529319100769836176 972789007267) 11762614936045938264227040496590661367978064)
+  (num-test (lcm 352581052555284857902053030133344488264100 923561430099) 5993877893439842584334901512266856300489700)
+  (num-test (lcm 6108908012714804315575319947340956346976 31944833628092) 2009830736183170619824280262675174638155104)
+  (num-test (lcm 67475643422116264959949054821520228800 22515435540) 4655819396126022282236484782684895787200)
+  (num-test (lcm 470601888939348535946408832 5135943991060962937) 65492053197870222825732159796881558144)
+  (num-test (lcm 110759232155568113345545635903016614000 30159198663300) 110759232155568113345545635903016614000)
+  (num-test (lcm 146100914712024458707469587112300146320 26868173101560) 380954774790565399517176676594819048626034640)
+  (num-test (lcm 12173192708601511002951184416658091200 466645866900785428350) 3795589313349242529209176349929576178068800)
+  (num-test (lcm 5784684831478746253226687170890240 13) 5784684831478746253226687170890240)
+  (num-test (lcm 35042260655085685815432622412891903767500 667) 35042260655085685815432622412891903767500)
+  (num-test (lcm 2903871349270676921837488659419545120987500 530) 2903871349270676921837488659419545120987500)
+  (num-test (lcm 630123969240840167098426767919876491188000 77691) 1890371907722520501295280303759629473564000)
+  (num-test (lcm 33192703032132982013024959634241667249800 4684718) 1228130012188920334481923506466941688242600)
+  (num-test (lcm 4731525733734729472809717145544850000 90706055) 4731525733734729472809717145544850000)
+  (num-test (lcm 214011009809686092216200126896120006823232 50400042) 41806836755312368428342478589030147212911547968)
+  (num-test (lcm 5854250735296111435541950856160000 24357777002) 174403983655206455776230257955862560000)
+  (num-test (lcm 35348208247612761916374738259136697649608 156806713508) 644786666644704390116591600584912501826499528)
+  (num-test (lcm 612558317420289618714916924536521515286100 2377007388) 11638608030985502755583421566193908790435900)
+  (num-test (lcm 181857299802925368992522029882739454720 21606337755618) 181857299802925368992522029882739454720)
+  (num-test (lcm 4731635341196946327443020710970699860000 58092526675092) 354167636923932629555437543236867855220860000)
+  (num-test (lcm 22081740554432638182773611616166588288192 61419768950540) 110408702772163190913868058080832941440960)
+  (num-test (lcm 125627844706077784535328068665849312000 30482033400) 118925222307474416497014710218320253656864000)
+  (num-test (lcm 1225504716872819103560254268197955520 510813364186125) 3707151768540277788269769161298815448000)
+  (num-test (lcm 5209185280578468690281136425214396728400 2327880739319250103818) 14624765850878700374498228867533344237423825059372400)
+  (num-test (lcm 230425011604643097634961294406535254400 31) 230425011604643097634961294406535254400)
+  (num-test (lcm 13222608481676137093434201748083744000 893) 13222608481676137093434201748083744000)
+  (num-test (lcm 13348198818240350339028224064019716678960 651) 2896559143558156023569124621892278519334320)
+  (num-test (lcm 7236172685650198160266777676385295337308176 23426) 383517152339460502494139216848420652877333328)
+  (num-test (lcm 756264162229440667711265021676693350760 28899) 756264162229440667711265021676693350760)
+  (num-test (lcm 40915062421030872924283823601517905600 36345062) 40915062421030872924283823601517905600)
+  (num-test (lcm 1174590526522170015825602834292923520 4991486258) 40402390340783082034353260691173690317440)
+  (num-test (lcm 2891892862328155581145450075391651333218020 35138529818) 2891892862328155581145450075391651333218020)
+  (num-test (lcm 1993335355070485984559797658834121810059400 535644500) 408633747789449626834758520060994971062177000)
+  (num-test (lcm 6324295450641455215591954662726515160 367472693133) 259296113476299663839270141171787121560)
+  (num-test (lcm 6576388154814679090356195121505112000 15901952377630) 107846189350805922402751243797562331688000)
+  (num-test (lcm 117828556355409428513249595788296238400 565992666495795) 2013191495492007395999396032982202432871329600)
+  (num-test (lcm 592831716700236607285748949860604000 139641978135660) 241282508696996299165299822593265828000)
+  (num-test (lcm 106766839071170184723986891291602032000 1584924526628112) 85306704417864977594465526141990023568000)
+  (num-test (lcm 21677148858122146832326483307664860804937400 247815827510760) 585283019169297964472815049306951241733309800)
+  (num-test (lcm 14079549844487257384278196623697173813600 160967604100961853832) 52755411528451062517793341673751996512389960800)
+  (num-test (lcm 2696480372014145687016224877963234647656980 2219319031453896088860) 4753894895860938846209604459849182683819255740)
+  (num-test (lcm 13545431257849875145060979241270859310160 29) 13545431257849875145060979241270859310160)
+  (num-test (lcm 137485634482479300158725199474868559498162500 329) 962399441377355101111076396324079916487137500)
+  (num-test (lcm 529252417743761759027305009539254400 3243) 529252417743761759027305009539254400)
+  (num-test (lcm 133897419738958073238580385894509887148800 330455) 133897419738958073238580385894509887148800)
+  (num-test (lcm 3896215507210178905244623173635584334007288624 1005238) 3896215507210178905244623173635584334007288624)
+  (num-test (lcm 17654511984514518592175290794029073043800 1060530) 511980847550921039173083433026843118270200)
+  (num-test (lcm 16470780256339082688310222474503880382858400 913836) 16470780256339082688310222474503880382858400)
+  (num-test (lcm 57267105834722825210001789897760395576000 2958974018) 2691553974231972784870084125194738592072000)
+  (num-test (lcm 521977833444747522001426544601807810543216 1066521690) 112225234190620717230306707089388679266791440)
+  (num-test (lcm 1699559962174727325529414216960251941390400 25883611479) 1422531688340246771468119699595730874943764800)
+  (num-test (lcm 10654036597801063717295948399628964800 317449894126222) 176036646705466975800880955407069385390400)
+  (num-test (lcm 381902381115592200811990304316262139150724960 4640335440216) 381902381115592200811990304316262139150724960)
+  (num-test (lcm 425968526187959807410151867411382902838703889232 1882826315615025) 181036623629882918149314543649837733706449152923600)
+  (num-test (lcm 174609167728518272531601927200939868792000 1712923655178450) 48325242369824705024158690915447549888986499656000)
+  (num-test (lcm 3325168366561555458817274989681612518000 1699726139891780) 43227188765300220964624574865860962734000)
+  (num-test (lcm 11429650426242566426919762928176000 7414967839104) 15647191433526073438453155448672944000)
+  (num-test (lcm 2104794191230056678355480848036599377844400 16946684823025584) 195745859784395271087059718867403742139529200)
+  (num-test (lcm 11894522530167763519415142641640874994880 7) 11894522530167763519415142641640874994880)
+  (num-test (lcm 5906329981690378696996009087718418780000 185) 5906329981690378696996009087718418780000)
+  (num-test (lcm 3056294774178096513474941936265025440000 658) 3056294774178096513474941936265025440000)
+  (num-test (lcm 10491907660880423349353457742257185280 123369) 10491907660880423349353457742257185280)
+  (num-test (lcm 673239479595593149777212259021965839229225628776 15470) 3366197397977965748886061295109829196146128143880)
+  (num-test (lcm 1506608574369860432616005754109397877696 1474070) 7533042871849302163080028770546989388480)
+  (num-test (lcm 4849814041048623250005708880379694793905000 2172220582) 4849814041048623250005708880379694793905000)
+  (num-test (lcm 21154344928580705924176101470087564940000 5023204186) 21154344928580705924176101470087564940000)
+  (num-test (lcm 346448039376394135288065831861806112294000 776147372) 10739889220668218193930040787715989481114000)
+  (num-test (lcm 2339009760844587560470606952218133142645504 194201967414) 86543361151249739737412457232070926277883648)
+  (num-test (lcm 2242982161480922111384667548175169152 21419749763490) 20736370082891124919751251482879438810240)
+  (num-test (lcm 4717315265246821759830981157482117120 45609714193992) 8203411246264223040346076232861401671680)
+  (num-test (lcm 16628111321698075419789804224660024289936 4643626415880804) 46708364702649893854189560067070008230430224)
+  (num-test (lcm 115557531507210992033160068979962880 88406536976058378) 279533668715943389728214206862530206720)
+  (num-test (lcm 21059511907771200155093927745003762840000 180298981648603620) 19859119729028241746253573863538548358120000)
+  (num-test (lcm 2124921015128697258800067298086064536000 2282525112298516782924) 321127237090271040335932409977291910220921912000)
+  (num-test (lcm 16015671538624533047089928322348864000 49817926936366875) 11550742548729092601556962655002835949760000)
+  (num-test (lcm 166517667014186289390514558017250969134523800 43413708621878528404068) 6080725646357040729673420115115953639885405604600)
+  (num-test (lcm 2780796292789128359666429021610464935722000 47) 2780796292789128359666429021610464935722000)
+  (num-test (lcm 21297913114430245153455383503409684916193317960 58) 21297913114430245153455383503409684916193317960)
+  (num-test (lcm 1516745257039775143654568869485529015398000 6293) 1516745257039775143654568869485529015398000)
+  (num-test (lcm 8447692776411453120390905608381515479808 2030) 1224915452579660702456681313215319744572160)
+  (num-test (lcm 958876033949638283967045624731391031146081240 9834415) 56573686003028658754055691859152070837618793160)
+  (num-test (lcm 4731349833403602529573388098680617532624192 14868) 4731349833403602529573388098680617532624192)
+  (num-test (lcm 6375001358038970462026761077388061675464000 430513678) 6375001358038970462026761077388061675464000)
+  (num-test (lcm 254088526608579040642428151389718385042344800 4799428101) 4774577503501808752711867392764198173330701136800)
+  (num-test (lcm 21140490542258031885408065086507444825621023648 164778747198) 264108148344429592344402957125737508206483448434464)
+  (num-test (lcm 34214837305812460226811046733375808000 4312787868) 197795974464901832571194661165645546048000)
+  (num-test (lcm 11450197571956515037245443769386989035470896800 75585518430279) 148852568435434695484190769002030857461121658400)
+  (num-test (lcm 1211397915863796187148880114197307052796506376580 538601201880) 55724304129734624608848485253076124428639293322680)
+  (num-test (lcm 5454139401260819402160859765169199667337088 30452838731872) 3430653683393055403959180792291426590755028352)
+  (num-test (lcm 744935981632690384026127091216926530879171660 1032747922358460) 12639328800361857745771298356677592449426905555220)
+  (num-test (lcm 324574326062026951443376280715122947502400 103751223626207988025) 10099779304072092648063539727012480757432180800)
+  (num-test (lcm 15272163751269260921486082393684080908800 6484309049057400) 290171111274115957508235565479997537267200)
+  (num-test (lcm 386527546655781220813671331401971490218262720 3481571963427119100) 702565997265680899293657490452822449622871959067200)
+  (num-test (lcm 3189682029126430413458911948222943640000 6724598925622907976570) 25845014249628523826120631630482407871222520000)
+  (num-test (lcm 709403542855323660533377490060722241678400 7) 709403542855323660533377490060722241678400)
+  (num-test (lcm 139803787314578422635552652090095842837312147438904 123) 139803787314578422635552652090095842837312147438904)
+  (num-test (lcm 171985399350431759069945935900956183322827030835560 18241) 171985399350431759069945935900956183322827030835560)
+  (num-test (lcm 33090522521924986387051477884789600000 26187) 1422892468442774414643213549045952800000)
+  (num-test (lcm 1733723010009930088165729903139785699319986530 372945) 81484981470466714143789305447569927868039366910)
+  (num-test (lcm 56408303994570817306318494803635460247582000 5761730) 30065626029106245624267757730337700311961206000)
+  (num-test (lcm 25845509336769185412951159262424903513866295760 64371378271) 25845509336769185412951159262424903513866295760)
+  (num-test (lcm 624970361450506104794172455132584603069611058500 108222780) 624970361450506104794172455132584603069611058500)
+  (num-test (lcm 82823962548382643645255524843049561752323600 135325929794) 911063588032209080097810773273545179275559600)
+  (num-test (lcm 170620453449723034746079844571491973300000 9460614789626) 6995438591438644424589273627431170905300000)
+  (num-test (lcm 125144597811313015929871740675462711600000 12764411911636) 125520031604746954977661355897489099734800000)
+  (num-test (lcm 257193319319332344553297882967977761077115600 6510126541380) 10544926092092626126685213201687088204161739600)
+  (num-test (lcm 879624546681838385457288074812140664728758550 10045784120501316) 109420015859940604120573892778181425848269191068700)
+  (num-test (lcm 18300938860777100857669855248554588369659200 118088077425391892) 1507430033023349020545408306968192889420458644800)
+  (num-test (lcm 8394780474625841647581984803260010511075000 746584618179400) 559688409023779488485938508818148160783881325000)
+  (num-test (lcm 146802334713757872619395774222116859916800 718775571956687400) 123460763494270370872911846120800279190028800)
+  (num-test (lcm 240155883351717999820072393833707008014911556000 1350921510529331832) 31940732485778493976069628379883032065983236948000)
+  (num-test (lcm 918942437243241528855354123800826649596480 74343962238703160850) 19653830834705779820109799278313370922778988193600)
+  (num-test (lcm 1361069299753299783990135442290762165844800 8281085446358585640) 1318876151460947490686441243579748538703611200)
+  
+  (num-test (lcm 111738283365989051/177100989030047175 5964153172084899/4217293152016490)
+	    (/ (* 111738283365989051/177100989030047175 5964153172084899/4217293152016490) 
+	       (gcd 111738283365989051/177100989030047175 5964153172084899/4217293152016490)))
+  (num-test (lcm 11571718688839/18340740190704 5168247530883/3654502875938) 
+	    (/ (* 11571718688839/18340740190704 5168247530883/3654502875938) (gcd 11571718688839/18340740190704 5168247530883/3654502875938)))
+  (num-test (lcm 130441933147714940/206745572560704147 14398739476117879/10181446324101389) 
+	    (/ (* 130441933147714940/206745572560704147 14398739476117879/10181446324101389) 
+	       (gcd 130441933147714940/206745572560704147 14398739476117879/10181446324101389)))
+  (num-test (lcm 137528045312/217976794617 63018038201/44560482149) 
+	    (/ (* 137528045312/217976794617 63018038201/44560482149) (gcd 137528045312/217976794617 63018038201/44560482149)))
+  (num-test (lcm 326267455807135/517121682660006 30122754096401/21300003689580) 
+	    (/ (* 326267455807135/517121682660006 30122754096401/21300003689580) (gcd 326267455807135/517121682660006 30122754096401/21300003689580)))
+  (num-test (lcm 3816473305410548/6048967074079039 423859315570607/299713796309065) 
+	    (/ (* 3816473305410548/6048967074079039 423859315570607/299713796309065) (gcd 3816473305410548/6048967074079039 423859315570607/299713796309065)))
+  (num-test (lcm 397560349370386783/630118245525664765 34761632124320657/24580185800219268) 
+	    (/ (* 397560349370386783/630118245525664765 34761632124320657/24580185800219268) 
+	       (gcd 397560349370386783/630118245525664765 34761632124320657/24580185800219268)))
+  (num-test (lcm 483615324366283/766512153894657 175568277047523/124145519261542) 
+	    (/ (* 483615324366283/766512153894657 175568277047523/124145519261542) (gcd 483615324366283/766512153894657 175568277047523/124145519261542)))
+  (num-test (lcm 52449289519716/83130157078217 12477253282759/8822750406821) 
+	    (/ (* 52449289519716/83130157078217 12477253282759/8822750406821) (gcd 52449289519716/83130157078217 12477253282759/8822750406821)))
+  (num-test (lcm 5409303924479/8573543875303 886731088897/627013566048) 
+	    (/ (* 5409303924479/8573543875303 886731088897/627013566048) (gcd 5409303924479/8573543875303 886731088897/627013566048)))
+  (num-test (lcm 615582794569/975675645481 152139002499/107578520350) 
+	    (/ (* 615582794569/975675645481 152139002499/107578520350) (gcd 615582794569/975675645481 152139002499/107578520350)))
+  (num-test (lcm 6189245291/9809721694 1855077841/1311738121) 
+	    (/ (* 6189245291/9809721694 1855077841/1311738121) (gcd 6189245291/9809721694 1855077841/1311738121)))
+  (num-test (lcm 65470613321/103768467013 10812186007/7645370045) 
+	    (/ (* 65470613321/103768467013 10812186007/7645370045) (gcd 65470613321/103768467013 10812186007/7645370045)))
+  (num-test (lcm 6586818670/10439860591 4478554083/3166815962) 
+	    (/ (* 6586818670/10439860591 4478554083/3166815962) (gcd 6586818670/10439860591 4478554083/3166815962)))
+  (num-test (lcm 7530699980955811472069/11935877073996486182239 96845919575610633161/68480406462161287469) 
+	    (/ (* 7530699980955811472069/11935877073996486182239 96845919575610633161/68480406462161287469) 
+	       (gcd 7530699980955811472069/11935877073996486182239 96845919575610633161/68480406462161287469)))
+  (num-test (lcm 753110839881/1193652440098 367296043199/259717522849) 
+	    (/ (* 753110839881/1193652440098 367296043199/259717522849) (gcd 753110839881/1193652440098 367296043199/259717522849))))
+  
 (test (lcm 0 "hi") 'error)
 (test (lcm 0 1 "hi") 'error)
 (test (lcm 1 ' #e1.(logior )) 0) ; (lcm 1 1 0)
@@ -56793,27 +56657,27 @@ hi6: (string-app...
 	(if (not rat) 
 	    (format-logged #t "rationalize trouble with ~A~%" val)))))
 
-  (if with-bignums
-      (let ((old-prec (*s7* 'bignum-precision)))
-	(set! (*s7* 'bignum-precision) 4096)
-	(test (*s7* 'bignum-precision) 4096)
-
-	(test (check-rationalize pi 100) #t)
-	(test (check-rationalize (/ pi) 100) #t)
-
-	(for-each
-	 (lambda (arg)
-	   (test (set! (*s7* 'bignum-precision) arg) 'error))
-	 (list "hi" #\a 'a-symbol #(1 2 3) -1 0 1 3.14 3/4 1.0+1.0i #t abs #<eof> #<unspecified> (lambda () 1)))
-
-	(test (bignum-precision 213) 'error)
-	(test (set! (bignum-precision 213) 123) 'error)
-
-	(set! (*s7* 'bignum-precision) 2)
-	(test (*s7* 'bignum-precision) 2)
-	(test (object->string pi) "3.0E0")
-
-	(set! (*s7* 'bignum-precision) old-prec))))
+  (when with-bignums
+    (let ((old-prec (*s7* 'bignum-precision)))
+      (set! (*s7* 'bignum-precision) 4096)
+      (test (*s7* 'bignum-precision) 4096)
+      
+      (test (check-rationalize pi 100) #t)
+      (test (check-rationalize (/ pi) 100) #t)
+      
+      (for-each
+       (lambda (arg)
+	 (test (set! (*s7* 'bignum-precision) arg) 'error))
+       (list "hi" #\a 'a-symbol #(1 2 3) -1 0 1 3.14 3/4 1.0+1.0i #t abs #<eof> #<unspecified> (lambda () 1)))
+      
+      (test (bignum-precision 213) 'error)
+      (test (set! (bignum-precision 213) 123) 'error)
+      
+      (set! (*s7* 'bignum-precision) 2)
+      (test (*s7* 'bignum-precision) 2)
+      (test (object->string pi) "3.0E0")
+      
+      (set! (*s7* 'bignum-precision) old-prec))))
 
 (test (rationalize) 'error)
 (test (rationalize 1.23+1.0i 1.23+1.0i) 'error)
@@ -57241,19 +57105,17 @@ hi6: (string-app...
 (num-test (min 92233720368547758/9223372036854775807 92233720368547757/9223372036854775807) 92233720368547757/9223372036854775807)
 (num-test (min 9223372036854775807 -9223372036854775808) -9223372036854775808)
 
-(if with-bignums
-    (begin
-      (num-test (min 12345678901234567890 12345678901234567891) 12345678901234567890)
-      (num-test (min 2.168404344971008681816600431489558149231E-17 2.168404344971008869895696563055543437233E-17) 2.168404344971008681816600431489558149231E-17)
-      (num-test (min 2.168404344971008869895696563055543437233E-17 2.168404344971008681816600431489558149231E-17 ) 2.168404344971008681816600431489558149231E-17)
-      (num-test (min 2.168404344971008681816600431489558149231E-17 1/46116860184273879) 2.168404344971008681816600431489558149231E-17)
-      (num-test (min 1/46116860184273883 2.168404344971008869895696563055543437233E-17) 2.168404344971008681816600431489558149231E-17)
-
-      (num-test (let ((n (list 2.0 (bignum "3")))) (eval `(let () (define (f1) (min , at n)) (f1)))) 2.0)
-      (num-test (let ((n (list 2.0 (bignum "0")))) (eval `(let () (define (f1) (min , at n)) (f1)))) 0)
-      (num-test (let ((n (list 2.0 (bignum "3")))) (eval `(let () (define (f1) (max , at n)) (f1)))) 3)
-      (num-test (let ((n (list 2.0 (bignum "0")))) (eval `(let () (define (f1) (max , at n)) (f1)))) 2.0)
-      ))
+(when with-bignums
+  (num-test (min 12345678901234567890 12345678901234567891) 12345678901234567890)
+  (num-test (min 2.168404344971008681816600431489558149231E-17 2.168404344971008869895696563055543437233E-17) 2.168404344971008681816600431489558149231E-17)
+  (num-test (min 2.168404344971008869895696563055543437233E-17 2.168404344971008681816600431489558149231E-17 ) 2.168404344971008681816600431489558149231E-17)
+  (num-test (min 2.168404344971008681816600431489558149231E-17 1/46116860184273879) 2.168404344971008681816600431489558149231E-17)
+  (num-test (min 1/46116860184273883 2.168404344971008869895696563055543437233E-17) 2.168404344971008681816600431489558149231E-17)
+  
+  (num-test (let ((n (list 2.0 (bignum "3")))) (eval `(let () (define (f1) (min , at n)) (f1)))) 2.0)
+  (num-test (let ((n (list 2.0 (bignum "0")))) (eval `(let () (define (f1) (min , at n)) (f1)))) 0)
+  (num-test (let ((n (list 2.0 (bignum "3")))) (eval `(let () (define (f1) (max , at n)) (f1)))) 3)
+  (num-test (let ((n (list 2.0 (bignum "0")))) (eval `(let () (define (f1) (max , at n)) (f1)))) 2.0))
 
 (test (min 1.23+1.0i) 'error)
 (test (min) 'error)
@@ -57640,24 +57502,23 @@ hi6: (string-app...
 ;; mpfr says the first fraction is 1.000000000000000020925101928970235578612E-3
 (num-test (max 1e18 most-positive-fixnum) most-positive-fixnum) ; in bignum case there's type confusion here I think (hence num-test)
 
-(if with-bignums
-    (begin
-      (num-test (max 12345678901234567890 12345678901234567891) 12345678901234567891)
-      (num-test (max 9223372036854776/9223372036854775807 #i9223372036854775/9223372036854775000) 1.000000000000000020925101928970235578612E-3)
-      (num-test (max #i9223372036854776/9223372036854775807 9223372036854775/9223372036854775000) 1.000000000000000020925101928970235578612E-3)
-      (num-test (max #i92233720368547757/9223372036854775807 92233720368547758/9223372036854775807) 9.999999999999999992410584792601468961145E-3)
-      (num-test (max 92233720368547757/9223372036854775807 #i92233720368547758/9223372036854775807) 9.999999999999999992410584792601468961145E-3)
-      
-      ;; in these cases, the non-gmp s7 can't win:
-      ;;    :(max 9223372036854776/9223372036854775807 #i9223372036854775/9223372036854775000)
-      ;;    9223372036854776/9223372036854775807
-      ;;    :(max #i9223372036854776/9223372036854775807 9223372036854775/9223372036854775000)
-      ;;    0.001
-      ;;    :(max #i92233720368547757/9223372036854775807 92233720368547758/9223372036854775807)
-      ;;    0.01
-      ;;    :(max 92233720368547757/9223372036854775807 #i92233720368547758/9223372036854775807)
-      ;;    92233720368547757/9223372036854775807
-      ))
+(when with-bignums
+  (num-test (max 12345678901234567890 12345678901234567891) 12345678901234567891)
+  (num-test (max 9223372036854776/9223372036854775807 #i9223372036854775/9223372036854775000) 1.000000000000000020925101928970235578612E-3)
+  (num-test (max #i9223372036854776/9223372036854775807 9223372036854775/9223372036854775000) 1.000000000000000020925101928970235578612E-3)
+  (num-test (max #i92233720368547757/9223372036854775807 92233720368547758/9223372036854775807) 9.999999999999999992410584792601468961145E-3)
+  (num-test (max 92233720368547757/9223372036854775807 #i92233720368547758/9223372036854775807) 9.999999999999999992410584792601468961145E-3)
+  
+  ;; in these cases, the non-gmp s7 can't win:
+  ;;    :(max 9223372036854776/9223372036854775807 #i9223372036854775/9223372036854775000)
+  ;;    9223372036854776/9223372036854775807
+  ;;    :(max #i9223372036854776/9223372036854775807 9223372036854775/9223372036854775000)
+  ;;    0.001
+  ;;    :(max #i92233720368547757/9223372036854775807 92233720368547758/9223372036854775807)
+  ;;    0.01
+  ;;    :(max 92233720368547757/9223372036854775807 #i92233720368547758/9223372036854775807)
+  ;;    92233720368547757/9223372036854775807
+  )
 
 (test (max) 'error)
 (test (max 1.23+1.0i) 'error)
@@ -58203,36 +58064,33 @@ hi6: (string-app...
 (test (< 1109328651/102558961 1.08164965809278260327324280249019637973E1 1412995811/130633408 1.081649658102773603273242802490196379729E1 
 	 753823853/69692053 1.081649658103772703273242802490196379731E1 ) #t)
 
-(if with-bignums
-    (begin
-      (test (< 12345678901234567890 12345678901234567891) #t)
-      (test (< -9223372036854775808 -9223372036854775809) #f)
-      (test (< -9223372036854775809 -9223372036854775808) #t)
-      (test (< 9223372036854775808 9223372036854775807) #f)
-      (test (< 9223372036854775808 1e19) #t)
-      (test (< 9223372036854775807 85070591730234615865843651857942052865/9223372036854775807) #t)
-      (test (< 1.000e19 1267650600228229401496703205376 1e20) #f)
-
-      (test (< 4272943/1360120 21053343141/6701487259 3587785776203/1142027682075 2646693125139304345/842468587426513207) #t)
-      (test (< 4272943/1360120 21053343141/6701487259 3587785776203/1142027682075) #t)
-      (test (< 4272943/1360120 21053343141/6701487259 3587785776203/1142027682075 355/113) #t)
-      (test (< 21053343141/6701487259 3587785776203/1142027682075 355/113) #t)
-      (test (< 4272943/1360120 21053343141/6701487259 3587785776203/1142027682075) #t)
-      (test (< 21053343141/6701487259 3587785776203/1142027682075) #t)
-
-      (test (< 886731088897/627013566048 1534756075495/1085236428449 244625906708/172976637487 1462171251759/1033911207374 
-	       1743861030874/1233095960377 954593412651/674999475361 902779846866/638361751637 2968095823096/2098760683721 
-	       1684058273173/1190809024873 2947786590277/2084399887474 )
-	    #t)
-      (test (< 1023286908188737/723573111879672 1763020673688684/1246643873737343 1430528867885681/1011536663165079 
-	       2711447141769903/1917282660774379 575142878279173/406687429382352 935610884438753/661576800938585 
-	       2339755998541282/1654457332890441 1443730843578617/1020871869702614 478219565475493/338152297643805 2026075188260327/1432651504812687 )
-	    #t)
-
-      (test (< 1267650600228229401496703205376) 'error)
-      (test (< 1.0 1267650600228229401496703205376+i) 'error)
-      ))
-
+(when with-bignums
+  (test (< 12345678901234567890 12345678901234567891) #t)
+  (test (< -9223372036854775808 -9223372036854775809) #f)
+  (test (< -9223372036854775809 -9223372036854775808) #t)
+  (test (< 9223372036854775808 9223372036854775807) #f)
+  (test (< 9223372036854775808 1e19) #t)
+  (test (< 9223372036854775807 85070591730234615865843651857942052865/9223372036854775807) #t)
+  (test (< 1.000e19 1267650600228229401496703205376 1e20) #f)
+  
+  (test (< 4272943/1360120 21053343141/6701487259 3587785776203/1142027682075 2646693125139304345/842468587426513207) #t)
+  (test (< 4272943/1360120 21053343141/6701487259 3587785776203/1142027682075) #t)
+  (test (< 4272943/1360120 21053343141/6701487259 3587785776203/1142027682075 355/113) #t)
+  (test (< 21053343141/6701487259 3587785776203/1142027682075 355/113) #t)
+  (test (< 4272943/1360120 21053343141/6701487259 3587785776203/1142027682075) #t)
+  (test (< 21053343141/6701487259 3587785776203/1142027682075) #t)
+  
+  (test (< 886731088897/627013566048 1534756075495/1085236428449 244625906708/172976637487 1462171251759/1033911207374 
+	   1743861030874/1233095960377 954593412651/674999475361 902779846866/638361751637 2968095823096/2098760683721 
+	   1684058273173/1190809024873 2947786590277/2084399887474 )
+	#t)
+  (test (< 1023286908188737/723573111879672 1763020673688684/1246643873737343 1430528867885681/1011536663165079 
+	   2711447141769903/1917282660774379 575142878279173/406687429382352 935610884438753/661576800938585 
+	   2339755998541282/1654457332890441 1443730843578617/1020871869702614 478219565475493/338152297643805 2026075188260327/1432651504812687 )
+	#t)
+  
+  (test (< 1267650600228229401496703205376) 'error)
+  (test (< 1.0 1267650600228229401496703205376+i) 'error))
 
 
 
@@ -58492,25 +58350,23 @@ hi6: (string-app...
 (test (<= 9223372036854775807/9223372036854775806 1.0 9223372036854775806/9223372036854775807) #f)
 (test (<= 9223372036854775807/9223372036854775806 1.0) #f)
 
-(if with-bignums
-    (begin
-      (test (<= 12345678901234567890 12345678901234567891) #t)
-
-      (test (<= 4272943/1360120 21053343141/6701487259 2646693125139304345/842468587426513207 3587785776203/1142027682075) #f)
-      (test (<= 4272943/1360120 3587785776203/1142027682075 21053343141/6701487259 2646693125139304345/842468587426513207) #f)
-      (test (<= 4272943/1360120 3587785776203/1142027682075 21053343141/6701487259) #f)
-      (test (<= 4272943/1360120 2646693125139304345/842468587426513207 3587785776203/1142027682075) #f)
-      (test (<= 21053343141/6701487259 2646693125139304345/842468587426513207 3587785776203/1142027682075) #f)
-      (test (<= 3587785776203/1142027682075 21053343141/6701487259 2646693125139304345/842468587426513207) #f)
-      (test (<= 3587785776203/1142027682075 21053343141/6701487259) #f)
-      (test (<= 2646693125139304345/842468587426513207 21053343141/6701487259) #f)
-      (test (<= 4272943/1360120 3587785776203/1142027682075 21053343141/6701487259 355/113) #f)
-      (test (<= 3587785776203/1142027682075 21053343141/6701487259 355/113) #f)
-      (test (<= 4272943/1360120 3587785776203/1142027682075 21053343141/6701487259) #f)
-      (test (<= 3587785776203/1142027682075 21053343141/6701487259) #f)
-
-      (test (<= 1267650600228229401496703205376) 'error)
-      ))
+(when with-bignums
+  (test (<= 12345678901234567890 12345678901234567891) #t)
+  
+  (test (<= 4272943/1360120 21053343141/6701487259 2646693125139304345/842468587426513207 3587785776203/1142027682075) #f)
+  (test (<= 4272943/1360120 3587785776203/1142027682075 21053343141/6701487259 2646693125139304345/842468587426513207) #f)
+  (test (<= 4272943/1360120 3587785776203/1142027682075 21053343141/6701487259) #f)
+  (test (<= 4272943/1360120 2646693125139304345/842468587426513207 3587785776203/1142027682075) #f)
+  (test (<= 21053343141/6701487259 2646693125139304345/842468587426513207 3587785776203/1142027682075) #f)
+  (test (<= 3587785776203/1142027682075 21053343141/6701487259 2646693125139304345/842468587426513207) #f)
+  (test (<= 3587785776203/1142027682075 21053343141/6701487259) #f)
+  (test (<= 2646693125139304345/842468587426513207 21053343141/6701487259) #f)
+  (test (<= 4272943/1360120 3587785776203/1142027682075 21053343141/6701487259 355/113) #f)
+  (test (<= 3587785776203/1142027682075 21053343141/6701487259 355/113) #f)
+  (test (<= 4272943/1360120 3587785776203/1142027682075 21053343141/6701487259) #f)
+  (test (<= 3587785776203/1142027682075 21053343141/6701487259) #f)
+  
+  (test (<= 1267650600228229401496703205376) 'error))
 
 (for-each
  (lambda (arg)
@@ -59247,19 +59103,17 @@ hi6: (string-app...
 (test (= 79335/125743 190537/301994) #f)
 (test (= 10.000000000 10.000000000000001) #f)
 
-(if with-bignums
-    (begin
-      (test (= 10.000000000 10.0000000000000001) #f)
-      (test (= 8388608.9999999995 8388609) #f)
-      (test (= (* 1.0 16743730547042864/1996007985) 8388609) #f)
-      (test (= (* 1.0 13981015002796202/1666666667) 8388609) #f)
-
-      (test (= (string->number "#e.1e20") 1e19) #t)
-      (test (= (bignum "3") 1/0) #f)
-      (test (= 12345678901234567890 12345678901234567891) #f)
-      (test (= most-positive-fixnum (- (/ most-negative-fixnum -1) 1)) #t)
-      (test (= 1267650600228229401496703205376) 'error)
-      ))
+(when with-bignums
+  (test (= 10.000000000 10.0000000000000001) #f)
+  (test (= 8388608.9999999995 8388609) #f)
+  (test (= (* 1.0 16743730547042864/1996007985) 8388609) #f)
+  (test (= (* 1.0 13981015002796202/1666666667) 8388609) #f)
+  
+  (test (= (string->number "#e.1e20") 1e19) #t)
+  (test (= (bignum "3") 1/0) #f)
+  (test (= 12345678901234567890 12345678901234567891) #f)
+  (test (= most-positive-fixnum (- (/ most-negative-fixnum -1) 1)) #t)
+  (test (= 1267650600228229401496703205376) 'error))
 
 ;;; non-gmp strangeness: 
 ;;;    (zero? (- (sqrt 2) 5964153172084899/4217293152016490)) -> #t, but
@@ -59599,26 +59453,24 @@ hi6: (string-app...
 (test (> 7161071/11350029 10400200/16483927) #t)
 (test (> 79335/125743 190537/301994) #f)
 
-(if with-bignums
-    (begin
-      (test (> (* 4201378396/6659027209 1.0) (* 6189245291/9809721694 1.0)) #t)
-      (test (> (* 4201378396/6659027209 1.0) 6189245291/9809721694) #t)
-      (test (> 10.000000000 9.999999999999999) #t)
-      (test (> 12345678901234567890 12345678901234567891) #f)
-      (test (> 9007199254740993.0 9007199254740992.0) #t)
-      (test (> 1267650600228229401496703205376) 'error)
-
-      (test (> 355/113 3587785776203/1142027682075 21053343141/6701487259) #t)
-      (test (> 3587785776203/1142027682075 21053343141/6701487259 4272943/1360120) #t)
-      (test (> 22/7 2646693125139304345/842468587426513207 21053343141/6701487259) #t)
-      (test (> 2646693125139304345/842468587426513207 21053343141/6701487259 4272943/1360120) #t)
-      (test (> 2646693125139304345/842468587426513207 3587785776203/1142027682075 21053343141/6701487259 4272943/1360120) #t)
-      (test (> 3587785776203/1142027682075 21053343141/6701487259 4272943/1360120) #t)
-      (test (> 2646693125139304345/842468587426513207 21053343141/6701487259 4272943/1360120) #t)
-      (test (> 2646693125139304345/842468587426513207 3587785776203/1142027682075 21053343141/6701487259) #t)
-      (test (> 3587785776203/1142027682075 21053343141/6701487259) #t)
-      (test (> 2646693125139304345/842468587426513207 21053343141/6701487259) #t)
-      ))
+(when with-bignums
+  (test (> (* 4201378396/6659027209 1.0) (* 6189245291/9809721694 1.0)) #t)
+  (test (> (* 4201378396/6659027209 1.0) 6189245291/9809721694) #t)
+  (test (> 10.000000000 9.999999999999999) #t)
+  (test (> 12345678901234567890 12345678901234567891) #f)
+  (test (> 9007199254740993.0 9007199254740992.0) #t)
+  (test (> 1267650600228229401496703205376) 'error)
+  
+  (test (> 355/113 3587785776203/1142027682075 21053343141/6701487259) #t)
+  (test (> 3587785776203/1142027682075 21053343141/6701487259 4272943/1360120) #t)
+  (test (> 22/7 2646693125139304345/842468587426513207 21053343141/6701487259) #t)
+  (test (> 2646693125139304345/842468587426513207 21053343141/6701487259 4272943/1360120) #t)
+  (test (> 2646693125139304345/842468587426513207 3587785776203/1142027682075 21053343141/6701487259 4272943/1360120) #t)
+  (test (> 3587785776203/1142027682075 21053343141/6701487259 4272943/1360120) #t)
+  (test (> 2646693125139304345/842468587426513207 21053343141/6701487259 4272943/1360120) #t)
+  (test (> 2646693125139304345/842468587426513207 3587785776203/1142027682075 21053343141/6701487259) #t)
+  (test (> 3587785776203/1142027682075 21053343141/6701487259) #t)
+  (test (> 2646693125139304345/842468587426513207 21053343141/6701487259) #t))
 
 (for-each
  (lambda (arg)
@@ -59894,25 +59746,23 @@ hi6: (string-app...
 (test (>= 9223372036854775807/9223372036854775806 9223372036854775806/9223372036854775807 1.0 1) #f)
 (test (>= 9223372036854775807/9223372036854775806 9223372036854775806/9223372036854775807 1.0) #f)
 
-(if with-bignums
-    (begin
-      (test (>= 12345678901234567890 12345678901234567891) #f)
-      (test (>= 1267650600228229401496703205376) 'error)
-
-      (test (>= 21053343141/6701487259 2646693125139304345/842468587426513207 3587785776203/1142027682075 4272943/1360120) #f)
-      (test (>= 21053343141/6701487259 3587785776203/1142027682075 4272943/1360120) #f)
-      (test (>= 3587785776203/1142027682075 2646693125139304345/842468587426513207 4272943/1360120) #f)
-      (test (>= 21053343141/6701487259 2646693125139304345/842468587426513207 3587785776203/1142027682075) #f)
-      (test (>= 21053343141/6701487259 3587785776203/1142027682075 2646693125139304345/842468587426513207) #f)
-      (test (>= 21053343141/6701487259 3587785776203/1142027682075) #f)
-      (test (>= 21053343141/6701487259 2646693125139304345/842468587426513207) #f)
-      (test (>= 3587785776203/1142027682075 2646693125139304345/842468587426513207) #f)
-      (test (>= 22/7 21053343141/6701487259 2646693125139304345/842468587426513207 4272943/1360120) #f)
-      (test (>= 21053343141/6701487259 2646693125139304345/842468587426513207 4272943/1360120) #f)
-      (test (>= 21053343141/6701487259 2646693125139304345/842468587426513207) #f)
-      (test (>= 355/113 21053343141/6701487259 3587785776203/1142027682075) #f)
-      (test (>= 21053343141/6701487259 3587785776203/1142027682075 4272943/1360120) #f)
-      ))
+(when with-bignums
+  (test (>= 12345678901234567890 12345678901234567891) #f)
+  (test (>= 1267650600228229401496703205376) 'error)
+  
+  (test (>= 21053343141/6701487259 2646693125139304345/842468587426513207 3587785776203/1142027682075 4272943/1360120) #f)
+  (test (>= 21053343141/6701487259 3587785776203/1142027682075 4272943/1360120) #f)
+  (test (>= 3587785776203/1142027682075 2646693125139304345/842468587426513207 4272943/1360120) #f)
+  (test (>= 21053343141/6701487259 2646693125139304345/842468587426513207 3587785776203/1142027682075) #f)
+  (test (>= 21053343141/6701487259 3587785776203/1142027682075 2646693125139304345/842468587426513207) #f)
+  (test (>= 21053343141/6701487259 3587785776203/1142027682075) #f)
+  (test (>= 21053343141/6701487259 2646693125139304345/842468587426513207) #f)
+  (test (>= 3587785776203/1142027682075 2646693125139304345/842468587426513207) #f)
+  (test (>= 22/7 21053343141/6701487259 2646693125139304345/842468587426513207 4272943/1360120) #f)
+  (test (>= 21053343141/6701487259 2646693125139304345/842468587426513207 4272943/1360120) #f)
+  (test (>= 21053343141/6701487259 2646693125139304345/842468587426513207) #f)
+  (test (>= 355/113 21053343141/6701487259 3587785776203/1142027682075) #f)
+  (test (>= 21053343141/6701487259 3587785776203/1142027682075 4272943/1360120) #f))
 
 (test (>= - 1 2) 'error)
 (test (>=- 1 2) 'error)
@@ -60368,15 +60218,14 @@ hi6: (string-app...
   (num-test (- val1 val2) 0.0))
 
 (num-test (sin 22) -8.851309290403875921690256815772332463307E-3)
-(if with-bignums
-    (begin
-      (num-test (sin 1e22) -8.522008497671888017727058937530293682616E-1)
-      (num-test (sin 1+100i) 1.130986289301505745599509129978056149094E43+7.261979450834655624032117190441273726075E42i)
-      (num-test (sin 0+100i) 0.0+1.34405857090806772420631277579000679368E43i)
-      (num-test (sin 0+1000i) 0.0+9.850355570085234969444396761216615626576E433i)
-      (num-test (sin 1+1000i) 8.288788402267571487966465808315066740252E433+5.322169828138126401369949836048836144292E433i)
-      (num-test (sin 1e-100+1e-100i) 9.999999999999999999999999999999999999992E-101+9.999999999999999999999999999999999999992E-101i)
-      ))
+(when with-bignums
+  (num-test (sin 1e22) -8.522008497671888017727058937530293682616E-1)
+  (num-test (sin 1+100i) 1.130986289301505745599509129978056149094E43+7.261979450834655624032117190441273726075E42i)
+  (num-test (sin 0+100i) 0.0+1.34405857090806772420631277579000679368E43i)
+  (num-test (sin 0+1000i) 0.0+9.850355570085234969444396761216615626576E433i)
+  (num-test (sin 1+1000i) 8.288788402267571487966465808315066740252E433+5.322169828138126401369949836048836144292E433i)
+  (num-test (sin 1e-100+1e-100i) 9.999999999999999999999999999999999999992E-101+9.999999999999999999999999999999999999992E-101i))
+
 ;; not even close if not bignums: 0.4626130407646
 ;; we start to lose around 1e18 -- running out of bits of fraction?
 
@@ -60414,204 +60263,203 @@ hi6: (string-app...
  (list "hi" () (integer->char 65) #f #t '(1 2) _ht_ _null_ _c_obj_ 'a-symbol (cons 1 2) (make-vector 3) abs 
        #<eof> '(1 2 3) #\newline (lambda (a) (+ a 1)) #<unspecified> #<undefined>))
 
-(if with-bignums	
-    (letrec ((sin-m*pi/n 
-	      (lambda (m1 n1)
+(when with-bignums	
+  (letrec ((sin-m*pi/n 
+	    (lambda (m1 n1)
+	      
+	      ;; this returns an expression giving the exact value of sin(m*pi/n), m and n integer
+	      ;;   if we can handle n -- currently it can be anything of the form 2^a 3^b 5^c 7^d 11^h 13^e 17^f 257^g
+	      ;;   so (sin-m*pi/n 1 60) returns an exact expression for sin(pi/60).
+	      
+	      (let ((m (numerator (/ m1 n1)))
+		    (n (denominator (/ m1 n1))))
 		
-		;; this returns an expression giving the exact value of sin(m*pi/n), m and n integer
-		;;   if we can handle n -- currently it can be anything of the form 2^a 3^b 5^c 7^d 11^h 13^e 17^f 257^g
-		;;   so (sin-m*pi/n 1 60) returns an exact expression for sin(pi/60).
+		(set! m (modulo m (* 2 n)))
+		;; now it's in lowest terms without extra factors of 2*pi
 		
-		(let ((m (numerator (/ m1 n1)))
-		      (n (denominator (/ m1 n1))))
-		  
-		  (set! m (modulo m (* 2 n)))
-		  ;; now it's in lowest terms without extra factors of 2*pi
-		  
-		  (cond ((zero? m) 0)
-			
-			((zero? n) (error "divide by zero (sin-m*pi/n n = 0)"))
-			
-			((= n 1) 0)
-			
-			((negative? n)
-			 (let ((val (sin-m*pi/n m (- n))))
-			   (and val `(- ,val))))
-			
-			((> m n) 
-			 (let ((val (sin-m*pi/n (- m n) n)))
-			   (and val `(- ,val))))
-			
-			((= n 2) (if (= m 0) 0 1))
-			
-			((= n 3) `(sqrt 3/4))
-			
-			((> m 1)
-			 (let ((m1 (sin-m*pi/n (- m 1) n))
-			       (n1 (sin-m*pi/n 1 n))
-			       (m2 (sin-m*pi/n (- m 2) n)))
-			   (and m1 m2 n1
-				`(- (* 2 ,m1 (sqrt (- 1 (* ,n1 ,n1)))) ,m2))))
-			
-			((= n 5) `(/ (sqrt (- 10 (* 2 (sqrt 5)))) 4))
-			
-			((= n 7) `(let ((A1 (expt (+ -7/3456 (sqrt -49/442368)) 1/3))
-					(A2 (expt (- -7/3456 (sqrt -49/442368)) 1/3)))
-				    (sqrt (+ 7/12 (* -1/2 (+ A1 A2)) (* 1/2 0+i (sqrt 3) (- A1 A2))))))
-			
-			((= n 17) `(let* ((A1 (sqrt (- 17 (sqrt 17))))
-					  (A2 (sqrt (+ 17 (sqrt 17))))
-					  (A3 (sqrt (+ 34 (* 6 (sqrt 17)) (* (sqrt 2) (- (sqrt 17) 1) A1) (* -8 (sqrt 2) A2)))))
-				     (* 1/8 (sqrt 2) (sqrt (- 17 (sqrt 17) (* (sqrt 2) (+ A1 A3)))))))
-			
-			
-			((= n 11) `(let* ((SQRT5 (* 1/2 (- (sqrt 5) 1)))
-					  (B5 (sqrt (+ 2 (* 1/2 (+ (sqrt 5) 1)))))
-					  (B6 (+ SQRT5 (* 0+i B5)))
-					  (B6_2 (* B6 B6))
-					  (B6_3 (* B6 B6 B6))
-					  (B6_4 (* B6 B6 B6 B6)) 
-					  (D1 (+ 6 (* 3/2 B6) (* 3/4 B6_2)))
-					  (D2 (+ SQRT5 (* 0+i B5) (* 1/4 B6_2)))
-					  (D3 (* 1/2 (- (+ 1 (* 0+i (sqrt 11))))))
-					  (D4 (* 1/2 (- (* 0+i (sqrt 11)) 1)))
-					  (D6 (+ 1 (* 1/4 B6_2) (* 1/8 B6_3)))
-					  (D7 (+ (* 1/2 B6) (* 1/16 B6_4)))
-					  (D8 (+ 2 (* 1/2 B6)))
-					  (D9 (+ 13 (* 21 B6) (* 67/4 B6_2) (* 21/4 B6_3) (* 2 B6_4)))
-					  (D11 (+ 129 (* 109/2 B6) (* 59/4 B6_2) (* 9/8 B6_3) (* 9/16 B6_4)))
-					  (D13 (+ (* 3 B6) B6_2))
-					  (D14 (+ (* 3 B6) (* 3/4 B6_2) (* 3/8 B6_3)))
-					  (D15 (+ 79 (* 27 B6) (* 39/4 B6_2) (* 37/4 B6_3) (* 21/4 B6_4)))
-					  (D16 (+ D11 (* D3 D9) (* D4 D15)))
-					  (D17 (+ D11 (* D4 D9) (* D3 D15)))
-					  (D30 (/ (* B6_2 (+ (* D3 D6) (* D4 D7))) (* 4 (expt D17 1/5))))
-					  (D32 (* 1/2 (+ 1 (* 0+i (sqrt 11)))))
-					  (D33 (/ (* B6_3 (+ (* D4 D6) (* D3 D7))) (* 8 (expt D16 1/5))))
-					  (D34 (* 1/4 B6_2 (expt D16 1/5)))
-					  (D35 (+ 2 (* 1/8 B6_4) (* 1/2 B6 D8) (* 1/8 B6_3 D2)))
-					  (D36 (+ SQRT5 (* 0+i B5) (* 1/2 B6_2) (* 1/4 B6_3) (* 1/2 B6 D2) (* 1/4 B6_2 (+ (* 1/4 B6_3) (* 1/16 B6_4)))))
-					  (D38 (* 1/2 (+ -1 (* 0+i (sqrt 11)))))
-					  (D39 (* 1/8 B6_3 (expt D17 1/5)))
-					  (D40 (+ 3 (* 3/2 B6) (* 9/4 B6_2) (* 7/8 B6_3) (* 3/16 B6_4) (* 1/2 B6 (+ 6 (* 2 B6)))
-						  (* 1/16 B6_4 D1) (* 1/4 B6_2 D13) (* 1/8 B6_3 (+ 3 (* 3/4 B6_3) (* 3/16 B6_4)))))
-					  (D41 (+ (* 1/4 B6_2 D1) (* 1/8 B6_3 D13) (* 1/16 B6_4 D14) (* 1/2 B6 (+ 4 (* 3/8 B6_4)))))
-					  (D42 (+ 3 (* 3/4 B6_3) (* 3/16 B6_4) (* 1/8 B6_3 D1) (* 1/4 B6_2 D14) 
-						  (* 1/2 B6 (+ (* 3/2 B6_2) (* 3/8 B6_3) (* 3/16 B6_4))) (* 1/16 B6_4 (+ 3 (* 3/2 B6) (* 3/8 B6_4)))))
-					  (D43 (+ (* 1/4 B6_3) (* 1/16 B6_4) (* 1/8 B6_3 D8) (* 1/4 B6_2 D2) 
-						  (* 1/2 B6 (+ (* 1/2 B6_2) (* 1/8 B6_3))) (* 1/16 B6_4 (+ 1 (* 1/8 B6_4)))))
-					  (D44 (/ (* B6_4 (+ D42 (* D4 D40) (* D3 D41))) (* 16 (expt D16 3/5))))
-					  (D45 (/ (* B6 (+ D42 (* D3 D40) (* D4 D41))) (* 2 (expt D17 3/5))))
-					  (D48 (/ (* B6 (+ D43 (* D3 D35) (* D4 D36))) (* 2 (expt D16 2/5))))
-					  (D49 (/ (* B6_4 (+ D43 (* D4 D35) (* D3 D36))) (* 16 (expt D17 2/5)))))
-				     (* -1/2 0+i 
-					(+ (* 1/5 (- D32 D33 D34 D48 D44))
-					   (* 1/5 (+ D38 D30 D39 D49 D45))))))
-			
-			((= n 13)
-			 `(let* ((A1 (/ (- -1 (sqrt 13)) 2))
-				 (A2 (/ (+ -1 (sqrt 13)) 2))
-				 (A3 (/ (+ -1 (* 0+i (sqrt 3))) 2))
-				 (A4 (+ -1 (* 0+i (sqrt 3))))
-				 (A5 (* 0+i (sqrt (+ 7 (sqrt 13) A2))))
-				 (A6 (* 0+i (sqrt (+ 7 (- (sqrt 13)) A1))))
-				 (A8  (* 1/2 (- A2 A6)))
-				 (A9  (* 1/2 (+ A1 A5)))
-				 (A11 (* 1/2 (+ A2 A6)))
-				 (A12 (* 1/2 (- A1 A5)))
-				 (A13 (* 3/2 A4 A8))
-				 (A14 (* 3/2 A4 A11))
-				 (A15 (* 3/4 A4 A4 A11))
-				 (A16 (* 3/4 A4 A4 A8))
-				 (A17 (+ A3 (* 1/4 A4 A4))))
-			    (* -1/6 0+i (+ (- A9 A12)
-					   (* A4 (+ (/ (+ A8 (* A17 A12)) (* 2 (expt (+ 6 A13 A15 A9) 1/3)))
-						    (/ (+ A11 (* A17 A9)) (* -2 (expt (+ 6 A16 A14 A12) 1/3)))
-						    (* 1/4 A4 (- (expt (+ 6 A13 A15 A9) 1/3) (expt (+ 6 A16 A14 A12) 1/3)))))))))
-			
-			((= n 257)
-			 `(let* ((A1 (sqrt (- 514 (* 2 (sqrt 257)))))
-				 (A2 (- 257 (* 15 (sqrt 257))))
-				 (A3 (+ 257 (* 15 (sqrt 257))))
-				 (A4 (- 257 (sqrt 257)))
-				 (A5 (+ (sqrt 257) 257))
-				 (A7 (+ 257 (* 9 (sqrt 257))))
-				 (A8 (- 514 (* 18 (sqrt 257))))
-				 (AA (sqrt (* 2 A5)))
-				 (A9 (sqrt (+ A2 (* 8 A1) (* -7 AA))))
-				 (A10 (sqrt (+ A2 (* -8 A1) (* 7 AA))))
-				 (A11 (sqrt (+ A3 (* 7 A1) (* 8 AA))))
-				 (A12 (sqrt (+ A3 (* -7 A1) (* -8 AA))))
-				 (A13 (sqrt (+ A8 (* 6 A1) (* 8 A9) (* -24 A10) (* 12 A11))))
-				 (A14 (* 4 (sqrt (+ A8 (* 6 A1) (* -8 A9) (* 24 A10) (* -12 A11)))))
-				 (A15 (* 4 (sqrt (+ A8 (* -6 A1) (* -12 A12) (* 24 A9) (* 8 A10)))))
-				 (A16 (* 4 (sqrt (* 2 (+ (- 257 (* 9 (sqrt 257))) (* -3 A1) (* 6 A12) (* -12 A9) (* -4 A10))))))
-				 (A17 (sqrt (* 2 (+ A7 (* -3 AA) (* -4 A12) (* 6 A9) (* 12 A11)))))
-				 (A18 (sqrt (* 2 (+ A7 (* 3 AA) (* 12 A12) (* -6 A10) (* 4 A11)))))
-				 (A19 (* 4 (sqrt (* 2 (+ A7 (* 3 AA) (* -12 A12) (* 6 A10) (* -4 A11))))))
-				 (A20 (* 4 (sqrt (* 2 (+ A7 (* -3 AA) (* 4 A12) (* -6 A9) (* -12 A11))))))
-				 (A22 (+ A4 (* 3 A1) (* -4 AA) (* -4 A12) (* 4 A9) (* -4 A10) (* 2 A11)))
-				 (A23 (+ A5 (* -4 A1) (* -3 AA) (* -4 A12) (* 2 A9) (* 4 A10) (* 4 A11)))
-				 (A24 (+ A5 (* 4 A1) (* 3 AA) (* 4 A12) (* 4 A9) (* -2 A10) (* 4 A11)))
-				 (A26 (sqrt (+ A22 (+ (- A16) (- A19) (* 4 A17) (* -6 A13)))))
-				 (A27 (sqrt (+ A22 (+ A16 A19 (* -4 A17) (* 6 A13)))))
-				 (A28 (+ 257 (* 7 (sqrt 257)) (* 3 A1) (* -4 A9) (* 4 A10) (* 6 A11)))
-				 (A29 (* 8 (sqrt (+ A24 A15 (- A20) (* -6 A18) (* -4 A13)))))
-				 (A30 (+ A28 (* -4 A18) (* -4 A17) (* -2 A13)))
-				 (A31 (+ (* 8 (sqrt (+ A23 A15 A14 (* 4 A18) (* -6 A17)))) (* 4 A26) A29 (* -8 A27))))
-			    (* 1/16 (sqrt (* 1/2 (+ A4 (- A1) (* -2 A11) (* -2 A13) (* -4 A26)
-						    (* -4 (sqrt (* 2 (+ A30 (- A31)))))
-						    (* -8 (sqrt (+ A4 (- A1) (* -2 A11) (* 6 A13) (* -4 A26) (* -8 A27)
-								   (* 4 (sqrt (* 2 (+ A30 A31))))
-								   (* -8 (sqrt (* 2 (+ A28 (* 4 A18) (* 4 A17) (* 2 A13) (* -8 A26) (* -4 A27)
-										       (* -8 (sqrt (+ A23 (- A15) (- A14) (* -4 A18) (* 6 A17))))
-										       (* -8 (sqrt (+ A24 (- A15) A20 (* 6 A18) (* 4 A13)))))))))))))))))
-			
-			((or (= (modulo n 2) 0) (= (modulo n 3) 0) (= (modulo n 5) 0) (= (modulo n 7) 0) 
-			     (= (modulo n 17) 0) (= (modulo n 13) 0) (= (modulo n 257) 0) (= (modulo n 11) 0))
-			 (let ((divisor (if (= (modulo n 2) 0) 2
-					    (if (= (modulo n 3) 0) 3
-						(if (= (modulo n 5) 0) 5
-						    (if (= (modulo n 7) 0) 7
-							(if (= (modulo n 17) 0) 17
-							    (if (= (modulo n 13) 0) 13
-								(if (= (modulo n 11) 0) 11
-								    257)))))))))
-			   (let ((val (sin-m*pi/n 1 (/ n divisor))))
-			     (and val
-				  `(let ((ex ,val))
-				     (/ (- (expt (+ (sqrt (- 1 (* ex ex))) (* 0+i ex)) (/ 1 ,divisor))
-					   (expt (- (sqrt (- 1 (* ex ex))) (* 0+i ex)) (/ 1 ,divisor)))
-					0+2i))))))
-			
-			(else #f))))))
-      
-      (let ((maxerr 0.0)
-	    (max-case #f)
-	    (cases 0))
-	(do ((n 1 (+ n 1)))
-	    ((= n 100))
-	  (do ((m 1 (+ m 1)))
-	      ((= m 4))
-	    (letrec ((bigify (lambda (lst)
-			       (if (pair? lst)
-				   (cons (if (number? (car lst))
-					     (list 'bignum (number->string (car lst)))
-					     (bigify (car lst)))
-					 (bigify (cdr lst)))
-				   lst))))
-	      (let ((val (sin (/ (* m pi) n)))
-		    (expr (bigify (sin-m*pi/n m n))))
-		(if expr 
-		    (let ((err (magnitude (- val (eval expr)))))
-		      (set! cases (+ cases 1))
-		      (if (> err maxerr) 
-			  (begin
-			    (set! max-case (/ m n))
-			    (set! maxerr err)))))))))
-	(if (> maxerr 1e-35)
-	    (format-logged #t "sin-m*pi/n (~A cases) max err ~A at ~A~%" cases maxerr max-case))))
-    )
+		(cond ((zero? m) 0)
+		      
+		      ((zero? n) (error 'divide-by-zero "divide by zero (sin-m*pi/n n = 0)"))
+		      
+		      ((= n 1) 0)
+		      
+		      ((negative? n)
+		       (let ((val (sin-m*pi/n m (- n))))
+			 (and val `(- ,val))))
+		      
+		      ((> m n) 
+		       (let ((val (sin-m*pi/n (- m n) n)))
+			 (and val `(- ,val))))
+		      
+		      ((= n 2) (if (= m 0) 0 1))
+		      
+		      ((= n 3) `(sqrt 3/4))
+		      
+		      ((> m 1)
+		       (let ((m1 (sin-m*pi/n (- m 1) n))
+			     (n1 (sin-m*pi/n 1 n))
+			     (m2 (sin-m*pi/n (- m 2) n)))
+			 (and m1 m2 n1
+			      `(- (* 2 ,m1 (sqrt (- 1 (* ,n1 ,n1)))) ,m2))))
+		      
+		      ((= n 5) `(/ (sqrt (- 10 (* 2 (sqrt 5)))) 4))
+		      
+		      ((= n 7) `(let ((A1 (expt (+ -7/3456 (sqrt -49/442368)) 1/3))
+				      (A2 (expt (- -7/3456 (sqrt -49/442368)) 1/3)))
+				  (sqrt (+ 7/12 (* -1/2 (+ A1 A2)) (* 1/2 0+i (sqrt 3) (- A1 A2))))))
+		      
+		      ((= n 17) `(let* ((A1 (sqrt (- 17 (sqrt 17))))
+					(A2 (sqrt (+ 17 (sqrt 17))))
+					(A3 (sqrt (+ 34 (* 6 (sqrt 17)) (* (sqrt 2) (- (sqrt 17) 1) A1) (* -8 (sqrt 2) A2)))))
+				   (* 1/8 (sqrt 2) (sqrt (- 17 (sqrt 17) (* (sqrt 2) (+ A1 A3)))))))
+		      
+		      
+		      ((= n 11) `(let* ((SQRT5 (* 1/2 (- (sqrt 5) 1)))
+					(B5 (sqrt (+ 2 (* 1/2 (+ (sqrt 5) 1)))))
+					(B6 (+ SQRT5 (* 0+i B5)))
+					(B6_2 (* B6 B6))
+					(B6_3 (* B6 B6 B6))
+					(B6_4 (* B6 B6 B6 B6)) 
+					(D1 (+ 6 (* 3/2 B6) (* 3/4 B6_2)))
+					(D2 (+ SQRT5 (* 0+i B5) (* 1/4 B6_2)))
+					(D3 (* 1/2 (- (+ 1 (* 0+i (sqrt 11))))))
+					(D4 (* 1/2 (- (* 0+i (sqrt 11)) 1)))
+					(D6 (+ 1 (* 1/4 B6_2) (* 1/8 B6_3)))
+					(D7 (+ (* 1/2 B6) (* 1/16 B6_4)))
+					(D8 (+ 2 (* 1/2 B6)))
+					(D9 (+ 13 (* 21 B6) (* 67/4 B6_2) (* 21/4 B6_3) (* 2 B6_4)))
+					(D11 (+ 129 (* 109/2 B6) (* 59/4 B6_2) (* 9/8 B6_3) (* 9/16 B6_4)))
+					(D13 (+ (* 3 B6) B6_2))
+					(D14 (+ (* 3 B6) (* 3/4 B6_2) (* 3/8 B6_3)))
+					(D15 (+ 79 (* 27 B6) (* 39/4 B6_2) (* 37/4 B6_3) (* 21/4 B6_4)))
+					(D16 (+ D11 (* D3 D9) (* D4 D15)))
+					(D17 (+ D11 (* D4 D9) (* D3 D15)))
+					(D30 (/ (* B6_2 (+ (* D3 D6) (* D4 D7))) (* 4 (expt D17 1/5))))
+					(D32 (* 1/2 (+ 1 (* 0+i (sqrt 11)))))
+					(D33 (/ (* B6_3 (+ (* D4 D6) (* D3 D7))) (* 8 (expt D16 1/5))))
+					(D34 (* 1/4 B6_2 (expt D16 1/5)))
+					(D35 (+ 2 (* 1/8 B6_4) (* 1/2 B6 D8) (* 1/8 B6_3 D2)))
+					(D36 (+ SQRT5 (* 0+i B5) (* 1/2 B6_2) (* 1/4 B6_3) (* 1/2 B6 D2) (* 1/4 B6_2 (+ (* 1/4 B6_3) (* 1/16 B6_4)))))
+					(D38 (* 1/2 (+ -1 (* 0+i (sqrt 11)))))
+					(D39 (* 1/8 B6_3 (expt D17 1/5)))
+					(D40 (+ 3 (* 3/2 B6) (* 9/4 B6_2) (* 7/8 B6_3) (* 3/16 B6_4) (* 1/2 B6 (+ 6 (* 2 B6)))
+						(* 1/16 B6_4 D1) (* 1/4 B6_2 D13) (* 1/8 B6_3 (+ 3 (* 3/4 B6_3) (* 3/16 B6_4)))))
+					(D41 (+ (* 1/4 B6_2 D1) (* 1/8 B6_3 D13) (* 1/16 B6_4 D14) (* 1/2 B6 (+ 4 (* 3/8 B6_4)))))
+					(D42 (+ 3 (* 3/4 B6_3) (* 3/16 B6_4) (* 1/8 B6_3 D1) (* 1/4 B6_2 D14) 
+						(* 1/2 B6 (+ (* 3/2 B6_2) (* 3/8 B6_3) (* 3/16 B6_4))) (* 1/16 B6_4 (+ 3 (* 3/2 B6) (* 3/8 B6_4)))))
+					(D43 (+ (* 1/4 B6_3) (* 1/16 B6_4) (* 1/8 B6_3 D8) (* 1/4 B6_2 D2) 
+						(* 1/2 B6 (+ (* 1/2 B6_2) (* 1/8 B6_3))) (* 1/16 B6_4 (+ 1 (* 1/8 B6_4)))))
+					(D44 (/ (* B6_4 (+ D42 (* D4 D40) (* D3 D41))) (* 16 (expt D16 3/5))))
+					(D45 (/ (* B6 (+ D42 (* D3 D40) (* D4 D41))) (* 2 (expt D17 3/5))))
+					(D48 (/ (* B6 (+ D43 (* D3 D35) (* D4 D36))) (* 2 (expt D16 2/5))))
+					(D49 (/ (* B6_4 (+ D43 (* D4 D35) (* D3 D36))) (* 16 (expt D17 2/5)))))
+				   (* -1/2 0+i 
+				      (+ (* 1/5 (- D32 D33 D34 D48 D44))
+					 (* 1/5 (+ D38 D30 D39 D49 D45))))))
+		      
+		      ((= n 13)
+		       `(let* ((A1 (/ (- -1 (sqrt 13)) 2))
+			       (A2 (/ (+ -1 (sqrt 13)) 2))
+			       (A3 (/ (+ -1 (* 0+i (sqrt 3))) 2))
+			       (A4 (+ -1 (* 0+i (sqrt 3))))
+			       (A5 (* 0+i (sqrt (+ 7 (sqrt 13) A2))))
+			       (A6 (* 0+i (sqrt (+ 7 (- (sqrt 13)) A1))))
+			       (A8  (* 1/2 (- A2 A6)))
+			       (A9  (* 1/2 (+ A1 A5)))
+			       (A11 (* 1/2 (+ A2 A6)))
+			       (A12 (* 1/2 (- A1 A5)))
+			       (A13 (* 3/2 A4 A8))
+			       (A14 (* 3/2 A4 A11))
+			       (A15 (* 3/4 A4 A4 A11))
+			       (A16 (* 3/4 A4 A4 A8))
+			       (A17 (+ A3 (* 1/4 A4 A4))))
+			  (* -1/6 0+i (+ (- A9 A12)
+					 (* A4 (+ (/ (+ A8 (* A17 A12)) (* 2 (expt (+ 6 A13 A15 A9) 1/3)))
+						  (/ (+ A11 (* A17 A9)) (* -2 (expt (+ 6 A16 A14 A12) 1/3)))
+						  (* 1/4 A4 (- (expt (+ 6 A13 A15 A9) 1/3) (expt (+ 6 A16 A14 A12) 1/3)))))))))
+		      
+		      ((= n 257)
+		       `(let* ((A1 (sqrt (- 514 (* 2 (sqrt 257)))))
+			       (A2 (- 257 (* 15 (sqrt 257))))
+			       (A3 (+ 257 (* 15 (sqrt 257))))
+			       (A4 (- 257 (sqrt 257)))
+			       (A5 (+ (sqrt 257) 257))
+			       (A7 (+ 257 (* 9 (sqrt 257))))
+			       (A8 (- 514 (* 18 (sqrt 257))))
+			       (AA (sqrt (* 2 A5)))
+			       (A9 (sqrt (+ A2 (* 8 A1) (* -7 AA))))
+			       (A10 (sqrt (+ A2 (* -8 A1) (* 7 AA))))
+			       (A11 (sqrt (+ A3 (* 7 A1) (* 8 AA))))
+			       (A12 (sqrt (+ A3 (* -7 A1) (* -8 AA))))
+			       (A13 (sqrt (+ A8 (* 6 A1) (* 8 A9) (* -24 A10) (* 12 A11))))
+			       (A14 (* 4 (sqrt (+ A8 (* 6 A1) (* -8 A9) (* 24 A10) (* -12 A11)))))
+			       (A15 (* 4 (sqrt (+ A8 (* -6 A1) (* -12 A12) (* 24 A9) (* 8 A10)))))
+			       (A16 (* 4 (sqrt (* 2 (+ (- 257 (* 9 (sqrt 257))) (* -3 A1) (* 6 A12) (* -12 A9) (* -4 A10))))))
+			       (A17 (sqrt (* 2 (+ A7 (* -3 AA) (* -4 A12) (* 6 A9) (* 12 A11)))))
+			       (A18 (sqrt (* 2 (+ A7 (* 3 AA) (* 12 A12) (* -6 A10) (* 4 A11)))))
+			       (A19 (* 4 (sqrt (* 2 (+ A7 (* 3 AA) (* -12 A12) (* 6 A10) (* -4 A11))))))
+			       (A20 (* 4 (sqrt (* 2 (+ A7 (* -3 AA) (* 4 A12) (* -6 A9) (* -12 A11))))))
+			       (A22 (+ A4 (* 3 A1) (* -4 AA) (* -4 A12) (* 4 A9) (* -4 A10) (* 2 A11)))
+			       (A23 (+ A5 (* -4 A1) (* -3 AA) (* -4 A12) (* 2 A9) (* 4 A10) (* 4 A11)))
+			       (A24 (+ A5 (* 4 A1) (* 3 AA) (* 4 A12) (* 4 A9) (* -2 A10) (* 4 A11)))
+			       (A26 (sqrt (+ A22 (+ (- A16) (- A19) (* 4 A17) (* -6 A13)))))
+			       (A27 (sqrt (+ A22 (+ A16 A19 (* -4 A17) (* 6 A13)))))
+			       (A28 (+ 257 (* 7 (sqrt 257)) (* 3 A1) (* -4 A9) (* 4 A10) (* 6 A11)))
+			       (A29 (* 8 (sqrt (+ A24 A15 (- A20) (* -6 A18) (* -4 A13)))))
+			       (A30 (+ A28 (* -4 A18) (* -4 A17) (* -2 A13)))
+			       (A31 (+ (* 8 (sqrt (+ A23 A15 A14 (* 4 A18) (* -6 A17)))) (* 4 A26) A29 (* -8 A27))))
+			  (* 1/16 (sqrt (* 1/2 (+ A4 (- A1) (* -2 A11) (* -2 A13) (* -4 A26)
+						  (* -4 (sqrt (* 2 (+ A30 (- A31)))))
+						  (* -8 (sqrt (+ A4 (- A1) (* -2 A11) (* 6 A13) (* -4 A26) (* -8 A27)
+								 (* 4 (sqrt (* 2 (+ A30 A31))))
+								 (* -8 (sqrt (* 2 (+ A28 (* 4 A18) (* 4 A17) (* 2 A13) (* -8 A26) (* -4 A27)
+										     (* -8 (sqrt (+ A23 (- A15) (- A14) (* -4 A18) (* 6 A17))))
+										     (* -8 (sqrt (+ A24 (- A15) A20 (* 6 A18) (* 4 A13)))))))))))))))))
+		      
+		      ((or (= (modulo n 2) 0) (= (modulo n 3) 0) (= (modulo n 5) 0) (= (modulo n 7) 0) 
+			   (= (modulo n 17) 0) (= (modulo n 13) 0) (= (modulo n 257) 0) (= (modulo n 11) 0))
+		       (let ((divisor (if (= (modulo n 2) 0) 2
+					  (if (= (modulo n 3) 0) 3
+					      (if (= (modulo n 5) 0) 5
+						  (if (= (modulo n 7) 0) 7
+						      (if (= (modulo n 17) 0) 17
+							  (if (= (modulo n 13) 0) 13
+							      (if (= (modulo n 11) 0) 11
+								  257)))))))))
+			 (let ((val (sin-m*pi/n 1 (/ n divisor))))
+			   (and val
+				`(let ((ex ,val))
+				   (/ (- (expt (+ (sqrt (- 1 (* ex ex))) (* 0+i ex)) (/ 1 ,divisor))
+					 (expt (- (sqrt (- 1 (* ex ex))) (* 0+i ex)) (/ 1 ,divisor)))
+				      0+2i))))))
+		      
+		      (else #f))))))
+    
+    (let ((maxerr 0.0)
+	  (max-case #f)
+	  (cases 0))
+      (do ((n 1 (+ n 1)))
+	  ((= n 100))
+	(do ((m 1 (+ m 1)))
+	    ((= m 4))
+	  (letrec ((bigify (lambda (lst)
+			     (if (pair? lst)
+				 (cons (if (number? (car lst))
+					   (list 'bignum (number->string (car lst)))
+					   (bigify (car lst)))
+				       (bigify (cdr lst)))
+				 lst))))
+	    (let ((val (sin (/ (* m pi) n)))
+		  (expr (bigify (sin-m*pi/n m n))))
+	      (if expr 
+		  (let ((err (magnitude (- val (eval expr)))))
+		    (set! cases (+ cases 1))
+		    (if (> err maxerr) 
+			(begin
+			  (set! max-case (/ m n))
+			  (set! maxerr err)))))))))
+      (if (> maxerr 1e-35)
+	  (format-logged #t "sin-m*pi/n (~A cases) max err ~A at ~A~%" cases maxerr max-case)))))
 
 (let ((sins (list 
 	     0.00000000000000000000000000000000000000000000000000000000000000000000
@@ -60656,92 +60504,92 @@ hi6: (string-app...
 	    (set! mxerr err))))
     (if (> mxerr 1e-12) (format-logged #t "sin err: ~A~%" mxerr))))
 	    
-(if with-bignums
-    (let ((old-prec (*s7* 'bignum-precision)))
-      (set! (*s7* 'bignum-precision) 500)
-      (let ((sin-vals (list   ;arprec mathtool table[Sin[k/10], {k, 0, 30}]
-		       "0.00000000000000000000000000000000000000000000000000000000000000000000"
-		       "0.09983341664682815230681419841062202698991538801798225999276686156165"
-		       "0.19866933079506121545941262711838975037020672954020540398639599139797"
-		       "0.29552020666133957510532074568502737367783211174261844850153103617326"
-		       "0.38941834230865049166631175679570526459306018344395889511584896585734"
-		       "0.47942553860420300027328793521557138808180336794060067518861661312553"
-		       "0.56464247339503535720094544565865790710988808499415177102426589426735"
-		       "0.64421768723769105367261435139872018306581384457368964474396308809382"
-		       "0.71735609089952276162717461058138536619278523779142282098968252068287"
-		       "0.78332690962748338846138231571354862314014792572030960356048515256195"
-		       "0.84147098480789650665250232163029899962256306079837106567275170999191"
-		       "0.89120736006143533995180257787170353831890931945282652766035329176720"
-		       "0.93203908596722634967013443549482599541507058820873073536659789445024"
-		       "0.96355818541719296470134863003955481534204849131773911795564922309212"
-		       "0.98544972998846018065947457880609751735626167234736563194021894560084"
-		       "0.99749498660405443094172337114148732270665142592211582194997482405934"
-		       "0.99957360304150516434211382554623417197949791475491995534260751586102"
-		       "0.99166481045246861534613339864787565240681957116712372532710249102330"
-		       "0.97384763087819518653237317884335760670293947136523395566725825917196"
-		       "0.94630008768741448848970961163495776211399866559491176443047155279581"
-		       "0.90929742682568169539601986591174484270225497144789026837897301153096"
-		       "0.86320936664887377068075931326902458492047242489508107697183045949721"
-		       "0.80849640381959018430403691041611906515855960597557707903336060873485"
-		       "0.74570521217672017738540621164349953894264877802047425750762828050000"
-		       "0.67546318055115092656577152534128337425336495789352584226890212866520"
-		       "0.59847214410395649405185470218616227170359717157722357330262703263874"
-		       "0.51550137182146423525772693520936824389387858775426312126259173008382"
-		       "0.42737988023382993455605308585788064749647642266670256499017776070511"
-		       "0.33498815015590491954385375271242210603030652888358671068410107309479"
-		       "0.23924932921398232818425691873957537221555293029961877411621026588071"
-		       "0.14112000805986722210074480280811027984693326425226558415188264123242")))
-	(do ((k 2 (+ k 1)))
-	    ((= k 30))
-	  (let ((sin-val-2 (number->string (sin (/ k (bignum "10"))))))
-	    (if (not (string=? (substring (list-ref sin-vals k) 3 60) (substring sin-val-2 2 59)))
-		(format-logged #t ";(sin (/ ~A 10)) mp: ~A does not match~%~A~%" k (substring (list-ref sin-vals k) 3 60) (substring sin-val-2 2 59))))))
-      
-      (let ((sin-vals (list   ;arprec mathtool table[Sin[k/10], {k, 0, 30}]
-		       0.00000000000000000000000000000000000000000000000000000000000000000000
-		       0.09983341664682815230681419841062202698991538801798225999276686156165
-		       0.19866933079506121545941262711838975037020672954020540398639599139797
-		       0.29552020666133957510532074568502737367783211174261844850153103617326
-		       0.38941834230865049166631175679570526459306018344395889511584896585734
-		       0.47942553860420300027328793521557138808180336794060067518861661312553
-		       0.56464247339503535720094544565865790710988808499415177102426589426735
-		       0.64421768723769105367261435139872018306581384457368964474396308809382
-		       0.71735609089952276162717461058138536619278523779142282098968252068287
-		       0.78332690962748338846138231571354862314014792572030960356048515256195
-		       0.84147098480789650665250232163029899962256306079837106567275170999191
-		       0.89120736006143533995180257787170353831890931945282652766035329176720
-		       0.93203908596722634967013443549482599541507058820873073536659789445024
-		       0.96355818541719296470134863003955481534204849131773911795564922309212
-		       0.98544972998846018065947457880609751735626167234736563194021894560084
-		       0.99749498660405443094172337114148732270665142592211582194997482405934
-		       0.99957360304150516434211382554623417197949791475491995534260751586102
-		       0.99166481045246861534613339864787565240681957116712372532710249102330
-		       0.97384763087819518653237317884335760670293947136523395566725825917196
-		       0.94630008768741448848970961163495776211399866559491176443047155279581
-		       0.90929742682568169539601986591174484270225497144789026837897301153096
-		       0.86320936664887377068075931326902458492047242489508107697183045949721
-		       0.80849640381959018430403691041611906515855960597557707903336060873485
-		       0.74570521217672017738540621164349953894264877802047425750762828050000
-		       0.67546318055115092656577152534128337425336495789352584226890212866520
-		       0.59847214410395649405185470218616227170359717157722357330262703263874
-		       0.51550137182146423525772693520936824389387858775426312126259173008382
-		       0.42737988023382993455605308585788064749647642266670256499017776070511
-		       0.33498815015590491954385375271242210603030652888358671068410107309479
-		       0.23924932921398232818425691873957537221555293029961877411621026588071
-		       0.14112000805986722210074480280811027984693326425226558415188264123242))
-	    (mxerr 0.0))
-	(do ((x 0 (+ x 1)))
-	    ((= x 20))
-	  (let ((phase (* 2 pi (expt 10 x))))
-	    (do ((k 0 (+ k 1)))
-		((= k 30))
-	      (let ((sin-val-2 (sin (+ phase (/ k (bignum "10"))))))
-		(let ((err (magnitude (- sin-val-2 (list-ref sin-vals k)))))
-		  (if (> err mxerr)
-		      (set! mxerr err)))))))
-	(if (> mxerr 1e-35)
-	    (format-logged #t ";(sin big-angle) max error: ~A" mxerr)))
-      (set! (*s7* 'bignum-precision) old-prec)))
+(when with-bignums
+  (let ((old-prec (*s7* 'bignum-precision)))
+    (set! (*s7* 'bignum-precision) 500)
+    (let ((sin-vals (list   ;arprec mathtool table[Sin[k/10], {k, 0, 30}]
+		     "0.00000000000000000000000000000000000000000000000000000000000000000000"
+		     "0.09983341664682815230681419841062202698991538801798225999276686156165"
+		     "0.19866933079506121545941262711838975037020672954020540398639599139797"
+		     "0.29552020666133957510532074568502737367783211174261844850153103617326"
+		     "0.38941834230865049166631175679570526459306018344395889511584896585734"
+		     "0.47942553860420300027328793521557138808180336794060067518861661312553"
+		     "0.56464247339503535720094544565865790710988808499415177102426589426735"
+		     "0.64421768723769105367261435139872018306581384457368964474396308809382"
+		     "0.71735609089952276162717461058138536619278523779142282098968252068287"
+		     "0.78332690962748338846138231571354862314014792572030960356048515256195"
+		     "0.84147098480789650665250232163029899962256306079837106567275170999191"
+		     "0.89120736006143533995180257787170353831890931945282652766035329176720"
+		     "0.93203908596722634967013443549482599541507058820873073536659789445024"
+		     "0.96355818541719296470134863003955481534204849131773911795564922309212"
+		     "0.98544972998846018065947457880609751735626167234736563194021894560084"
+		     "0.99749498660405443094172337114148732270665142592211582194997482405934"
+		     "0.99957360304150516434211382554623417197949791475491995534260751586102"
+		     "0.99166481045246861534613339864787565240681957116712372532710249102330"
+		     "0.97384763087819518653237317884335760670293947136523395566725825917196"
+		     "0.94630008768741448848970961163495776211399866559491176443047155279581"
+		     "0.90929742682568169539601986591174484270225497144789026837897301153096"
+		     "0.86320936664887377068075931326902458492047242489508107697183045949721"
+		     "0.80849640381959018430403691041611906515855960597557707903336060873485"
+		     "0.74570521217672017738540621164349953894264877802047425750762828050000"
+		     "0.67546318055115092656577152534128337425336495789352584226890212866520"
+		     "0.59847214410395649405185470218616227170359717157722357330262703263874"
+		     "0.51550137182146423525772693520936824389387858775426312126259173008382"
+		     "0.42737988023382993455605308585788064749647642266670256499017776070511"
+		     "0.33498815015590491954385375271242210603030652888358671068410107309479"
+		     "0.23924932921398232818425691873957537221555293029961877411621026588071"
+		     "0.14112000805986722210074480280811027984693326425226558415188264123242")))
+      (do ((k 2 (+ k 1)))
+	  ((= k 30))
+	(let ((sin-val-2 (number->string (sin (/ k (bignum "10"))))))
+	  (if (not (string=? (substring (list-ref sin-vals k) 3 60) (substring sin-val-2 2 59)))
+	      (format-logged #t ";(sin (/ ~A 10)) mp: ~A does not match~%~A~%" k (substring (list-ref sin-vals k) 3 60) (substring sin-val-2 2 59))))))
+    
+    (let ((sin-vals (list   ;arprec mathtool table[Sin[k/10], {k, 0, 30}]
+		     0.00000000000000000000000000000000000000000000000000000000000000000000
+		     0.09983341664682815230681419841062202698991538801798225999276686156165
+		     0.19866933079506121545941262711838975037020672954020540398639599139797
+		     0.29552020666133957510532074568502737367783211174261844850153103617326
+		     0.38941834230865049166631175679570526459306018344395889511584896585734
+		     0.47942553860420300027328793521557138808180336794060067518861661312553
+		     0.56464247339503535720094544565865790710988808499415177102426589426735
+		     0.64421768723769105367261435139872018306581384457368964474396308809382
+		     0.71735609089952276162717461058138536619278523779142282098968252068287
+		     0.78332690962748338846138231571354862314014792572030960356048515256195
+		     0.84147098480789650665250232163029899962256306079837106567275170999191
+		     0.89120736006143533995180257787170353831890931945282652766035329176720
+		     0.93203908596722634967013443549482599541507058820873073536659789445024
+		     0.96355818541719296470134863003955481534204849131773911795564922309212
+		     0.98544972998846018065947457880609751735626167234736563194021894560084
+		     0.99749498660405443094172337114148732270665142592211582194997482405934
+		     0.99957360304150516434211382554623417197949791475491995534260751586102
+		     0.99166481045246861534613339864787565240681957116712372532710249102330
+		     0.97384763087819518653237317884335760670293947136523395566725825917196
+		     0.94630008768741448848970961163495776211399866559491176443047155279581
+		     0.90929742682568169539601986591174484270225497144789026837897301153096
+		     0.86320936664887377068075931326902458492047242489508107697183045949721
+		     0.80849640381959018430403691041611906515855960597557707903336060873485
+		     0.74570521217672017738540621164349953894264877802047425750762828050000
+		     0.67546318055115092656577152534128337425336495789352584226890212866520
+		     0.59847214410395649405185470218616227170359717157722357330262703263874
+		     0.51550137182146423525772693520936824389387858775426312126259173008382
+		     0.42737988023382993455605308585788064749647642266670256499017776070511
+		     0.33498815015590491954385375271242210603030652888358671068410107309479
+		     0.23924932921398232818425691873957537221555293029961877411621026588071
+		     0.14112000805986722210074480280811027984693326425226558415188264123242))
+	  (mxerr 0.0))
+      (do ((x 0 (+ x 1)))
+	  ((= x 20))
+	(let ((phase (* 2 pi (expt 10 x))))
+	  (do ((k 0 (+ k 1)))
+	      ((= k 30))
+	    (let ((sin-val-2 (sin (+ phase (/ k (bignum "10"))))))
+	      (let ((err (magnitude (- sin-val-2 (list-ref sin-vals k)))))
+		(if (> err mxerr)
+		    (set! mxerr err)))))))
+      (if (> mxerr 1e-35)
+	  (format-logged #t ";(sin big-angle) max error: ~A" mxerr)))
+    (set! (*s7* 'bignum-precision) old-prec)))
 
 
 
@@ -61309,54 +61157,49 @@ hi6: (string-app...
 	    (set! mxerr err))))
     (if (> mxerr 1e-12) (format-logged #t "cos err: ~A~%" mxerr))))
 
-(if with-bignums
-    (begin
-      (num-test (cos 100000000000000000000000000000000)   -9.207313839241906875982573440296245746235E-1)
-      (num-test (cos 100000000000000000000000000000000.0) -9.207313839241906875982573440296245746235E-1)
-      ))
-
-(if with-bignums
-    (let ((old-prec (*s7* 'bignum-precision)))
-      (set! (*s7* 'bignum-precision) 500)
-      (let ((cos-vals (list ; arprec mathtool table[Cos[k/20], {k, 0, 30}]
-		       "1.00000000000000000000000000000000000000000000000000000000000000000000"
-		       "0.99875026039496624656287081115652109495898026202467575301500996478674"
-		       "0.99500416527802576609556198780387029483857622541508403595935274468526"
-		       "0.98877107793604228673498099865433895791835001710693704356129574806756"
-		       "0.98006657784124163112419651674816887739352436080656799405254829012618"
-		       "0.96891242171064478414459544949418919980413419028744283114812812428894"
-		       "0.95533648912560601964231022756804989824421408263203767451761361222758"
-		       "0.93937271284737892003503235730366558297406104641303414382897205809282"
-		       "0.92106099400288508279852673205180161402585956931985044561508926713514"
-		       "0.90044710235267692166884061148644643975762309272876915613354673932299"
-		       "0.87758256189037271611628158260382965199164519710974405299761086831595"
-		       "0.85252452205950574280498179761777305104031900079223767166865534849083"
-		       "0.82533561490967829724095249895537603887809103918847038136974977367156"
-		       "0.79608379854905582891760457067990587351049589381429244823834230313846"
-		       "0.76484218728448842625585999019186490926821055037370335607293245825206"
-		       "0.73168886887382088631183875300008454384054127605077248250768322022075"
-		       "0.69670670934716542092074998164232492610178601370806078363714489414924"
-		       "0.65998314588498217039541602946146607363862433893076798146474793887138"
-		       "0.62160996827066445648471615140713350872176136659123900757638348453897"
-		       "0.58168308946388349416618097376045571713934034193760200851355170750073"
-		       "0.54030230586813971740093660744297660373231042061792222767009725538110"
-		       "0.49757104789172699029084957281210067725147811164693171708781576506313"
-		       "0.45359612142557738777137005178471612212146729566259504745593805541880"
-		       "0.40848744088415729815257671880991853998462713510786075458328732035938"
-		       "0.36235775447667357763837335562307602033994778557664862648774972093613"
-		       "0.31532236239526866544753855243803801372798570798275680751499914045328"
-		       "0.26749882862458740699798410929287135927592992167912966191725336742182"
-		       "0.21900668709304158142002217301062666089672421266400567061594451723594"
-		       "0.16996714290024093861674803520364980292818392102853430898236521149464"
-		       "0.12050276936736657053286662724801883979155423770384722087315404654227"
-		       "0.07073720166770291008818985143426870908509102756334686942264541719092")))
-	(do ((k 1 (+ k 1)))
-	    ((= k 30))
-	  (let ((cos-val-2 (number->string (cos (/ k (bignum "20"))))))
-	    (if (not (string=? (substring (list-ref cos-vals k) 3 60) (substring cos-val-2 2 59)))
-		(format-logged #t ";(cos (/ ~A 20)) mp: ~A does not match~%~A~%" k (substring (list-ref cos-vals k) 3 60) (substring cos-val-2 2 59))))))
-      (set! (*s7* 'bignum-precision) old-prec)))
-	
+(when with-bignums
+  (num-test (cos 100000000000000000000000000000000)   -9.207313839241906875982573440296245746235E-1)
+  (num-test (cos 100000000000000000000000000000000.0) -9.207313839241906875982573440296245746235E-1)
+  (let ((old-prec (*s7* 'bignum-precision)))
+    (set! (*s7* 'bignum-precision) 500)
+    (let ((cos-vals (list ; arprec mathtool table[Cos[k/20], {k, 0, 30}]
+		     "1.00000000000000000000000000000000000000000000000000000000000000000000"
+		     "0.99875026039496624656287081115652109495898026202467575301500996478674"
+		     "0.99500416527802576609556198780387029483857622541508403595935274468526"
+		     "0.98877107793604228673498099865433895791835001710693704356129574806756"
+		     "0.98006657784124163112419651674816887739352436080656799405254829012618"
+		     "0.96891242171064478414459544949418919980413419028744283114812812428894"
+		     "0.95533648912560601964231022756804989824421408263203767451761361222758"
+		     "0.93937271284737892003503235730366558297406104641303414382897205809282"
+		     "0.92106099400288508279852673205180161402585956931985044561508926713514"
+		     "0.90044710235267692166884061148644643975762309272876915613354673932299"
+		     "0.87758256189037271611628158260382965199164519710974405299761086831595"
+		     "0.85252452205950574280498179761777305104031900079223767166865534849083"
+		     "0.82533561490967829724095249895537603887809103918847038136974977367156"
+		     "0.79608379854905582891760457067990587351049589381429244823834230313846"
+		     "0.76484218728448842625585999019186490926821055037370335607293245825206"
+		     "0.73168886887382088631183875300008454384054127605077248250768322022075"
+		     "0.69670670934716542092074998164232492610178601370806078363714489414924"
+		     "0.65998314588498217039541602946146607363862433893076798146474793887138"
+		     "0.62160996827066445648471615140713350872176136659123900757638348453897"
+		     "0.58168308946388349416618097376045571713934034193760200851355170750073"
+		     "0.54030230586813971740093660744297660373231042061792222767009725538110"
+		     "0.49757104789172699029084957281210067725147811164693171708781576506313"
+		     "0.45359612142557738777137005178471612212146729566259504745593805541880"
+		     "0.40848744088415729815257671880991853998462713510786075458328732035938"
+		     "0.36235775447667357763837335562307602033994778557664862648774972093613"
+		     "0.31532236239526866544753855243803801372798570798275680751499914045328"
+		     "0.26749882862458740699798410929287135927592992167912966191725336742182"
+		     "0.21900668709304158142002217301062666089672421266400567061594451723594"
+		     "0.16996714290024093861674803520364980292818392102853430898236521149464"
+		     "0.12050276936736657053286662724801883979155423770384722087315404654227"
+		     "0.07073720166770291008818985143426870908509102756334686942264541719092")))
+      (do ((k 1 (+ k 1)))
+	  ((= k 30))
+	(let ((cos-val-2 (number->string (cos (/ k (bignum "20"))))))
+	  (if (not (string=? (substring (list-ref cos-vals k) 3 60) (substring cos-val-2 2 59)))
+	      (format-logged #t ";(cos (/ ~A 20)) mp: ~A does not match~%~A~%" k (substring (list-ref cos-vals k) 3 60) (substring cos-val-2 2 59))))))
+    (set! (*s7* 'bignum-precision) old-prec)))
 
 
 
@@ -61780,27 +61623,25 @@ hi6: (string-app...
 (num-test (tan 0+1000i) 0+i)
 (num-test (tan (complex 0 inf.0)) 0+i)
 
-(if with-bignums
-    (begin
-      (letrec ((sum-cot (lambda (n)
-			  (let ((sum 0.0))
-			    (do ((k 1 (+ k 1)))
-				((= k n) sum)
-			      (set! sum (+ sum (sin (/ (* k pi) n)))))))))
-	(let ((mxerr 0.0)
-	      (mxcase 0))
-	  (do ((i 2 (+ i 1)))
-	      ((= i 100))
-	    (let ((val1 (sum-cot i))
-		  (val2 (/ 1.0 (tan (/ pi (* 2 i))))))
-	      (let ((err (magnitude (- val1 val2))))
-		(if (> err mxerr)
-		    (begin
-		      (set! mxerr err)
-		      (set! mxcase i))))))
-	  (if (> mxerr 1e-35)
-	      (format-logged #t "sum-cot max error ~A at ~A~%" mxerr mxcase))))
-      ))
+(when with-bignums
+  (letrec ((sum-cot (lambda (n)
+		      (let ((sum 0.0))
+			(do ((k 1 (+ k 1)))
+			    ((= k n) sum)
+			  (set! sum (+ sum (sin (/ (* k pi) n)))))))))
+    (let ((mxerr 0.0)
+	  (mxcase 0))
+      (do ((i 2 (+ i 1)))
+	  ((= i 100))
+	(let ((val1 (sum-cot i))
+	      (val2 (/ 1.0 (tan (/ pi (* 2 i))))))
+	  (let ((err (magnitude (- val1 val2))))
+	    (if (> err mxerr)
+		(begin
+		  (set! mxerr err)
+		  (set! mxcase i))))))
+      (if (> mxerr 1e-35)
+	  (format-logged #t "sum-cot max error ~A at ~A~%" mxerr mxcase)))))
 
 (for-each
  (lambda (num-and-val)
@@ -61817,48 +61658,48 @@ hi6: (string-app...
 	 (list -1-1i -0.27175258531951-1.0839233273387i) (list 0.1+0.1i 0.099328043521656+0.10066129051146i) 
 	 (list 1e+16+1e+16i 0+1i) (list 1e-16+1e-16i 1e-16+1e-16i) ))
 
-(if with-bignums
-    (let ((old-prec (*s7* 'bignum-precision)))
-      (set! (*s7* 'bignum-precision) 500)
-      (let ((tans (list ; table[Tan[k/10], {k, 0, 30}]
-		   0.00000000000000000000000000000000000000000000000000000000000000000000e0
-		   0.10033467208545054505808004578111153681900480457644204002220806579803
-		   0.20271003550867248332135827164753448262687566965163133004781996689038
-		   0.30933624960962323303530367969829466725781590680046134075142272636569
-		   0.42279321873816176198163542716529033394198977271569358984733094139266
-		   0.54630248984379051325517946578028538329755172017979124616409138593290
-		   0.68413680834169231707092541746333574524265408075678204603738401651742
-		   0.84228838046307944812813500221293771718722125080419899879692251366850
-		   1.02963855705036401274636117282036528416821960677230780766895721581894
-		   1.26015821755033913713457548539574847783362583439629440734976898386523
-		   1.55740772465490223050697480745836017308725077238152003838394660569886
-		   1.96475965724865195093092278177937824371908489378986426895526379547792
-		   2.57215162212631893540999423603336395652940930604338927922563726223880
-		   3.60210244796797815123114551507651373970302582865487479569579648938869
-		   5.79788371548288964370772024360369904599369751893967972517934732424182
-		   14.10141994717171938764608365198775644565954357723586186612326758608969
-		   -34.23253273555741705801487543047619090177569941115323597430813746321248
-		   -7.69660213945915841412819296829866091636528991430764756294574142318097
-		   -4.28626167462806352545188895228026668020736003385824824436108662437549
-		   -2.92709751467777270368689918927087330066328793602580283437505670792996
-		   -2.18503986326151899164330610231368254343201774622766316456295586996677
-		   -1.70984654290450774834778079380390375776090098123394621314534682027235
-		   -1.37382305676879516014003676333346987430263329223370049420804295416122
-		   -1.11921364173413217123235669407622790313829418580200248125375565107236
-		   -0.91601428967341051273086324750810579399364554997699617941685909082222
-		   -0.74702229723866027935535268782527455790411695688301127906659308970027
-		   -0.60159661308975872273608189269127978293417758666969145078057164875561
-		   -0.47272762910303750795198918126389516105797171531608327694222778882857
-		   -0.35552983165117587757735260363543503816953711960914396739605909199266
-		   -0.24640539397196625534356707388530576476208894415934539659747894722272
-		   -0.14254654307427780529563541053391349322609228490180464763323897668885)))
-	(do ((i 0 (+ i 1)))
-	    ((= i 30))
-	  (let ((val (tan (/ i (bignum "10")))))
-	    (if (> (magnitude (- val (list-ref tans i))) 1e-35)
-		(format-logged #t ";(tan ~A) -> ~A ~A~%[~A]~%" (/ i 10) val (list-ref tans i) (magnitude (- val (list-ref tans i))))))))
-      (set! (*s7* 'bignum-precision) old-prec)))
-  
+(when with-bignums
+  (let ((old-prec (*s7* 'bignum-precision)))
+    (set! (*s7* 'bignum-precision) 500)
+    (let ((tans (list ; table[Tan[k/10], {k, 0, 30}]
+		 0.00000000000000000000000000000000000000000000000000000000000000000000e0
+		 0.10033467208545054505808004578111153681900480457644204002220806579803
+		 0.20271003550867248332135827164753448262687566965163133004781996689038
+		 0.30933624960962323303530367969829466725781590680046134075142272636569
+		 0.42279321873816176198163542716529033394198977271569358984733094139266
+		 0.54630248984379051325517946578028538329755172017979124616409138593290
+		 0.68413680834169231707092541746333574524265408075678204603738401651742
+		 0.84228838046307944812813500221293771718722125080419899879692251366850
+		 1.02963855705036401274636117282036528416821960677230780766895721581894
+		 1.26015821755033913713457548539574847783362583439629440734976898386523
+		 1.55740772465490223050697480745836017308725077238152003838394660569886
+		 1.96475965724865195093092278177937824371908489378986426895526379547792
+		 2.57215162212631893540999423603336395652940930604338927922563726223880
+		 3.60210244796797815123114551507651373970302582865487479569579648938869
+		 5.79788371548288964370772024360369904599369751893967972517934732424182
+		 14.10141994717171938764608365198775644565954357723586186612326758608969
+		 -34.23253273555741705801487543047619090177569941115323597430813746321248
+		 -7.69660213945915841412819296829866091636528991430764756294574142318097
+		 -4.28626167462806352545188895228026668020736003385824824436108662437549
+		 -2.92709751467777270368689918927087330066328793602580283437505670792996
+		 -2.18503986326151899164330610231368254343201774622766316456295586996677
+		 -1.70984654290450774834778079380390375776090098123394621314534682027235
+		 -1.37382305676879516014003676333346987430263329223370049420804295416122
+		 -1.11921364173413217123235669407622790313829418580200248125375565107236
+		 -0.91601428967341051273086324750810579399364554997699617941685909082222
+		 -0.74702229723866027935535268782527455790411695688301127906659308970027
+		 -0.60159661308975872273608189269127978293417758666969145078057164875561
+		 -0.47272762910303750795198918126389516105797171531608327694222778882857
+		 -0.35552983165117587757735260363543503816953711960914396739605909199266
+		 -0.24640539397196625534356707388530576476208894415934539659747894722272
+		 -0.14254654307427780529563541053391349322609228490180464763323897668885)))
+      (do ((i 0 (+ i 1)))
+	  ((= i 30))
+	(let ((val (tan (/ i (bignum "10")))))
+	  (if (> (magnitude (- val (list-ref tans i))) 1e-35)
+	      (format-logged #t ";(tan ~A) -> ~A ~A~%[~A]~%" (/ i 10) val (list-ref tans i) (magnitude (- val (list-ref tans i))))))))
+    (set! (*s7* 'bignum-precision) old-prec)))
+
 (test (tan) 'error)
 (test (tan "hi") 'error)
 (test (tan 1.0+23.0i 1.0+23.0i) 'error)
@@ -62447,47 +62288,47 @@ hi6: (string-app...
 	    (set! mxerr err))))
     (if (> mxerr 1e-12) (format-logged #t "asin err: ~A~%" mxerr))))
 
-(if with-bignums
-    (let ((old-prec (*s7* 'bignum-precision)))
-      (set! (*s7* 'bignum-precision) 500)
-      (let ((asins (list ; table[Arcsin[k/30], {k, 0, 30}]
-		    0.00000000000000000000000000000000000000000000000000000000000000000000e0
-		    0.03333950926130208699143488077083860917565937855129663393680393744362
-		    0.06671614841022525954540510327036927409184944434654403274652597117428
-		    0.10016742116155979634552317945269331856867597222962954139102385503640
-		    0.13373158940994152865632332716309743011405498274444165545458875924377
-		    0.16744807921968933055327460604363822091495716231623832046578730373329
-		    0.20135792079033079145512555221762341024003808140222838625725124345560
-		    0.23550423672079979129288448393723556648106234259531297814541683051663
-		    0.26993279583340344442461498978851864365647337427020501782962042633379
-		    0.30469265401539750797200296122752916695456003170677638739297794874647
-		    0.33983690945412193709639251339176406638824469033245807143192396248991
-		    0.37542360798103940368516545708214708494670535320625397496008012654413
-		    0.41151684606748801938473789761733560485570113512702585178394678070009
-		    0.44818813597943128994043756304906477118029918046343080720212217855713
-		    0.48551812229559116327223435902482444763168509494201196125953547218486
-		    0.52359877559829887307710723054658381403286156656251763682915743205130
-		    0.56253624454385561973132565694853319169977493405170278279550382560769
-		    0.60245463338499055124863378781466897272136400811697167837514413874507
-		    0.64350110879328438680280922871732263804151059111531238286560611871351
-		    0.68585296461871075596328071793021108476903703940127104404158318225766
-		    0.72972765622696636345479665981332069539650591404771369070894949146181
-		    0.77539749661075306374035335271498711355578873864116199359771996373272
-		    0.82321197712587582143797706006235798228453830885144107684904792594002
-		    0.87363319315266432351068180914720023973456695459982111043494836254140
-		    0.92729521800161223242851246292242880405707410857224052762186617744039
-		    0.98511078333774565961356415316223367589822363251591140783691296893264
-		    1.04848150498884799670722286578404816608970376214442109090268484725633
-		    1.11976951499863418668667705584539961589516218640330288237568186391443
-		    1.20358830623705947672584877793852613585139977949919656045114461770445
-		    1.31187478478867540346593147633958737932614651512288222488818316043445
-		    1.57079632679489661923132169163975144209858469968755291048747229615390)))
-	(do ((i 0 (+ i 1)))
-	    ((= i 30))
-	  (let ((val (asin (/ i (bignum "30")))))
-	    (if (> (magnitude (- val (list-ref asins i))) 1e-36)
-		(format-logged #t ";(asin ~A) -> ~A ~A~%[~A]~%" (/ i 30) val (list-ref asins i) (magnitude (- val (list-ref asins i))))))))
-      (set! (*s7* 'bignum-precision) old-prec)))
+(when with-bignums
+  (let ((old-prec (*s7* 'bignum-precision)))
+    (set! (*s7* 'bignum-precision) 500)
+    (let ((asins (list ; table[Arcsin[k/30], {k, 0, 30}]
+		  0.00000000000000000000000000000000000000000000000000000000000000000000e0
+		  0.03333950926130208699143488077083860917565937855129663393680393744362
+		  0.06671614841022525954540510327036927409184944434654403274652597117428
+		  0.10016742116155979634552317945269331856867597222962954139102385503640
+		  0.13373158940994152865632332716309743011405498274444165545458875924377
+		  0.16744807921968933055327460604363822091495716231623832046578730373329
+		  0.20135792079033079145512555221762341024003808140222838625725124345560
+		  0.23550423672079979129288448393723556648106234259531297814541683051663
+		  0.26993279583340344442461498978851864365647337427020501782962042633379
+		  0.30469265401539750797200296122752916695456003170677638739297794874647
+		  0.33983690945412193709639251339176406638824469033245807143192396248991
+		  0.37542360798103940368516545708214708494670535320625397496008012654413
+		  0.41151684606748801938473789761733560485570113512702585178394678070009
+		  0.44818813597943128994043756304906477118029918046343080720212217855713
+		  0.48551812229559116327223435902482444763168509494201196125953547218486
+		  0.52359877559829887307710723054658381403286156656251763682915743205130
+		  0.56253624454385561973132565694853319169977493405170278279550382560769
+		  0.60245463338499055124863378781466897272136400811697167837514413874507
+		  0.64350110879328438680280922871732263804151059111531238286560611871351
+		  0.68585296461871075596328071793021108476903703940127104404158318225766
+		  0.72972765622696636345479665981332069539650591404771369070894949146181
+		  0.77539749661075306374035335271498711355578873864116199359771996373272
+		  0.82321197712587582143797706006235798228453830885144107684904792594002
+		  0.87363319315266432351068180914720023973456695459982111043494836254140
+		  0.92729521800161223242851246292242880405707410857224052762186617744039
+		  0.98511078333774565961356415316223367589822363251591140783691296893264
+		  1.04848150498884799670722286578404816608970376214442109090268484725633
+		  1.11976951499863418668667705584539961589516218640330288237568186391443
+		  1.20358830623705947672584877793852613585139977949919656045114461770445
+		  1.31187478478867540346593147633958737932614651512288222488818316043445
+		  1.57079632679489661923132169163975144209858469968755291048747229615390)))
+      (do ((i 0 (+ i 1)))
+	  ((= i 30))
+	(let ((val (asin (/ i (bignum "30")))))
+	  (if (> (magnitude (- val (list-ref asins i))) 1e-36)
+	      (format-logged #t ";(asin ~A) -> ~A ~A~%[~A]~%" (/ i 30) val (list-ref asins i) (magnitude (- val (list-ref asins i))))))))
+    (set! (*s7* 'bignum-precision) old-prec)))
 
 
 
@@ -63014,47 +62855,47 @@ hi6: (string-app...
  (list "hi" () (integer->char 65) #f #t '(1 2) _ht_ _null_ _c_obj_ 'a-symbol (cons 1 2) (make-vector 3) abs 
        #<eof> '(1 2 3) #\newline (lambda (a) (+ a 1)) #<unspecified> #<undefined>))
 
-(if with-bignums
-    (let ((old-prec (*s7* 'bignum-precision)))
-      (set! (*s7* 'bignum-precision) 500)
-      (let ((acoss (list ; table[Arccos[k/30], {k, 0, 30}]
-		    1.57079632679489661923132169163975144209858469968755291048747229615390
-		    1.53745681753359453223988681086891283292292532113625627655066835871028
-		    1.50408017838467135968591658836938216800673525534100887774094632497961
-		    1.47062890563333682288579851218705812352990872745792336909644844111750
-		    1.43706473738495509057499836447665401198452971694311125503288353691013
-		    1.40334824757520728867804708559611322118362753737131459002168499242061
-		    1.36943840600456582777619613942212803185854661828532452423022105269829
-		    1.33529209007409682793843720770251587561752235709223993234205546563727
-		    1.30086353096149317480670670185123279844211132541734789265785186982011
-		    1.26610367277949911125931873041222227514402466798077652309449434740743
-		    1.23095941734077468213492917824798737571034000935509483905554833366399
-		    1.19537271881385721554615623455760435715187934648129893552739216960977
-		    1.15927948072740859984658379402241583724288356456052705870352551545381
-		    1.12260819081546532929088412859068667091828551922412210328535011759677
-		    1.08527820449930545595908733261492699446689960474554094922793682396904
-		    1.04719755119659774615421446109316762806572313312503527365831486410260
-		    1.00826008225104099949999603469121825039880976563585012769196847054621
-		    0.96834169340990606798268790382508246937722069157058123211232815740883
-		    0.92729521800161223242851246292242880405707410857224052762186617744039
-		    0.88494336217618586326804097370954035732954766028628186644588911389624
-		    0.84106867056793025577652503182643074670207878563983921977852280469208
-		    0.79539883018414355549096833892476432854279596104639091688975233242118
-		    0.74758434966902079779334463157739345981404639083611183363842437021388
-		    0.69716313364223229572063988249255120236401774508773180005252393361250
-		    0.64350110879328438680280922871732263804151059111531238286560611871351
-		    0.58568554345715095961775753847751776620036106717164150265055932722126
-		    0.52231482180604862252409882585570327600888093754313181958478744889757
-		    0.45102681179626243254464463579435182620342251328425002811179043223947
-		    0.36720802055783714250547291370122530624718492018835635003632767844945
-		    0.25892154200622121576539021530016406277243818456467068559928913571945
-		    0.00000000000000000000000000000000000000000000000000000000000000000000e0)))
-	(do ((i 0 (+ i 1)))
-	    ((= i 30))
-	  (let ((val (acos (/ i (bignum "30")))))
-	    (if (> (magnitude (- val (list-ref acoss i))) 1e-36)
-		(format-logged #t ";(acos ~A) -> ~A ~A~%[~A]~%" (/ i 30) val (list-ref acoss i) (magnitude (- val (list-ref acoss i))))))))
-      (set! (*s7* 'bignum-precision) old-prec)))
+(when with-bignums
+  (let ((old-prec (*s7* 'bignum-precision)))
+    (set! (*s7* 'bignum-precision) 500)
+    (let ((acoss (list ; table[Arccos[k/30], {k, 0, 30}]
+		  1.57079632679489661923132169163975144209858469968755291048747229615390
+		  1.53745681753359453223988681086891283292292532113625627655066835871028
+		  1.50408017838467135968591658836938216800673525534100887774094632497961
+		  1.47062890563333682288579851218705812352990872745792336909644844111750
+		  1.43706473738495509057499836447665401198452971694311125503288353691013
+		  1.40334824757520728867804708559611322118362753737131459002168499242061
+		  1.36943840600456582777619613942212803185854661828532452423022105269829
+		  1.33529209007409682793843720770251587561752235709223993234205546563727
+		  1.30086353096149317480670670185123279844211132541734789265785186982011
+		  1.26610367277949911125931873041222227514402466798077652309449434740743
+		  1.23095941734077468213492917824798737571034000935509483905554833366399
+		  1.19537271881385721554615623455760435715187934648129893552739216960977
+		  1.15927948072740859984658379402241583724288356456052705870352551545381
+		  1.12260819081546532929088412859068667091828551922412210328535011759677
+		  1.08527820449930545595908733261492699446689960474554094922793682396904
+		  1.04719755119659774615421446109316762806572313312503527365831486410260
+		  1.00826008225104099949999603469121825039880976563585012769196847054621
+		  0.96834169340990606798268790382508246937722069157058123211232815740883
+		  0.92729521800161223242851246292242880405707410857224052762186617744039
+		  0.88494336217618586326804097370954035732954766028628186644588911389624
+		  0.84106867056793025577652503182643074670207878563983921977852280469208
+		  0.79539883018414355549096833892476432854279596104639091688975233242118
+		  0.74758434966902079779334463157739345981404639083611183363842437021388
+		  0.69716313364223229572063988249255120236401774508773180005252393361250
+		  0.64350110879328438680280922871732263804151059111531238286560611871351
+		  0.58568554345715095961775753847751776620036106717164150265055932722126
+		  0.52231482180604862252409882585570327600888093754313181958478744889757
+		  0.45102681179626243254464463579435182620342251328425002811179043223947
+		  0.36720802055783714250547291370122530624718492018835635003632767844945
+		  0.25892154200622121576539021530016406277243818456467068559928913571945
+		  0.00000000000000000000000000000000000000000000000000000000000000000000e0)))
+      (do ((i 0 (+ i 1)))
+	  ((= i 30))
+	(let ((val (acos (/ i (bignum "30")))))
+	  (if (> (magnitude (- val (list-ref acoss i))) 1e-36)
+	      (format-logged #t ";(acos ~A) -> ~A ~A~%[~A]~%" (/ i 30) val (list-ref acoss i) (magnitude (- val (list-ref acoss i))))))))
+    (set! (*s7* 'bignum-precision) old-prec)))
 
 
 
@@ -64013,23 +63854,23 @@ hi6: (string-app...
 	   (begin (display formula) (display " = ") (display (* r sum)) (newline)))))
    formulas)
   
-  (if with-bignums
-      (let ((mxerr 0.0))
-	(for-each 
-	 (lambda (formula)
-	   (let ((r (/ (bignum "1") (car formula)))
-		 (sum (bignum "0.0")))
-	     (for-each
-	      (lambda (arg)
-		(set! sum (+ sum (* (car arg) (atan (/ (bignum "1") (cadr arg)))))))
-	      (cdr formula))
-	     
-	     (let ((err (abs (- (* r sum) (* 4 (atan (bignum "1.0") 1.0))))))
-	       (if (> err mxerr)
-		   (set! mxerr err)))))
-	 formulas)
-	(if (> mxerr 1e-30)
-	    (format-logged #t "big max error: ~A~%" mxerr)))))
+  (when with-bignums
+    (let ((mxerr 0.0))
+      (for-each 
+       (lambda (formula)
+	 (let ((r (/ (bignum "1") (car formula)))
+	       (sum (bignum "0.0")))
+	   (for-each
+	    (lambda (arg)
+	      (set! sum (+ sum (* (car arg) (atan (/ (bignum "1") (cadr arg)))))))
+	    (cdr formula))
+	   
+	   (let ((err (abs (- (* r sum) (* 4 (atan (bignum "1.0") 1.0))))))
+	     (if (> err mxerr)
+		 (set! mxerr err)))))
+       formulas)
+      (if (> mxerr 1e-30)
+	  (format-logged #t "big max error: ~A~%" mxerr)))))
 
 (let ((atans (list
 	      0.00000000000000000000000000000000000000000000000000000000000000000000
@@ -64082,47 +63923,47 @@ hi6: (string-app...
 	    (set! mxerr err))))
     (if (> mxerr 1e-12) (format-logged #t "atan err: ~A~%" mxerr))))
     
-(if with-bignums
-    (let ((old-prec (*s7* 'bignum-precision)))
-      (set! (*s7* 'bignum-precision) 500)
-      (let ((atans (list ; table[Arctan[k/10], {k, 0, 30}]
-		    0.00000000000000000000000000000000000000000000000000000000000000000000e0
-		    0.09966865249116202737844611987802059024327832250431464801550877681002
-		    0.19739555984988075837004976519479029344758510378785210151768894024103
-		    0.29145679447786709199560462143289119350316759901206541927220608308729
-		    0.38050637711236488630358791681043310449740571365810083757630562232420
-		    0.46364760900080611621425623146121440202853705428612026381093308872019
-		    0.54041950027058415544357836460859991013514825146259238811636023340959
-		    0.61072596438920861654375887649023609381850306612882761584286773000023
-		    0.67474094222355266305652097360981361507400625484071242312092170496930
-		    0.73281510178650659164079207273428025198575567935825608631050693192821
-		    0.78539816339744830961566084581987572104929234984377645524373614807695
-		    0.83298126667443170541769356183636123851585134443710842085342312250327
-		    0.87605805059819342311404752112834133907534524616033200346065614838499
-		    0.91510070055336041656680197245527296654755880944161873770852665151657
-		    0.95054684081207514789478913546381917504767901030880427426177057808809
-		    0.98279372324732906798571061101466601449687745363162855676142508831798
-		    1.01219701145133418325981347523809017175213711715353810435383625801215
-		    1.03907225953609102762125033790727884531233378855364699989530509706554
-		    1.06369782240255966094389111605254547856256296541932752568273985366635
-		    1.08631839775787341806397958192567762897580047046812780208748680606431
-		    1.10714871779409050301706546017853704007004764540143264667653920743371
-		    1.12637711689379770989641767275145325372112241040085015241064879177491
-		    1.14416883366802053001158090974633622082626800572469223488413501483165
-		    1.16066898625340562678011092078453217718605394084134102434206195147540
-		    1.17600520709513510249122216125017085520341449211184870745209441567184
-		    1.19028994968253173292773377482931833760117898602945207291116667382970
-		    1.20362249297667741080683267484687578339840429857832439350850411338551
-		    1.21609067478395630285892632134113779481025954203667431449700610948231
-		    1.22777238637419322215779309222594182541102155201281262388880100298534
-		    1.23873685925201114137796025438808735907407693977120210817129118165791
-		    1.24904577239825442582991707728109012307782940412989671905466923679715)))
-	(do ((i 0 (+ i 1)))
-	    ((= i 30))
-	  (let ((val (atan (/ i (bignum "10")))))
-	    (if (> (magnitude (- val (list-ref atans i))) 1e-36)
-		(format-logged #t ";(atan ~A) -> ~A ~A~%[~A]~%" (/ i 10) val (list-ref atans i) (magnitude (- val (list-ref atans i))))))))
-      (set! (*s7* 'bignum-precision) old-prec)))
+(when with-bignums
+  (let ((old-prec (*s7* 'bignum-precision)))
+    (set! (*s7* 'bignum-precision) 500)
+    (let ((atans (list ; table[Arctan[k/10], {k, 0, 30}]
+		  0.00000000000000000000000000000000000000000000000000000000000000000000e0
+		  0.09966865249116202737844611987802059024327832250431464801550877681002
+		  0.19739555984988075837004976519479029344758510378785210151768894024103
+		  0.29145679447786709199560462143289119350316759901206541927220608308729
+		  0.38050637711236488630358791681043310449740571365810083757630562232420
+		  0.46364760900080611621425623146121440202853705428612026381093308872019
+		  0.54041950027058415544357836460859991013514825146259238811636023340959
+		  0.61072596438920861654375887649023609381850306612882761584286773000023
+		  0.67474094222355266305652097360981361507400625484071242312092170496930
+		  0.73281510178650659164079207273428025198575567935825608631050693192821
+		  0.78539816339744830961566084581987572104929234984377645524373614807695
+		  0.83298126667443170541769356183636123851585134443710842085342312250327
+		  0.87605805059819342311404752112834133907534524616033200346065614838499
+		  0.91510070055336041656680197245527296654755880944161873770852665151657
+		  0.95054684081207514789478913546381917504767901030880427426177057808809
+		  0.98279372324732906798571061101466601449687745363162855676142508831798
+		  1.01219701145133418325981347523809017175213711715353810435383625801215
+		  1.03907225953609102762125033790727884531233378855364699989530509706554
+		  1.06369782240255966094389111605254547856256296541932752568273985366635
+		  1.08631839775787341806397958192567762897580047046812780208748680606431
+		  1.10714871779409050301706546017853704007004764540143264667653920743371
+		  1.12637711689379770989641767275145325372112241040085015241064879177491
+		  1.14416883366802053001158090974633622082626800572469223488413501483165
+		  1.16066898625340562678011092078453217718605394084134102434206195147540
+		  1.17600520709513510249122216125017085520341449211184870745209441567184
+		  1.19028994968253173292773377482931833760117898602945207291116667382970
+		  1.20362249297667741080683267484687578339840429857832439350850411338551
+		  1.21609067478395630285892632134113779481025954203667431449700610948231
+		  1.22777238637419322215779309222594182541102155201281262388880100298534
+		  1.23873685925201114137796025438808735907407693977120210817129118165791
+		  1.24904577239825442582991707728109012307782940412989671905466923679715)))
+      (do ((i 0 (+ i 1)))
+	  ((= i 30))
+	(let ((val (atan (/ i (bignum "10")))))
+	  (if (> (magnitude (- val (list-ref atans i))) 1e-36)
+	      (format-logged #t ";(atan ~A) -> ~A ~A~%[~A]~%" (/ i 10) val (list-ref atans i) (magnitude (- val (list-ref atans i))))))))
+    (set! (*s7* 'bignum-precision) old-prec)))
 
 
 
@@ -64957,36 +64798,34 @@ hi6: (string-app...
 	 (list 0.1+0.1i 0.9999833333373+0.0099999888888898i) (list 1e-16+1e-16i 1+1e-32i) 
 	 ))
   
-(if with-bignums
-    (begin
-      (let ((max-s-error 0.0)
-	    (max-s-error-case 0)
-	    (max-sh-error 0.0)
-	    (max-sh-error-case 0))
-	(do ((x 0.10000000000000000000000 (+ x 0.1000000000000000000000)))
-	    ((> x (* 2 pi)))
-	  (let ((s (sin x))
-		(sh (sinh x))
-		(c (cos x))
-		(ch (cosh x)))
-	    (let ((err (magnitude (- (+ (* s s) (* c c)) 1))))
-	      (if (> err max-s-error)
-		  (begin
-		    (set! max-s-error err)
-		    (set! max-s-error-case x))))
-	    (let ((err (magnitude (+ (- (* sh sh) (* ch ch)) 1))))
-	      (if (> err max-sh-error)
-		  (begin
-		    (set! max-sh-error err)
-		    (set! max-sh-error-case x))))))
-	(if (> max-s-error 1e-35)
-	    (format-logged #t "s^2 + c^2 error: ~A at ~A~%" max-s-error max-s-error-case))
-	(if (> max-sh-error 1e-33)
-	    (format-logged #t "sh^2 + ch^2 error: ~A at ~A~%" max-sh-error max-sh-error-case)))
-
-      (num-test (sinh 1000.0) 9.850355570085234969444396761216615626576E433)
-      (num-test (cosh 1000.0) 9.850355570085234969444396761216615626576E433)
-      ))
+(when with-bignums
+  (let ((max-s-error 0.0)
+	(max-s-error-case 0)
+	(max-sh-error 0.0)
+	(max-sh-error-case 0))
+    (do ((x 0.10000000000000000000000 (+ x 0.1000000000000000000000)))
+	((> x (* 2 pi)))
+      (let ((s (sin x))
+	    (sh (sinh x))
+	    (c (cos x))
+	    (ch (cosh x)))
+	(let ((err (magnitude (- (+ (* s s) (* c c)) 1))))
+	  (if (> err max-s-error)
+	      (begin
+		(set! max-s-error err)
+		(set! max-s-error-case x))))
+	(let ((err (magnitude (+ (- (* sh sh) (* ch ch)) 1))))
+	  (if (> err max-sh-error)
+	      (begin
+		(set! max-sh-error err)
+		(set! max-sh-error-case x))))))
+    (if (> max-s-error 1e-35)
+	(format-logged #t "s^2 + c^2 error: ~A at ~A~%" max-s-error max-s-error-case))
+    (if (> max-sh-error 1e-33)
+	(format-logged #t "sh^2 + ch^2 error: ~A at ~A~%" max-sh-error max-sh-error-case)))
+  
+  (num-test (sinh 1000.0) 9.850355570085234969444396761216615626576E433)
+  (num-test (cosh 1000.0) 9.850355570085234969444396761216615626576E433))
 
 (test (cosh) 'error)
 (test (cosh "hi") 'error)
@@ -66910,13 +66749,11 @@ hi6: (string-app...
 (num-test (atanh -2.225073858507201399999999999999999999996E-308) -2.225073858507201399999999999999999999996E-308)
 (num-test (atanh 1.110223024625156799999999999999999999997E-16) 1.110223024625156800000000000000004561517E-16)
 
-(if with-bignums
-    (begin
-      (num-test (atanh 9223372036854775/9223372036854776) 1.872683213842718135862772724835833552118E1)
-      (num-test (atanh 92233720368547758/92233720368547757) 1.987812468492420421418925039646711911969E1+1.570796326794896619231321691639751442098E0i)
-      (num-test (atanh 9223372036854775806/9223372036854775807) 2.218070977791824990127011272372523734584E1)
-      (num-test (atanh 9223372036854775807/9223372036854775806) 2.218070977791824990127013919350483904273E1+1.570796326794896619231321691639751442098E0i)
-      ))
+(when with-bignums
+  (num-test (atanh 9223372036854775/9223372036854776) 1.872683213842718135862772724835833552118E1)
+  (num-test (atanh 92233720368547758/92233720368547757) 1.987812468492420421418925039646711911969E1+1.570796326794896619231321691639751442098E0i)
+  (num-test (atanh 9223372036854775806/9223372036854775807) 2.218070977791824990127011272372523734584E1)
+  (num-test (atanh 9223372036854775807/9223372036854775806) 2.218070977791824990127013919350483904273E1+1.570796326794896619231321691639751442098E0i))
 
 (test (atanh) 'error)
 (test (atanh "hi") 'error)
@@ -67535,34 +67372,32 @@ hi6: (string-app...
 (test (and (integer? (sqrt 9007199136250226)) (exact? (sqrt 9007199136250226))) #f)
 (test (and (integer? (sqrt 9007199136250225)) (exact? (sqrt 9007199136250225))) #t)
 
-(if (integer? (sqrt 4))
-    (begin
-      (for-each
-       (lambda (n sqn)
-	 (if (positive? n) ; in case 32 bit int
-	     (let ((val (sqrt n)))
-	       (if (or (not (integer? val))
-		       (not (eqv? sqn val)))
-		   (format-logged #t ";(sqrt ~A) expected ~A but got ~A~%" n sqn val)))))
-       (list 9 491401 19439281 1248844921 235565593201)
-       (list 3 701 4409 35339 485351))
-      
-      (for-each
-       (lambda (n)
-	 (if (positive? n)
-	     (let ((val (sqrt n)))
-	       (if (or (integer? val)
-		       (> (abs (- (* val val) n)) .001))
-		   (format-logged #t ";(sqrt ~A) expected ~A but got ~A~%" n (sqrt (* 1.0 n)) val)))))
-       (list 10 491400 19439282 1248844920 235565593200))
-      
-      (test (eqv? (expt 2 3) 8) #t)
+(when (integer? (sqrt 4))
+  (for-each
+   (lambda (n sqn)
+     (if (positive? n) ; in case 32 bit int
+	 (let ((val (sqrt n)))
+	   (if (or (not (integer? val))
+		   (not (eqv? sqn val)))
+	       (format-logged #t ";(sqrt ~A) expected ~A but got ~A~%" n sqn val)))))
+   (list 9 491401 19439281 1248844921 235565593201)
+   (list 3 701 4409 35339 485351))
+  
+  (for-each
+   (lambda (n)
+     (if (positive? n)
+	 (let ((val (sqrt n)))
+	   (if (or (integer? val)
+		   (> (abs (- (* val val) n)) .001))
+	       (format-logged #t ";(sqrt ~A) expected ~A but got ~A~%" n (sqrt (* 1.0 n)) val)))))
+   (list 10 491400 19439282 1248844920 235565593200))
+  
+  (test (eqv? (expt 2 3) 8) #t)
 					;(test (eqv? (log 8 2) 3) #t) ; optimization in C (-O2) changes this
-      (num-test (log 8 2) 3)
-      (num-test (log 1/8 2) -3)
-      (test (eqv? (expt 701 2) 491401) #t)
-      (test (eqv? (log 491401 701) 2) #t)
-      ))
+  (num-test (log 8 2) 3)
+  (num-test (log 1/8 2) -3)
+  (test (eqv? (expt 701 2) 491401) #t)
+  (test (eqv? (log 491401 701) 2) #t))
 
 (let ((err 0.0)
       (mx 0.0))
@@ -67631,15 +67466,13 @@ hi6: (string-app...
 		(set! an an1))))
 	  pi)
 
-(if with-bignums
-    (begin
-      (num-test (sqrt 340282366920938463463374607431768211456) 18446744073709551616)
-      (num-test (sqrt 32317006071311007300714876688669951960444102669715484032130345427524655138867890893197201411522913463688717960921898019494119559150490921095088152386448283120630877367300996091750197750389652106796057638384067568276792218642619756161838094338476170470581645852036305042887575891541065808607552399123930385521914333389668342420684974786564569494856176035326322058077805659331026192708460314150258592864177116725943603718461857357598351152301645904403697613233287231227125684710820209725157101726931323469678542580656697935045997268352998638215525166389437335543602135433229604645318478604952148193555853611059596230656) 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216)
-      (num-test (sqrt 1208925819614629174706176/717897987691852588770249) 1099511627776/847288609443)
-      (num-test (sqrt (/ (* 1.0 (expt 2 80)) (expt 3 50))) 1.297682531692252029863335918836296060669E0)
-      (num-test (sqrt -340282366920938463463374607431768211456) 0.0+1.8446744073709551616E19i)
-      (num-test (sqrt 0+340282366920938463463374607431768211456i) 1.304381782533278221234957180625250836888E19+1.304381782533278221234957180625250836888E19i)
-      ))
+(when with-bignums
+  (num-test (sqrt 340282366920938463463374607431768211456) 18446744073709551616)
+  (num-test (sqrt 32317006071311007300714876688669951960444102669715484032130345427524655138867890893197201411522913463688717960921898019494119559150490921095088152386448283120630877367300996091750197750389652106796057638384067568276792218642619756161838094338476170470581645852036305042887575891541065808607552399123930385521914333389668342420684974786564569494856176035326322058077805659331026192708460314150258592864177116725943603718461857357598351152301645904403697613233287231227125684710820209725157101726931323469678542580656697935045997268352998638215525166389437335543602135433229604645318478604952148193555853611059596230656) 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216)
+  (num-test (sqrt 1208925819614629174706176/717897987691852588770249) 1099511627776/847288609443)
+  (num-test (sqrt (/ (* 1.0 (expt 2 80)) (expt 3 50))) 1.297682531692252029863335918836296060669E0)
+  (num-test (sqrt -340282366920938463463374607431768211456) 0.0+1.8446744073709551616E19i)
+  (num-test (sqrt 0+340282366920938463463374607431768211456i) 1.304381782533278221234957180625250836888E19+1.304381782533278221234957180625250836888E19i))
 
 (test (sqrt) 'error)
 (test (sqrt "hi") 'error)
@@ -67732,56 +67565,50 @@ hi6: (string-app...
 	    (set! mxerr err))))
     (if (> mxerr 1e-12) (format-logged #t "sqrt err: ~A~%" mxerr))))
 
-(if with-bignums
-    (begin
-      (num-test (/ (sqrt (* 1.2345e-170 1.2345e-170))) 8.100445524503847216161209708816501953798E169)
-      (num-test (sqrt (expt 2 32)) 65536)
-      (num-test (sqrt -1.797693134862315699999999999999999999998E308) 0.0+1.34078079299425963249160560140156653105E154i)
-      (num-test (exp (* pi (sqrt (bignum "163")))) 2.625374126407687439999999999992500725895E17)
-      ))
+(when with-bignums
+  (num-test (/ (sqrt (* 1.2345e-170 1.2345e-170))) 8.100445524503847216161209708816501953798E169)
+  (num-test (sqrt (expt 2 32)) 65536)
+  (num-test (sqrt -1.797693134862315699999999999999999999998E308) 0.0+1.34078079299425963249160560140156653105E154i)
+  (num-test (exp (* pi (sqrt (bignum "163")))) 2.625374126407687439999999999992500725895E17)
+  (let-temporarily (((*s7* 'bignum-precision) 500))
+    (let ((sqrts (list ; table[Sqrt[k/10], {k, 0, 30}]
+		  0.00000000000000000000000000000000000000000000000000000000000000000000e0
+		  0.31622776601683793319988935444327185337195551393252168268575048527925
+		  0.44721359549995793928183473374625524708812367192230514485417944908210
+		  0.54772255750516611345696978280080213395274469499798325422689444973249
+		  0.63245553203367586639977870888654370674391102786504336537150097055851
+		  0.70710678118654752440084436210484903928483593768847403658833986899536
+		  0.77459666924148337703585307995647992216658434105831816531751475322269
+		  0.83666002653407554797817202578518748939281536929867219981119154308041
+		  0.89442719099991587856366946749251049417624734384461028970835889816420
+		  0.94868329805051379959966806332981556011586654179756504805725145583777
+		  1.00000000000000000000000000000000000000000000000000000000000000000000
+		  1.04880884817015154699145351367993759847527185768150398487575576358000
+		  1.09544511501033222691393956560160426790548938999596650845378889946498
+		  1.14017542509913797913604902556675447907600531091641037529746941724956
+		  1.18321595661992320851346565831232340968310024615886806457594393382856
+		  1.22474487139158904909864203735294569598297374032833506421634628362548
+		  1.26491106406735173279955741777308741348782205573008673074300194111703
+		  1.30384048104052974291659431148583688330561875578201309179007936989676
+		  1.34164078649987381784550420123876574126437101576691543456253834724631
+		  1.37840487520902217679559125529341754271981635583990014790642120179806
+		  1.41421356237309504880168872420969807856967187537694807317667973799073
+		  1.44913767461894385737186641571697717231401328747589730886959248071181
+		  1.48323969741913258974227948816014261219598086381950031974652465286876
+		  1.51657508881031011085136508725641431090992842790349245064524200355844
+		  1.54919333848296675407170615991295984433316868211663633063502950644539
+		  1.58113883008418966599944677221635926685977756966260841342875242639629
+		  1.61245154965970993047332264606075422622687926112171467758731847785277
+		  1.64316767251549834037090934840240640185823408499394976268068334919747
+		  1.67332005306815109595634405157037497878563073859734439962238308616083
+		  1.70293863659264011661333218238773227063897151909784216273026969624657
+		  1.73205080756887729352744634150587236694280525381038062805580697945193)))
+      (do ((i 0 (+ i 1)))
+	  ((= i 30))
+	(let ((val (sqrt (/ i (bignum "10")))))
+	  (if (> (magnitude (- val (list-ref sqrts i))) 1e-36)
+	      (format-logged #t ";(sqrt ~A) -> ~A ~A~%[~A]~%" (/ i 10) val (list-ref sqrts i) (magnitude (- val (list-ref sqrts i))))))))))
 
-(if with-bignums
-    (let ((old-prec (*s7* 'bignum-precision)))
-      (set! (*s7* 'bignum-precision) 500)
-      (let ((sqrts (list ; table[Sqrt[k/10], {k, 0, 30}]
-		    0.00000000000000000000000000000000000000000000000000000000000000000000e0
-		    0.31622776601683793319988935444327185337195551393252168268575048527925
-		    0.44721359549995793928183473374625524708812367192230514485417944908210
-		    0.54772255750516611345696978280080213395274469499798325422689444973249
-		    0.63245553203367586639977870888654370674391102786504336537150097055851
-		    0.70710678118654752440084436210484903928483593768847403658833986899536
-		    0.77459666924148337703585307995647992216658434105831816531751475322269
-		    0.83666002653407554797817202578518748939281536929867219981119154308041
-		    0.89442719099991587856366946749251049417624734384461028970835889816420
-		    0.94868329805051379959966806332981556011586654179756504805725145583777
-		    1.00000000000000000000000000000000000000000000000000000000000000000000
-		    1.04880884817015154699145351367993759847527185768150398487575576358000
-		    1.09544511501033222691393956560160426790548938999596650845378889946498
-		    1.14017542509913797913604902556675447907600531091641037529746941724956
-		    1.18321595661992320851346565831232340968310024615886806457594393382856
-		    1.22474487139158904909864203735294569598297374032833506421634628362548
-		    1.26491106406735173279955741777308741348782205573008673074300194111703
-		    1.30384048104052974291659431148583688330561875578201309179007936989676
-		    1.34164078649987381784550420123876574126437101576691543456253834724631
-		    1.37840487520902217679559125529341754271981635583990014790642120179806
-		    1.41421356237309504880168872420969807856967187537694807317667973799073
-		    1.44913767461894385737186641571697717231401328747589730886959248071181
-		    1.48323969741913258974227948816014261219598086381950031974652465286876
-		    1.51657508881031011085136508725641431090992842790349245064524200355844
-		    1.54919333848296675407170615991295984433316868211663633063502950644539
-		    1.58113883008418966599944677221635926685977756966260841342875242639629
-		    1.61245154965970993047332264606075422622687926112171467758731847785277
-		    1.64316767251549834037090934840240640185823408499394976268068334919747
-		    1.67332005306815109595634405157037497878563073859734439962238308616083
-		    1.70293863659264011661333218238773227063897151909784216273026969624657
-		    1.73205080756887729352744634150587236694280525381038062805580697945193)))
-	(do ((i 0 (+ i 1)))
-	    ((= i 30))
-	  (let ((val (sqrt (/ i (bignum "10")))))
-	    (if (> (magnitude (- val (list-ref sqrts i))) 1e-36)
-		(format-logged #t ";(sqrt ~A) -> ~A ~A~%[~A]~%" (/ i 10) val (list-ref sqrts i) (magnitude (- val (list-ref sqrts i))))))))
-      (set! (*s7* 'bignum-precision) old-prec)))
-      
 
 
 
@@ -68273,68 +68100,62 @@ hi6: (string-app...
  (list "hi" () (integer->char 65) #f #t '(1 2) _ht_ _null_ _c_obj_ 'a-symbol (cons 1 2) (make-vector 3) abs 
        #<eof> '(1 2 3) #\newline (lambda (a) (+ a 1)) #<unspecified> #<undefined>))
 
-(if (not with-bignums)
-    (begin
-      (test (infinite? (exp (expt 2 16))) #t)
-      (test (infinite? (exp (expt 2 54))) #t)
-      (test (infinite? (exp (exp 1e3))) #t)
-      ))
+(unless with-bignums
+  (test (infinite? (exp (expt 2 16))) #t)
+  (test (infinite? (exp (expt 2 54))) #t)
+  (test (infinite? (exp (exp 1e3))) #t))
+
+(when with-bignums
+  (let ((val1 (* 1000 (- (exp 30) 10686474581524)))
+	(val2 (* 1000 (- (exp (bignum "30")) 10686474581524))))
+    (if (> (abs (- val1 val2)) 1)
+	(format-logged #t "(exp 30): ~A ~A~%" val1 val2)))
+  (num-test (exp (* 172.60813659204 (log 172.60813659204))) 1.364508485146898675293943657160611234948E386) ; not inf!
+  (num-test (exp 800.0) 2.726374572112566567364779546367269757963E347)
+  (num-test (exp -800.0) 3.667874584177687213455495654260798215465E-348)
+  (num-test (exp 100) 2.688117141816135448412625551580013587359E43)
+  (num-test (exp 50.0) 5.184705528587072464087453322933485384827E21)
+
+  (let-temporarily (((*s7* 'bignum-precision) 500))
+    (let ((exps (list  ; table[Exp[k/10], {k, 0, 30}]
+		 1.00000000000000000000000000000000000000000000000000000000000000000000
+		 1.10517091807564762481170782649024666822454719473751871879286328944096
+		 1.22140275816016983392107199463967417030758094152050364127342509859920
+		 1.34985880757600310398374431332800733037829969735936580304991798993961
+		 1.49182469764127031782485295283722228064328277393742528159563315007236
+		 1.64872127070012814684865078781416357165377610071014801157507931164066
+		 1.82211880039050897487536766816286451338223880854643538632054747658881
+		 2.01375270747047652162454938858306527001754239414586731156898930087978
+		 2.22554092849246760457953753139507675705363413504848459611858395555662
+		 2.45960311115694966380012656360247069542177230644008302074854573665746
+		 2.71828182845904523536028747135266249775724709369995957496696762772407
+		 3.00416602394643311205840795358867239328268102601627276212975286052863
+		 3.32011692273654748953076742960164432007363176479282675728202180154077
+		 3.66929666761924422045748991601148625143151888455755146725622649459660
+		 4.05519996684467458722410889522862025216756114168404107165223289450693
+		 4.48168907033806482260205546011927581900574986836966705677265008278593
+		 4.95303242439511480365428635642396425641303112355664964787158190112430
+		 5.47394739172719976079086266300909670070076114490748605875498633804484
+		 6.04964746441294608373102395302772533816116344511729126161486476549696
+		 6.68589444227926941607253072769286145380311864710852264561241990317501
+		 7.38905609893065022723042746057500781318031557055184732408712782252257
+		 8.16616991256765007344972741047863128518315260430523695926385375737882
+		 9.02501349943412092647177716688866402972021659669817926079803719255720
+		 9.97418245481472073995761515690885800147870119368402956369142191697585
+		 11.02317638064160165223793976966780200851716306933940388430829005877357
+		 12.18249396070347343807017595116796618318276779006316131156039834183818
+		 13.46373803500169039775082533258411724479408609657822907153993787261197
+		 14.87973172487283411186899301946839578068879752075547683852481232002013
+		 16.44464677109704987149801601092501556372435769719962288653996273295166
+		 18.17414536944306094267625657412806698753309200930534632364757918918540
+		 20.08553692318766774092852965458171789698790783855415014437893422969884)))
+      (do ((i 0 (+ i 1)))
+	  ((= i 30))
+	(let ((val (exp (/ i (bignum "10")))))
+	  (if (> (magnitude (- val (list-ref exps i))) 1e-36)
+	      (format-logged #t ";(exp ~A) -> ~A ~A~%[~A]~%" (/ i 10) val (list-ref exps i) (magnitude (- val (list-ref exps i))))))))))
 
-(if with-bignums
-    (begin
-      (let ((val1 (* 1000 (- (exp 30) 10686474581524)))
-	    (val2 (* 1000 (- (exp (bignum "30")) 10686474581524))))
-	(if (> (abs (- val1 val2)) 1)
-	    (format-logged #t "(exp 30): ~A ~A~%" val1 val2)))
-      (num-test (exp (* 172.60813659204 (log 172.60813659204))) 1.364508485146898675293943657160611234948E386) ; not inf!
-      (num-test (exp 800.0) 2.726374572112566567364779546367269757963E347)
-      (num-test (exp -800.0) 3.667874584177687213455495654260798215465E-348)
-      (num-test (exp 100) 2.688117141816135448412625551580013587359E43)
-      (num-test (exp 50.0) 5.184705528587072464087453322933485384827E21)))
 
-(if with-bignums
-    (let ((old-prec (*s7* 'bignum-precision)))
-      (set! (*s7* 'bignum-precision) 500)
-      (let ((exps (list  ; table[Exp[k/10], {k, 0, 30}]
-		   1.00000000000000000000000000000000000000000000000000000000000000000000
-		   1.10517091807564762481170782649024666822454719473751871879286328944096
-		   1.22140275816016983392107199463967417030758094152050364127342509859920
-		   1.34985880757600310398374431332800733037829969735936580304991798993961
-		   1.49182469764127031782485295283722228064328277393742528159563315007236
-		   1.64872127070012814684865078781416357165377610071014801157507931164066
-		   1.82211880039050897487536766816286451338223880854643538632054747658881
-		   2.01375270747047652162454938858306527001754239414586731156898930087978
-		   2.22554092849246760457953753139507675705363413504848459611858395555662
-		   2.45960311115694966380012656360247069542177230644008302074854573665746
-		   2.71828182845904523536028747135266249775724709369995957496696762772407
-		   3.00416602394643311205840795358867239328268102601627276212975286052863
-		   3.32011692273654748953076742960164432007363176479282675728202180154077
-		   3.66929666761924422045748991601148625143151888455755146725622649459660
-		   4.05519996684467458722410889522862025216756114168404107165223289450693
-		   4.48168907033806482260205546011927581900574986836966705677265008278593
-		   4.95303242439511480365428635642396425641303112355664964787158190112430
-		   5.47394739172719976079086266300909670070076114490748605875498633804484
-		   6.04964746441294608373102395302772533816116344511729126161486476549696
-		   6.68589444227926941607253072769286145380311864710852264561241990317501
-		   7.38905609893065022723042746057500781318031557055184732408712782252257
-		   8.16616991256765007344972741047863128518315260430523695926385375737882
-		   9.02501349943412092647177716688866402972021659669817926079803719255720
-		   9.97418245481472073995761515690885800147870119368402956369142191697585
-		   11.02317638064160165223793976966780200851716306933940388430829005877357
-		   12.18249396070347343807017595116796618318276779006316131156039834183818
-		   13.46373803500169039775082533258411724479408609657822907153993787261197
-		   14.87973172487283411186899301946839578068879752075547683852481232002013
-		   16.44464677109704987149801601092501556372435769719962288653996273295166
-		   18.17414536944306094267625657412806698753309200930534632364757918918540
-		   20.08553692318766774092852965458171789698790783855415014437893422969884)))
-	(do ((i 0 (+ i 1)))
-	    ((= i 30))
-	  (let ((val (exp (/ i (bignum "10")))))
-	    (if (> (magnitude (- val (list-ref exps i))) 1e-36)
-		(format-logged #t ";(exp ~A) -> ~A ~A~%[~A]~%" (/ i 10) val (list-ref exps i) (magnitude (- val (list-ref exps i))))))))
-      (set! (*s7* 'bignum-precision) old-prec)))
-      
-      
 
 
 ;;; --------------------------------------------------------------------------------
@@ -69122,22 +68943,20 @@ hi6: (string-app...
 (if (not with-bignums) 
     (num-test (log 1 0) 0)) ; since (expt 0 0) is 1
 
-(if with-bignums
-    (begin
-      (num-test (log (expt 2 16382)) 1.135513711193302405887309661372784853823E4)
-      (num-test (log -1.797693134862315699999999999999999999998E308) 7.097827128933839967276924307167005609752E2+3.141592653589793238462643383279502884195E0i)
-      (num-test (log -2.225073858507201399999999999999999999996E-308) -7.083964185322641062168115849912137186655E2+3.141592653589793238462643383279502884195E0i)
-      (num-test (log 69720375229712477164533808935312303556800) 9.40453112293573922460049312446069272415E1)
-      (num-test (log 100.0 (+ 1.0 (bignum "1e-16"))) 4.605170185988091598294419229104461919985E16)
-      (num-test (expt (+ 1.0 (bignum "1e-16")) 4.605170185988091598294419229104461919985E16) 100.0)
-      (num-test (log 100.0 (+ 1.0 (bignum "1e-34"))) 4.60520221864866031976806443342804401709E34)
-      (num-test (expt (+ 1.0 (bignum "1e-34")) 4.60520221864866031976806443342804401709E34) 100.0)
-      (num-test (expt (+ 1 1e-16) (log 100.0 (+ 1 1e-16))) 100.0)
-      (num-test (+ 100 (expt 10.0 35) (- (expt 10.0 35))) 100.0)
-      (num-test (log 1/9223372036854775808 2) -63) 
-      (num-test (log 9223372036854775808 2) 63)
-      (num-test (log 9223372036854775807/9223372036854775806 9223372036854775806/9223372036854775807) -9.999999999999999999999999999999999999647E-1)
-      ))
+(when with-bignums
+  (num-test (log (expt 2 16382)) 1.135513711193302405887309661372784853823E4)
+  (num-test (log -1.797693134862315699999999999999999999998E308) 7.097827128933839967276924307167005609752E2+3.141592653589793238462643383279502884195E0i)
+  (num-test (log -2.225073858507201399999999999999999999996E-308) -7.083964185322641062168115849912137186655E2+3.141592653589793238462643383279502884195E0i)
+  (num-test (log 69720375229712477164533808935312303556800) 9.40453112293573922460049312446069272415E1)
+  (num-test (log 100.0 (+ 1.0 (bignum "1e-16"))) 4.605170185988091598294419229104461919985E16)
+  (num-test (expt (+ 1.0 (bignum "1e-16")) 4.605170185988091598294419229104461919985E16) 100.0)
+  (num-test (log 100.0 (+ 1.0 (bignum "1e-34"))) 4.60520221864866031976806443342804401709E34)
+  (num-test (expt (+ 1.0 (bignum "1e-34")) 4.60520221864866031976806443342804401709E34) 100.0)
+  (num-test (expt (+ 1 1e-16) (log 100.0 (+ 1 1e-16))) 100.0)
+  (num-test (+ 100 (expt 10.0 35) (- (expt 10.0 35))) 100.0)
+  (num-test (log 1/9223372036854775808 2) -63) 
+  (num-test (log 9223372036854775808 2) 63)
+  (num-test (log 9223372036854775807/9223372036854775806 9223372036854775806/9223372036854775807) -9.999999999999999999999999999999999999647E-1))
 
 (let ((logs-1 (list
 	       -4.60517018598809136803598290936872841520220297725754595206665580193514
@@ -69192,48 +69011,46 @@ hi6: (string-app...
 	    (set! mxerr err))))
     (if (> mxerr 1e-12) (format-logged #t "log err: ~A~%" mxerr))))
 
-(if with-bignums
-    (let ((old-prec (*s7* 'bignum-precision)))
-      (set! (*s7* 'bignum-precision) 500)
-      (let ((logs (list ; table[Log[k/10 + 1.0], {k, 0, 30}]
-		   0.00000000000000000000000000000000000000000000000000000000000000000000e0
-		   0.09531017980432486004395212328076509222060536530864419918523980816300
-		   0.18232155679395462621171802515451463319738933791448698394272645165670
-		   0.26236426446749105203549598688095439720416645613143414038571760969589
-		   0.33647223662121293050459341021699209011148337531334346654674225846340
-		   0.40546510810816438197801311546434913657199042346249419761401432414410
-		   0.47000362924573555365093703114834206470089904881224804044939213700600
-		   0.53062825106217039623154316318876232798710152395697181126390983691471
-		   0.58778666490211900818973114061886376976937976137698118155674077580080
-		   0.64185388617239477599103597720348932963627777267035584250463233544172
-		   0.69314718055994530941723212145817656807550013436025525412068000949339
-		   0.74193734472937731248260652568134122668347379877583766416075658260750
-		   0.78845736036427016946118424473894166029610549966889945330591981765639
-		   0.83290912293510400678876137712583191084127882621166276596530747651542
-		   0.87546873735389993562895014661269120127288947227474223806340646115010
-		   0.91629073187415506518352721176801107145010121990826246779196788198078
-		   0.95551144502743636145272810833913096527966659049168939450639761918928
-		   0.99325177301028339016774425608321290634137018483947537917075509994491
-		   1.02961941718115823992182553167516865818698350967359872066742226795679
-		   1.06471073699242834316528057767754739789341142529397110288834245067520
-		   1.09861228866810969139524523692252570464749055782274945173469433363749
-		   1.13140211149110056191117286985799300284883744185181899572339017150740
-		   1.16315080980568086306816915260651863277639918317250329457007214649939
-		   1.19392246847243455143919736020329079686809592313139365091993414180049
-		   1.22377543162211570564877528464693889606260165831722706538458984640811
-		   1.25276296849536799568812062198500316156158459522160593433871014044418
-		   1.28093384546206431760696326207704033784487989573723643567742078529420
-		   1.30833281965017876035010421634708295629897609853886318761158478022541
-		   1.33500106673234008540826809866166589771177790703061109662531234493511
-		   1.36097655313560074343074122380348010185165701395418359212041194333338
-		   1.38629436111989061883446424291635313615100026872051050824136001898678)))
-	
-	(do ((i 0 (+ i 1)))
-	    ((= i 30))
-	  (let ((val (log (+ (/ i (bignum "10")) (bignum "1.0")))))
-	    (if (> (magnitude (- val (list-ref logs i))) 1e-36)
-		(format-logged #t ";(log ~A) -> ~A ~A~%[~A]~%" (+ 1.0 (/ i 10)) val (list-ref logs i) (magnitude (- val (list-ref logs i))))))))
-      (set! (*s7* 'bignum-precision) old-prec)))
+(when with-bignums
+  (let-temporarily (((*s7* 'bignum-precision) 500))
+    (let ((logs (list ; table[Log[k/10 + 1.0], {k, 0, 30}]
+		 0.00000000000000000000000000000000000000000000000000000000000000000000e0
+		 0.09531017980432486004395212328076509222060536530864419918523980816300
+		 0.18232155679395462621171802515451463319738933791448698394272645165670
+		 0.26236426446749105203549598688095439720416645613143414038571760969589
+		 0.33647223662121293050459341021699209011148337531334346654674225846340
+		 0.40546510810816438197801311546434913657199042346249419761401432414410
+		 0.47000362924573555365093703114834206470089904881224804044939213700600
+		 0.53062825106217039623154316318876232798710152395697181126390983691471
+		 0.58778666490211900818973114061886376976937976137698118155674077580080
+		 0.64185388617239477599103597720348932963627777267035584250463233544172
+		 0.69314718055994530941723212145817656807550013436025525412068000949339
+		 0.74193734472937731248260652568134122668347379877583766416075658260750
+		 0.78845736036427016946118424473894166029610549966889945330591981765639
+		 0.83290912293510400678876137712583191084127882621166276596530747651542
+		 0.87546873735389993562895014661269120127288947227474223806340646115010
+		 0.91629073187415506518352721176801107145010121990826246779196788198078
+		 0.95551144502743636145272810833913096527966659049168939450639761918928
+		 0.99325177301028339016774425608321290634137018483947537917075509994491
+		 1.02961941718115823992182553167516865818698350967359872066742226795679
+		 1.06471073699242834316528057767754739789341142529397110288834245067520
+		 1.09861228866810969139524523692252570464749055782274945173469433363749
+		 1.13140211149110056191117286985799300284883744185181899572339017150740
+		 1.16315080980568086306816915260651863277639918317250329457007214649939
+		 1.19392246847243455143919736020329079686809592313139365091993414180049
+		 1.22377543162211570564877528464693889606260165831722706538458984640811
+		 1.25276296849536799568812062198500316156158459522160593433871014044418
+		 1.28093384546206431760696326207704033784487989573723643567742078529420
+		 1.30833281965017876035010421634708295629897609853886318761158478022541
+		 1.33500106673234008540826809866166589771177790703061109662531234493511
+		 1.36097655313560074343074122380348010185165701395418359212041194333338
+		 1.38629436111989061883446424291635313615100026872051050824136001898678)))
+      
+      (do ((i 0 (+ i 1)))
+	  ((= i 30))
+	(let ((val (log (+ (/ i (bignum "10")) (bignum "1.0")))))
+	  (if (> (magnitude (- val (list-ref logs i))) 1e-36)
+	      (format-logged #t ";(log ~A) -> ~A ~A~%[~A]~%" (+ 1.0 (/ i 10)) val (list-ref logs i) (magnitude (- val (list-ref logs i))))))))))
 	
 (test (log) 'error)
 (test (log "hi") 'error)
@@ -70204,30 +70021,29 @@ hi6: (string-app...
 (num-test (expt (sqrt 2) (+ (sqrt 2) 1)) (* (sqrt 2) (expt (sqrt 2) (sqrt 2))))
 (num-test (expt (expt (sqrt 2) (sqrt 2)) (sqrt 2)) 2)
 
-(if (not with-bignums)
-    (begin
-      (num-test (expt (+ 1 (/ 1000000)) 100) 1.0001000049501534764)
-      (num-test (expt (+ 1 (/ 1000000000)) 100000000) 1.1051709271646142850)
-      (num-test (expt (+ 1 (/ 1000000000)) 10000000000) 2.20264839094613347809362152246750859877E4)
-      (test (infinite? (expt 3/4 most-negative-fixnum)) #t)
-      (num-test (expt 4/3 most-negative-fixnum) 0)
-      (num-test (expt 1.0 most-negative-fixnum) 1.0)
-      (num-test (expt -1.0 most-negative-fixnum) 1.0)
-      (num-test (expt 1.0 most-positive-fixnum) 1.0)
-      (num-test (expt -1.0 most-positive-fixnum) -1.0)
-      (num-test (expt -1.0 (+ (expt 2 53) 1)) -1.0)
-      (num-test (expt -1.0 (- 1 (expt 2 54))) -1.0)
-      (num-test (expt -1.0 (expt 2 54)) 1.0)
-      (num-test (expt 2.0 (- (expt 2 53))) 0.0)
-      (num-test (expt 2 most-negative-fixnum) 0)
-      (test (nan? (expt 1/0 0)) #t)
-      (test (nan? (expt (complex 0 1/0) 0)) #t)
-      (test (nan? (expt (complex 1/0 1/0) 0)) #t)
-      (test (nan? (expt (complex 1/0 0) 0)) #t)
-      (num-test (expt most-negative-fixnum 8) 5.237424972633826992021103514924158643547E151)
-      (num-test (expt most-negative-fixnum 2) 8.5070591730234615865843651857942052864E37)
-      (num-test (expt most-negative-fixnum -1) -1.084202172485504434007452800869941711426E-19)
-      (num-test (expt most-negative-fixnum -2) 1.175494350822287507968736537222245677819E-38)))
+(unless with-bignums
+  (num-test (expt (+ 1 (/ 1000000)) 100) 1.0001000049501534764)
+  (num-test (expt (+ 1 (/ 1000000000)) 100000000) 1.1051709271646142850)
+  (num-test (expt (+ 1 (/ 1000000000)) 10000000000) 2.20264839094613347809362152246750859877E4)
+  (test (infinite? (expt 3/4 most-negative-fixnum)) #t)
+  (num-test (expt 4/3 most-negative-fixnum) 0)
+  (num-test (expt 1.0 most-negative-fixnum) 1.0)
+  (num-test (expt -1.0 most-negative-fixnum) 1.0)
+  (num-test (expt 1.0 most-positive-fixnum) 1.0)
+  (num-test (expt -1.0 most-positive-fixnum) -1.0)
+  (num-test (expt -1.0 (+ (expt 2 53) 1)) -1.0)
+  (num-test (expt -1.0 (- 1 (expt 2 54))) -1.0)
+  (num-test (expt -1.0 (expt 2 54)) 1.0)
+  (num-test (expt 2.0 (- (expt 2 53))) 0.0)
+  (num-test (expt 2 most-negative-fixnum) 0)
+  (test (nan? (expt 1/0 0)) #t)
+  (test (nan? (expt (complex 0 1/0) 0)) #t)
+  (test (nan? (expt (complex 1/0 1/0) 0)) #t)
+  (test (nan? (expt (complex 1/0 0) 0)) #t)
+  (num-test (expt most-negative-fixnum 8) 5.237424972633826992021103514924158643547E151)
+  (num-test (expt most-negative-fixnum 2) 8.5070591730234615865843651857942052864E37)
+  (num-test (expt most-negative-fixnum -1) -1.084202172485504434007452800869941711426E-19)
+  (num-test (expt most-negative-fixnum -2) 1.175494350822287507968736537222245677819E-38))
 
 (num-test (expt 1 most-negative-fixnum) 1)
 (num-test (expt -1 most-negative-fixnum) 1)
@@ -70307,26 +70123,23 @@ hi6: (string-app...
       ys))
    xs))
 
-(if with-bignums
-    (begin
-      ;; from Knuth IIp245(3rd)
-      (let* ((f (lambda (x) (/ (- 1 (expt x 107)) (- 1 x))))
-	     (g (lambda (y) (f (* (- 1/3 (* y y)) (+ 3 (* 3.45 y y))))))
-	     (gx (lambda (y) (+ 107 (* -10491.35 y y) (* 659749.9625 y y y y) (* 30141386.26625 (expt y 6))))))
-	(do ((i 3 (+ i 1)))
-	    ((> i 10))
-	  (let ((g1 (g (expt 10 (- i))))
-		(g2 (gx (expt 10 (- i)))))
-	    (let ((diff (abs (- g1 g2))))
-	      (if (or (nan? diff) (> diff (expt 10 (- -7 i))))
-		  (format-logged #t ";g(1e-~D) -> ~A ~A, diff: ~A~%" i g1 g2 (abs (- g1 g2))))))))
-      
-      (let ((p (lambda (x y) (+ (* 2 y y) (* 9 x x x x) (* -1 y y y y)))))
-	(num-test (p 408855776 708158977) 1))
-      (let ((p (lambda (x y) (+ (* 2 y y) (* (- (* 3 x x) (* y y)) (+ (* 3 x x) (* y y)))))))
-	(num-test (p 408855776 708158977) 1))
-      
-      ))
+(when with-bignums
+  ;; from Knuth IIp245(3rd)
+  (let* ((f (lambda (x) (/ (- 1 (expt x 107)) (- 1 x))))
+	 (g (lambda (y) (f (* (- 1/3 (* y y)) (+ 3 (* 3.45 y y))))))
+	 (gx (lambda (y) (+ 107 (* -10491.35 y y) (* 659749.9625 y y y y) (* 30141386.26625 (expt y 6))))))
+    (do ((i 3 (+ i 1)))
+	((> i 10))
+      (let ((g1 (g (expt 10 (- i))))
+	    (g2 (gx (expt 10 (- i)))))
+	(let ((diff (abs (- g1 g2))))
+	  (if (or (nan? diff) (> diff (expt 10 (- -7 i))))
+	      (format-logged #t ";g(1e-~D) -> ~A ~A, diff: ~A~%" i g1 g2 (abs (- g1 g2))))))))
+  
+  (let ((p (lambda (x y) (+ (* 2 y y) (* 9 x x x x) (* -1 y y y y)))))
+    (num-test (p 408855776 708158977) 1))
+  (let ((p (lambda (x y) (+ (* 2 y y) (* (- (* 3 x x) (* y y)) (+ (* 3 x x) (* y y)))))))
+    (num-test (p 408855776 708158977) 1)))
 
 (let ((top-exp 60))  
   (let ((happy #t))
@@ -71104,28 +70917,24 @@ hi6: (string-app...
 	(begin (display "(- (atanh (tanh 1)) 1) = ") (display (- (atanh tanh1) 1)) (newline)))
     ))
 
-(if with-bignums 
-    (begin
-      (let ((old-precision (*s7* 'bignum-precision)))
+(when with-bignums 
+  (let-temporarily (((*s7* 'bignum-precision) 512))
 					; these checked against arprec (digits = 512)
-	(set! (*s7* 'bignum-precision) 512)  
-	(num-test (sin (bignum "696898287454081973170944403677937368733396.0")) -0.01999904696709900707248379699203543861700131080741493395453090012397)
-	(num-test (cos (bignum "696898287454081973170944403677937368733396.0")) -0.99979999906001588673892554498680272502063995303949755633430660411025)
-	(num-test (tan (bignum "696898287454081973170944403677937368733396.0")) 0.02000304759542063815661565629241173304757896817099118262507840447691)
-	(num-test (log (bignum "696898287454081973170944403677937368733396.0")) 96.34745809783239800899232787971326647885871562509641009125683617504293)
-	(num-test (sqrt (bignum "696898287454081973170944403677937368733396.0")) 8.34804340821298061589146684184612401904558331041225568173326261228620e20)
-	(set! (*s7* 'bignum-precision) old-precision))
-      
-      ;; these can be checked against arprec -- get tables of the others as well
-      ;;	(num-test (sin 31415926535897932384626433832795028841.971693993751058209749445) 6.8290634690588564658126265428876656461078982456442870201741792E-24)
-      ;; this test requires 500 bits of precision
-      (num-test (sin 31415926535897932384626433832795028841) -8.2584214320186030736155068085595298665361290626210864656288000E-1)
-      (num-test (sin 1.0) 0.84147098480789650665250232163029899962256306079837106567275170999191) ; if bignum here
-      
-      ;;	(num-test (cos 31415926535897932384626433832795028841.971693993751058209749445) 9.9999999999999999999999999999999999999999999997668194606778265E-1)
-      ;; 500 bits
-      (num-test (cos 1.0) 5.4030230586813971740093660744297660373231042061792222767009714E-1)
-      ))
+    (num-test (sin (bignum "696898287454081973170944403677937368733396.0")) -0.01999904696709900707248379699203543861700131080741493395453090012397)
+    (num-test (cos (bignum "696898287454081973170944403677937368733396.0")) -0.99979999906001588673892554498680272502063995303949755633430660411025)
+    (num-test (tan (bignum "696898287454081973170944403677937368733396.0")) 0.02000304759542063815661565629241173304757896817099118262507840447691)
+    (num-test (log (bignum "696898287454081973170944403677937368733396.0")) 96.34745809783239800899232787971326647885871562509641009125683617504293)
+    (num-test (sqrt (bignum "696898287454081973170944403677937368733396.0")) 8.34804340821298061589146684184612401904558331041225568173326261228620e20))
+  
+  ;; these can be checked against arprec -- get tables of the others as well
+  ;;	(num-test (sin 31415926535897932384626433832795028841.971693993751058209749445) 6.8290634690588564658126265428876656461078982456442870201741792E-24)
+  ;; this test requires 500 bits of precision
+  (num-test (sin 31415926535897932384626433832795028841) -8.2584214320186030736155068085595298665361290626210864656288000E-1)
+  (num-test (sin 1.0) 0.84147098480789650665250232163029899962256306079837106567275170999191) ; if bignum here
+  
+  ;;	(num-test (cos 31415926535897932384626433832795028841.971693993751058209749445) 9.9999999999999999999999999999999999999999999997668194606778265E-1)
+  ;; 500 bits
+  (num-test (cos 1.0) 5.4030230586813971740093660744297660373231042061792222767009714E-1))
 
 
 
@@ -72142,354 +71951,349 @@ hi6: (string-app...
   (num-test (bes-i0 50.0) 2.93255291463847587034176447517387076592E20) ;2.932553783849336E+20) arprec
   (num-test (bes-i0 100.0) 1.073751199431789167620943174959211991306E42))
 
-(if (not with-bignums)
-    (begin
-      (num-test (* 1/9223372036854775807 1/9223372036854775806) 1.1754943508223e-38)
-      (num-test (* 1/98947 2/97499 3/76847 4/61981 5/59981 6/66601) 3.9223808052178e-27)
-      (num-test (* 1/98947 2/97499 3/76847 4/61981 5/59981) 4.3539080668052e-23)
-      (num-test (* 1/98947 2/97499 3/76847 4/61981) 5.2230351951008e-19)
-      (num-test (* 500009/500029 500057/500041 500083/500069) 1.00001999432878)
-      (num-test (* 98947 2/97499 76847 4/61981 5/59981) 304151204360/362470312515139) ;0.00083910652502692
-      
-      (num-test (* 256 2048 35184372088832) 1.8446744073709551616E19)
-      (num-test (* 64 67108864 4294967296) 1.8446744073709551616E19)
-      (num-test (* 65535/131072 2305843009213693952 1048576/524287) 2.30581222282939585599978637654567059645E18)
-      ))
-
-(if with-bignums
-    (begin
-      (let ((twos (make-vector 30)))
-	(do ((i 0 (+ i 1))
-	     (t2 1 (* t2 8)))
-	    ((= i 30))
-	  (set! (twos i) t2))
-	(do ((i 0 (+ i 1)))
-	    ((= i 29))
-	  (if (not (= (twos (+ i 1)) (* 8 (twos i))))
-	      (format-logged #t "~A * 8 -> ~A (~A)~%" (twos i) (* 8 (twos i)) (twos (+ i 1))))
-	  (if (not (= (+ (twos (+ i 1)) (* 8 (twos i))) (* 2 (twos (+ i 1)))))
-	      (format-logged #t "~A + ~A -> ~A (~A)~%" (* 8 (twos i)) (twos (+ i 1)) (* 2 (twos (+ i 1)))))
-	  (if (not (= (/ (twos (+ i 1)) (twos i)) 8))
-	      (format-logged #t "~A / ~A = ~A (8)~%" (twos (+ i 1)) (twos i) (/ (twos (+ i 1)) (twos i))))
-	  (if (not (= (- (twos (+ i 1)) (* 8 (twos i))) 0))
-	      (format-logged #t "~A - ~A -> ~A (0)~%" (* 8 (twos i)) (twos (+ i 1)) (- (twos (+ i 1)) (* 8 (twos i)))))))
-
-      (letrec ((factorial (lambda (n i) (if (positive? n) (factorial (- n 1) (* i n)) i))))
-	(num-test (/ (factorial 100 1) (factorial 99 1)) 100)
-	(num-test (/ (factorial 1000 1) (factorial 999 1)) 1000)
-	(num-test (factorial 100 1) 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000)
-	(num-test (factorial 200 1) 788657867364790503552363213932185062295135977687173263294742533244359449963403342920304284011984623904177212138919638830257642790242637105061926624952829931113462857270763317237396988943922445621451664240254033291864131227428294853277524242407573903240321257405579568660226031904170324062351700858796178922222789623703897374720000000000000000000000000000000000000000000000000)
-	
-	(num-test (* (factorial 3 1) (factorial 5 1) (factorial 7 1)) (factorial 10 1)))
-
-      (num-test (* 30370004999 30370004999) 922337203639284990001)
-      
-      (num-test (* 12345678901234567890 1e-19) 1.234567890123456789E0)
-      (num-test (* 12345678901234567890123456789 1e-29) 1.2345678901234567890123456789e-1)
-      (num-test (* -1.797693134862315699999999999999999999998E308 -9223372036854775808) 1.658079259093488393947175407121858559998E327)
-      (num-test (* -1/21 -1/2432902008176640000) 1/51090942171709440000)
-      (num-test (* -1/21 1/2432902008176640000) -1/51090942171709440000)
-      (num-test (* -1/2432902008176640000 -1/21) 1/51090942171709440000)
-      (num-test (* -1/2432902008176640000 1/21) -1/51090942171709440000)
-      (num-test (* -1/2432902008176640000 2432902008176640000) -1)
-      (num-test (* -21 -2432902008176640000) 51090942171709440000)
-      (num-test (* -21 2432902008176640000) -51090942171709440000)
-      (num-test (* -2432902008176640000 -21) 51090942171709440000)
-      (num-test (* -2432902008176640000 21) -51090942171709440000)
-      (num-test (* -524288 -17600000000000) 9227468800000000000)
-      (num-test (* -9223372036854775808 -9223372036854775808) 85070591730234615865843651857942052864)
-      (num-test (* -9223372036854775808 9223372036854775807 -9223372036854775808) 784637716923335095394403086170723686146950778700062261248)
-      (num-test (* 0+1e20i 0+1e20i) -1e40)
-      (num-test (* 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23) 25852016738884976640000)
-      (num-test (* 1.0e70+i 1.0e70-i) 1.0e140)
-      (num-test (* 1/1024 -1/9765625 -1/512 1/1953125) 1/10000000000000000000)
-      (num-test (* 1/1024 1/9765625 1/512 1/1953125) 1/10000000000000000000)
-      (num-test (* 1/21 -1/2432902008176640000) -1/51090942171709440000)
-      (num-test (* 1/21 1/2432902008176640000) 1/51090942171709440000)
-      (num-test (* 1/2432902008176640000 -1/21) -1/51090942171709440000)
-      (num-test (* 1/2432902008176640000 1/21) 1/51090942171709440000)
-      (num-test (* 1/256 1/256 1/256 1/256 1/256 1/256 1/256 -1/128) (/ most-negative-fixnum))
-      (num-test (* 1/9223372036854775807 1/9223372036854775806) 1/85070591730234615838173535747377725442)
-      (num-test (* 1/98947 2/97499 3/76847 4/61981 5/59981 6/66601) 720/183561983334767209753061626751) 
-      (num-test (* 1/98947 2/97499 3/76847 4/61981 5/59981) 120/2756144552405627689570151)
-      (num-test (* 1000000.0 (+ 1.0 1.2345e-10 -1.0)) 1.2345e-4)
-      (num-test (* 1000000.0 (- 1.0 -1.2345e-10 1.0)) 1.2345e-4)
-      (num-test (* 1000000000 1000000000 1000000000) 1000000000000000000000000000)
-      (num-test (* 1024 -9765625 512 -1953125) 10000000000000000000)
-      (num-test (* 1024 9765625 512 1953125) 10000000000000000000)
-      (num-test (* 132120577/12 33292289/6 260046847/4) 1143841133453061178785791/288)
-      (num-test (* 2 12345678901234567890+12345678901234567890i) 2.469135780246913578E19+2.469135780246913578E19i)
-      (num-test (* 2.0e-170 3.0e-170 4.0e170 5.0e170) 120.0)
-      (num-test (* 21 -2432902008176640000) -51090942171709440000)
-      (num-test (* 21 2432902008176640000) 51090942171709440000)
-      (num-test (* 2432902008176640000 -21) -51090942171709440000)
-      (num-test (* 2432902008176640000 21) 51090942171709440000)
-      (num-test (* 4.0e170 5.0e170 2.0e-170 3.0e-170) 120.0)
-      (num-test (* 4294967296 4294967296) 18446744073709551616)
-      (num-test (* 500009/500029 500057/500041 500083/500069) 125037252995542579/125034753009582041)
-      (num-test (* 524288 -19073486328125) -10000000000000000000)
-      (num-test (* 524288 -19073486328125) -10000000000000000000)
-      (num-test (* 524288 17600000000000) 9227468800000000000)
-      (num-test (* 9223372036854775807 -9223372036854775808) -85070591730234615856620279821087277056)
-      (num-test (* 9223372036854775807 9223372036854775807) 85070591730234615847396907784232501249)
-      (num-test (* 98947 2/97499 76847 4/61981 5/59981) 304151204360/362470312515139)
-      (num-test (* 8736/53718 63349/36593 2595/65149 64793/55654 43939/26485) 1390659088083157464/64205855201422018751)
-      (num-test (* 54969/62648 20435/1782 23198/40155 17874/3641 36734/7395 36402/62041) 13827254253801875273/166253154009320895)
-      (num-test (* 60943/34150 48303/50035 11510/48029 47829/30632 32873/18834 22417/2481 33058/12503 17309/26655) 1265424338804436192426278624740533/72495658400472874898571063803000)
-      (num-test (* 27004/45232 47028/36314 65506/17434 26523/52475 51611/16322 12090/12813 11405/42722) 3271229108161979601346009209/2797073684091589444785715868)
-      (num-test (* 49543/13313 13047/51213 291/3256 62128/1256 22252/50000 6721/49922 20433/22341) 13848375453906602673519/60295540932769356700000)
-      (num-test (* 24886/21411 24103/16998 16669/52061 10869/30910 63499/50270 23235/64564 6966/28625 26608/32424 957/55396 36661/63680) 252953666671747144783991553669663/1509848199529034284126219405993600000)
-      (num-test (* 10658/5373 33874/4120 50218/27624 32003/31997 36890/5232 20975/22222 42566/23821 32593/38877) 79446367034396970532424018904275/268718417239101417993099877056)
-      (num-test (* 47540/33937 9597/40213 20965/57592 33167/35761 51930/46345 5554/50786 22141/42957 38576/15987 33878/10223) 94287693697494661741863470671584800/1654020197364120441179131115365910721)
-      (num-test (* 25521/34695 63478/8947 53875/28904 102/42469 1068/32213 42994/18166 58634/22402 26266/21149 46345/3896 12489/21331) 2213218340996076291055274962125/53325428353972306616141560355198)
-      (num-test (* 40953/64127 12327/6961 22167/29019 49635/32796 7657/16493 22904/2449 61975/28667 20516/6004) 4090451708614082328368601750/97539662436128754819974369)
-      (num-test (* 10109/23696 35613/28646 25222/28402 1339/25272 54032/1074 54456/39833 38346/15060 41802/41388 56761/38781 54798/1261) 8983158114946791370557093367421339/31998667830808722335250880339080)
-      (num-test (* 3039/17717 46858/6352 49984/23638 8924/34958 34932/46369 4022/13488 38433/34538 46750/2645 43883/61392) 6694310491567033247725656525/3103280388958588906030059796)
-      (num-test (* 31536/12807 62185/56296 30389/6526 53321/20781 58342/28759 39269/53225) 108723306155880938114002/2235179806925856029655)
-      (num-test (* 58784/29145 14245/16217 32388/51826 46401/13774 59002/56853 35615/17085 41786/53891 41646/4047 49564/4554 33807/36767) 2545383335773830668541245993741980009984/3950524525412306420222230035841219227)
-      (num-test (* 39890/59976 16641/39135 36632/15382 4037/16674 32789/39049 5621/24393 7230/37552) 4325746891228381220240705/712068637373286863948894448)
-      (num-test (* 64658/532 12056/22843 48004/41965 17525/20404 46987/34608 39890/37132 32167/52059 26352/16429 62428/21665 39941/30015 19743/16456) 24452413077816850567396233613920457829/58345020552056693855433778720676771)
-      (num-test (* 46215/56564 13217/15837 35488/45940 34754/59356 39024/37453 37845/19747 12129/17699 11475/23380 3024/11313) 9665517455334091811247537600/174562349461714107552224378659)
-      (num-test (* 20849/43211 44644/8350 39144/3119 26169/58795 48540/58870 53603/35775 50387/50026) 1503119635914748931419827344/83828469729567613584821875)
-
-      (num-test (* -1412797070596191471 -15492755620416346417) 21888119755986895161222137392796809407)
-      (num-test (* 16686841096925954110 1491135775021813104) 24882345731730524499708005167300657440)
-      (num-test (* 13262412958100188045 -18379071970155621919) -243750842254847872704698616507823758355)
-      (num-test (* 889503034794263569 -16600674457216690894) -14766350309325860687849239111838240686)
-      (num-test (* 3148165694020236318 -11771070679825280729) -37057280896113409834434531491271315822)
-      (num-test (* -4443818546267181727 -12001052312087213799) 53330498839175802532024121011435050873)
-      (num-test (* 8305259347214213793 -229351169208067535459370186456659711595) -1904820941859811670566233132773219565154696335396051029835)
-      (num-test (* -18273334758510166901 290047155020180552782039318570071650475) -5300128759437251944808204783222405076790289915320785927975)
-      (num-test (* -703280433697652940 91110448009482115063492795153459771021) -64076195390496041906141380919369524419358692517527451740)
-      (num-test (* 15279634596127882146 -220998726467849290098339792307263567896) -3376779786638352686104608499923871317791563686466157184816)
-      (num-test (* -4472497681184076830 325612942672822430032905460436166528379) -1456303131067722058341139305566346079551678140995111358570)
-      (num-test (* -6180420673489141029 -161157288800853703711204405567379740552) 996019839388256252540244286609069684717518686623358308008)
-      (num-test (* 14044956603588468379 10163190459901171254101452124764637970005230126310661589196828892266636678427020930101076689732526935899135126391465178494895371156141265424428405590113790) 142741568963316278148132287599703960511135825069792278910440475692913696263448088587778211787403889397993501704943449376875999977937418748662459138952952917221024170426846410)
-      (num-test (* 2133283347509865817 10577710515843519541178984366353275630877942729579274295972091544607384358263130633386329706527832990861547566574369528634541156662300858851752195966167381) 22565253698228972909216255630133478029433774404794962869038558824053350969301054394347471181756471783852326407546652836376109109470959746153989521923555764579738243072315277)
-      (num-test (* 7812722507014599311 -5055959518947106416800910724733658104378582281318226107212861190073091017493970778425583956006925004399967175604321778956828368132273155364830637407968648) -39500808728232764770485117356353304373275127104839804121600969932458363071148383405901570717732548020267052999198017578112731079638156026910705662052515278317807704170401528)
-      (num-test (* -17560801708050275829 9842515227842383346577123873881045824143545509071137371075701856197189100217561683579562062872293951325890789283651221922663521213150065638405410634222129) -172842458224605375239887212582262805312641302639067963604956593404910080268476692854082531021580381176489626536608405283010496488558204787140272050713264572452317265305619941)
-      (num-test (* 16743386830114877156 7347065846171565625701636575261347705942035850951855454324853850791855951431141198155170102434274509450315416946729031216385536668189501958761688618635668) 123014765528775807847206414290825117502032199391400884957413813554539073118943905948723779020186281150198999824020769031248882909461419778092564985979904308229718874140000208)
-      (num-test (* 12697192948029671719 -11416780209809507417142822520376617951137069007568339428552592261458272400645205700952156716454820410468812274673183389934216970221062627926131479014990611) -144961061169197993494569769162151457365959287966302572862364500950127981616038900865036521107816831702945678695331078399461327412574397914795455218447174498277798426197230309)
-      (num-test (* 17005139720743105479 -29990519259587469661876904501488342396062731024702923152492275204626478246142153608222329335341363164148761307659972897552084842238285026253664841395295138667328930482145590159132144957515157474957872335043653264146346772142483721767458961320947069718037828473530001033848282453826154763424789967441239969918856795769965946388666154136004597297855416503729657013008165049478441197537144135384444157408972370236442813734429031404855591324183846423588871065272526864866155918285777640819778251612915859290336548446745308788013234099839998683451658620461972798204104633072664604846231692505409653434538208644416538994256) -509992970306921990341332390474393215554862069848994183152714032617297815196921655222705396130464246880845576204295466273071779248718654338767559016551390771145212884412809612574391658668778295682412755916528976282396155832617323980694289208942491001345059122414240884660276842648466533488559879226195446807748573906940273568334343093922652142252689341425941673567630236228358747411926991658260241924294146562230425295426217833820067881064577380516936937782688004146531121831211284735538742160763820814174631414364095096099434285754767091040812242751724012532803037860394426031234340719537172735695313262283511554154662650333168783128624)
-      (num-test (* -15877530153400521290 27863984127681242643954505352420303514833683768731313003271701952957204538094398204984051331105594788039352443762851136101330385230866919393696564428736685568762923746771275677491379334452751710169529933675128178840986001684425353245791752781476028565228371147542431713985092322787978914276414008774443194161599919167210582437024618824616489802661351916633993681556274980075051797120207655478780052593534285265078265845445633803877185868676955831374479850746658711791169579387317321983669227930929736238215792068273805543745311609083833407544342964285215427999724272264458975101474080574470499647168865409458531868592) -442411248181132450919255517905812929771246981404050821923231762557171158858876183536414772404562764742655092127161703706239729646027465795612501446223663310668879007072125975886873343449629108246953385822769744013416908613100114754904323190537317463286500657291202287742354250227377164455244103312266617146454847578457073139633297517170508179596166314955134347046515455569689877574427319658085169791949003021426613961459610227430636932814700361914589752207776142403364490846294795496119883683491811246550808038342285518518431538295199537270236275774546666026424361019715280652576803278928827199810150387207105149968313623040090578323680)
-      (num-test (* -14162897687527555611 -23016403916121951319848021112075986869602408568431399211927062304968548663313037929311574133954267816204873252195499803324830278637331653769648377216095499136975244697758388851688873078022850203685120154634090802825656419418077380419130449990938627982123188424119187922828250625318327074513352279785514062876718714640725789938556578327139793467832731546881422469843509318627826856881082450937188956068348931459011923844607158528494902828851692203126881727638511348944908726926619613375594042390434147948508706733126737304560579515324106834237197081860910657003346633962662773394999353766192391746258372744063777808796) 325978973798843759388794644178802841408656469654887121096165875654577046313115917671847505813174070119516580105483409446057747653173640660143855580491229746795572929387698247460831363721394707501497262525550824977473864621747159715947297817600227665840640555029633517390896890601028716769035575763283168066843141870124768085499453574902575378368669494153555135898430469356384416638130459557518713454927909937610851489821263029886989981438507377741962130296498574556444168140838201069779040087521405032426995145166201901368032136008107323350679784004016321425234898132080844200202007395427054392280809376612533414505539109579739614954356)
-      (num-test (* 10844738523441551664 13010289169828379103330191247192587220592807931898339555723704078985668371901953113936581573750666143303899278973814509164982887504269303358034042953769514772858989849512527461308415676004712388964136857232374888643347097138114199889581495448978914022318770898259317738823514820591042321773469959130347470144905381758960436645008051488666423115693738341045851119808222048272924385188356021826450267608127588500233526688704136268009202730309974485584784539415807259862449203760469406037505772435323036790641520939576046423540699016607317147689982042035523118533555744274806239272109508745089640043900389441390176681340) 141093184161152226992592021994885140117836445291515772908453669279294934817987511015413332614094493905560980363483549300117114491702466085602279965168041684355125886388302948336158133555051817733078300668260616983283027038746214728386770752826764135491650323133831923154477800324207350667020747545837613879364064704092093040155243919335078139087599906324684688427176309081290932504214653249366429592335409761783188358003723753633106574740731573467850133547164922532633897844647383889253777956821171583261238607289172489135768839436605233457738153233579088224808850428203888700116300637190661108848906846940291749737998056247719674749760)
-      (num-test (* -16402132873169057380 8202725117980211375579199554494319645475746305836527475507064811368616698686329266053570766100878145903342129595869654087772486685252653587846560946850102095086896668181099435964053041678323706849735936082196618754721606824996486473796843333331029865501790248862590712245450877098960007272754260813822886287008295409755783478345202299352891066800825979067590290793893933819913530599309037639082839491869155044147367415785329077864525961799400923643936705317921900308490987828345313709179960659814100113658528990241758360711799009722683007157350272749544178688961738222930753008443755881419398858537860612954576778456) -134542187307192759584182063854799850608007421111316277594191532129597970622559949723743396309231347084450105499455916612009290113746722460358793168839937004812915757145655285798961178877391232945062437277255128401572171216279188126380587081673725314534095093062983435026047851041796084651601813918099532876684901239903769891552275465470747567830660442193995685219383258617057944010709906130655663966913354414611799232001438943448374556294933488875450563987147224709383408815994320229340710143082135667640802837699940654151297907451396297241124380508001357553893328703788960812706653503939250831164194874527033594779746890593262611805280)
-      (num-test (* -12094905083549825231 -7303327854122277566083382629094740392048421584433028903125893639493993705575691832165314461496849401726460344615713884253150283931509897329926825128629833541892164122168618243719393446304446866677253728405617434021389128710195093788280203239300086905325641224801020413858421914412156234316517981228056539721130386645649016559425091470643854813419057026759188125291655398451427686659900364573485593902992038773538760663063071699966278379037038361219424927031644750173900916227834573604566165762753650347331082640552394430002401423199016978155236550541225512734287851807727860645247391524620773399994302380387697957581) 88333057189654571362020288527489792875655269960629008914349561689924145109953656394378545526256758871407020025766992398117775520525507898420898102744530402370720932219749861094609497366188371774072368034971851022164946370916317410415503705484491514312339956381120953283812334833067601825812118392757289250628861166579446800637104996060739031010579056633535166403083327528575504427815713481850979373113173151813491831551023902022537957860211597622343157802805275942920911544696695931809085743355666792408029743911424760065578742910735408262758198787195579745280191859776661700139596074108035867940154338953640690242795671183308201526211)
-      (num-test (* -81618231044418675360403541307856740187 9751573706924018395) -795906195858402819552264165081526765614024708979523739865)
-      (num-test (* -167600745660011044249531125104202473984 -12960244919927910377) 2172146712516287908809731894157839567367040369214826131968)
-      (num-test (* 90306383312124738690336097936949488486 156109477991590792) 14097682358164298866835386043901377722456291173827620912)
-      (num-test (* 126202800261728727198105694812165074067 -17404362862588500316) -2196479330029905727399352310201914876903532806486592905172)
-      (num-test (* -80093647977875266525946940496137725572 -9499399805878278852) 760841584053111508349403804472960020663660465509267203344)
-      (num-test (* 304052889577333477963637861956318521374 7233536405885618691) 2199377646072361697737485358722028853038393128548297401434)
-      (num-test (* -124787646062877233829165925777950698937 -125798384154373172164515376683173327013) 15698084237137783175768362160964949930745617334715009097620154581879012485181)
-      (num-test (* 259623502197082370239517374851053110076 307089583871541575627915295134832918432) 79727673252974285068387698133566605944659309374400074880377824560177225320832)
-      (num-test (* -245358177397026033963771466683003477163 -285087883756432161967673595037725276963) 69948643556453419103498093570621669430956866597291662675473644085666220495969)
-      (num-test (* 46731711386059374483493216849082745840 -216522280665540473581476116002923812173) -10118456728713381305690589407461434638634240429858378588644634276171257110320)
-      (num-test (* -301422430661955757433852743238845048860 -737194742467573013847855072675441356) 222207031145790358162820429948896977201848379524899474475604149595884654160)
-      (num-test (* 109781582310220385246795023904554278713 -273317662617851276579672019029762858338) -30005245475518685175699313262818315773200953201653075289648004177366787958994)
-      (num-test (* -312236719893391897821327608828679767006 -661158307192284418474080017860142217763949256471548515134335997907628404839044913830388499435166012788226998900468665646723366842553747501004752506346280) 206437901167986463762021023207669068873036145952740267172145693855475451354717023377588805030022300923600718715029262618794758202955817341818233889201852381575043965927328029955969846754837680)
-      (num-test (* -134379788461141842858846278268259347105 -5535479645589936472405910397299739073641612836770238183712206042659632410776896398062277742229906915852933418684231779996404071421767274180368154310128427) 743856583805332082970350662728998610690268824090148728726850517499798631519601137183443104910590855501252539324674812560702657332874686395923181633958702249128106139207076314713649515720653835)
-      (num-test (* 278271843790644800793473851247546123375 -3845690285506025443856370771250487683891303505653819308540635173436088084480277686684743918745832832765066355874381847690771330587033980524869033600561589) -1070147326395532917564114389205677334125034378502074943828571411806344559859053091006175486397820822872698474899835730026158782698085673635033947150554253148685482702599776833910878579880042875)
-      (num-test (* 22345490710865165412267189692679994671 -13168094845644809414256057134926669929759930873747535851687323456073141938879368460977723280750841588750507348317544461824280674332488497533955177541413394) -294247541053147552931885013427268298282376074124656716577088212043667912662239091316191145352314750820026626159649861330384837204227899202392764926604802655267738710003310052268554637728023374)
-      (num-test (* -223445051950608517881717261787296926498 -2609806601119499724524852022247741111662431776874117401343811680374867931883996125145979162937751368655661775097445043144114599069842524778189198926688379) 583148371568187658089071213924575304457465978545376486297236105670932990897420147110485946155066725440999079357995678147717407410446012970360780626554347417807723098476525833332400212113766742)
-      (num-test (* 12604140228725912459681435851589379433 10671266866958584640992033560488052420339425977492420594983497264069815016478448589306666811246532193922229713077112601565462530332258877522384022088660628) 134502144009302626262781543880199144227907004673612064586081220538754991037447647926963488301214672345398823354945333417956344119228084327815583754032364976497975702972112644238248704660063924)
-      (num-test (* -221289678591114384943252477126208006780 20020996887149770966522122735176842174467884990518978494604707026520269232864200848420530223248762875769520715632742683760311747174524709550334825291720803698613541109690224185041740294906022358446325921538593105347423518731748623037078340006459454656405997570119591344894717789372844612253617591807770017562530034107842444403952657949565007792107071767260484233194674888488789619319597151367813735192433631007526015463229060702510632792171187339118004038505860316305860704455466207113207893106982258864355430481457640304138738182009363353560090082819036973601710432437342931523433079941958203038050750205966472435692) -4430439966231074415853738608900692925851705818190624801199561884242897308817127146763274284287396980593383317678766559004881552228480591814939402896201244425805503258878061459604511214900528594870260206969839682573246490602076070316760182753341371682323914671418233629420599310422437691170629449435494697829163966912842611408632129590129483811802031178053300073562716917597174161526976287351465154825036851645956354853960835948518860624747958440181683978083391663149733813297698623499283645627889274004656942800842013709298338912226207338477579862672216831422765369078886850523202897989792734789430796029206661261129141144642117177625405158700499049991760)
-      (num-test (* 180785619668676509441152734583033930295 -11909038209406834057075682058438206007134213485822042209417443270921391661498900475635417780140585878716264253792335317341527677051828500780153492153490249297998660274828986996948999762620400587091118252205695562417522111840305140989214300921122857271717052213225664738544344394774362885331856170636862181712515248810239601812262573113794334115259873527539564296101166439562124016438281173202196876398090029995104489712272260608848551754611421227761245487365953257890749115194455096508613617028024932657498899001119282498614739316599704645009607294747043489655424155986912576002393048535846081096337705941547991821928) -2152982852345560218506186041143281789706715672110278207735389192913214838321097754496849942223194392302524369156102301165660674797665128931611291246607346536492650554391248756408556789391955568308599431054809433808337036546281323840555452571430884302696950144068129601527530304907460164571704857360215834011779559395577299313379666503707563751314135201994045874159291100986903645360754621200008830207429980872071814202801994486961737459218017354210479544121100423399040398021780750351097082070296255480707530391964970754186799748521538525274241709676878827522138880241734356460339681718690408853314007343934035505873192699052380699509877559455199604508760)
-      (num-test (* -196121729286794751535600080816329923561 31755463535476988506639447113088283661031267977524968610501132544098607201258848456920865390506381665724254592728643925608893982794532243733117636645689751360224314774452374503339856173343683819017479955914451013484169313685311530532055735999039466721411777061709328450052490025363788971916050033904534189719389237878257877112162843506491071470067738867693853480174965212750301808781573369342701195147083717623066339671595077736036738235636996351642097684597005928843274525502529735435418805821748637387888409663397547514467435322454217015563134545731593492200855670248739786405074231658957946422903165662016649229286) -6227936422881500100190187768375947805694946596622670066116457374856427496311253030141271922822486386675428302332027411428470488965226898801659352566022706152307022438261392466548357753526474097246042956052374187605144719189465046544498482461077851578811186829094445089366592317045580466302238653533114619908864036973070346979261546801894831273337217021756025770590122176562027129481076270727248949609326868225755958667670279949371399535144788247565199415296122873444199709788941984099349149684384486618280260678252604631431089580057102263617056951788273430713908768738965854953667135156866028646584137788146112300214498814212865170902491169332389942607446)
-      (num-test (* -149247491509558553673630984739524508601 -9241905448313719916485289537122695595500213295294799660583133638026091750542612875183284894676615989153030773719811347110864468582634048542108726080717551794580656021381515769591713295631818532114918070215760259364277583650102628486861397602958930509695263902920994329409932518607260720657755504091822028630927071374796474717671220452208310602827254296323761245420486376569048549643478954846020045263141546849795367522490793641049509748005893155533480849922847230018411440739584477452313387881413141538766185123978087175960946255649923135634987656065468774634483495944248865774633962770893338531522570776854773975281) 1379331204929344851843348280532786532350930013132149419346606977890849868537539899667631713548510207947097949976792337278764045110931774279794402312944786743575421497528669859045492875676005849752425421867514661792129580445000023570590786705609341859529483054902802038173138834528021423393677908655442991197348183257271932188161681770513283703502340499171444058119260228931558784004778969491586252899270869275893402714040693571919281494643765571068045362364213060063345212881008657925426024923296369533374671614852576576041747836643356665301762059898161073609265572267138950725010661453917338098901465732991316661901878681888138048552901254914604845891881)
-      (num-test (* -246070233154436622785727814428081917418 29761582253452470642591719346200231425423204062498655510037025199574178834762931489817919404889920159374886981199608181795387339523762458361385170203883094308920011218315748466148953320570427838912637152446837553950810011344492780712558515815917745810385725989241835877316836808088478276603934260581342710503593237081689944686263274319354100341139245512159619947319496638082702549196795236216458749363904150768879765280332386830831409591769966706351022328535490587838695167807967607003680703048770719240872629379640571077329748828739281770075441660330884779539288220944313294762143588847790653176774089774033399559617) -7323439484151992757431054484912931979861244043627630118213112440051387392428853497035249623931234821362770902740177541812170377563064854590834087655133962963430877452052749127605572395112726398103244974178157574726551814002744001021805127518246639418981066588073652668879613252372759895389345727455380224104332342029151667860553645106555190741775758687650292791318963679857313030729683299101577207875499929500963723267185390425716927303375831321783415003339099100562942730763231688479910689887284950156875532151104047755803876078837921949287811575034368641167438367411569736575067233548122814012421044943430647665260439418887639347030312118291762161708906)
-      (num-test (* 203826295936164259559522643510940430939 428315860474710981601019542870649234168732095026625500771233691514247613083810271191136212287636290276352210600151884730196161003906066671915478570992925366265552107746965374246537358349673161970290367972281768471743836339191023211359427335141701167253694144280251188008871929010775436125645541749886873478179599464478734149706121117222690271210887178499620737860802605991262799781279373870647695125320153193063528861104479576369448865373971847676465682752435142074973627172566791961541105525781297462635428308325033717669972726101583722868689418677558787287897456521530400671342257419067050354522203242849353639864) 87302035331271280954456598486072605056704393103691656908943847729634903654600322194677794243221825233700566108459784062758955025931450719283517278054268553004951352280583820782976072352456972931479389375165173986780482062859853305469143408707179895843295115510597584169486406323435925707638987591151227843652210256611991940374072593149367903739596883229844326054223707236369465710416960023659329202073724249764308867733476242261506975691004092043954515337899900837434270833782490145948781128533218641649564543508314976001614187701395586824982250794852925954991265270537649691628899148413763865280007928191637215283244406869662872539567459561720369352296)
-      (num-test (* -5899540498246269366107488541138263797694914692322476860852796858749106720144552037986906792251681094769894732746138541066810195167688318229720888479512583 5834015210744942902) -34418009003174534626858248456163154666511779871358190892629413477534042866009573638264296461516598238780495750056279721797403178867717911762916049857737963922333901125535866)
-      (num-test (* -7558198374656605586076446665394545534375963428962439959101805545423930654069723860456022097647139432324162475685494459942871728608277717748075653794546685 -2079670855873590264) 15718564882684481784074014915267371190416032453294568239793060140651422710113447422494938907375595456199203928496644205320139985222135619659630853564447794621716315309474840)
-      (num-test (* -9442744083812363570102321552182535031605446031706376100893354933468482520577272174689455502380973733378565213055641110431767353396963744600184737808983381 -7204974197101757391) 68034727473703353914019458883709211780958983263702756416891835054494728840771498925306650413027883039860202168095834137357212487561983607389479135319040711944281262212918971)
-      (num-test (* -10658732210276096534851972646242288663170038580488752611749460640657411087860047053151548660331707024718100598181073744715506934778234716535781332588396176 9193953347013373121) -97995886679587166046252015742839992974979220158813197140160489510432960510418039749924861744197553021702396544307690217470606424904065359660871469041838900287446937257585296)
-      (num-test (* 3330096979672637104536573277593029682675932033891010715180474877149733802060455951241981993421466123791200840797318740359792251505430948855600408060492000 -9413190658845804679) -31346837782105095097578725347257193539696338226258990009265748336528353873277500144838721882313026604404426563737656928378230261942407473822851842589487713775609448642068000)
-      (num-test (* 2224201331350479188470378485954814766783857696988331736807430786504130570570323948774102396158334805040994159865821844362926631687258969480929122732089195 10226747830478556903) 22746346139936030910929166328517425029735137934434969334578972386859485783192993228082340012742115893176871887387993591191632260444955081663604449277961804869872353878963085)
-      (num-test (* -12394770820700925077767705800588617445613665027183406054209162910642613421436080064653443098327137503596792411463268187212855350864330592654862321763110243 336135860956209890623046930607725140868) -4166326961171213704571179876442248501325782360170764344978629523457550315208845439497110652079907652744850691289494398473488033083739905461347650605270023127087625641779424751335704552988710924)
-      (num-test (* 11792778994619176404079667787533709801900490264171877873621265044313417667869688303207909681289642260521608966405181881416781694320672906600599581862090088 -197661229068721548419113517262926820105) -2330975190212228827672814304508257223671550753091700552243633152084831515892056240354560520878171696176381845689952044935988868477421447557890739834031207059212175922089523097911477486879619240)
-      (num-test (* 11608994516281296345925963401821217560860934641820086911326880657644311461955556832927259499969983808078591149768068360172431078248807463030805586293656663 -40654941048774156019243747229920736005) -471962987694958552110784676392477007070112288398143925079396435246284471999814508543057304008480666763661066976653446723271982094424149279649226771823800871458389214002872916339341019732251315)
-      (num-test (* 4821517917539756801293776911844480642406562140007084392649374723119190602353617113036081438891134008988421494142194891002983491670246762173236312873933599 -255528396376819316172341014108564420589) -1232034741571035406264710387186737842510579499938716343220834781077329515145216794636313459582844773420679078031627466542930137302257934575129329529129776153159694412903937370462708576694469811)
-      (num-test (* 7638751115643228563298483305056828584775811590562130101723525925933790010789130133831569153863129513189315440899053288261039147463032870669035935364282061 114438828287750304954799140618669114911) 874169727255956505920153418854946321208907128396839975975317705220623267360648189969313978740314703015845506506608054761304647627635292132043887080298168302864314697920637105700927041824911571)
-      (num-test (* -3653826017463740005170218884285271512636869606149686475539243914909566619638259666405831445823138528809165270360144267462878986866506114069923299116957450 215752050445782448772085819939961259625) -788320455239949216234629350585027855111249573063377172522422069903710014529292638311216050777840734448624510386643245486023092483841464815987597578151663227035102742664709136512524899527956250)
-      (num-test (* -43242564273985683175827997542883970694363047476880657467026050730764924897992516355909421962249292250047896135687573746158665836208681548975073555418266 4424346097667245771102179669235543742385176589624011161914909311078645828684936231569739522607200308028372644149306431599085361996722603718517735348761218) -191320070498733614136284309000213964486426347688040889144514933290125387693498098446328694172047943298442181705949005984031677324306763731212307716485454004382079159622650481983102917517993601466178931324415483972311904823997211920702201161092866663969163567426868740120661073974542958600768774774949607988)
-      (num-test (* -5093597555679260616199210906198149266592665304134802327659606846977583233938836318559188141955851256260954289429418183711191354912372372976165948043123133 -2240632735861652612028397136046974907251405868353380459030143407902436514978447480884513019736738955326732458088791830752499716417751919868492224207936623) 11412881426559848135724717164530530041659963797467536748076144863846600718211858527283843975968920120508569299672573958424908957105703597501013710262110218780710678312197455759181436286391257283676806548463507528765947919856827004176416634630489598937924092540289712219714362500246928243091408698274649199859)
-      (num-test (* 6049789822056553589237940133475342650218069231558204589924996117723031491205673061674252841792149409384720347601549237626288416453061224734057079515141650 -826416247951451524584060567988229017033981218652490450160817307801130685352465013890931297548015267655971295627931896259998420078888499206031390299169584) -4999644605638856588581238481465237523157457201817697008198975191261856978252081380810200468420738807464233192102972784271159116426108806200426852134469939032473362689081653859652824862066224063273799612269941254948709760659691148103622071316554194507524610166457990087959160807415102946877307193349131573600)
-      (num-test (* -1175978338162966145239180473229656000174129248706173549637767835154921467129547950144109700900405904250603515318348888619371004435353505449762899046094747 8633693716102199391202401198009047492431980605560930404972542822133579985462906768067706391388213605203282586546130434156768523403030127356256666478340720) -10153036788469908062299722391986722149392791936544969945546931764708792252481931153733789787389051773529081688846141949513463792442701686406966696738286561777611293604311491896230769507535896070984747493738525389837795316954065260075941524322954935690803870500012809797698319359975893462672845329776468197840)
-      (num-test (* -5083395547684319640767882199938390155755986838939007846911062687871291096073452055061784159768637502151635665247461348347470360218957222873087414506633886 10813098236568616588240471432239693891825284805405416395976866126102880121934298269375465735278296789484402954117593716698067735458182402220278016922449294) -54967255432446073625448401244836956268872685687128644401372608170106281377801209665004925733448944141633739594240156882328181133879414641109484442890809130544146420476457200729843868300396656004198615619691952536924980482714767859804902602805398865249514544806725162402291122143659939645240358379962457176484)
-      (num-test (* -8944626200084865988157251013718979706166428261352840753194709093968177704853157211364231059892647813839391802007588961807572842923682104089512428902387812 3814836951264415657788614449012480613328314590744410079075164918748648723114236698412482309581077603776489883375576245233128800002373843611668945838558629) -34122290543331565327874124324135450224668275222811493728051290368641401807963502623692504750924543845019291736982354932620821594287780848608647686402233097059022704206628297180782771812500512744911371653368388270442874670230118309469599458827222162362901084328510647514081302476000779049412605744638457029748)
-      (num-test (* 5186176030253526423885531264483408352469356233262336223619904269047786350470477526433506158542551137478071074193659876898065998079440819597952826155782068 21428324964794197485898135923805540163916541943812058590308650649384013587098638034673796533027113673143959572855470411726978105342739938341516634354246514986124789451866589211982659199267654387148420461876524076040233779391563396552267276880650559148637067641021059664960876301072636635299261389450890094318429077561092553337025096293793433968243940381587994428364726938534453507046761494257538813861046058298873206568935790790373886840765817404479239485444563488020955730741209738203470138117422899051269778988135668626686262669881048094388220931264751830393793846372816717368806996496715219806062282836392457741918) 111131065300898907482632501071313138589398597291097276435916516379173430095773463468344138866282820740991088290299992221985607057347883717514843661030457396422379155394966857856069231504805779448809986906434617741485942621643754096548512120178021034054648207248963478122178145159262707381679354401629366698488021743300737044695960363216253889163551918513521913593214414139637549577618641974388739304727218804595402055185824193445089425262833385286117064481648652550355832014346131722965510192584901901111154083186713580209077544982897821477349293279848852596241762198202012197892321827305803333334823616660229870976569043453639028059771892706354703750763908127611939169337399882784092285804830644630059487027413697220038110815990084742241055099963659761569486906596326424)
-      (num-test (* -12615422028124847936088012564413126213419674293830655240645918456932358053670311316461359727921727680491520480380615359506308571290338231702217134487397730 21538722931308708400287621200994476771789912594554241036641406577761480056366647329031140922034590767810855360008375309986798226712928670905618807986829790199948665185268081173685941421700542631395958882077936923141152528333121096909688700106365468854487023847026564219531968849793109908193037522063952753477768381591929787242143631287330811801315216116212154423972654430356675401769729358415036943501470085182304183033246682446978634892995900678975109490698283226559860736462409705544079080978470202336645384768211440438501339641775269445439018148409151795830925198162301321965042997632479354427154223366199106583051) -271720079725309675925162538296715595434811519956795637977932956405490708202732964133816538801099235844279338645471102896234318181092598033040518838847055114923365599862266767493227393553801736813141780001130539648588341196802606083178208108557367013886856183999712817955194261262279080641101769944037282423238147653270651419282545398168930625797556638625301898893565965773914460998322350526545278664715332414172614761548301364063397364632709194713561073496860524124460861314674679928692398440036071116570829193414179054372604203478369755566003622621281005164747628075596444178089558747835994702060740334079222508147598079351187013336751322569865313532407367116553748939535664259669808534100091049960040092785009707220249025633808590643620557093069849490009472441113874230)
-      (num-test (* 10381022953674450046578890619826448644067144294659610359943634722044183130638243233110364436029778310048006743033299956844491228999113516347401915490861208 -20974871685432829994714153210121536409377362402944992609230062091789259307033495284524234519701670462495676590513192861649457148897274608767543942797542628100823017887236899471151903799837558453043431373811892813126194662218472834650841742305925226558315372771353677064933578639099452438843500601586038910108679737480263349221244638463171088589123712367802373159421798288708123925853179931628847579314900787361946716531755600236755527982132768286927549323465697241340003870259800347640599467922823203446834792229595507968354687630029075884034263531531423883902851487995214646322431057626558858528344843531280263328354) -217740624416854507100100919338835880277259264187442792458843251425095703739537223785767883764746809214920580060316177442387941385712712426957388995082877226019966428812240179251716274377143798847348759498926420314709056615470455134468678662646006408843897699718742372199854223008996321568642038054564397441209859567556502098420151667437837356649730396360374136203172669776530655738388121236079327354422138744456395348910073462618440421257604563050031602590345028438897601523520973759458890228893913090702884911857207117714231568437403212806578764580006787626657709435954760239671948147344463295520930250155876010414461245194991189183956653772752290656063730950237649394743456230607077768595983629559996700837383822873994717987698780007691157576205450973669241823945091632)
-      (num-test (* -3984492646329789478973994496812455855595578196959138558282015917391108383154917581748539892089090551298072688793487597623310815918942283997753800645644511 22199897116873160263914990610762123553075230334116099569358672964060004245706770678771431369917479502828754815568950371273785689812698287446020480951417047185190067265849637510591502642000414540862689426343523077229502494771352820057572619644085930901096534031496492870227890836816886496090287321502805172125273822231241073590840684742085641304915656543831190976008986490532066597410386596132766422026234488163435487889876791504407434387555507637783709991326338482319227500686541368087892665100076351075069628862376686619537655838590687615291898971286325099164241688147975845320979841704002364545072665891829427213069) -88455326811459002089798581395024759975871889172872668466370443703433800509268320055453743803627754859670391415348970278548381190662701716228279482045339649051139909543850883613464992501666524385524517648069873862957915620016943364950043289963237718026629805297916194484838158010754666017024585366330526135823515744339445036315966714684052345462172808299142368905939297220895721123725415007532441824406115746741972351142687017849809593982432484296719999502992792447259391592152463664807498752410740679664044620898308783634092355737296495489953554685938970593890496829484673393665321572846542839714620847185428664388282452532264810310019327395691530430185946743995669191791841546685206884247468693248673484055915613115527492005264289557719000245333079386593840592027314259)
-      (num-test (* -10672574004830373997900438516438419278676753890756925443116289034080220708922677740383425352837266631691319394850521121221541344600832530724104047804922665 -7307684417326792807224298894786988180161884427390942431653062127076829842696634441114228528164049031680536693195116703321494895319862805505304314401000204515985676763063862569446064343853536464020413910728442475032187317639476018710375702206456631041987826826225461927793241495220512935434301833094232834266749666697332380140380619185254354273073522191066457437931022783436360434167505326773192959291779779370530770935758482422581712556111319611455306383173529090289274267200543081481693078804068524057891845603351773722737987393428313340760607600482724483853560340630587029610437280601010173185018227638972500038072) 77991802747865927212086621295493124451256238920588746597961055391511562690441964216934615500942858653797884925704270904527938466874924049039962754703188019915846345804228044693122758075602494985337649496117180241872910247079655077012999375809878184011356481981590430241786534827516536543734645410817621964035091467871491521760928486006653992134635010794346993161329777270345449763927429735191213854873362673179799811714902439637861750855639857969259787075469241319618538795721956528400353086156169058060112255274542232054021662809196965752800525093125763127895334967094763817500702626282397394521201385439419885607578137159972521677923972708827090645776826953976605193554447841693259586575931864396484621463004541561908426383260772786784541411548146173991869741515701880)
-      (num-test (* 1420855003086789510813111205540636553863493314684153860389816109865085846062678305775289632805233481596171530412925552158799875183492757047174905459819169 13897739053062356545217161606361735964779941697726983959749295377836209520566715597422965426908191354971972501742952706730523748574796773473606175934144970768662226027157110240776527834790487577863781140089347362129598158760833470434895693782503529955845076709376071972727346128409008293671217324995682020009675316075606538241192607139905488719485728099428376369506685875348346231688684483781160648420909364963718027571565217314827671844485031440079254478598236877074793221578612249882886835580737423192061550370069895525711885220268707201966615936769696379335772521903910689934596134239331592980694745008817040569590) 19746672065138309742065153069587996891492444461032276894328314121573439684229636534026409362850111716212254549198595854140809664451286626009917828620279583631575940837712663100442879662416765138504151063632823014639305658882804073655537352377258786105147057375069447099908107785635606190515362082317465738205179108333064680370909383338688734129396788764959056886328471374018961975554190739706996184818378586233017775166959010668462907838359485424792026496574369912033757997469014639705459505746723512361959074802456098328538419933637295482429555127226978561859965498424173552676019033370307387047798600024901453757451579262061785051932535359410827170361533603618131510421439128567361259204833501190218719779570258541358012741265599985490513564378203502703406698160470710)
-      (num-test (* -25117824099635104147178796272946098711514362630774369209876335291088434247131228189812265510495277875692804180473811834186270331245779845635089547499275113671007257221593872123397418355506777725721168216892830217596134983713752526559153149600553468865338887605949011743043425900799896245185282419637806859906582214420191794114207677635194054239563071023206500505880052007267243210206807805387341085613436600843317096291021780624738422589234020279836961194869688005260369009833026575446099544900581955685627511787510900479881434909308757027825050977932238481841909425598834367032841935054158448815026264505726593064239 7846111496222858966) -197077248428250572361351389692146917243277049539013604789802566767174747369897711991559940484392921619974209620152008632450612546796556905740493507885376190913893140368029841033442857949219716681475253727058707723386016055991276120001690579154370788782636181079931076758384034193266737114305362492836167078199155929937891579224024229182935372106924021709421948701131654358516297806197381566809357458374057189773041520552821330635689748583803171230633654728360451100477472934847975252390985102859262992904778849652221553818627134153578436315973777720706502751232660284910468721430874674021521629540714057383398858244828214000543075116874)
-      (num-test (* -12000343217458212092754251360179138661969968218789048702097501439124892987400633614429800307263114371624489988815324366411323242909652002510513570900627875514001409309670202055060404640758548257776155562167062337394219073071639153822126554525439988062676648294108951003012550815746564810508912122306190725453386412796036693387315128514162061147675205485143205925649214342646148112549805850530430229663418469577245456944558387628002442451042105749848177325651852669794048215063957689756465788955050513359977166122710392613631703123491357791351447110169966270916789849428298930624807758982400706608788793481972190953569 15463017349709835150) -185561515374029078700596518575548896805308728003103939537818954646551372890610870275966055765608887701776880889777402229764948269089126750201922167386201171243298907675542965323275634529293654817279957832652909009385491998537031060285890512199675273422070784691446251899120095880199298512230290860589352290462643231396804350623684034400741386070220057232978556614620855818271117742675632435727751812101639747357642295230273344552327870600519422276996860893842363996198017494117619585153346745838853026029459826407782259598477529242420507010652705302341725948095720110508044256096963772599572721279996322424269691990173052929936294150350)
-      (num-test (* 20244597897909303129995907707212050478823487084391413473821544089492035634291726811145005824559631386634261268723753786161463497881725871168747275110149007801865428978596190887145324535224079986377522166727137028753272158887188902047835658826867304220850429481233026043496635847568448251753504834367809877190895369288045026559783632709799678639927825194847005181499299410953860627694080906167346078299421796974815616608326704894611151743720515377248152215241639534004099341398238713597030368980166731393247619511322804984829747216779359780372801101821087516269912916462719248736442644433057333788741151270815989388229 17931151643499274580) 363008954869078360197158713265773114114991766614027768774402465306840646219477262855625957403406166192075865834283840624408916170935610374573318606346031792128003204902147985329385955814330782527184421959263266167048755628089412213360508944817963403092490479480264538027768728303095523018598016863928762335410109567604756183580676503045557867957273324581082608248341332512325136675167966306268035077761004923732568405295901819511346235524577361289712297365403327125212199451099538443576479787130510546755789504852631291774614010584650672707483555436445926222945298928326313943231688436271883746272589347954697213098866117569339490918820)
-      (num-test (* 18134862906191691435095953372467318196853760384894170022863300447691250350836421337333332682828557871096554531436829166444150586004379181099133295174348038948038399079336722004125999533719492457544642570217406286811480006881054375314838605871238868968956868878182133492469763282800195060849734382249696543089869191257451321764806079423169235271658993054867624410589213892458246001270123109841429271429275464249821855221014782727398959126117031823977229309775211695677345378510417534328974531801634095862859684508240122911023047425473036305928743193594967362216559973174709883576295373749738633873828863608550295977368 15082354452174510460) 273516430292774638949326170314933525797985748367549139070674899956657807928629067317576809269188258819686207094298714770978509118959142516619521080722291318367607601498107007447014759288176261262818034997399866363248136237609824401265450913244758024085739876914482935655100890803279961929047974391299795570244708811454483314898873277493486428279875241232025231140855860469097028388778917980779775554139507550577255217032521719099071084956515691364008526064349956553916033914728254580848198941020806723485184338914882588931083516851849558411503129184026079582257756707601984686901646494090820169212279581209612798749779318126482639269280)
-      (num-test (* 19213874382308276075905228027166553836726993832150876980655958901416537033385379180983129528081628446454583401834309285184752924794893846406622935494758142810049493348116192315865522516744262115026742103678965417868790607689989205765793528434388393584537260717130892518011447327847533083474230074174308157934463971640826422302901570010591182715932658037868980053012095115562188975692530473556182305847290196895478280679341869546292639446526021874910117953225154204035612531584978136604161393474554294315903436682283787080297348697922389355209790646124024053098888687638640826064745026930980189268652291562437512941810 3155416591710364359) 60627778016974262766014671335614995348970065077989108071534610098195400001445248886220725085881796599270026085183075312353388418711598523030563716616967792282609748819081238929738105086199457414615236966895805539596649555457494710621217412773036416007129418290246899690911654008867819945724649185574237527152410775686803449108977881160831441280833577932476667657759420192656716352190871667386955409426879693856001112340390304980532208752863058384169885129364117656404549585836664647784765508649117301622797243353610345828189312360124462238989888436478381583689386509617357901461416012201469794664889076397809504626996523928173064949790)
-      (num-test (* -6561903839860415551587224953276060627466820222543175464705113686962550773423611522044145975606965294164125376820288981286542044306677764776675868357117109664125730405280822770267329297542599719353907954399688197248115043785617436343303277493146049939491224480136371029084354063731401026459653680017632996944506546122253686805764620116169065663214526857151412139439538335533979733329962892417175374550305659302592107472151941922230309227785266745974334776462642676959433923828440435340579340133192678341787895007461237846313005612116885419002449356480017828933592324336731295317076205553526568668826499450826560670163 14908715577157091280) -97829557993133908713082095435440645457469053259814412551982534425389603663024461131358343104414088618618030154957456050473312402460589893359522167472060177968099538846750606564761307960896264958539903740023783283814849937681270591589750181462708056758506230073751440847913386576449367635057595344744119561166438538811561109125506233466453974371464999669336530949393433719456191822836826214814780222021267726528396849558417851727452246676857867278196266042327956933753121947589485377148388716839519782819642328655117625818256334190717182923260613562191698788004591479576661108985313450029332968584240383859113741485244318702724563478640)
-      (num-test (* -10378013547095983701124686671659666242518351347561698092030999302329372512356819420877395264401390796163955327080881297568412490286247154759694714275858127906305200295043241717769593877683535229411640745872559018085757273530771413156968541499388413497221629366848027355125816131586610997516488552323667400115617175682996681969687885201321292153656071894385242141321468096793766926179134511319941715949712230831768643024119693594235207988046511542691719002262040067921088838755337917414526554050602539873232518619281766327369577617796816586064895744680567067970817494102948032924671421242699225194947982378019119315136 30004910492448871409155105619400474385) -311391367570036811050052853596227388481520279736812036769684195465110674594690412517879149770622679377262288447706750813509857551308594851067359841826754786725926298013483569424123912020079066150719085450400229896983461212531213110847425940968466564079253939695853896434719530729030897976597410468081535234663568150722646854183317007227669132983719314653861536414057481478039579810285535699518386214012059191958557306338432321511585867535008319640705419431310336566447165302011113284064246284641707577414470505948868362067233709611758700034131461348997580441628136979257037186480770286846026250437141175360847735150981343952303257191661069675154710791360)
-      (num-test (* 6311357747888359229575837883366949670125882865462293491587368290797766017168248637163030339387377997726585769250585768079027576213724941259801478313127113803503561717311996500019522893295813684259416551410025111443510215766297835872165689077882298506134885487991732718254835036694083204758447948541157893533099634169589161496492972953698758234452126564385255035294546278732684663873459439615228706684138982066055370429797835904846166362278557095045056472775166294675997320598469599722704075215700819354957397052721573993997624711445698656580401684113096559767093466880001548887739825916626416328760047783071058963451 -212654096583990292869707082365869207538) -1342136080095566600483524091094048745061145155430997807005186206704767933140306297188996797343723817220160636373424666345108189275851749622201429179882167381735732553825696482751584102093819432866729465599060815670807282181979889263381844726842751894916887860819210652174987999919869623292751389157233409465756974677789790982740267208982768450215563288024088369480574425410032306456026930809228182100949940216614156925537929648841127727165386031716586596638254705402653861723407930666152691102484352058909219619985877341630210918347460471644327858114815713557305185589162775699323253049631349906791700893878999711846225062306568467992135934882289075693638)
-      (num-test (* 25104391676237653962996674810232896003857294806799086059884413856421530328279649263948893056601611073815235439115612155497964541323584159786678357898152394779494741995735881624055133443980324145256438160990490767324719276757840825641421547232460969806196141938571103617707677351907526127993230143577974386169402623023560579220343920203666762052525898442578990183400559087522259053245822827313206196194989095468393682721753147596892214609346047051670610252732846805143964713621673722554204896154742594858056891979146566683467510164875593192581407047920719605560716270697985110227952698114701527191421628561835164291236 -205991315859231724218751687295926841150) -5171286675233738337789203670843122752625713948587464573381323151628930998435518250812603433784823922283042037694290795352461861058217142213862777203850665369756106838860420507328654214723398688455622487003912073924323587826356928211672752672052670663842775836967587150049181838707784871641183683742967716787111671792311389517753578360293551031540853470719098360013225516593755039537796518619542838794169319227197212817921098393499332268929332950035803734983497370378852859829228973012039890600437082235032378948656232679080766068869430262740600476498399803176452431728914806536862849281928869092524387549297345184969051926149006293586531930828748109161400)
-      (num-test (* -25971587288596053786734900662696128734726180676323130693160397208008930123341700520454723462226657743365779183466120836187720332442041321870351823609046027805781414454998487673927365486893294110931852680018706479684281928396163669935417207859889405108139261480861908067489849403284000981453574189898304616775302917687860062501465417706095450121596418236563421425311420755550335597318818628123183624214438801254105808079227429950505879366254661664881055965092586612702279548151277733307180663770432418397550642136953750720624507617115504303570076531620003848642167562950736271141440609700821621532583527124386811144839 -182748557863603655835821910989658558236) 4746270122419629115710902425435990509747636609113505336611751359043717100752575149404352359855260443259846554733621122684788488984010741203981300775978945529551335641218319619542248418128319220383298229263331638090009313676486209764655429828385994626323209879925281409485074778611946493692237774852428345451174837474328995186242262565013937544898941834362941815633750896882758939509605799422068815435202904271722442099465950700886702949580264958171808372530471918175963644209760378395316412115175988232945569517230829200985652504383431054550902852797293952515652017940918628980037316292352828228005975466732028971159947131994753006597870175664981312344004)
-      (num-test (* 2117427896392849163304163145095251890404997781812823978967013619233450901604407363671467658244435728579079751353560538034596183240362499870272373308111405924505741579887345118857908796509418246599428633956038017783178050402412769812823236255234302205027282366926174916871858199918908361186936687654278623156607813451034087735179167324944824913226799346886951212979149617678949292799645035425029596869092844906629996914674904522806258932192931217652241231736891642224851547474205131131019084734780208254203537633402057673465583362982905095029133132240839391503135932501785844503813910210348239157828902668852795945482 -296778668392678698960782643314222141731) -628407431508980610909134894336322264939705333430111861505965183839156278363647883745193463537783397824947515214540990712455315080515980803996660089847066076833542492719707493333185909990202372284811233272987993068106356248349054482194817336258302692039392400931536481136340269417905505366385505196886218794044229758585631131853635721528813397816307666671727692971421531381290925317161326036075629905443938124481334173158440927555118173661486114828362551889594188958723424604273078091320087897088472418346754088900034854230711982602435635574895960156993014703292551046970069204857846207328434544990709459402656908170089318995291341536347275682867153109342)
-      (num-test (* 24743327715258194976385899813930363006464428087412805068703455203318769863096919192538751530954777047772548306936907016751357570434930538612382851621309732767199276228580401695793317612267605312672263736938703887622824117576912830029817460033437752668221355377879837833796222831371174014543622739933433581963103361464022058091243110136610854806189138108937004805781857031030005354158991203388998364340053773883952742645161560754545458260688560269655272249435540890073696261770299845722705104648358053080678920468895189601731801025555650490534399590288852165862135571140382055044665678298182909026026068995867606241201 309156501491030456401354118244509785044) 7649560631695275371386748526795333430293346807872366006552933839286343590101586516802834568317627508914888989005968805867728947519409222814667350103434422356009252082456906520988877859152125402282765775845766265340707473525444185795403554160270722809642681642831847296672303556012796775586274347178092325226458743113317655523655255626670958156216225968018208281266858684283741496986683426354716284780229004376492833583965647875097951642088252875535823145900129967026856898970545720526282798418382467634180690243423325770596949644122541224189780082061715230852249880601371985342796525016176048518593825361248232406051886794538203297084423942036889326397844)
-      (num-test (* 31345149697924857384985323414506591310628538098830133854928154990821019223495435414394178930529373634315044777562902565397455028894455733092896622048288278424884040917250546068175763309233883078972879622697667174865833277342334219810618450605650614585133187005110148963483824629405555603493157452295284935004578187488673124814714326405406894084902824045787647963172437833905574178160343833139650913077173865287057167288286708807322607983179910358234015596109655900840652230258122852488289951986129788952718105898226951651151495867246384586164892018870981480003722043190639707903266193064807571586900961788679579912089 2067227180806746570739122295766566373146995767544546241400900414826379465803168632854028593293108913670556431832056563218709444199286888840721753894461468) 64797545442006646811970698282511426059102976298051534827345388707272469591333019870381858263624490336448197115781363489554169207652559213486772008013638214870324260793199674746523791257170452738018910619029072942848422098770309928561867618844814267276213608306045020686764830302020953883994906997293368193331696747777630621086600981981357507299729947717565760536305785574555255589190221698706036770081438750974356437738060098906046001271392354762036427049946092656701257615490057677558059955825843182799904828201890893555678855718728417223845757559310912618029462136640226686626513375024547351747669476392735304999046232068947570708757930233036922714350584650744960478326257916948676866148362166017752159953504981324652709881831381637989229842766220141292801807437886652)
-      (num-test (* 1965759082776833678304908699214846485256126608825750175641683294458978302204367346739996602241053060915897480812220051082619942907491598551933638540412113496542245474287364500698693202553692963910123752514310355402167440783023542848697962967771951714434359320001430281377747193083851165947498546085410216620013287853719686698746328198021011905482303248172483782066908570502837009924228011993318265674390462360820566174204659723461994730913995303015012684826295802887547970851558451858623353950391701673651959262042520584275132971807158231859672678070714276061110616753309305801080136339206017351200193800253572481467 -11092241138073130060021642325471345789108575712118027611362686690749327689527135459714040658411176246054106270789083336195599640521602432629024562630323934) -21804673765518097879589124792137157558586438669762099454880024920520894260754279593873244443852337739758694535682558790532827482894104906218015712179591886600693703465749571299271429989154199263793230178266758966678432691901731270899259065726530463438316383699558373053423999416350780342222940065486831353604365192968606300436304827279383661172824549131179471364227618431414928702407510473319879188990689163932586727702195573766225861364297410904859137393184592815970592502081722125458353280743087607273547490382023433724488604177909671497082747464946083901888849483505451426245881736990810339421864101129619181017696837017966116165703320918568645290788634265522956017905246042460811062666193790657969385648522736090098231379029903772234867701846824572274796526421531178)
-      (num-test (* -4067457132547237558852016696244696525033953641638067592741078194074861352472861925779476293767777560910963786727886946479865734639031042985368829200802420611189793957001730656623744670821921724417176679009632346904384261431052972127975733031277489967119978909321422086102208644766894305071609385305464547231057263658903212521469801833214062476735046735467944834107695748433481665714184831786462886261252526036621257865158497049125410241033365487816324425563483999957660557670189397770488996359512245971368638615503320507431381893539767352426795415898379765583574977542068222040889423739693921998717145084904555464058 9635268828818063607505341812331931088336041632536136269505180222913464638532245578488168867093853062326136774925531196873279749483997619950077042084971972) -39191042921786100943542578352486285322085069425292685238158202937549417928185097567102615300826629615520476316505465412722375794150552330462353356124896483739321653441446703127728441315609093330694305784991844511900128172079464896650958648496336601612657347012294121239821167759496102233234525084695798195547141521849769350204659392602605928907953707277320590923278178152903602506284861018886300148663530071056792375593665422754923886137410482547324901798328311927545105456397213670390651819229021443747424183114992653572959318104053511452473611466305149349027962240989590453237778130260105665310067480846969449221473610614214933278048389171979184119355459010233147440293881252851501522689209874112819966647846701257081192324007280573826673895648273593609466000383382376)
-      (num-test (* -22047771987573494284336211037167956208924595972749016352929724093971147687332865088249749580556015503923927321586913446367676445848750229391300778587369581738560634537089081840938984779012854694220894920437076215176060179241185151442003472788530160589267677502568156006531439509890061829154786579353177129190813899423306499631144919702707240832059008168851983259611724134448165201725432622521420667808597545410136493805873769372831833878868603946583848422310946469083400330960925084024624317866822897278934924368888332618046649078771617892961267312226309927786691384460940015979582201446635756024251269978545916298961 7481502540911026808093162425787184755732317118387068406204973030847892995155568099553397887864257088525242568880427634318737874025160499293315047534753494) -164950462146458057264341765173378248123415893870534274075422323606836246718538063890359159423074703472625232511667875897808555123518162244263016096627959208397334135559180524195701526029092734741010866589515172934676451385008535538102832400604699294088534999994990970130226363762230944961249818769566697211068918154629209895730969522747736738946126971914549491889482944152891334838234907190697109929512401661529882587076352559260375439428815896053844621297552401396168240947357044985051323834074355418902009161796886350497072010833513601114819625605048943438304411954380599728561071485061414856047768286383287807924135081902458690495890129203192613070824670256334683011083767124852354110322463725619194174195587835939047474059288568764831570274891727391545546467943319734)
-      (num-test (* 22607201423790553279447786193696575272983924506336369475058795405894123712509544256099524616893423762658394830755129501447553593365768543361107397299007141714383407862976654294384881771985218996697067215804348472693636567074361380875512341556932579903687576929186215185312685712277482751425466251201421842248749944123326048360909954588266368306843116245625635467041934524547983478110533044085242847795585598341867070787331785945399446665919396062565614516404861115244243161694059679274045050270546536781907061002623188435269769778378780371158624481539046590932125320888745103158180784231722265376331553893647061533815 10075764395489719205294189472045365742345400155046712954334138069917417587273618147303160957788995022989479371576840422540097479703418600112174202202728054) 227784835187493343385594867881830022845566753253174983274076326016001091958812135049265213053390506720261776960833046225700903422206015373488419693650378821159134369608830936915027161415300759990632038898164509761337714774392506802504397626551196717184785586630245704512525844329038355790338277254618639554796026366029578805283659986085947726260520495140332204643887370987929304924491772630534558682402396784510750317396488402942581973350428066695976988812610467654886227733900635715495731445319565054848075104982244316563526232071957624002266648721592744376122065531440026836549316222728280595228806728872537793522244957258060730038589170810090676474272044568671474692128168357087077816573419470273384256552275636517940058764711467508281344270125535855785388198570146010)
-      (num-test (* 21997874907846585575969651776904015812729615626636027149446399573806943459105370044846476738175828244018281160136531735881270437472624605280356112191272531838028896521621800558410217146758345955334174583639352151367532676985598470747138461153212653362188252002768647808852054182649808145379073620834551216386805267446360709820441771932135218282126427988826945094538034579367527908530151926679515746133600376612899354099328788736038811470295396365432559354070365548930628714861826464935305416998192532029724853617023971964507955475554955277722555849603716733374588174421463022213135839490633927005539569058361144905451 -1400498192750070094581812894241996480373581610489471746158083224360249880335094841398529960182484181641387946900090289855375996313447832474435929084180606) -30807984052781257825246153008277875918087659020905755686964119182052911551148620538090633516362197112383237624321406969368641524681503231262834662890145617622830207559490089313283375890353617292096501953380469351747504928597461154633889236826060654886877907382241867167198409355653371944304660938495445848950444683274236538890057643038410268234731745456035923559528706349316582901179686671568504971088561096469997823300883298811440849031903066114422309644669680078733839046643542078157684064686933779591609758494599988463628362190034612412739669041368897594110022347872452261447359402810277413572637740870748949093642723240662839444216981630862346445890780016393330114883270596630385367407921496982236074288475142085411632630374714528706189796772213264952893973677883306)
-      (num-test (* -270155241925436273159477510619232592261228150696806729750247050 15545126743930076938536195287546926534964892301082800206802745964245668351235397 72127079799316080210744562119267314209211162112457416152560774669179705347659265 58427280233475514109627698916382980237252687770812483048907352594138577656301900 91336330475502063985843547526216808965829995610054777216888670176112782119332811 99495081134815818196404370468895496198561677002653930126818668800341380375657337 6904264296552316628911621065724553059847235903647375662685025031963599691416829398469283631386160328944460790101458427909545198569619131058877708293713734 -16074984786353617526516141164566295497596312655026144270863093715961484079732496604871734572736757225277596743795506589617891195569235287256031608792067121393492186703333733526879481948463529609113624075923052999494363547340563039654910799974388353472433635130983731604982117092991918514078659590068643956240711810902756784590442416249652077644077280371860780741318193975770906075446772544431670392964384669681404295839302410058434872964315897505894833409101781069230919347279857855594782111721176074849502391457684148683668165019969667481755384384017844104770253558111588611189351637275389688093074751942960310850074) 17849860827147993486644896214424106325295064110723402251474432199595968349198253682890653243676378684005650871261983711134190416277366473221365848417375107498764965893729640224952922241531788638514200018520970345581414705756736222535562338748426356003659523260330725662384208724142177900990027225665451069059291754155591197426279006090296512196415617974140965334686090032257444820748820516976632201388937358434205022475303705442914044454220818215336283948743042841946229853366515552653568436171217572212088935263340599371830215580988184775240338748954666846379831467518505260487989636951404886967842600777836444030434816421999334066711024026401362115623932221335906548647785232855815515579448393689650116225664467056283988125816950714780486880294535933597118808163054631168063568847830481653855357008353733414826165759079092633441356914450038756281940532159493763482047244493174370100586359619040444818634156576789665732998111907245928253704097384811414269835758656988678207624731164159069547745777423464124959379113843649940896359346515513936964849811155238140671698227057228045173997904545787593258286212427476788605370334985423461194148838623911634821153061693257996982252745844329344589168264774527631972524787804330730506700000)
-      (num-test (* 6411564443509812216548163965666668398784964137255201222920640150 65325385402074288043601436729391841747319174569548241717675134253657593233436152 63305037198546989906433329294566491017476837189978173607681765241525113921707860 72383582945810879300930057856704905379805338886592055772943486702915907397618845 35525980101796892634292856352740658817031405780112750352735419884048051630180860 47579150292602967366908574298176357632207539947399443701205872093150879604391127 7775494633965874654516687741429737470333189902121089184439228657893110997221737422210698789286625633365548095171257583020272703565350668755439139356570 -7847653632223099338936161226557020783515367997970448568586056286591257384101422312757649765574456754668588904917800060981155642916520580540801153603733496143328839018174649200566737789874193483124577734129346933208306772618814806884416239295732454033604210880463262467564639515484363761639994642888910703066277724414372379965872478153546766131136324967950786993982228851928269842355632200589446224738709869729930285189047112131897218464505263042012855229737941639093204086147932759923796947642895167078971517834730472596647456786099215405165290569214043431009370032818978995463168133051136053246705694337584724712230) -197949741939898550383903354028842356745461597695099989904494711851411610441324234089773644533872304737431480244289438922163630848266242200711131210228027234579469457105291847132071566876246332653149194709623963836885480655282595345693084881617726426841183231475364991154699746506928116505297453355016975688761948609740314324443406930215518937775475617384099331839748494157863510168743547396262979908353122625808170296763676837551973930928848463398657587603606321137626467028732193151671337338929938959296176472483674270114824853018199281637976410726195357458134038379491704909997939715446657856320452698914513791221947734373322868574099599391493563479057703049036936132407025278683219316357543078875410080612067641232277376174351958080693019953378024732243763129075732499165068171168470237875348580987967740148512425201518758344757030205911031119619416763996490581551977913711646761182756531618786226541010835120092904291975494846126923510483263978074437667987560077422810120462938292680423746968095994108344184522240467647491991837793653579480334442342102339933473270535800619630342940590477752278184994533764839125736268376640933720554199782388890444619996919031351334561766248781813883867406045414518951152508504891407920000000)
-      (num-test (* 1669833986019218156514274418186396165434871163342486930502417566 58528969848472951398118375496887849181512821636583415470809040929690124231959506 50098163184827557635697120379841225459445103589988345336880332217224622666020381 90445522698871905833766573423181067004916996574451008349087758531794463581708977 92366726802191504770638415639612204654473958526592425718659284841373421985393966 69096133232785816552402133765198624674167660496399099321713067612475604030259084 323971624832697152056406152359288553860210436839331005469891386690556929684663075996719803995137130737141925308417709520389528780839777347463558171582753 2635514624483961079560488004237441873979133312246005082134175818331132377114926863102436691793380965631848192666106793612266994709357524826644421074908075389316030912936338175907209987972553710900613011802455058538786723149316934049388525865455871552882282353445228425640452635081303490379594663330152071465360003249884180020993032086861074931796165970076448856988084523672973069824258299029863033098237556417571526135639288006133579174344589248428714474318969988990720790226604664141927030250855550010512291136517209169959021730625428868037074528890516086527430801590050720467893089085308995719513895962750896813152) 2413207990093478676325592386500172980330574558867366638913149256222218924700401110600319869300256745035993991818342784487193857053589994816247466074246569162659879368383295411190237107255160498774228460295857931362161062884154872938368166514128474751716517750517217000290486110198899480877593169193610813452614906598055909439037075588626529658637140089909227353944313408987644743661503976835580507054926908821206921014266535160031749397432350114673787218438589065861056449106115395189057409933330355574558853874223262465965933679584884152813357065227868165556818717270584803360466149860292769520737249610469675917864449261901859162854558012721179400237645357401213337423255109839806528503425658270050436129019270883446965562683284298538825840361267548675967778385927410390726055957928634152514415917053614892441910675109517307682075989998558764742821214685548219206933043196677521610851950501225469125512893859254575460130829051324112015464552874242522140166275233893076603452098841950130740353331198999756316969161591691095397245996664755249875720008141774247384884623389430842799829690618405724986702942913150258769060684255363816662231923570491001519802836627028431389746450987110456127797025006251203111629141890634728548553728)
-
-      (num-test (* -6520062188352981842/3213004995534018829 -3812444292971845716/15284944374811818089) 24857373879807849010516976362973488872/49110602632729971801355498746248797781)
-      (num-test (* -844583948128454879/4750740551331102615 -1309778567130405125/4885884698278749707) 221243590680205607733892613510570975/4642314113048197066962569716783636761)
-      (num-test (* -4579815856418431271/16947444571374397297 7990245706938186906/12540719430158043191) -36593853985314806270746820601513137526/212533147427761354206383017714519654727)
-      (num-test (* -3587966953201943536/3194797554208122281 975954052071387816/2707062718507963111) -3501690886675668292903668827990357376/8648517352177231144330968693325176191)
-      (num-test (* 710265334225408429/567023629756400552 -5578988760400430103/4131535930210536898) -3962562316545608552741467762441538187/2342678499616965424161446427863567696)
-      (num-test (* 18305319006789031727/4480148641441744463 -1641093267260986094/16028097657311023719) -30040735777106040963634910981471804338/71808259944297590021537032075729917897)
-      (num-test (* 522499067029593907/142530390958606446621834761330018829110 1567459634764499377/31663510497342378306792964160850079086) 818996196770998943862055820464495939/4513012530308148429025282037949729145117603192483641232823845248212618993460)
-      (num-test (* 6214041481074460220/139497414619784295310756757536261769729 12187470171919324678/129216394212432939561557938117593031955) 15146689039532873328968703771155061832/3605070583825050709361064709099418651298807367637359842488375232197429738039)
-      (num-test (* 10022419596195177499/91129297586760817507648681092594591108 239769653037576215/24086455608554015268646156321002022494) 104481394312031409685890479072416795/95433990476618390508514520731482064738017476445225501421324446942302103624)
-      (num-test (* 127731839927226607/59760640855511386051149338950192132591 3679984267166095161/269870724770589242613062477043917992045) 470051161348371979221331000573148727/16127647460431744118786930146746069875784110572380855085272434637353123238595)
-      (num-test (* 4919926511230586366/29288587285987487013553554568227355149 -2914615432991234299/34407808954885309804037535414452526052) -7169846869407694119621783007930483717/503878057947370143933800273784055481319429768630967123178484618174989420874)
-      (num-test (* -4322680734125283661/246950524730861178141734701180345535020 11581515233057355754/82204027418720951285150957025638971309) -3575942340708251875937466941988609671/1450023407574517046920597087724458064116343346221474061477327267648859624370)
-      (num-test (* -5552456004563371781/36434418778024040927761226774271610950778609263056622471030041615086459120568 233319937833204741/228703279535756717601739981368829304509550463672786894384479957768850829340) -1295498689806330283646616799874813721/8332671062513255913250553083541810221054209355142441164334390514659539371361850837178162594438925276666798780352514152276296209564179606228713851865120)
-      (num-test (* 7279569964232187047/36316165899095632459738478614507512808578186173163489609755035948221062420580 4568992288187244990/18279847281938710983382796940666233712517527808023718591530848159479207220137) 1108676634263212048809114991909788151/22128465550033953372731954247755694375180631486898426116907313824243654714198100644737500721615620412852035450119116976232805701601749863504629937973982)
-      (num-test (* -8689289043809733973/34365105035540924847908154205433563929060132734873649554594240958996510665976 281724695877043289/3383396067954681850718083474385093262190311835985400909911383280975222535225) -2447987313255021583629117408894957197/116270761252098802423406562021935246701911690887646043563899994409915142686943691634418411056232663942535537938126289647041118885713303684881867869004600)
-      (num-test (* -4176416206981759902/47077361360975682486641492558477246171356187409295624938308162261216397376441 -10870319933050648575/51626085927005484523186190379579228801774286705829757742503501130303410401261) 2670528255498212232918897515060496450/142965876637554026205455979922464979254073063785755559223760631646970673683621524411341782655829702451013418009338618833412062193643308417898164204593653)
-      (num-test (* 4496049401725150702/8024116634872885909638996643719901973664008349644172107626390134736213108465 -5231341280619167012/99267989241776204190444307671763754306088564051099822830201760217121508089279) -23520368834947889555464127765407042424/796537923785319116837266627763277272873506235001122453584405648384893204423914484193595265931840447141766909166026026228531619859740155558402735330646735)
-      (num-test (* -2488955833769033882/80573015130339486598712021266263458487997757617589137912729682647628329090307 17723590657579960683/79078600039601362101827108583564759878924923849842119643649415446502020994810) -22056617181258995266120581914227430703/3185800618738432636378738398589185111057563002909241393794402306079667392482341108052833514927720630087013771419748846412352850012097731569487991234153335)
-      (num-test (* 24410613567363183821142175154197794689/2233491913446620869 -289777146895293391500645889398422195537/12394177861163531771) -7073637953514043162500219088395995153310329907185649946877180402954938102993/27682296026727883467940485833673128999)
-      (num-test (* 15029397898618080393623393093137341347/9939158597399833599 268484092305118852707129202725716126526/9752180454987984749) 1345051417567645337656755504737828287428006597367109244226136136424901090174/32309489404196149853047846865649927217)
-      (num-test (* 175291724581304230067306380062677652261/4791591464449055089 -207911166974886786162808240992513636954/957635297799905137) -36445107018739410292029741836217649994267718828374576884161821761303211252994/4588597118993154438342028473487092193)
-      (num-test (* 208446980882041538439350888438428103817/11756453246592156788 -99855903858077543170703702663212319708/7775813092266901197) -1734555140205305628415286772698507060801514301420325900368570916304368260453/7617998589456250715053087609460739603)
-      (num-test (* -49595797981179247160347259926801311825/16426101929443877636 104499598328969971414586784725010079457/3085074725343747115) -1036548193567594227670217621556353400490405002875929378150074378019016735805/10135150379689493069951723318357604028)
-      (num-test (* -288919818051255959565698296502103975540/9373352185361138021 77343596824463059344208562767410464067/8355013728778983070) -319229970313622361785032672064391711775428287673147624981393545586243098874/1118778374191039878067165437747032921)
-      (num-test (* 301194765217764762175383920433701358543/150076401641721289621709469985978858175 -109319143590504335906407585568245068241/158084148208214805386290412276525928977) -32926353787549066990014316879429253235742017240010356390402491456481443332863/23724700119685440084214937112355810539035473428177368317381421021523605836975)
-      (num-test (* 14575317438235510996984657523859363247/6747043355688580686998987940004831062 -98472042392613093668204392119412188287/152397803267436514292317070561082866275) -1435261276663720115408306632770383012566806521695455296458086302958691687889/1028234585957093005711368462502470683211464374115746651290896689614112234050)
-      (num-test (* 7543367187310376010646193530301789591/61115754966424662873097894247178344192 309940239796651595482411737112678240799/200261667764086238794802895148430893795) 2337993034909171213000031444662193658341848356694420878002930517675329723209/12239143016237439360279809707749702660797878084581096344749106125186707088640)
-      (num-test (* 306232835922656327867425959604977465100/55646521674811091128956181530575055283 45245255551837746690160535427248646677/3669533234425940180962041078287629087) 13855582919684583969821610044729507626133731299765443289084519977056998472700/204196760665922729081584465192637337445710456706084552841012480810023816621)
-      (num-test (* -280037880297253633994139513185953058494/23798550327416056573646642830182072429 13967268482262630670960486883264178489/7947215947745048068401387767511847243) -434596028812829556627014314125713048434599389957141408329542154357763726174/21014690966139335562014814134594464675233042588696546668504776333756662583)
-      (num-test (* 87160410649223805266866345018804635271/204719779683096591635231158476535039583 91197762560765392928084914476898132964/277206223024759381433146631560580134513) 7948834435086720002947247338196997812861466884983039250681993725808882173244/56749596904412078223459353928850191672356004665473536520452927516595919428079)
-      (num-test (* 272801380449749740391855824723351316848/2170368723435176720708253536680067463416474841046765138040214254204061862261 14545537787709209389572055399030228996/8381323291479119825335849511027103148981778425333781230074116361235206363821) 3968042787871071204066360146704950989545352280096012736206796950415592924608/18190561932825050861659739926693806725838682397154479213760300500132465705680046683155463862909993066621811136554677896021527098482779305371951555659281)
-      (num-test (* 58980225701104541897366713189611773567/10973700523953435846969235385386214078292603476932194022615006557054104506344 21633357583056027790037764923811848217/41236459355840549300942497778444413350482341379076368704834339005347182486274) 1275940312921345964633100864283753667394719832288287163056787891633576680039/452516555639171997520308257003811683819837367444947027711901120987864272999978391252372420644671039873982401560595091423172287702745925783369137325922256)
-      (num-test (* -39569537110370574225194522625562874655/36290593978404925051095380486087641410218299612051669925683823165483928853304 39273660356839128453616088747231247259/28875229647500294680887983884278577441525691250738380954940513956990510132534) -1554040560950035541902707236381071410695075315482961522429891905381129320645/1047899235170633560739863801929205639611958070150694189488499584527041043137082563721218908614201921449076002548982308540689571766482794493357171683792336)
-      (num-test (* 8957762734053174688386697837976422606/712105675122280831038408324375785815130945929819518342973925027507219300067 118977607972668646264715307919875588738/36563306353035936296510796886853084280648109576589600551753305930842020963283) 355257727628119695756412145322380851760544279491883270008434507085780737076/8678979318410478400681656718586483785992423192579006235728835173903750764880944673586689792087386144715446501744012435157310426693657188196381455479987)
-      (num-test (* 114386050140129336980347743358441052599/11994188887964574384037137314302737861703229337059619512751326848591488081229 -50822174853799566513638003084407139228/97406657802317796912648600328217961853548397771614449630742570869667560514587) -5813347841057137571369557065847591420664634372223088557679866032754664253572/1168313852626327929522799656188055465298138284154709873285311568978496136227795809646907486798429717114923178357702460243511883684964123937654308495387423)
-      (num-test (* -22147677230189664783449572410799931501/75580058176304394102183955194485040346816524663599269056794063928343401057143 -127672554664595215026114551202414743739/35777311684781371234035985601066874920871049301826919955489852676067316906014) 2827650531865200718433745248471704607394596478050653604940563621773668622239/2704051298527551014378337257898371613519363350219566689647796093438747503077807722203668806231503452508016974614236112792032033672965127824348803574358002)
-      (num-test (* 3468729773587632113679855593063165286551216344725198121609354788619580819847/7106612002452012151 20863200733446307102600190583661606839853255577505815215312643683864543217073/5700246487811068117) 72368805556440529088812813715602124890901251289457147618293618526488567540302416253970205832659523238561757581481150988870947074663135867252252227647831/40509440107213064064897416415172689667)
-      (num-test (* 43306673717838918980731699770600730039727453611468399058203483818093233880231/6173575908538565981 106634227988568775671050783423559067905086861634892257032833451008548321218936/17988169594879808463) 1539324572884864883885215269788177741067901747630436643318399808029602335378536990210735234944615096105103848497832537965483619535769637171783464984418072/37017110149885307295697375341989232401)
-      (num-test (* 61636028396239445662576777415312348317278054920190931147781159688109244233565/149659999183936017 50280832809996410949441105432174396823883728565382915986396125237655209339731/3406752842984125790) 206607389257567119017662603624829733217835095238758046754428174885007999774491792658838812826043033826701244157167565054600950156595290052398436186551401/33990308513391731439280046802638562)
-      (num-test (* -100579490802304807750359433955474958462342659278486016345156932756807754105945/15683759624513404963 7314396152134987983181095955389244247502417255088677055075146925285457081540/950287995699608967) -735678240508074701153113537069655056596152436111651040530896921701439724727486696483134676487497031899584038731663111390949471467249259023050011663755300/14904088498613295322494450308817103221)
-      (num-test (* 25984831699359211750216710442693374608159925357093100400945034699383345074385/10463598404993207796 -2395913226491242076662067669730978955981403048697660449593722338244504668974/7015215522730452775) -6225740195664363384298636893730784883811595661227613249243163802476751022407971476247993440178871949687923603921101094083879668063131450147131783163099/7340439795432595812648347200273983390)
-      (num-test (* 5173661857391320950903772549611256023540539838210520778403003347430938670915/2590493168574884173 100300641976357496491877756123729102910724064566692821682523911939220592349990/15304416107565779147) 518921605664943617990486317157527087053001312760892500249127957517476408720600460633868004681188890038115877413554399588737851074382787744833707113540850/39645985375676570588146199684023740431)
-      (num-test (* 30299639015164203561126609159677900559022306879488518544803392527841364186955/97638167801975054493877206805944332747 -50150465496280036231382225902610460555496341860773955714344071185921583266663/170117675960786609061777750278261277482) -1519541000979732808188648781832621044050652591754537200855596768903085847105531546641139177813880505696192826380113425984545675787584857974943247950981165/16609978191541300835961154615181304582159561006676548938424954151558306303054)
-      (num-test (* -34494394944257769716276791009665812125094062960425641316440943461722789694119/69239821080832171466311153221314488591 -68027404272124217088707268142523090163964888591405843143848585935878552833247/257149529774225346004390673137885895872) 2346564149995340998782934409780604815295734898030424565252099571337345550054284934036215402972664245125313098735082896555892607540059632597741979943574393/17804987432587488254198543762235568841018786223139145264591718687823557996352)
-      (num-test (* 22330754509472350470460807673039908304726422770752644988051418230315708975569/141163736844241522445115344332946835969 -3776092949566234532895208849184634613770861313997034923686862122594334787771/22367110097535579962848998753563258272) -9369222740190326741203615957382420344247102784278353165345406236082475331042528539717966581690645628370939381978953360215380653092335198860022382107411/350824982641632215769272917522017419782283768012468846380070797128085153952)
-      (num-test (* 1376215273451682681102140384578115142238259557166158859699272578561460124263/3593386179017642636485249017714833669104405991325015697577507088650274886871 37146275008876311604039415809582675415172661567487888072055609579242279390723/55424998453085285819414374477780690192979527887019008768378662580126754826472) 51121271019052119686352858568900325361226598163234091421115939503875711782442415328681175322030659510284806538410228985354770913411724825992699509412149/199163423413390889071651575953261174839972499014963134990506980080139461063269751906284862132821075544766093817070661266293471833091996501160433036049112)
-      (num-test (* -88175289711320073148300791156190227927348022787624424521937188958291199926437/38194742314758366741668899229532351990874883495690656157862650973602784662629 93421911195279228911508870033119580111709458306921869937709821511660370035352/66371395138592894543765954603571534463846496049156722497129962530412046587003) -8237504085028962150049531747535213236460729066521397582683209771842938254589363802757604921456170821878391951762499073662677974506165863935238701489400824/2535038334389561782321790943041741331416028402594806464107449488311138037598457377927652600804722340759363172755193254192462811091332303758223034251210887)
-      (num-test (* -88364214910455569163017945328431687038422451206033411348821431934742389780753/43010507830592044720656702803904712217809857004582018186125828892174875808576 10405170283887792832024806983921158923908589830001636723872220129826733402834/4055629711949631304631599195955105801456753694558712994574702123032807265321) -459722351572673455425943766571506569631562018487574498847133029199411842205331593858852090421782204158679934054007027833206633183796877753882057444427001/87217346741895687976684378003169607737518608233754137677854312677618987931466495788077930577814677920791330694741284253568592140275298729115088619596448)
-
-      (num-test (* -1412797070596191471.0 -15492755620416346417.0) 21888119755986895161222137392796809407.0)
-      (num-test (* 16686841096925954110.0 1491135775021813104.0) 24882345731730524499708005167300657440.0)
-      (num-test (* 13262412958100188045.0 -18379071970155621919.0) -243750842254847872704698616507823758355.0)
-      (num-test (* 889503034794263569.0 -16600674457216690894.0) -14766350309325860687849239111838240686.0)
-      (num-test (* 3148165694020236318.0 -11771070679825280729.0) -37057280896113409834434531491271315822.0)
-      (num-test (* -4443818546267181727.0 -12001052312087213799.0) 53330498839175802532024121011435050873.0)
-      (num-test (* 8305259347214213793.0 -229351169208067535459370186456659711595.0) -1904820941859811670566233132773219565154696335396051029835.0)
-      (num-test (* -18273334758510166901.0 290047155020180552782039318570071650475.0) -5300128759437251944808204783222405076790289915320785927975.0)
-      (num-test (* -703280433697652940.0 91110448009482115063492795153459771021.0) -64076195390496041906141380919369524419358692517527451740.0)
-      (num-test (* 15279634596127882146.0 -220998726467849290098339792307263567896.0) -3376779786638352686104608499923871317791563686466157184816.0)
-      (num-test (* -4472497681184076830.0 325612942672822430032905460436166528379.0) -1456303131067722058341139305566346079551678140995111358570.0)
-      (num-test (* -6180420673489141029.0 -161157288800853703711204405567379740552.0) 996019839388256252540244286609069684717518686623358308008.0)
-      (num-test (* 14044956603588468379.0 10163190459901171254101452124764637970005230126310661589196828892266636678427020930101076689732526935899135126391465178494895371156141265424428405590113790.0) 142741568963316278148132287599703960511135825069792278910440475692913696263448088587778211787403889397993501704943449376875999977937418748662459138952952917221024170426846410.0)
-      (num-test (* 2133283347509865817.0 10577710515843519541178984366353275630877942729579274295972091544607384358263130633386329706527832990861547566574369528634541156662300858851752195966167381.0) 22565253698228972909216255630133478029433774404794962869038558824053350969301054394347471181756471783852326407546652836376109109470959746153989521923555764579738243072315277.0)
-      (num-test (* 7812722507014599311.0 -5055959518947106416800910724733658104378582281318226107212861190073091017493970778425583956006925004399967175604321778956828368132273155364830637407968648.0) -39500808728232764770485117356353304373275127104839804121600969932458363071148383405901570717732548020267052999198017578112731079638156026910705662052515278317807704170401528.0)
-      (num-test (* -17560801708050275829.0 9842515227842383346577123873881045824143545509071137371075701856197189100217561683579562062872293951325890789283651221922663521213150065638405410634222129.0) -172842458224605375239887212582262805312641302639067963604956593404910080268476692854082531021580381176489626536608405283010496488558204787140272050713264572452317265305619941.0)
-      (num-test (* 16743386830114877156.0 7347065846171565625701636575261347705942035850951855454324853850791855951431141198155170102434274509450315416946729031216385536668189501958761688618635668.0) 123014765528775807847206414290825117502032199391400884957413813554539073118943905948723779020186281150198999824020769031248882909461419778092564985979904308229718874140000208.0)
-      (num-test (* 12697192948029671719.0 -11416780209809507417142822520376617951137069007568339428552592261458272400645205700952156716454820410468812274673183389934216970221062627926131479014990611.0) -144961061169197993494569769162151457365959287966302572862364500950127981616038900865036521107816831702945678695331078399461327412574397914795455218447174498277798426197230309.0)
-      (num-test (* 17005139720743105479.0 -29990519259587469661876904501488342396062731024702923152492275204626478246142153608222329335341363164148761307659972897552084842238285026253664841395295138667328930482145590159132144957515157474957872335043653264146346772142483721767458961320947069718037828473530001033848282453826154763424789967441239969918856795769965946388666154136004597297855416503729657013008165049478441197537144135384444157408972370236442813734429031404855591324183846423588871065272526864866155918285777640819778251612915859290336548446745308788013234099839998683451658620461972798204104633072664604846231692505409653434538208644416538994256.0) -509992970306921990341332390474393215554862069848994183152714032617297815196921655222705396130464246880845576204295466273071779248718654338767559016551390771145212884412809612574391658668778295682412755916528976282396155832617323980694289208942491001345059122414240884660276842648466533488559879226195446807748573906940273568334343093922652142252689341425941673567630236228358747411926991658260241924294146562230425295426217833820067881064577380516936937782688004146531121831211284735538742160763820814174631414364095096099434285754767091040812242751724012532803037860394426031234340719537172735695313262283511554154662650333168783128624.0)
-      (num-test (* -15877530153400521290.0 27863984127681242643954505352420303514833683768731313003271701952957204538094398204984051331105594788039352443762851136101330385230866919393696564428736685568762923746771275677491379334452751710169529933675128178840986001684425353245791752781476028565228371147542431713985092322787978914276414008774443194161599919167210582437024618824616489802661351916633993681556274980075051797120207655478780052593534285265078265845445633803877185868676955831374479850746658711791169579387317321983669227930929736238215792068273805543745311609083833407544342964285215427999724272264458975101474080574470499647168865409458531868592.0) -442411248181132450919255517905812929771246981404050821923231762557171158858876183536414772404562764742655092127161703706239729646027465795612501446223663310668879007072125975886873343449629108246953385822769744013416908613100114754904323190537317463286500657291202287742354250227377164455244103312266617146454847578457073139633297517170508179596166314955134347046515455569689877574427319658085169791949003021426613961459610227430636932814700361914589752207776142403364490846294795496119883683491811246550808038342285518518431538295199537270236275774546666026424361019715280652576803278928827199810150387207105149968313623040090578323680.0)
-      (num-test (* -14162897687527555611.0 -23016403916121951319848021112075986869602408568431399211927062304968548663313037929311574133954267816204873252195499803324830278637331653769648377216095499136975244697758388851688873078022850203685120154634090802825656419418077380419130449990938627982123188424119187922828250625318327074513352279785514062876718714640725789938556578327139793467832731546881422469843509318627826856881082450937188956068348931459011923844607158528494902828851692203126881727638511348944908726926619613375594042390434147948508706733126737304560579515324106834237197081860910657003346633962662773394999353766192391746258372744063777808796.0) 325978973798843759388794644178802841408656469654887121096165875654577046313115917671847505813174070119516580105483409446057747653173640660143855580491229746795572929387698247460831363721394707501497262525550824977473864621747159715947297817600227665840640555029633517390896890601028716769035575763283168066843141870124768085499453574902575378368669494153555135898430469356384416638130459557518713454927909937610851489821263029886989981438507377741962130296498574556444168140838201069779040087521405032426995145166201901368032136008107323350679784004016321425234898132080844200202007395427054392280809376612533414505539109579739614954356.0)
-      (num-test (* 10844738523441551664.0 13010289169828379103330191247192587220592807931898339555723704078985668371901953113936581573750666143303899278973814509164982887504269303358034042953769514772858989849512527461308415676004712388964136857232374888643347097138114199889581495448978914022318770898259317738823514820591042321773469959130347470144905381758960436645008051488666423115693738341045851119808222048272924385188356021826450267608127588500233526688704136268009202730309974485584784539415807259862449203760469406037505772435323036790641520939576046423540699016607317147689982042035523118533555744274806239272109508745089640043900389441390176681340.0) 141093184161152226992592021994885140117836445291515772908453669279294934817987511015413332614094493905560980363483549300117114491702466085602279965168041684355125886388302948336158133555051817733078300668260616983283027038746214728386770752826764135491650323133831923154477800324207350667020747545837613879364064704092093040155243919335078139087599906324684688427176309081290932504214653249366429592335409761783188358003723753633106574740731573467850133547164922532633897844647383889253777956821171583261238607289172489135768839436605233457738153233579088224808850428203888700116300637190661108848906846940291749737998056247719674749760.0)
-      (num-test (* -16402132873169057380.0 8202725117980211375579199554494319645475746305836527475507064811368616698686329266053570766100878145903342129595869654087772486685252653587846560946850102095086896668181099435964053041678323706849735936082196618754721606824996486473796843333331029865501790248862590712245450877098960007272754260813822886287008295409755783478345202299352891066800825979067590290793893933819913530599309037639082839491869155044147367415785329077864525961799400923643936705317921900308490987828345313709179960659814100113658528990241758360711799009722683007157350272749544178688961738222930753008443755881419398858537860612954576778456.0) -134542187307192759584182063854799850608007421111316277594191532129597970622559949723743396309231347084450105499455916612009290113746722460358793168839937004812915757145655285798961178877391232945062437277255128401572171216279188126380587081673725314534095093062983435026047851041796084651601813918099532876684901239903769891552275465470747567830660442193995685219383258617057944010709906130655663966913354414611799232001438943448374556294933488875450563987147224709383408815994320229340710143082135667640802837699940654151297907451396297241124380508001357553893328703788960812706653503939250831164194874527033594779746890593262611805280.0)
-      (num-test (* -12094905083549825231.0 -7303327854122277566083382629094740392048421584433028903125893639493993705575691832165314461496849401726460344615713884253150283931509897329926825128629833541892164122168618243719393446304446866677253728405617434021389128710195093788280203239300086905325641224801020413858421914412156234316517981228056539721130386645649016559425091470643854813419057026759188125291655398451427686659900364573485593902992038773538760663063071699966278379037038361219424927031644750173900916227834573604566165762753650347331082640552394430002401423199016978155236550541225512734287851807727860645247391524620773399994302380387697957581.0) 88333057189654571362020288527489792875655269960629008914349561689924145109953656394378545526256758871407020025766992398117775520525507898420898102744530402370720932219749861094609497366188371774072368034971851022164946370916317410415503705484491514312339956381120953283812334833067601825812118392757289250628861166579446800637104996060739031010579056633535166403083327528575504427815713481850979373113173151813491831551023902022537957860211597622343157802805275942920911544696695931809085743355666792408029743911424760065578742910735408262758198787195579745280191859776661700139596074108035867940154338953640690242795671183308201526211.0)
-      (num-test (* -81618231044418675360403541307856740187.0 9751573706924018395.0) -795906195858402819552264165081526765614024708979523739865.0)
-      (num-test (* -167600745660011044249531125104202473984.0 -12960244919927910377.0) 2172146712516287908809731894157839567367040369214826131968.0)
-      (num-test (* 90306383312124738690336097936949488486.0 156109477991590792.0) 14097682358164298866835386043901377722456291173827620912.0)
-      (num-test (* 126202800261728727198105694812165074067.0 -17404362862588500316.0) -2196479330029905727399352310201914876903532806486592905172.0)
-      (num-test (* -80093647977875266525946940496137725572.0 -9499399805878278852.0) 760841584053111508349403804472960020663660465509267203344.0)
-      (num-test (* 304052889577333477963637861956318521374.0 7233536405885618691.0) 2199377646072361697737485358722028853038393128548297401434.0)
-      (num-test (* -124787646062877233829165925777950698937.0 -125798384154373172164515376683173327013.0) 15698084237137783175768362160964949930745617334715009097620154581879012485181.0)
-      (num-test (* 259623502197082370239517374851053110076.0 307089583871541575627915295134832918432.0) 79727673252974285068387698133566605944659309374400074880377824560177225320832.0)
-      (num-test (* -245358177397026033963771466683003477163.0 -285087883756432161967673595037725276963.0) 69948643556453419103498093570621669430956866597291662675473644085666220495969.0)
-      (num-test (* 46731711386059374483493216849082745840.0 -216522280665540473581476116002923812173.0) -10118456728713381305690589407461434638634240429858378588644634276171257110320.0)
-      (num-test (* -301422430661955757433852743238845048860.0 -737194742467573013847855072675441356.0) 222207031145790358162820429948896977201848379524899474475604149595884654160.0)
-      (num-test (* 109781582310220385246795023904554278713.0 -273317662617851276579672019029762858338.0) -30005245475518685175699313262818315773200953201653075289648004177366787958994.0)
-      (num-test (* -312236719893391897821327608828679767006.0 -661158307192284418474080017860142217763949256471548515134335997907628404839044913830388499435166012788226998900468665646723366842553747501004752506346280.0) 206437901167986463762021023207669068873036145952740267172145693855475451354717023377588805030022300923600718715029262618794758202955817341818233889201852381575043965927328029955969846754837680.0)
-      (num-test (* -134379788461141842858846278268259347105.0 -5535479645589936472405910397299739073641612836770238183712206042659632410776896398062277742229906915852933418684231779996404071421767274180368154310128427.0) 743856583805332082970350662728998610690268824090148728726850517499798631519601137183443104910590855501252539324674812560702657332874686395923181633958702249128106139207076314713649515720653835.0)
-      (num-test (* 278271843790644800793473851247546123375.0 -3845690285506025443856370771250487683891303505653819308540635173436088084480277686684743918745832832765066355874381847690771330587033980524869033600561589.0) -1070147326395532917564114389205677334125034378502074943828571411806344559859053091006175486397820822872698474899835730026158782698085673635033947150554253148685482702599776833910878579880042875.0)
-      (num-test (* 22345490710865165412267189692679994671.0 -13168094845644809414256057134926669929759930873747535851687323456073141938879368460977723280750841588750507348317544461824280674332488497533955177541413394.0) -294247541053147552931885013427268298282376074124656716577088212043667912662239091316191145352314750820026626159649861330384837204227899202392764926604802655267738710003310052268554637728023374.0)
-      (num-test (* -223445051950608517881717261787296926498.0 -2609806601119499724524852022247741111662431776874117401343811680374867931883996125145979162937751368655661775097445043144114599069842524778189198926688379.0) 583148371568187658089071213924575304457465978545376486297236105670932990897420147110485946155066725440999079357995678147717407410446012970360780626554347417807723098476525833332400212113766742.0)
-      (num-test (* 12604140228725912459681435851589379433.0 10671266866958584640992033560488052420339425977492420594983497264069815016478448589306666811246532193922229713077112601565462530332258877522384022088660628.0) 134502144009302626262781543880199144227907004673612064586081220538754991037447647926963488301214672345398823354945333417956344119228084327815583754032364976497975702972112644238248704660063924.0)
-      (num-test (* -221289678591114384943252477126208006780.0 20020996887149770966522122735176842174467884990518978494604707026520269232864200848420530223248762875769520715632742683760311747174524709550334825291720803698613541109690224185041740294906022358446325921538593105347423518731748623037078340006459454656405997570119591344894717789372844612253617591807770017562530034107842444403952657949565007792107071767260484233194674888488789619319597151367813735192433631007526015463229060702510632792171187339118004038505860316305860704455466207113207893106982258864355430481457640304138738182009363353560090082819036973601710432437342931523433079941958203038050750205966472435692.0) -4430439966231074415853738608900692925851705818190624801199561884242897308817127146763274284287396980593383317678766559004881552228480591814939402896201244425805503258878061459604511214900528594870260206969839682573246490602076070316760182753341371682323914671418233629420599310422437691170629449435494697829163966912842611408632129590129483811802031178053300073562716917597174161526976287351465154825036851645956354853960835948518860624747958440181683978083391663149733813297698623499283645627889274004656942800842013709298338912226207338477579862672216831422765369078886850523202897989792734789430796029206661261129141144642117177625405158700499049991760.0)
-      (num-test (* 180785619668676509441152734583033930295.0 -11909038209406834057075682058438206007134213485822042209417443270921391661498900475635417780140585878716264253792335317341527677051828500780153492153490249297998660274828986996948999762620400587091118252205695562417522111840305140989214300921122857271717052213225664738544344394774362885331856170636862181712515248810239601812262573113794334115259873527539564296101166439562124016438281173202196876398090029995104489712272260608848551754611421227761245487365953257890749115194455096508613617028024932657498899001119282498614739316599704645009607294747043489655424155986912576002393048535846081096337705941547991821928.0) -2152982852345560218506186041143281789706715672110278207735389192913214838321097754496849942223194392302524369156102301165660674797665128931611291246607346536492650554391248756408556789391955568308599431054809433808337036546281323840555452571430884302696950144068129601527530304907460164571704857360215834011779559395577299313379666503707563751314135201994045874159291100986903645360754621200008830207429980872071814202801994486961737459218017354210479544121100423399040398021780750351097082070296255480707530391964970754186799748521538525274241709676878827522138880241734356460339681718690408853314007343934035505873192699052380699509877559455199604508760.0)
-      (num-test (* -196121729286794751535600080816329923561.0 31755463535476988506639447113088283661031267977524968610501132544098607201258848456920865390506381665724254592728643925608893982794532243733117636645689751360224314774452374503339856173343683819017479955914451013484169313685311530532055735999039466721411777061709328450052490025363788971916050033904534189719389237878257877112162843506491071470067738867693853480174965212750301808781573369342701195147083717623066339671595077736036738235636996351642097684597005928843274525502529735435418805821748637387888409663397547514467435322454217015563134545731593492200855670248739786405074231658957946422903165662016649229286.0) -6227936422881500100190187768375947805694946596622670066116457374856427496311253030141271922822486386675428302332027411428470488965226898801659352566022706152307022438261392466548357753526474097246042956052374187605144719189465046544498482461077851578811186829094445089366592317045580466302238653533114619908864036973070346979261546801894831273337217021756025770590122176562027129481076270727248949609326868225755958667670279949371399535144788247565199415296122873444199709788941984099349149684384486618280260678252604631431089580057102263617056951788273430713908768738965854953667135156866028646584137788146112300214498814212865170902491169332389942607446.0)
-      (num-test (* -149247491509558553673630984739524508601.0 -9241905448313719916485289537122695595500213295294799660583133638026091750542612875183284894676615989153030773719811347110864468582634048542108726080717551794580656021381515769591713295631818532114918070215760259364277583650102628486861397602958930509695263902920994329409932518607260720657755504091822028630927071374796474717671220452208310602827254296323761245420486376569048549643478954846020045263141546849795367522490793641049509748005893155533480849922847230018411440739584477452313387881413141538766185123978087175960946255649923135634987656065468774634483495944248865774633962770893338531522570776854773975281.0) 1379331204929344851843348280532786532350930013132149419346606977890849868537539899667631713548510207947097949976792337278764045110931774279794402312944786743575421497528669859045492875676005849752425421867514661792129580445000023570590786705609341859529483054902802038173138834528021423393677908655442991197348183257271932188161681770513283703502340499171444058119260228931558784004778969491586252899270869275893402714040693571919281494643765571068045362364213060063345212881008657925426024923296369533374671614852576576041747836643356665301762059898161073609265572267138950725010661453917338098901465732991316661901878681888138048552901254914604845891881.0)
-      (num-test (* -246070233154436622785727814428081917418.0 29761582253452470642591719346200231425423204062498655510037025199574178834762931489817919404889920159374886981199608181795387339523762458361385170203883094308920011218315748466148953320570427838912637152446837553950810011344492780712558515815917745810385725989241835877316836808088478276603934260581342710503593237081689944686263274319354100341139245512159619947319496638082702549196795236216458749363904150768879765280332386830831409591769966706351022328535490587838695167807967607003680703048770719240872629379640571077329748828739281770075441660330884779539288220944313294762143588847790653176774089774033399559617.0) -7323439484151992757431054484912931979861244043627630118213112440051387392428853497035249623931234821362770902740177541812170377563064854590834087655133962963430877452052749127605572395112726398103244974178157574726551814002744001021805127518246639418981066588073652668879613252372759895389345727455380224104332342029151667860553645106555190741775758687650292791318963679857313030729683299101577207875499929500963723267185390425716927303375831321783415003339099100562942730763231688479910689887284950156875532151104047755803876078837921949287811575034368641167438367411569736575067233548122814012421044943430647665260439418887639347030312118291762161708906.0)
-      (num-test (* 203826295936164259559522643510940430939.0 428315860474710981601019542870649234168732095026625500771233691514247613083810271191136212287636290276352210600151884730196161003906066671915478570992925366265552107746965374246537358349673161970290367972281768471743836339191023211359427335141701167253694144280251188008871929010775436125645541749886873478179599464478734149706121117222690271210887178499620737860802605991262799781279373870647695125320153193063528861104479576369448865373971847676465682752435142074973627172566791961541105525781297462635428308325033717669972726101583722868689418677558787287897456521530400671342257419067050354522203242849353639864.0) 87302035331271280954456598486072605056704393103691656908943847729634903654600322194677794243221825233700566108459784062758955025931450719283517278054268553004951352280583820782976072352456972931479389375165173986780482062859853305469143408707179895843295115510597584169486406323435925707638987591151227843652210256611991940374072593149367903739596883229844326054223707236369465710416960023659329202073724249764308867733476242261506975691004092043954515337899900837434270833782490145948781128533218641649564543508314976001614187701395586824982250794852925954991265270537649691628899148413763865280007928191637215283244406869662872539567459561720369352296.0)
-      (num-test (* -5899540498246269366107488541138263797694914692322476860852796858749106720144552037986906792251681094769894732746138541066810195167688318229720888479512583.0 5834015210744942902.0) -34418009003174534626858248456163154666511779871358190892629413477534042866009573638264296461516598238780495750056279721797403178867717911762916049857737963922333901125535866.0)
-      (num-test (* -7558198374656605586076446665394545534375963428962439959101805545423930654069723860456022097647139432324162475685494459942871728608277717748075653794546685.0 -2079670855873590264.0) 15718564882684481784074014915267371190416032453294568239793060140651422710113447422494938907375595456199203928496644205320139985222135619659630853564447794621716315309474840.0)
-      (num-test (* -9442744083812363570102321552182535031605446031706376100893354933468482520577272174689455502380973733378565213055641110431767353396963744600184737808983381.0 -7204974197101757391.0) 68034727473703353914019458883709211780958983263702756416891835054494728840771498925306650413027883039860202168095834137357212487561983607389479135319040711944281262212918971.0)
-      (num-test (* -10658732210276096534851972646242288663170038580488752611749460640657411087860047053151548660331707024718100598181073744715506934778234716535781332588396176.0 9193953347013373121.0) -97995886679587166046252015742839992974979220158813197140160489510432960510418039749924861744197553021702396544307690217470606424904065359660871469041838900287446937257585296.0)
-      (num-test (* 3330096979672637104536573277593029682675932033891010715180474877149733802060455951241981993421466123791200840797318740359792251505430948855600408060492000.0 -9413190658845804679.0) -31346837782105095097578725347257193539696338226258990009265748336528353873277500144838721882313026604404426563737656928378230261942407473822851842589487713775609448642068000.0)
-      (num-test (* 2224201331350479188470378485954814766783857696988331736807430786504130570570323948774102396158334805040994159865821844362926631687258969480929122732089195.0 10226747830478556903.0) 22746346139936030910929166328517425029735137934434969334578972386859485783192993228082340012742115893176871887387993591191632260444955081663604449277961804869872353878963085.0)
-      (num-test (* -12394770820700925077767705800588617445613665027183406054209162910642613421436080064653443098327137503596792411463268187212855350864330592654862321763110243.0 336135860956209890623046930607725140868.0) -4166326961171213704571179876442248501325782360170764344978629523457550315208845439497110652079907652744850691289494398473488033083739905461347650605270023127087625641779424751335704552988710924.0)
-      (num-test (* 11792778994619176404079667787533709801900490264171877873621265044313417667869688303207909681289642260521608966405181881416781694320672906600599581862090088.0 -197661229068721548419113517262926820105.0) -2330975190212228827672814304508257223671550753091700552243633152084831515892056240354560520878171696176381845689952044935988868477421447557890739834031207059212175922089523097911477486879619240.0)
-      (num-test (* 11608994516281296345925963401821217560860934641820086911326880657644311461955556832927259499969983808078591149768068360172431078248807463030805586293656663.0 -40654941048774156019243747229920736005.0) -471962987694958552110784676392477007070112288398143925079396435246284471999814508543057304008480666763661066976653446723271982094424149279649226771823800871458389214002872916339341019732251315.0)
-      (num-test (* 4821517917539756801293776911844480642406562140007084392649374723119190602353617113036081438891134008988421494142194891002983491670246762173236312873933599.0 -255528396376819316172341014108564420589.0) -1232034741571035406264710387186737842510579499938716343220834781077329515145216794636313459582844773420679078031627466542930137302257934575129329529129776153159694412903937370462708576694469811.0)
-      (num-test (* 7638751115643228563298483305056828584775811590562130101723525925933790010789130133831569153863129513189315440899053288261039147463032870669035935364282061.0 114438828287750304954799140618669114911.0) 874169727255956505920153418854946321208907128396839975975317705220623267360648189969313978740314703015845506506608054761304647627635292132043887080298168302864314697920637105700927041824911571.0)
-      (num-test (* -3653826017463740005170218884285271512636869606149686475539243914909566619638259666405831445823138528809165270360144267462878986866506114069923299116957450.0 215752050445782448772085819939961259625.0) -788320455239949216234629350585027855111249573063377172522422069903710014529292638311216050777840734448624510386643245486023092483841464815987597578151663227035102742664709136512524899527956250.0)
-      (num-test (* -43242564273985683175827997542883970694363047476880657467026050730764924897992516355909421962249292250047896135687573746158665836208681548975073555418266.0 4424346097667245771102179669235543742385176589624011161914909311078645828684936231569739522607200308028372644149306431599085361996722603718517735348761218.0) -191320070498733614136284309000213964486426347688040889144514933290125387693498098446328694172047943298442181705949005984031677324306763731212307716485454004382079159622650481983102917517993601466178931324415483972311904823997211920702201161092866663969163567426868740120661073974542958600768774774949607988.0)
-      (num-test (* -5093597555679260616199210906198149266592665304134802327659606846977583233938836318559188141955851256260954289429418183711191354912372372976165948043123133.0 -2240632735861652612028397136046974907251405868353380459030143407902436514978447480884513019736738955326732458088791830752499716417751919868492224207936623.0) 11412881426559848135724717164530530041659963797467536748076144863846600718211858527283843975968920120508569299672573958424908957105703597501013710262110218780710678312197455759181436286391257283676806548463507528765947919856827004176416634630489598937924092540289712219714362500246928243091408698274649199859.0)
-      (num-test (* 6049789822056553589237940133475342650218069231558204589924996117723031491205673061674252841792149409384720347601549237626288416453061224734057079515141650.0 -826416247951451524584060567988229017033981218652490450160817307801130685352465013890931297548015267655971295627931896259998420078888499206031390299169584.0) -4999644605638856588581238481465237523157457201817697008198975191261856978252081380810200468420738807464233192102972784271159116426108806200426852134469939032473362689081653859652824862066224063273799612269941254948709760659691148103622071316554194507524610166457990087959160807415102946877307193349131573600.0)
-      (num-test (* -1175978338162966145239180473229656000174129248706173549637767835154921467129547950144109700900405904250603515318348888619371004435353505449762899046094747.0 8633693716102199391202401198009047492431980605560930404972542822133579985462906768067706391388213605203282586546130434156768523403030127356256666478340720.0) -10153036788469908062299722391986722149392791936544969945546931764708792252481931153733789787389051773529081688846141949513463792442701686406966696738286561777611293604311491896230769507535896070984747493738525389837795316954065260075941524322954935690803870500012809797698319359975893462672845329776468197840.0)
-      (num-test (* -5083395547684319640767882199938390155755986838939007846911062687871291096073452055061784159768637502151635665247461348347470360218957222873087414506633886.0 10813098236568616588240471432239693891825284805405416395976866126102880121934298269375465735278296789484402954117593716698067735458182402220278016922449294.0) -54967255432446073625448401244836956268872685687128644401372608170106281377801209665004925733448944141633739594240156882328181133879414641109484442890809130544146420476457200729843868300396656004198615619691952536924980482714767859804902602805398865249514544806725162402291122143659939645240358379962457176484.0)
-      (num-test (* -8944626200084865988157251013718979706166428261352840753194709093968177704853157211364231059892647813839391802007588961807572842923682104089512428902387812.0 3814836951264415657788614449012480613328314590744410079075164918748648723114236698412482309581077603776489883375576245233128800002373843611668945838558629.0) -34122290543331565327874124324135450224668275222811493728051290368641401807963502623692504750924543845019291736982354932620821594287780848608647686402233097059022704206628297180782771812500512744911371653368388270442874670230118309469599458827222162362901084328510647514081302476000779049412605744638457029748.0)
-      (num-test (* 5186176030253526423885531264483408352469356233262336223619904269047786350470477526433506158542551137478071074193659876898065998079440819597952826155782068.0 21428324964794197485898135923805540163916541943812058590308650649384013587098638034673796533027113673143959572855470411726978105342739938341516634354246514986124789451866589211982659199267654387148420461876524076040233779391563396552267276880650559148637067641021059664960876301072636635299261389450890094318429077561092553337025096293793433968243940381587994428364726938534453507046761494257538813861046058298873206568935790790373886840765817404479239485444563488020955730741209738203470138117422899051269778988135668626686262669881048094388220931264751830393793846372816717368806996496715219806062282836392457741918.0) 111131065300898907482632501071313138589398597291097276435916516379173430095773463468344138866282820740991088290299992221985607057347883717514843661030457396422379155394966857856069231504805779448809986906434617741485942621643754096548512120178021034054648207248963478122178145159262707381679354401629366698488021743300737044695960363216253889163551918513521913593214414139637549577618641974388739304727218804595402055185824193445089425262833385286117064481648652550355832014346131722965510192584901901111154083186713580209077544982897821477349293279848852596241762198202012197892321827305803333334823616660229870976569043453639028059771892706354703750763908127611939169337399882784092285804830644630059487027413697220038110815990084742241055099963659761569486906596326424.0)
-      (num-test (* -12615422028124847936088012564413126213419674293830655240645918456932358053670311316461359727921727680491520480380615359506308571290338231702217134487397730.0 21538722931308708400287621200994476771789912594554241036641406577761480056366647329031140922034590767810855360008375309986798226712928670905618807986829790199948665185268081173685941421700542631395958882077936923141152528333121096909688700106365468854487023847026564219531968849793109908193037522063952753477768381591929787242143631287330811801315216116212154423972654430356675401769729358415036943501470085182304183033246682446978634892995900678975109490698283226559860736462409705544079080978470202336645384768211440438501339641775269445439018148409151795830925198162301321965042997632479354427154223366199106583051.0) -271720079725309675925162538296715595434811519956795637977932956405490708202732964133816538801099235844279338645471102896234318181092598033040518838847055114923365599862266767493227393553801736813141780001130539648588341196802606083178208108557367013886856183999712817955194261262279080641101769944037282423238147653270651419282545398168930625797556638625301898893565965773914460998322350526545278664715332414172614761548301364063397364632709194713561073496860524124460861314674679928692398440036071116570829193414179054372604203478369755566003622621281005164747628075596444178089558747835994702060740334079222508147598079351187013336751322569865313532407367116553748939535664259669808534100091049960040092785009707220249025633808590643620557093069849490009472441113874230.0)
-      (num-test (* 10381022953674450046578890619826448644067144294659610359943634722044183130638243233110364436029778310048006743033299956844491228999113516347401915490861208.0 -20974871685432829994714153210121536409377362402944992609230062091789259307033495284524234519701670462495676590513192861649457148897274608767543942797542628100823017887236899471151903799837558453043431373811892813126194662218472834650841742305925226558315372771353677064933578639099452438843500601586038910108679737480263349221244638463171088589123712367802373159421798288708123925853179931628847579314900787361946716531755600236755527982132768286927549323465697241340003870259800347640599467922823203446834792229595507968354687630029075884034263531531423883902851487995214646322431057626558858528344843531280263328354.0) -217740624416854507100100919338835880277259264187442792458843251425095703739537223785767883764746809214920580060316177442387941385712712426957388995082877226019966428812240179251716274377143798847348759498926420314709056615470455134468678662646006408843897699718742372199854223008996321568642038054564397441209859567556502098420151667437837356649730396360374136203172669776530655738388121236079327354422138744456395348910073462618440421257604563050031602590345028438897601523520973759458890228893913090702884911857207117714231568437403212806578764580006787626657709435954760239671948147344463295520930250155876010414461245194991189183956653772752290656063730950237649394743456230607077768595983629559996700837383822873994717987698780007691157576205450973669241823945091632.0)
-      (num-test (* -3984492646329789478973994496812455855595578196959138558282015917391108383154917581748539892089090551298072688793487597623310815918942283997753800645644511.0 22199897116873160263914990610762123553075230334116099569358672964060004245706770678771431369917479502828754815568950371273785689812698287446020480951417047185190067265849637510591502642000414540862689426343523077229502494771352820057572619644085930901096534031496492870227890836816886496090287321502805172125273822231241073590840684742085641304915656543831190976008986490532066597410386596132766422026234488163435487889876791504407434387555507637783709991326338482319227500686541368087892665100076351075069628862376686619537655838590687615291898971286325099164241688147975845320979841704002364545072665891829427213069.0) -88455326811459002089798581395024759975871889172872668466370443703433800509268320055453743803627754859670391415348970278548381190662701716228279482045339649051139909543850883613464992501666524385524517648069873862957915620016943364950043289963237718026629805297916194484838158010754666017024585366330526135823515744339445036315966714684052345462172808299142368905939297220895721123725415007532441824406115746741972351142687017849809593982432484296719999502992792447259391592152463664807498752410740679664044620898308783634092355737296495489953554685938970593890496829484673393665321572846542839714620847185428664388282452532264810310019327395691530430185946743995669191791841546685206884247468693248673484055915613115527492005264289557719000245333079386593840592027314259.0)
-      (num-test (* -10672574004830373997900438516438419278676753890756925443116289034080220708922677740383425352837266631691319394850521121221541344600832530724104047804922665.0 -7307684417326792807224298894786988180161884427390942431653062127076829842696634441114228528164049031680536693195116703321494895319862805505304314401000204515985676763063862569446064343853536464020413910728442475032187317639476018710375702206456631041987826826225461927793241495220512935434301833094232834266749666697332380140380619185254354273073522191066457437931022783436360434167505326773192959291779779370530770935758482422581712556111319611455306383173529090289274267200543081481693078804068524057891845603351773722737987393428313340760607600482724483853560340630587029610437280601010173185018227638972500038072.0) 77991802747865927212086621295493124451256238920588746597961055391511562690441964216934615500942858653797884925704270904527938466874924049039962754703188019915846345804228044693122758075602494985337649496117180241872910247079655077012999375809878184011356481981590430241786534827516536543734645410817621964035091467871491521760928486006653992134635010794346993161329777270345449763927429735191213854873362673179799811714902439637861750855639857969259787075469241319618538795721956528400353086156169058060112255274542232054021662809196965752800525093125763127895334967094763817500702626282397394521201385439419885607578137159972521677923972708827090645776826953976605193554447841693259586575931864396484621463004541561908426383260772786784541411548146173991869741515701880.0)
-      (num-test (* 1420855003086789510813111205540636553863493314684153860389816109865085846062678305775289632805233481596171530412925552158799875183492757047174905459819169.0 13897739053062356545217161606361735964779941697726983959749295377836209520566715597422965426908191354971972501742952706730523748574796773473606175934144970768662226027157110240776527834790487577863781140089347362129598158760833470434895693782503529955845076709376071972727346128409008293671217324995682020009675316075606538241192607139905488719485728099428376369506685875348346231688684483781160648420909364963718027571565217314827671844485031440079254478598236877074793221578612249882886835580737423192061550370069895525711885220268707201966615936769696379335772521903910689934596134239331592980694745008817040569590.0) 19746672065138309742065153069587996891492444461032276894328314121573439684229636534026409362850111716212254549198595854140809664451286626009917828620279583631575940837712663100442879662416765138504151063632823014639305658882804073655537352377258786105147057375069447099908107785635606190515362082317465738205179108333064680370909383338688734129396788764959056886328471374018961975554190739706996184818378586233017775166959010668462907838359485424792026496574369912033757997469014639705459505746723512361959074802456098328538419933637295482429555127226978561859965498424173552676019033370307387047798600024901453757451579262061785051932535359410827170361533603618131510421439128567361259204833501190218719779570258541358012741265599985490513564378203502703406698160470710.0)
-      (num-test (* -25117824099635104147178796272946098711514362630774369209876335291088434247131228189812265510495277875692804180473811834186270331245779845635089547499275113671007257221593872123397418355506777725721168216892830217596134983713752526559153149600553468865338887605949011743043425900799896245185282419637806859906582214420191794114207677635194054239563071023206500505880052007267243210206807805387341085613436600843317096291021780624738422589234020279836961194869688005260369009833026575446099544900581955685627511787510900479881434909308757027825050977932238481841909425598834367032841935054158448815026264505726593064239.0 7846111496222858966.0) -197077248428250572361351389692146917243277049539013604789802566767174747369897711991559940484392921619974209620152008632450612546796556905740493507885376190913893140368029841033442857949219716681475253727058707723386016055991276120001690579154370788782636181079931076758384034193266737114305362492836167078199155929937891579224024229182935372106924021709421948701131654358516297806197381566809357458374057189773041520552821330635689748583803171230633654728360451100477472934847975252390985102859262992904778849652221553818627134153578436315973777720706502751232660284910468721430874674021521629540714057383398858244828214000543075116874.0)
-      (num-test (* -12000343217458212092754251360179138661969968218789048702097501439124892987400633614429800307263114371624489988815324366411323242909652002510513570900627875514001409309670202055060404640758548257776155562167062337394219073071639153822126554525439988062676648294108951003012550815746564810508912122306190725453386412796036693387315128514162061147675205485143205925649214342646148112549805850530430229663418469577245456944558387628002442451042105749848177325651852669794048215063957689756465788955050513359977166122710392613631703123491357791351447110169966270916789849428298930624807758982400706608788793481972190953569.0 15463017349709835150.0) -185561515374029078700596518575548896805308728003103939537818954646551372890610870275966055765608887701776880889777402229764948269089126750201922167386201171243298907675542965323275634529293654817279957832652909009385491998537031060285890512199675273422070784691446251899120095880199298512230290860589352290462643231396804350623684034400741386070220057232978556614620855818271117742675632435727751812101639747357642295230273344552327870600519422276996860893842363996198017494117619585153346745838853026029459826407782259598477529242420507010652705302341725948095720110508044256096963772599572721279996322424269691990173052929936294150350.0)
-      (num-test (* 20244597897909303129995907707212050478823487084391413473821544089492035634291726811145005824559631386634261268723753786161463497881725871168747275110149007801865428978596190887145324535224079986377522166727137028753272158887188902047835658826867304220850429481233026043496635847568448251753504834367809877190895369288045026559783632709799678639927825194847005181499299410953860627694080906167346078299421796974815616608326704894611151743720515377248152215241639534004099341398238713597030368980166731393247619511322804984829747216779359780372801101821087516269912916462719248736442644433057333788741151270815989388229.0 17931151643499274580.0) 363008954869078360197158713265773114114991766614027768774402465306840646219477262855625957403406166192075865834283840624408916170935610374573318606346031792128003204902147985329385955814330782527184421959263266167048755628089412213360508944817963403092490479480264538027768728303095523018598016863928762335410109567604756183580676503045557867957273324581082608248341332512325136675167966306268035077761004923732568405295901819511346235524577361289712297365403327125212199451099538443576479787130510546755789504852631291774614010584650672707483555436445926222945298928326313943231688436271883746272589347954697213098866117569339490918820.0)
-      (num-test (* 18134862906191691435095953372467318196853760384894170022863300447691250350836421337333332682828557871096554531436829166444150586004379181099133295174348038948038399079336722004125999533719492457544642570217406286811480006881054375314838605871238868968956868878182133492469763282800195060849734382249696543089869191257451321764806079423169235271658993054867624410589213892458246001270123109841429271429275464249821855221014782727398959126117031823977229309775211695677345378510417534328974531801634095862859684508240122911023047425473036305928743193594967362216559973174709883576295373749738633873828863608550295977368.0 15082354452174510460.0) 273516430292774638949326170314933525797985748367549139070674899956657807928629067317576809269188258819686207094298714770978509118959142516619521080722291318367607601498107007447014759288176261262818034997399866363248136237609824401265450913244758024085739876914482935655100890803279961929047974391299795570244708811454483314898873277493486428279875241232025231140855860469097028388778917980779775554139507550577255217032521719099071084956515691364008526064349956553916033914728254580848198941020806723485184338914882588931083516851849558411503129184026079582257756707601984686901646494090820169212279581209612798749779318126482639269280.0)
-      (num-test (* 19213874382308276075905228027166553836726993832150876980655958901416537033385379180983129528081628446454583401834309285184752924794893846406622935494758142810049493348116192315865522516744262115026742103678965417868790607689989205765793528434388393584537260717130892518011447327847533083474230074174308157934463971640826422302901570010591182715932658037868980053012095115562188975692530473556182305847290196895478280679341869546292639446526021874910117953225154204035612531584978136604161393474554294315903436682283787080297348697922389355209790646124024053098888687638640826064745026930980189268652291562437512941810.0 3155416591710364359.0) 60627778016974262766014671335614995348970065077989108071534610098195400001445248886220725085881796599270026085183075312353388418711598523030563716616967792282609748819081238929738105086199457414615236966895805539596649555457494710621217412773036416007129418290246899690911654008867819945724649185574237527152410775686803449108977881160831441280833577932476667657759420192656716352190871667386955409426879693856001112340390304980532208752863058384169885129364117656404549585836664647784765508649117301622797243353610345828189312360124462238989888436478381583689386509617357901461416012201469794664889076397809504626996523928173064949790.0)
-      (num-test (* -6561903839860415551587224953276060627466820222543175464705113686962550773423611522044145975606965294164125376820288981286542044306677764776675868357117109664125730405280822770267329297542599719353907954399688197248115043785617436343303277493146049939491224480136371029084354063731401026459653680017632996944506546122253686805764620116169065663214526857151412139439538335533979733329962892417175374550305659302592107472151941922230309227785266745974334776462642676959433923828440435340579340133192678341787895007461237846313005612116885419002449356480017828933592324336731295317076205553526568668826499450826560670163.0 14908715577157091280.0) -97829557993133908713082095435440645457469053259814412551982534425389603663024461131358343104414088618618030154957456050473312402460589893359522167472060177968099538846750606564761307960896264958539903740023783283814849937681270591589750181462708056758506230073751440847913386576449367635057595344744119561166438538811561109125506233466453974371464999669336530949393433719456191822836826214814780222021267726528396849558417851727452246676857867278196266042327956933753121947589485377148388716839519782819642328655117625818256334190717182923260613562191698788004591479576661108985313450029332968584240383859113741485244318702724563478640.0)
-      (num-test (* -10378013547095983701124686671659666242518351347561698092030999302329372512356819420877395264401390796163955327080881297568412490286247154759694714275858127906305200295043241717769593877683535229411640745872559018085757273530771413156968541499388413497221629366848027355125816131586610997516488552323667400115617175682996681969687885201321292153656071894385242141321468096793766926179134511319941715949712230831768643024119693594235207988046511542691719002262040067921088838755337917414526554050602539873232518619281766327369577617796816586064895744680567067970817494102948032924671421242699225194947982378019119315136.0 30004910492448871409155105619400474385.0) -311391367570036811050052853596227388481520279736812036769684195465110674594690412517879149770622679377262288447706750813509857551308594851067359841826754786725926298013483569424123912020079066150719085450400229896983461212531213110847425940968466564079253939695853896434719530729030897976597410468081535234663568150722646854183317007227669132983719314653861536414057481478039579810285535699518386214012059191958557306338432321511585867535008319640705419431310336566447165302011113284064246284641707577414470505948868362067233709611758700034131461348997580441628136979257037186480770286846026250437141175360847735150981343952303257191661069675154710791360.0)
-      (num-test (* 6311357747888359229575837883366949670125882865462293491587368290797766017168248637163030339387377997726585769250585768079027576213724941259801478313127113803503561717311996500019522893295813684259416551410025111443510215766297835872165689077882298506134885487991732718254835036694083204758447948541157893533099634169589161496492972953698758234452126564385255035294546278732684663873459439615228706684138982066055370429797835904846166362278557095045056472775166294675997320598469599722704075215700819354957397052721573993997624711445698656580401684113096559767093466880001548887739825916626416328760047783071058963451.0 -212654096583990292869707082365869207538.0) -1342136080095566600483524091094048745061145155430997807005186206704767933140306297188996797343723817220160636373424666345108189275851749622201429179882167381735732553825696482751584102093819432866729465599060815670807282181979889263381844726842751894916887860819210652174987999919869623292751389157233409465756974677789790982740267208982768450215563288024088369480574425410032306456026930809228182100949940216614156925537929648841127727165386031716586596638254705402653861723407930666152691102484352058909219619985877341630210918347460471644327858114815713557305185589162775699323253049631349906791700893878999711846225062306568467992135934882289075693638.0)
-      (num-test (* 25104391676237653962996674810232896003857294806799086059884413856421530328279649263948893056601611073815235439115612155497964541323584159786678357898152394779494741995735881624055133443980324145256438160990490767324719276757840825641421547232460969806196141938571103617707677351907526127993230143577974386169402623023560579220343920203666762052525898442578990183400559087522259053245822827313206196194989095468393682721753147596892214609346047051670610252732846805143964713621673722554204896154742594858056891979146566683467510164875593192581407047920719605560716270697985110227952698114701527191421628561835164291236.0 -205991315859231724218751687295926841150.0) -5171286675233738337789203670843122752625713948587464573381323151628930998435518250812603433784823922283042037694290795352461861058217142213862777203850665369756106838860420507328654214723398688455622487003912073924323587826356928211672752672052670663842775836967587150049181838707784871641183683742967716787111671792311389517753578360293551031540853470719098360013225516593755039537796518619542838794169319227197212817921098393499332268929332950035803734983497370378852859829228973012039890600437082235032378948656232679080766068869430262740600476498399803176452431728914806536862849281928869092524387549297345184969051926149006293586531930828748109161400.0)
-      (num-test (* -25971587288596053786734900662696128734726180676323130693160397208008930123341700520454723462226657743365779183466120836187720332442041321870351823609046027805781414454998487673927365486893294110931852680018706479684281928396163669935417207859889405108139261480861908067489849403284000981453574189898304616775302917687860062501465417706095450121596418236563421425311420755550335597318818628123183624214438801254105808079227429950505879366254661664881055965092586612702279548151277733307180663770432418397550642136953750720624507617115504303570076531620003848642167562950736271141440609700821621532583527124386811144839.0 -182748557863603655835821910989658558236.0) 4746270122419629115710902425435990509747636609113505336611751359043717100752575149404352359855260443259846554733621122684788488984010741203981300775978945529551335641218319619542248418128319220383298229263331638090009313676486209764655429828385994626323209879925281409485074778611946493692237774852428345451174837474328995186242262565013937544898941834362941815633750896882758939509605799422068815435202904271722442099465950700886702949580264958171808372530471918175963644209760378395316412115175988232945569517230829200985652504383431054550902852797293952515652017940918628980037316292352828228005975466732028971159947131994753006597870175664981312344004.0)
-      (num-test (* 2117427896392849163304163145095251890404997781812823978967013619233450901604407363671467658244435728579079751353560538034596183240362499870272373308111405924505741579887345118857908796509418246599428633956038017783178050402412769812823236255234302205027282366926174916871858199918908361186936687654278623156607813451034087735179167324944824913226799346886951212979149617678949292799645035425029596869092844906629996914674904522806258932192931217652241231736891642224851547474205131131019084734780208254203537633402057673465583362982905095029133132240839391503135932501785844503813910210348239157828902668852795945482.0 -296778668392678698960782643314222141731.0) -628407431508980610909134894336322264939705333430111861505965183839156278363647883745193463537783397824947515214540990712455315080515980803996660089847066076833542492719707493333185909990202372284811233272987993068106356248349054482194817336258302692039392400931536481136340269417905505366385505196886218794044229758585631131853635721528813397816307666671727692971421531381290925317161326036075629905443938124481334173158440927555118173661486114828362551889594188958723424604273078091320087897088472418346754088900034854230711982602435635574895960156993014703292551046970069204857846207328434544990709459402656908170089318995291341536347275682867153109342.0)
-      (num-test (* 24743327715258194976385899813930363006464428087412805068703455203318769863096919192538751530954777047772548306936907016751357570434930538612382851621309732767199276228580401695793317612267605312672263736938703887622824117576912830029817460033437752668221355377879837833796222831371174014543622739933433581963103361464022058091243110136610854806189138108937004805781857031030005354158991203388998364340053773883952742645161560754545458260688560269655272249435540890073696261770299845722705104648358053080678920468895189601731801025555650490534399590288852165862135571140382055044665678298182909026026068995867606241201.0 309156501491030456401354118244509785044.0) 7649560631695275371386748526795333430293346807872366006552933839286343590101586516802834568317627508914888989005968805867728947519409222814667350103434422356009252082456906520988877859152125402282765775845766265340707473525444185795403554160270722809642681642831847296672303556012796775586274347178092325226458743113317655523655255626670958156216225968018208281266858684283741496986683426354716284780229004376492833583965647875097951642088252875535823145900129967026856898970545720526282798418382467634180690243423325770596949644122541224189780082061715230852249880601371985342796525016176048518593825361248232406051886794538203297084423942036889326397844.0)
-      (num-test (* 31345149697924857384985323414506591310628538098830133854928154990821019223495435414394178930529373634315044777562902565397455028894455733092896622048288278424884040917250546068175763309233883078972879622697667174865833277342334219810618450605650614585133187005110148963483824629405555603493157452295284935004578187488673124814714326405406894084902824045787647963172437833905574178160343833139650913077173865287057167288286708807322607983179910358234015596109655900840652230258122852488289951986129788952718105898226951651151495867246384586164892018870981480003722043190639707903266193064807571586900961788679579912089.0 2067227180806746570739122295766566373146995767544546241400900414826379465803168632854028593293108913670556431832056563218709444199286888840721753894461468.0) 64797545442006646811970698282511426059102976298051534827345388707272469591333019870381858263624490336448197115781363489554169207652559213486772008013638214870324260793199674746523791257170452738018910619029072942848422098770309928561867618844814267276213608306045020686764830302020953883994906997293368193331696747777630621086600981981357507299729947717565760536305785574555255589190221698706036770081438750974356437738060098906046001271392354762036427049946092656701257615490057677558059955825843182799904828201890893555678855718728417223845757559310912618029462136640226686626513375024547351747669476392735304999046232068947570708757930233036922714350584650744960478326257916948676866148362166017752159953504981324652709881831381637989229842766220141292801807437886652.0)
-      (num-test (* 1965759082776833678304908699214846485256126608825750175641683294458978302204367346739996602241053060915897480812220051082619942907491598551933638540412113496542245474287364500698693202553692963910123752514310355402167440783023542848697962967771951714434359320001430281377747193083851165947498546085410216620013287853719686698746328198021011905482303248172483782066908570502837009924228011993318265674390462360820566174204659723461994730913995303015012684826295802887547970851558451858623353950391701673651959262042520584275132971807158231859672678070714276061110616753309305801080136339206017351200193800253572481467.0 -11092241138073130060021642325471345789108575712118027611362686690749327689527135459714040658411176246054106270789083336195599640521602432629024562630323934.0) -21804673765518097879589124792137157558586438669762099454880024920520894260754279593873244443852337739758694535682558790532827482894104906218015712179591886600693703465749571299271429989154199263793230178266758966678432691901731270899259065726530463438316383699558373053423999416350780342222940065486831353604365192968606300436304827279383661172824549131179471364227618431414928702407510473319879188990689163932586727702195573766225861364297410904859137393184592815970592502081722125458353280743087607273547490382023433724488604177909671497082747464946083901888849483505451426245881736990810339421864101129619181017696837017966116165703320918568645290788634265522956017905246042460811062666193790657969385648522736090098231379029903772234867701846824572274796526421531178.0)
-      (num-test (* -4067457132547237558852016696244696525033953641638067592741078194074861352472861925779476293767777560910963786727886946479865734639031042985368829200802420611189793957001730656623744670821921724417176679009632346904384261431052972127975733031277489967119978909321422086102208644766894305071609385305464547231057263658903212521469801833214062476735046735467944834107695748433481665714184831786462886261252526036621257865158497049125410241033365487816324425563483999957660557670189397770488996359512245971368638615503320507431381893539767352426795415898379765583574977542068222040889423739693921998717145084904555464058.0 9635268828818063607505341812331931088336041632536136269505180222913464638532245578488168867093853062326136774925531196873279749483997619950077042084971972.0) -39191042921786100943542578352486285322085069425292685238158202937549417928185097567102615300826629615520476316505465412722375794150552330462353356124896483739321653441446703127728441315609093330694305784991844511900128172079464896650958648496336601612657347012294121239821167759496102233234525084695798195547141521849769350204659392602605928907953707277320590923278178152903602506284861018886300148663530071056792375593665422754923886137410482547324901798328311927545105456397213670390651819229021443747424183114992653572959318104053511452473611466305149349027962240989590453237778130260105665310067480846969449221473610614214933278048389171979184119355459010233147440293881252851501522689209874112819966647846701257081192324007280573826673895648273593609466000383382376.0)
-      (num-test (* -22047771987573494284336211037167956208924595972749016352929724093971147687332865088249749580556015503923927321586913446367676445848750229391300778587369581738560634537089081840938984779012854694220894920437076215176060179241185151442003472788530160589267677502568156006531439509890061829154786579353177129190813899423306499631144919702707240832059008168851983259611724134448165201725432622521420667808597545410136493805873769372831833878868603946583848422310946469083400330960925084024624317866822897278934924368888332618046649078771617892961267312226309927786691384460940015979582201446635756024251269978545916298961.0 7481502540911026808093162425787184755732317118387068406204973030847892995155568099553397887864257088525242568880427634318737874025160499293315047534753494.0) -164950462146458057264341765173378248123415893870534274075422323606836246718538063890359159423074703472625232511667875897808555123518162244263016096627959208397334135559180524195701526029092734741010866589515172934676451385008535538102832400604699294088534999994990970130226363762230944961249818769566697211068918154629209895730969522747736738946126971914549491889482944152891334838234907190697109929512401661529882587076352559260375439428815896053844621297552401396168240947357044985051323834074355418902009161796886350497072010833513601114819625605048943438304411954380599728561071485061414856047768286383287807924135081902458690495890129203192613070824670256334683011083767124852354110322463725619194174195587835939047474059288568764831570274891727391545546467943319734.0)
-      (num-test (* 22607201423790553279447786193696575272983924506336369475058795405894123712509544256099524616893423762658394830755129501447553593365768543361107397299007141714383407862976654294384881771985218996697067215804348472693636567074361380875512341556932579903687576929186215185312685712277482751425466251201421842248749944123326048360909954588266368306843116245625635467041934524547983478110533044085242847795585598341867070787331785945399446665919396062565614516404861115244243161694059679274045050270546536781907061002623188435269769778378780371158624481539046590932125320888745103158180784231722265376331553893647061533815.0 10075764395489719205294189472045365742345400155046712954334138069917417587273618147303160957788995022989479371576840422540097479703418600112174202202728054.0) 227784835187493343385594867881830022845566753253174983274076326016001091958812135049265213053390506720261776960833046225700903422206015373488419693650378821159134369608830936915027161415300759990632038898164509761337714774392506802504397626551196717184785586630245704512525844329038355790338277254618639554796026366029578805283659986085947726260520495140332204643887370987929304924491772630534558682402396784510750317396488402942581973350428066695976988812610467654886227733900635715495731445319565054848075104982244316563526232071957624002266648721592744376122065531440026836549316222728280595228806728872537793522244957258060730038589170810090676474272044568671474692128168357087077816573419470273384256552275636517940058764711467508281344270125535855785388198570146010.0)
-      (num-test (* 21997874907846585575969651776904015812729615626636027149446399573806943459105370044846476738175828244018281160136531735881270437472624605280356112191272531838028896521621800558410217146758345955334174583639352151367532676985598470747138461153212653362188252002768647808852054182649808145379073620834551216386805267446360709820441771932135218282126427988826945094538034579367527908530151926679515746133600376612899354099328788736038811470295396365432559354070365548930628714861826464935305416998192532029724853617023971964507955475554955277722555849603716733374588174421463022213135839490633927005539569058361144905451.0 -1400498192750070094581812894241996480373581610489471746158083224360249880335094841398529960182484181641387946900090289855375996313447832474435929084180606.0) -30807984052781257825246153008277875918087659020905755686964119182052911551148620538090633516362197112383237624321406969368641524681503231262834662890145617622830207559490089313283375890353617292096501953380469351747504928597461154633889236826060654886877907382241867167198409355653371944304660938495445848950444683274236538890057643038410268234731745456035923559528706349316582901179686671568504971088561096469997823300883298811440849031903066114422309644669680078733839046643542078157684064686933779591609758494599988463628362190034612412739669041368897594110022347872452261447359402810277413572637740870748949093642723240662839444216981630862346445890780016393330114883270596630385367407921496982236074288475142085411632630374714528706189796772213264952893973677883306.0)
-      (num-test (* -270155241925436273159477510619232592261228150696806729750247050.0 15545126743930076938536195287546926534964892301082800206802745964245668351235397.0 72127079799316080210744562119267314209211162112457416152560774669179705347659265.0 58427280233475514109627698916382980237252687770812483048907352594138577656301900.0 91336330475502063985843547526216808965829995610054777216888670176112782119332811.0 99495081134815818196404370468895496198561677002653930126818668800341380375657337.0 6904264296552316628911621065724553059847235903647375662685025031963599691416829398469283631386160328944460790101458427909545198569619131058877708293713734.0 -16074984786353617526516141164566295497596312655026144270863093715961484079732496604871734572736757225277596743795506589617891195569235287256031608792067121393492186703333733526879481948463529609113624075923052999494363547340563039654910799974388353472433635130983731604982117092991918514078659590068643956240711810902756784590442416249652077644077280371860780741318193975770906075446772544431670392964384669681404295839302410058434872964315897505894833409101781069230919347279857855594782111721176074849502391457684148683668165019969667481755384384017844104770253558111588611189351637275389688093074751942960310850074.0) 17849860827147993486644896214424106325295064110723402251474432199595968349198253682890653243676378684005650871261983711134190416277366473221365848417375107498764965893729640224952922241531788638514200018520970345581414705756736222535562338748426356003659523260330725662384208724142177900990027225665451069059291754155591197426279006090296512196415617974140965334686090032257444820748820516976632201388937358434205022475303705442914044454220818215336283948743042841946229853366515552653568436171217572212088935263340599371830215580988184775240338748954666846379831467518505260487989636951404886967842600777836444030434816421999334066711024026401362115623932221335906548647785232855815515579448393689650116225664467056283988125816950714780486880294535933597118808163054631168063568847830481653855357008353733414826165759079092633441356914450038756281940532159493763482047244493174370100586359619040444818634156576789665732998111907245928253704097384811414269835758656988678207624731164159069547745777423464124959379113843649940896359346515513936964849811155238140671698227057228045173997904545787593258286212427476788605370334985423461194148838623911634821153061693257996982252745844329344589168264774527631972524787804330730506700000.0)
-      (num-test (* 6411564443509812216548163965666668398784964137255201222920640150.0 65325385402074288043601436729391841747319174569548241717675134253657593233436152.0 63305037198546989906433329294566491017476837189978173607681765241525113921707860.0 72383582945810879300930057856704905379805338886592055772943486702915907397618845.0 35525980101796892634292856352740658817031405780112750352735419884048051630180860.0 47579150292602967366908574298176357632207539947399443701205872093150879604391127.0 7775494633965874654516687741429737470333189902121089184439228657893110997221737422210698789286625633365548095171257583020272703565350668755439139356570.0 -7847653632223099338936161226557020783515367997970448568586056286591257384101422312757649765574456754668588904917800060981155642916520580540801153603733496143328839018174649200566737789874193483124577734129346933208306772618814806884416239295732454033604210880463262467564639515484363761639994642888910703066277724414372379965872478153546766131136324967950786993982228851928269842355632200589446224738709869729930285189047112131897218464505263042012855229737941639093204086147932759923796947642895167078971517834730472596647456786099215405165290569214043431009370032818978995463168133051136053246705694337584724712230.0) -197949741939898550383903354028842356745461597695099989904494711851411610441324234089773644533872304737431480244289438922163630848266242200711131210228027234579469457105291847132071566876246332653149194709623963836885480655282595345693084881617726426841183231475364991154699746506928116505297453355016975688761948609740314324443406930215518937775475617384099331839748494157863510168743547396262979908353122625808170296763676837551973930928848463398657587603606321137626467028732193151671337338929938959296176472483674270114824853018199281637976410726195357458134038379491704909997939715446657856320452698914513791221947734373322868574099599391493563479057703049036936132407025278683219316357543078875410080612067641232277376174351958080693019953378024732243763129075732499165068171168470237875348580987967740148512425201518758344757030205911031119619416763996490581551977913711646761182756531618786226541010835120092904291975494846126923510483263978074437667987560077422810120462938292680423746968095994108344184522240467647491991837793653579480334442342102339933473270535800619630342940590477752278184994533764839125736268376640933720554199782388890444619996919031351334561766248781813883867406045414518951152508504891407920000000.0)
-      (num-test (* 1669833986019218156514274418186396165434871163342486930502417566.0 58528969848472951398118375496887849181512821636583415470809040929690124231959506.0 50098163184827557635697120379841225459445103589988345336880332217224622666020381.0 90445522698871905833766573423181067004916996574451008349087758531794463581708977.0 92366726802191504770638415639612204654473958526592425718659284841373421985393966.0 69096133232785816552402133765198624674167660496399099321713067612475604030259084.0 323971624832697152056406152359288553860210436839331005469891386690556929684663075996719803995137130737141925308417709520389528780839777347463558171582753.0 2635514624483961079560488004237441873979133312246005082134175818331132377114926863102436691793380965631848192666106793612266994709357524826644421074908075389316030912936338175907209987972553710900613011802455058538786723149316934049388525865455871552882282353445228425640452635081303490379594663330152071465360003249884180020993032086861074931796165970076448856988084523672973069824258299029863033098237556417571526135639288006133579174344589248428714474318969988990720790226604664141927030250855550010512291136517209169959021730625428868037074528890516086527430801590050720467893089085308995719513895962750896813152.0) 2413207990093478676325592386500172980330574558867366638913149256222218924700401110600319869300256745035993991818342784487193857053589994816247466074246569162659879368383295411190237107255160498774228460295857931362161062884154872938368166514128474751716517750517217000290486110198899480877593169193610813452614906598055909439037075588626529658637140089909227353944313408987644743661503976835580507054926908821206921014266535160031749397432350114673787218438589065861056449106115395189057409933330355574558853874223262465965933679584884152813357065227868165556818717270584803360466149860292769520737249610469675917864449261901859162854558012721179400237645357401213337423255109839806528503425658270050436129019270883446965562683284298538825840361267548675967778385927410390726055957928634152514415917053614892441910675109517307682075989998558764742821214685548219206933043196677521610851950501225469125512893859254575460130829051324112015464552874242522140166275233893076603452098841950130740353331198999756316969161591691095397245996664755249875720008141774247384884623389430842799829690618405724986702942913150258769060684255363816662231923570491001519802836627028431389746450987110456127797025006251203111629141890634728548553728.0)
+(unless with-bignums
+  (num-test (* 1/9223372036854775807 1/9223372036854775806) 1.1754943508223e-38)
+  (num-test (* 1/98947 2/97499 3/76847 4/61981 5/59981 6/66601) 3.9223808052178e-27)
+  (num-test (* 1/98947 2/97499 3/76847 4/61981 5/59981) 4.3539080668052e-23)
+  (num-test (* 1/98947 2/97499 3/76847 4/61981) 5.2230351951008e-19)
+  (num-test (* 500009/500029 500057/500041 500083/500069) 1.00001999432878)
+  (num-test (* 98947 2/97499 76847 4/61981 5/59981) 304151204360/362470312515139) ;0.00083910652502692
+  
+  (num-test (* 256 2048 35184372088832) 1.8446744073709551616E19)
+  (num-test (* 64 67108864 4294967296) 1.8446744073709551616E19)
+  (num-test (* 65535/131072 2305843009213693952 1048576/524287) 2.30581222282939585599978637654567059645E18))
 
-      ))
+(when with-bignums
+  (let ((twos (make-vector 30)))
+    (do ((i 0 (+ i 1))
+	 (t2 1 (* t2 8)))
+	((= i 30))
+      (set! (twos i) t2))
+    (do ((i 0 (+ i 1)))
+	((= i 29))
+      (if (not (= (twos (+ i 1)) (* 8 (twos i))))
+	  (format-logged #t "~A * 8 -> ~A (~A)~%" (twos i) (* 8 (twos i)) (twos (+ i 1))))
+      (if (not (= (+ (twos (+ i 1)) (* 8 (twos i))) (* 2 (twos (+ i 1)))))
+	  (format-logged #t "~A + ~A -> ~A (~A)~%" (* 8 (twos i)) (twos (+ i 1)) (* 2 (twos (+ i 1)))))
+      (if (not (= (/ (twos (+ i 1)) (twos i)) 8))
+	  (format-logged #t "~A / ~A = ~A (8)~%" (twos (+ i 1)) (twos i) (/ (twos (+ i 1)) (twos i))))
+      (if (not (= (- (twos (+ i 1)) (* 8 (twos i))) 0))
+	  (format-logged #t "~A - ~A -> ~A (0)~%" (* 8 (twos i)) (twos (+ i 1)) (- (twos (+ i 1)) (* 8 (twos i)))))))
+  
+  (letrec ((factorial (lambda (n i) (if (positive? n) (factorial (- n 1) (* i n)) i))))
+    (num-test (/ (factorial 100 1) (factorial 99 1)) 100)
+    (num-test (/ (factorial 1000 1) (factorial 999 1)) 1000)
+    (num-test (factorial 100 1) 93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000)
+    (num-test (factorial 200 1) 788657867364790503552363213932185062295135977687173263294742533244359449963403342920304284011984623904177212138919638830257642790242637105061926624952829931113462857270763317237396988943922445621451664240254033291864131227428294853277524242407573903240321257405579568660226031904170324062351700858796178922222789623703897374720000000000000000000000000000000000000000000000000)
+    
+    (num-test (* (factorial 3 1) (factorial 5 1) (factorial 7 1)) (factorial 10 1)))
+  
+  (num-test (* 30370004999 30370004999) 922337203639284990001)
+  
+  (num-test (* 12345678901234567890 1e-19) 1.234567890123456789E0)
+  (num-test (* 12345678901234567890123456789 1e-29) 1.2345678901234567890123456789e-1)
+  (num-test (* -1.797693134862315699999999999999999999998E308 -9223372036854775808) 1.658079259093488393947175407121858559998E327)
+  (num-test (* -1/21 -1/2432902008176640000) 1/51090942171709440000)
+  (num-test (* -1/21 1/2432902008176640000) -1/51090942171709440000)
+  (num-test (* -1/2432902008176640000 -1/21) 1/51090942171709440000)
+  (num-test (* -1/2432902008176640000 1/21) -1/51090942171709440000)
+  (num-test (* -1/2432902008176640000 2432902008176640000) -1)
+  (num-test (* -21 -2432902008176640000) 51090942171709440000)
+  (num-test (* -21 2432902008176640000) -51090942171709440000)
+  (num-test (* -2432902008176640000 -21) 51090942171709440000)
+  (num-test (* -2432902008176640000 21) -51090942171709440000)
+  (num-test (* -524288 -17600000000000) 9227468800000000000)
+  (num-test (* -9223372036854775808 -9223372036854775808) 85070591730234615865843651857942052864)
+  (num-test (* -9223372036854775808 9223372036854775807 -9223372036854775808) 784637716923335095394403086170723686146950778700062261248)
+  (num-test (* 0+1e20i 0+1e20i) -1e40)
+  (num-test (* 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23) 25852016738884976640000)
+  (num-test (* 1.0e70+i 1.0e70-i) 1.0e140)
+  (num-test (* 1/1024 -1/9765625 -1/512 1/1953125) 1/10000000000000000000)
+  (num-test (* 1/1024 1/9765625 1/512 1/1953125) 1/10000000000000000000)
+  (num-test (* 1/21 -1/2432902008176640000) -1/51090942171709440000)
+  (num-test (* 1/21 1/2432902008176640000) 1/51090942171709440000)
+  (num-test (* 1/2432902008176640000 -1/21) -1/51090942171709440000)
+  (num-test (* 1/2432902008176640000 1/21) 1/51090942171709440000)
+  (num-test (* 1/256 1/256 1/256 1/256 1/256 1/256 1/256 -1/128) (/ most-negative-fixnum))
+  (num-test (* 1/9223372036854775807 1/9223372036854775806) 1/85070591730234615838173535747377725442)
+  (num-test (* 1/98947 2/97499 3/76847 4/61981 5/59981 6/66601) 720/183561983334767209753061626751) 
+  (num-test (* 1/98947 2/97499 3/76847 4/61981 5/59981) 120/2756144552405627689570151)
+  (num-test (* 1000000.0 (+ 1.0 1.2345e-10 -1.0)) 1.2345e-4)
+  (num-test (* 1000000.0 (- 1.0 -1.2345e-10 1.0)) 1.2345e-4)
+  (num-test (* 1000000000 1000000000 1000000000) 1000000000000000000000000000)
+  (num-test (* 1024 -9765625 512 -1953125) 10000000000000000000)
+  (num-test (* 1024 9765625 512 1953125) 10000000000000000000)
+  (num-test (* 132120577/12 33292289/6 260046847/4) 1143841133453061178785791/288)
+  (num-test (* 2 12345678901234567890+12345678901234567890i) 2.469135780246913578E19+2.469135780246913578E19i)
+  (num-test (* 2.0e-170 3.0e-170 4.0e170 5.0e170) 120.0)
+  (num-test (* 21 -2432902008176640000) -51090942171709440000)
+  (num-test (* 21 2432902008176640000) 51090942171709440000)
+  (num-test (* 2432902008176640000 -21) -51090942171709440000)
+  (num-test (* 2432902008176640000 21) 51090942171709440000)
+  (num-test (* 4.0e170 5.0e170 2.0e-170 3.0e-170) 120.0)
+  (num-test (* 4294967296 4294967296) 18446744073709551616)
+  (num-test (* 500009/500029 500057/500041 500083/500069) 125037252995542579/125034753009582041)
+  (num-test (* 524288 -19073486328125) -10000000000000000000)
+  (num-test (* 524288 -19073486328125) -10000000000000000000)
+  (num-test (* 524288 17600000000000) 9227468800000000000)
+  (num-test (* 9223372036854775807 -9223372036854775808) -85070591730234615856620279821087277056)
+  (num-test (* 9223372036854775807 9223372036854775807) 85070591730234615847396907784232501249)
+  (num-test (* 98947 2/97499 76847 4/61981 5/59981) 304151204360/362470312515139)
+  (num-test (* 8736/53718 63349/36593 2595/65149 64793/55654 43939/26485) 1390659088083157464/64205855201422018751)
+  (num-test (* 54969/62648 20435/1782 23198/40155 17874/3641 36734/7395 36402/62041) 13827254253801875273/166253154009320895)
+  (num-test (* 60943/34150 48303/50035 11510/48029 47829/30632 32873/18834 22417/2481 33058/12503 17309/26655) 1265424338804436192426278624740533/72495658400472874898571063803000)
+  (num-test (* 27004/45232 47028/36314 65506/17434 26523/52475 51611/16322 12090/12813 11405/42722) 3271229108161979601346009209/2797073684091589444785715868)
+  (num-test (* 49543/13313 13047/51213 291/3256 62128/1256 22252/50000 6721/49922 20433/22341) 13848375453906602673519/60295540932769356700000)
+  (num-test (* 24886/21411 24103/16998 16669/52061 10869/30910 63499/50270 23235/64564 6966/28625 26608/32424 957/55396 36661/63680) 252953666671747144783991553669663/1509848199529034284126219405993600000)
+  (num-test (* 10658/5373 33874/4120 50218/27624 32003/31997 36890/5232 20975/22222 42566/23821 32593/38877) 79446367034396970532424018904275/268718417239101417993099877056)
+  (num-test (* 47540/33937 9597/40213 20965/57592 33167/35761 51930/46345 5554/50786 22141/42957 38576/15987 33878/10223) 94287693697494661741863470671584800/1654020197364120441179131115365910721)
+  (num-test (* 25521/34695 63478/8947 53875/28904 102/42469 1068/32213 42994/18166 58634/22402 26266/21149 46345/3896 12489/21331) 2213218340996076291055274962125/53325428353972306616141560355198)
+  (num-test (* 40953/64127 12327/6961 22167/29019 49635/32796 7657/16493 22904/2449 61975/28667 20516/6004) 4090451708614082328368601750/97539662436128754819974369)
+  (num-test (* 10109/23696 35613/28646 25222/28402 1339/25272 54032/1074 54456/39833 38346/15060 41802/41388 56761/38781 54798/1261) 8983158114946791370557093367421339/31998667830808722335250880339080)
+  (num-test (* 3039/17717 46858/6352 49984/23638 8924/34958 34932/46369 4022/13488 38433/34538 46750/2645 43883/61392) 6694310491567033247725656525/3103280388958588906030059796)
+  (num-test (* 31536/12807 62185/56296 30389/6526 53321/20781 58342/28759 39269/53225) 108723306155880938114002/2235179806925856029655)
+  (num-test (* 58784/29145 14245/16217 32388/51826 46401/13774 59002/56853 35615/17085 41786/53891 41646/4047 49564/4554 33807/36767) 2545383335773830668541245993741980009984/3950524525412306420222230035841219227)
+  (num-test (* 39890/59976 16641/39135 36632/15382 4037/16674 32789/39049 5621/24393 7230/37552) 4325746891228381220240705/712068637373286863948894448)
+  (num-test (* 64658/532 12056/22843 48004/41965 17525/20404 46987/34608 39890/37132 32167/52059 26352/16429 62428/21665 39941/30015 19743/16456) 24452413077816850567396233613920457829/58345020552056693855433778720676771)
+  (num-test (* 46215/56564 13217/15837 35488/45940 34754/59356 39024/37453 37845/19747 12129/17699 11475/23380 3024/11313) 9665517455334091811247537600/174562349461714107552224378659)
+  (num-test (* 20849/43211 44644/8350 39144/3119 26169/58795 48540/58870 53603/35775 50387/50026) 1503119635914748931419827344/83828469729567613584821875)
+  
+  (num-test (* -1412797070596191471 -15492755620416346417) 21888119755986895161222137392796809407)
+  (num-test (* 16686841096925954110 1491135775021813104) 24882345731730524499708005167300657440)
+  (num-test (* 13262412958100188045 -18379071970155621919) -243750842254847872704698616507823758355)
+  (num-test (* 889503034794263569 -16600674457216690894) -14766350309325860687849239111838240686)
+  (num-test (* 3148165694020236318 -11771070679825280729) -37057280896113409834434531491271315822)
+  (num-test (* -4443818546267181727 -12001052312087213799) 53330498839175802532024121011435050873)
+  (num-test (* 8305259347214213793 -229351169208067535459370186456659711595) -1904820941859811670566233132773219565154696335396051029835)
+  (num-test (* -18273334758510166901 290047155020180552782039318570071650475) -5300128759437251944808204783222405076790289915320785927975)
+  (num-test (* -703280433697652940 91110448009482115063492795153459771021) -64076195390496041906141380919369524419358692517527451740)
+  (num-test (* 15279634596127882146 -220998726467849290098339792307263567896) -3376779786638352686104608499923871317791563686466157184816)
+  (num-test (* -4472497681184076830 325612942672822430032905460436166528379) -1456303131067722058341139305566346079551678140995111358570)
+  (num-test (* -6180420673489141029 -161157288800853703711204405567379740552) 996019839388256252540244286609069684717518686623358308008)
+  (num-test (* 14044956603588468379 10163190459901171254101452124764637970005230126310661589196828892266636678427020930101076689732526935899135126391465178494895371156141265424428405590113790) 142741568963316278148132287599703960511135825069792278910440475692913696263448088587778211787403889397993501704943449376875999977937418748662459138952952917221024170426846410)
+  (num-test (* 2133283347509865817 10577710515843519541178984366353275630877942729579274295972091544607384358263130633386329706527832990861547566574369528634541156662300858851752195966167381) 22565253698228972909216255630133478029433774404794962869038558824053350969301054394347471181756471783852326407546652836376109109470959746153989521923555764579738243072315277)
+  (num-test (* 7812722507014599311 -5055959518947106416800910724733658104378582281318226107212861190073091017493970778425583956006925004399967175604321778956828368132273155364830637407968648) -39500808728232764770485117356353304373275127104839804121600969932458363071148383405901570717732548020267052999198017578112731079638156026910705662052515278317807704170401528)
+  (num-test (* -17560801708050275829 9842515227842383346577123873881045824143545509071137371075701856197189100217561683579562062872293951325890789283651221922663521213150065638405410634222129) -172842458224605375239887212582262805312641302639067963604956593404910080268476692854082531021580381176489626536608405283010496488558204787140272050713264572452317265305619941)
+  (num-test (* 16743386830114877156 7347065846171565625701636575261347705942035850951855454324853850791855951431141198155170102434274509450315416946729031216385536668189501958761688618635668) 123014765528775807847206414290825117502032199391400884957413813554539073118943905948723779020186281150198999824020769031248882909461419778092564985979904308229718874140000208)
+  (num-test (* 12697192948029671719 -11416780209809507417142822520376617951137069007568339428552592261458272400645205700952156716454820410468812274673183389934216970221062627926131479014990611) -144961061169197993494569769162151457365959287966302572862364500950127981616038900865036521107816831702945678695331078399461327412574397914795455218447174498277798426197230309)
+  (num-test (* 17005139720743105479 -29990519259587469661876904501488342396062731024702923152492275204626478246142153608222329335341363164148761307659972897552084842238285026253664841395295138667328930482145590159132144957515157474957872335043653264146346772142483721767458961320947069718037828473530001033848282453826154763424789967441239969918856795769965946388666154136004597297855416503729657013008165049478441197537144135384444157408972370236442813734429031404855591324183846423588871065272526864866155918285777640819778251612915859290336548446745308788013234099839998683451658620461972798204104633072664604846231692505409653434538208644416538994256) -509992970306921990341332390474393215554862069848994183152714032617297815196921655222705396130464246880845576204295466273071779248718654338767559016551390771145212884412809612574391658668778295682412755916528976282396155832617323980694289208942491001345059122414240884660276842648466533488559879226195446807748573906940273568334343093922652142252689341425941673567630236228358747411926991658260241924294146562230425295426217833820067881064577380516936937782688004146531121831211284735538742160763820814174631414364095096099434285754767091040812242751724012532803037860394426031234340719537172735695313262283511554154662650333168783128624)
+  (num-test (* -15877530153400521290 27863984127681242643954505352420303514833683768731313003271701952957204538094398204984051331105594788039352443762851136101330385230866919393696564428736685568762923746771275677491379334452751710169529933675128178840986001684425353245791752781476028565228371147542431713985092322787978914276414008774443194161599919167210582437024618824616489802661351916633993681556274980075051797120207655478780052593534285265078265845445633803877185868676955831374479850746658711791169579387317321983669227930929736238215792068273805543745311609083833407544342964285215427999724272264458975101474080574470499647168865409458531868592) -442411248181132450919255517905812929771246981404050821923231762557171158858876183536414772404562764742655092127161703706239729646027465795612501446223663310668879007072125975886873343449629108246953385822769744013416908613100114754904323190537317463286500657291202287742354250227377164455244103312266617146454847578457073139633297517170508179596166314955134347046515455569689877574427319658085169791949003021426613961459610227430636932814700361914589752207776142403364490846294795496119883683491811246550808038342285518518431538295199537270236275774546666026424361019715280652576803278928827199810150387207105149968313623040090578323680)
+  (num-test (* -14162897687527555611 -23016403916121951319848021112075986869602408568431399211927062304968548663313037929311574133954267816204873252195499803324830278637331653769648377216095499136975244697758388851688873078022850203685120154634090802825656419418077380419130449990938627982123188424119187922828250625318327074513352279785514062876718714640725789938556578327139793467832731546881422469843509318627826856881082450937188956068348931459011923844607158528494902828851692203126881727638511348944908726926619613375594042390434147948508706733126737304560579515324106834237197081860910657003346633962662773394999353766192391746258372744063777808796) 325978973798843759388794644178802841408656469654887121096165875654577046313115917671847505813174070119516580105483409446057747653173640660143855580491229746795572929387698247460831363721394707501497262525550824977473864621747159715947297817600227665840640555029633517390896890601028716769035575763283168066843141870124768085499453574902575378368669494153555135898430469356384416638130459557518713454927909937610851489821263029886989981438507377741962130296498574556444168140838201069779040087521405032426995145166201901368032136008107323350679784004016321425234898132080844200202007395427054392280809376612533414505539109579739614954356)
+  (num-test (* 10844738523441551664 13010289169828379103330191247192587220592807931898339555723704078985668371901953113936581573750666143303899278973814509164982887504269303358034042953769514772858989849512527461308415676004712388964136857232374888643347097138114199889581495448978914022318770898259317738823514820591042321773469959130347470144905381758960436645008051488666423115693738341045851119808222048272924385188356021826450267608127588500233526688704136268009202730309974485584784539415807259862449203760469406037505772435323036790641520939576046423540699016607317147689982042035523118533555744274806239272109508745089640043900389441390176681340) 141093184161152226992592021994885140117836445291515772908453669279294934817987511015413332614094493905560980363483549300117114491702466085602279965168041684355125886388302948336158133555051817733078300668260616983283027038746214728386770752826764135491650323133831923154477800324207350667020747545837613879364064704092093040155243919335078139087599906324684688427176309081290932504214653249366429592335409761783188358003723753633106574740731573467850133547164922532633897844647383889253777956821171583261238607289172489135768839436605233457738153233579088224808850428203888700116300637190661108848906846940291749737998056247719674749760)
+  (num-test (* -16402132873169057380 8202725117980211375579199554494319645475746305836527475507064811368616698686329266053570766100878145903342129595869654087772486685252653587846560946850102095086896668181099435964053041678323706849735936082196618754721606824996486473796843333331029865501790248862590712245450877098960007272754260813822886287008295409755783478345202299352891066800825979067590290793893933819913530599309037639082839491869155044147367415785329077864525961799400923643936705317921900308490987828345313709179960659814100113658528990241758360711799009722683007157350272749544178688961738222930753008443755881419398858537860612954576778456) -134542187307192759584182063854799850608007421111316277594191532129597970622559949723743396309231347084450105499455916612009290113746722460358793168839937004812915757145655285798961178877391232945062437277255128401572171216279188126380587081673725314534095093062983435026047851041796084651601813918099532876684901239903769891552275465470747567830660442193995685219383258617057944010709906130655663966913354414611799232001438943448374556294933488875450563987147224709383408815994320229340710143082135667640802837699940654151297907451396297241124380508001357553893328703788960812706653503939250831164194874527033594779746890593262611805280)
+  (num-test (* -12094905083549825231 -7303327854122277566083382629094740392048421584433028903125893639493993705575691832165314461496849401726460344615713884253150283931509897329926825128629833541892164122168618243719393446304446866677253728405617434021389128710195093788280203239300086905325641224801020413858421914412156234316517981228056539721130386645649016559425091470643854813419057026759188125291655398451427686659900364573485593902992038773538760663063071699966278379037038361219424927031644750173900916227834573604566165762753650347331082640552394430002401423199016978155236550541225512734287851807727860645247391524620773399994302380387697957581) 88333057189654571362020288527489792875655269960629008914349561689924145109953656394378545526256758871407020025766992398117775520525507898420898102744530402370720932219749861094609497366188371774072368034971851022164946370916317410415503705484491514312339956381120953283812334833067601825812118392757289250628861166579446800637104996060739031010579056633535166403083327528575504427815713481850979373113173151813491831551023902022537957860211597622343157802805275942920911544696695931809085743355666792408029743911424760065578742910735408262758198787195579745280191859776661700139596074108035867940154338953640690242795671183308201526211)
+  (num-test (* -81618231044418675360403541307856740187 9751573706924018395) -795906195858402819552264165081526765614024708979523739865)
+  (num-test (* -167600745660011044249531125104202473984 -12960244919927910377) 2172146712516287908809731894157839567367040369214826131968)
+  (num-test (* 90306383312124738690336097936949488486 156109477991590792) 14097682358164298866835386043901377722456291173827620912)
+  (num-test (* 126202800261728727198105694812165074067 -17404362862588500316) -2196479330029905727399352310201914876903532806486592905172)
+  (num-test (* -80093647977875266525946940496137725572 -9499399805878278852) 760841584053111508349403804472960020663660465509267203344)
+  (num-test (* 304052889577333477963637861956318521374 7233536405885618691) 2199377646072361697737485358722028853038393128548297401434)
+  (num-test (* -124787646062877233829165925777950698937 -125798384154373172164515376683173327013) 15698084237137783175768362160964949930745617334715009097620154581879012485181)
+  (num-test (* 259623502197082370239517374851053110076 307089583871541575627915295134832918432) 79727673252974285068387698133566605944659309374400074880377824560177225320832)
+  (num-test (* -245358177397026033963771466683003477163 -285087883756432161967673595037725276963) 69948643556453419103498093570621669430956866597291662675473644085666220495969)
+  (num-test (* 46731711386059374483493216849082745840 -216522280665540473581476116002923812173) -10118456728713381305690589407461434638634240429858378588644634276171257110320)
+  (num-test (* -301422430661955757433852743238845048860 -737194742467573013847855072675441356) 222207031145790358162820429948896977201848379524899474475604149595884654160)
+  (num-test (* 109781582310220385246795023904554278713 -273317662617851276579672019029762858338) -30005245475518685175699313262818315773200953201653075289648004177366787958994)
+  (num-test (* -312236719893391897821327608828679767006 -661158307192284418474080017860142217763949256471548515134335997907628404839044913830388499435166012788226998900468665646723366842553747501004752506346280) 206437901167986463762021023207669068873036145952740267172145693855475451354717023377588805030022300923600718715029262618794758202955817341818233889201852381575043965927328029955969846754837680)
+  (num-test (* -134379788461141842858846278268259347105 -5535479645589936472405910397299739073641612836770238183712206042659632410776896398062277742229906915852933418684231779996404071421767274180368154310128427) 743856583805332082970350662728998610690268824090148728726850517499798631519601137183443104910590855501252539324674812560702657332874686395923181633958702249128106139207076314713649515720653835)
+  (num-test (* 278271843790644800793473851247546123375 -3845690285506025443856370771250487683891303505653819308540635173436088084480277686684743918745832832765066355874381847690771330587033980524869033600561589) -1070147326395532917564114389205677334125034378502074943828571411806344559859053091006175486397820822872698474899835730026158782698085673635033947150554253148685482702599776833910878579880042875)
+  (num-test (* 22345490710865165412267189692679994671 -13168094845644809414256057134926669929759930873747535851687323456073141938879368460977723280750841588750507348317544461824280674332488497533955177541413394) -294247541053147552931885013427268298282376074124656716577088212043667912662239091316191145352314750820026626159649861330384837204227899202392764926604802655267738710003310052268554637728023374)
+  (num-test (* -223445051950608517881717261787296926498 -2609806601119499724524852022247741111662431776874117401343811680374867931883996125145979162937751368655661775097445043144114599069842524778189198926688379) 583148371568187658089071213924575304457465978545376486297236105670932990897420147110485946155066725440999079357995678147717407410446012970360780626554347417807723098476525833332400212113766742)
+  (num-test (* 12604140228725912459681435851589379433 10671266866958584640992033560488052420339425977492420594983497264069815016478448589306666811246532193922229713077112601565462530332258877522384022088660628) 134502144009302626262781543880199144227907004673612064586081220538754991037447647926963488301214672345398823354945333417956344119228084327815583754032364976497975702972112644238248704660063924)
+  (num-test (* -221289678591114384943252477126208006780 20020996887149770966522122735176842174467884990518978494604707026520269232864200848420530223248762875769520715632742683760311747174524709550334825291720803698613541109690224185041740294906022358446325921538593105347423518731748623037078340006459454656405997570119591344894717789372844612253617591807770017562530034107842444403952657949565007792107071767260484233194674888488789619319597151367813735192433631007526015463229060702510632792171187339118004038505860316305860704455466207113207893106982258864355430481457640304138738182009363353560090082819036973601710432437342931523433079941958203038050750205966472435692) -4430439966231074415853738608900692925851705818190624801199561884242897308817127146763274284287396980593383317678766559004881552228480591814939402896201244425805503258878061459604511214900528594870260206969839682573246490602076070316760182753341371682323914671418233629420599310422437691170629449435494697829163966912842611408632129590129483811802031178053300073562716917597174161526976287351465154825036851645956354853960835948518860624747958440181683978083391663149733813297698623499283645627889274004656942800842013709298338912226207338477579862672216831422765369078886850523202897989792734789430796029206661261129141144642117177625405158700499049991760)
+  (num-test (* 180785619668676509441152734583033930295 -11909038209406834057075682058438206007134213485822042209417443270921391661498900475635417780140585878716264253792335317341527677051828500780153492153490249297998660274828986996948999762620400587091118252205695562417522111840305140989214300921122857271717052213225664738544344394774362885331856170636862181712515248810239601812262573113794334115259873527539564296101166439562124016438281173202196876398090029995104489712272260608848551754611421227761245487365953257890749115194455096508613617028024932657498899001119282498614739316599704645009607294747043489655424155986912576002393048535846081096337705941547991821928) -2152982852345560218506186041143281789706715672110278207735389192913214838321097754496849942223194392302524369156102301165660674797665128931611291246607346536492650554391248756408556789391955568308599431054809433808337036546281323840555452571430884302696950144068129601527530304907460164571704857360215834011779559395577299313379666503707563751314135201994045874159291100986903645360754621200008830207429980872071814202801994486961737459218017354210479544121100423399040398021780750351097082070296255480707530391964970754186799748521538525274241709676878827522138880241734356460339681718690408853314007343934035505873192699052380699509877559455199604508760)
+  (num-test (* -196121729286794751535600080816329923561 31755463535476988506639447113088283661031267977524968610501132544098607201258848456920865390506381665724254592728643925608893982794532243733117636645689751360224314774452374503339856173343683819017479955914451013484169313685311530532055735999039466721411777061709328450052490025363788971916050033904534189719389237878257877112162843506491071470067738867693853480174965212750301808781573369342701195147083717623066339671595077736036738235636996351642097684597005928843274525502529735435418805821748637387888409663397547514467435322454217015563134545731593492200855670248739786405074231658957946422903165662016649229286) -6227936422881500100190187768375947805694946596622670066116457374856427496311253030141271922822486386675428302332027411428470488965226898801659352566022706152307022438261392466548357753526474097246042956052374187605144719189465046544498482461077851578811186829094445089366592317045580466302238653533114619908864036973070346979261546801894831273337217021756025770590122176562027129481076270727248949609326868225755958667670279949371399535144788247565199415296122873444199709788941984099349149684384486618280260678252604631431089580057102263617056951788273430713908768738965854953667135156866028646584137788146112300214498814212865170902491169332389942607446)
+  (num-test (* -149247491509558553673630984739524508601 -9241905448313719916485289537122695595500213295294799660583133638026091750542612875183284894676615989153030773719811347110864468582634048542108726080717551794580656021381515769591713295631818532114918070215760259364277583650102628486861397602958930509695263902920994329409932518607260720657755504091822028630927071374796474717671220452208310602827254296323761245420486376569048549643478954846020045263141546849795367522490793641049509748005893155533480849922847230018411440739584477452313387881413141538766185123978087175960946255649923135634987656065468774634483495944248865774633962770893338531522570776854773975281) 1379331204929344851843348280532786532350930013132149419346606977890849868537539899667631713548510207947097949976792337278764045110931774279794402312944786743575421497528669859045492875676005849752425421867514661792129580445000023570590786705609341859529483054902802038173138834528021423393677908655442991197348183257271932188161681770513283703502340499171444058119260228931558784004778969491586252899270869275893402714040693571919281494643765571068045362364213060063345212881008657925426024923296369533374671614852576576041747836643356665301762059898161073609265572267138950725010661453917338098901465732991316661901878681888138048552901254914604845891881)
+  (num-test (* -246070233154436622785727814428081917418 29761582253452470642591719346200231425423204062498655510037025199574178834762931489817919404889920159374886981199608181795387339523762458361385170203883094308920011218315748466148953320570427838912637152446837553950810011344492780712558515815917745810385725989241835877316836808088478276603934260581342710503593237081689944686263274319354100341139245512159619947319496638082702549196795236216458749363904150768879765280332386830831409591769966706351022328535490587838695167807967607003680703048770719240872629379640571077329748828739281770075441660330884779539288220944313294762143588847790653176774089774033399559617) -7323439484151992757431054484912931979861244043627630118213112440051387392428853497035249623931234821362770902740177541812170377563064854590834087655133962963430877452052749127605572395112726398103244974178157574726551814002744001021805127518246639418981066588073652668879613252372759895389345727455380224104332342029151667860553645106555190741775758687650292791318963679857313030729683299101577207875499929500963723267185390425716927303375831321783415003339099100562942730763231688479910689887284950156875532151104047755803876078837921949287811575034368641167438367411569736575067233548122814012421044943430647665260439418887639347030312118291762161708906)
+  (num-test (* 203826295936164259559522643510940430939 428315860474710981601019542870649234168732095026625500771233691514247613083810271191136212287636290276352210600151884730196161003906066671915478570992925366265552107746965374246537358349673161970290367972281768471743836339191023211359427335141701167253694144280251188008871929010775436125645541749886873478179599464478734149706121117222690271210887178499620737860802605991262799781279373870647695125320153193063528861104479576369448865373971847676465682752435142074973627172566791961541105525781297462635428308325033717669972726101583722868689418677558787287897456521530400671342257419067050354522203242849353639864) 87302035331271280954456598486072605056704393103691656908943847729634903654600322194677794243221825233700566108459784062758955025931450719283517278054268553004951352280583820782976072352456972931479389375165173986780482062859853305469143408707179895843295115510597584169486406323435925707638987591151227843652210256611991940374072593149367903739596883229844326054223707236369465710416960023659329202073724249764308867733476242261506975691004092043954515337899900837434270833782490145948781128533218641649564543508314976001614187701395586824982250794852925954991265270537649691628899148413763865280007928191637215283244406869662872539567459561720369352296)
+  (num-test (* -5899540498246269366107488541138263797694914692322476860852796858749106720144552037986906792251681094769894732746138541066810195167688318229720888479512583 5834015210744942902) -34418009003174534626858248456163154666511779871358190892629413477534042866009573638264296461516598238780495750056279721797403178867717911762916049857737963922333901125535866)
+  (num-test (* -7558198374656605586076446665394545534375963428962439959101805545423930654069723860456022097647139432324162475685494459942871728608277717748075653794546685 -2079670855873590264) 15718564882684481784074014915267371190416032453294568239793060140651422710113447422494938907375595456199203928496644205320139985222135619659630853564447794621716315309474840)
+  (num-test (* -9442744083812363570102321552182535031605446031706376100893354933468482520577272174689455502380973733378565213055641110431767353396963744600184737808983381 -7204974197101757391) 68034727473703353914019458883709211780958983263702756416891835054494728840771498925306650413027883039860202168095834137357212487561983607389479135319040711944281262212918971)
+  (num-test (* -10658732210276096534851972646242288663170038580488752611749460640657411087860047053151548660331707024718100598181073744715506934778234716535781332588396176 9193953347013373121) -97995886679587166046252015742839992974979220158813197140160489510432960510418039749924861744197553021702396544307690217470606424904065359660871469041838900287446937257585296)
+  (num-test (* 3330096979672637104536573277593029682675932033891010715180474877149733802060455951241981993421466123791200840797318740359792251505430948855600408060492000 -9413190658845804679) -31346837782105095097578725347257193539696338226258990009265748336528353873277500144838721882313026604404426563737656928378230261942407473822851842589487713775609448642068000)
+  (num-test (* 2224201331350479188470378485954814766783857696988331736807430786504130570570323948774102396158334805040994159865821844362926631687258969480929122732089195 10226747830478556903) 22746346139936030910929166328517425029735137934434969334578972386859485783192993228082340012742115893176871887387993591191632260444955081663604449277961804869872353878963085)
+  (num-test (* -12394770820700925077767705800588617445613665027183406054209162910642613421436080064653443098327137503596792411463268187212855350864330592654862321763110243 336135860956209890623046930607725140868) -4166326961171213704571179876442248501325782360170764344978629523457550315208845439497110652079907652744850691289494398473488033083739905461347650605270023127087625641779424751335704552988710924)
+  (num-test (* 11792778994619176404079667787533709801900490264171877873621265044313417667869688303207909681289642260521608966405181881416781694320672906600599581862090088 -197661229068721548419113517262926820105) -2330975190212228827672814304508257223671550753091700552243633152084831515892056240354560520878171696176381845689952044935988868477421447557890739834031207059212175922089523097911477486879619240)
+  (num-test (* 11608994516281296345925963401821217560860934641820086911326880657644311461955556832927259499969983808078591149768068360172431078248807463030805586293656663 -40654941048774156019243747229920736005) -471962987694958552110784676392477007070112288398143925079396435246284471999814508543057304008480666763661066976653446723271982094424149279649226771823800871458389214002872916339341019732251315)
+  (num-test (* 4821517917539756801293776911844480642406562140007084392649374723119190602353617113036081438891134008988421494142194891002983491670246762173236312873933599 -255528396376819316172341014108564420589) -1232034741571035406264710387186737842510579499938716343220834781077329515145216794636313459582844773420679078031627466542930137302257934575129329529129776153159694412903937370462708576694469811)
+  (num-test (* 7638751115643228563298483305056828584775811590562130101723525925933790010789130133831569153863129513189315440899053288261039147463032870669035935364282061 114438828287750304954799140618669114911) 874169727255956505920153418854946321208907128396839975975317705220623267360648189969313978740314703015845506506608054761304647627635292132043887080298168302864314697920637105700927041824911571)
+  (num-test (* -3653826017463740005170218884285271512636869606149686475539243914909566619638259666405831445823138528809165270360144267462878986866506114069923299116957450 215752050445782448772085819939961259625) -788320455239949216234629350585027855111249573063377172522422069903710014529292638311216050777840734448624510386643245486023092483841464815987597578151663227035102742664709136512524899527956250)
+  (num-test (* -43242564273985683175827997542883970694363047476880657467026050730764924897992516355909421962249292250047896135687573746158665836208681548975073555418266 4424346097667245771102179669235543742385176589624011161914909311078645828684936231569739522607200308028372644149306431599085361996722603718517735348761218) -191320070498733614136284309000213964486426347688040889144514933290125387693498098446328694172047943298442181705949005984031677324306763731212307716485454004382079159622650481983102917517993601466178931324415483972311904823997211920702201161092866663969163567426868740120661073974542958600768774774949607988)
+  (num-test (* -5093597555679260616199210906198149266592665304134802327659606846977583233938836318559188141955851256260954289429418183711191354912372372976165948043123133 -2240632735861652612028397136046974907251405868353380459030143407902436514978447480884513019736738955326732458088791830752499716417751919868492224207936623) 11412881426559848135724717164530530041659963797467536748076144863846600718211858527283843975968920120508569299672573958424908957105703597501013710262110218780710678312197455759181436286391257283676806548463507528765947919856827004176416634630489598937924092540289712219714362500246928243091408698274649199859)
+  (num-test (* 6049789822056553589237940133475342650218069231558204589924996117723031491205673061674252841792149409384720347601549237626288416453061224734057079515141650 -826416247951451524584060567988229017033981218652490450160817307801130685352465013890931297548015267655971295627931896259998420078888499206031390299169584) -4999644605638856588581238481465237523157457201817697008198975191261856978252081380810200468420738807464233192102972784271159116426108806200426852134469939032473362689081653859652824862066224063273799612269941254948709760659691148103622071316554194507524610166457990087959160807415102946877307193349131573600)
+  (num-test (* -1175978338162966145239180473229656000174129248706173549637767835154921467129547950144109700900405904250603515318348888619371004435353505449762899046094747 8633693716102199391202401198009047492431980605560930404972542822133579985462906768067706391388213605203282586546130434156768523403030127356256666478340720) -10153036788469908062299722391986722149392791936544969945546931764708792252481931153733789787389051773529081688846141949513463792442701686406966696738286561777611293604311491896230769507535896070984747493738525389837795316954065260075941524322954935690803870500012809797698319359975893462672845329776468197840)
+  (num-test (* -5083395547684319640767882199938390155755986838939007846911062687871291096073452055061784159768637502151635665247461348347470360218957222873087414506633886 10813098236568616588240471432239693891825284805405416395976866126102880121934298269375465735278296789484402954117593716698067735458182402220278016922449294) -54967255432446073625448401244836956268872685687128644401372608170106281377801209665004925733448944141633739594240156882328181133879414641109484442890809130544146420476457200729843868300396656004198615619691952536924980482714767859804902602805398865249514544806725162402291122143659939645240358379962457176484)
+  (num-test (* -8944626200084865988157251013718979706166428261352840753194709093968177704853157211364231059892647813839391802007588961807572842923682104089512428902387812 3814836951264415657788614449012480613328314590744410079075164918748648723114236698412482309581077603776489883375576245233128800002373843611668945838558629) -34122290543331565327874124324135450224668275222811493728051290368641401807963502623692504750924543845019291736982354932620821594287780848608647686402233097059022704206628297180782771812500512744911371653368388270442874670230118309469599458827222162362901084328510647514081302476000779049412605744638457029748)
+  (num-test (* 5186176030253526423885531264483408352469356233262336223619904269047786350470477526433506158542551137478071074193659876898065998079440819597952826155782068 21428324964794197485898135923805540163916541943812058590308650649384013587098638034673796533027113673143959572855470411726978105342739938341516634354246514986124789451866589211982659199267654387148420461876524076040233779391563396552267276880650559148637067641021059664960876301072636635299261389450890094318429077561092553337025096293793433968243940381587994428364726938534453507046761494257538813861046058298873206568935790790373886840765817404479239485444563488020955730741209738203470138117422899051269778988135668626686262669881048094388220931264751830393793846372816717368806996496715219806062282836392457741918) 111131065300898907482632501071313138589398597291097276435916516379173430095773463468344138866282820740991088290299992221985607057347883717514843661030457396422379155394966857856069231504805779448809986906434617741485942621643754096548512120178021034054648207248963478122178145159262707381679354401629366698488021743300737044695960363216253889163551918513521913593214414139637549577618641974388739304727218804595402055185824193445089425262833385286117064481648652550355832014346131722965510192584901901111154083186713580209077544982897821477349293279848852596241762198202012197892321827305803333334823616660229870976569043453639028059771892706354703750763908127611939169337399882784092285804830644630059487027413697220038110815990084742241055099963659761569486906596326424)
+  (num-test (* -12615422028124847936088012564413126213419674293830655240645918456932358053670311316461359727921727680491520480380615359506308571290338231702217134487397730 21538722931308708400287621200994476771789912594554241036641406577761480056366647329031140922034590767810855360008375309986798226712928670905618807986829790199948665185268081173685941421700542631395958882077936923141152528333121096909688700106365468854487023847026564219531968849793109908193037522063952753477768381591929787242143631287330811801315216116212154423972654430356675401769729358415036943501470085182304183033246682446978634892995900678975109490698283226559860736462409705544079080978470202336645384768211440438501339641775269445439018148409151795830925198162301321965042997632479354427154223366199106583051) -271720079725309675925162538296715595434811519956795637977932956405490708202732964133816538801099235844279338645471102896234318181092598033040518838847055114923365599862266767493227393553801736813141780001130539648588341196802606083178208108557367013886856183999712817955194261262279080641101769944037282423238147653270651419282545398168930625797556638625301898893565965773914460998322350526545278664715332414172614761548301364063397364632709194713561073496860524124460861314674679928692398440036071116570829193414179054372604203478369755566003622621281005164747628075596444178089558747835994702060740334079222508147598079351187013336751322569865313532407367116553748939535664259669808534100091049960040092785009707220249025633808590643620557093069849490009472441113874230)
+  (num-test (* 10381022953674450046578890619826448644067144294659610359943634722044183130638243233110364436029778310048006743033299956844491228999113516347401915490861208 -20974871685432829994714153210121536409377362402944992609230062091789259307033495284524234519701670462495676590513192861649457148897274608767543942797542628100823017887236899471151903799837558453043431373811892813126194662218472834650841742305925226558315372771353677064933578639099452438843500601586038910108679737480263349221244638463171088589123712367802373159421798288708123925853179931628847579314900787361946716531755600236755527982132768286927549323465697241340003870259800347640599467922823203446834792229595507968354687630029075884034263531531423883902851487995214646322431057626558858528344843531280263328354) -217740624416854507100100919338835880277259264187442792458843251425095703739537223785767883764746809214920580060316177442387941385712712426957388995082877226019966428812240179251716274377143798847348759498926420314709056615470455134468678662646006408843897699718742372199854223008996321568642038054564397441209859567556502098420151667437837356649730396360374136203172669776530655738388121236079327354422138744456395348910073462618440421257604563050031602590345028438897601523520973759458890228893913090702884911857207117714231568437403212806578764580006787626657709435954760239671948147344463295520930250155876010414461245194991189183956653772752290656063730950237649394743456230607077768595983629559996700837383822873994717987698780007691157576205450973669241823945091632)
+  (num-test (* -3984492646329789478973994496812455855595578196959138558282015917391108383154917581748539892089090551298072688793487597623310815918942283997753800645644511 22199897116873160263914990610762123553075230334116099569358672964060004245706770678771431369917479502828754815568950371273785689812698287446020480951417047185190067265849637510591502642000414540862689426343523077229502494771352820057572619644085930901096534031496492870227890836816886496090287321502805172125273822231241073590840684742085641304915656543831190976008986490532066597410386596132766422026234488163435487889876791504407434387555507637783709991326338482319227500686541368087892665100076351075069628862376686619537655838590687615291898971286325099164241688147975845320979841704002364545072665891829427213069) -88455326811459002089798581395024759975871889172872668466370443703433800509268320055453743803627754859670391415348970278548381190662701716228279482045339649051139909543850883613464992501666524385524517648069873862957915620016943364950043289963237718026629805297916194484838158010754666017024585366330526135823515744339445036315966714684052345462172808299142368905939297220895721123725415007532441824406115746741972351142687017849809593982432484296719999502992792447259391592152463664807498752410740679664044620898308783634092355737296495489953554685938970593890496829484673393665321572846542839714620847185428664388282452532264810310019327395691530430185946743995669191791841546685206884247468693248673484055915613115527492005264289557719000245333079386593840592027314259)
+  (num-test (* -10672574004830373997900438516438419278676753890756925443116289034080220708922677740383425352837266631691319394850521121221541344600832530724104047804922665 -7307684417326792807224298894786988180161884427390942431653062127076829842696634441114228528164049031680536693195116703321494895319862805505304314401000204515985676763063862569446064343853536464020413910728442475032187317639476018710375702206456631041987826826225461927793241495220512935434301833094232834266749666697332380140380619185254354273073522191066457437931022783436360434167505326773192959291779779370530770935758482422581712556111319611455306383173529090289274267200543081481693078804068524057891845603351773722737987393428313340760607600482724483853560340630587029610437280601010173185018227638972500038072) 77991802747865927212086621295493124451256238920588746597961055391511562690441964216934615500942858653797884925704270904527938466874924049039962754703188019915846345804228044693122758075602494985337649496117180241872910247079655077012999375809878184011356481981590430241786534827516536543734645410817621964035091467871491521760928486006653992134635010794346993161329777270345449763927429735191213854873362673179799811714902439637861750855639857969259787075469241319618538795721956528400353086156169058060112255274542232054021662809196965752800525093125763127895334967094763817500702626282397394521201385439419885607578137159972521677923972708827090645776826953976605193554447841693259586575931864396484621463004541561908426383260772786784541411548146173991869741515701880)
+  (num-test (* 1420855003086789510813111205540636553863493314684153860389816109865085846062678305775289632805233481596171530412925552158799875183492757047174905459819169 13897739053062356545217161606361735964779941697726983959749295377836209520566715597422965426908191354971972501742952706730523748574796773473606175934144970768662226027157110240776527834790487577863781140089347362129598158760833470434895693782503529955845076709376071972727346128409008293671217324995682020009675316075606538241192607139905488719485728099428376369506685875348346231688684483781160648420909364963718027571565217314827671844485031440079254478598236877074793221578612249882886835580737423192061550370069895525711885220268707201966615936769696379335772521903910689934596134239331592980694745008817040569590) 19746672065138309742065153069587996891492444461032276894328314121573439684229636534026409362850111716212254549198595854140809664451286626009917828620279583631575940837712663100442879662416765138504151063632823014639305658882804073655537352377258786105147057375069447099908107785635606190515362082317465738205179108333064680370909383338688734129396788764959056886328471374018961975554190739706996184818378586233017775166959010668462907838359485424792026496574369912033757997469014639705459505746723512361959074802456098328538419933637295482429555127226978561859965498424173552676019033370307387047798600024901453757451579262061785051932535359410827170361533603618131510421439128567361259204833501190218719779570258541358012741265599985490513564378203502703406698160470710)
+  (num-test (* -25117824099635104147178796272946098711514362630774369209876335291088434247131228189812265510495277875692804180473811834186270331245779845635089547499275113671007257221593872123397418355506777725721168216892830217596134983713752526559153149600553468865338887605949011743043425900799896245185282419637806859906582214420191794114207677635194054239563071023206500505880052007267243210206807805387341085613436600843317096291021780624738422589234020279836961194869688005260369009833026575446099544900581955685627511787510900479881434909308757027825050977932238481841909425598834367032841935054158448815026264505726593064239 7846111496222858966) -197077248428250572361351389692146917243277049539013604789802566767174747369897711991559940484392921619974209620152008632450612546796556905740493507885376190913893140368029841033442857949219716681475253727058707723386016055991276120001690579154370788782636181079931076758384034193266737114305362492836167078199155929937891579224024229182935372106924021709421948701131654358516297806197381566809357458374057189773041520552821330635689748583803171230633654728360451100477472934847975252390985102859262992904778849652221553818627134153578436315973777720706502751232660284910468721430874674021521629540714057383398858244828214000543075116874)
+  (num-test (* -12000343217458212092754251360179138661969968218789048702097501439124892987400633614429800307263114371624489988815324366411323242909652002510513570900627875514001409309670202055060404640758548257776155562167062337394219073071639153822126554525439988062676648294108951003012550815746564810508912122306190725453386412796036693387315128514162061147675205485143205925649214342646148112549805850530430229663418469577245456944558387628002442451042105749848177325651852669794048215063957689756465788955050513359977166122710392613631703123491357791351447110169966270916789849428298930624807758982400706608788793481972190953569 15463017349709835150) -185561515374029078700596518575548896805308728003103939537818954646551372890610870275966055765608887701776880889777402229764948269089126750201922167386201171243298907675542965323275634529293654817279957832652909009385491998537031060285890512199675273422070784691446251899120095880199298512230290860589352290462643231396804350623684034400741386070220057232978556614620855818271117742675632435727751812101639747357642295230273344552327870600519422276996860893842363996198017494117619585153346745838853026029459826407782259598477529242420507010652705302341725948095720110508044256096963772599572721279996322424269691990173052929936294150350)
+  (num-test (* 20244597897909303129995907707212050478823487084391413473821544089492035634291726811145005824559631386634261268723753786161463497881725871168747275110149007801865428978596190887145324535224079986377522166727137028753272158887188902047835658826867304220850429481233026043496635847568448251753504834367809877190895369288045026559783632709799678639927825194847005181499299410953860627694080906167346078299421796974815616608326704894611151743720515377248152215241639534004099341398238713597030368980166731393247619511322804984829747216779359780372801101821087516269912916462719248736442644433057333788741151270815989388229 17931151643499274580) 363008954869078360197158713265773114114991766614027768774402465306840646219477262855625957403406166192075865834283840624408916170935610374573318606346031792128003204902147985329385955814330782527184421959263266167048755628089412213360508944817963403092490479480264538027768728303095523018598016863928762335410109567604756183580676503045557867957273324581082608248341332512325136675167966306268035077761004923732568405295901819511346235524577361289712297365403327125212199451099538443576479787130510546755789504852631291774614010584650672707483555436445926222945298928326313943231688436271883746272589347954697213098866117569339490918820)
+  (num-test (* 18134862906191691435095953372467318196853760384894170022863300447691250350836421337333332682828557871096554531436829166444150586004379181099133295174348038948038399079336722004125999533719492457544642570217406286811480006881054375314838605871238868968956868878182133492469763282800195060849734382249696543089869191257451321764806079423169235271658993054867624410589213892458246001270123109841429271429275464249821855221014782727398959126117031823977229309775211695677345378510417534328974531801634095862859684508240122911023047425473036305928743193594967362216559973174709883576295373749738633873828863608550295977368 15082354452174510460) 273516430292774638949326170314933525797985748367549139070674899956657807928629067317576809269188258819686207094298714770978509118959142516619521080722291318367607601498107007447014759288176261262818034997399866363248136237609824401265450913244758024085739876914482935655100890803279961929047974391299795570244708811454483314898873277493486428279875241232025231140855860469097028388778917980779775554139507550577255217032521719099071084956515691364008526064349956553916033914728254580848198941020806723485184338914882588931083516851849558411503129184026079582257756707601984686901646494090820169212279581209612798749779318126482639269280)
+  (num-test (* 19213874382308276075905228027166553836726993832150876980655958901416537033385379180983129528081628446454583401834309285184752924794893846406622935494758142810049493348116192315865522516744262115026742103678965417868790607689989205765793528434388393584537260717130892518011447327847533083474230074174308157934463971640826422302901570010591182715932658037868980053012095115562188975692530473556182305847290196895478280679341869546292639446526021874910117953225154204035612531584978136604161393474554294315903436682283787080297348697922389355209790646124024053098888687638640826064745026930980189268652291562437512941810 3155416591710364359) 60627778016974262766014671335614995348970065077989108071534610098195400001445248886220725085881796599270026085183075312353388418711598523030563716616967792282609748819081238929738105086199457414615236966895805539596649555457494710621217412773036416007129418290246899690911654008867819945724649185574237527152410775686803449108977881160831441280833577932476667657759420192656716352190871667386955409426879693856001112340390304980532208752863058384169885129364117656404549585836664647784765508649117301622797243353610345828189312360124462238989888436478381583689386509617357901461416012201469794664889076397809504626996523928173064949790)
+  (num-test (* -6561903839860415551587224953276060627466820222543175464705113686962550773423611522044145975606965294164125376820288981286542044306677764776675868357117109664125730405280822770267329297542599719353907954399688197248115043785617436343303277493146049939491224480136371029084354063731401026459653680017632996944506546122253686805764620116169065663214526857151412139439538335533979733329962892417175374550305659302592107472151941922230309227785266745974334776462642676959433923828440435340579340133192678341787895007461237846313005612116885419002449356480017828933592324336731295317076205553526568668826499450826560670163 14908715577157091280) -97829557993133908713082095435440645457469053259814412551982534425389603663024461131358343104414088618618030154957456050473312402460589893359522167472060177968099538846750606564761307960896264958539903740023783283814849937681270591589750181462708056758506230073751440847913386576449367635057595344744119561166438538811561109125506233466453974371464999669336530949393433719456191822836826214814780222021267726528396849558417851727452246676857867278196266042327956933753121947589485377148388716839519782819642328655117625818256334190717182923260613562191698788004591479576661108985313450029332968584240383859113741485244318702724563478640)
+  (num-test (* -10378013547095983701124686671659666242518351347561698092030999302329372512356819420877395264401390796163955327080881297568412490286247154759694714275858127906305200295043241717769593877683535229411640745872559018085757273530771413156968541499388413497221629366848027355125816131586610997516488552323667400115617175682996681969687885201321292153656071894385242141321468096793766926179134511319941715949712230831768643024119693594235207988046511542691719002262040067921088838755337917414526554050602539873232518619281766327369577617796816586064895744680567067970817494102948032924671421242699225194947982378019119315136 30004910492448871409155105619400474385) -311391367570036811050052853596227388481520279736812036769684195465110674594690412517879149770622679377262288447706750813509857551308594851067359841826754786725926298013483569424123912020079066150719085450400229896983461212531213110847425940968466564079253939695853896434719530729030897976597410468081535234663568150722646854183317007227669132983719314653861536414057481478039579810285535699518386214012059191958557306338432321511585867535008319640705419431310336566447165302011113284064246284641707577414470505948868362067233709611758700034131461348997580441628136979257037186480770286846026250437141175360847735150981343952303257191661069675154710791360)
+  (num-test (* 6311357747888359229575837883366949670125882865462293491587368290797766017168248637163030339387377997726585769250585768079027576213724941259801478313127113803503561717311996500019522893295813684259416551410025111443510215766297835872165689077882298506134885487991732718254835036694083204758447948541157893533099634169589161496492972953698758234452126564385255035294546278732684663873459439615228706684138982066055370429797835904846166362278557095045056472775166294675997320598469599722704075215700819354957397052721573993997624711445698656580401684113096559767093466880001548887739825916626416328760047783071058963451 -212654096583990292869707082365869207538) -1342136080095566600483524091094048745061145155430997807005186206704767933140306297188996797343723817220160636373424666345108189275851749622201429179882167381735732553825696482751584102093819432866729465599060815670807282181979889263381844726842751894916887860819210652174987999919869623292751389157233409465756974677789790982740267208982768450215563288024088369480574425410032306456026930809228182100949940216614156925537929648841127727165386031716586596638254705402653861723407930666152691102484352058909219619985877341630210918347460471644327858114815713557305185589162775699323253049631349906791700893878999711846225062306568467992135934882289075693638)
+  (num-test (* 25104391676237653962996674810232896003857294806799086059884413856421530328279649263948893056601611073815235439115612155497964541323584159786678357898152394779494741995735881624055133443980324145256438160990490767324719276757840825641421547232460969806196141938571103617707677351907526127993230143577974386169402623023560579220343920203666762052525898442578990183400559087522259053245822827313206196194989095468393682721753147596892214609346047051670610252732846805143964713621673722554204896154742594858056891979146566683467510164875593192581407047920719605560716270697985110227952698114701527191421628561835164291236 -205991315859231724218751687295926841150) -5171286675233738337789203670843122752625713948587464573381323151628930998435518250812603433784823922283042037694290795352461861058217142213862777203850665369756106838860420507328654214723398688455622487003912073924323587826356928211672752672052670663842775836967587150049181838707784871641183683742967716787111671792311389517753578360293551031540853470719098360013225516593755039537796518619542838794169319227197212817921098393499332268929332950035803734983497370378852859829228973012039890600437082235032378948656232679080766068869430262740600476498399803176452431728914806536862849281928869092524387549297345184969051926149006293586531930828748109161400)
+  (num-test (* -25971587288596053786734900662696128734726180676323130693160397208008930123341700520454723462226657743365779183466120836187720332442041321870351823609046027805781414454998487673927365486893294110931852680018706479684281928396163669935417207859889405108139261480861908067489849403284000981453574189898304616775302917687860062501465417706095450121596418236563421425311420755550335597318818628123183624214438801254105808079227429950505879366254661664881055965092586612702279548151277733307180663770432418397550642136953750720624507617115504303570076531620003848642167562950736271141440609700821621532583527124386811144839 -182748557863603655835821910989658558236) 4746270122419629115710902425435990509747636609113505336611751359043717100752575149404352359855260443259846554733621122684788488984010741203981300775978945529551335641218319619542248418128319220383298229263331638090009313676486209764655429828385994626323209879925281409485074778611946493692237774852428345451174837474328995186242262565013937544898941834362941815633750896882758939509605799422068815435202904271722442099465950700886702949580264958171808372530471918175963644209760378395316412115175988232945569517230829200985652504383431054550902852797293952515652017940918628980037316292352828228005975466732028971159947131994753006597870175664981312344004)
+  (num-test (* 2117427896392849163304163145095251890404997781812823978967013619233450901604407363671467658244435728579079751353560538034596183240362499870272373308111405924505741579887345118857908796509418246599428633956038017783178050402412769812823236255234302205027282366926174916871858199918908361186936687654278623156607813451034087735179167324944824913226799346886951212979149617678949292799645035425029596869092844906629996914674904522806258932192931217652241231736891642224851547474205131131019084734780208254203537633402057673465583362982905095029133132240839391503135932501785844503813910210348239157828902668852795945482 -296778668392678698960782643314222141731) -628407431508980610909134894336322264939705333430111861505965183839156278363647883745193463537783397824947515214540990712455315080515980803996660089847066076833542492719707493333185909990202372284811233272987993068106356248349054482194817336258302692039392400931536481136340269417905505366385505196886218794044229758585631131853635721528813397816307666671727692971421531381290925317161326036075629905443938124481334173158440927555118173661486114828362551889594188958723424604273078091320087897088472418346754088900034854230711982602435635574895960156993014703292551046970069204857846207328434544990709459402656908170089318995291341536347275682867153109342)
+  (num-test (* 24743327715258194976385899813930363006464428087412805068703455203318769863096919192538751530954777047772548306936907016751357570434930538612382851621309732767199276228580401695793317612267605312672263736938703887622824117576912830029817460033437752668221355377879837833796222831371174014543622739933433581963103361464022058091243110136610854806189138108937004805781857031030005354158991203388998364340053773883952742645161560754545458260688560269655272249435540890073696261770299845722705104648358053080678920468895189601731801025555650490534399590288852165862135571140382055044665678298182909026026068995867606241201 309156501491030456401354118244509785044) 7649560631695275371386748526795333430293346807872366006552933839286343590101586516802834568317627508914888989005968805867728947519409222814667350103434422356009252082456906520988877859152125402282765775845766265340707473525444185795403554160270722809642681642831847296672303556012796775586274347178092325226458743113317655523655255626670958156216225968018208281266858684283741496986683426354716284780229004376492833583965647875097951642088252875535823145900129967026856898970545720526282798418382467634180690243423325770596949644122541224189780082061715230852249880601371985342796525016176048518593825361248232406051886794538203297084423942036889326397844)
+  (num-test (* 31345149697924857384985323414506591310628538098830133854928154990821019223495435414394178930529373634315044777562902565397455028894455733092896622048288278424884040917250546068175763309233883078972879622697667174865833277342334219810618450605650614585133187005110148963483824629405555603493157452295284935004578187488673124814714326405406894084902824045787647963172437833905574178160343833139650913077173865287057167288286708807322607983179910358234015596109655900840652230258122852488289951986129788952718105898226951651151495867246384586164892018870981480003722043190639707903266193064807571586900961788679579912089 2067227180806746570739122295766566373146995767544546241400900414826379465803168632854028593293108913670556431832056563218709444199286888840721753894461468) 64797545442006646811970698282511426059102976298051534827345388707272469591333019870381858263624490336448197115781363489554169207652559213486772008013638214870324260793199674746523791257170452738018910619029072942848422098770309928561867618844814267276213608306045020686764830302020953883994906997293368193331696747777630621086600981981357507299729947717565760536305785574555255589190221698706036770081438750974356437738060098906046001271392354762036427049946092656701257615490057677558059955825843182799904828201890893555678855718728417223845757559310912618029462136640226686626513375024547351747669476392735304999046232068947570708757930233036922714350584650744960478326257916948676866148362166017752159953504981324652709881831381637989229842766220141292801807437886652)
+  (num-test (* 1965759082776833678304908699214846485256126608825750175641683294458978302204367346739996602241053060915897480812220051082619942907491598551933638540412113496542245474287364500698693202553692963910123752514310355402167440783023542848697962967771951714434359320001430281377747193083851165947498546085410216620013287853719686698746328198021011905482303248172483782066908570502837009924228011993318265674390462360820566174204659723461994730913995303015012684826295802887547970851558451858623353950391701673651959262042520584275132971807158231859672678070714276061110616753309305801080136339206017351200193800253572481467 -11092241138073130060021642325471345789108575712118027611362686690749327689527135459714040658411176246054106270789083336195599640521602432629024562630323934) -21804673765518097879589124792137157558586438669762099454880024920520894260754279593873244443852337739758694535682558790532827482894104906218015712179591886600693703465749571299271429989154199263793230178266758966678432691901731270899259065726530463438316383699558373053423999416350780342222940065486831353604365192968606300436304827279383661172824549131179471364227618431414928702407510473319879188990689163932586727702195573766225861364297410904859137393184592815970592502081722125458353280743087607273547490382023433724488604177909671497082747464946083901888849483505451426245881736990810339421864101129619181017696837017966116165703320918568645290788634265522956017905246042460811062666193790657969385648522736090098231379029903772234867701846824572274796526421531178)
+  (num-test (* -4067457132547237558852016696244696525033953641638067592741078194074861352472861925779476293767777560910963786727886946479865734639031042985368829200802420611189793957001730656623744670821921724417176679009632346904384261431052972127975733031277489967119978909321422086102208644766894305071609385305464547231057263658903212521469801833214062476735046735467944834107695748433481665714184831786462886261252526036621257865158497049125410241033365487816324425563483999957660557670189397770488996359512245971368638615503320507431381893539767352426795415898379765583574977542068222040889423739693921998717145084904555464058 9635268828818063607505341812331931088336041632536136269505180222913464638532245578488168867093853062326136774925531196873279749483997619950077042084971972) -39191042921786100943542578352486285322085069425292685238158202937549417928185097567102615300826629615520476316505465412722375794150552330462353356124896483739321653441446703127728441315609093330694305784991844511900128172079464896650958648496336601612657347012294121239821167759496102233234525084695798195547141521849769350204659392602605928907953707277320590923278178152903602506284861018886300148663530071056792375593665422754923886137410482547324901798328311927545105456397213670390651819229021443747424183114992653572959318104053511452473611466305149349027962240989590453237778130260105665310067480846969449221473610614214933278048389171979184119355459010233147440293881252851501522689209874112819966647846701257081192324007280573826673895648273593609466000383382376)
+  (num-test (* -22047771987573494284336211037167956208924595972749016352929724093971147687332865088249749580556015503923927321586913446367676445848750229391300778587369581738560634537089081840938984779012854694220894920437076215176060179241185151442003472788530160589267677502568156006531439509890061829154786579353177129190813899423306499631144919702707240832059008168851983259611724134448165201725432622521420667808597545410136493805873769372831833878868603946583848422310946469083400330960925084024624317866822897278934924368888332618046649078771617892961267312226309927786691384460940015979582201446635756024251269978545916298961 7481502540911026808093162425787184755732317118387068406204973030847892995155568099553397887864257088525242568880427634318737874025160499293315047534753494) -164950462146458057264341765173378248123415893870534274075422323606836246718538063890359159423074703472625232511667875897808555123518162244263016096627959208397334135559180524195701526029092734741010866589515172934676451385008535538102832400604699294088534999994990970130226363762230944961249818769566697211068918154629209895730969522747736738946126971914549491889482944152891334838234907190697109929512401661529882587076352559260375439428815896053844621297552401396168240947357044985051323834074355418902009161796886350497072010833513601114819625605048943438304411954380599728561071485061414856047768286383287807924135081902458690495890129203192613070824670256334683011083767124852354110322463725619194174195587835939047474059288568764831570274891727391545546467943319734)
+  (num-test (* 22607201423790553279447786193696575272983924506336369475058795405894123712509544256099524616893423762658394830755129501447553593365768543361107397299007141714383407862976654294384881771985218996697067215804348472693636567074361380875512341556932579903687576929186215185312685712277482751425466251201421842248749944123326048360909954588266368306843116245625635467041934524547983478110533044085242847795585598341867070787331785945399446665919396062565614516404861115244243161694059679274045050270546536781907061002623188435269769778378780371158624481539046590932125320888745103158180784231722265376331553893647061533815 10075764395489719205294189472045365742345400155046712954334138069917417587273618147303160957788995022989479371576840422540097479703418600112174202202728054) 227784835187493343385594867881830022845566753253174983274076326016001091958812135049265213053390506720261776960833046225700903422206015373488419693650378821159134369608830936915027161415300759990632038898164509761337714774392506802504397626551196717184785586630245704512525844329038355790338277254618639554796026366029578805283659986085947726260520495140332204643887370987929304924491772630534558682402396784510750317396488402942581973350428066695976988812610467654886227733900635715495731445319565054848075104982244316563526232071957624002266648721592744376122065531440026836549316222728280595228806728872537793522244957258060730038589170810090676474272044568671474692128168357087077816573419470273384256552275636517940058764711467508281344270125535855785388198570146010)
+  (num-test (* 21997874907846585575969651776904015812729615626636027149446399573806943459105370044846476738175828244018281160136531735881270437472624605280356112191272531838028896521621800558410217146758345955334174583639352151367532676985598470747138461153212653362188252002768647808852054182649808145379073620834551216386805267446360709820441771932135218282126427988826945094538034579367527908530151926679515746133600376612899354099328788736038811470295396365432559354070365548930628714861826464935305416998192532029724853617023971964507955475554955277722555849603716733374588174421463022213135839490633927005539569058361144905451 -1400498192750070094581812894241996480373581610489471746158083224360249880335094841398529960182484181641387946900090289855375996313447832474435929084180606) -30807984052781257825246153008277875918087659020905755686964119182052911551148620538090633516362197112383237624321406969368641524681503231262834662890145617622830207559490089313283375890353617292096501953380469351747504928597461154633889236826060654886877907382241867167198409355653371944304660938495445848950444683274236538890057643038410268234731745456035923559528706349316582901179686671568504971088561096469997823300883298811440849031903066114422309644669680078733839046643542078157684064686933779591609758494599988463628362190034612412739669041368897594110022347872452261447359402810277413572637740870748949093642723240662839444216981630862346445890780016393330114883270596630385367407921496982236074288475142085411632630374714528706189796772213264952893973677883306)
+  (num-test (* -270155241925436273159477510619232592261228150696806729750247050 15545126743930076938536195287546926534964892301082800206802745964245668351235397 72127079799316080210744562119267314209211162112457416152560774669179705347659265 58427280233475514109627698916382980237252687770812483048907352594138577656301900 91336330475502063985843547526216808965829995610054777216888670176112782119332811 99495081134815818196404370468895496198561677002653930126818668800341380375657337 6904264296552316628911621065724553059847235903647375662685025031963599691416829398469283631386160328944460790101458427909545198569619131058877708293713734 -16074984786353617526516141164566295497596312655026144270863093715961484079732496604871734572736757225277596743795506589617891195569235287256031608792067121393492186703333733526879481948463529609113624075923052999494363547340563039654910799974388353472433635130983731604982117092991918514078659590068643956240711810902756784590442416249652077644077280371860780741318193975770906075446772544431670392964384669681404295839302410058434872964315897505894833409101781069230919347279857855594782111721176074849502391457684148683668165019969667481755384384017844104770253558111588611189351637275389688093074751942960310850074) 17849860827147993486644896214424106325295064110723402251474432199595968349198253682890653243676378684005650871261983711134190416277366473221365848417375107498764965893729640224952922241531788638514200018520970345581414705756736222535562338748426356003659523260330725662384208724142177900990027225665451069059291754155591197426279006090296512196415617974140965334686090032257444820748820516976632201388937358434205022475303705442914044454220818215336283948743042841946229853366515552653568436171217572212088935263340599371830215580988184775240338748954666846379831467518505260487989636951404886967842600777836444030434816421999334066711024026401362115623932221335906548647785232855815515579448393689650116225664467056283988125816950714780486880294535933597118808163054631168063568847830481653855357008353733414826165759079092633441356914450038756281940532159493763482047244493174370100586359619040444818634156576789665732998111907245928253704097384811414269835758656988678207624731164159069547745777423464124959379113843649940896359346515513936964849811155238140671698227057228045173997904545787593258286212427476788605370334985423461194148838623911634821153061693257996982252745844329344589168264774527631972524787804330730506700000)
+  (num-test (* 6411564443509812216548163965666668398784964137255201222920640150 65325385402074288043601436729391841747319174569548241717675134253657593233436152 63305037198546989906433329294566491017476837189978173607681765241525113921707860 72383582945810879300930057856704905379805338886592055772943486702915907397618845 35525980101796892634292856352740658817031405780112750352735419884048051630180860 47579150292602967366908574298176357632207539947399443701205872093150879604391127 7775494633965874654516687741429737470333189902121089184439228657893110997221737422210698789286625633365548095171257583020272703565350668755439139356570 -7847653632223099338936161226557020783515367997970448568586056286591257384101422312757649765574456754668588904917800060981155642916520580540801153603733496143328839018174649200566737789874193483124577734129346933208306772618814806884416239295732454033604210880463262467564639515484363761639994642888910703066277724414372379965872478153546766131136324967950786993982228851928269842355632200589446224738709869729930285189047112131897218464505263042012855229737941639093204086147932759923796947642895167078971517834730472596647456786099215405165290569214043431009370032818978995463168133051136053246705694337584724712230) -197949741939898550383903354028842356745461597695099989904494711851411610441324234089773644533872304737431480244289438922163630848266242200711131210228027234579469457105291847132071566876246332653149194709623963836885480655282595345693084881617726426841183231475364991154699746506928116505297453355016975688761948609740314324443406930215518937775475617384099331839748494157863510168743547396262979908353122625808170296763676837551973930928848463398657587603606321137626467028732193151671337338929938959296176472483674270114824853018199281637976410726195357458134038379491704909997939715446657856320452698914513791221947734373322868574099599391493563479057703049036936132407025278683219316357543078875410080612067641232277376174351958080693019953378024732243763129075732499165068171168470237875348580987967740148512425201518758344757030205911031119619416763996490581551977913711646761182756531618786226541010835120092904291975494846126923510483263978074437667987560077422810120462938292680423746968095994108344184522240467647491991837793653579480334442342102339933473270535800619630342940590477752278184994533764839125736268376640933720554199782388890444619996919031351334561766248781813883867406045414518951152508504891407920000000)
+  (num-test (* 1669833986019218156514274418186396165434871163342486930502417566 58528969848472951398118375496887849181512821636583415470809040929690124231959506 50098163184827557635697120379841225459445103589988345336880332217224622666020381 90445522698871905833766573423181067004916996574451008349087758531794463581708977 92366726802191504770638415639612204654473958526592425718659284841373421985393966 69096133232785816552402133765198624674167660496399099321713067612475604030259084 323971624832697152056406152359288553860210436839331005469891386690556929684663075996719803995137130737141925308417709520389528780839777347463558171582753 2635514624483961079560488004237441873979133312246005082134175818331132377114926863102436691793380965631848192666106793612266994709357524826644421074908075389316030912936338175907209987972553710900613011802455058538786723149316934049388525865455871552882282353445228425640452635081303490379594663330152071465360003249884180020993032086861074931796165970076448856988084523672973069824258299029863033098237556417571526135639288006133579174344589248428714474318969988990720790226604664141927030250855550010512291136517209169959021730625428868037074528890516086527430801590050720467893089085308995719513895962750896813152) 2413207990093478676325592386500172980330574558867366638913149256222218924700401110600319869300256745035993991818342784487193857053589994816247466074246569162659879368383295411190237107255160498774228460295857931362161062884154872938368166514128474751716517750517217000290486110198899480877593169193610813452614906598055909439037075588626529658637140089909227353944313408987644743661503976835580507054926908821206921014266535160031749397432350114673787218438589065861056449106115395189057409933330355574558853874223262465965933679584884152813357065227868165556818717270584803360466149860292769520737249610469675917864449261901859162854558012721179400237645357401213337423255109839806528503425658270050436129019270883446965562683284298538825840361267548675967778385927410390726055957928634152514415917053614892441910675109517307682075989998558764742821214685548219206933043196677521610851950501225469125512893859254575460130829051324112015464552874242522140166275233893076603452098841950130740353331198999756316969161591691095397245996664755249875720008141774247384884623389430842799829690618405724986702942913150258769060684255363816662231923570491001519802836627028431389746450987110456127797025006251203111629141890634728548553728)
+  
+  (num-test (* -6520062188352981842/3213004995534018829 -3812444292971845716/15284944374811818089) 24857373879807849010516976362973488872/49110602632729971801355498746248797781)
+  (num-test (* -844583948128454879/4750740551331102615 -1309778567130405125/4885884698278749707) 221243590680205607733892613510570975/4642314113048197066962569716783636761)
+  (num-test (* -4579815856418431271/16947444571374397297 7990245706938186906/12540719430158043191) -36593853985314806270746820601513137526/212533147427761354206383017714519654727)
+  (num-test (* -3587966953201943536/3194797554208122281 975954052071387816/2707062718507963111) -3501690886675668292903668827990357376/8648517352177231144330968693325176191)
+  (num-test (* 710265334225408429/567023629756400552 -5578988760400430103/4131535930210536898) -3962562316545608552741467762441538187/2342678499616965424161446427863567696)
+  (num-test (* 18305319006789031727/4480148641441744463 -1641093267260986094/16028097657311023719) -30040735777106040963634910981471804338/71808259944297590021537032075729917897)
+  (num-test (* 522499067029593907/142530390958606446621834761330018829110 1567459634764499377/31663510497342378306792964160850079086) 818996196770998943862055820464495939/4513012530308148429025282037949729145117603192483641232823845248212618993460)
+  (num-test (* 6214041481074460220/139497414619784295310756757536261769729 12187470171919324678/129216394212432939561557938117593031955) 15146689039532873328968703771155061832/3605070583825050709361064709099418651298807367637359842488375232197429738039)
+  (num-test (* 10022419596195177499/91129297586760817507648681092594591108 239769653037576215/24086455608554015268646156321002022494) 104481394312031409685890479072416795/95433990476618390508514520731482064738017476445225501421324446942302103624)
+  (num-test (* 127731839927226607/59760640855511386051149338950192132591 3679984267166095161/269870724770589242613062477043917992045) 470051161348371979221331000573148727/16127647460431744118786930146746069875784110572380855085272434637353123238595)
+  (num-test (* 4919926511230586366/29288587285987487013553554568227355149 -2914615432991234299/34407808954885309804037535414452526052) -7169846869407694119621783007930483717/503878057947370143933800273784055481319429768630967123178484618174989420874)
+  (num-test (* -4322680734125283661/246950524730861178141734701180345535020 11581515233057355754/82204027418720951285150957025638971309) -3575942340708251875937466941988609671/1450023407574517046920597087724458064116343346221474061477327267648859624370)
+  (num-test (* -5552456004563371781/36434418778024040927761226774271610950778609263056622471030041615086459120568 233319937833204741/228703279535756717601739981368829304509550463672786894384479957768850829340) -1295498689806330283646616799874813721/8332671062513255913250553083541810221054209355142441164334390514659539371361850837178162594438925276666798780352514152276296209564179606228713851865120)
+  (num-test (* 7279569964232187047/36316165899095632459738478614507512808578186173163489609755035948221062420580 4568992288187244990/18279847281938710983382796940666233712517527808023718591530848159479207220137) 1108676634263212048809114991909788151/22128465550033953372731954247755694375180631486898426116907313824243654714198100644737500721615620412852035450119116976232805701601749863504629937973982)
+  (num-test (* -8689289043809733973/34365105035540924847908154205433563929060132734873649554594240958996510665976 281724695877043289/3383396067954681850718083474385093262190311835985400909911383280975222535225) -2447987313255021583629117408894957197/116270761252098802423406562021935246701911690887646043563899994409915142686943691634418411056232663942535537938126289647041118885713303684881867869004600)
+  (num-test (* -4176416206981759902/47077361360975682486641492558477246171356187409295624938308162261216397376441 -10870319933050648575/51626085927005484523186190379579228801774286705829757742503501130303410401261) 2670528255498212232918897515060496450/142965876637554026205455979922464979254073063785755559223760631646970673683621524411341782655829702451013418009338618833412062193643308417898164204593653)
+  (num-test (* 4496049401725150702/8024116634872885909638996643719901973664008349644172107626390134736213108465 -5231341280619167012/99267989241776204190444307671763754306088564051099822830201760217121508089279) -23520368834947889555464127765407042424/796537923785319116837266627763277272873506235001122453584405648384893204423914484193595265931840447141766909166026026228531619859740155558402735330646735)
+  (num-test (* -2488955833769033882/80573015130339486598712021266263458487997757617589137912729682647628329090307 17723590657579960683/79078600039601362101827108583564759878924923849842119643649415446502020994810) -22056617181258995266120581914227430703/3185800618738432636378738398589185111057563002909241393794402306079667392482341108052833514927720630087013771419748846412352850012097731569487991234153335)
+  (num-test (* 24410613567363183821142175154197794689/2233491913446620869 -289777146895293391500645889398422195537/12394177861163531771) -7073637953514043162500219088395995153310329907185649946877180402954938102993/27682296026727883467940485833673128999)
+  (num-test (* 15029397898618080393623393093137341347/9939158597399833599 268484092305118852707129202725716126526/9752180454987984749) 1345051417567645337656755504737828287428006597367109244226136136424901090174/32309489404196149853047846865649927217)
+  (num-test (* 175291724581304230067306380062677652261/4791591464449055089 -207911166974886786162808240992513636954/957635297799905137) -36445107018739410292029741836217649994267718828374576884161821761303211252994/4588597118993154438342028473487092193)
+  (num-test (* 208446980882041538439350888438428103817/11756453246592156788 -99855903858077543170703702663212319708/7775813092266901197) -1734555140205305628415286772698507060801514301420325900368570916304368260453/7617998589456250715053087609460739603)
+  (num-test (* -49595797981179247160347259926801311825/16426101929443877636 104499598328969971414586784725010079457/3085074725343747115) -1036548193567594227670217621556353400490405002875929378150074378019016735805/10135150379689493069951723318357604028)
+  (num-test (* -288919818051255959565698296502103975540/9373352185361138021 77343596824463059344208562767410464067/8355013728778983070) -319229970313622361785032672064391711775428287673147624981393545586243098874/1118778374191039878067165437747032921)
+  (num-test (* 301194765217764762175383920433701358543/150076401641721289621709469985978858175 -109319143590504335906407585568245068241/158084148208214805386290412276525928977) -32926353787549066990014316879429253235742017240010356390402491456481443332863/23724700119685440084214937112355810539035473428177368317381421021523605836975)
+  (num-test (* 14575317438235510996984657523859363247/6747043355688580686998987940004831062 -98472042392613093668204392119412188287/152397803267436514292317070561082866275) -1435261276663720115408306632770383012566806521695455296458086302958691687889/1028234585957093005711368462502470683211464374115746651290896689614112234050)
+  (num-test (* 7543367187310376010646193530301789591/61115754966424662873097894247178344192 309940239796651595482411737112678240799/200261667764086238794802895148430893795) 2337993034909171213000031444662193658341848356694420878002930517675329723209/12239143016237439360279809707749702660797878084581096344749106125186707088640)
+  (num-test (* 306232835922656327867425959604977465100/55646521674811091128956181530575055283 45245255551837746690160535427248646677/3669533234425940180962041078287629087) 13855582919684583969821610044729507626133731299765443289084519977056998472700/204196760665922729081584465192637337445710456706084552841012480810023816621)
+  (num-test (* -280037880297253633994139513185953058494/23798550327416056573646642830182072429 13967268482262630670960486883264178489/7947215947745048068401387767511847243) -434596028812829556627014314125713048434599389957141408329542154357763726174/21014690966139335562014814134594464675233042588696546668504776333756662583)
+  (num-test (* 87160410649223805266866345018804635271/204719779683096591635231158476535039583 91197762560765392928084914476898132964/277206223024759381433146631560580134513) 7948834435086720002947247338196997812861466884983039250681993725808882173244/56749596904412078223459353928850191672356004665473536520452927516595919428079)
+  (num-test (* 272801380449749740391855824723351316848/2170368723435176720708253536680067463416474841046765138040214254204061862261 14545537787709209389572055399030228996/8381323291479119825335849511027103148981778425333781230074116361235206363821) 3968042787871071204066360146704950989545352280096012736206796950415592924608/18190561932825050861659739926693806725838682397154479213760300500132465705680046683155463862909993066621811136554677896021527098482779305371951555659281)
+  (num-test (* 58980225701104541897366713189611773567/10973700523953435846969235385386214078292603476932194022615006557054104506344 21633357583056027790037764923811848217/41236459355840549300942497778444413350482341379076368704834339005347182486274) 1275940312921345964633100864283753667394719832288287163056787891633576680039/452516555639171997520308257003811683819837367444947027711901120987864272999978391252372420644671039873982401560595091423172287702745925783369137325922256)
+  (num-test (* -39569537110370574225194522625562874655/36290593978404925051095380486087641410218299612051669925683823165483928853304 39273660356839128453616088747231247259/28875229647500294680887983884278577441525691250738380954940513956990510132534) -1554040560950035541902707236381071410695075315482961522429891905381129320645/1047899235170633560739863801929205639611958070150694189488499584527041043137082563721218908614201921449076002548982308540689571766482794493357171683792336)
+  (num-test (* 8957762734053174688386697837976422606/712105675122280831038408324375785815130945929819518342973925027507219300067 118977607972668646264715307919875588738/36563306353035936296510796886853084280648109576589600551753305930842020963283) 355257727628119695756412145322380851760544279491883270008434507085780737076/8678979318410478400681656718586483785992423192579006235728835173903750764880944673586689792087386144715446501744012435157310426693657188196381455479987)
+  (num-test (* 114386050140129336980347743358441052599/11994188887964574384037137314302737861703229337059619512751326848591488081229 -50822174853799566513638003084407139228/97406657802317796912648600328217961853548397771614449630742570869667560514587) -5813347841057137571369557065847591420664634372223088557679866032754664253572/1168313852626327929522799656188055465298138284154709873285311568978496136227795809646907486798429717114923178357702460243511883684964123937654308495387423)
+  (num-test (* -22147677230189664783449572410799931501/75580058176304394102183955194485040346816524663599269056794063928343401057143 -127672554664595215026114551202414743739/35777311684781371234035985601066874920871049301826919955489852676067316906014) 2827650531865200718433745248471704607394596478050653604940563621773668622239/2704051298527551014378337257898371613519363350219566689647796093438747503077807722203668806231503452508016974614236112792032033672965127824348803574358002)
+  (num-test (* 3468729773587632113679855593063165286551216344725198121609354788619580819847/7106612002452012151 20863200733446307102600190583661606839853255577505815215312643683864543217073/5700246487811068117) 72368805556440529088812813715602124890901251289457147618293618526488567540302416253970205832659523238561757581481150988870947074663135867252252227647831/40509440107213064064897416415172689667)
+  (num-test (* 43306673717838918980731699770600730039727453611468399058203483818093233880231/6173575908538565981 106634227988568775671050783423559067905086861634892257032833451008548321218936/17988169594879808463) 1539324572884864883885215269788177741067901747630436643318399808029602335378536990210735234944615096105103848497832537965483619535769637171783464984418072/37017110149885307295697375341989232401)
+  (num-test (* 61636028396239445662576777415312348317278054920190931147781159688109244233565/149659999183936017 50280832809996410949441105432174396823883728565382915986396125237655209339731/3406752842984125790) 206607389257567119017662603624829733217835095238758046754428174885007999774491792658838812826043033826701244157167565054600950156595290052398436186551401/33990308513391731439280046802638562)
+  (num-test (* -100579490802304807750359433955474958462342659278486016345156932756807754105945/15683759624513404963 7314396152134987983181095955389244247502417255088677055075146925285457081540/950287995699608967) -735678240508074701153113537069655056596152436111651040530896921701439724727486696483134676487497031899584038731663111390949471467249259023050011663755300/14904088498613295322494450308817103221)
+  (num-test (* 25984831699359211750216710442693374608159925357093100400945034699383345074385/10463598404993207796 -2395913226491242076662067669730978955981403048697660449593722338244504668974/7015215522730452775) -6225740195664363384298636893730784883811595661227613249243163802476751022407971476247993440178871949687923603921101094083879668063131450147131783163099/7340439795432595812648347200273983390)
+  (num-test (* 5173661857391320950903772549611256023540539838210520778403003347430938670915/2590493168574884173 100300641976357496491877756123729102910724064566692821682523911939220592349990/15304416107565779147) 518921605664943617990486317157527087053001312760892500249127957517476408720600460633868004681188890038115877413554399588737851074382787744833707113540850/39645985375676570588146199684023740431)
+  (num-test (* 30299639015164203561126609159677900559022306879488518544803392527841364186955/97638167801975054493877206805944332747 -50150465496280036231382225902610460555496341860773955714344071185921583266663/170117675960786609061777750278261277482) -1519541000979732808188648781832621044050652591754537200855596768903085847105531546641139177813880505696192826380113425984545675787584857974943247950981165/16609978191541300835961154615181304582159561006676548938424954151558306303054)
+  (num-test (* -34494394944257769716276791009665812125094062960425641316440943461722789694119/69239821080832171466311153221314488591 -68027404272124217088707268142523090163964888591405843143848585935878552833247/257149529774225346004390673137885895872) 2346564149995340998782934409780604815295734898030424565252099571337345550054284934036215402972664245125313098735082896555892607540059632597741979943574393/17804987432587488254198543762235568841018786223139145264591718687823557996352)
+  (num-test (* 22330754509472350470460807673039908304726422770752644988051418230315708975569/141163736844241522445115344332946835969 -3776092949566234532895208849184634613770861313997034923686862122594334787771/22367110097535579962848998753563258272) -9369222740190326741203615957382420344247102784278353165345406236082475331042528539717966581690645628370939381978953360215380653092335198860022382107411/350824982641632215769272917522017419782283768012468846380070797128085153952)
+  (num-test (* 1376215273451682681102140384578115142238259557166158859699272578561460124263/3593386179017642636485249017714833669104405991325015697577507088650274886871 37146275008876311604039415809582675415172661567487888072055609579242279390723/55424998453085285819414374477780690192979527887019008768378662580126754826472) 51121271019052119686352858568900325361226598163234091421115939503875711782442415328681175322030659510284806538410228985354770913411724825992699509412149/199163423413390889071651575953261174839972499014963134990506980080139461063269751906284862132821075544766093817070661266293471833091996501160433036049112)
+  (num-test (* -88175289711320073148300791156190227927348022787624424521937188958291199926437/38194742314758366741668899229532351990874883495690656157862650973602784662629 93421911195279228911508870033119580111709458306921869937709821511660370035352/66371395138592894543765954603571534463846496049156722497129962530412046587003) -8237504085028962150049531747535213236460729066521397582683209771842938254589363802757604921456170821878391951762499073662677974506165863935238701489400824/2535038334389561782321790943041741331416028402594806464107449488311138037598457377927652600804722340759363172755193254192462811091332303758223034251210887)
+  (num-test (* -88364214910455569163017945328431687038422451206033411348821431934742389780753/43010507830592044720656702803904712217809857004582018186125828892174875808576 10405170283887792832024806983921158923908589830001636723872220129826733402834/4055629711949631304631599195955105801456753694558712994574702123032807265321) -459722351572673455425943766571506569631562018487574498847133029199411842205331593858852090421782204158679934054007027833206633183796877753882057444427001/87217346741895687976684378003169607737518608233754137677854312677618987931466495788077930577814677920791330694741284253568592140275298729115088619596448)
+  
+  (num-test (* -1412797070596191471.0 -15492755620416346417.0) 21888119755986895161222137392796809407.0)
+  (num-test (* 16686841096925954110.0 1491135775021813104.0) 24882345731730524499708005167300657440.0)
+  (num-test (* 13262412958100188045.0 -18379071970155621919.0) -243750842254847872704698616507823758355.0)
+  (num-test (* 889503034794263569.0 -16600674457216690894.0) -14766350309325860687849239111838240686.0)
+  (num-test (* 3148165694020236318.0 -11771070679825280729.0) -37057280896113409834434531491271315822.0)
+  (num-test (* -4443818546267181727.0 -12001052312087213799.0) 53330498839175802532024121011435050873.0)
+  (num-test (* 8305259347214213793.0 -229351169208067535459370186456659711595.0) -1904820941859811670566233132773219565154696335396051029835.0)
+  (num-test (* -18273334758510166901.0 290047155020180552782039318570071650475.0) -5300128759437251944808204783222405076790289915320785927975.0)
+  (num-test (* -703280433697652940.0 91110448009482115063492795153459771021.0) -64076195390496041906141380919369524419358692517527451740.0)
+  (num-test (* 15279634596127882146.0 -220998726467849290098339792307263567896.0) -3376779786638352686104608499923871317791563686466157184816.0)
+  (num-test (* -4472497681184076830.0 325612942672822430032905460436166528379.0) -1456303131067722058341139305566346079551678140995111358570.0)
+  (num-test (* -6180420673489141029.0 -161157288800853703711204405567379740552.0) 996019839388256252540244286609069684717518686623358308008.0)
+  (num-test (* 14044956603588468379.0 10163190459901171254101452124764637970005230126310661589196828892266636678427020930101076689732526935899135126391465178494895371156141265424428405590113790.0) 142741568963316278148132287599703960511135825069792278910440475692913696263448088587778211787403889397993501704943449376875999977937418748662459138952952917221024170426846410.0)
+  (num-test (* 2133283347509865817.0 10577710515843519541178984366353275630877942729579274295972091544607384358263130633386329706527832990861547566574369528634541156662300858851752195966167381.0) 22565253698228972909216255630133478029433774404794962869038558824053350969301054394347471181756471783852326407546652836376109109470959746153989521923555764579738243072315277.0)
+  (num-test (* 7812722507014599311.0 -5055959518947106416800910724733658104378582281318226107212861190073091017493970778425583956006925004399967175604321778956828368132273155364830637407968648.0) -39500808728232764770485117356353304373275127104839804121600969932458363071148383405901570717732548020267052999198017578112731079638156026910705662052515278317807704170401528.0)
+  (num-test (* -17560801708050275829.0 9842515227842383346577123873881045824143545509071137371075701856197189100217561683579562062872293951325890789283651221922663521213150065638405410634222129.0) -172842458224605375239887212582262805312641302639067963604956593404910080268476692854082531021580381176489626536608405283010496488558204787140272050713264572452317265305619941.0)
+  (num-test (* 16743386830114877156.0 7347065846171565625701636575261347705942035850951855454324853850791855951431141198155170102434274509450315416946729031216385536668189501958761688618635668.0) 123014765528775807847206414290825117502032199391400884957413813554539073118943905948723779020186281150198999824020769031248882909461419778092564985979904308229718874140000208.0)
+  (num-test (* 12697192948029671719.0 -11416780209809507417142822520376617951137069007568339428552592261458272400645205700952156716454820410468812274673183389934216970221062627926131479014990611.0) -144961061169197993494569769162151457365959287966302572862364500950127981616038900865036521107816831702945678695331078399461327412574397914795455218447174498277798426197230309.0)
+  (num-test (* 17005139720743105479.0 -29990519259587469661876904501488342396062731024702923152492275204626478246142153608222329335341363164148761307659972897552084842238285026253664841395295138667328930482145590159132144957515157474957872335043653264146346772142483721767458961320947069718037828473530001033848282453826154763424789967441239969918856795769965946388666154136004597297855416503729657013008165049478441197537144135384444157408972370236442813734429031404855591324183846423588871065272526864866155918285777640819778251612915859290336548446745308788013234099839998683451658620461972798204104633072664604846231692505409653434538208644416538994256.0) -509992970306921990341332390474393215554862069848994183152714032617297815196921655222705396130464246880845576204295466273071779248718654338767559016551390771145212884412809612574391658668778295682412755916528976282396155832617323980694289208942491001345059122414240884660276842648466533488559879226195446807748573906940273568334343093922652142252689341425941673567630236228358747411926991658260241924294146562230425295426217833820067881064577380516936937782688004146531121831211284735538742160763820814174631414364095096099434285754767091040812242751724012532803037860394426031234340719537172735695313262283511554154662650333168783128624.0)
+  (num-test (* -15877530153400521290.0 27863984127681242643954505352420303514833683768731313003271701952957204538094398204984051331105594788039352443762851136101330385230866919393696564428736685568762923746771275677491379334452751710169529933675128178840986001684425353245791752781476028565228371147542431713985092322787978914276414008774443194161599919167210582437024618824616489802661351916633993681556274980075051797120207655478780052593534285265078265845445633803877185868676955831374479850746658711791169579387317321983669227930929736238215792068273805543745311609083833407544342964285215427999724272264458975101474080574470499647168865409458531868592.0) -442411248181132450919255517905812929771246981404050821923231762557171158858876183536414772404562764742655092127161703706239729646027465795612501446223663310668879007072125975886873343449629108246953385822769744013416908613100114754904323190537317463286500657291202287742354250227377164455244103312266617146454847578457073139633297517170508179596166314955134347046515455569689877574427319658085169791949003021426613961459610227430636932814700361914589752207776142403364490846294795496119883683491811246550808038342285518518431538295199537270236275774546666026424361019715280652576803278928827199810150387207105149968313623040090578323680.0)
+  (num-test (* -14162897687527555611.0 -23016403916121951319848021112075986869602408568431399211927062304968548663313037929311574133954267816204873252195499803324830278637331653769648377216095499136975244697758388851688873078022850203685120154634090802825656419418077380419130449990938627982123188424119187922828250625318327074513352279785514062876718714640725789938556578327139793467832731546881422469843509318627826856881082450937188956068348931459011923844607158528494902828851692203126881727638511348944908726926619613375594042390434147948508706733126737304560579515324106834237197081860910657003346633962662773394999353766192391746258372744063777808796.0) 325978973798843759388794644178802841408656469654887121096165875654577046313115917671847505813174070119516580105483409446057747653173640660143855580491229746795572929387698247460831363721394707501497262525550824977473864621747159715947297817600227665840640555029633517390896890601028716769035575763283168066843141870124768085499453574902575378368669494153555135898430469356384416638130459557518713454927909937610851489821263029886989981438507377741962130296498574556444168140838201069779040087521405032426995145166201901368032136008107323350679784004016321425234898132080844200202007395427054392280809376612533414505539109579739614954356.0)
+  (num-test (* 10844738523441551664.0 13010289169828379103330191247192587220592807931898339555723704078985668371901953113936581573750666143303899278973814509164982887504269303358034042953769514772858989849512527461308415676004712388964136857232374888643347097138114199889581495448978914022318770898259317738823514820591042321773469959130347470144905381758960436645008051488666423115693738341045851119808222048272924385188356021826450267608127588500233526688704136268009202730309974485584784539415807259862449203760469406037505772435323036790641520939576046423540699016607317147689982042035523118533555744274806239272109508745089640043900389441390176681340.0) 141093184161152226992592021994885140117836445291515772908453669279294934817987511015413332614094493905560980363483549300117114491702466085602279965168041684355125886388302948336158133555051817733078300668260616983283027038746214728386770752826764135491650323133831923154477800324207350667020747545837613879364064704092093040155243919335078139087599906324684688427176309081290932504214653249366429592335409761783188358003723753633106574740731573467850133547164922532633897844647383889253777956821171583261238607289172489135768839436605233457738153233579088224808850428203888700116300637190661108848906846940291749737998056247719674749760.0)
+  (num-test (* -16402132873169057380.0 8202725117980211375579199554494319645475746305836527475507064811368616698686329266053570766100878145903342129595869654087772486685252653587846560946850102095086896668181099435964053041678323706849735936082196618754721606824996486473796843333331029865501790248862590712245450877098960007272754260813822886287008295409755783478345202299352891066800825979067590290793893933819913530599309037639082839491869155044147367415785329077864525961799400923643936705317921900308490987828345313709179960659814100113658528990241758360711799009722683007157350272749544178688961738222930753008443755881419398858537860612954576778456.0) -134542187307192759584182063854799850608007421111316277594191532129597970622559949723743396309231347084450105499455916612009290113746722460358793168839937004812915757145655285798961178877391232945062437277255128401572171216279188126380587081673725314534095093062983435026047851041796084651601813918099532876684901239903769891552275465470747567830660442193995685219383258617057944010709906130655663966913354414611799232001438943448374556294933488875450563987147224709383408815994320229340710143082135667640802837699940654151297907451396297241124380508001357553893328703788960812706653503939250831164194874527033594779746890593262611805280.0)
+  (num-test (* -12094905083549825231.0 -7303327854122277566083382629094740392048421584433028903125893639493993705575691832165314461496849401726460344615713884253150283931509897329926825128629833541892164122168618243719393446304446866677253728405617434021389128710195093788280203239300086905325641224801020413858421914412156234316517981228056539721130386645649016559425091470643854813419057026759188125291655398451427686659900364573485593902992038773538760663063071699966278379037038361219424927031644750173900916227834573604566165762753650347331082640552394430002401423199016978155236550541225512734287851807727860645247391524620773399994302380387697957581.0) 88333057189654571362020288527489792875655269960629008914349561689924145109953656394378545526256758871407020025766992398117775520525507898420898102744530402370720932219749861094609497366188371774072368034971851022164946370916317410415503705484491514312339956381120953283812334833067601825812118392757289250628861166579446800637104996060739031010579056633535166403083327528575504427815713481850979373113173151813491831551023902022537957860211597622343157802805275942920911544696695931809085743355666792408029743911424760065578742910735408262758198787195579745280191859776661700139596074108035867940154338953640690242795671183308201526211.0)
+  (num-test (* -81618231044418675360403541307856740187.0 9751573706924018395.0) -795906195858402819552264165081526765614024708979523739865.0)
+  (num-test (* -167600745660011044249531125104202473984.0 -12960244919927910377.0) 2172146712516287908809731894157839567367040369214826131968.0)
+  (num-test (* 90306383312124738690336097936949488486.0 156109477991590792.0) 14097682358164298866835386043901377722456291173827620912.0)
+  (num-test (* 126202800261728727198105694812165074067.0 -17404362862588500316.0) -2196479330029905727399352310201914876903532806486592905172.0)
+  (num-test (* -80093647977875266525946940496137725572.0 -9499399805878278852.0) 760841584053111508349403804472960020663660465509267203344.0)
+  (num-test (* 304052889577333477963637861956318521374.0 7233536405885618691.0) 2199377646072361697737485358722028853038393128548297401434.0)
+  (num-test (* -124787646062877233829165925777950698937.0 -125798384154373172164515376683173327013.0) 15698084237137783175768362160964949930745617334715009097620154581879012485181.0)
+  (num-test (* 259623502197082370239517374851053110076.0 307089583871541575627915295134832918432.0) 79727673252974285068387698133566605944659309374400074880377824560177225320832.0)
+  (num-test (* -245358177397026033963771466683003477163.0 -285087883756432161967673595037725276963.0) 69948643556453419103498093570621669430956866597291662675473644085666220495969.0)
+  (num-test (* 46731711386059374483493216849082745840.0 -216522280665540473581476116002923812173.0) -10118456728713381305690589407461434638634240429858378588644634276171257110320.0)
+  (num-test (* -301422430661955757433852743238845048860.0 -737194742467573013847855072675441356.0) 222207031145790358162820429948896977201848379524899474475604149595884654160.0)
+  (num-test (* 109781582310220385246795023904554278713.0 -273317662617851276579672019029762858338.0) -30005245475518685175699313262818315773200953201653075289648004177366787958994.0)
+  (num-test (* -312236719893391897821327608828679767006.0 -661158307192284418474080017860142217763949256471548515134335997907628404839044913830388499435166012788226998900468665646723366842553747501004752506346280.0) 206437901167986463762021023207669068873036145952740267172145693855475451354717023377588805030022300923600718715029262618794758202955817341818233889201852381575043965927328029955969846754837680.0)
+  (num-test (* -134379788461141842858846278268259347105.0 -5535479645589936472405910397299739073641612836770238183712206042659632410776896398062277742229906915852933418684231779996404071421767274180368154310128427.0) 743856583805332082970350662728998610690268824090148728726850517499798631519601137183443104910590855501252539324674812560702657332874686395923181633958702249128106139207076314713649515720653835.0)
+  (num-test (* 278271843790644800793473851247546123375.0 -3845690285506025443856370771250487683891303505653819308540635173436088084480277686684743918745832832765066355874381847690771330587033980524869033600561589.0) -1070147326395532917564114389205677334125034378502074943828571411806344559859053091006175486397820822872698474899835730026158782698085673635033947150554253148685482702599776833910878579880042875.0)
+  (num-test (* 22345490710865165412267189692679994671.0 -13168094845644809414256057134926669929759930873747535851687323456073141938879368460977723280750841588750507348317544461824280674332488497533955177541413394.0) -294247541053147552931885013427268298282376074124656716577088212043667912662239091316191145352314750820026626159649861330384837204227899202392764926604802655267738710003310052268554637728023374.0)
+  (num-test (* -223445051950608517881717261787296926498.0 -2609806601119499724524852022247741111662431776874117401343811680374867931883996125145979162937751368655661775097445043144114599069842524778189198926688379.0) 583148371568187658089071213924575304457465978545376486297236105670932990897420147110485946155066725440999079357995678147717407410446012970360780626554347417807723098476525833332400212113766742.0)
+  (num-test (* 12604140228725912459681435851589379433.0 10671266866958584640992033560488052420339425977492420594983497264069815016478448589306666811246532193922229713077112601565462530332258877522384022088660628.0) 134502144009302626262781543880199144227907004673612064586081220538754991037447647926963488301214672345398823354945333417956344119228084327815583754032364976497975702972112644238248704660063924.0)
+  (num-test (* -221289678591114384943252477126208006780.0 20020996887149770966522122735176842174467884990518978494604707026520269232864200848420530223248762875769520715632742683760311747174524709550334825291720803698613541109690224185041740294906022358446325921538593105347423518731748623037078340006459454656405997570119591344894717789372844612253617591807770017562530034107842444403952657949565007792107071767260484233194674888488789619319597151367813735192433631007526015463229060702510632792171187339118004038505860316305860704455466207113207893106982258864355430481457640304138738182009363353560090082819036973601710432437342931523433079941958203038050750205966472435692.0) -4430439966231074415853738608900692925851705818190624801199561884242897308817127146763274284287396980593383317678766559004881552228480591814939402896201244425805503258878061459604511214900528594870260206969839682573246490602076070316760182753341371682323914671418233629420599310422437691170629449435494697829163966912842611408632129590129483811802031178053300073562716917597174161526976287351465154825036851645956354853960835948518860624747958440181683978083391663149733813297698623499283645627889274004656942800842013709298338912226207338477579862672216831422765369078886850523202897989792734789430796029206661261129141144642117177625405158700499049991760.0)
+  (num-test (* 180785619668676509441152734583033930295.0 -11909038209406834057075682058438206007134213485822042209417443270921391661498900475635417780140585878716264253792335317341527677051828500780153492153490249297998660274828986996948999762620400587091118252205695562417522111840305140989214300921122857271717052213225664738544344394774362885331856170636862181712515248810239601812262573113794334115259873527539564296101166439562124016438281173202196876398090029995104489712272260608848551754611421227761245487365953257890749115194455096508613617028024932657498899001119282498614739316599704645009607294747043489655424155986912576002393048535846081096337705941547991821928.0) -2152982852345560218506186041143281789706715672110278207735389192913214838321097754496849942223194392302524369156102301165660674797665128931611291246607346536492650554391248756408556789391955568308599431054809433808337036546281323840555452571430884302696950144068129601527530304907460164571704857360215834011779559395577299313379666503707563751314135201994045874159291100986903645360754621200008830207429980872071814202801994486961737459218017354210479544121100423399040398021780750351097082070296255480707530391964970754186799748521538525274241709676878827522138880241734356460339681718690408853314007343934035505873192699052380699509877559455199604508760.0)
+  (num-test (* -196121729286794751535600080816329923561.0 31755463535476988506639447113088283661031267977524968610501132544098607201258848456920865390506381665724254592728643925608893982794532243733117636645689751360224314774452374503339856173343683819017479955914451013484169313685311530532055735999039466721411777061709328450052490025363788971916050033904534189719389237878257877112162843506491071470067738867693853480174965212750301808781573369342701195147083717623066339671595077736036738235636996351642097684597005928843274525502529735435418805821748637387888409663397547514467435322454217015563134545731593492200855670248739786405074231658957946422903165662016649229286.0) -6227936422881500100190187768375947805694946596622670066116457374856427496311253030141271922822486386675428302332027411428470488965226898801659352566022706152307022438261392466548357753526474097246042956052374187605144719189465046544498482461077851578811186829094445089366592317045580466302238653533114619908864036973070346979261546801894831273337217021756025770590122176562027129481076270727248949609326868225755958667670279949371399535144788247565199415296122873444199709788941984099349149684384486618280260678252604631431089580057102263617056951788273430713908768738965854953667135156866028646584137788146112300214498814212865170902491169332389942607446.0)
+  (num-test (* -149247491509558553673630984739524508601.0 -9241905448313719916485289537122695595500213295294799660583133638026091750542612875183284894676615989153030773719811347110864468582634048542108726080717551794580656021381515769591713295631818532114918070215760259364277583650102628486861397602958930509695263902920994329409932518607260720657755504091822028630927071374796474717671220452208310602827254296323761245420486376569048549643478954846020045263141546849795367522490793641049509748005893155533480849922847230018411440739584477452313387881413141538766185123978087175960946255649923135634987656065468774634483495944248865774633962770893338531522570776854773975281.0) 1379331204929344851843348280532786532350930013132149419346606977890849868537539899667631713548510207947097949976792337278764045110931774279794402312944786743575421497528669859045492875676005849752425421867514661792129580445000023570590786705609341859529483054902802038173138834528021423393677908655442991197348183257271932188161681770513283703502340499171444058119260228931558784004778969491586252899270869275893402714040693571919281494643765571068045362364213060063345212881008657925426024923296369533374671614852576576041747836643356665301762059898161073609265572267138950725010661453917338098901465732991316661901878681888138048552901254914604845891881.0)
+  (num-test (* -246070233154436622785727814428081917418.0 29761582253452470642591719346200231425423204062498655510037025199574178834762931489817919404889920159374886981199608181795387339523762458361385170203883094308920011218315748466148953320570427838912637152446837553950810011344492780712558515815917745810385725989241835877316836808088478276603934260581342710503593237081689944686263274319354100341139245512159619947319496638082702549196795236216458749363904150768879765280332386830831409591769966706351022328535490587838695167807967607003680703048770719240872629379640571077329748828739281770075441660330884779539288220944313294762143588847790653176774089774033399559617.0) -7323439484151992757431054484912931979861244043627630118213112440051387392428853497035249623931234821362770902740177541812170377563064854590834087655133962963430877452052749127605572395112726398103244974178157574726551814002744001021805127518246639418981066588073652668879613252372759895389345727455380224104332342029151667860553645106555190741775758687650292791318963679857313030729683299101577207875499929500963723267185390425716927303375831321783415003339099100562942730763231688479910689887284950156875532151104047755803876078837921949287811575034368641167438367411569736575067233548122814012421044943430647665260439418887639347030312118291762161708906.0)
+  (num-test (* 203826295936164259559522643510940430939.0 428315860474710981601019542870649234168732095026625500771233691514247613083810271191136212287636290276352210600151884730196161003906066671915478570992925366265552107746965374246537358349673161970290367972281768471743836339191023211359427335141701167253694144280251188008871929010775436125645541749886873478179599464478734149706121117222690271210887178499620737860802605991262799781279373870647695125320153193063528861104479576369448865373971847676465682752435142074973627172566791961541105525781297462635428308325033717669972726101583722868689418677558787287897456521530400671342257419067050354522203242849353639864.0) 87302035331271280954456598486072605056704393103691656908943847729634903654600322194677794243221825233700566108459784062758955025931450719283517278054268553004951352280583820782976072352456972931479389375165173986780482062859853305469143408707179895843295115510597584169486406323435925707638987591151227843652210256611991940374072593149367903739596883229844326054223707236369465710416960023659329202073724249764308867733476242261506975691004092043954515337899900837434270833782490145948781128533218641649564543508314976001614187701395586824982250794852925954991265270537649691628899148413763865280007928191637215283244406869662872539567459561720369352296.0)
+  (num-test (* -5899540498246269366107488541138263797694914692322476860852796858749106720144552037986906792251681094769894732746138541066810195167688318229720888479512583.0 5834015210744942902.0) -34418009003174534626858248456163154666511779871358190892629413477534042866009573638264296461516598238780495750056279721797403178867717911762916049857737963922333901125535866.0)
+  (num-test (* -7558198374656605586076446665394545534375963428962439959101805545423930654069723860456022097647139432324162475685494459942871728608277717748075653794546685.0 -2079670855873590264.0) 15718564882684481784074014915267371190416032453294568239793060140651422710113447422494938907375595456199203928496644205320139985222135619659630853564447794621716315309474840.0)
+  (num-test (* -9442744083812363570102321552182535031605446031706376100893354933468482520577272174689455502380973733378565213055641110431767353396963744600184737808983381.0 -7204974197101757391.0) 68034727473703353914019458883709211780958983263702756416891835054494728840771498925306650413027883039860202168095834137357212487561983607389479135319040711944281262212918971.0)
+  (num-test (* -10658732210276096534851972646242288663170038580488752611749460640657411087860047053151548660331707024718100598181073744715506934778234716535781332588396176.0 9193953347013373121.0) -97995886679587166046252015742839992974979220158813197140160489510432960510418039749924861744197553021702396544307690217470606424904065359660871469041838900287446937257585296.0)
+  (num-test (* 3330096979672637104536573277593029682675932033891010715180474877149733802060455951241981993421466123791200840797318740359792251505430948855600408060492000.0 -9413190658845804679.0) -31346837782105095097578725347257193539696338226258990009265748336528353873277500144838721882313026604404426563737656928378230261942407473822851842589487713775609448642068000.0)
+  (num-test (* 2224201331350479188470378485954814766783857696988331736807430786504130570570323948774102396158334805040994159865821844362926631687258969480929122732089195.0 10226747830478556903.0) 22746346139936030910929166328517425029735137934434969334578972386859485783192993228082340012742115893176871887387993591191632260444955081663604449277961804869872353878963085.0)
+  (num-test (* -12394770820700925077767705800588617445613665027183406054209162910642613421436080064653443098327137503596792411463268187212855350864330592654862321763110243.0 336135860956209890623046930607725140868.0) -4166326961171213704571179876442248501325782360170764344978629523457550315208845439497110652079907652744850691289494398473488033083739905461347650605270023127087625641779424751335704552988710924.0)
+  (num-test (* 11792778994619176404079667787533709801900490264171877873621265044313417667869688303207909681289642260521608966405181881416781694320672906600599581862090088.0 -197661229068721548419113517262926820105.0) -2330975190212228827672814304508257223671550753091700552243633152084831515892056240354560520878171696176381845689952044935988868477421447557890739834031207059212175922089523097911477486879619240.0)
+  (num-test (* 11608994516281296345925963401821217560860934641820086911326880657644311461955556832927259499969983808078591149768068360172431078248807463030805586293656663.0 -40654941048774156019243747229920736005.0) -471962987694958552110784676392477007070112288398143925079396435246284471999814508543057304008480666763661066976653446723271982094424149279649226771823800871458389214002872916339341019732251315.0)
+  (num-test (* 4821517917539756801293776911844480642406562140007084392649374723119190602353617113036081438891134008988421494142194891002983491670246762173236312873933599.0 -255528396376819316172341014108564420589.0) -1232034741571035406264710387186737842510579499938716343220834781077329515145216794636313459582844773420679078031627466542930137302257934575129329529129776153159694412903937370462708576694469811.0)
+  (num-test (* 7638751115643228563298483305056828584775811590562130101723525925933790010789130133831569153863129513189315440899053288261039147463032870669035935364282061.0 114438828287750304954799140618669114911.0) 874169727255956505920153418854946321208907128396839975975317705220623267360648189969313978740314703015845506506608054761304647627635292132043887080298168302864314697920637105700927041824911571.0)
+  (num-test (* -3653826017463740005170218884285271512636869606149686475539243914909566619638259666405831445823138528809165270360144267462878986866506114069923299116957450.0 215752050445782448772085819939961259625.0) -788320455239949216234629350585027855111249573063377172522422069903710014529292638311216050777840734448624510386643245486023092483841464815987597578151663227035102742664709136512524899527956250.0)
+  (num-test (* -43242564273985683175827997542883970694363047476880657467026050730764924897992516355909421962249292250047896135687573746158665836208681548975073555418266.0 4424346097667245771102179669235543742385176589624011161914909311078645828684936231569739522607200308028372644149306431599085361996722603718517735348761218.0) -191320070498733614136284309000213964486426347688040889144514933290125387693498098446328694172047943298442181705949005984031677324306763731212307716485454004382079159622650481983102917517993601466178931324415483972311904823997211920702201161092866663969163567426868740120661073974542958600768774774949607988.0)
+  (num-test (* -5093597555679260616199210906198149266592665304134802327659606846977583233938836318559188141955851256260954289429418183711191354912372372976165948043123133.0 -2240632735861652612028397136046974907251405868353380459030143407902436514978447480884513019736738955326732458088791830752499716417751919868492224207936623.0) 11412881426559848135724717164530530041659963797467536748076144863846600718211858527283843975968920120508569299672573958424908957105703597501013710262110218780710678312197455759181436286391257283676806548463507528765947919856827004176416634630489598937924092540289712219714362500246928243091408698274649199859.0)
+  (num-test (* 6049789822056553589237940133475342650218069231558204589924996117723031491205673061674252841792149409384720347601549237626288416453061224734057079515141650.0 -826416247951451524584060567988229017033981218652490450160817307801130685352465013890931297548015267655971295627931896259998420078888499206031390299169584.0) -4999644605638856588581238481465237523157457201817697008198975191261856978252081380810200468420738807464233192102972784271159116426108806200426852134469939032473362689081653859652824862066224063273799612269941254948709760659691148103622071316554194507524610166457990087959160807415102946877307193349131573600.0)
+  (num-test (* -1175978338162966145239180473229656000174129248706173549637767835154921467129547950144109700900405904250603515318348888619371004435353505449762899046094747.0 8633693716102199391202401198009047492431980605560930404972542822133579985462906768067706391388213605203282586546130434156768523403030127356256666478340720.0) -10153036788469908062299722391986722149392791936544969945546931764708792252481931153733789787389051773529081688846141949513463792442701686406966696738286561777611293604311491896230769507535896070984747493738525389837795316954065260075941524322954935690803870500012809797698319359975893462672845329776468197840.0)
+  (num-test (* -5083395547684319640767882199938390155755986838939007846911062687871291096073452055061784159768637502151635665247461348347470360218957222873087414506633886.0 10813098236568616588240471432239693891825284805405416395976866126102880121934298269375465735278296789484402954117593716698067735458182402220278016922449294.0) -54967255432446073625448401244836956268872685687128644401372608170106281377801209665004925733448944141633739594240156882328181133879414641109484442890809130544146420476457200729843868300396656004198615619691952536924980482714767859804902602805398865249514544806725162402291122143659939645240358379962457176484.0)
+  (num-test (* -8944626200084865988157251013718979706166428261352840753194709093968177704853157211364231059892647813839391802007588961807572842923682104089512428902387812.0 3814836951264415657788614449012480613328314590744410079075164918748648723114236698412482309581077603776489883375576245233128800002373843611668945838558629.0) -34122290543331565327874124324135450224668275222811493728051290368641401807963502623692504750924543845019291736982354932620821594287780848608647686402233097059022704206628297180782771812500512744911371653368388270442874670230118309469599458827222162362901084328510647514081302476000779049412605744638457029748.0)
+  (num-test (* 5186176030253526423885531264483408352469356233262336223619904269047786350470477526433506158542551137478071074193659876898065998079440819597952826155782068.0 21428324964794197485898135923805540163916541943812058590308650649384013587098638034673796533027113673143959572855470411726978105342739938341516634354246514986124789451866589211982659199267654387148420461876524076040233779391563396552267276880650559148637067641021059664960876301072636635299261389450890094318429077561092553337025096293793433968243940381587994428364726938534453507046761494257538813861046058298873206568935790790373886840765817404479239485444563488020955730741209738203470138117422899051269778988135668626686262669881048094388220931264751830393793846372816717368806996496715219806062282836392457741918.0) 111131065300898907482632501071313138589398597291097276435916516379173430095773463468344138866282820740991088290299992221985607057347883717514843661030457396422379155394966857856069231504805779448809986906434617741485942621643754096548512120178021034054648207248963478122178145159262707381679354401629366698488021743300737044695960363216253889163551918513521913593214414139637549577618641974388739304727218804595402055185824193445089425262833385286117064481648652550355832014346131722965510192584901901111154083186713580209077544982897821477349293279848852596241762198202012197892321827305803333334823616660229870976569043453639028059771892706354703750763908127611939169337399882784092285804830644630059487027413697220038110815990084742241055099963659761569486906596326424.0)
+  (num-test (* -12615422028124847936088012564413126213419674293830655240645918456932358053670311316461359727921727680491520480380615359506308571290338231702217134487397730.0 21538722931308708400287621200994476771789912594554241036641406577761480056366647329031140922034590767810855360008375309986798226712928670905618807986829790199948665185268081173685941421700542631395958882077936923141152528333121096909688700106365468854487023847026564219531968849793109908193037522063952753477768381591929787242143631287330811801315216116212154423972654430356675401769729358415036943501470085182304183033246682446978634892995900678975109490698283226559860736462409705544079080978470202336645384768211440438501339641775269445439018148409151795830925198162301321965042997632479354427154223366199106583051.0) -271720079725309675925162538296715595434811519956795637977932956405490708202732964133816538801099235844279338645471102896234318181092598033040518838847055114923365599862266767493227393553801736813141780001130539648588341196802606083178208108557367013886856183999712817955194261262279080641101769944037282423238147653270651419282545398168930625797556638625301898893565965773914460998322350526545278664715332414172614761548301364063397364632709194713561073496860524124460861314674679928692398440036071116570829193414179054372604203478369755566003622621281005164747628075596444178089558747835994702060740334079222508147598079351187013336751322569865313532407367116553748939535664259669808534100091049960040092785009707220249025633808590643620557093069849490009472441113874230.0)
+  (num-test (* 10381022953674450046578890619826448644067144294659610359943634722044183130638243233110364436029778310048006743033299956844491228999113516347401915490861208.0 -20974871685432829994714153210121536409377362402944992609230062091789259307033495284524234519701670462495676590513192861649457148897274608767543942797542628100823017887236899471151903799837558453043431373811892813126194662218472834650841742305925226558315372771353677064933578639099452438843500601586038910108679737480263349221244638463171088589123712367802373159421798288708123925853179931628847579314900787361946716531755600236755527982132768286927549323465697241340003870259800347640599467922823203446834792229595507968354687630029075884034263531531423883902851487995214646322431057626558858528344843531280263328354.0) -217740624416854507100100919338835880277259264187442792458843251425095703739537223785767883764746809214920580060316177442387941385712712426957388995082877226019966428812240179251716274377143798847348759498926420314709056615470455134468678662646006408843897699718742372199854223008996321568642038054564397441209859567556502098420151667437837356649730396360374136203172669776530655738388121236079327354422138744456395348910073462618440421257604563050031602590345028438897601523520973759458890228893913090702884911857207117714231568437403212806578764580006787626657709435954760239671948147344463295520930250155876010414461245194991189183956653772752290656063730950237649394743456230607077768595983629559996700837383822873994717987698780007691157576205450973669241823945091632.0)
+  (num-test (* -3984492646329789478973994496812455855595578196959138558282015917391108383154917581748539892089090551298072688793487597623310815918942283997753800645644511.0 22199897116873160263914990610762123553075230334116099569358672964060004245706770678771431369917479502828754815568950371273785689812698287446020480951417047185190067265849637510591502642000414540862689426343523077229502494771352820057572619644085930901096534031496492870227890836816886496090287321502805172125273822231241073590840684742085641304915656543831190976008986490532066597410386596132766422026234488163435487889876791504407434387555507637783709991326338482319227500686541368087892665100076351075069628862376686619537655838590687615291898971286325099164241688147975845320979841704002364545072665891829427213069.0) -88455326811459002089798581395024759975871889172872668466370443703433800509268320055453743803627754859670391415348970278548381190662701716228279482045339649051139909543850883613464992501666524385524517648069873862957915620016943364950043289963237718026629805297916194484838158010754666017024585366330526135823515744339445036315966714684052345462172808299142368905939297220895721123725415007532441824406115746741972351142687017849809593982432484296719999502992792447259391592152463664807498752410740679664044620898308783634092355737296495489953554685938970593890496829484673393665321572846542839714620847185428664388282452532264810310019327395691530430185946743995669191791841546685206884247468693248673484055915613115527492005264289557719000245333079386593840592027314259.0)
+  (num-test (* -10672574004830373997900438516438419278676753890756925443116289034080220708922677740383425352837266631691319394850521121221541344600832530724104047804922665.0 -7307684417326792807224298894786988180161884427390942431653062127076829842696634441114228528164049031680536693195116703321494895319862805505304314401000204515985676763063862569446064343853536464020413910728442475032187317639476018710375702206456631041987826826225461927793241495220512935434301833094232834266749666697332380140380619185254354273073522191066457437931022783436360434167505326773192959291779779370530770935758482422581712556111319611455306383173529090289274267200543081481693078804068524057891845603351773722737987393428313340760607600482724483853560340630587029610437280601010173185018227638972500038072.0) 77991802747865927212086621295493124451256238920588746597961055391511562690441964216934615500942858653797884925704270904527938466874924049039962754703188019915846345804228044693122758075602494985337649496117180241872910247079655077012999375809878184011356481981590430241786534827516536543734645410817621964035091467871491521760928486006653992134635010794346993161329777270345449763927429735191213854873362673179799811714902439637861750855639857969259787075469241319618538795721956528400353086156169058060112255274542232054021662809196965752800525093125763127895334967094763817500702626282397394521201385439419885607578137159972521677923972708827090645776826953976605193554447841693259586575931864396484621463004541561908426383260772786784541411548146173991869741515701880.0)
+  (num-test (* 1420855003086789510813111205540636553863493314684153860389816109865085846062678305775289632805233481596171530412925552158799875183492757047174905459819169.0 13897739053062356545217161606361735964779941697726983959749295377836209520566715597422965426908191354971972501742952706730523748574796773473606175934144970768662226027157110240776527834790487577863781140089347362129598158760833470434895693782503529955845076709376071972727346128409008293671217324995682020009675316075606538241192607139905488719485728099428376369506685875348346231688684483781160648420909364963718027571565217314827671844485031440079254478598236877074793221578612249882886835580737423192061550370069895525711885220268707201966615936769696379335772521903910689934596134239331592980694745008817040569590.0) 19746672065138309742065153069587996891492444461032276894328314121573439684229636534026409362850111716212254549198595854140809664451286626009917828620279583631575940837712663100442879662416765138504151063632823014639305658882804073655537352377258786105147057375069447099908107785635606190515362082317465738205179108333064680370909383338688734129396788764959056886328471374018961975554190739706996184818378586233017775166959010668462907838359485424792026496574369912033757997469014639705459505746723512361959074802456098328538419933637295482429555127226978561859965498424173552676019033370307387047798600024901453757451579262061785051932535359410827170361533603618131510421439128567361259204833501190218719779570258541358012741265599985490513564378203502703406698160470710.0)
+  (num-test (* -25117824099635104147178796272946098711514362630774369209876335291088434247131228189812265510495277875692804180473811834186270331245779845635089547499275113671007257221593872123397418355506777725721168216892830217596134983713752526559153149600553468865338887605949011743043425900799896245185282419637806859906582214420191794114207677635194054239563071023206500505880052007267243210206807805387341085613436600843317096291021780624738422589234020279836961194869688005260369009833026575446099544900581955685627511787510900479881434909308757027825050977932238481841909425598834367032841935054158448815026264505726593064239.0 7846111496222858966.0) -197077248428250572361351389692146917243277049539013604789802566767174747369897711991559940484392921619974209620152008632450612546796556905740493507885376190913893140368029841033442857949219716681475253727058707723386016055991276120001690579154370788782636181079931076758384034193266737114305362492836167078199155929937891579224024229182935372106924021709421948701131654358516297806197381566809357458374057189773041520552821330635689748583803171230633654728360451100477472934847975252390985102859262992904778849652221553818627134153578436315973777720706502751232660284910468721430874674021521629540714057383398858244828214000543075116874.0)
+  (num-test (* -12000343217458212092754251360179138661969968218789048702097501439124892987400633614429800307263114371624489988815324366411323242909652002510513570900627875514001409309670202055060404640758548257776155562167062337394219073071639153822126554525439988062676648294108951003012550815746564810508912122306190725453386412796036693387315128514162061147675205485143205925649214342646148112549805850530430229663418469577245456944558387628002442451042105749848177325651852669794048215063957689756465788955050513359977166122710392613631703123491357791351447110169966270916789849428298930624807758982400706608788793481972190953569.0 15463017349709835150.0) -185561515374029078700596518575548896805308728003103939537818954646551372890610870275966055765608887701776880889777402229764948269089126750201922167386201171243298907675542965323275634529293654817279957832652909009385491998537031060285890512199675273422070784691446251899120095880199298512230290860589352290462643231396804350623684034400741386070220057232978556614620855818271117742675632435727751812101639747357642295230273344552327870600519422276996860893842363996198017494117619585153346745838853026029459826407782259598477529242420507010652705302341725948095720110508044256096963772599572721279996322424269691990173052929936294150350.0)
+  (num-test (* 20244597897909303129995907707212050478823487084391413473821544089492035634291726811145005824559631386634261268723753786161463497881725871168747275110149007801865428978596190887145324535224079986377522166727137028753272158887188902047835658826867304220850429481233026043496635847568448251753504834367809877190895369288045026559783632709799678639927825194847005181499299410953860627694080906167346078299421796974815616608326704894611151743720515377248152215241639534004099341398238713597030368980166731393247619511322804984829747216779359780372801101821087516269912916462719248736442644433057333788741151270815989388229.0 17931151643499274580.0) 363008954869078360197158713265773114114991766614027768774402465306840646219477262855625957403406166192075865834283840624408916170935610374573318606346031792128003204902147985329385955814330782527184421959263266167048755628089412213360508944817963403092490479480264538027768728303095523018598016863928762335410109567604756183580676503045557867957273324581082608248341332512325136675167966306268035077761004923732568405295901819511346235524577361289712297365403327125212199451099538443576479787130510546755789504852631291774614010584650672707483555436445926222945298928326313943231688436271883746272589347954697213098866117569339490918820.0)
+  (num-test (* 18134862906191691435095953372467318196853760384894170022863300447691250350836421337333332682828557871096554531436829166444150586004379181099133295174348038948038399079336722004125999533719492457544642570217406286811480006881054375314838605871238868968956868878182133492469763282800195060849734382249696543089869191257451321764806079423169235271658993054867624410589213892458246001270123109841429271429275464249821855221014782727398959126117031823977229309775211695677345378510417534328974531801634095862859684508240122911023047425473036305928743193594967362216559973174709883576295373749738633873828863608550295977368.0 15082354452174510460.0) 273516430292774638949326170314933525797985748367549139070674899956657807928629067317576809269188258819686207094298714770978509118959142516619521080722291318367607601498107007447014759288176261262818034997399866363248136237609824401265450913244758024085739876914482935655100890803279961929047974391299795570244708811454483314898873277493486428279875241232025231140855860469097028388778917980779775554139507550577255217032521719099071084956515691364008526064349956553916033914728254580848198941020806723485184338914882588931083516851849558411503129184026079582257756707601984686901646494090820169212279581209612798749779318126482639269280.0)
+  (num-test (* 19213874382308276075905228027166553836726993832150876980655958901416537033385379180983129528081628446454583401834309285184752924794893846406622935494758142810049493348116192315865522516744262115026742103678965417868790607689989205765793528434388393584537260717130892518011447327847533083474230074174308157934463971640826422302901570010591182715932658037868980053012095115562188975692530473556182305847290196895478280679341869546292639446526021874910117953225154204035612531584978136604161393474554294315903436682283787080297348697922389355209790646124024053098888687638640826064745026930980189268652291562437512941810.0 3155416591710364359.0) 60627778016974262766014671335614995348970065077989108071534610098195400001445248886220725085881796599270026085183075312353388418711598523030563716616967792282609748819081238929738105086199457414615236966895805539596649555457494710621217412773036416007129418290246899690911654008867819945724649185574237527152410775686803449108977881160831441280833577932476667657759420192656716352190871667386955409426879693856001112340390304980532208752863058384169885129364117656404549585836664647784765508649117301622797243353610345828189312360124462238989888436478381583689386509617357901461416012201469794664889076397809504626996523928173064949790.0)
+  (num-test (* -6561903839860415551587224953276060627466820222543175464705113686962550773423611522044145975606965294164125376820288981286542044306677764776675868357117109664125730405280822770267329297542599719353907954399688197248115043785617436343303277493146049939491224480136371029084354063731401026459653680017632996944506546122253686805764620116169065663214526857151412139439538335533979733329962892417175374550305659302592107472151941922230309227785266745974334776462642676959433923828440435340579340133192678341787895007461237846313005612116885419002449356480017828933592324336731295317076205553526568668826499450826560670163.0 14908715577157091280.0) -97829557993133908713082095435440645457469053259814412551982534425389603663024461131358343104414088618618030154957456050473312402460589893359522167472060177968099538846750606564761307960896264958539903740023783283814849937681270591589750181462708056758506230073751440847913386576449367635057595344744119561166438538811561109125506233466453974371464999669336530949393433719456191822836826214814780222021267726528396849558417851727452246676857867278196266042327956933753121947589485377148388716839519782819642328655117625818256334190717182923260613562191698788004591479576661108985313450029332968584240383859113741485244318702724563478640.0)
+  (num-test (* -10378013547095983701124686671659666242518351347561698092030999302329372512356819420877395264401390796163955327080881297568412490286247154759694714275858127906305200295043241717769593877683535229411640745872559018085757273530771413156968541499388413497221629366848027355125816131586610997516488552323667400115617175682996681969687885201321292153656071894385242141321468096793766926179134511319941715949712230831768643024119693594235207988046511542691719002262040067921088838755337917414526554050602539873232518619281766327369577617796816586064895744680567067970817494102948032924671421242699225194947982378019119315136.0 30004910492448871409155105619400474385.0) -311391367570036811050052853596227388481520279736812036769684195465110674594690412517879149770622679377262288447706750813509857551308594851067359841826754786725926298013483569424123912020079066150719085450400229896983461212531213110847425940968466564079253939695853896434719530729030897976597410468081535234663568150722646854183317007227669132983719314653861536414057481478039579810285535699518386214012059191958557306338432321511585867535008319640705419431310336566447165302011113284064246284641707577414470505948868362067233709611758700034131461348997580441628136979257037186480770286846026250437141175360847735150981343952303257191661069675154710791360.0)
+  (num-test (* 6311357747888359229575837883366949670125882865462293491587368290797766017168248637163030339387377997726585769250585768079027576213724941259801478313127113803503561717311996500019522893295813684259416551410025111443510215766297835872165689077882298506134885487991732718254835036694083204758447948541157893533099634169589161496492972953698758234452126564385255035294546278732684663873459439615228706684138982066055370429797835904846166362278557095045056472775166294675997320598469599722704075215700819354957397052721573993997624711445698656580401684113096559767093466880001548887739825916626416328760047783071058963451.0 -212654096583990292869707082365869207538.0) -1342136080095566600483524091094048745061145155430997807005186206704767933140306297188996797343723817220160636373424666345108189275851749622201429179882167381735732553825696482751584102093819432866729465599060815670807282181979889263381844726842751894916887860819210652174987999919869623292751389157233409465756974677789790982740267208982768450215563288024088369480574425410032306456026930809228182100949940216614156925537929648841127727165386031716586596638254705402653861723407930666152691102484352058909219619985877341630210918347460471644327858114815713557305185589162775699323253049631349906791700893878999711846225062306568467992135934882289075693638.0)
+  (num-test (* 25104391676237653962996674810232896003857294806799086059884413856421530328279649263948893056601611073815235439115612155497964541323584159786678357898152394779494741995735881624055133443980324145256438160990490767324719276757840825641421547232460969806196141938571103617707677351907526127993230143577974386169402623023560579220343920203666762052525898442578990183400559087522259053245822827313206196194989095468393682721753147596892214609346047051670610252732846805143964713621673722554204896154742594858056891979146566683467510164875593192581407047920719605560716270697985110227952698114701527191421628561835164291236.0 -205991315859231724218751687295926841150.0) -5171286675233738337789203670843122752625713948587464573381323151628930998435518250812603433784823922283042037694290795352461861058217142213862777203850665369756106838860420507328654214723398688455622487003912073924323587826356928211672752672052670663842775836967587150049181838707784871641183683742967716787111671792311389517753578360293551031540853470719098360013225516593755039537796518619542838794169319227197212817921098393499332268929332950035803734983497370378852859829228973012039890600437082235032378948656232679080766068869430262740600476498399803176452431728914806536862849281928869092524387549297345184969051926149006293586531930828748109161400.0)
+  (num-test (* -25971587288596053786734900662696128734726180676323130693160397208008930123341700520454723462226657743365779183466120836187720332442041321870351823609046027805781414454998487673927365486893294110931852680018706479684281928396163669935417207859889405108139261480861908067489849403284000981453574189898304616775302917687860062501465417706095450121596418236563421425311420755550335597318818628123183624214438801254105808079227429950505879366254661664881055965092586612702279548151277733307180663770432418397550642136953750720624507617115504303570076531620003848642167562950736271141440609700821621532583527124386811144839.0 -182748557863603655835821910989658558236.0) 4746270122419629115710902425435990509747636609113505336611751359043717100752575149404352359855260443259846554733621122684788488984010741203981300775978945529551335641218319619542248418128319220383298229263331638090009313676486209764655429828385994626323209879925281409485074778611946493692237774852428345451174837474328995186242262565013937544898941834362941815633750896882758939509605799422068815435202904271722442099465950700886702949580264958171808372530471918175963644209760378395316412115175988232945569517230829200985652504383431054550902852797293952515652017940918628980037316292352828228005975466732028971159947131994753006597870175664981312344004.0)
+  (num-test (* 2117427896392849163304163145095251890404997781812823978967013619233450901604407363671467658244435728579079751353560538034596183240362499870272373308111405924505741579887345118857908796509418246599428633956038017783178050402412769812823236255234302205027282366926174916871858199918908361186936687654278623156607813451034087735179167324944824913226799346886951212979149617678949292799645035425029596869092844906629996914674904522806258932192931217652241231736891642224851547474205131131019084734780208254203537633402057673465583362982905095029133132240839391503135932501785844503813910210348239157828902668852795945482.0 -296778668392678698960782643314222141731.0) -628407431508980610909134894336322264939705333430111861505965183839156278363647883745193463537783397824947515214540990712455315080515980803996660089847066076833542492719707493333185909990202372284811233272987993068106356248349054482194817336258302692039392400931536481136340269417905505366385505196886218794044229758585631131853635721528813397816307666671727692971421531381290925317161326036075629905443938124481334173158440927555118173661486114828362551889594188958723424604273078091320087897088472418346754088900034854230711982602435635574895960156993014703292551046970069204857846207328434544990709459402656908170089318995291341536347275682867153109342.0)
+  (num-test (* 24743327715258194976385899813930363006464428087412805068703455203318769863096919192538751530954777047772548306936907016751357570434930538612382851621309732767199276228580401695793317612267605312672263736938703887622824117576912830029817460033437752668221355377879837833796222831371174014543622739933433581963103361464022058091243110136610854806189138108937004805781857031030005354158991203388998364340053773883952742645161560754545458260688560269655272249435540890073696261770299845722705104648358053080678920468895189601731801025555650490534399590288852165862135571140382055044665678298182909026026068995867606241201.0 309156501491030456401354118244509785044.0) 7649560631695275371386748526795333430293346807872366006552933839286343590101586516802834568317627508914888989005968805867728947519409222814667350103434422356009252082456906520988877859152125402282765775845766265340707473525444185795403554160270722809642681642831847296672303556012796775586274347178092325226458743113317655523655255626670958156216225968018208281266858684283741496986683426354716284780229004376492833583965647875097951642088252875535823145900129967026856898970545720526282798418382467634180690243423325770596949644122541224189780082061715230852249880601371985342796525016176048518593825361248232406051886794538203297084423942036889326397844.0)
+  (num-test (* 31345149697924857384985323414506591310628538098830133854928154990821019223495435414394178930529373634315044777562902565397455028894455733092896622048288278424884040917250546068175763309233883078972879622697667174865833277342334219810618450605650614585133187005110148963483824629405555603493157452295284935004578187488673124814714326405406894084902824045787647963172437833905574178160343833139650913077173865287057167288286708807322607983179910358234015596109655900840652230258122852488289951986129788952718105898226951651151495867246384586164892018870981480003722043190639707903266193064807571586900961788679579912089.0 2067227180806746570739122295766566373146995767544546241400900414826379465803168632854028593293108913670556431832056563218709444199286888840721753894461468.0) 64797545442006646811970698282511426059102976298051534827345388707272469591333019870381858263624490336448197115781363489554169207652559213486772008013638214870324260793199674746523791257170452738018910619029072942848422098770309928561867618844814267276213608306045020686764830302020953883994906997293368193331696747777630621086600981981357507299729947717565760536305785574555255589190221698706036770081438750974356437738060098906046001271392354762036427049946092656701257615490057677558059955825843182799904828201890893555678855718728417223845757559310912618029462136640226686626513375024547351747669476392735304999046232068947570708757930233036922714350584650744960478326257916948676866148362166017752159953504981324652709881831381637989229842766220141292801807437886652.0)
+  (num-test (* 1965759082776833678304908699214846485256126608825750175641683294458978302204367346739996602241053060915897480812220051082619942907491598551933638540412113496542245474287364500698693202553692963910123752514310355402167440783023542848697962967771951714434359320001430281377747193083851165947498546085410216620013287853719686698746328198021011905482303248172483782066908570502837009924228011993318265674390462360820566174204659723461994730913995303015012684826295802887547970851558451858623353950391701673651959262042520584275132971807158231859672678070714276061110616753309305801080136339206017351200193800253572481467.0 -11092241138073130060021642325471345789108575712118027611362686690749327689527135459714040658411176246054106270789083336195599640521602432629024562630323934.0) -21804673765518097879589124792137157558586438669762099454880024920520894260754279593873244443852337739758694535682558790532827482894104906218015712179591886600693703465749571299271429989154199263793230178266758966678432691901731270899259065726530463438316383699558373053423999416350780342222940065486831353604365192968606300436304827279383661172824549131179471364227618431414928702407510473319879188990689163932586727702195573766225861364297410904859137393184592815970592502081722125458353280743087607273547490382023433724488604177909671497082747464946083901888849483505451426245881736990810339421864101129619181017696837017966116165703320918568645290788634265522956017905246042460811062666193790657969385648522736090098231379029903772234867701846824572274796526421531178.0)
+  (num-test (* -4067457132547237558852016696244696525033953641638067592741078194074861352472861925779476293767777560910963786727886946479865734639031042985368829200802420611189793957001730656623744670821921724417176679009632346904384261431052972127975733031277489967119978909321422086102208644766894305071609385305464547231057263658903212521469801833214062476735046735467944834107695748433481665714184831786462886261252526036621257865158497049125410241033365487816324425563483999957660557670189397770488996359512245971368638615503320507431381893539767352426795415898379765583574977542068222040889423739693921998717145084904555464058.0 9635268828818063607505341812331931088336041632536136269505180222913464638532245578488168867093853062326136774925531196873279749483997619950077042084971972.0) -39191042921786100943542578352486285322085069425292685238158202937549417928185097567102615300826629615520476316505465412722375794150552330462353356124896483739321653441446703127728441315609093330694305784991844511900128172079464896650958648496336601612657347012294121239821167759496102233234525084695798195547141521849769350204659392602605928907953707277320590923278178152903602506284861018886300148663530071056792375593665422754923886137410482547324901798328311927545105456397213670390651819229021443747424183114992653572959318104053511452473611466305149349027962240989590453237778130260105665310067480846969449221473610614214933278048389171979184119355459010233147440293881252851501522689209874112819966647846701257081192324007280573826673895648273593609466000383382376.0)
+  (num-test (* -22047771987573494284336211037167956208924595972749016352929724093971147687332865088249749580556015503923927321586913446367676445848750229391300778587369581738560634537089081840938984779012854694220894920437076215176060179241185151442003472788530160589267677502568156006531439509890061829154786579353177129190813899423306499631144919702707240832059008168851983259611724134448165201725432622521420667808597545410136493805873769372831833878868603946583848422310946469083400330960925084024624317866822897278934924368888332618046649078771617892961267312226309927786691384460940015979582201446635756024251269978545916298961.0 7481502540911026808093162425787184755732317118387068406204973030847892995155568099553397887864257088525242568880427634318737874025160499293315047534753494.0) -164950462146458057264341765173378248123415893870534274075422323606836246718538063890359159423074703472625232511667875897808555123518162244263016096627959208397334135559180524195701526029092734741010866589515172934676451385008535538102832400604699294088534999994990970130226363762230944961249818769566697211068918154629209895730969522747736738946126971914549491889482944152891334838234907190697109929512401661529882587076352559260375439428815896053844621297552401396168240947357044985051323834074355418902009161796886350497072010833513601114819625605048943438304411954380599728561071485061414856047768286383287807924135081902458690495890129203192613070824670256334683011083767124852354110322463725619194174195587835939047474059288568764831570274891727391545546467943319734.0)
+  (num-test (* 22607201423790553279447786193696575272983924506336369475058795405894123712509544256099524616893423762658394830755129501447553593365768543361107397299007141714383407862976654294384881771985218996697067215804348472693636567074361380875512341556932579903687576929186215185312685712277482751425466251201421842248749944123326048360909954588266368306843116245625635467041934524547983478110533044085242847795585598341867070787331785945399446665919396062565614516404861115244243161694059679274045050270546536781907061002623188435269769778378780371158624481539046590932125320888745103158180784231722265376331553893647061533815.0 10075764395489719205294189472045365742345400155046712954334138069917417587273618147303160957788995022989479371576840422540097479703418600112174202202728054.0) 227784835187493343385594867881830022845566753253174983274076326016001091958812135049265213053390506720261776960833046225700903422206015373488419693650378821159134369608830936915027161415300759990632038898164509761337714774392506802504397626551196717184785586630245704512525844329038355790338277254618639554796026366029578805283659986085947726260520495140332204643887370987929304924491772630534558682402396784510750317396488402942581973350428066695976988812610467654886227733900635715495731445319565054848075104982244316563526232071957624002266648721592744376122065531440026836549316222728280595228806728872537793522244957258060730038589170810090676474272044568671474692128168357087077816573419470273384256552275636517940058764711467508281344270125535855785388198570146010.0)
+  (num-test (* 21997874907846585575969651776904015812729615626636027149446399573806943459105370044846476738175828244018281160136531735881270437472624605280356112191272531838028896521621800558410217146758345955334174583639352151367532676985598470747138461153212653362188252002768647808852054182649808145379073620834551216386805267446360709820441771932135218282126427988826945094538034579367527908530151926679515746133600376612899354099328788736038811470295396365432559354070365548930628714861826464935305416998192532029724853617023971964507955475554955277722555849603716733374588174421463022213135839490633927005539569058361144905451.0 -1400498192750070094581812894241996480373581610489471746158083224360249880335094841398529960182484181641387946900090289855375996313447832474435929084180606.0) -30807984052781257825246153008277875918087659020905755686964119182052911551148620538090633516362197112383237624321406969368641524681503231262834662890145617622830207559490089313283375890353617292096501953380469351747504928597461154633889236826060654886877907382241867167198409355653371944304660938495445848950444683274236538890057643038410268234731745456035923559528706349316582901179686671568504971088561096469997823300883298811440849031903066114422309644669680078733839046643542078157684064686933779591609758494599988463628362190034612412739669041368897594110022347872452261447359402810277413572637740870748949093642723240662839444216981630862346445890780016393330114883270596630385367407921496982236074288475142085411632630374714528706189796772213264952893973677883306.0)
+  (num-test (* -270155241925436273159477510619232592261228150696806729750247050.0 15545126743930076938536195287546926534964892301082800206802745964245668351235397.0 72127079799316080210744562119267314209211162112457416152560774669179705347659265.0 58427280233475514109627698916382980237252687770812483048907352594138577656301900.0 91336330475502063985843547526216808965829995610054777216888670176112782119332811.0 99495081134815818196404370468895496198561677002653930126818668800341380375657337.0 6904264296552316628911621065724553059847235903647375662685025031963599691416829398469283631386160328944460790101458427909545198569619131058877708293713734.0 -16074984786353617526516141164566295497596312655026144270863093715961484079732496604871734572736757225277596743795506589617891195569235287256031608792067121393492186703333733526879481948463529609113624075923052999494363547340563039654910799974388353472433635130983731604982117092991918514078659590068643956240711810902756784590442416249652077644077280371860780741318193975770906075446772544431670392964384669681404295839302410058434872964315897505894833409101781069230919347279857855594782111721176074849502391457684148683668165019969667481755384384017844104770253558111588611189351637275389688093074751942960310850074.0) 17849860827147993486644896214424106325295064110723402251474432199595968349198253682890653243676378684005650871261983711134190416277366473221365848417375107498764965893729640224952922241531788638514200018520970345581414705756736222535562338748426356003659523260330725662384208724142177900990027225665451069059291754155591197426279006090296512196415617974140965334686090032257444820748820516976632201388937358434205022475303705442914044454220818215336283948743042841946229853366515552653568436171217572212088935263340599371830215580988184775240338748954666846379831467518505260487989636951404886967842600777836444030434816421999334066711024026401362115623932221335906548647785232855815515579448393689650116225664467056283988125816950714780486880294535933597118808163054631168063568847830481653855357008353733414826165759079092633441356914450038756281940532159493763482047244493174370100586359619040444818634156576789665732998111907245928253704097384811414269835758656988678207624731164159069547745777423464124959379113843649940896359346515513936964849811155238140671698227057228045173997904545787593258286212427476788605370334985423461194148838623911634821153061693257996982252745844329344589168264774527631972524787804330730506700000.0)
+  (num-test (* 6411564443509812216548163965666668398784964137255201222920640150.0 65325385402074288043601436729391841747319174569548241717675134253657593233436152.0 63305037198546989906433329294566491017476837189978173607681765241525113921707860.0 72383582945810879300930057856704905379805338886592055772943486702915907397618845.0 35525980101796892634292856352740658817031405780112750352735419884048051630180860.0 47579150292602967366908574298176357632207539947399443701205872093150879604391127.0 7775494633965874654516687741429737470333189902121089184439228657893110997221737422210698789286625633365548095171257583020272703565350668755439139356570.0 -7847653632223099338936161226557020783515367997970448568586056286591257384101422312757649765574456754668588904917800060981155642916520580540801153603733496143328839018174649200566737789874193483124577734129346933208306772618814806884416239295732454033604210880463262467564639515484363761639994642888910703066277724414372379965872478153546766131136324967950786993982228851928269842355632200589446224738709869729930285189047112131897218464505263042012855229737941639093204086147932759923796947642895167078971517834730472596647456786099215405165290569214043431009370032818978995463168133051136053246705694337584724712230.0) -197949741939898550383903354028842356745461597695099989904494711851411610441324234089773644533872304737431480244289438922163630848266242200711131210228027234579469457105291847132071566876246332653149194709623963836885480655282595345693084881617726426841183231475364991154699746506928116505297453355016975688761948609740314324443406930215518937775475617384099331839748494157863510168743547396262979908353122625808170296763676837551973930928848463398657587603606321137626467028732193151671337338929938959296176472483674270114824853018199281637976410726195357458134038379491704909997939715446657856320452698914513791221947734373322868574099599391493563479057703049036936132407025278683219316357543078875410080612067641232277376174351958080693019953378024732243763129075732499165068171168470237875348580987967740148512425201518758344757030205911031119619416763996490581551977913711646761182756531618786226541010835120092904291975494846126923510483263978074437667987560077422810120462938292680423746968095994108344184522240467647491991837793653579480334442342102339933473270535800619630342940590477752278184994533764839125736268376640933720554199782388890444619996919031351334561766248781813883867406045414518951152508504891407920000000.0)
+  (num-test (* 1669833986019218156514274418186396165434871163342486930502417566.0 58528969848472951398118375496887849181512821636583415470809040929690124231959506.0 50098163184827557635697120379841225459445103589988345336880332217224622666020381.0 90445522698871905833766573423181067004916996574451008349087758531794463581708977.0 92366726802191504770638415639612204654473958526592425718659284841373421985393966.0 69096133232785816552402133765198624674167660496399099321713067612475604030259084.0 323971624832697152056406152359288553860210436839331005469891386690556929684663075996719803995137130737141925308417709520389528780839777347463558171582753.0 2635514624483961079560488004237441873979133312246005082134175818331132377114926863102436691793380965631848192666106793612266994709357524826644421074908075389316030912936338175907209987972553710900613011802455058538786723149316934049388525865455871552882282353445228425640452635081303490379594663330152071465360003249884180020993032086861074931796165970076448856988084523672973069824258299029863033098237556417571526135639288006133579174344589248428714474318969988990720790226604664141927030250855550010512291136517209169959021730625428868037074528890516086527430801590050720467893089085308995719513895962750896813152.0) 2413207990093478676325592386500172980330574558867366638913149256222218924700401110600319869300256745035993991818342784487193857053589994816247466074246569162659879368383295411190237107255160498774228460295857931362161062884154872938368166514128474751716517750517217000290486110198899480877593169193610813452614906598055909439037075588626529658637140089909227353944313408987644743661503976835580507054926908821206921014266535160031749397432350114673787218438589065861056449106115395189057409933330355574558853874223262465965933679584884152813357065227868165556818717270584803360466149860292769520737249610469675917864449261901859162854558012721179400237645357401213337423255109839806528503425658270050436129019270883446965562683284298538825840361267548675967778385927410390726055957928634152514415917053614892441910675109517307682075989998558764742821214685548219206933043196677521610851950501225469125512893859254575460130829051324112015464552874242522140166275233893076603452098841950130740353331198999756316969161591691095397245996664755249875720008141774247384884623389430842799829690618405724986702942913150258769060684255363816662231923570491001519802836627028431389746450987110456127797025006251203111629141890634728548553728.0))
 
 (let ((val1 (catch #t (lambda () (* 1.0 0.0)) (lambda args 'error)))
       (val2 (catch #t (lambda () (* 1.0 -0.0)) (lambda args 'error))))
@@ -72499,8 +72303,7 @@ hi6: (string-app...
     (begin
       (num-test (let ((n 40) (s 1)) (do ((i 0 (+ i 1))) ((= i n) s) (set! s (* s 2/3)))) 1099511627776/12157665459056928801)
       (num-test (expt 2 40) 1099511627776)
-      (num-test (expt 3 40) 12157665459056928801)
-      )
+      (num-test (expt 3 40) 12157665459056928801))
     (num-test (let ((n 40) (s 1)) (do ((i 0 (+ i 1))) ((= i n) s) (set! s (* s 2/3)))) 9.043772683816628192400549525035572818665E-8))
     
 (test (* 0 1 "hi") 'error)
@@ -73545,27 +73348,25 @@ hi6: (string-app...
 (num-test (+) 0 )
 (num-test (+ 123123123123123 123123123123123) 246246246246246)
 
-(if (not with-bignums)
-    (begin
-      (num-test (+ 3/4 4611686018427387904) 4.61168601842738790475E18)
-      (num-test (+ 1/17179869184 1073741824) 1.073741824000000000058207660913467407227E9)
-      (num-test (+ 1/8589934592 1073741824) 1.073741824000000000116415321826934814453E9)
-      (num-test (+ 100000 1/142857142857140) 1.000000000000000000070000000000001400001E5)
-      (num-test (+ 4611686018427387904 3/4) 4.61168601842738790475E18)
-      (num-test (+ -63 8 1/9223372036854775807) -55.0)
-      (num-test (+ 8 8 1/9223372036854775807) 16.0)
-      (num-test (+ -1 -63 1/9223372036854775807) -64.0)
-      (num-test (+ 32768 -1 562949953421312/281474976710655) 32769.0)
-      (num-test (+ -63 262144 70368744177664/35184372088831) 262083.0)
-      (num-test (+ 2147483648 -1 8589934592/4294967295) 2147483649.0)
-      (num-test (+ 8589934592/4294967295 2147483648 -1) 2147483649.0)
-      (num-test (+ 8589934592/4294967295 -1 2147483648) 2147483649.0)
-      (num-test (+ -1 8589934592/4294967295 2147483648) 2147483649.0)
+(unless with-bignums
+  (num-test (+ 3/4 4611686018427387904) 4.61168601842738790475E18)
+  (num-test (+ 1/17179869184 1073741824) 1.073741824000000000058207660913467407227E9)
+  (num-test (+ 1/8589934592 1073741824) 1.073741824000000000116415321826934814453E9)
+  (num-test (+ 100000 1/142857142857140) 1.000000000000000000070000000000001400001E5)
+  (num-test (+ 4611686018427387904 3/4) 4.61168601842738790475E18)
+  (num-test (+ -63 8 1/9223372036854775807) -55.0)
+  (num-test (+ 8 8 1/9223372036854775807) 16.0)
+  (num-test (+ -1 -63 1/9223372036854775807) -64.0)
+  (num-test (+ 32768 -1 562949953421312/281474976710655) 32769.0)
+  (num-test (+ -63 262144 70368744177664/35184372088831) 262083.0)
+  (num-test (+ 2147483648 -1 8589934592/4294967295) 2147483649.0)
+  (num-test (+ 8589934592/4294967295 2147483648 -1) 2147483649.0)
+  (num-test (+ 8589934592/4294967295 -1 2147483648) 2147483649.0)
+  (num-test (+ -1 8589934592/4294967295 2147483648) 2147483649.0))
 
 ;      (num-test (+ 4611686018427387904 4611686018427387904) 9.223372036854775808e18)
 ;      (num-test (+ most-positive-fixnum most-positive-fixnum) 1.8446744073709551614e19)
 ;      (num-test (+ most-negative-fixnum most-negative-fixnum) -1.8446744073709551616e19)
-      ))
 
 (let ()
   (define (add1)
@@ -73618,15 +73419,13 @@ hi6: (string-app...
 				    (* two i i))))))
 	  (* (log 2) (log 2)))
 
-(if (not with-bignums)
-    (begin
-      (num-test (+ 1/9223372036854775807 1/9223372036854775806) 2.168404344971e-19)
-      (num-test (+ 1/98947 2/97499 3/76847 4/61981 5/59981 6/66601) 0.00030764243484887)
-      (num-test (+ 1/98947 2/97499 3/76847 4/61981 5/59981) 0.00021755369744252)
-      (num-test (+ 1/98947 2/97499 3/76847 4/61981) 0.00013419396686117)
-      (num-test (+ 500009/500029 500057/500041 500083/500069) 3.00001999583261)
-      (num-test (+ 98947 2/97499 76847 4/61981 5/59981) 175794.00016841)
-      ))
+(unless with-bignums
+  (num-test (+ 1/9223372036854775807 1/9223372036854775806) 2.168404344971e-19)
+  (num-test (+ 1/98947 2/97499 3/76847 4/61981 5/59981 6/66601) 0.00030764243484887)
+  (num-test (+ 1/98947 2/97499 3/76847 4/61981 5/59981) 0.00021755369744252)
+  (num-test (+ 1/98947 2/97499 3/76847 4/61981) 0.00013419396686117)
+  (num-test (+ 500009/500029 500057/500041 500083/500069) 3.00001999583261)
+  (num-test (+ 98947 2/97499 76847 4/61981 5/59981) 175794.00016841))
 
 (if with-bignums
     (test (< (abs (- (do ((x0 11/2) 
@@ -73652,376 +73451,374 @@ but it's the printout that is at fault:
 1.862645149231e-09
 |#
 
-(if with-bignums
-    (begin
-      (num-test (+ 0.999999995 8388608) 8388608.999999995)
-      (num-test (+ (+ 1.0e-30 1.0e30) -1.0e30) (+ 1.0e-30 (+ 1.0e30 -1.0e30)))
-      (num-test (+ 11111111111111113.0 (+ -11111111111111111.0 7.5111111111111)) (+ (+ 11111111111111113.0 -11111111111111111.0) 7.5111111111111))
-      (num-test (+ -1000000000 -1000000000 -1000000000) -3000000000)
-      (num-test (+ -8589934591 -4611686018427387904) -4611686027017322495)
-      (num-test (+ -8589934591 4611686018427387904) 4611686009837453313)
-      (num-test (+ -9223372036854775807 -1) -9223372036854775808)
-      (num-test (+ -9223372036854775807 1) -9223372036854775806)
-      (num-test (+ -9223372036854775808 -9223372036854775808) -18446744073709551616)
-      (num-test (+ 1 1/2 0+9223372036854775808.0i 0-i) 1.5+9.223372036854775807E18i)
-      (num-test (+ 1 1/2 9223372036854775808.0 0+i) 9.2233720368547758095E18+1.0i)
-      (num-test (+ 1 1/2 9223372036854775808.0 0-i) 9.2233720368547758095E18-1.0i)
-      (num-test (+ 1 1/2 9223372036854775808.0) 9.2233720368547758095E18)
-      (num-test (+ 1.0 12345678901234567890) 1.2345678901234567891E19)
-      (num-test (+ 1.0e80+i 1.0e80+i) 2.0e80+2.0i)
-      (num-test (+ 1.0e80+i 1.0e80-i) 2.0e80)
-      (num-test (+ 1.5 9223372036854775808.0) 9.2233720368547758095E18)
-      (num-test (+ 1/1231234567891234567891 1/4) 1231234567891234567895/4924938271564938271564)
-      (num-test (+ 1/2147483648 1/2147483647) 4294967295/4611686016279904256)
-      (num-test (+ 1/3 (* 13835058055282163710 2/3)) 9223372036854775807) ; would be nice if this worked...
-      (num-test (+ 1/65537 -1/65536) -1/4295032832)
-      (num-test (+ 1/65537 -1/65538) 1/4295163906)
-      (num-test (+ 1/65537 1/65536) 131073/4295032832)
-      (num-test (+ 1/65537 1/65538) 131075/4295163906)
-      (num-test (+ 1/9223372036854775807 1/9223372036854775806) 18446744073709551613/85070591730234615838173535747377725442)
-      (num-test (+ 1/98947 2/97499 3/76847 4/61981 5/59981 6/66601) 56471455498794722585779775/183561983334767209753061626751) 
-      (num-test (+ 1/98947 2/97499 3/76847 4/61981 5/59981) 599609438061905323469/2756144552405627689570151)
-      (num-test (+ 10 9223372036854775800) 9223372036854775810)
-      (num-test (+ 1000000000 1000000000 1000000000) 3000000000)
-      (num-test (+ 1073741825 1073741825) 2147483650)
-      (num-test (+ 1099511627775 9223372036854775807) 9223373136366403582)
-      (num-test (+ 1180591620717411303424+i 1+1180591620717411303424i) 1.180591620717411303425E21+1.180591620717411303425E21i)
-      (num-test (+ 1180591620717411303424.0+i 1+1180591620717411303424.0i) 1.180591620717411303425E21+1.180591620717411303425E21i)
-      (num-test (+ 12345678901234567890+12345678901234567890i 12345678901234567890-12345678901234567890i) 2.469135780246913578E19)
-      (num-test (+ 132120577/12 33292289/6 260046847/4) 244711424/3)
-      (num-test (+ 18446744082299486212 1) 18446744082299486213)
-      (num-test (+ 1e400 1e399) 1.1e400)
-      (num-test (+ 2147483647 1) 2147483648)
-      (num-test (+ 2147483647 2) 2147483649)
-      (num-test (+ 2147483647 4611686018427387904) 4611686020574871551)
-      (num-test (+ 2147483648 -1) 2147483647)
-      (num-test (+ 2147483648 -2) 2147483646)
-      (num-test (+ 2147483648 1) 2147483649)
-      (num-test (+ 2147483648 4611686018427387904) 4611686020574871552)
-      (num-test (+ 2147483648) 2147483648)
-      (num-test (+ 2147483649 -1) 2147483648)
-      (num-test (+ 2147483649 -4611686018427387904 -2147483649 4611686018427387904) 0)
-      (num-test (+ 2147483649 4611686018427387904 2147483649 4611686018427387904) 9223372041149743106)
-      (num-test (+ 2147483649 4611686018427387904) 4611686020574871553)
-      (num-test (+ 3 9223372036854775807/4) 9223372036854775819/4) 
-      (num-test (+ 3 9223372036854775808/4) 2305843009213693955)
-      (num-test (+ 3/2 9223372036854775808.0) 9.2233720368547758095E18)
-      (num-test (+ 3/4 9223372036854775807/4) 4611686018427387905/2)
-      (num-test (+ 3/4 9223372036854775808) 36893488147419103235/4)
-      (num-test (+ 4611686018427387904 -1) 4611686018427387903)
-      (num-test (+ 4611686018427387904 -4611686018427387904) 0)
-      (num-test (+ 4611686018427387904 1) 4611686018427387905) ; (expt 2 62) + 1 -- should work in both cases
-      (num-test (+ 4611686018427387904 4611686018427387904) 9223372036854775808)
-      (num-test (+ 4611686018427387904 4611686018427387906) 9223372036854775810)
-      (num-test (+ 500009/500029 500057/500041 500083/500069) 375106759202738205/125034753009582041)
-      (num-test (+ 8589934591 -4611686018427387904) -4611686009837453313)
-      (num-test (+ 8589934591 4611686018427387904) 4611686027017322495)
-      (num-test (+ 8589934592 4611686018427387904) 4611686027017322496)
-      (num-test (+ 9223372036854775800 10) 9223372036854775810)
-      (num-test (+ 9223372036854775807 -1) 9223372036854775806)
-      (num-test (+ 9223372036854775807 1) 9223372036854775808)
-      (num-test (+ 9223372036854775807 2) 9223372036854775809)
-      (num-test (+ 9223372036854775807 9223372036854775807) 18446744073709551614)
-      (num-test (+ 9223372036854775807/4 3) 9223372036854775819/4) 
-      (num-test (+ 9223372036854775807/4 3/4 4611686018427387905/2) 4611686018427387905)
-      (num-test (+ 9223372036854775807/4 3/4) 4611686018427387905/2)
-      (num-test (+ 9223372036854775807/4 4611686018427387905/3) 46116860184273879041/12)
-      (num-test (+ 9223372036854775808 -1) 9223372036854775807)
-      (num-test (+ 9223372036854775808 -2) 9223372036854775806)
-      (num-test (+ 9223372036854775808 1) 9223372036854775809)
-      (num-test (+ 9223372036854775808 3/4) 36893488147419103235/4)
-      (num-test (+ 9223372036854775808.0 3.4) 9.2233720368547758114E18)
-      (num-test (+ 9223372036854775808.0+1.5i 3.4) 9.2233720368547758114E18+1.5i)
-      (num-test (+ 9223372036854775808/4 3) 2305843009213693955)
-      (num-test (+ 9223372036854775808/9223372036854775808) 1)
-      (num-test (+ 9223372036854775809 -1) 9223372036854775808)
-      (num-test (+ 9223372041149743106 -9223372041149743106) 0)
-      (num-test (+ 9223372041149743106 9223372041149743106) 18446744082299486212) 
-      (num-test (+ 98947 2/97499 76847 4/61981 5/59981) 63720106179329487759/362470312515139)
-
-      (num-test (+ 576460752303423488 576460752303423488 576460752303423488 576460752303423488 
-		   576460752303423488 576460752303423488 576460752303423488 576460752303423488 
-		   576460752303423488 576460752303423488 576460752303423488 576460752303423488 
-		   576460752303423488 576460752303423488 576460752303423488 576460752303423488)
-		9223372036854775808)
-      (num-test (+ -576460752303423488 -576460752303423488 -576460752303423488 -576460752303423488 
-		   -576460752303423488 -576460752303423488 -576460752303423488 -576460752303423488 
-		   -576460752303423488 -576460752303423488 -576460752303423488 -576460752303423488 
-		   -576460752303423488 -576460752303423488 -576460752303423488 -576460752303423488)
-		-9223372036854775808) ; this fits in both cases = -(expt 2 63)
-
-      (num-test (+ 12766/44484 39852/43605 31122/19043 51508/63811 36845/41288 28101/14083 56682/37410 47892/22120 39412/22980 60124/55166 42856/59693) 208780620213964670464533749059169842219977/15202497819117370814835285951563379420520)
-      (num-test (+ 63216/39382 57676/45091 53354/2630 1048/39076 16116/23210 42095/55806 27474/26658 50811/59328) 191349291372060004326881331664759/7211602793633848370218614932160)
-      (num-test (+ 59885/27233 26245/45891 40482/5828 51990/36443 9623/46196) 34799310234648621493801/3065498111736131980788)
-      (num-test (+ 37870/11132 60558/48391 53644/64989 60943/2780 9073/15664 15430/61388 55088/37713) 49618689694342545850764990997/1671112820517946923490092720)
-      (num-test (+ 37890/11488 45896/14037 3589/36071 22835/41473 42331/17823 42800/56681) 420312190408065989902262231/40617147626636993628447504)
-      (num-test (+ 26660/49395 52605/23369 30235/15203 37926/38348 54028/49472 32407/12923 20689/1984 27919/46263) 69930317632493223450434305725419/3428000885137780298513956804672)
-      (num-test (+ 56351/21775 14958/21250 13859/32508 24968/65124 885/6861 3913/38588 90/55711 12269/37075 6579/33653) 201796703852921650643001395969752/41522567198031666874435508825625)
-      (num-test (+ 8582/48034 27069/11031 29676/5507 56684/32514 25699/47391 44069/2704 18193/3289) 5684819414248430672302049/176897854654356635413328)
-      (num-test (+ 421240/871225 1021193/39462 252094/592111 2478/11660) 32043461749854904862/1186809749708031735)
-      (num-test (+ 149278/597089 747410/315908 218673/956214 174632/245649 45750/515909) 165277142441527691870266634/45353662154623612097256297)
-      (num-test (+ 361087/1038423 629417/722796 693707/392139 237025/961767 88560/187279) 2426130069686588061565863289/654491499930590555724694236)
-      (num-test (+ 94466/1038229 807503/592385 802950/953585 954630/176875) 6384533383241957925411/829875721759976907875)
-      (num-test (+ 913461/774815 817965/788155 237677/532117 542827/225728 343160/431483) 2183257313717880748058258989/372346251755101707126455360)
-      (num-test (+ 888429/600657 680124/108845 265059/727366 395224/748135) 20445657641208104518701/2371792747070499020510)
-      (num-test (+ 37622/1698 9183/57409 12127/36899 11451/26597 64339/35514) 14092685195493114237067/566256574856769105474)
-      (num-test (+ 24122/8583 41997/57541 42760/57555 40699/12923 30325/37640) 1518749441232333398909/184353450944764326984)
-      (num-test (+ 16104/12728 32020/64625 35345/37481 29241/50823 13216/61075 11245/2022) 751811438787510154499/83010789184720173150)
-      (num-test (+ 4312/48465 44171/56694 8599/3231 46048/62568 2132/45901 24407/26161) 455702434782048082459/86885567283849955830)
-      (num-test (+ 59496/7030 37058/2679 2158/41193 48873/59329 52768/30853 34749/39139) 339576145632874325598832/13177075606485410552535)
-      (num-test (+ 131/58542 41136/2572 43951/20070 63439/14560 33259/63731 10981/51495 49078/63698 10727/32805 29362/30842) 51962727546984124809096307414129847/2051626916225689647807786049306080)
-      (num-test (+ 16640/40785 56062/38132 43843/29406 5867/50944 19248/58540) 1083456041462784832133/284138789764221200640)
-      (num-test (+ 34314/54910 54195/13905 32762/15225 20808/42764 20977/59771 26320/20306 53116/23035 30385/31200 57396/3367 58378/6806 5724/29599) 39875514688522166158239445824103603/1051980164901898842922034228906400)
-      (num-test (+ 40391/35273 27957/29448 52381/18500 60009/3366 27528/2124 62426/65445 43110/25891 40183/26944 30274/1504 27638/40611) 15253761502587455936752727098716743/251570544261187774378167518568000)
-      (num-test (+ 52269/62857 21518/38958 29849/9192 27730/2604 20427/36068) 116322789710447328047/7340588373519969288)
-      (num-test (+ 17009115185923538769 -12047631083067675031) 4961484102855863738)
-      (num-test (+ 12677011568664239747 3269056182420253574) 15946067751084493321)
-      (num-test (+ 9315504781982082433 13857624532376678678) 23173129314358761111)
-      (num-test (+ 15226508728194069537 11481952022080775416) 26708460750274844953)
-      (num-test (+ 7461641943684774743 12249026721402718630) 19710668665087493373)
-      (num-test (+ 1180469445886971055 -3208456171287181032) -2027986725400209977)
-      (num-test (+ 18358552990465743315 221529797579218180385160273426219343697) 221529797579218180403518826416685087012)
-      (num-test (+ -14819874956616484359 30498815629431206969122152847973230849) 30498815629431206954302277891356746490)
-      (num-test (+ -11781881800334342169 112219460388643619332860331282276228017) 112219460388643619321078449481941885848)
-      (num-test (+ 3570694277032201957 284821691832196381859344006870088122712) 284821691832196381862914701147120324669)
-      (num-test (+ -17005463295060938595 69162171850264911722979835561124066203) 69162171850264911705974372266063127608)
-      (num-test (+ 15647113311796203488 150750467185419235519670165664526735459) 150750467185419235535317278976322938947)
-      (num-test (+ -14330150541101371097 -13054027994001826312503071338715966858478218093171762021549815587520723118772963817341751396703629529810372702877555022105594068768886421335353882155416908) -13054027994001826312503071338715966858478218093171762021549815587520723118772963817341751396703629529810372702877555022105594068768886435665504423256788005)
-      (num-test (+ 7406427184711759740 -4059250217961011548005203450962458026528281798230141192186669580689721046971433745892994467792118611646113962840750314719233572760336084100766391093756252) -4059250217961011548005203450962458026528281798230141192186669580689721046971433745892994467792118611646113962840750314719233572760336076694339206381996512)
-      (num-test (+ 8819522415901031498 7274905269237471130619913887005155660991437201841760414347836177003483932007334374478344594178179032728521106519295465031750530183363793325150672647162846) 7274905269237471130619913887005155660991437201841760414347836177003483932007334374478344594178179032728521106519295465031750530183363802144673088548194344)
-      (num-test (+ -7242932332215698200 -10558564312909325527488520195600871241245891651644550509993750377630234801225525279855157008009255586978047154906058790342845859331159009687703010657137320) -10558564312909325527488520195600871241245891651644550509993750377630234801225525279855157008009255586978047154906058790342845859331159016930635342872835520)
-      (num-test (+ 9794320575955609492 13380937715397052566925484435342184213544885758759259410983243841206628594840271850190097746775475837233042430565529099681550277688470325394342993771343357) 13380937715397052566925484435342184213544885758759259410983243841206628594840271850190097746775475837233042430565529099681550277688470335188663569726952849)
-      (num-test (+ -18404048401680891243 6690884608978704096379677348142836785900717005050936986370615083929607190833180925295418079551348559691161519822750772440155040888224482801864925665484770) 6690884608978704096379677348142836785900717005050936986370615083929607190833180925295418079551348559691161519822750772440155040888224464397816523984593527)
-      (num-test (+ -10763220363947284865 -30985722824355332972176356513316569304601382411274079243859710673739383446566598659878378034375348869471278415635671865753349734809209959160389615096293457362383744562507969316522225741589739150453090393424063226271167062127000223628785686999799282795143706407082119829140399988180879618548495395684946331608899565543458192773899200054228140747414544792128323269250618482622488195333106891323515989863192944848391405358725993695671970811097285270641251816244586360288952156538400321933146150313939864593445583603568771077260174826348411367609521412133720180359748539721570562669201065857989876521301209899829037444385) -30985722824355332972176356513316569304601382411274079243859710673739383446566598659878378034375348869471278415635671865753349734809209959160389615096293457362383744562507969316522225741589739150453090393424063226271167062127000223628785686999799282795143706407082119829140399988180879618548495395684946331608899565543458192773899200054228140747414544792128323269250618482622488195333106891323515989863192944848391405358725993695671970811097285270641251816244586360288952156538400321933146150313939864593445583603568771077260174826348411367609521412133720180359748539721570562669201065857989876521311973120192984729250)
-      (num-test (+ -12742462236537568498 8711131313747826394504271797986775572294949693272674156076339989631171694968899228610359983845552623710580616605402899155485071497929100432998183040757832449369366844015907530612334721882095163137705867337969942902346066961718232788529860214990099385213558935023241940238638069647809530490438245386869385682221280939688108487754251075630026707075310465788398213293782900699868609660892232563106662995330591906155134237356516622436517046191466823447743155250482328613449506396571170001248589926831956459700467126756876526930443317428628239358666456771112897986098390410773312792390699312960051747534683311506465130527) 8711131313747826394504271797986775572294949693272674156076339989631171694968899228610359983845552623710580616605402899155485071497929100432998183040757832449369366844015907530612334721882095163137705867337969942902346066961718232788529860214990099385213558935023241940238638069647809530490438245386869385682221280939688108487754251075630026707075310465788398213293782900699868609660892232563106662995330591906155134237356516622436517046191466823447743155250482328613449506396571170001248589926831956459700467126756876526930443317428628239358666456771112897986098390410773312792390699312960051747521940849269927562029)
-      (num-test (+ 9991390529516174614 7879872958436992955898278403297937595295396115022400543178444946646147916754852888072481665174663073269556311758611700754643170639645548596647557683044355930340624784190093631808382820554407595007761070026239341594197877214157118335743842022627898879376346092898666610367809537340994845045475091410516226225078052019727419030585524815982151736622865401299588936172760762386183577504972623377661437665668080131418564228642443266935225613702941906491478788336262289516199380144218708241406077806669686589734333554945412904560108150202389909124657090061223183441083590340175629756198442568877659538345749595968764873879) 7879872958436992955898278403297937595295396115022400543178444946646147916754852888072481665174663073269556311758611700754643170639645548596647557683044355930340624784190093631808382820554407595007761070026239341594197877214157118335743842022627898879376346092898666610367809537340994845045475091410516226225078052019727419030585524815982151736622865401299588936172760762386183577504972623377661437665668080131418564228642443266935225613702941906491478788336262289516199380144218708241406077806669686589734333554945412904560108150202389909124657090061223183441083590340175629756198442568877659538355740986498281048493)
-      (num-test (+ 831234034418847630 -744676478858160349467117341859049692149463503380690495147216354303526704924280287782902146026018180364963325847811379182950159627878800024734206345960410146056000392683000433501805629464626281031086102425271022388473812300724085127447081771317912465921636737545371909901577246384446144919253141375367648958387948463576516115079816552636772639965957498569187848459747361493535081532845254971492261148968198806736512864867151355002902241562014241077734122599581732704243705918200179789271894804233542502502119523149682814025979598424744685548054183678652651244898867735764030968089217841214778606507809487462642341164) -744676478858160349467117341859049692149463503380690495147216354303526704924280287782902146026018180364963325847811379182950159627878800024734206345960410146056000392683000433501805629464626281031086102425271022388473812300724085127447081771317912465921636737545371909901577246384446144919253141375367648958387948463576516115079816552636772639965957498569187848459747361493535081532845254971492261148968198806736512864867151355002902241562014241077734122599581732704243705918200179789271894804233542502502119523149682814025979598424744685548054183678652651244898867735764030968089217841214778606506978253428223493534)
-      (num-test (+ -6996572501442843347 -16567158719848992553565776505785820491834685475229611199353714982570065913508303466008005931649515528390057456882757990896824841386431756898386429000065518724021230756426613661219891419166146764347562529640689229693578574350948436847247856000438153789455857903402883189892697143647998643667467614427922009931545254965075041050860609824086811877108940020349157317276288348430058535959434983921323332907180869396258655826781438419383792024592535415693101119109484610789291889841197827977530804650015884500878613240443324806805475203272442094530735476095374446946252236490708915034012846683015547314889561060687692538144) -16567158719848992553565776505785820491834685475229611199353714982570065913508303466008005931649515528390057456882757990896824841386431756898386429000065518724021230756426613661219891419166146764347562529640689229693578574350948436847247856000438153789455857903402883189892697143647998643667467614427922009931545254965075041050860609824086811877108940020349157317276288348430058535959434983921323332907180869396258655826781438419383792024592535415693101119109484610789291889841197827977530804650015884500878613240443324806805475203272442094530735476095374446946252236490708915034012846683015547314896557633189135381491)
-      (num-test (+ -8920936222630165483 -18738991973681679876688842391791783563249057933653045519186959571392922172943405646958686202208790537612746921398028331540617848217445632123805070077600768524509025758950743971128222843292926773668584735575066246660802064630842300367821042873152766467703905048558085377302000898639290554395913805527529259855535801856020623830262396582180677933562523957295341539162448074423901242873918231922121053192425691524797238343327318801359521456598967984637483081312932069399045363737622797213185099130529375169698811801965974416555301085043300426947769193582129151016159057101028336667142913854943018973494705119572045938607) -18738991973681679876688842391791783563249057933653045519186959571392922172943405646958686202208790537612746921398028331540617848217445632123805070077600768524509025758950743971128222843292926773668584735575066246660802064630842300367821042873152766467703905048558085377302000898639290554395913805527529259855535801856020623830262396582180677933562523957295341539162448074423901242873918231922121053192425691524797238343327318801359521456598967984637483081312932069399045363737622797213185099130529375169698811801965974416555301085043300426947769193582129151016159057101028336667142913854943018973503626055794676104090)
-      (num-test (+ -243510292488206214847646757340020705642 5940577100149745132) -243510292488206214841706180239870960510)
-      (num-test (+ 35446324064743728955945058978206455057 -6248622708755929572) 35446324064743728949696436269450525485)
-      (num-test (+ -285342226760657637664173494795024413673 -11942737781617905307) -285342226760657637676116232576642318980)
-      (num-test (+ 180790435817422032042321866247362452865 12401641959336396832) 180790435817422032054723508206698849697)
-      (num-test (+ -179994871947239535956826388240542999950 13573822506399140772) -179994871947239535943252565734143859178)
-      (num-test (+ -308198027295905163635866438671452347268 -8790069282378476990) -308198027295905163644656507953830824258)
-      (num-test (+ -139324757925833055762410227358605285566 -190622873846936719063564661032771271922) -329947631772769774825974888391376557488)
-      (num-test (+ 332866352618304570046318203427223999347 147978646177673305481282943528696833018) 480844998795977875527601146955920832365)
-      (num-test (+ -39471620476300923970352914034802271156 28992893610776120142668950821916856486) -10478726865524803827683963212885414670)
-      (num-test (+ 274120253734611965146455315763505869288 254675910805265090692978775702306142625) 528796164539877055839434091465812011913)
-      (num-test (+ -122086811464559635596206661886176775901 287312583034687582188356355813963609701) 165225771570127946592149693927786833800)
-      (num-test (+ 288576174771266329955482943556556984728 -57843540651903655425270706396868707777) 230732634119362674530212237159688276951)
-      (num-test (+ -47977736580820486006305788441965482221 984809271313988066640898939725532304075331399066274624928410251834520283291912387208948664716457549646483445981126881113426109906085249657168046936670489) 984809271313988066640898939725532304075331399066274624928410251834520283291912387208948664716457549646483445981126833135689529085599243351379604971188268)
-      (num-test (+ 21225484205143479814642328762121362291 11839789093732539327981861490012713257538550745921177905266671749716203131127256902110452504526721633943016923389974867770082516862899595554460170417713940) 11839789093732539327981861490012713257538550745921177905266671749716203131127256902110452504526721633943016923389974888995566722006379410196788932539076231)
-      (num-test (+ -193095363331703875886398909106293703000 4389392021031719669078675478621418677903292147307684123866099084349756491860737402449105804868232530632178577388168068485304437343508442251302846768269976) 4389392021031719669078675478621418677903292147307684123866099084349756491860737402449105804868232530632178577388167875389941105639632555852393740474566976)
-      (num-test (+ -14827657635864183514988182371035598180 -7256545787852407071411458891023580461638051949278710509801472046178301830006724297747051044450550248499056073213660185258676369175307019300952192657194576) -7256545787852407071411458891023580461638051949278710509801472046178301830006724297747051044450550248499056073213660200086334005039490534289134563692792756)
-      (num-test (+ 54301423175725658626298504084995819705 -13385853291610595576947504757201441006088030688464261540642594993520424631577281077984278942244446266776534612440941312995898184903431893212829646845766101) -13385853291610595576947504757201441006088030688464261540642594993520424631577281077984278942244446266776534612440941258694475009177773266914325561849946396)
-      (num-test (+ 195114404067053480147948948510253723990 -8373866462448797623435948949281383906369538962237624940506813188612614128993186653340202956656303504523161255703176374041758276069255591562198514767063594) -8373866462448797623435948949281383906369538962237624940506813188612614128993186653340202956656303504523161255703176178927354209015775443613250004513339604)
-      (num-test (+ -308030589512186791277525017840002670741 -11922204352024596469278978325035646517433105521287613403902396944414655739824695945028308092245747333098422116078042326104667969967224788442970266049942774583538734406057081597034454910987815490244451193242377705191422489528853976486607580169986057592557285271953385769215318545520155212402919465580052078255078759756709086185424029620805084776442744700501748376290562843380642608395240491162047933014854466267084965223593172702334466729933986413870670083326499598274393380692146118979961818816348097032083332695128587696590646086980241100792624502607816103195636761141133903550454815591457829485684936036414823492160) -11922204352024596469278978325035646517433105521287613403902396944414655739824695945028308092245747333098422116078042326104667969967224788442970266049942774583538734406057081597034454910987815490244451193242377705191422489528853976486607580169986057592557285271953385769215318545520155212402919465580052078255078759756709086185424029620805084776442744700501748376290562843380642608395240491162047933014854466267084965223593172702334466729933986413870670083326499598274393380692146118979961818816348097032083332695128587696590646086980241100792624502607816103195636761141133903550762846180970016276962461054254826162901)
-      (num-test (+ -172649878347923210775992373331623646864 22180935775581457002090790736532281654456312526625354262953960635330604551829750571440878712430708012807252279301365732385899228826740712544768476577874129759972563823209525283326887563301081200476495752033290851190327066070873711444930389093339915885090143783170994309089448293499799071372787520776773788274677288230540162485916160484352398851925328125588729604931589867889917097887951581817207079060016091919559509735997493084833476849835444339835031436580214492450731100723026312163752403946315983551266206214298679421644737804098691991631489261658890937663698502561036246447760919715595005106669653475931803053499) 22180935775581457002090790736532281654456312526625354262953960635330604551829750571440878712430708012807252279301365732385899228826740712544768476577874129759972563823209525283326887563301081200476495752033290851190327066070873711444930389093339915885090143783170994309089448293499799071372787520776773788274677288230540162485916160484352398851925328125588729604931589867889917097887951581817207079060016091919559509735997493084833476849835444339835031436580214492450731100723026312163752403946315983551266206214298679421644737804098691991631489261658890937663698502561036246447588269837247081895893661102600179406635)
-      (num-test (+ 17539006966816771902104329685391462527 15609797782337099611892065465036826453911053690739041627254619195700021040383385710184052653282070244915503750549545390475671883312314708978681904377133928647935359080875691628246716591529028104762422990155477702994042953196747769893182153631482194578269859879402160062955490194674372351117284129320011166238130774752386987036267064693133554447596069886693581191241594745541512444806003236372840085705813835001957163976961730871756250344335996073970142337882238844723800849054637237549515249957267772181010402413375667537558243971058326641257721901094391380667244006959028327507917720426571969997513984360849930719808) 15609797782337099611892065465036826453911053690739041627254619195700021040383385710184052653282070244915503750549545390475671883312314708978681904377133928647935359080875691628246716591529028104762422990155477702994042953196747769893182153631482194578269859879402160062955490194674372351117284129320011166238130774752386987036267064693133554447596069886693581191241594745541512444806003236372840085705813835001957163976961730871756250344335996073970142337882238844723800849054637237549515249957267772181010402413375667537558243971058326641257721901094391380667244006959028327507935259433538786769416088690535322182335)
-      (num-test (+ 244901855797156286376563377540855746602 -22138106346578776369849317622304392466030036563754663379976505966920461958652141160336156065177498990718609170201272980114106671808245437660234479124938853665375934080221740523696180221118540569603989748587853373569525751680828044059607889572522502629277877343410298879764820905044284757389006201848194571453112545228115550224254565141563427486518108434758694923122284117299374156393942906293546318323661938734959824887786185558612820887463537294120950912969343488704744978847504513710882720654330147775174336365363311173472002077960424794151168301281665765411704505095008907760396535767621855642720080219960822554492) -22138106346578776369849317622304392466030036563754663379976505966920461958652141160336156065177498990718609170201272980114106671808245437660234479124938853665375934080221740523696180221118540569603989748587853373569525751680828044059607889572522502629277877343410298879764820905044284757389006201848194571453112545228115550224254565141563427486518108434758694923122284117299374156393942906293546318323661938734959824887786185558612820887463537294120950912969343488704744978847504513710882720654330147775174336365363311173472002077960424794151168301281665765411704505095008907760151633911824699356343516842419966807890)
-      (num-test (+ -119403662992279138748600939857239307122 26272999248235953724172008428088697264933069743507017434844709711501131900922919455931092196539942532993887162365511473221418376205773427597933886270411672062672089518774390132453916538404354895529975888201032175628249480896964400801763570333497287321002961557096975786141940970260074557095118887294558700145949117395512768347250531196100831164663613049206690894640391431616112104502483838173255614981302462548882276825096564828583591963617871547373532874400764134244496979962241959713525053686209002866840900623246072884125102845824992994967009109046451949348656842486048332953732384499190437432898387573320391878853) 26272999248235953724172008428088697264933069743507017434844709711501131900922919455931092196539942532993887162365511473221418376205773427597933886270411672062672089518774390132453916538404354895529975888201032175628249480896964400801763570333497287321002961557096975786141940970260074557095118887294558700145949117395512768347250531196100831164663613049206690894640391431616112104502483838173255614981302462548882276825096564828583591963617871547373532874400764134244496979962241959713525053686209002866840900623246072884125102845824992994967009109046451949348656842486048332953612980836198158294149786633463152571731)
-      (num-test (+ 313963939617834410089002930298454269912 23286645405607099799151331553995799851855144387826191186590140820016670502830395945076644578998873585162998873396623634135231418574284200209367505115739462344028303923666952261030907434438322884189133236837089851688275865098623902644385995630973049587854251981548128145516004461191094062488421288607625783540996659060285661398859383778209495884203323937672739376151794507745282074538961033778823733980759695886879886017489555795079194346438911010371103435094677167286870898482214310646392174423422237727456012197253183422715313378603607058548706460095379882633958651034759773864354021315490712575535559549015858088608) 23286645405607099799151331553995799851855144387826191186590140820016670502830395945076644578998873585162998873396623634135231418574284200209367505115739462344028303923666952261030907434438322884189133236837089851688275865098623902644385995630973049587854251981548128145516004461191094062488421288607625783540996659060285661398859383778209495884203323937672739376151794507745282074538961033778823733980759695886879886017489555795079194346438911010371103435094677167286870898482214310646392174423422237727456012197253183422715313378603607058548706460095379882633958651034759773864667985255108546985624562479314312358520)
-      (num-test (+ 2000877973959266893810594143560134441447453310844726478119781029700338468704683515329516333146806175216349912753585564808803731447160643580198590073658869 -17993015014355471903) 2000877973959266893810594143560134441447453310844726478119781029700338468704683515329516333146806175216349912753585564808803731447160625587183575718186966)
-      (num-test (+ 5492930533666246223206322654398877802091439062008700770880939594548305919677404080859141226095489505872709347538974725998600861651942609010590873980143878 15372278140141207703) 5492930533666246223206322654398877802091439062008700770880939594548305919677404080859141226095489505872709347538974725998600861651942624382869014121351581)
-      (num-test (+ -13405500833215428652808705089190188280715732437731292502890523313631564795139560159124390691283401484515088713758307366404145018349044148223082253439210893 -14793401891248640808) -13405500833215428652808705089190188280715732437731292502890523313631564795139560159124390691283401484515088713758307366404145018349044163016484144687851701)
-      (num-test (+ 9945195259699924701593703207751086973468898794114625092150620088406276196469184233537941913755508476427888065765634203723512911676149274871082481174186606 8699133332160461067) 9945195259699924701593703207751086973468898794114625092150620088406276196469184233537941913755508476427888065765634203723512911676149283570215813334647673)
-      (num-test (+ -1785165974800693006461065312083337532938610906605533088558498259067461510781028452552786542598361030690629530721209490413999022804146471920873844686294838 -13079925952361275418) -1785165974800693006461065312083337532938610906605533088558498259067461510781028452552786542598361030690629530721209490413999022804146485000799797047570256)
-      (num-test (+ -4861207515430071951958387366611380234482792653010151054346367776006873932152600469133110239669746470475230906073865131648496652783311445471793936775767736 -9381557743227419896) -4861207515430071951958387366611380234482792653010151054346367776006873932152600469133110239669746470475230906073865131648496652783311454853351680003187632)
-      (num-test (+ -6638723469626495957966112633999375479181736600737250559572415894485618850919815869703127084789143821420728194272094956858541960962483734293877093635361160 277811698220276334443479876776376776138) -6638723469626495957966112633999375479181736600737250559572415894485618850919815869703127084789143821420728194272094679046843740686149290814000317258585022)
-      (num-test (+ 1983880417172931934469534542170437296262471214582817006917470485544552211448284732460451903536334682269123998240709059499894818265755197559390728940140016 -118940994129137705779355371753506018694) 1983880417172931934469534542170437296262471214582817006917470485544552211448284732460451903536334682269123998240708940558900689128049418204018975434121322)
-      (num-test (+ -9354509264984586574958285335910611806441061705184818350015454221731287473282231343722010109181841005578131927454778025302197744540571159656556971614966757 120224841184491944160266976391113485817) -9354509264984586574958285335910611806441061705184818350015454221731287473282231343722010109181841005578131927454777905077356560048626999389580580501480940)
-      (num-test (+ 4389359421234641412950681847970318834150108533025088077429496538447029921663033978550089607257809597829358374972237448178553189381274150213236222139873594 106674783386899772113212633712093787897) 4389359421234641412950681847970318834150108533025088077429496538447029921663033978550089607257809597829358374972237554853336576281046263425869934233661491)
-      (num-test (+ -9319417879153488839579936799737117639058244394679644240663244688680826325564084529474537634510092069422987165268448907193562300482925125162731530249763801 192969103435503875767216559494769734726) -9319417879153488839579936799737117639058244394679644240663244688680826325564084529474537634510092069422987165268448714224458864979049357946172035480029075)
-      (num-test (+ 1394404616168163951844558734723678125985464491792846741433683801962971891047718103736551854371207400145441134823994228143957746922511631911996296931168332 -211230038021470285136061932161632203274) 1394404616168163951844558734723678125985464491792846741433683801962971891047718103736551854371207400145441134823994016913919725452226495850064135298965058)
-      (num-test (+ -2935941510094051560788359387128767361559188973149773593522440619832472030019457317998381634585179453958737810428870232715146002408187749944694186205812791 -1221176156661231926164756142840452419679061324806989304452215660535991083923207702827717652226257158321829748247784282139952864899457896871473184473608543) -4157117666755283486953115529969219781238250297956762897974656280368463113942665020826099286811436612280567558676654514855098867307645646816167370679421334)
-      (num-test (+ -1338674579024795395027232680327531457830908239605718353094975139226848400289367913459076082700361212506196070727982446232782659114647371030398516119682505 -1298372177520411182435886041880377054374169787570856408996533471838082317927648953576721017727347029007573543972764860712708420553928791798580799809858729) -2637046756545206577463118722207908512205078027176574762091508611064930718217016867035797100427708241513769614700747306945491079668576162828979315929541234)
-      (num-test (+ -2072456075229532951804023218627137969798924912365258263779029006567941400203608770518731715660383378937120213112973528605594220795605977413985543331908189 -9744489461776287963808523409593616918248399004543154581056479712028497082820841423941781438667661074968238703192056877665754560746003512076830245760254982) -11816945537005820915612546628220754888047323916908412844835508718596438483024450194460513154328044453905358916305030406271348781541609489490815789092163171)
-      (num-test (+ -2570682164188734368809161664810917340861573482754788446510182252413437925852206735928397938304353826925422441004271229738766803460790995673395984247950088 656920705293329551826685120408221577679101260931105312141757138825917579070505267306626244216341686712802796891966598838285570807961966448181138356047523) -1913761458895404816982476544402695763182472221823683134368425113587520346781701468621771694088012140212619644112304630900481232652829029225214845891902565)
-      (num-test (+ 7846359203342053693101523606887617345982401999003795257520576318451663998927274759872692123323796450295314377046602880394071105863527900699633560551732837 3683380639347829102597675045842249667669675715600522157867595962635108482512780509393310714588544837398923613138772339053021025559943198965234376657126821) 11529739842689882795699198652729867013652077714604317415388172281086772481440055269266002837912341287694237990185375219447092131423471099664867937208859658)
-      (num-test (+ -11692323148567132684205145901751681947225824260005631214936266006610207543813382900867093989444659986091234552140689684476541703112098935301322850961583953 -8534276689564199122569555420819240948691777228327984555753862457592427992599992931175844172478864477440165366128106812103785256271256853749622592560655914) -20226599838131331806774701322570922895917601488333615770690128464202635536413375832042938161923524463531399918268796496580326959383355789050945443522239867)
-      (num-test (+ -10734754884168724884333968138739681643742524619139397687680049322697740991391014196697040576174049452737571835233123127815762146577096625434481167057340772 17059878151450238567815178684522345445687980385106446646013863901583786249398194029757376950491550197185231926262467028755342392379269039238766592672298850588065335172902157386017520689203005559576263548017475991638498600879259882041932152385436968424098224966518534467302264172016376096778201462205990822825056602379115848799619564610033123837036507127427054121975400703490855123544706355545059512146550901507159940126280812512339749605195422987937677650572797378799103456094203126081464905326203083057134061673694975250599375795827437561275156235513192978645909947341297774926450637694325145427434486258223666250272) 17059878151450238567815178684522345445687980385106446646013863901583786249398194029757376950491550197185231926262467028755342392379269039238766592672298850588065335172902157386017520689203005559576263548017475991638498600879259882041932152385436968424098224966518534467302264172016376096778201462205990822825056602379115848799619564610033123837036507127427054121975400703490855123544706355545059512146550901507159940126280812512339749605195422987937677650572797368064348571925478241747496766586521439314609442534297287570550053098086446170260959538472616804596457209769462541803322821932178568330809051777056608909500)
-      (num-test (+ 1982582032974021971225071139786536402936929744496433027195224299475980201425925452469321205602618940472354066218156609448199804973454183972974358405933935 -5591374624026484498020036332218412149978824230210339582240360391202660977358546150723165491729699122647688030937226316069237264083850854032732663284717882873051337566653841254365703461654061656817936193716386141166210237666314879751427421825450110467888973152907618520704486700443275358649289847595635931220181024199692771066498714511145489237541761266539978351840438236927937894376002981658065431416811632941197501676956304254109064936038146674412392128883565757325842468006824235119684861972224857533964558963441079998949499582965764591461900562931342373507763081479989957632695010603500633322408246084430203281475) -5591374624026484498020036332218412149978824230210339582240360391202660977358546150723165491729699122647688030937226316069237264083850854032732663284717882873051337566653841254365703461654061656817936193716386141166210237666314879751427421825450110467888973152907618520704486700443275358649289847595635931220181024199692771066498714511145489237541761266539978351840438236927937894376002981658065431416811632941197501676956304254109064936038146674412392128883565755343260435032802263894613722185688454597034814467008052803725200106985563165536448093610136770888822609125923739476085562403695659868224273110071797347540)
-      (num-test (+ 11532228364136654310006206557545352284448588590560137249197311142901246089838098630841794341370689745410654263817911440601934362503092628725755210859171724 -25776236925500995542036591604259749301547568770017466769502569415611770276300787105037848049555500555975152877716727294374436703766730618054071617947449695177320842403963009384468257891933593584757723535299746543328292715942626303315235241470269740287031317322772461137186093930239744879822272349431389779234805703118929710210161489122272898252221025966631463842234537744822906696719691188223105175714602909117904182229960075276443648211003011686250829474364425483901920822837775032295913486152631638908227467242772081310515646217115760180349854601959031626524004201825198439309850266508687796415478396821644422350208) -25776236925500995542036591604259749301547568770017466769502569415611770276300787105037848049555500555975152877716727294374436703766730618054071617947449695177320842403963009384468257891933593584757723535299746543328292715942626303315235241470269740287031317322772461137186093930239744879822272349431389779234805703118929710210161489122272898252221025966631463842234537744822906696719691188223105175714602909117904182229960075276443648211003011686250829474364425472369692458701120722289706928607279354459638876682634832113204503315869670342251223760164690255834258791170934621398409664574325293322849671066433563178484)
-      (num-test (+ -2603756427337798371354526130541868239006085657393372011847827118826669474695402075575479286172808099892726251004549675772420422527946534088483901153485670 -10844269742362409682236511127219508926736627172993604953084481596070757241623728297275447608738915355190715664012379562650777199088096670239050254578284071100042116609747208178716191571268815994455064584659920497876052406993834873124981417288518101426395560764186717660091472734401090302285129741058888303693710456902635092811413971399734306158050053239768185860958896447298052082493590498954512083131068867270078638929796561440903919430094619437872896595720463663570751134804664228918188923926951933302878771189484614604311920655871182974081898031051411394311700207305532216445616083858025977851570522763537300875989) -10844269742362409682236511127219508926736627172993604953084481596070757241623728297275447608738915355190715664012379562650777199088096670239050254578284071100042116609747208178716191571268815994455064584659920497876052406993834873124981417288518101426395560764186717660091472734401090302285129741058888303693710456902635092811413971399734306158050053239768185860958896447298052082493590498954512083131068867270078638929796561440903919430094619437872896595720463666174507562142462600272715054468820172308964428582856626452139039482540657669483973606530697567119800100031783220995291856278448505798104611247438454361659)
-      (num-test (+ -5929887196386997518766568868806997104240129372360669348628384183712406620199102166145939206783172815805659513128544493795329100599632286529420772709366102 24544958491142793859949310604465694574872439331169358241746200808802938771527900616394258199996170862256988647191747967628756772368808644819831481350919782560499270148419601775750932556119448001824346026042068416905254113155445053931789404515589532235225580737103411251232560863878948880220469490014568323308965914171394449781093816607870593225534700167342589927524232815571862258490314644577819742372918446373756857848586825568514909823940075182825283229026250682015641747568282510036326125505522447591703308661608718100933027549520132308555240654655887041040427813131621391320267698106519650611462269033902177180035) 24544958491142793859949310604465694574872439331169358241746200808802938771527900616394258199996170862256988647191747967628756772368808644819831481350919782560499270148419601775750932556119448001824346026042068416905254113155445053931789404515589532235225580737103411251232560863878948880220469490014568323308965914171394449781093816607870593225534700167342589927524232815571862258490314644577819742372918446373756857848586825568514909823940075182825283229026250676085754551181284991269757256698525343351573936300939369472548843837113512109453074508716680257867612007472108262775773902777419050979175739613129467813933)
-      (num-test (+ -8848084327536592532063677611386811805244460767433749071435930786126721080365289638381557872263825830664387392539638767251180242665642373539064690745095464 -15917950175678012281826361248776190984758236997789474333609547749168308439513527143790323694526378056113636462939674273462177686456811495629631337058042159570336251822399402513133598701991665209363955263097315081570618652783181494594400709239428597117944511110842795526862595552977665064029517628515465251448116061875878430407784298951946811321795808932206846491091803276390661869369638950672478828532423383951689632136029256108992610781912267083149156104328033893238864631158195280554850035949666897861529711006187241710164902350100555999894332438423857208747342184052953230247487231455921360593096823760117493579248) -15917950175678012281826361248776190984758236997789474333609547749168308439513527143790323694526378056113636462939674273462177686456811495629631337058042159570336251822399402513133598701991665209363955263097315081570618652783181494594400709239428597117944511110842795526862595552977665064029517628515465251448116061875878430407784298951946811321795808932206846491091803276390661869369638950672478828532423383951689632136029256108992610781912267083149156104328033902086948958694787812618527647336478703105990478439936313146095688476821636365183970819981729472573172848440345769886254482636164026235470362824808238674712)
-      (num-test (+ -16314775600714318471451792035636584056297958597339492996728118376578145765736873313518831390349547274517050864260054903974054712997529177834428786007341762649083404743713562157667828894017440065599882523458121037421757904691003094608420565550031561905074671735751685371533975894842331113347413787808917193134135744321547478500861021485075363990553639161661734684228250909589741380076008551020384304303171431833670236949934603973673998262066558668396388979463892768199916011368116729432353268535563246463324517035331079693172060671712718486388759443825620676228470068291448236914050793177812037679396721657020438979754 12553426083939460917) -16314775600714318471451792035636584056297958597339492996728118376578145765736873313518831390349547274517050864260054903974054712997529177834428786007341762649083404743713562157667828894017440065599882523458121037421757904691003094608420565550031561905074671735751685371533975894842331113347413787808917193134135744321547478500861021485075363990553639161661734684228250909589741380076008551020384304303171431833670236949934603973673998262066558668396388979463892768199916011368116729432353268535563246463324517035331079693172060671712718486388759443825620676228470068291448236914050793177812037679384168230936499518837)
-      (num-test (+ 20637030084881771176788188367974505419050866216433677435050410899110162793040751338330447574748263391136356400036001988938659722098883893353523409458775455519257672423829361150611806294256710309281788819450225670112435352092313483086404714074567539245791066202051788986426960935796927738180831688497683293306590464598379493141645539253898709000874685535467854788184424886911457134522632486730390913239660179785071885982403741669161655812015114272497907946919026898579927936299607156006210124954460880383605958519412435713868501997649784658832599101777001703519408664662715322044086646014163774269660274683400619225321 11620128128044940816) 20637030084881771176788188367974505419050866216433677435050410899110162793040751338330447574748263391136356400036001988938659722098883893353523409458775455519257672423829361150611806294256710309281788819450225670112435352092313483086404714074567539245791066202051788986426960935796927738180831688497683293306590464598379493141645539253898709000874685535467854788184424886911457134522632486730390913239660179785071885982403741669161655812015114272497907946919026898579927936299607156006210124954460880383605958519412435713868501997649784658832599101777001703519408664662715322044086646014163774269671894811528664166137)
-      (num-test (+ -9838804688358141062268493389453191808060717708062736103828856866310283812230958467655270667206937622979717683919584610288962829724022506216738929136418489468786902364550847498615864720240589837282441807174290461916292258263929411081218952357662703079709351365960916688275651864441386750529258343003652300629003597744958152243494244227986280506395347894285277364095898602965258114321853474000520432831298793365139040664543928707100657375292032051256485942532600998813627925626928634068613637417702688610315924917761411247617905738119218110678854564441914784262998574445847209847985439514580300936248281049628734475702 2380166482232871816) -9838804688358141062268493389453191808060717708062736103828856866310283812230958467655270667206937622979717683919584610288962829724022506216738929136418489468786902364550847498615864720240589837282441807174290461916292258263929411081218952357662703079709351365960916688275651864441386750529258343003652300629003597744958152243494244227986280506395347894285277364095898602965258114321853474000520432831298793365139040664543928707100657375292032051256485942532600998813627925626928634068613637417702688610315924917761411247617905738119218110678854564441914784262998574445847209847985439514580300936245900883146501603886)
-      (num-test (+ -30961575335426221869515496362216292453766907587859856766456625722888557357647164641922707199324601608700561081422636642523431947551124957385652791834855425829101761914145137205962610515642614866296480715893528289170482422505734612327038754622917335073993027434927547277037587173529054849390646376806910407207016292483185533697336599641898250465186168797820802225861771331652801064811222606773495565340386327294310913503461903243119204619412324538886439122443769008953829820425376589389335553937319588224864611583436327810214798652896733118881040503785110481197462772022447173744898802421806800203373153221004361953729 -10586442965055062759) -30961575335426221869515496362216292453766907587859856766456625722888557357647164641922707199324601608700561081422636642523431947551124957385652791834855425829101761914145137205962610515642614866296480715893528289170482422505734612327038754622917335073993027434927547277037587173529054849390646376806910407207016292483185533697336599641898250465186168797820802225861771331652801064811222606773495565340386327294310913503461903243119204619412324538886439122443769008953829820425376589389335553937319588224864611583436327810214798652896733118881040503785110481197462772022447173744898802421806800203383739663969417016488)
-      (num-test (+ 8835746018617511846981408800319983340292665114153404569022025834059427359831684523399830234196625160662387716033871154398104436720494608541518837969397374272734698261557358249258503982414578618525420572597611597792132117034895074841909295420434392963714805547538976612884853497014341345150095544449860198192757839489063747595073430612069212219930749783824683135433987509303139260133564905961552149844964215891730262218278214035649706577154652729844092199333026620127958228847111442161350881527928460177763370427262298116900358910460957772350452949782281117704005514462730290063772968929608448642592954601418753021512 -12227722924075527556) 8835746018617511846981408800319983340292665114153404569022025834059427359831684523399830234196625160662387716033871154398104436720494608541518837969397374272734698261557358249258503982414578618525420572597611597792132117034895074841909295420434392963714805547538976612884853497014341345150095544449860198192757839489063747595073430612069212219930749783824683135433987509303139260133564905961552149844964215891730262218278214035649706577154652729844092199333026620127958228847111442161350881527928460177763370427262298116900358910460957772350452949782281117704005514462730290063772968929608448642580726878494677493956)
-      (num-test (+ -5455184800550144006991157215735481579353213544152145628297990102571936052187486515129266239245491863623978659179559754999567936067584384479787934704340911556625153536160778495579370425428019248950494107696016864499055854257192071541354806671987402367524770228296322497224645429524493838356022616251290117624472061673033274133156467148770562815676767117605001434288573911556053311048284534341905722947046607192815465807736361991479044698448267471087552952494477144251510778491315012457514838113324210534577956298926109164909779987221094000880908857594198276812276890284008572664102792405452379662935026125770444036994 -7349798942312432150) -5455184800550144006991157215735481579353213544152145628297990102571936052187486515129266239245491863623978659179559754999567936067584384479787934704340911556625153536160778495579370425428019248950494107696016864499055854257192071541354806671987402367524770228296322497224645429524493838356022616251290117624472061673033274133156467148770562815676767117605001434288573911556053311048284534341905722947046607192815465807736361991479044698448267471087552952494477144251510778491315012457514838113324210534577956298926109164909779987221094000880908857594198276812276890284008572664102792405452379662942375924712756469144)
-      (num-test (+ 27233955893140063612427006607965940109569052437681267421929959186535416115028420267622879017163568256526042146282241931623674996867133390355390677118211537487769195270234259640386625552763891339073878417517169618832945750393661600092643257470064376916337734385887099957095417541169462231630821139075814859604097878094729685589777579267192538715202397220666651307185763054526407234767132218634060693076054116575833737797189157152326979078121760900891899319809724675232853322526718686306470372869701173824664984405178677187081936624687293494821338781534163633206006387449585716391843039459733925494003066841874935048611 -66646390577667468207341453008390168215) 27233955893140063612427006607965940109569052437681267421929959186535416115028420267622879017163568256526042146282241931623674996867133390355390677118211537487769195270234259640386625552763891339073878417517169618832945750393661600092643257470064376916337734385887099957095417541169462231630821139075814859604097878094729685589777579267192538715202397220666651307185763054526407234767132218634060693076054116575833737797189157152326979078121760900891899319809724675232853322526718686306470372869701173824664984405178677187081936624687293494821338781534163633206006387449585716391776393069156258025795725388866544880396)
-      (num-test (+ 15030400024888781078933103028897733817304421960545019199443871381537070197157227994520524631721701055962609956080413517776229513420814407790533237358129529547793422514837651333555776540939235592155512951229106778709351772195248438493792786143040421233061520515971787881798980515709417481015662862327435825812557205663033601853937647320838585333754027488605638576977560072206293290493215523194883494322543800546276353830683084405428005815296131527861252717516620765986589669237487765523936713749717927502645633123584240464131140829496052170285171610845098023517906586134613874506419828208611247177336492131262918439281 -164048419232636429449474429717211197442) 15030400024888781078933103028897733817304421960545019199443871381537070197157227994520524631721701055962609956080413517776229513420814407790533237358129529547793422514837651333555776540939235592155512951229106778709351772195248438493792786143040421233061520515971787881798980515709417481015662862327435825812557205663033601853937647320838585333754027488605638576977560072206293290493215523194883494322543800546276353830683084405428005815296131527861252717516620765986589669237487765523936713749717927502645633123584240464131140829496052170285171610845098023517906586134613874506255779789378610747887017701545707241839)
-      (num-test (+ -10227062646189307616073129048534031298512434237226774743330733206156788005874968173984804649812506029813402205606562016228122184161577517837608957023376079537037472977098465137152327215807765130656192272994478964341604278041664840636982572214751638093860605132350960802560601354006634296348422600320863531059118477125143903734159707623839282511184908969206873548650544269932394344952983661665472663102992782521888857016369837211403335306200813816060883478434441858442549261115972947741929087886423170398410216855322384956160289855500229952405068604320121652911887067414460828300146993858360430784079225137421074839819 117460076430162201914796277915447781936) -10227062646189307616073129048534031298512434237226774743330733206156788005874968173984804649812506029813402205606562016228122184161577517837608957023376079537037472977098465137152327215807765130656192272994478964341604278041664840636982572214751638093860605132350960802560601354006634296348422600320863531059118477125143903734159707623839282511184908969206873548650544269932394344952983661665472663102992782521888857016369837211403335306200813816060883478434441858442549261115972947741929087886423170398410216855322384956160289855500229952405068604320121652911887067414460828300029533781930268582164428859505627057883)
-      (num-test (+ 27989453264793973121573869640708223239762902243991948581280654553806618470632044367386680716040316895884976837122054709584963028986161694425215067648887944710852278135008221491665079705797192389681328802747226171436158375378499411314855257919224316919346771317457123252623293612958336691335423245293660257386649100685560072354549579281852792682734916555498283053758141666658137856828164206947320523255487437004565021167276952652515632644458005291855624829941937578229983628962137595011570216766689546500517528191189928660433013004254032861383790553611840534023221000900694995707453499030166286828319347894538505334235 -59175168207571178843658955348404514921) 27989453264793973121573869640708223239762902243991948581280654553806618470632044367386680716040316895884976837122054709584963028986161694425215067648887944710852278135008221491665079705797192389681328802747226171436158375378499411314855257919224316919346771317457123252623293612958336691335423245293660257386649100685560072354549579281852792682734916555498283053758141666658137856828164206947320523255487437004565021167276952652515632644458005291855624829941937578229983628962137595011570216766689546500517528191189928660433013004254032861383790553611840534023221000900694995707394323861958715649475688939190100819314)
-      (num-test (+ 1178650930337394440162727078866515771626896502845852711186000991913866844090831426017480263676964607121490209778220339316756171449922437605552456088105443130477974682689512446683178356259305893852096425478878588001446154476458310269704392486398646169362313605456233489086567865316333034897433650974160168545492823208575634152241341906068149887959566983066154182855136114289266802474404127414747112706158621650063987662749553991791509795764642256261917497984177610694405881831052199417235241109412927893781778469398975117797578753730248539151297798807326284978255001046995523851829184120171969918537718488250577987049 -151873924489040812813761508259707631973) 1178650930337394440162727078866515771626896502845852711186000991913866844090831426017480263676964607121490209778220339316756171449922437605552456088105443130477974682689512446683178356259305893852096425478878588001446154476458310269704392486398646169362313605456233489086567865316333034897433650974160168545492823208575634152241341906068149887959566983066154182855136114289266802474404127414747112706158621650063987662749553991791509795764642256261917497984177610694405881831052199417235241109412927893781778469398975117797578753730248539151297798807326284978255001046995523851677310195682929105723956979990870355076)
-      (num-test (+ 28233332719950979786871881804755080223325040620170668729385709165879717973040387558150293205758215739710262749733170837042434162049732587908182282319848154049410849721309988807368466228286699721201975848741931128639324322061892706638973259354962358866000024260698793885547287093369940035337370984725857550291339492871017395328145015077506882578124550084937438336881072124376107623716831044079223921566902242543198986921476998895559488862309653154914291349588095330683589871173449191854284433182368052817373384461363574550061788800329400860372148193491004593903732351395815409821222597665222975816418433744748143385431 -43245950360315656184924888243641533635) 28233332719950979786871881804755080223325040620170668729385709165879717973040387558150293205758215739710262749733170837042434162049732587908182282319848154049410849721309988807368466228286699721201975848741931128639324322061892706638973259354962358866000024260698793885547287093369940035337370984725857550291339492871017395328145015077506882578124550084937438336881072124376107623716831044079223921566902242543198986921476998895559488862309653154914291349588095330683589871173449191854284433182368052817373384461363574550061788800329400860372148193491004593903732351395815409821179351714862660160233508856504501851796)
-      (num-test (+ 17311283930487575047109155431670372891723312431004343097275158353815289445461275098157423001160013464866170709729134076291306322952612660169010483426086431377525432637844274608988581691477819008626983761905899834444008235608280930166913911248710072733217113558125600345343437000427963292980921009445490627620344145866648036116660335905940809860199697939729919140888034303887423527841395304960072549430314367914315102150378504502158659627719016733307736583749830415574905929299482373462584995162798576853564481617711234957058703455021082855018642616999836886763535412642684228990890160568207941504887072856663966242787 1954009743321912552050341299974626734964446274711484506734354360114801426013796892421541915293157994203607853436799102383078659985249097057923578528366737) 17311283930487575047109155431670372891723312431004343097275158353815289445461275098157423001160013464866170709729134076291306322952612660169010483426086431377525432637844274608988581691477819008626983761905899834444008235608280930166913911248710072733217113558125600345343437000427963292980921009445490627620344145866648036116660335905940809860199697939729919140888034303887423527841395304960072549430314367914315102150378504502158659627719016733307736583749830417528915672621394925512926295137425311818010756329195741691413063569822508868815535038541752179921529616250537665789992543646867926753984130780242494609524)
-      (num-test (+ 1135960177108146621604027872788612991247811085764456406834564014092038611848908717507207251239454266163702244932570537009884467598603226302482406831131219148530146321028801515381981782506355042255201016953375149829517466449677312249611502599434850555618739830488706171667035140895674806873502543300909514568759918040129665855731078258004983486524477103833885001539135541445685573269814159175744401893663504523858005835387122082112362666991112899837534230326730196110477118156871579503345757821268248575583821695674912517830056856597644827244194658166928026249459511837772775196175188368236573504643083995409774002567 -5513982495816270388232134254127393284677692173792609278582774509636977743203029647121158805174638642867428501907786521939155900331399058909602425073976766) 1135960177108146621604027872788612991247811085764456406834564014092038611848908717507207251239454266163702244932570537009884467598603226302482406831131219148530146321028801515381981782506355042255201016953375149829517466449677312249611502599434850555618739830488706171667035140895674806873502543300909514568759918040129665855731078258004983486524477103833885001539135541445685573269814159175744401893663504523858005835387122082112362666991112899837534230326730190596494622340601191271211503693874963897891647903065633935055547219619901624214547537008122851610816644409270867409653249212336242105584174392984700025801)
-      (num-test (+ -30369736932762868789456108597366835061749107555998091727589163626331595118680326568212941898571309672187038272915036839449380083450246957904300051802617002374912724325419651633014408152565340519439718081357147324136023867003917288524338643759680061563616479323818330115572573568245719292922176485298767387601922362893307843067637295955606642841006993776777666041277965868780958830666697755738164183356399977211227424725670822944234275611849032230010745799964550976844117943559190671369193871330514473741920389633762695829790016565565261170688485790141638094160105909405353382982945608773290740598479367828342651860878 3451570547959142767282758882796967240086418127970526029661337442068316209707489088420708984628065070358319478649952710478991064476168799556496237099109563) -30369736932762868789456108597366835061749107555998091727589163626331595118680326568212941898571309672187038272915036839449380083450246957904300051802617002374912724325419651633014408152565340519439718081357147324136023867003917288524338643759680061563616479323818330115572573568245719292922176485298767387601922362893307843067637295955606642841006993776777666041277965868780958830666697755738164183356399977211227424725670822944234275611849032230010745799964550973392547395600047904086434988533547233655502261663236666168452574497249051463199397369432653466095035551085874733030235129782226264429679811332105552751315)
-      (num-test (+ 24749014370880469345815230363662696846133977441600857690896762642529872426102613384561609594131771018575590861342023688138502403609639138062665279129058939911797019091643704220495944170754490238422880589600838613701783818105188827633578438439212856537589855796204839275633245851474930725845096235668385012500773524750522781174430369067441632028068262240870795850561389232369373523415592833273932285308223863420210049445377497367753786125779044716949754454461623397410528064697616617917065021866397277409044449982605591256067763430930720398889239414812509701319783809830072841056369381573100589260104551934136733317845 -9461623592584966196513107657889418526847060851423069480904645009418813160370721071067349946095573698635859409908288864150475056170059858850823883834932131) 24749014370880469345815230363662696846133977441600857690896762642529872426102613384561609594131771018575590861342023688138502403609639138062665279129058939911797019091643704220495944170754490238422880589600838613701783818105188827633578438439212856537589855796204839275633245851474930725845096235668385012500773524750522781174430369067441632028068262240870795850561389232369373523415592833273932285308223863420210049445377497367753786125779044716949754454461623387948904472112650421403957363976978750561983598559536110351422754012117560028168168347462563605746085173970662932767505231098044419200245701110252898385714)
-      (num-test (+ 19070246171469235561279483225919489206942407814032615339351735800304747459507922411906751965555240682457214768298108831815622470433175555196912899313888991765436434867025639919521068437191248198117664398275835972573354886915721765715992151871453808224011999677700078879590132676060988550961950472536029228350169237717222998397029428440792110955380302156159849645211726041489206565536560827557279129751110297078563108009278363910936720061216511798518178957070787710331228500533067546198458251241005176280410230146430275074766072259256583499095689284871987010372039977403712023630453400259082684930755893684499232318008 12330599952818018622104330691506128012101935028731995985677032980931398338453806827555760801312052792065671886621851470997557806941112316627790755867100463) 19070246171469235561279483225919489206942407814032615339351735800304747459507922411906751965555240682457214768298108831815622470433175555196912899313888991765436434867025639919521068437191248198117664398275835972573354886915721765715992151871453808224011999677700078879590132676060988550961950472536029228350169237717222998397029428440792110955380302156159849645211726041489206565536560827557279129751110297078563108009278363910936720061216511798518178957070787722661828453351086168302788942747133188382345258878426260751799053190654921952902516840632788322424832043075598645481924397816889626043072521475255099418471)
-      (num-test (+ -20895998178036569919774658790651496115060841511658297683195804524712012347695091074325978179977718571444320688167469052862702339462089668992243209990795362064005869602003990235714500149401994013174762139297327430396441552225926368085284222509085197484452650071390132794942944512235132641643003294762547138305644086106533258432786768644384855008506026923783604514268955071498269812887794817192371944269611642901807443894686178438687102834127061425955994253034824027771176714559050403098437684091684851207513969915720607528045624635094984539637789113651579846373399975502788877555747414523231999341294756679330384323996 764238600803843266244444637050072967342049538611688895792923539838804953492110953673720766879606601435939162680753428779068917662740403667549850724878795) -20895998178036569919774658790651496115060841511658297683195804524712012347695091074325978179977718571444320688167469052862702339462089668992243209990795362064005869602003990235714500149401994013174762139297327430396441552225926368085284222509085197484452650071390132794942944512235132641643003294762547138305644086106533258432786768644384855008506026923783604514268955071498269812887794817192371944269611642901807443894686178438687102834127061425955994253034824027006938113755207136853993047041611883865464431304031711735122084796290031047526835439930812966766798539563626196802318635454314336600891089129479659445201)
-      (num-test (+ 6243894672855694190803081952962387322599009058758027960092936187687064819462191583137945440936085088260632250436567758576422207449236613172605950116622271404444221039084346501796818945639456207912207604248991842124079786471250102192718092353598850889806607728696519257402580732995770031331187089424192803722612735557735028710899438934171272639518928194764526910590046378401600819132587804143949995694950116915803127294011661411525934100144319021440919928013617766507409909846670172516021888661284467975865076091834094160862228180625536450124272957206172214541444266874056050295270719541605687740822711659847211976891 11877496607682442993105675644902145742318375725225741293060927105303783712520284640625374957608051032540491531573337817824773543104969422017506696018037874641947740606655370938613842356322585858034851150595788166740174872996252792014218946552442572806242471174234462119454014379628228878122072189387777413014452140618318641689597452676091677588204537830401725113931418426919671512011822864583481449136550835952005765386885680701637038206002172218712504732572449659704181315669255320876647592649071711438131711904976335957846353867776093588236311654631696625859173554395714740218099921290128795607292259527492722462071) 18121391280538137183908757597864533064917384783983769253153863292990848531982476223763320398544136120801123782009905576401195750554206035190112646134660146046391961645739717440410661301962042065947058754844780008864254659467502894206937038906041423696049078902930981376856595112623998909453259278811970216737064876176053670400496891610262950227723466025166252024521464805321272331144410668727431444831500952867808892680897342113162972306146491240153424660586067426211591225515925493392669481310356179413996787996810430118708582048401630038360584611837868840400617821269770790513370640831734483348114971187339934438962)
-      (num-test (+ -24023960171862805266003610953999097357395283354964456554686635290239019705581779621120391229617494503580661676939681517550103414632840981987397485411400553792707518662609532504246677658012933762605038799352109564432278094548068984563394926376371580465135388578139331334464060067790936072127680597181415407099723844313625277987147283697141407959289588588489162704824409673099509423520008795428217612706997355591985894255450783091681112776112997887084157623388943538145736618168104404283342039105202585543852590302154958791010622670839015475427693311663800177428904406869645066988663292128104453773413982185343111560886 -31939808827732134714870375774276102357277346245583282398423150631754622253109692213928642228787888509211781331649081002266227303203259124984426497846441848502574293640959494009564992092503141598640200823656998243767453860939156780549404892392521391484933772285520949470194562525777116137058001008184603332597820522016200623301007194309404025522056113671560767212894303567191067178003014955596425115379852712737129325098876542459702682095445350281859042779889411325882123213577906096942649941285655935053362468972482748617111598313960198743596285343178242282172686940700127068972627110105953098737923773182254460772630) -55963768999594939980873986728275199714672629600547738953109785921993641958691471835049033458405383012792443008588762519816330717836100106971823983257842402295281812303569026513811669750516075361245239623009107808199731955487225765112799818768892971950069160863660280804658622593568052209185681605366018739697544366329825901288154478006545433481345702260049929917718713240290576601523023751024642728086850068329115219354327325551383794871558348168943200403278354864027859831746010501225991980390858520597215059274637707408122220984799214219023978654842042459601591347569772135961290402234057552511337755367597572333516)
-      (num-test (+ 14513652183174940741664411990199277445706189147726874603036586212536012746892966848269748909379750612027025331446918381470766609543142456872580466135425754204680927122749772612276850998180593344389487924747722210296498854143380696064338777945015153982467675141485724865534995199700908286263993697988986805404864429385840512740226775506122190698806967785494289035976495492863456705096841250592980439363856397663738211335801835896091823148249303370609165910779981271035234045185574995335952208702661648744928539539455138167482396767268362221492607154709559716065850417221174683768503217544145599044845325824451589309835 -12814535978730024053359592817368712576084646962861720729844389627130663192435154658607204342320327460695280260731620465435530495952836598646143907272825807563512741964987882356778796849529260646503692618525570185450780889283642116889481314560395290434301143877809550098309214046129802023655714098730144464028249594406616074059558969757405392170810220921023905546104487938441503430332099605473144930508420331873995741851604525954472341693863067199617721032815462094767522339305487934030130207039176659398466616780628644572276059410087128533031562978399689702766028716401176531098447698206272762966470643604141938670152) 1699116204444916688304819172830564869621542184865153873192196585405349554457812189662544567059423151331745070715297916035236113590305858226436558862599946641168185157761890255498054148651332697885795306222152024845717964859738579174857463384619863548166531263676174767225781153571106262608279599258842341376614834979224438680667805748716798527996746864470383489872007554421953274764741645119835508855436065789742469484197309941619481454386236170991444877964519176267711705880087061305822001663484989346461922758826493595206337357181233688461044176309870013299821700819998152670055519337872836078374682220309650639683)
-      (num-test (+ 11356479761814008572465147431830778885327227506593483181241437802252618729479905490826767363633131720717461693888023278837835457496021519184903984385091047829540007466025527592005114414671285638168997562037691602144751434208304408870143450743278437854754504713023422097017723330207792526222436928747286558205279330508360438281011315147578105966454344087225699378388309094140949428028313539634103047841948634832398526343605363013644180832752120081735152285507591096001749463421326282317713079361827765412853023201330345752038722069405404812511739634687282327711258974520622248165974215116400638833123609666501349513623 -2451734542868054449539778460457497703609327132304922810342762480808881050209276687756391911546806187586640918078231508181876445466503459873508196878629364924241891220686182517218825181707207808769770392864734466652524094735160185556148554260517746279303022469784592528209667497664672945900929888144529727881050106027775707933311860110618130543481573815538047460723253898548348335762406437618625388229555824532715231231491787570056329865617082709588903922431713098922691537317839185452018617461891748518176708607861270770493263960554805373552348256747200291438630960804647686832667981625018361034564086859426490014044) 8904745218945954122925368971373281181717900374288560370898675321443737679270628803070375452086325533130820775809791770655959012029518059311395787506461682905298116245339345074786289232964077829399227169172957135492227339473144223313994896482760691575451482243238829568808055832543119580321507040602756830324229224480584730347699455036959975422972770271687651917665055195592601092265907102015477659612392810299683295112113575443587850967135037372146248363075877997079057926103487096865694461899936016894676314593469074981545458108850599438959391377940082036272628013715974561333306233491382277798559522807074859499579)
-      (num-test (+ -1814184401790217165873937825605141478060935014868566665644215718762341535891730598045990231798382966074312671040257824056876679135909008140059087311700216658095793352051583071432744886316274989901835606602224927350560604355249919901932382803472476702792978322468747380191775778902733911968522382089332819162367884984027854067607561808704316828316820133400099093450636968732151876570835173932998599031643640476109466728761033062776578175554441947411139184426213290292577467587355369954997241091769769542810051228504545831588488726789173405585678190671534386784806998695797717346491308862362775748058331375692317599945 15466182953987394334491149436346080039471412309427279110582769586053943302670765125931570041904640518032832554998553018838321871748542118021556398569294085708441934948186080236498081517178574839977996802813431873543309853609838200338534343580791382510179184571852290959723696010410340740895530535423959476873857191548113125728667781953125153120447892632916574768078583174099545013854248664119997703948998871566374080719541931440495888606776561795893839624084254684939434035018741535261951124673664746010067859317726891535170781460914710499572006592206360512398012457295755926986236618644330364227754380084585899275327) 13651998552197177168617211610740938561410477294558712444938553867291601766779034527885579810106257551958519883958295194781445192612633109881497311257593869050346141596134497165065336630862299850076161196211206946192749249254588280436601960777318905807386206249383543579531920231507606828927008153334626657711489306564085271661060220144420836292131072499516475674627946205367393137283413490186999104917355231090264613990780898377719310431222119848482700439658041394646856567431386165306953883581894976467257808089222345703582292734125537093986328401534826125613205458599958209639745309781967588479696048708893581675382)
-      (num-test (+ -27127130599753372624001250456405972983012981437652156246797208697430661165612459362971759027335854588888552031022264244768883843080959804690580574272908031271224646245152017114094021048441971097191444782106551075175878815012595015584723250801765859461211934306789890718268168352614164589637346918581658850565274510502652089457352942736418509881708568727739912127781455473660768550022762222130489047215089836402367851853412705556570667960548570630054608024914653686223423908494006675057953013815512203710764854485332282975729323105427143207127239069826750682633272289409910001698385240596625059970587393681128674617278 5719655139276246085992066702308194672442413085748146924567717361937179810269300239821879673460959112727066470468217892213025828988023367028158410455624528688729907493639908638553730770145274142147983721694721139760883483821883267129411125364089207412089113869427479340283853501026803387874124668123626271531796990801822527792189514551888019206405597994403243358155410088320317141454525417323186389587327532772638942220300149829241141659063128602316305332848477566686425551944956989370838072872906293845914921103561360871571846865478762953536949621421094416539099628942010528483544062050170673327754206501716239719529) -21407475460477126538009183754097778310570568351904009322229491335493481355343159123149879353874895476161485560554046352555858014092936437662422163817283502582494738751512108475540290278296696955043461060411829935414995331190711748455312125437676652049122820437362411377984314851587361201763222250458032579033477519700829561665163428184530490675302970733336668769626045385340451408568236804807302657627762303629728909633112555727329526301485442027738302692066176119536998356549049685687114940942605909864849933381770922104157476239948380253590289448405656266094172660467899473214841178546454386642833187179412434897749)
-
-      (num-test (+ -6069217517368004039/4076344942716985944 -399587800008780737/578697755310708616) -321318766345655960630110128852941297/147435729263904928853096856396980844)
-      (num-test (+ -41285036778370718/305793940074617155 -1396094619926552183/15846027887642356854) -1081121118676718273499338028514700537/4845619302294419132297197085940230370)
-      (num-test (+ 15975644088444536091/18063939613598316583 17501188199168431305/2979264551795273683) 363736076920798535449296038324193823968/53817254956563877935003279344562385189)
-      (num-test (+ 10197734562406803221/17452826108659293487 14639450560606090654/236781760961536951) 257914422508077920978698094723491089669/4132510899763835955061848877304138137)
-      (num-test (+ -16810360766832230069/13652857552883800956 5011749175730438558/4169057419710079215) -184295743992738197672588473692806043/6324394120121667288243293659228081060)
-      (num-test (+ 2234573531734039025/1128831476977636536 5842177084459535064/10255356071975483971) 29511180623959738330730559435115466579/11576568741659658592450950022331964456)
-      (num-test (+ 2268894928233321367/45672733521488298991909987382109984899 -10510750087507287356/187832098427494353069556175466145198255) -53883392376116199828369509984040539934420061636271022459/8578805378260910951788610598591490227836321974082207035230408675959411151245)
-      (num-test (+ 14273433611429514043/7774518083776389556784045601066955324 17247074371340283485/225579726714102822702316919752160926694) 1676942472465190408518249346164012571239098147062478293991/876886832336064155131767120243155911448808491410701588797601053820468509428)
-      (num-test (+ -384768590020206817/26284423885474502132625533495652664626 -913687410374243983/254477371735734658619949996700223764026) -10160887225658731404416073535892287983824191154410167550/557399258996959835387173465565070652935481894323496556880024318994528462023)
-      (num-test (+ -4465222504572200650/89674568206322981678158378582739708537 4148550863841320780/74302497820894496090312266744880513261) 2118016946376507498169590394563632549990739165791772590/350686547828419379316750498534703170285368675911953477374458878558215968903)
-      (num-test (+ -4466938407638238142/281859125741189685767904931589784285893 7302241525893379697/204618108204962312932373858463395271264) 1144186926000295881841982161759159994442430111060328362933/57673481089466829503954266461746705742702466399988738560842837126631263478752)
-      (num-test (+ 6692616266348342275/280491911593106290120490189988812804382 5414100524539959087/183579771905991028181574615911067652873) 2747240373316006570071525025488180559154305534334705425309/51492641151737853299832848099101317109893853469394209716061486746077629289486)
-      (num-test (+ -2794289802081124319/15768464977850217600859580216291365931410230647587457388598921425875331529149 10869776169503285673/33805119742344157512165738805682358903614971418053290198565741206390317449856) 76938383491719886409504555688515759257937029058461512747558964579607347503639994773101488934213/533054846729186819415263583890627325668798847177803707144003483502948153457972377767011992167761176556555806720273883868208938866192358148729990609852544)
-      (num-test (+ -253222140119290489/2123024034843473393742534167007121513293496410591072104903085284304117612082 17957334013642389787/32058972871090153103034645121513493401113378486125580864856088310966601405847) 30005809992231287609744177955201962181880644831204431411802631067134766877061419104162728517351/68061969937719269465960475690278941280799593161143759512261685488134507341176789799765185182008442410081522124548392827986923668912612728349293792643454)
-      (num-test (+ -13318881947309618/3105936147298438543619802738126617974207009907186580731552500517452462642139 1850968757748704519/36469179946212878965111748233319050931475015876401494718861814560453153824935) 5263262069792987469108717688485565287648879759118200779949761992573778798556738644541735401311/113270944257273905484832818286307416845956086746130199501242465128236430928807948126409718436237517505516279133169796919230385184900609912160483959935965)
-      (num-test (+ -9937822914683494298/36414156259035675966580098631253549474580108307284844243190992829476777586283 -13712605099585970325/17758145954890657915358548152198427387923366136638180213650029984340849686198) -675810254607579372158951115566887998278519717754376916387787672973408477396668549189167387350979/646647901672150721610792561233068038707362067627156669418022102308446036384411330678972562863413004325878365438890328206637571985169324874284800419222034)
-      (num-test (+ 2479135971595944301/28169711053558469409458629766960029324030958129245230797895768033968717159836 3427244662960653095/28446538857424788738244844756675951434179713170118835630969510829753715142438) 83533664807147783700314944003289704497366290621039272787320536148072960487262393639109696219129/400665390043739792096386856839000624247597803909916773326187593475005945995926511155915226239317839405221783416485999405286913042389632370302962776360084)
-      (num-test (+ 14865500635281371370/56222262470894935247131881777606182311286871927285650835673424014252462156319 6436092572090050725/19282524131572095520593158313261757267758159099923763177708581262473988426947) 648496060602737474174747620183913927791943082591316359990137585798909535115053578637078811588665/1084107132826611778585714784136700465449309125114745313342842325649687943726086785657821763235618936882528385000712567133180567926723616940173290425928093)
-      (num-test (+ 340196811925805824067049620503247332111/14422464039094716975 51285507111580975533385007190438537498/3230944134273302873) 1838820276033673324738967436225477772648372110186756083453/46598175588880723338390245118389369175)
-      (num-test (+ -210449319160504160992731982827917332322/5436857856220342451 251628249079137248539965770847855056283/4323109210037952829) 458271632943884346915405609513071881239303671882386130695/23504130271893362375786510953364243879)
-      (num-test (+ -40984360445255688839942109197081457275/6593417935076565019 -138094174027187773198981391229349265879/7135512300754720691) -1202957011856131413678873259651070808566709454882536663726/47047414779755620074837011989046108129)
-      (num-test (+ -289704472880230079383856507128133962457/10452740760651010288 -55251460678415911958671096669490155237/10333740726609314202) -1785630052601050832889834016432677758176770083879794496285/54007956451514283340719766211063255088)
-      (num-test (+ 276702099951674677215621541062877777467/3899918017008359516 42623843937285717338660228144403811741/1973785812353331893) 712380176058162142132059442064597996057720566915757732387/7697602851312240113570356856612843788)
-      (num-test (+ -323480614013303716597188084301661616596/12957985934572321773 -72966206939397711493108854138997499334/4539020357040680881) -2413780175334213399707013296172687953960842714316410700258/58816561943270580900205343368941122013)
-      (num-test (+ 65443777543319569578713907336699651721/218804857459609839540825438673960136766 -61986861924091374470669233802827103921/65997977315012279293170493460332070399) -9243869541956614722377007489838492339200370508580665293676272508698701352807/14440678019033825487758061900150103876633207457375858942267120523885980189634)
-      (num-test (+ 75417845823236070411341994633288547531/70553457686181702397810927701121800017 -7132208259849175775323757110664708879/24379326462014713478002790304943339422) 1335434330716260509518880689691257567128541829706203586134358870209350816139/1720045777955364955754847231620711706115121721983605654691934662747636370174)
-      (num-test (+ -144692585186931942602350348772472248638/135233395864627580439431775527364081053 282512666765911374279543408363363928190/317835040256607665191397469890906044457) -7783226336195038987381961251409043080655184208289882004756343793157154115496/42981911818671667582796085276418080952868666330715445603855323471628969373221)
-      (num-test (+ 44888992584766727877549626240272070725/30583318432547259097085073976959329092 8004917623696885952432014881247978821/22005016116109025986417835664774768346) 616299974987760892931461886440810919939264155149950328291076750435394215691/336493207496148335911511951044490614757807556827643881435283379298939260916)
-      (num-test (+ 78378756441281199312006031491361997668/175125578595003447448566412156266355477 41128705932035853424044828385766740319/216359823601433445464965619660717081261) 24160702340946845080381231961736762955784254747832931999121777482667650876511/37890139292913914697800186893609983979783140570423836226844401085057321416497)
-      (num-test (+ -36669293296367265584135816683983780855/7341750629088488427994322429098120058 -110335983484012479290765295565662258281/5944410911181873015545360879141666465) -1028036623331099574157832708037007047972965676333418398303213384036005227873/43642382546729990922161061763293407461832155878510163500678954788762454970)
-      (num-test (+ 228535455883892721240720366651075744967/13353170075841095813026701300679754576855418298534901819672803635370738730013 50622643250826426975012800479360461693/18462345430382979738234695697296360785230118465695284267226773073149552698303) 4895273294635392498665165879164922265508724130843670837390305811645771221742112327485665544066552056189958877583010/246530838530831602270074647792752210668736478466245992891169449973883874207653264921203783108295835419855394180777469634862446033810927048792871560267939)
-      (num-test (+ 11355068601761731966774720678777239425/4604724775053993730579400400679579947095967462408565975449642189823843820753 140083339434585694465706029861026468774/44667214322013486680993684507177513903616004462434123967566781106229226297333) 1152244506542792151980649054527153167035843960949499862764543674633978109831264344257976000890169981044543787620347/205680228421222079539939271800361418862113882206694593495620042859527547538342323521609420336002641308832164587573546802806916292021672743366881933951749)
-      (num-test (+ -1347509007210283053816302848714698886/1127513773036247565111791991337919355855664936242166138889250311777351432819 -29464928273311615445392112247506626497/61933028109313748081628643142485450090725737246358993405254280723087421657760) -116677425670791909053501267317366054796703074907755330120413752187834449333299886015456661052906469074533366060403/69830342199092322009251417145364324484174202256910311362396720371574344280505889954115533896831727771442604285956749924105078563356474162416148250025440)
-      (num-test (+ -324250487660721070279458563122233299722/81069650926979269606211148691445887485067008319429991878657612702576019034861 221744296343315457943731256980089803078/69422237643162665956763790134527973903052044485041686255401689654420090859107) -1511153903564243978242173323335554031611949546418082039382510246845821774680210236992700372319944685567533765722032/1876012190766999122356500320654631447623282613780323887424324139799202291067983209550065997185860196433399782230215269625922714982832188312141580824109709)
-      (num-test (+ -5518324152042099343909980322067306333/114786626838714403445081775763480415805466836213320421844559660900880511042496 -34415425451618992284220085078832944671/96012285963709194218263616278916829663708037691620330613749177799086889040577) -121088040955051148243092870850103339772063863319219725752028251933576579890093496821887384992074112246777968211161/297862876779681729593084954525306275464788137269287692384941959703420459939692410434239827100068259769782676124741025632728203586961467995819025176090816)
-      (num-test (+ -14763921690861243371082340598041267817/5580497386043551028888310256097864185640794395615400088682607872958152738111 -37917865546640067592937379176813765341/6460563866107795917092814416816176677900242086501650458839130903088333290440) -306983808565398982164654624310995401934900925070311336095043743767915008644459192438083753301097540174379867380331/36053159767181973313125557585868206969047484351694148822117591172786449966899079869470557965303954072842600790897257698854023751399649072014440219958840)
-      (num-test (+ -50167218239107621378232529938205077788547946059832391744348095230748591585676/15685777859540025727 2959973815535345735348053015389999235839609978295604181643547897863515739931/7556072538495923601) -332637648328710384664787658442281566361265475773778265650094684540358159241317316408573560734439/118522875329417757148187346888166482927)
-      (num-test (+ 36275100136090483878026478935942224245036692059657264537598788566553406654319/7192442039871568876 31833552596558882106090352174644817045294359487590746360517241517440556146007/5115621724114081523) 6795584791386081942310910570767193224876510928834120433155946649367201608618436115134135392229/603177258173744207443043238127434068)
-      (num-test (+ 1518304705177739493483387141342904186483658277690975456045607777812450680478/1837349761252804045 -98159070764971437450169149833809835519268242923913777966502463698396945141091/17238232824535200528) -154179655228376218743158291724235398278770272999447263973992852061897564252670941977524115620711/31672662964580000612902147746364535760)
-      (num-test (+ -16820231344048323866426670709751443650129113909724546927974450301780935205864/4879137683452153951 41987219452495799378686134495924115238909423831017150785452046648616005475639/10470103987572807938) 28751853386830083847297108941057082854166610198448421498169760256533906032780671559334244751257/51085078915429149801779227663330863038)
-      (num-test (+ 106981694162678522688926793970551228214793665448093395251834862896418045995969/12359470989873920972 57736849967187961211538031441400807467468650239660040144967046985609433512403/9148121311784151716) 211534804819567028232303054650327703050869189253958355919997046592895748577556985792570078031065/14133242495605447754080611005730273494)
-      (num-test (+ 32477400086615533920132766925666506741908300936974348739732763951610256880146/9045135183308696243 -27444990730472195954051975667481893116650518055101159075033425831129583042846/14815776448343565085) 232934248044934592851252865496377968609159820017147884670610366058217203617961573611006127074832/134010700820948737148715427669965475655)
-      (num-test (+ -110053921687226074580746319073262192216481755737797790655164396095655530752161/255625377233605953547425802301922658850 104095037267817888539158192425982072195078148060302393917025130946535913363779/52156238014583575190277280296975732513) 20869334635774913818120011435677143948904421430726712952150525645851498022294865158343391008006649321440592131083557/13332458017563665620865770931104425383051282278510599570476131200251352190050)
-      (num-test (+ -29732769078100192507326444863945498799317005912797369958801703828462203585495/153426302667449722633466432797809987061 36094569840376017510791155197897623093337784636438580042046806320700826250193/73286165979315961333009750429763545174) 3358855747298609357265422062476767573626163217619249414656940907348235709105513077913806378841119674678021275101643/11244025482879487592663298816607141776071841230792806495601092332558428993614)
-      (num-test (+ -5942892427460131788264792587455286675871284855854073854440582948253436001319/42136930106315714728428443448730580823 4013357443728612356640061171485791666303136232331145404661874650095235381569/4039594279673425548586623641599574814) 48367895947790658831309709091377784501687363167039737892874371817395083020674648576881857510385191335175551957207/56738700606823969419119152217721454504573192499839513549171731025354063974)
-      (num-test (+ 83833896550100013648317056712064289497247852876055488793078639582729685477353/188580876675619574786621140720273228537 -94310653397371924313725082402708514144086936359594289802762093989853507835016/223423274286761439988276492107364036191) 945257965914081840217765265999453398105151083284254483307155736205796420255026737575918161700355729594975143830831/42133356934734885127066999419230498520039134905254787577957770920054881982567)
-      (num-test (+ -14753992026457621496269953958381833108089826525439816493815533773338622353285/187171041855711408638339193132645929319 41340837577662628944845446369855468662228665858415210386857356535970453143469/322471558852595372991189266479896691326) 993354944176102401496932276511264091214577507066786487301109889019709943488537161608732610457423116833164991120567/20119112546425211128699888199278894685207186285215928241217590790016852128998)
-      (num-test (+ 1370528773439579327226257222995383030603284075640526658282329726447335048230/305600505683287165495713194488435114383 65450762047588146235054351616480175308174618406941901794570541085963681607527/78934496562987400429145916504112602768) 2234440886428442112499564751364146150136438855986167755259621093816030535881959724370423862435538502079424185584609/2680269118389404699570998335430047660909241475691839354273569734988880268016)
-      (num-test (+ -76890617375308981455205142622328108690129081798840077873315966300000409208129/15716637731576156581128288257209679492686622162926707938907282962815471734862 38716252217351070567267262306332875768795464072349655597599997486613800623507/8966639693620677733207403249675415446338239705879120765911896990394928596139) -80961151400006413290662155450270992168701818633203071886556882897757813544592915596861717853520674107309124394292702460320442121704840951425284048212897/140925427734207212133604717335369986754855062343668899363006574618520848268718851310007161609443093589067206438198588881828988648068282656538084484897818)
-      (num-test (+ -43290760758277846058307167265569849910514905939554272559141355223092464986939/39390771697068809730875092892395235497943839933482798653607450783947201796777 -34021960935937170163894986285771504067448629886312440795733904794894095253649/106500928228745564800818258673435811176493306775154643113582742982704678574998) -5950657500399238361998292872481533631424138885403498309639150240712482075115081624153513501886127772738596607451116548616099047843190357858736503567640395/4195153749384427435979718872073512266029328962522899010907363614544821318917440413166534226890289043064894115954085809567292470182917919104836361549181446)
-      (num-test (+ 17906146982204022925114071077515882010955693727109005464426577098738402001871/11978213712662686419384559301746021856683603106261241838035626618416021524231 37108371752538653389309509075248119316034595087990649061240232817571629131708/23044877611981158676785639370406786635050056158699399001947422631523989139615) 857136973087880657664203854652754375000000796400911171478039451763440064550649429609696307332611304395324153178602635490321877797571177424460384122636213/276036469018466057777760709173569478463866562650149880633721199971933767458324034017734890892482223472007882939609440193626728031771767304374122564511065)
-      (num-test (+ -77062185592993847534024832256462395143306675613123510837298699277378172890089/108133793614758275822883834459865239455798743725021300772336023406871185253111 11169356025540464491224577661206910726665825152149521753528516637690366838655/6369000033300801574913390611244042297918207179453133439308688067382050608197) 716975776667538986425481530620118513423964367153518065425241139444161780269039780459555836804116752462325735011822817367819625929553250251515977390346172/688704135133337463423649074673019029541747166391680122270752018123634233590688096940261480888455237095078029621363428114402137147558304641222314936350867)
-      (num-test (+ 13583698920327742567560325715281067532806062839142769830536738488850089822247/37364394142255392010559408553278838878570049727027927213977555360874308098434 89809462356450792524214360688853318641058652796345720882094866396911421360072/67457610947238032712889230619376608100793287037427539672885124981055281513463) 4272000026182362299819817378001862956001381379478285995446709640464951377212652125169846305230835604666564953883168949950485767679005929254184987140738609/2520512763327523955464432226120154092742373168521113224665257966793820057379494860454732800329019773731110452438496395974166220481124541266348389100216942)
-      (num-test (+ -56124163112538495128545947597589743957824668875494126834084658670528264380488/4752969512023182700122983723156599300062332404522277372984645779569746369511 -24794747728228571193100294011820993825205231022194400752319729320185378063197/98168688073468429337427023004226732413974455700654808087001957859427678524065) -5627484141989830997868845457242226973925524393512774885292323552602180052845805156311097870316601631410500655735815037997645271136502511615781690896430387/466592781448509275992390948177487068548424631274164031114910250651063315574511979617153568070687706304645818907382693929886654490427484894987856595782215)
-      (num-test (+ 17009115185923538769.0 -12047631083067675031.0) 4961484102855863738.0)
-      (num-test (+ 12677011568664239747.0 3269056182420253574.0) 15946067751084493321.0)
-      (num-test (+ 9315504781982082433.0 13857624532376678678.0) 23173129314358761111.0)
-      (num-test (+ 15226508728194069537.0 11481952022080775416.0) 26708460750274844953.0)
-      (num-test (+ 7461641943684774743.0 12249026721402718630.0) 19710668665087493373.0)
-      (num-test (+ 1180469445886971055.0 -3208456171287181032.0) -2027986725400209977.0)
-      (num-test (+ 18358552990465743315.0 221529797579218180385160273426219343697.0) 221529797579218180403518826416685087012.0)
-      (num-test (+ -14819874956616484359.0 30498815629431206969122152847973230849.0) 30498815629431206954302277891356746490.0)
-      (num-test (+ -11781881800334342169.0 112219460388643619332860331282276228017.0) 112219460388643619321078449481941885848.0)
-      (num-test (+ 3570694277032201957.0 284821691832196381859344006870088122712.0) 284821691832196381862914701147120324669.0)
-      (num-test (+ -17005463295060938595.0 69162171850264911722979835561124066203.0) 69162171850264911705974372266063127608.0)
-      (num-test (+ 15647113311796203488.0 150750467185419235519670165664526735459.0) 150750467185419235535317278976322938947.0)
-      (num-test (+ -14330150541101371097.0 -13054027994001826312503071338715966858478218093171762021549815587520723118772963817341751396703629529810372702877555022105594068768886421335353882155416908.0) -13054027994001826312503071338715966858478218093171762021549815587520723118772963817341751396703629529810372702877555022105594068768886435665504423256788005.0)
-      (num-test (+ 7406427184711759740.0 -4059250217961011548005203450962458026528281798230141192186669580689721046971433745892994467792118611646113962840750314719233572760336084100766391093756252.0) -4059250217961011548005203450962458026528281798230141192186669580689721046971433745892994467792118611646113962840750314719233572760336076694339206381996512.0)
-      (num-test (+ 8819522415901031498.0 7274905269237471130619913887005155660991437201841760414347836177003483932007334374478344594178179032728521106519295465031750530183363793325150672647162846.0) 7274905269237471130619913887005155660991437201841760414347836177003483932007334374478344594178179032728521106519295465031750530183363802144673088548194344.0)
-      (num-test (+ -7242932332215698200.0 -10558564312909325527488520195600871241245891651644550509993750377630234801225525279855157008009255586978047154906058790342845859331159009687703010657137320.0) -10558564312909325527488520195600871241245891651644550509993750377630234801225525279855157008009255586978047154906058790342845859331159016930635342872835520.0)
-      (num-test (+ 9794320575955609492.0 13380937715397052566925484435342184213544885758759259410983243841206628594840271850190097746775475837233042430565529099681550277688470325394342993771343357.0) 13380937715397052566925484435342184213544885758759259410983243841206628594840271850190097746775475837233042430565529099681550277688470335188663569726952849.0)
-      (num-test (+ -18404048401680891243.0 6690884608978704096379677348142836785900717005050936986370615083929607190833180925295418079551348559691161519822750772440155040888224482801864925665484770.0) 6690884608978704096379677348142836785900717005050936986370615083929607190833180925295418079551348559691161519822750772440155040888224464397816523984593527.0)
-      (num-test (+ -10763220363947284865.0 -30985722824355332972176356513316569304601382411274079243859710673739383446566598659878378034375348869471278415635671865753349734809209959160389615096293457362383744562507969316522225741589739150453090393424063226271167062127000223628785686999799282795143706407082119829140399988180879618548495395684946331608899565543458192773899200054228140747414544792128323269250618482622488195333106891323515989863192944848391405358725993695671970811097285270641251816244586360288952156538400321933146150313939864593445583603568771077260174826348411367609521412133720180359748539721570562669201065857989876521301209899829037444385.0) -30985722824355332972176356513316569304601382411274079243859710673739383446566598659878378034375348869471278415635671865753349734809209959160389615096293457362383744562507969316522225741589739150453090393424063226271167062127000223628785686999799282795143706407082119829140399988180879618548495395684946331608899565543458192773899200054228140747414544792128323269250618482622488195333106891323515989863192944848391405358725993695671970811097285270641251816244586360288952156538400321933146150313939864593445583603568771077260174826348411367609521412133720180359748539721570562669201065857989876521311973120192984729250.0)
-      (num-test (+ -12742462236537568498.0 8711131313747826394504271797986775572294949693272674156076339989631171694968899228610359983845552623710580616605402899155485071497929100432998183040757832449369366844015907530612334721882095163137705867337969942902346066961718232788529860214990099385213558935023241940238638069647809530490438245386869385682221280939688108487754251075630026707075310465788398213293782900699868609660892232563106662995330591906155134237356516622436517046191466823447743155250482328613449506396571170001248589926831956459700467126756876526930443317428628239358666456771112897986098390410773312792390699312960051747534683311506465130527.0) 8711131313747826394504271797986775572294949693272674156076339989631171694968899228610359983845552623710580616605402899155485071497929100432998183040757832449369366844015907530612334721882095163137705867337969942902346066961718232788529860214990099385213558935023241940238638069647809530490438245386869385682221280939688108487754251075630026707075310465788398213293782900699868609660892232563106662995330591906155134237356516622436517046191466823447743155250482328613449506396571170001248589926831956459700467126756876526930443317428628239358666456771112897986098390410773312792390699312960051747521940849269927562029.0)
-      (num-test (+ 9991390529516174614.0 7879872958436992955898278403297937595295396115022400543178444946646147916754852888072481665174663073269556311758611700754643170639645548596647557683044355930340624784190093631808382820554407595007761070026239341594197877214157118335743842022627898879376346092898666610367809537340994845045475091410516226225078052019727419030585524815982151736622865401299588936172760762386183577504972623377661437665668080131418564228642443266935225613702941906491478788336262289516199380144218708241406077806669686589734333554945412904560108150202389909124657090061223183441083590340175629756198442568877659538345749595968764873879.0) 7879872958436992955898278403297937595295396115022400543178444946646147916754852888072481665174663073269556311758611700754643170639645548596647557683044355930340624784190093631808382820554407595007761070026239341594197877214157118335743842022627898879376346092898666610367809537340994845045475091410516226225078052019727419030585524815982151736622865401299588936172760762386183577504972623377661437665668080131418564228642443266935225613702941906491478788336262289516199380144218708241406077806669686589734333554945412904560108150202389909124657090061223183441083590340175629756198442568877659538355740986498281048493.0)
-      (num-test (+ 831234034418847630.0 -744676478858160349467117341859049692149463503380690495147216354303526704924280287782902146026018180364963325847811379182950159627878800024734206345960410146056000392683000433501805629464626281031086102425271022388473812300724085127447081771317912465921636737545371909901577246384446144919253141375367648958387948463576516115079816552636772639965957498569187848459747361493535081532845254971492261148968198806736512864867151355002902241562014241077734122599581732704243705918200179789271894804233542502502119523149682814025979598424744685548054183678652651244898867735764030968089217841214778606507809487462642341164.0) -744676478858160349467117341859049692149463503380690495147216354303526704924280287782902146026018180364963325847811379182950159627878800024734206345960410146056000392683000433501805629464626281031086102425271022388473812300724085127447081771317912465921636737545371909901577246384446144919253141375367648958387948463576516115079816552636772639965957498569187848459747361493535081532845254971492261148968198806736512864867151355002902241562014241077734122599581732704243705918200179789271894804233542502502119523149682814025979598424744685548054183678652651244898867735764030968089217841214778606506978253428223493534.0)
-      (num-test (+ -6996572501442843347.0 -16567158719848992553565776505785820491834685475229611199353714982570065913508303466008005931649515528390057456882757990896824841386431756898386429000065518724021230756426613661219891419166146764347562529640689229693578574350948436847247856000438153789455857903402883189892697143647998643667467614427922009931545254965075041050860609824086811877108940020349157317276288348430058535959434983921323332907180869396258655826781438419383792024592535415693101119109484610789291889841197827977530804650015884500878613240443324806805475203272442094530735476095374446946252236490708915034012846683015547314889561060687692538144.0) -16567158719848992553565776505785820491834685475229611199353714982570065913508303466008005931649515528390057456882757990896824841386431756898386429000065518724021230756426613661219891419166146764347562529640689229693578574350948436847247856000438153789455857903402883189892697143647998643667467614427922009931545254965075041050860609824086811877108940020349157317276288348430058535959434983921323332907180869396258655826781438419383792024592535415693101119109484610789291889841197827977530804650015884500878613240443324806805475203272442094530735476095374446946252236490708915034012846683015547314896557633189135381491.0)
-      (num-test (+ -8920936222630165483.0 -18738991973681679876688842391791783563249057933653045519186959571392922172943405646958686202208790537612746921398028331540617848217445632123805070077600768524509025758950743971128222843292926773668584735575066246660802064630842300367821042873152766467703905048558085377302000898639290554395913805527529259855535801856020623830262396582180677933562523957295341539162448074423901242873918231922121053192425691524797238343327318801359521456598967984637483081312932069399045363737622797213185099130529375169698811801965974416555301085043300426947769193582129151016159057101028336667142913854943018973494705119572045938607.0) -18738991973681679876688842391791783563249057933653045519186959571392922172943405646958686202208790537612746921398028331540617848217445632123805070077600768524509025758950743971128222843292926773668584735575066246660802064630842300367821042873152766467703905048558085377302000898639290554395913805527529259855535801856020623830262396582180677933562523957295341539162448074423901242873918231922121053192425691524797238343327318801359521456598967984637483081312932069399045363737622797213185099130529375169698811801965974416555301085043300426947769193582129151016159057101028336667142913854943018973503626055794676104090.0)
-      (num-test (+ -243510292488206214847646757340020705642.0 5940577100149745132.0) -243510292488206214841706180239870960510.0)
-      (num-test (+ 35446324064743728955945058978206455057.0 -6248622708755929572.0) 35446324064743728949696436269450525485.0)
-      (num-test (+ -285342226760657637664173494795024413673.0 -11942737781617905307.0) -285342226760657637676116232576642318980.0)
-      (num-test (+ 180790435817422032042321866247362452865.0 12401641959336396832.0) 180790435817422032054723508206698849697.0)
-      (num-test (+ -179994871947239535956826388240542999950.0 13573822506399140772.0) -179994871947239535943252565734143859178.0)
-      (num-test (+ -308198027295905163635866438671452347268.0 -8790069282378476990.0) -308198027295905163644656507953830824258.0)
-      (num-test (+ -139324757925833055762410227358605285566.0 -190622873846936719063564661032771271922.0) -329947631772769774825974888391376557488.0)
-      (num-test (+ 332866352618304570046318203427223999347.0 147978646177673305481282943528696833018.0) 480844998795977875527601146955920832365.0)
-      (num-test (+ -39471620476300923970352914034802271156.0 28992893610776120142668950821916856486.0) -10478726865524803827683963212885414670.0)
-      (num-test (+ 274120253734611965146455315763505869288.0 254675910805265090692978775702306142625.0) 528796164539877055839434091465812011913.0)
-      (num-test (+ -122086811464559635596206661886176775901.0 287312583034687582188356355813963609701.0) 165225771570127946592149693927786833800.0)
-      (num-test (+ 288576174771266329955482943556556984728.0 -57843540651903655425270706396868707777.0) 230732634119362674530212237159688276951.0)
-      (num-test (+ -47977736580820486006305788441965482221.0 984809271313988066640898939725532304075331399066274624928410251834520283291912387208948664716457549646483445981126881113426109906085249657168046936670489.0) 984809271313988066640898939725532304075331399066274624928410251834520283291912387208948664716457549646483445981126833135689529085599243351379604971188268.0)
-      (num-test (+ 21225484205143479814642328762121362291.0 11839789093732539327981861490012713257538550745921177905266671749716203131127256902110452504526721633943016923389974867770082516862899595554460170417713940.0) 11839789093732539327981861490012713257538550745921177905266671749716203131127256902110452504526721633943016923389974888995566722006379410196788932539076231.0)
-      (num-test (+ -193095363331703875886398909106293703000.0 4389392021031719669078675478621418677903292147307684123866099084349756491860737402449105804868232530632178577388168068485304437343508442251302846768269976.0) 4389392021031719669078675478621418677903292147307684123866099084349756491860737402449105804868232530632178577388167875389941105639632555852393740474566976.0)
-      (num-test (+ -14827657635864183514988182371035598180.0 -7256545787852407071411458891023580461638051949278710509801472046178301830006724297747051044450550248499056073213660185258676369175307019300952192657194576.0) -7256545787852407071411458891023580461638051949278710509801472046178301830006724297747051044450550248499056073213660200086334005039490534289134563692792756.0)
-      (num-test (+ 54301423175725658626298504084995819705.0 -13385853291610595576947504757201441006088030688464261540642594993520424631577281077984278942244446266776534612440941312995898184903431893212829646845766101.0) -13385853291610595576947504757201441006088030688464261540642594993520424631577281077984278942244446266776534612440941258694475009177773266914325561849946396.0)
-      (num-test (+ 195114404067053480147948948510253723990.0 -8373866462448797623435948949281383906369538962237624940506813188612614128993186653340202956656303504523161255703176374041758276069255591562198514767063594.0) -8373866462448797623435948949281383906369538962237624940506813188612614128993186653340202956656303504523161255703176178927354209015775443613250004513339604.0)
-      (num-test (+ -308030589512186791277525017840002670741.0 -11922204352024596469278978325035646517433105521287613403902396944414655739824695945028308092245747333098422116078042326104667969967224788442970266049942774583538734406057081597034454910987815490244451193242377705191422489528853976486607580169986057592557285271953385769215318545520155212402919465580052078255078759756709086185424029620805084776442744700501748376290562843380642608395240491162047933014854466267084965223593172702334466729933986413870670083326499598274393380692146118979961818816348097032083332695128587696590646086980241100792624502607816103195636761141133903550454815591457829485684936036414823492160.0) -11922204352024596469278978325035646517433105521287613403902396944414655739824695945028308092245747333098422116078042326104667969967224788442970266049942774583538734406057081597034454910987815490244451193242377705191422489528853976486607580169986057592557285271953385769215318545520155212402919465580052078255078759756709086185424029620805084776442744700501748376290562843380642608395240491162047933014854466267084965223593172702334466729933986413870670083326499598274393380692146118979961818816348097032083332695128587696590646086980241100792624502607816103195636761141133903550762846180970016276962461054254826162901.0)
-      (num-test (+ -172649878347923210775992373331623646864.0 22180935775581457002090790736532281654456312526625354262953960635330604551829750571440878712430708012807252279301365732385899228826740712544768476577874129759972563823209525283326887563301081200476495752033290851190327066070873711444930389093339915885090143783170994309089448293499799071372787520776773788274677288230540162485916160484352398851925328125588729604931589867889917097887951581817207079060016091919559509735997493084833476849835444339835031436580214492450731100723026312163752403946315983551266206214298679421644737804098691991631489261658890937663698502561036246447760919715595005106669653475931803053499.0) 22180935775581457002090790736532281654456312526625354262953960635330604551829750571440878712430708012807252279301365732385899228826740712544768476577874129759972563823209525283326887563301081200476495752033290851190327066070873711444930389093339915885090143783170994309089448293499799071372787520776773788274677288230540162485916160484352398851925328125588729604931589867889917097887951581817207079060016091919559509735997493084833476849835444339835031436580214492450731100723026312163752403946315983551266206214298679421644737804098691991631489261658890937663698502561036246447588269837247081895893661102600179406635.0)
-      (num-test (+ 17539006966816771902104329685391462527.0 15609797782337099611892065465036826453911053690739041627254619195700021040383385710184052653282070244915503750549545390475671883312314708978681904377133928647935359080875691628246716591529028104762422990155477702994042953196747769893182153631482194578269859879402160062955490194674372351117284129320011166238130774752386987036267064693133554447596069886693581191241594745541512444806003236372840085705813835001957163976961730871756250344335996073970142337882238844723800849054637237549515249957267772181010402413375667537558243971058326641257721901094391380667244006959028327507917720426571969997513984360849930719808.0) 15609797782337099611892065465036826453911053690739041627254619195700021040383385710184052653282070244915503750549545390475671883312314708978681904377133928647935359080875691628246716591529028104762422990155477702994042953196747769893182153631482194578269859879402160062955490194674372351117284129320011166238130774752386987036267064693133554447596069886693581191241594745541512444806003236372840085705813835001957163976961730871756250344335996073970142337882238844723800849054637237549515249957267772181010402413375667537558243971058326641257721901094391380667244006959028327507935259433538786769416088690535322182335.0)
-      (num-test (+ 244901855797156286376563377540855746602.0 -22138106346578776369849317622304392466030036563754663379976505966920461958652141160336156065177498990718609170201272980114106671808245437660234479124938853665375934080221740523696180221118540569603989748587853373569525751680828044059607889572522502629277877343410298879764820905044284757389006201848194571453112545228115550224254565141563427486518108434758694923122284117299374156393942906293546318323661938734959824887786185558612820887463537294120950912969343488704744978847504513710882720654330147775174336365363311173472002077960424794151168301281665765411704505095008907760396535767621855642720080219960822554492.0) -22138106346578776369849317622304392466030036563754663379976505966920461958652141160336156065177498990718609170201272980114106671808245437660234479124938853665375934080221740523696180221118540569603989748587853373569525751680828044059607889572522502629277877343410298879764820905044284757389006201848194571453112545228115550224254565141563427486518108434758694923122284117299374156393942906293546318323661938734959824887786185558612820887463537294120950912969343488704744978847504513710882720654330147775174336365363311173472002077960424794151168301281665765411704505095008907760151633911824699356343516842419966807890.0)
-      (num-test (+ -119403662992279138748600939857239307122.0 26272999248235953724172008428088697264933069743507017434844709711501131900922919455931092196539942532993887162365511473221418376205773427597933886270411672062672089518774390132453916538404354895529975888201032175628249480896964400801763570333497287321002961557096975786141940970260074557095118887294558700145949117395512768347250531196100831164663613049206690894640391431616112104502483838173255614981302462548882276825096564828583591963617871547373532874400764134244496979962241959713525053686209002866840900623246072884125102845824992994967009109046451949348656842486048332953732384499190437432898387573320391878853.0) 26272999248235953724172008428088697264933069743507017434844709711501131900922919455931092196539942532993887162365511473221418376205773427597933886270411672062672089518774390132453916538404354895529975888201032175628249480896964400801763570333497287321002961557096975786141940970260074557095118887294558700145949117395512768347250531196100831164663613049206690894640391431616112104502483838173255614981302462548882276825096564828583591963617871547373532874400764134244496979962241959713525053686209002866840900623246072884125102845824992994967009109046451949348656842486048332953612980836198158294149786633463152571731.0)
-      (num-test (+ 313963939617834410089002930298454269912.0 23286645405607099799151331553995799851855144387826191186590140820016670502830395945076644578998873585162998873396623634135231418574284200209367505115739462344028303923666952261030907434438322884189133236837089851688275865098623902644385995630973049587854251981548128145516004461191094062488421288607625783540996659060285661398859383778209495884203323937672739376151794507745282074538961033778823733980759695886879886017489555795079194346438911010371103435094677167286870898482214310646392174423422237727456012197253183422715313378603607058548706460095379882633958651034759773864354021315490712575535559549015858088608.0) 23286645405607099799151331553995799851855144387826191186590140820016670502830395945076644578998873585162998873396623634135231418574284200209367505115739462344028303923666952261030907434438322884189133236837089851688275865098623902644385995630973049587854251981548128145516004461191094062488421288607625783540996659060285661398859383778209495884203323937672739376151794507745282074538961033778823733980759695886879886017489555795079194346438911010371103435094677167286870898482214310646392174423422237727456012197253183422715313378603607058548706460095379882633958651034759773864667985255108546985624562479314312358520.0)
-      (num-test (+ 2000877973959266893810594143560134441447453310844726478119781029700338468704683515329516333146806175216349912753585564808803731447160643580198590073658869.0 -17993015014355471903.0) 2000877973959266893810594143560134441447453310844726478119781029700338468704683515329516333146806175216349912753585564808803731447160625587183575718186966.0)
-      (num-test (+ 5492930533666246223206322654398877802091439062008700770880939594548305919677404080859141226095489505872709347538974725998600861651942609010590873980143878.0 15372278140141207703.0) 5492930533666246223206322654398877802091439062008700770880939594548305919677404080859141226095489505872709347538974725998600861651942624382869014121351581.0)
-      (num-test (+ -13405500833215428652808705089190188280715732437731292502890523313631564795139560159124390691283401484515088713758307366404145018349044148223082253439210893.0 -14793401891248640808.0) -13405500833215428652808705089190188280715732437731292502890523313631564795139560159124390691283401484515088713758307366404145018349044163016484144687851701.0)
-      (num-test (+ 9945195259699924701593703207751086973468898794114625092150620088406276196469184233537941913755508476427888065765634203723512911676149274871082481174186606.0 8699133332160461067.0) 9945195259699924701593703207751086973468898794114625092150620088406276196469184233537941913755508476427888065765634203723512911676149283570215813334647673.0)
-      (num-test (+ -1785165974800693006461065312083337532938610906605533088558498259067461510781028452552786542598361030690629530721209490413999022804146471920873844686294838.0 -13079925952361275418.0) -1785165974800693006461065312083337532938610906605533088558498259067461510781028452552786542598361030690629530721209490413999022804146485000799797047570256.0)
-      (num-test (+ -4861207515430071951958387366611380234482792653010151054346367776006873932152600469133110239669746470475230906073865131648496652783311445471793936775767736.0 -9381557743227419896.0) -4861207515430071951958387366611380234482792653010151054346367776006873932152600469133110239669746470475230906073865131648496652783311454853351680003187632.0)
-      (num-test (+ -6638723469626495957966112633999375479181736600737250559572415894485618850919815869703127084789143821420728194272094956858541960962483734293877093635361160.0 277811698220276334443479876776376776138.0) -6638723469626495957966112633999375479181736600737250559572415894485618850919815869703127084789143821420728194272094679046843740686149290814000317258585022.0)
-      (num-test (+ 1983880417172931934469534542170437296262471214582817006917470485544552211448284732460451903536334682269123998240709059499894818265755197559390728940140016.0 -118940994129137705779355371753506018694.0) 1983880417172931934469534542170437296262471214582817006917470485544552211448284732460451903536334682269123998240708940558900689128049418204018975434121322.0)
-      (num-test (+ -9354509264984586574958285335910611806441061705184818350015454221731287473282231343722010109181841005578131927454778025302197744540571159656556971614966757.0 120224841184491944160266976391113485817.0) -9354509264984586574958285335910611806441061705184818350015454221731287473282231343722010109181841005578131927454777905077356560048626999389580580501480940.0)
-      (num-test (+ 4389359421234641412950681847970318834150108533025088077429496538447029921663033978550089607257809597829358374972237448178553189381274150213236222139873594.0 106674783386899772113212633712093787897.0) 4389359421234641412950681847970318834150108533025088077429496538447029921663033978550089607257809597829358374972237554853336576281046263425869934233661491.0)
-      (num-test (+ -9319417879153488839579936799737117639058244394679644240663244688680826325564084529474537634510092069422987165268448907193562300482925125162731530249763801.0 192969103435503875767216559494769734726.0) -9319417879153488839579936799737117639058244394679644240663244688680826325564084529474537634510092069422987165268448714224458864979049357946172035480029075.0)
-      (num-test (+ 1394404616168163951844558734723678125985464491792846741433683801962971891047718103736551854371207400145441134823994228143957746922511631911996296931168332.0 -211230038021470285136061932161632203274.0) 1394404616168163951844558734723678125985464491792846741433683801962971891047718103736551854371207400145441134823994016913919725452226495850064135298965058.0)
-      (num-test (+ -2935941510094051560788359387128767361559188973149773593522440619832472030019457317998381634585179453958737810428870232715146002408187749944694186205812791.0 -1221176156661231926164756142840452419679061324806989304452215660535991083923207702827717652226257158321829748247784282139952864899457896871473184473608543.0) -4157117666755283486953115529969219781238250297956762897974656280368463113942665020826099286811436612280567558676654514855098867307645646816167370679421334.0)
-      (num-test (+ -1338674579024795395027232680327531457830908239605718353094975139226848400289367913459076082700361212506196070727982446232782659114647371030398516119682505.0 -1298372177520411182435886041880377054374169787570856408996533471838082317927648953576721017727347029007573543972764860712708420553928791798580799809858729.0) -2637046756545206577463118722207908512205078027176574762091508611064930718217016867035797100427708241513769614700747306945491079668576162828979315929541234.0)
-      (num-test (+ -2072456075229532951804023218627137969798924912365258263779029006567941400203608770518731715660383378937120213112973528605594220795605977413985543331908189.0 -9744489461776287963808523409593616918248399004543154581056479712028497082820841423941781438667661074968238703192056877665754560746003512076830245760254982.0) -11816945537005820915612546628220754888047323916908412844835508718596438483024450194460513154328044453905358916305030406271348781541609489490815789092163171.0)
-      (num-test (+ -2570682164188734368809161664810917340861573482754788446510182252413437925852206735928397938304353826925422441004271229738766803460790995673395984247950088.0 656920705293329551826685120408221577679101260931105312141757138825917579070505267306626244216341686712802796891966598838285570807961966448181138356047523.0) -1913761458895404816982476544402695763182472221823683134368425113587520346781701468621771694088012140212619644112304630900481232652829029225214845891902565.0)
-      (num-test (+ 7846359203342053693101523606887617345982401999003795257520576318451663998927274759872692123323796450295314377046602880394071105863527900699633560551732837.0 3683380639347829102597675045842249667669675715600522157867595962635108482512780509393310714588544837398923613138772339053021025559943198965234376657126821.0) 11529739842689882795699198652729867013652077714604317415388172281086772481440055269266002837912341287694237990185375219447092131423471099664867937208859658.0)
-      (num-test (+ -11692323148567132684205145901751681947225824260005631214936266006610207543813382900867093989444659986091234552140689684476541703112098935301322850961583953.0 -8534276689564199122569555420819240948691777228327984555753862457592427992599992931175844172478864477440165366128106812103785256271256853749622592560655914.0) -20226599838131331806774701322570922895917601488333615770690128464202635536413375832042938161923524463531399918268796496580326959383355789050945443522239867.0)
-      (num-test (+ -10734754884168724884333968138739681643742524619139397687680049322697740991391014196697040576174049452737571835233123127815762146577096625434481167057340772.0 17059878151450238567815178684522345445687980385106446646013863901583786249398194029757376950491550197185231926262467028755342392379269039238766592672298850588065335172902157386017520689203005559576263548017475991638498600879259882041932152385436968424098224966518534467302264172016376096778201462205990822825056602379115848799619564610033123837036507127427054121975400703490855123544706355545059512146550901507159940126280812512339749605195422987937677650572797378799103456094203126081464905326203083057134061673694975250599375795827437561275156235513192978645909947341297774926450637694325145427434486258223666250272.0) 17059878151450238567815178684522345445687980385106446646013863901583786249398194029757376950491550197185231926262467028755342392379269039238766592672298850588065335172902157386017520689203005559576263548017475991638498600879259882041932152385436968424098224966518534467302264172016376096778201462205990822825056602379115848799619564610033123837036507127427054121975400703490855123544706355545059512146550901507159940126280812512339749605195422987937677650572797368064348571925478241747496766586521439314609442534297287570550053098086446170260959538472616804596457209769462541803322821932178568330809051777056608909500.0)
-      (num-test (+ 1982582032974021971225071139786536402936929744496433027195224299475980201425925452469321205602618940472354066218156609448199804973454183972974358405933935.0 -5591374624026484498020036332218412149978824230210339582240360391202660977358546150723165491729699122647688030937226316069237264083850854032732663284717882873051337566653841254365703461654061656817936193716386141166210237666314879751427421825450110467888973152907618520704486700443275358649289847595635931220181024199692771066498714511145489237541761266539978351840438236927937894376002981658065431416811632941197501676956304254109064936038146674412392128883565757325842468006824235119684861972224857533964558963441079998949499582965764591461900562931342373507763081479989957632695010603500633322408246084430203281475.0) -5591374624026484498020036332218412149978824230210339582240360391202660977358546150723165491729699122647688030937226316069237264083850854032732663284717882873051337566653841254365703461654061656817936193716386141166210237666314879751427421825450110467888973152907618520704486700443275358649289847595635931220181024199692771066498714511145489237541761266539978351840438236927937894376002981658065431416811632941197501676956304254109064936038146674412392128883565755343260435032802263894613722185688454597034814467008052803725200106985563165536448093610136770888822609125923739476085562403695659868224273110071797347540.0)
-      (num-test (+ 11532228364136654310006206557545352284448588590560137249197311142901246089838098630841794341370689745410654263817911440601934362503092628725755210859171724.0 -25776236925500995542036591604259749301547568770017466769502569415611770276300787105037848049555500555975152877716727294374436703766730618054071617947449695177320842403963009384468257891933593584757723535299746543328292715942626303315235241470269740287031317322772461137186093930239744879822272349431389779234805703118929710210161489122272898252221025966631463842234537744822906696719691188223105175714602909117904182229960075276443648211003011686250829474364425483901920822837775032295913486152631638908227467242772081310515646217115760180349854601959031626524004201825198439309850266508687796415478396821644422350208.0) -25776236925500995542036591604259749301547568770017466769502569415611770276300787105037848049555500555975152877716727294374436703766730618054071617947449695177320842403963009384468257891933593584757723535299746543328292715942626303315235241470269740287031317322772461137186093930239744879822272349431389779234805703118929710210161489122272898252221025966631463842234537744822906696719691188223105175714602909117904182229960075276443648211003011686250829474364425472369692458701120722289706928607279354459638876682634832113204503315869670342251223760164690255834258791170934621398409664574325293322849671066433563178484.0)
-      (num-test (+ -2603756427337798371354526130541868239006085657393372011847827118826669474695402075575479286172808099892726251004549675772420422527946534088483901153485670.0 -10844269742362409682236511127219508926736627172993604953084481596070757241623728297275447608738915355190715664012379562650777199088096670239050254578284071100042116609747208178716191571268815994455064584659920497876052406993834873124981417288518101426395560764186717660091472734401090302285129741058888303693710456902635092811413971399734306158050053239768185860958896447298052082493590498954512083131068867270078638929796561440903919430094619437872896595720463663570751134804664228918188923926951933302878771189484614604311920655871182974081898031051411394311700207305532216445616083858025977851570522763537300875989.0) -10844269742362409682236511127219508926736627172993604953084481596070757241623728297275447608738915355190715664012379562650777199088096670239050254578284071100042116609747208178716191571268815994455064584659920497876052406993834873124981417288518101426395560764186717660091472734401090302285129741058888303693710456902635092811413971399734306158050053239768185860958896447298052082493590498954512083131068867270078638929796561440903919430094619437872896595720463666174507562142462600272715054468820172308964428582856626452139039482540657669483973606530697567119800100031783220995291856278448505798104611247438454361659.0)
-      (num-test (+ -5929887196386997518766568868806997104240129372360669348628384183712406620199102166145939206783172815805659513128544493795329100599632286529420772709366102.0 24544958491142793859949310604465694574872439331169358241746200808802938771527900616394258199996170862256988647191747967628756772368808644819831481350919782560499270148419601775750932556119448001824346026042068416905254113155445053931789404515589532235225580737103411251232560863878948880220469490014568323308965914171394449781093816607870593225534700167342589927524232815571862258490314644577819742372918446373756857848586825568514909823940075182825283229026250682015641747568282510036326125505522447591703308661608718100933027549520132308555240654655887041040427813131621391320267698106519650611462269033902177180035.0) 24544958491142793859949310604465694574872439331169358241746200808802938771527900616394258199996170862256988647191747967628756772368808644819831481350919782560499270148419601775750932556119448001824346026042068416905254113155445053931789404515589532235225580737103411251232560863878948880220469490014568323308965914171394449781093816607870593225534700167342589927524232815571862258490314644577819742372918446373756857848586825568514909823940075182825283229026250676085754551181284991269757256698525343351573936300939369472548843837113512109453074508716680257867612007472108262775773902777419050979175739613129467813933.0)
-      (num-test (+ -8848084327536592532063677611386811805244460767433749071435930786126721080365289638381557872263825830664387392539638767251180242665642373539064690745095464.0 -15917950175678012281826361248776190984758236997789474333609547749168308439513527143790323694526378056113636462939674273462177686456811495629631337058042159570336251822399402513133598701991665209363955263097315081570618652783181494594400709239428597117944511110842795526862595552977665064029517628515465251448116061875878430407784298951946811321795808932206846491091803276390661869369638950672478828532423383951689632136029256108992610781912267083149156104328033893238864631158195280554850035949666897861529711006187241710164902350100555999894332438423857208747342184052953230247487231455921360593096823760117493579248.0) -15917950175678012281826361248776190984758236997789474333609547749168308439513527143790323694526378056113636462939674273462177686456811495629631337058042159570336251822399402513133598701991665209363955263097315081570618652783181494594400709239428597117944511110842795526862595552977665064029517628515465251448116061875878430407784298951946811321795808932206846491091803276390661869369638950672478828532423383951689632136029256108992610781912267083149156104328033902086948958694787812618527647336478703105990478439936313146095688476821636365183970819981729472573172848440345769886254482636164026235470362824808238674712.0)
-      (num-test (+ -16314775600714318471451792035636584056297958597339492996728118376578145765736873313518831390349547274517050864260054903974054712997529177834428786007341762649083404743713562157667828894017440065599882523458121037421757904691003094608420565550031561905074671735751685371533975894842331113347413787808917193134135744321547478500861021485075363990553639161661734684228250909589741380076008551020384304303171431833670236949934603973673998262066558668396388979463892768199916011368116729432353268535563246463324517035331079693172060671712718486388759443825620676228470068291448236914050793177812037679396721657020438979754.0 12553426083939460917.0) -16314775600714318471451792035636584056297958597339492996728118376578145765736873313518831390349547274517050864260054903974054712997529177834428786007341762649083404743713562157667828894017440065599882523458121037421757904691003094608420565550031561905074671735751685371533975894842331113347413787808917193134135744321547478500861021485075363990553639161661734684228250909589741380076008551020384304303171431833670236949934603973673998262066558668396388979463892768199916011368116729432353268535563246463324517035331079693172060671712718486388759443825620676228470068291448236914050793177812037679384168230936499518837.0)
-      (num-test (+ 20637030084881771176788188367974505419050866216433677435050410899110162793040751338330447574748263391136356400036001988938659722098883893353523409458775455519257672423829361150611806294256710309281788819450225670112435352092313483086404714074567539245791066202051788986426960935796927738180831688497683293306590464598379493141645539253898709000874685535467854788184424886911457134522632486730390913239660179785071885982403741669161655812015114272497907946919026898579927936299607156006210124954460880383605958519412435713868501997649784658832599101777001703519408664662715322044086646014163774269660274683400619225321.0 11620128128044940816.0) 20637030084881771176788188367974505419050866216433677435050410899110162793040751338330447574748263391136356400036001988938659722098883893353523409458775455519257672423829361150611806294256710309281788819450225670112435352092313483086404714074567539245791066202051788986426960935796927738180831688497683293306590464598379493141645539253898709000874685535467854788184424886911457134522632486730390913239660179785071885982403741669161655812015114272497907946919026898579927936299607156006210124954460880383605958519412435713868501997649784658832599101777001703519408664662715322044086646014163774269671894811528664166137.0)
-      (num-test (+ -9838804688358141062268493389453191808060717708062736103828856866310283812230958467655270667206937622979717683919584610288962829724022506216738929136418489468786902364550847498615864720240589837282441807174290461916292258263929411081218952357662703079709351365960916688275651864441386750529258343003652300629003597744958152243494244227986280506395347894285277364095898602965258114321853474000520432831298793365139040664543928707100657375292032051256485942532600998813627925626928634068613637417702688610315924917761411247617905738119218110678854564441914784262998574445847209847985439514580300936248281049628734475702.0 2380166482232871816.0) -9838804688358141062268493389453191808060717708062736103828856866310283812230958467655270667206937622979717683919584610288962829724022506216738929136418489468786902364550847498615864720240589837282441807174290461916292258263929411081218952357662703079709351365960916688275651864441386750529258343003652300629003597744958152243494244227986280506395347894285277364095898602965258114321853474000520432831298793365139040664543928707100657375292032051256485942532600998813627925626928634068613637417702688610315924917761411247617905738119218110678854564441914784262998574445847209847985439514580300936245900883146501603886.0)
-      (num-test (+ -30961575335426221869515496362216292453766907587859856766456625722888557357647164641922707199324601608700561081422636642523431947551124957385652791834855425829101761914145137205962610515642614866296480715893528289170482422505734612327038754622917335073993027434927547277037587173529054849390646376806910407207016292483185533697336599641898250465186168797820802225861771331652801064811222606773495565340386327294310913503461903243119204619412324538886439122443769008953829820425376589389335553937319588224864611583436327810214798652896733118881040503785110481197462772022447173744898802421806800203373153221004361953729.0 -10586442965055062759.0) -30961575335426221869515496362216292453766907587859856766456625722888557357647164641922707199324601608700561081422636642523431947551124957385652791834855425829101761914145137205962610515642614866296480715893528289170482422505734612327038754622917335073993027434927547277037587173529054849390646376806910407207016292483185533697336599641898250465186168797820802225861771331652801064811222606773495565340386327294310913503461903243119204619412324538886439122443769008953829820425376589389335553937319588224864611583436327810214798652896733118881040503785110481197462772022447173744898802421806800203383739663969417016488.0)
-      (num-test (+ 8835746018617511846981408800319983340292665114153404569022025834059427359831684523399830234196625160662387716033871154398104436720494608541518837969397374272734698261557358249258503982414578618525420572597611597792132117034895074841909295420434392963714805547538976612884853497014341345150095544449860198192757839489063747595073430612069212219930749783824683135433987509303139260133564905961552149844964215891730262218278214035649706577154652729844092199333026620127958228847111442161350881527928460177763370427262298116900358910460957772350452949782281117704005514462730290063772968929608448642592954601418753021512.0 -12227722924075527556.0) 8835746018617511846981408800319983340292665114153404569022025834059427359831684523399830234196625160662387716033871154398104436720494608541518837969397374272734698261557358249258503982414578618525420572597611597792132117034895074841909295420434392963714805547538976612884853497014341345150095544449860198192757839489063747595073430612069212219930749783824683135433987509303139260133564905961552149844964215891730262218278214035649706577154652729844092199333026620127958228847111442161350881527928460177763370427262298116900358910460957772350452949782281117704005514462730290063772968929608448642580726878494677493956.0)
-      (num-test (+ -5455184800550144006991157215735481579353213544152145628297990102571936052187486515129266239245491863623978659179559754999567936067584384479787934704340911556625153536160778495579370425428019248950494107696016864499055854257192071541354806671987402367524770228296322497224645429524493838356022616251290117624472061673033274133156467148770562815676767117605001434288573911556053311048284534341905722947046607192815465807736361991479044698448267471087552952494477144251510778491315012457514838113324210534577956298926109164909779987221094000880908857594198276812276890284008572664102792405452379662935026125770444036994.0 -7349798942312432150.0) -5455184800550144006991157215735481579353213544152145628297990102571936052187486515129266239245491863623978659179559754999567936067584384479787934704340911556625153536160778495579370425428019248950494107696016864499055854257192071541354806671987402367524770228296322497224645429524493838356022616251290117624472061673033274133156467148770562815676767117605001434288573911556053311048284534341905722947046607192815465807736361991479044698448267471087552952494477144251510778491315012457514838113324210534577956298926109164909779987221094000880908857594198276812276890284008572664102792405452379662942375924712756469144.0)
-      (num-test (+ 27233955893140063612427006607965940109569052437681267421929959186535416115028420267622879017163568256526042146282241931623674996867133390355390677118211537487769195270234259640386625552763891339073878417517169618832945750393661600092643257470064376916337734385887099957095417541169462231630821139075814859604097878094729685589777579267192538715202397220666651307185763054526407234767132218634060693076054116575833737797189157152326979078121760900891899319809724675232853322526718686306470372869701173824664984405178677187081936624687293494821338781534163633206006387449585716391843039459733925494003066841874935048611.0 -66646390577667468207341453008390168215.0) 27233955893140063612427006607965940109569052437681267421929959186535416115028420267622879017163568256526042146282241931623674996867133390355390677118211537487769195270234259640386625552763891339073878417517169618832945750393661600092643257470064376916337734385887099957095417541169462231630821139075814859604097878094729685589777579267192538715202397220666651307185763054526407234767132218634060693076054116575833737797189157152326979078121760900891899319809724675232853322526718686306470372869701173824664984405178677187081936624687293494821338781534163633206006387449585716391776393069156258025795725388866544880396.0)
-      (num-test (+ 15030400024888781078933103028897733817304421960545019199443871381537070197157227994520524631721701055962609956080413517776229513420814407790533237358129529547793422514837651333555776540939235592155512951229106778709351772195248438493792786143040421233061520515971787881798980515709417481015662862327435825812557205663033601853937647320838585333754027488605638576977560072206293290493215523194883494322543800546276353830683084405428005815296131527861252717516620765986589669237487765523936713749717927502645633123584240464131140829496052170285171610845098023517906586134613874506419828208611247177336492131262918439281.0 -164048419232636429449474429717211197442.0) 15030400024888781078933103028897733817304421960545019199443871381537070197157227994520524631721701055962609956080413517776229513420814407790533237358129529547793422514837651333555776540939235592155512951229106778709351772195248438493792786143040421233061520515971787881798980515709417481015662862327435825812557205663033601853937647320838585333754027488605638576977560072206293290493215523194883494322543800546276353830683084405428005815296131527861252717516620765986589669237487765523936713749717927502645633123584240464131140829496052170285171610845098023517906586134613874506255779789378610747887017701545707241839.0)
-      (num-test (+ -10227062646189307616073129048534031298512434237226774743330733206156788005874968173984804649812506029813402205606562016228122184161577517837608957023376079537037472977098465137152327215807765130656192272994478964341604278041664840636982572214751638093860605132350960802560601354006634296348422600320863531059118477125143903734159707623839282511184908969206873548650544269932394344952983661665472663102992782521888857016369837211403335306200813816060883478434441858442549261115972947741929087886423170398410216855322384956160289855500229952405068604320121652911887067414460828300146993858360430784079225137421074839819.0 117460076430162201914796277915447781936.0) -10227062646189307616073129048534031298512434237226774743330733206156788005874968173984804649812506029813402205606562016228122184161577517837608957023376079537037472977098465137152327215807765130656192272994478964341604278041664840636982572214751638093860605132350960802560601354006634296348422600320863531059118477125143903734159707623839282511184908969206873548650544269932394344952983661665472663102992782521888857016369837211403335306200813816060883478434441858442549261115972947741929087886423170398410216855322384956160289855500229952405068604320121652911887067414460828300029533781930268582164428859505627057883.0)
-      (num-test (+ 27989453264793973121573869640708223239762902243991948581280654553806618470632044367386680716040316895884976837122054709584963028986161694425215067648887944710852278135008221491665079705797192389681328802747226171436158375378499411314855257919224316919346771317457123252623293612958336691335423245293660257386649100685560072354549579281852792682734916555498283053758141666658137856828164206947320523255487437004565021167276952652515632644458005291855624829941937578229983628962137595011570216766689546500517528191189928660433013004254032861383790553611840534023221000900694995707453499030166286828319347894538505334235.0 -59175168207571178843658955348404514921.0) 27989453264793973121573869640708223239762902243991948581280654553806618470632044367386680716040316895884976837122054709584963028986161694425215067648887944710852278135008221491665079705797192389681328802747226171436158375378499411314855257919224316919346771317457123252623293612958336691335423245293660257386649100685560072354549579281852792682734916555498283053758141666658137856828164206947320523255487437004565021167276952652515632644458005291855624829941937578229983628962137595011570216766689546500517528191189928660433013004254032861383790553611840534023221000900694995707394323861958715649475688939190100819314.0)
-      (num-test (+ 1178650930337394440162727078866515771626896502845852711186000991913866844090831426017480263676964607121490209778220339316756171449922437605552456088105443130477974682689512446683178356259305893852096425478878588001446154476458310269704392486398646169362313605456233489086567865316333034897433650974160168545492823208575634152241341906068149887959566983066154182855136114289266802474404127414747112706158621650063987662749553991791509795764642256261917497984177610694405881831052199417235241109412927893781778469398975117797578753730248539151297798807326284978255001046995523851829184120171969918537718488250577987049.0 -151873924489040812813761508259707631973.0) 1178650930337394440162727078866515771626896502845852711186000991913866844090831426017480263676964607121490209778220339316756171449922437605552456088105443130477974682689512446683178356259305893852096425478878588001446154476458310269704392486398646169362313605456233489086567865316333034897433650974160168545492823208575634152241341906068149887959566983066154182855136114289266802474404127414747112706158621650063987662749553991791509795764642256261917497984177610694405881831052199417235241109412927893781778469398975117797578753730248539151297798807326284978255001046995523851677310195682929105723956979990870355076.0)
-      (num-test (+ 28233332719950979786871881804755080223325040620170668729385709165879717973040387558150293205758215739710262749733170837042434162049732587908182282319848154049410849721309988807368466228286699721201975848741931128639324322061892706638973259354962358866000024260698793885547287093369940035337370984725857550291339492871017395328145015077506882578124550084937438336881072124376107623716831044079223921566902242543198986921476998895559488862309653154914291349588095330683589871173449191854284433182368052817373384461363574550061788800329400860372148193491004593903732351395815409821222597665222975816418433744748143385431.0 -43245950360315656184924888243641533635.0) 28233332719950979786871881804755080223325040620170668729385709165879717973040387558150293205758215739710262749733170837042434162049732587908182282319848154049410849721309988807368466228286699721201975848741931128639324322061892706638973259354962358866000024260698793885547287093369940035337370984725857550291339492871017395328145015077506882578124550084937438336881072124376107623716831044079223921566902242543198986921476998895559488862309653154914291349588095330683589871173449191854284433182368052817373384461363574550061788800329400860372148193491004593903732351395815409821179351714862660160233508856504501851796.0)
-      (num-test (+ 17311283930487575047109155431670372891723312431004343097275158353815289445461275098157423001160013464866170709729134076291306322952612660169010483426086431377525432637844274608988581691477819008626983761905899834444008235608280930166913911248710072733217113558125600345343437000427963292980921009445490627620344145866648036116660335905940809860199697939729919140888034303887423527841395304960072549430314367914315102150378504502158659627719016733307736583749830415574905929299482373462584995162798576853564481617711234957058703455021082855018642616999836886763535412642684228990890160568207941504887072856663966242787.0 1954009743321912552050341299974626734964446274711484506734354360114801426013796892421541915293157994203607853436799102383078659985249097057923578528366737.0) 17311283930487575047109155431670372891723312431004343097275158353815289445461275098157423001160013464866170709729134076291306322952612660169010483426086431377525432637844274608988581691477819008626983761905899834444008235608280930166913911248710072733217113558125600345343437000427963292980921009445490627620344145866648036116660335905940809860199697939729919140888034303887423527841395304960072549430314367914315102150378504502158659627719016733307736583749830417528915672621394925512926295137425311818010756329195741691413063569822508868815535038541752179921529616250537665789992543646867926753984130780242494609524.0)
-      (num-test (+ 1135960177108146621604027872788612991247811085764456406834564014092038611848908717507207251239454266163702244932570537009884467598603226302482406831131219148530146321028801515381981782506355042255201016953375149829517466449677312249611502599434850555618739830488706171667035140895674806873502543300909514568759918040129665855731078258004983486524477103833885001539135541445685573269814159175744401893663504523858005835387122082112362666991112899837534230326730196110477118156871579503345757821268248575583821695674912517830056856597644827244194658166928026249459511837772775196175188368236573504643083995409774002567.0 -5513982495816270388232134254127393284677692173792609278582774509636977743203029647121158805174638642867428501907786521939155900331399058909602425073976766.0) 1135960177108146621604027872788612991247811085764456406834564014092038611848908717507207251239454266163702244932570537009884467598603226302482406831131219148530146321028801515381981782506355042255201016953375149829517466449677312249611502599434850555618739830488706171667035140895674806873502543300909514568759918040129665855731078258004983486524477103833885001539135541445685573269814159175744401893663504523858005835387122082112362666991112899837534230326730190596494622340601191271211503693874963897891647903065633935055547219619901624214547537008122851610816644409270867409653249212336242105584174392984700025801.0)
-      (num-test (+ -30369736932762868789456108597366835061749107555998091727589163626331595118680326568212941898571309672187038272915036839449380083450246957904300051802617002374912724325419651633014408152565340519439718081357147324136023867003917288524338643759680061563616479323818330115572573568245719292922176485298767387601922362893307843067637295955606642841006993776777666041277965868780958830666697755738164183356399977211227424725670822944234275611849032230010745799964550976844117943559190671369193871330514473741920389633762695829790016565565261170688485790141638094160105909405353382982945608773290740598479367828342651860878.0 3451570547959142767282758882796967240086418127970526029661337442068316209707489088420708984628065070358319478649952710478991064476168799556496237099109563.0) -30369736932762868789456108597366835061749107555998091727589163626331595118680326568212941898571309672187038272915036839449380083450246957904300051802617002374912724325419651633014408152565340519439718081357147324136023867003917288524338643759680061563616479323818330115572573568245719292922176485298767387601922362893307843067637295955606642841006993776777666041277965868780958830666697755738164183356399977211227424725670822944234275611849032230010745799964550973392547395600047904086434988533547233655502261663236666168452574497249051463199397369432653466095035551085874733030235129782226264429679811332105552751315.0)
-      (num-test (+ 24749014370880469345815230363662696846133977441600857690896762642529872426102613384561609594131771018575590861342023688138502403609639138062665279129058939911797019091643704220495944170754490238422880589600838613701783818105188827633578438439212856537589855796204839275633245851474930725845096235668385012500773524750522781174430369067441632028068262240870795850561389232369373523415592833273932285308223863420210049445377497367753786125779044716949754454461623397410528064697616617917065021866397277409044449982605591256067763430930720398889239414812509701319783809830072841056369381573100589260104551934136733317845.0 -9461623592584966196513107657889418526847060851423069480904645009418813160370721071067349946095573698635859409908288864150475056170059858850823883834932131.0) 24749014370880469345815230363662696846133977441600857690896762642529872426102613384561609594131771018575590861342023688138502403609639138062665279129058939911797019091643704220495944170754490238422880589600838613701783818105188827633578438439212856537589855796204839275633245851474930725845096235668385012500773524750522781174430369067441632028068262240870795850561389232369373523415592833273932285308223863420210049445377497367753786125779044716949754454461623387948904472112650421403957363976978750561983598559536110351422754012117560028168168347462563605746085173970662932767505231098044419200245701110252898385714.0)
-      (num-test (+ 19070246171469235561279483225919489206942407814032615339351735800304747459507922411906751965555240682457214768298108831815622470433175555196912899313888991765436434867025639919521068437191248198117664398275835972573354886915721765715992151871453808224011999677700078879590132676060988550961950472536029228350169237717222998397029428440792110955380302156159849645211726041489206565536560827557279129751110297078563108009278363910936720061216511798518178957070787710331228500533067546198458251241005176280410230146430275074766072259256583499095689284871987010372039977403712023630453400259082684930755893684499232318008.0 12330599952818018622104330691506128012101935028731995985677032980931398338453806827555760801312052792065671886621851470997557806941112316627790755867100463.0) 19070246171469235561279483225919489206942407814032615339351735800304747459507922411906751965555240682457214768298108831815622470433175555196912899313888991765436434867025639919521068437191248198117664398275835972573354886915721765715992151871453808224011999677700078879590132676060988550961950472536029228350169237717222998397029428440792110955380302156159849645211726041489206565536560827557279129751110297078563108009278363910936720061216511798518178957070787722661828453351086168302788942747133188382345258878426260751799053190654921952902516840632788322424832043075598645481924397816889626043072521475255099418471.0)
-      (num-test (+ -20895998178036569919774658790651496115060841511658297683195804524712012347695091074325978179977718571444320688167469052862702339462089668992243209990795362064005869602003990235714500149401994013174762139297327430396441552225926368085284222509085197484452650071390132794942944512235132641643003294762547138305644086106533258432786768644384855008506026923783604514268955071498269812887794817192371944269611642901807443894686178438687102834127061425955994253034824027771176714559050403098437684091684851207513969915720607528045624635094984539637789113651579846373399975502788877555747414523231999341294756679330384323996.0 764238600803843266244444637050072967342049538611688895792923539838804953492110953673720766879606601435939162680753428779068917662740403667549850724878795.0) -20895998178036569919774658790651496115060841511658297683195804524712012347695091074325978179977718571444320688167469052862702339462089668992243209990795362064005869602003990235714500149401994013174762139297327430396441552225926368085284222509085197484452650071390132794942944512235132641643003294762547138305644086106533258432786768644384855008506026923783604514268955071498269812887794817192371944269611642901807443894686178438687102834127061425955994253034824027006938113755207136853993047041611883865464431304031711735122084796290031047526835439930812966766798539563626196802318635454314336600891089129479659445201.0)
-      (num-test (+ 6243894672855694190803081952962387322599009058758027960092936187687064819462191583137945440936085088260632250436567758576422207449236613172605950116622271404444221039084346501796818945639456207912207604248991842124079786471250102192718092353598850889806607728696519257402580732995770031331187089424192803722612735557735028710899438934171272639518928194764526910590046378401600819132587804143949995694950116915803127294011661411525934100144319021440919928013617766507409909846670172516021888661284467975865076091834094160862228180625536450124272957206172214541444266874056050295270719541605687740822711659847211976891.0 11877496607682442993105675644902145742318375725225741293060927105303783712520284640625374957608051032540491531573337817824773543104969422017506696018037874641947740606655370938613842356322585858034851150595788166740174872996252792014218946552442572806242471174234462119454014379628228878122072189387777413014452140618318641689597452676091677588204537830401725113931418426919671512011822864583481449136550835952005765386885680701637038206002172218712504732572449659704181315669255320876647592649071711438131711904976335957846353867776093588236311654631696625859173554395714740218099921290128795607292259527492722462071.0) 18121391280538137183908757597864533064917384783983769253153863292990848531982476223763320398544136120801123782009905576401195750554206035190112646134660146046391961645739717440410661301962042065947058754844780008864254659467502894206937038906041423696049078902930981376856595112623998909453259278811970216737064876176053670400496891610262950227723466025166252024521464805321272331144410668727431444831500952867808892680897342113162972306146491240153424660586067426211591225515925493392669481310356179413996787996810430118708582048401630038360584611837868840400617821269770790513370640831734483348114971187339934438962.0)
-      (num-test (+ -24023960171862805266003610953999097357395283354964456554686635290239019705581779621120391229617494503580661676939681517550103414632840981987397485411400553792707518662609532504246677658012933762605038799352109564432278094548068984563394926376371580465135388578139331334464060067790936072127680597181415407099723844313625277987147283697141407959289588588489162704824409673099509423520008795428217612706997355591985894255450783091681112776112997887084157623388943538145736618168104404283342039105202585543852590302154958791010622670839015475427693311663800177428904406869645066988663292128104453773413982185343111560886.0 -31939808827732134714870375774276102357277346245583282398423150631754622253109692213928642228787888509211781331649081002266227303203259124984426497846441848502574293640959494009564992092503141598640200823656998243767453860939156780549404892392521391484933772285520949470194562525777116137058001008184603332597820522016200623301007194309404025522056113671560767212894303567191067178003014955596425115379852712737129325098876542459702682095445350281859042779889411325882123213577906096942649941285655935053362468972482748617111598313960198743596285343178242282172686940700127068972627110105953098737923773182254460772630.0) -55963768999594939980873986728275199714672629600547738953109785921993641958691471835049033458405383012792443008588762519816330717836100106971823983257842402295281812303569026513811669750516075361245239623009107808199731955487225765112799818768892971950069160863660280804658622593568052209185681605366018739697544366329825901288154478006545433481345702260049929917718713240290576601523023751024642728086850068329115219354327325551383794871558348168943200403278354864027859831746010501225991980390858520597215059274637707408122220984799214219023978654842042459601591347569772135961290402234057552511337755367597572333516.0)
-      (num-test (+ 14513652183174940741664411990199277445706189147726874603036586212536012746892966848269748909379750612027025331446918381470766609543142456872580466135425754204680927122749772612276850998180593344389487924747722210296498854143380696064338777945015153982467675141485724865534995199700908286263993697988986805404864429385840512740226775506122190698806967785494289035976495492863456705096841250592980439363856397663738211335801835896091823148249303370609165910779981271035234045185574995335952208702661648744928539539455138167482396767268362221492607154709559716065850417221174683768503217544145599044845325824451589309835.0 -12814535978730024053359592817368712576084646962861720729844389627130663192435154658607204342320327460695280260731620465435530495952836598646143907272825807563512741964987882356778796849529260646503692618525570185450780889283642116889481314560395290434301143877809550098309214046129802023655714098730144464028249594406616074059558969757405392170810220921023905546104487938441503430332099605473144930508420331873995741851604525954472341693863067199617721032815462094767522339305487934030130207039176659398466616780628644572276059410087128533031562978399689702766028716401176531098447698206272762966470643604141938670152.0) 1699116204444916688304819172830564869621542184865153873192196585405349554457812189662544567059423151331745070715297916035236113590305858226436558862599946641168185157761890255498054148651332697885795306222152024845717964859738579174857463384619863548166531263676174767225781153571106262608279599258842341376614834979224438680667805748716798527996746864470383489872007554421953274764741645119835508855436065789742469484197309941619481454386236170991444877964519176267711705880087061305822001663484989346461922758826493595206337357181233688461044176309870013299821700819998152670055519337872836078374682220309650639683.0)
-      (num-test (+ 11356479761814008572465147431830778885327227506593483181241437802252618729479905490826767363633131720717461693888023278837835457496021519184903984385091047829540007466025527592005114414671285638168997562037691602144751434208304408870143450743278437854754504713023422097017723330207792526222436928747286558205279330508360438281011315147578105966454344087225699378388309094140949428028313539634103047841948634832398526343605363013644180832752120081735152285507591096001749463421326282317713079361827765412853023201330345752038722069405404812511739634687282327711258974520622248165974215116400638833123609666501349513623.0 -2451734542868054449539778460457497703609327132304922810342762480808881050209276687756391911546806187586640918078231508181876445466503459873508196878629364924241891220686182517218825181707207808769770392864734466652524094735160185556148554260517746279303022469784592528209667497664672945900929888144529727881050106027775707933311860110618130543481573815538047460723253898548348335762406437618625388229555824532715231231491787570056329865617082709588903922431713098922691537317839185452018617461891748518176708607861270770493263960554805373552348256747200291438630960804647686832667981625018361034564086859426490014044.0) 8904745218945954122925368971373281181717900374288560370898675321443737679270628803070375452086325533130820775809791770655959012029518059311395787506461682905298116245339345074786289232964077829399227169172957135492227339473144223313994896482760691575451482243238829568808055832543119580321507040602756830324229224480584730347699455036959975422972770271687651917665055195592601092265907102015477659612392810299683295112113575443587850967135037372146248363075877997079057926103487096865694461899936016894676314593469074981545458108850599438959391377940082036272628013715974561333306233491382277798559522807074859499579.0)
-      (num-test (+ -1814184401790217165873937825605141478060935014868566665644215718762341535891730598045990231798382966074312671040257824056876679135909008140059087311700216658095793352051583071432744886316274989901835606602224927350560604355249919901932382803472476702792978322468747380191775778902733911968522382089332819162367884984027854067607561808704316828316820133400099093450636968732151876570835173932998599031643640476109466728761033062776578175554441947411139184426213290292577467587355369954997241091769769542810051228504545831588488726789173405585678190671534386784806998695797717346491308862362775748058331375692317599945.0 15466182953987394334491149436346080039471412309427279110582769586053943302670765125931570041904640518032832554998553018838321871748542118021556398569294085708441934948186080236498081517178574839977996802813431873543309853609838200338534343580791382510179184571852290959723696010410340740895530535423959476873857191548113125728667781953125153120447892632916574768078583174099545013854248664119997703948998871566374080719541931440495888606776561795893839624084254684939434035018741535261951124673664746010067859317726891535170781460914710499572006592206360512398012457295755926986236618644330364227754380084585899275327.0) 13651998552197177168617211610740938561410477294558712444938553867291601766779034527885579810106257551958519883958295194781445192612633109881497311257593869050346141596134497165065336630862299850076161196211206946192749249254588280436601960777318905807386206249383543579531920231507606828927008153334626657711489306564085271661060220144420836292131072499516475674627946205367393137283413490186999104917355231090264613990780898377719310431222119848482700439658041394646856567431386165306953883581894976467257808089222345703582292734125537093986328401534826125613205458599958209639745309781967588479696048708893581675382.0)
-      (num-test (+ -27127130599753372624001250456405972983012981437652156246797208697430661165612459362971759027335854588888552031022264244768883843080959804690580574272908031271224646245152017114094021048441971097191444782106551075175878815012595015584723250801765859461211934306789890718268168352614164589637346918581658850565274510502652089457352942736418509881708568727739912127781455473660768550022762222130489047215089836402367851853412705556570667960548570630054608024914653686223423908494006675057953013815512203710764854485332282975729323105427143207127239069826750682633272289409910001698385240596625059970587393681128674617278.0 5719655139276246085992066702308194672442413085748146924567717361937179810269300239821879673460959112727066470468217892213025828988023367028158410455624528688729907493639908638553730770145274142147983721694721139760883483821883267129411125364089207412089113869427479340283853501026803387874124668123626271531796990801822527792189514551888019206405597994403243358155410088320317141454525417323186389587327532772638942220300149829241141659063128602316305332848477566686425551944956989370838072872906293845914921103561360871571846865478762953536949621421094416539099628942010528483544062050170673327754206501716239719529.0) -21407475460477126538009183754097778310570568351904009322229491335493481355343159123149879353874895476161485560554046352555858014092936437662422163817283502582494738751512108475540290278296696955043461060411829935414995331190711748455312125437676652049122820437362411377984314851587361201763222250458032579033477519700829561665163428184530490675302970733336668769626045385340451408568236804807302657627762303629728909633112555727329526301485442027738302692066176119536998356549049685687114940942605909864849933381770922104157476239948380253590289448405656266094172660467899473214841178546454386642833187179412434897749.0)
-      ))
+(when with-bignums
+  (num-test (+ 0.999999995 8388608) 8388608.999999995)
+  (num-test (+ (+ 1.0e-30 1.0e30) -1.0e30) (+ 1.0e-30 (+ 1.0e30 -1.0e30)))
+  (num-test (+ 11111111111111113.0 (+ -11111111111111111.0 7.5111111111111)) (+ (+ 11111111111111113.0 -11111111111111111.0) 7.5111111111111))
+  (num-test (+ -1000000000 -1000000000 -1000000000) -3000000000)
+  (num-test (+ -8589934591 -4611686018427387904) -4611686027017322495)
+  (num-test (+ -8589934591 4611686018427387904) 4611686009837453313)
+  (num-test (+ -9223372036854775807 -1) -9223372036854775808)
+  (num-test (+ -9223372036854775807 1) -9223372036854775806)
+  (num-test (+ -9223372036854775808 -9223372036854775808) -18446744073709551616)
+  (num-test (+ 1 1/2 0+9223372036854775808.0i 0-i) 1.5+9.223372036854775807E18i)
+  (num-test (+ 1 1/2 9223372036854775808.0 0+i) 9.2233720368547758095E18+1.0i)
+  (num-test (+ 1 1/2 9223372036854775808.0 0-i) 9.2233720368547758095E18-1.0i)
+  (num-test (+ 1 1/2 9223372036854775808.0) 9.2233720368547758095E18)
+  (num-test (+ 1.0 12345678901234567890) 1.2345678901234567891E19)
+  (num-test (+ 1.0e80+i 1.0e80+i) 2.0e80+2.0i)
+  (num-test (+ 1.0e80+i 1.0e80-i) 2.0e80)
+  (num-test (+ 1.5 9223372036854775808.0) 9.2233720368547758095E18)
+  (num-test (+ 1/1231234567891234567891 1/4) 1231234567891234567895/4924938271564938271564)
+  (num-test (+ 1/2147483648 1/2147483647) 4294967295/4611686016279904256)
+  (num-test (+ 1/3 (* 13835058055282163710 2/3)) 9223372036854775807) ; would be nice if this worked...
+  (num-test (+ 1/65537 -1/65536) -1/4295032832)
+  (num-test (+ 1/65537 -1/65538) 1/4295163906)
+  (num-test (+ 1/65537 1/65536) 131073/4295032832)
+  (num-test (+ 1/65537 1/65538) 131075/4295163906)
+  (num-test (+ 1/9223372036854775807 1/9223372036854775806) 18446744073709551613/85070591730234615838173535747377725442)
+  (num-test (+ 1/98947 2/97499 3/76847 4/61981 5/59981 6/66601) 56471455498794722585779775/183561983334767209753061626751) 
+  (num-test (+ 1/98947 2/97499 3/76847 4/61981 5/59981) 599609438061905323469/2756144552405627689570151)
+  (num-test (+ 10 9223372036854775800) 9223372036854775810)
+  (num-test (+ 1000000000 1000000000 1000000000) 3000000000)
+  (num-test (+ 1073741825 1073741825) 2147483650)
+  (num-test (+ 1099511627775 9223372036854775807) 9223373136366403582)
+  (num-test (+ 1180591620717411303424+i 1+1180591620717411303424i) 1.180591620717411303425E21+1.180591620717411303425E21i)
+  (num-test (+ 1180591620717411303424.0+i 1+1180591620717411303424.0i) 1.180591620717411303425E21+1.180591620717411303425E21i)
+  (num-test (+ 12345678901234567890+12345678901234567890i 12345678901234567890-12345678901234567890i) 2.469135780246913578E19)
+  (num-test (+ 132120577/12 33292289/6 260046847/4) 244711424/3)
+  (num-test (+ 18446744082299486212 1) 18446744082299486213)
+  (num-test (+ 1e400 1e399) 1.1e400)
+  (num-test (+ 2147483647 1) 2147483648)
+  (num-test (+ 2147483647 2) 2147483649)
+  (num-test (+ 2147483647 4611686018427387904) 4611686020574871551)
+  (num-test (+ 2147483648 -1) 2147483647)
+  (num-test (+ 2147483648 -2) 2147483646)
+  (num-test (+ 2147483648 1) 2147483649)
+  (num-test (+ 2147483648 4611686018427387904) 4611686020574871552)
+  (num-test (+ 2147483648) 2147483648)
+  (num-test (+ 2147483649 -1) 2147483648)
+  (num-test (+ 2147483649 -4611686018427387904 -2147483649 4611686018427387904) 0)
+  (num-test (+ 2147483649 4611686018427387904 2147483649 4611686018427387904) 9223372041149743106)
+  (num-test (+ 2147483649 4611686018427387904) 4611686020574871553)
+  (num-test (+ 3 9223372036854775807/4) 9223372036854775819/4) 
+  (num-test (+ 3 9223372036854775808/4) 2305843009213693955)
+  (num-test (+ 3/2 9223372036854775808.0) 9.2233720368547758095E18)
+  (num-test (+ 3/4 9223372036854775807/4) 4611686018427387905/2)
+  (num-test (+ 3/4 9223372036854775808) 36893488147419103235/4)
+  (num-test (+ 4611686018427387904 -1) 4611686018427387903)
+  (num-test (+ 4611686018427387904 -4611686018427387904) 0)
+  (num-test (+ 4611686018427387904 1) 4611686018427387905) ; (expt 2 62) + 1 -- should work in both cases
+  (num-test (+ 4611686018427387904 4611686018427387904) 9223372036854775808)
+  (num-test (+ 4611686018427387904 4611686018427387906) 9223372036854775810)
+  (num-test (+ 500009/500029 500057/500041 500083/500069) 375106759202738205/125034753009582041)
+  (num-test (+ 8589934591 -4611686018427387904) -4611686009837453313)
+  (num-test (+ 8589934591 4611686018427387904) 4611686027017322495)
+  (num-test (+ 8589934592 4611686018427387904) 4611686027017322496)
+  (num-test (+ 9223372036854775800 10) 9223372036854775810)
+  (num-test (+ 9223372036854775807 -1) 9223372036854775806)
+  (num-test (+ 9223372036854775807 1) 9223372036854775808)
+  (num-test (+ 9223372036854775807 2) 9223372036854775809)
+  (num-test (+ 9223372036854775807 9223372036854775807) 18446744073709551614)
+  (num-test (+ 9223372036854775807/4 3) 9223372036854775819/4) 
+  (num-test (+ 9223372036854775807/4 3/4 4611686018427387905/2) 4611686018427387905)
+  (num-test (+ 9223372036854775807/4 3/4) 4611686018427387905/2)
+  (num-test (+ 9223372036854775807/4 4611686018427387905/3) 46116860184273879041/12)
+  (num-test (+ 9223372036854775808 -1) 9223372036854775807)
+  (num-test (+ 9223372036854775808 -2) 9223372036854775806)
+  (num-test (+ 9223372036854775808 1) 9223372036854775809)
+  (num-test (+ 9223372036854775808 3/4) 36893488147419103235/4)
+  (num-test (+ 9223372036854775808.0 3.4) 9.2233720368547758114E18)
+  (num-test (+ 9223372036854775808.0+1.5i 3.4) 9.2233720368547758114E18+1.5i)
+  (num-test (+ 9223372036854775808/4 3) 2305843009213693955)
+  (num-test (+ 9223372036854775808/9223372036854775808) 1)
+  (num-test (+ 9223372036854775809 -1) 9223372036854775808)
+  (num-test (+ 9223372041149743106 -9223372041149743106) 0)
+  (num-test (+ 9223372041149743106 9223372041149743106) 18446744082299486212) 
+  (num-test (+ 98947 2/97499 76847 4/61981 5/59981) 63720106179329487759/362470312515139)
+  
+  (num-test (+ 576460752303423488 576460752303423488 576460752303423488 576460752303423488 
+	       576460752303423488 576460752303423488 576460752303423488 576460752303423488 
+	       576460752303423488 576460752303423488 576460752303423488 576460752303423488 
+	       576460752303423488 576460752303423488 576460752303423488 576460752303423488)
+	    9223372036854775808)
+  (num-test (+ -576460752303423488 -576460752303423488 -576460752303423488 -576460752303423488 
+	       -576460752303423488 -576460752303423488 -576460752303423488 -576460752303423488 
+	       -576460752303423488 -576460752303423488 -576460752303423488 -576460752303423488 
+	       -576460752303423488 -576460752303423488 -576460752303423488 -576460752303423488)
+	    -9223372036854775808) ; this fits in both cases = -(expt 2 63)
+  
+  (num-test (+ 12766/44484 39852/43605 31122/19043 51508/63811 36845/41288 28101/14083 56682/37410 47892/22120 39412/22980 60124/55166 42856/59693) 208780620213964670464533749059169842219977/15202497819117370814835285951563379420520)
+  (num-test (+ 63216/39382 57676/45091 53354/2630 1048/39076 16116/23210 42095/55806 27474/26658 50811/59328) 191349291372060004326881331664759/7211602793633848370218614932160)
+  (num-test (+ 59885/27233 26245/45891 40482/5828 51990/36443 9623/46196) 34799310234648621493801/3065498111736131980788)
+  (num-test (+ 37870/11132 60558/48391 53644/64989 60943/2780 9073/15664 15430/61388 55088/37713) 49618689694342545850764990997/1671112820517946923490092720)
+  (num-test (+ 37890/11488 45896/14037 3589/36071 22835/41473 42331/17823 42800/56681) 420312190408065989902262231/40617147626636993628447504)
+  (num-test (+ 26660/49395 52605/23369 30235/15203 37926/38348 54028/49472 32407/12923 20689/1984 27919/46263) 69930317632493223450434305725419/3428000885137780298513956804672)
+  (num-test (+ 56351/21775 14958/21250 13859/32508 24968/65124 885/6861 3913/38588 90/55711 12269/37075 6579/33653) 201796703852921650643001395969752/41522567198031666874435508825625)
+  (num-test (+ 8582/48034 27069/11031 29676/5507 56684/32514 25699/47391 44069/2704 18193/3289) 5684819414248430672302049/176897854654356635413328)
+  (num-test (+ 421240/871225 1021193/39462 252094/592111 2478/11660) 32043461749854904862/1186809749708031735)
+  (num-test (+ 149278/597089 747410/315908 218673/956214 174632/245649 45750/515909) 165277142441527691870266634/45353662154623612097256297)
+  (num-test (+ 361087/1038423 629417/722796 693707/392139 237025/961767 88560/187279) 2426130069686588061565863289/654491499930590555724694236)
+  (num-test (+ 94466/1038229 807503/592385 802950/953585 954630/176875) 6384533383241957925411/829875721759976907875)
+  (num-test (+ 913461/774815 817965/788155 237677/532117 542827/225728 343160/431483) 2183257313717880748058258989/372346251755101707126455360)
+  (num-test (+ 888429/600657 680124/108845 265059/727366 395224/748135) 20445657641208104518701/2371792747070499020510)
+  (num-test (+ 37622/1698 9183/57409 12127/36899 11451/26597 64339/35514) 14092685195493114237067/566256574856769105474)
+  (num-test (+ 24122/8583 41997/57541 42760/57555 40699/12923 30325/37640) 1518749441232333398909/184353450944764326984)
+  (num-test (+ 16104/12728 32020/64625 35345/37481 29241/50823 13216/61075 11245/2022) 751811438787510154499/83010789184720173150)
+  (num-test (+ 4312/48465 44171/56694 8599/3231 46048/62568 2132/45901 24407/26161) 455702434782048082459/86885567283849955830)
+  (num-test (+ 59496/7030 37058/2679 2158/41193 48873/59329 52768/30853 34749/39139) 339576145632874325598832/13177075606485410552535)
+  (num-test (+ 131/58542 41136/2572 43951/20070 63439/14560 33259/63731 10981/51495 49078/63698 10727/32805 29362/30842) 51962727546984124809096307414129847/2051626916225689647807786049306080)
+  (num-test (+ 16640/40785 56062/38132 43843/29406 5867/50944 19248/58540) 1083456041462784832133/284138789764221200640)
+  (num-test (+ 34314/54910 54195/13905 32762/15225 20808/42764 20977/59771 26320/20306 53116/23035 30385/31200 57396/3367 58378/6806 5724/29599) 39875514688522166158239445824103603/1051980164901898842922034228906400)
+  (num-test (+ 40391/35273 27957/29448 52381/18500 60009/3366 27528/2124 62426/65445 43110/25891 40183/26944 30274/1504 27638/40611) 15253761502587455936752727098716743/251570544261187774378167518568000)
+  (num-test (+ 52269/62857 21518/38958 29849/9192 27730/2604 20427/36068) 116322789710447328047/7340588373519969288)
+  (num-test (+ 17009115185923538769 -12047631083067675031) 4961484102855863738)
+  (num-test (+ 12677011568664239747 3269056182420253574) 15946067751084493321)
+  (num-test (+ 9315504781982082433 13857624532376678678) 23173129314358761111)
+  (num-test (+ 15226508728194069537 11481952022080775416) 26708460750274844953)
+  (num-test (+ 7461641943684774743 12249026721402718630) 19710668665087493373)
+  (num-test (+ 1180469445886971055 -3208456171287181032) -2027986725400209977)
+  (num-test (+ 18358552990465743315 221529797579218180385160273426219343697) 221529797579218180403518826416685087012)
+  (num-test (+ -14819874956616484359 30498815629431206969122152847973230849) 30498815629431206954302277891356746490)
+  (num-test (+ -11781881800334342169 112219460388643619332860331282276228017) 112219460388643619321078449481941885848)
+  (num-test (+ 3570694277032201957 284821691832196381859344006870088122712) 284821691832196381862914701147120324669)
+  (num-test (+ -17005463295060938595 69162171850264911722979835561124066203) 69162171850264911705974372266063127608)
+  (num-test (+ 15647113311796203488 150750467185419235519670165664526735459) 150750467185419235535317278976322938947)
+  (num-test (+ -14330150541101371097 -13054027994001826312503071338715966858478218093171762021549815587520723118772963817341751396703629529810372702877555022105594068768886421335353882155416908) -13054027994001826312503071338715966858478218093171762021549815587520723118772963817341751396703629529810372702877555022105594068768886435665504423256788005)
+  (num-test (+ 7406427184711759740 -4059250217961011548005203450962458026528281798230141192186669580689721046971433745892994467792118611646113962840750314719233572760336084100766391093756252) -4059250217961011548005203450962458026528281798230141192186669580689721046971433745892994467792118611646113962840750314719233572760336076694339206381996512)
+  (num-test (+ 8819522415901031498 7274905269237471130619913887005155660991437201841760414347836177003483932007334374478344594178179032728521106519295465031750530183363793325150672647162846) 7274905269237471130619913887005155660991437201841760414347836177003483932007334374478344594178179032728521106519295465031750530183363802144673088548194344)
+  (num-test (+ -7242932332215698200 -10558564312909325527488520195600871241245891651644550509993750377630234801225525279855157008009255586978047154906058790342845859331159009687703010657137320) -10558564312909325527488520195600871241245891651644550509993750377630234801225525279855157008009255586978047154906058790342845859331159016930635342872835520)
+  (num-test (+ 9794320575955609492 13380937715397052566925484435342184213544885758759259410983243841206628594840271850190097746775475837233042430565529099681550277688470325394342993771343357) 13380937715397052566925484435342184213544885758759259410983243841206628594840271850190097746775475837233042430565529099681550277688470335188663569726952849)
+  (num-test (+ -18404048401680891243 6690884608978704096379677348142836785900717005050936986370615083929607190833180925295418079551348559691161519822750772440155040888224482801864925665484770) 6690884608978704096379677348142836785900717005050936986370615083929607190833180925295418079551348559691161519822750772440155040888224464397816523984593527)
+  (num-test (+ -10763220363947284865 -30985722824355332972176356513316569304601382411274079243859710673739383446566598659878378034375348869471278415635671865753349734809209959160389615096293457362383744562507969316522225741589739150453090393424063226271167062127000223628785686999799282795143706407082119829140399988180879618548495395684946331608899565543458192773899200054228140747414544792128323269250618482622488195333106891323515989863192944848391405358725993695671970811097285270641251816244586360288952156538400321933146150313939864593445583603568771077260174826348411367609521412133720180359748539721570562669201065857989876521301209899829037444385) -30985722824355332972176356513316569304601382411274079243859710673739383446566598659878378034375348869471278415635671865753349734809209959160389615096293457362383744562507969316522225741589739150453090393424063226271167062127000223628785686999799282795143706407082119829140399988180879618548495395684946331608899565543458192773899200054228140747414544792128323269250618482622488195333106891323515989863192944848391405358725993695671970811097285270641251816244586360288952156538400321933146150313939864593445583603568771077260174826348411367609521412133720180359748539721570562669201065857989876521311973120192984729250)
+  (num-test (+ -12742462236537568498 8711131313747826394504271797986775572294949693272674156076339989631171694968899228610359983845552623710580616605402899155485071497929100432998183040757832449369366844015907530612334721882095163137705867337969942902346066961718232788529860214990099385213558935023241940238638069647809530490438245386869385682221280939688108487754251075630026707075310465788398213293782900699868609660892232563106662995330591906155134237356516622436517046191466823447743155250482328613449506396571170001248589926831956459700467126756876526930443317428628239358666456771112897986098390410773312792390699312960051747534683311506465130527) 8711131313747826394504271797986775572294949693272674156076339989631171694968899228610359983845552623710580616605402899155485071497929100432998183040757832449369366844015907530612334721882095163137705867337969942902346066961718232788529860214990099385213558935023241940238638069647809530490438245386869385682221280939688108487754251075630026707075310465788398213293782900699868609660892232563106662995330591906155134237356516622436517046191466823447743155250482328613449506396571170001248589926831956459700467126756876526930443317428628239358666456771112897986098390410773312792390699312960051747521940849269927562029)
+  (num-test (+ 9991390529516174614 7879872958436992955898278403297937595295396115022400543178444946646147916754852888072481665174663073269556311758611700754643170639645548596647557683044355930340624784190093631808382820554407595007761070026239341594197877214157118335743842022627898879376346092898666610367809537340994845045475091410516226225078052019727419030585524815982151736622865401299588936172760762386183577504972623377661437665668080131418564228642443266935225613702941906491478788336262289516199380144218708241406077806669686589734333554945412904560108150202389909124657090061223183441083590340175629756198442568877659538345749595968764873879) 7879872958436992955898278403297937595295396115022400543178444946646147916754852888072481665174663073269556311758611700754643170639645548596647557683044355930340624784190093631808382820554407595007761070026239341594197877214157118335743842022627898879376346092898666610367809537340994845045475091410516226225078052019727419030585524815982151736622865401299588936172760762386183577504972623377661437665668080131418564228642443266935225613702941906491478788336262289516199380144218708241406077806669686589734333554945412904560108150202389909124657090061223183441083590340175629756198442568877659538355740986498281048493)
+  (num-test (+ 831234034418847630 -744676478858160349467117341859049692149463503380690495147216354303526704924280287782902146026018180364963325847811379182950159627878800024734206345960410146056000392683000433501805629464626281031086102425271022388473812300724085127447081771317912465921636737545371909901577246384446144919253141375367648958387948463576516115079816552636772639965957498569187848459747361493535081532845254971492261148968198806736512864867151355002902241562014241077734122599581732704243705918200179789271894804233542502502119523149682814025979598424744685548054183678652651244898867735764030968089217841214778606507809487462642341164) -744676478858160349467117341859049692149463503380690495147216354303526704924280287782902146026018180364963325847811379182950159627878800024734206345960410146056000392683000433501805629464626281031086102425271022388473812300724085127447081771317912465921636737545371909901577246384446144919253141375367648958387948463576516115079816552636772639965957498569187848459747361493535081532845254971492261148968198806736512864867151355002902241562014241077734122599581732704243705918200179789271894804233542502502119523149682814025979598424744685548054183678652651244898867735764030968089217841214778606506978253428223493534)
+  (num-test (+ -6996572501442843347 -16567158719848992553565776505785820491834685475229611199353714982570065913508303466008005931649515528390057456882757990896824841386431756898386429000065518724021230756426613661219891419166146764347562529640689229693578574350948436847247856000438153789455857903402883189892697143647998643667467614427922009931545254965075041050860609824086811877108940020349157317276288348430058535959434983921323332907180869396258655826781438419383792024592535415693101119109484610789291889841197827977530804650015884500878613240443324806805475203272442094530735476095374446946252236490708915034012846683015547314889561060687692538144) -16567158719848992553565776505785820491834685475229611199353714982570065913508303466008005931649515528390057456882757990896824841386431756898386429000065518724021230756426613661219891419166146764347562529640689229693578574350948436847247856000438153789455857903402883189892697143647998643667467614427922009931545254965075041050860609824086811877108940020349157317276288348430058535959434983921323332907180869396258655826781438419383792024592535415693101119109484610789291889841197827977530804650015884500878613240443324806805475203272442094530735476095374446946252236490708915034012846683015547314896557633189135381491)
+  (num-test (+ -8920936222630165483 -18738991973681679876688842391791783563249057933653045519186959571392922172943405646958686202208790537612746921398028331540617848217445632123805070077600768524509025758950743971128222843292926773668584735575066246660802064630842300367821042873152766467703905048558085377302000898639290554395913805527529259855535801856020623830262396582180677933562523957295341539162448074423901242873918231922121053192425691524797238343327318801359521456598967984637483081312932069399045363737622797213185099130529375169698811801965974416555301085043300426947769193582129151016159057101028336667142913854943018973494705119572045938607) -18738991973681679876688842391791783563249057933653045519186959571392922172943405646958686202208790537612746921398028331540617848217445632123805070077600768524509025758950743971128222843292926773668584735575066246660802064630842300367821042873152766467703905048558085377302000898639290554395913805527529259855535801856020623830262396582180677933562523957295341539162448074423901242873918231922121053192425691524797238343327318801359521456598967984637483081312932069399045363737622797213185099130529375169698811801965974416555301085043300426947769193582129151016159057101028336667142913854943018973503626055794676104090)
+  (num-test (+ -243510292488206214847646757340020705642 5940577100149745132) -243510292488206214841706180239870960510)
+  (num-test (+ 35446324064743728955945058978206455057 -6248622708755929572) 35446324064743728949696436269450525485)
+  (num-test (+ -285342226760657637664173494795024413673 -11942737781617905307) -285342226760657637676116232576642318980)
+  (num-test (+ 180790435817422032042321866247362452865 12401641959336396832) 180790435817422032054723508206698849697)
+  (num-test (+ -179994871947239535956826388240542999950 13573822506399140772) -179994871947239535943252565734143859178)
+  (num-test (+ -308198027295905163635866438671452347268 -8790069282378476990) -308198027295905163644656507953830824258)
+  (num-test (+ -139324757925833055762410227358605285566 -190622873846936719063564661032771271922) -329947631772769774825974888391376557488)
+  (num-test (+ 332866352618304570046318203427223999347 147978646177673305481282943528696833018) 480844998795977875527601146955920832365)
+  (num-test (+ -39471620476300923970352914034802271156 28992893610776120142668950821916856486) -10478726865524803827683963212885414670)
+  (num-test (+ 274120253734611965146455315763505869288 254675910805265090692978775702306142625) 528796164539877055839434091465812011913)
+  (num-test (+ -122086811464559635596206661886176775901 287312583034687582188356355813963609701) 165225771570127946592149693927786833800)
+  (num-test (+ 288576174771266329955482943556556984728 -57843540651903655425270706396868707777) 230732634119362674530212237159688276951)
+  (num-test (+ -47977736580820486006305788441965482221 984809271313988066640898939725532304075331399066274624928410251834520283291912387208948664716457549646483445981126881113426109906085249657168046936670489) 984809271313988066640898939725532304075331399066274624928410251834520283291912387208948664716457549646483445981126833135689529085599243351379604971188268)
+  (num-test (+ 21225484205143479814642328762121362291 11839789093732539327981861490012713257538550745921177905266671749716203131127256902110452504526721633943016923389974867770082516862899595554460170417713940) 11839789093732539327981861490012713257538550745921177905266671749716203131127256902110452504526721633943016923389974888995566722006379410196788932539076231)
+  (num-test (+ -193095363331703875886398909106293703000 4389392021031719669078675478621418677903292147307684123866099084349756491860737402449105804868232530632178577388168068485304437343508442251302846768269976) 4389392021031719669078675478621418677903292147307684123866099084349756491860737402449105804868232530632178577388167875389941105639632555852393740474566976)
+  (num-test (+ -14827657635864183514988182371035598180 -7256545787852407071411458891023580461638051949278710509801472046178301830006724297747051044450550248499056073213660185258676369175307019300952192657194576) -7256545787852407071411458891023580461638051949278710509801472046178301830006724297747051044450550248499056073213660200086334005039490534289134563692792756)
+  (num-test (+ 54301423175725658626298504084995819705 -13385853291610595576947504757201441006088030688464261540642594993520424631577281077984278942244446266776534612440941312995898184903431893212829646845766101) -13385853291610595576947504757201441006088030688464261540642594993520424631577281077984278942244446266776534612440941258694475009177773266914325561849946396)
+  (num-test (+ 195114404067053480147948948510253723990 -8373866462448797623435948949281383906369538962237624940506813188612614128993186653340202956656303504523161255703176374041758276069255591562198514767063594) -8373866462448797623435948949281383906369538962237624940506813188612614128993186653340202956656303504523161255703176178927354209015775443613250004513339604)
+  (num-test (+ -308030589512186791277525017840002670741 -11922204352024596469278978325035646517433105521287613403902396944414655739824695945028308092245747333098422116078042326104667969967224788442970266049942774583538734406057081597034454910987815490244451193242377705191422489528853976486607580169986057592557285271953385769215318545520155212402919465580052078255078759756709086185424029620805084776442744700501748376290562843380642608395240491162047933014854466267084965223593172702334466729933986413870670083326499598274393380692146118979961818816348097032083332695128587696590646086980241100792624502607816103195636761141133903550454815591457829485684936036414823492160) -11922204352024596469278978325035646517433105521287613403902396944414655739824695945028308092245747333098422116078042326104667969967224788442970266049942774583538734406057081597034454910987815490244451193242377705191422489528853976486607580169986057592557285271953385769215318545520155212402919465580052078255078759756709086185424029620805084776442744700501748376290562843380642608395240491162047933014854466267084965223593172702334466729933986413870670083326499598274393380692146118979961818816348097032083332695128587696590646086980241100792624502607816103195636761141133903550762846180970016276962461054254826162901)
+  (num-test (+ -172649878347923210775992373331623646864 22180935775581457002090790736532281654456312526625354262953960635330604551829750571440878712430708012807252279301365732385899228826740712544768476577874129759972563823209525283326887563301081200476495752033290851190327066070873711444930389093339915885090143783170994309089448293499799071372787520776773788274677288230540162485916160484352398851925328125588729604931589867889917097887951581817207079060016091919559509735997493084833476849835444339835031436580214492450731100723026312163752403946315983551266206214298679421644737804098691991631489261658890937663698502561036246447760919715595005106669653475931803053499) 22180935775581457002090790736532281654456312526625354262953960635330604551829750571440878712430708012807252279301365732385899228826740712544768476577874129759972563823209525283326887563301081200476495752033290851190327066070873711444930389093339915885090143783170994309089448293499799071372787520776773788274677288230540162485916160484352398851925328125588729604931589867889917097887951581817207079060016091919559509735997493084833476849835444339835031436580214492450731100723026312163752403946315983551266206214298679421644737804098691991631489261658890937663698502561036246447588269837247081895893661102600179406635)
+  (num-test (+ 17539006966816771902104329685391462527 15609797782337099611892065465036826453911053690739041627254619195700021040383385710184052653282070244915503750549545390475671883312314708978681904377133928647935359080875691628246716591529028104762422990155477702994042953196747769893182153631482194578269859879402160062955490194674372351117284129320011166238130774752386987036267064693133554447596069886693581191241594745541512444806003236372840085705813835001957163976961730871756250344335996073970142337882238844723800849054637237549515249957267772181010402413375667537558243971058326641257721901094391380667244006959028327507917720426571969997513984360849930719808) 15609797782337099611892065465036826453911053690739041627254619195700021040383385710184052653282070244915503750549545390475671883312314708978681904377133928647935359080875691628246716591529028104762422990155477702994042953196747769893182153631482194578269859879402160062955490194674372351117284129320011166238130774752386987036267064693133554447596069886693581191241594745541512444806003236372840085705813835001957163976961730871756250344335996073970142337882238844723800849054637237549515249957267772181010402413375667537558243971058326641257721901094391380667244006959028327507935259433538786769416088690535322182335)
+  (num-test (+ 244901855797156286376563377540855746602 -22138106346578776369849317622304392466030036563754663379976505966920461958652141160336156065177498990718609170201272980114106671808245437660234479124938853665375934080221740523696180221118540569603989748587853373569525751680828044059607889572522502629277877343410298879764820905044284757389006201848194571453112545228115550224254565141563427486518108434758694923122284117299374156393942906293546318323661938734959824887786185558612820887463537294120950912969343488704744978847504513710882720654330147775174336365363311173472002077960424794151168301281665765411704505095008907760396535767621855642720080219960822554492) -22138106346578776369849317622304392466030036563754663379976505966920461958652141160336156065177498990718609170201272980114106671808245437660234479124938853665375934080221740523696180221118540569603989748587853373569525751680828044059607889572522502629277877343410298879764820905044284757389006201848194571453112545228115550224254565141563427486518108434758694923122284117299374156393942906293546318323661938734959824887786185558612820887463537294120950912969343488704744978847504513710882720654330147775174336365363311173472002077960424794151168301281665765411704505095008907760151633911824699356343516842419966807890)
+  (num-test (+ -119403662992279138748600939857239307122 26272999248235953724172008428088697264933069743507017434844709711501131900922919455931092196539942532993887162365511473221418376205773427597933886270411672062672089518774390132453916538404354895529975888201032175628249480896964400801763570333497287321002961557096975786141940970260074557095118887294558700145949117395512768347250531196100831164663613049206690894640391431616112104502483838173255614981302462548882276825096564828583591963617871547373532874400764134244496979962241959713525053686209002866840900623246072884125102845824992994967009109046451949348656842486048332953732384499190437432898387573320391878853) 26272999248235953724172008428088697264933069743507017434844709711501131900922919455931092196539942532993887162365511473221418376205773427597933886270411672062672089518774390132453916538404354895529975888201032175628249480896964400801763570333497287321002961557096975786141940970260074557095118887294558700145949117395512768347250531196100831164663613049206690894640391431616112104502483838173255614981302462548882276825096564828583591963617871547373532874400764134244496979962241959713525053686209002866840900623246072884125102845824992994967009109046451949348656842486048332953612980836198158294149786633463152571731)
+  (num-test (+ 313963939617834410089002930298454269912 23286645405607099799151331553995799851855144387826191186590140820016670502830395945076644578998873585162998873396623634135231418574284200209367505115739462344028303923666952261030907434438322884189133236837089851688275865098623902644385995630973049587854251981548128145516004461191094062488421288607625783540996659060285661398859383778209495884203323937672739376151794507745282074538961033778823733980759695886879886017489555795079194346438911010371103435094677167286870898482214310646392174423422237727456012197253183422715313378603607058548706460095379882633958651034759773864354021315490712575535559549015858088608) 23286645405607099799151331553995799851855144387826191186590140820016670502830395945076644578998873585162998873396623634135231418574284200209367505115739462344028303923666952261030907434438322884189133236837089851688275865098623902644385995630973049587854251981548128145516004461191094062488421288607625783540996659060285661398859383778209495884203323937672739376151794507745282074538961033778823733980759695886879886017489555795079194346438911010371103435094677167286870898482214310646392174423422237727456012197253183422715313378603607058548706460095379882633958651034759773864667985255108546985624562479314312358520)
+  (num-test (+ 2000877973959266893810594143560134441447453310844726478119781029700338468704683515329516333146806175216349912753585564808803731447160643580198590073658869 -17993015014355471903) 2000877973959266893810594143560134441447453310844726478119781029700338468704683515329516333146806175216349912753585564808803731447160625587183575718186966)
+  (num-test (+ 5492930533666246223206322654398877802091439062008700770880939594548305919677404080859141226095489505872709347538974725998600861651942609010590873980143878 15372278140141207703) 5492930533666246223206322654398877802091439062008700770880939594548305919677404080859141226095489505872709347538974725998600861651942624382869014121351581)
+  (num-test (+ -13405500833215428652808705089190188280715732437731292502890523313631564795139560159124390691283401484515088713758307366404145018349044148223082253439210893 -14793401891248640808) -13405500833215428652808705089190188280715732437731292502890523313631564795139560159124390691283401484515088713758307366404145018349044163016484144687851701)
+  (num-test (+ 9945195259699924701593703207751086973468898794114625092150620088406276196469184233537941913755508476427888065765634203723512911676149274871082481174186606 8699133332160461067) 9945195259699924701593703207751086973468898794114625092150620088406276196469184233537941913755508476427888065765634203723512911676149283570215813334647673)
+  (num-test (+ -1785165974800693006461065312083337532938610906605533088558498259067461510781028452552786542598361030690629530721209490413999022804146471920873844686294838 -13079925952361275418) -1785165974800693006461065312083337532938610906605533088558498259067461510781028452552786542598361030690629530721209490413999022804146485000799797047570256)
+  (num-test (+ -4861207515430071951958387366611380234482792653010151054346367776006873932152600469133110239669746470475230906073865131648496652783311445471793936775767736 -9381557743227419896) -4861207515430071951958387366611380234482792653010151054346367776006873932152600469133110239669746470475230906073865131648496652783311454853351680003187632)
+  (num-test (+ -6638723469626495957966112633999375479181736600737250559572415894485618850919815869703127084789143821420728194272094956858541960962483734293877093635361160 277811698220276334443479876776376776138) -6638723469626495957966112633999375479181736600737250559572415894485618850919815869703127084789143821420728194272094679046843740686149290814000317258585022)
+  (num-test (+ 1983880417172931934469534542170437296262471214582817006917470485544552211448284732460451903536334682269123998240709059499894818265755197559390728940140016 -118940994129137705779355371753506018694) 1983880417172931934469534542170437296262471214582817006917470485544552211448284732460451903536334682269123998240708940558900689128049418204018975434121322)
+  (num-test (+ -9354509264984586574958285335910611806441061705184818350015454221731287473282231343722010109181841005578131927454778025302197744540571159656556971614966757 120224841184491944160266976391113485817) -9354509264984586574958285335910611806441061705184818350015454221731287473282231343722010109181841005578131927454777905077356560048626999389580580501480940)
+  (num-test (+ 4389359421234641412950681847970318834150108533025088077429496538447029921663033978550089607257809597829358374972237448178553189381274150213236222139873594 106674783386899772113212633712093787897) 4389359421234641412950681847970318834150108533025088077429496538447029921663033978550089607257809597829358374972237554853336576281046263425869934233661491)
+  (num-test (+ -9319417879153488839579936799737117639058244394679644240663244688680826325564084529474537634510092069422987165268448907193562300482925125162731530249763801 192969103435503875767216559494769734726) -9319417879153488839579936799737117639058244394679644240663244688680826325564084529474537634510092069422987165268448714224458864979049357946172035480029075)
+  (num-test (+ 1394404616168163951844558734723678125985464491792846741433683801962971891047718103736551854371207400145441134823994228143957746922511631911996296931168332 -211230038021470285136061932161632203274) 1394404616168163951844558734723678125985464491792846741433683801962971891047718103736551854371207400145441134823994016913919725452226495850064135298965058)
+  (num-test (+ -2935941510094051560788359387128767361559188973149773593522440619832472030019457317998381634585179453958737810428870232715146002408187749944694186205812791 -1221176156661231926164756142840452419679061324806989304452215660535991083923207702827717652226257158321829748247784282139952864899457896871473184473608543) -4157117666755283486953115529969219781238250297956762897974656280368463113942665020826099286811436612280567558676654514855098867307645646816167370679421334)
+  (num-test (+ -1338674579024795395027232680327531457830908239605718353094975139226848400289367913459076082700361212506196070727982446232782659114647371030398516119682505 -1298372177520411182435886041880377054374169787570856408996533471838082317927648953576721017727347029007573543972764860712708420553928791798580799809858729) -2637046756545206577463118722207908512205078027176574762091508611064930718217016867035797100427708241513769614700747306945491079668576162828979315929541234)
+  (num-test (+ -2072456075229532951804023218627137969798924912365258263779029006567941400203608770518731715660383378937120213112973528605594220795605977413985543331908189 -9744489461776287963808523409593616918248399004543154581056479712028497082820841423941781438667661074968238703192056877665754560746003512076830245760254982) -11816945537005820915612546628220754888047323916908412844835508718596438483024450194460513154328044453905358916305030406271348781541609489490815789092163171)
+  (num-test (+ -2570682164188734368809161664810917340861573482754788446510182252413437925852206735928397938304353826925422441004271229738766803460790995673395984247950088 656920705293329551826685120408221577679101260931105312141757138825917579070505267306626244216341686712802796891966598838285570807961966448181138356047523) -1913761458895404816982476544402695763182472221823683134368425113587520346781701468621771694088012140212619644112304630900481232652829029225214845891902565)
+  (num-test (+ 7846359203342053693101523606887617345982401999003795257520576318451663998927274759872692123323796450295314377046602880394071105863527900699633560551732837 3683380639347829102597675045842249667669675715600522157867595962635108482512780509393310714588544837398923613138772339053021025559943198965234376657126821) 11529739842689882795699198652729867013652077714604317415388172281086772481440055269266002837912341287694237990185375219447092131423471099664867937208859658)
+  (num-test (+ -11692323148567132684205145901751681947225824260005631214936266006610207543813382900867093989444659986091234552140689684476541703112098935301322850961583953 -8534276689564199122569555420819240948691777228327984555753862457592427992599992931175844172478864477440165366128106812103785256271256853749622592560655914) -20226599838131331806774701322570922895917601488333615770690128464202635536413375832042938161923524463531399918268796496580326959383355789050945443522239867)
+  (num-test (+ -10734754884168724884333968138739681643742524619139397687680049322697740991391014196697040576174049452737571835233123127815762146577096625434481167057340772 17059878151450238567815178684522345445687980385106446646013863901583786249398194029757376950491550197185231926262467028755342392379269039238766592672298850588065335172902157386017520689203005559576263548017475991638498600879259882041932152385436968424098224966518534467302264172016376096778201462205990822825056602379115848799619564610033123837036507127427054121975400703490855123544706355545059512146550901507159940126280812512339749605195422987937677650572797378799103456094203126081464905326203083057134061673694975250599375795827437561275156235513192978645909947341297774926450637694325145427434486258223666250272) 17059878151450238567815178684522345445687980385106446646013863901583786249398194029757376950491550197185231926262467028755342392379269039238766592672298850588065335172902157386017520689203005559576263548017475991638498600879259882041932152385436968424098224966518534467302264172016376096778201462205990822825056602379115848799619564610033123837036507127427054121975400703490855123544706355545059512146550901507159940126280812512339749605195422987937677650572797368064348571925478241747496766586521439314609442534297287570550053098086446170260959538472616804596457209769462541803322821932178568330809051777056608909500)
+  (num-test (+ 1982582032974021971225071139786536402936929744496433027195224299475980201425925452469321205602618940472354066218156609448199804973454183972974358405933935 -5591374624026484498020036332218412149978824230210339582240360391202660977358546150723165491729699122647688030937226316069237264083850854032732663284717882873051337566653841254365703461654061656817936193716386141166210237666314879751427421825450110467888973152907618520704486700443275358649289847595635931220181024199692771066498714511145489237541761266539978351840438236927937894376002981658065431416811632941197501676956304254109064936038146674412392128883565757325842468006824235119684861972224857533964558963441079998949499582965764591461900562931342373507763081479989957632695010603500633322408246084430203281475) -5591374624026484498020036332218412149978824230210339582240360391202660977358546150723165491729699122647688030937226316069237264083850854032732663284717882873051337566653841254365703461654061656817936193716386141166210237666314879751427421825450110467888973152907618520704486700443275358649289847595635931220181024199692771066498714511145489237541761266539978351840438236927937894376002981658065431416811632941197501676956304254109064936038146674412392128883565755343260435032802263894613722185688454597034814467008052803725200106985563165536448093610136770888822609125923739476085562403695659868224273110071797347540)
+  (num-test (+ 11532228364136654310006206557545352284448588590560137249197311142901246089838098630841794341370689745410654263817911440601934362503092628725755210859171724 -25776236925500995542036591604259749301547568770017466769502569415611770276300787105037848049555500555975152877716727294374436703766730618054071617947449695177320842403963009384468257891933593584757723535299746543328292715942626303315235241470269740287031317322772461137186093930239744879822272349431389779234805703118929710210161489122272898252221025966631463842234537744822906696719691188223105175714602909117904182229960075276443648211003011686250829474364425483901920822837775032295913486152631638908227467242772081310515646217115760180349854601959031626524004201825198439309850266508687796415478396821644422350208) -25776236925500995542036591604259749301547568770017466769502569415611770276300787105037848049555500555975152877716727294374436703766730618054071617947449695177320842403963009384468257891933593584757723535299746543328292715942626303315235241470269740287031317322772461137186093930239744879822272349431389779234805703118929710210161489122272898252221025966631463842234537744822906696719691188223105175714602909117904182229960075276443648211003011686250829474364425472369692458701120722289706928607279354459638876682634832113204503315869670342251223760164690255834258791170934621398409664574325293322849671066433563178484)
+  (num-test (+ -2603756427337798371354526130541868239006085657393372011847827118826669474695402075575479286172808099892726251004549675772420422527946534088483901153485670 -10844269742362409682236511127219508926736627172993604953084481596070757241623728297275447608738915355190715664012379562650777199088096670239050254578284071100042116609747208178716191571268815994455064584659920497876052406993834873124981417288518101426395560764186717660091472734401090302285129741058888303693710456902635092811413971399734306158050053239768185860958896447298052082493590498954512083131068867270078638929796561440903919430094619437872896595720463663570751134804664228918188923926951933302878771189484614604311920655871182974081898031051411394311700207305532216445616083858025977851570522763537300875989) -10844269742362409682236511127219508926736627172993604953084481596070757241623728297275447608738915355190715664012379562650777199088096670239050254578284071100042116609747208178716191571268815994455064584659920497876052406993834873124981417288518101426395560764186717660091472734401090302285129741058888303693710456902635092811413971399734306158050053239768185860958896447298052082493590498954512083131068867270078638929796561440903919430094619437872896595720463666174507562142462600272715054468820172308964428582856626452139039482540657669483973606530697567119800100031783220995291856278448505798104611247438454361659)
+  (num-test (+ -5929887196386997518766568868806997104240129372360669348628384183712406620199102166145939206783172815805659513128544493795329100599632286529420772709366102 24544958491142793859949310604465694574872439331169358241746200808802938771527900616394258199996170862256988647191747967628756772368808644819831481350919782560499270148419601775750932556119448001824346026042068416905254113155445053931789404515589532235225580737103411251232560863878948880220469490014568323308965914171394449781093816607870593225534700167342589927524232815571862258490314644577819742372918446373756857848586825568514909823940075182825283229026250682015641747568282510036326125505522447591703308661608718100933027549520132308555240654655887041040427813131621391320267698106519650611462269033902177180035) 24544958491142793859949310604465694574872439331169358241746200808802938771527900616394258199996170862256988647191747967628756772368808644819831481350919782560499270148419601775750932556119448001824346026042068416905254113155445053931789404515589532235225580737103411251232560863878948880220469490014568323308965914171394449781093816607870593225534700167342589927524232815571862258490314644577819742372918446373756857848586825568514909823940075182825283229026250676085754551181284991269757256698525343351573936300939369472548843837113512109453074508716680257867612007472108262775773902777419050979175739613129467813933)
+  (num-test (+ -8848084327536592532063677611386811805244460767433749071435930786126721080365289638381557872263825830664387392539638767251180242665642373539064690745095464 -15917950175678012281826361248776190984758236997789474333609547749168308439513527143790323694526378056113636462939674273462177686456811495629631337058042159570336251822399402513133598701991665209363955263097315081570618652783181494594400709239428597117944511110842795526862595552977665064029517628515465251448116061875878430407784298951946811321795808932206846491091803276390661869369638950672478828532423383951689632136029256108992610781912267083149156104328033893238864631158195280554850035949666897861529711006187241710164902350100555999894332438423857208747342184052953230247487231455921360593096823760117493579248) -15917950175678012281826361248776190984758236997789474333609547749168308439513527143790323694526378056113636462939674273462177686456811495629631337058042159570336251822399402513133598701991665209363955263097315081570618652783181494594400709239428597117944511110842795526862595552977665064029517628515465251448116061875878430407784298951946811321795808932206846491091803276390661869369638950672478828532423383951689632136029256108992610781912267083149156104328033902086948958694787812618527647336478703105990478439936313146095688476821636365183970819981729472573172848440345769886254482636164026235470362824808238674712)
+  (num-test (+ -16314775600714318471451792035636584056297958597339492996728118376578145765736873313518831390349547274517050864260054903974054712997529177834428786007341762649083404743713562157667828894017440065599882523458121037421757904691003094608420565550031561905074671735751685371533975894842331113347413787808917193134135744321547478500861021485075363990553639161661734684228250909589741380076008551020384304303171431833670236949934603973673998262066558668396388979463892768199916011368116729432353268535563246463324517035331079693172060671712718486388759443825620676228470068291448236914050793177812037679396721657020438979754 12553426083939460917) -16314775600714318471451792035636584056297958597339492996728118376578145765736873313518831390349547274517050864260054903974054712997529177834428786007341762649083404743713562157667828894017440065599882523458121037421757904691003094608420565550031561905074671735751685371533975894842331113347413787808917193134135744321547478500861021485075363990553639161661734684228250909589741380076008551020384304303171431833670236949934603973673998262066558668396388979463892768199916011368116729432353268535563246463324517035331079693172060671712718486388759443825620676228470068291448236914050793177812037679384168230936499518837)
+  (num-test (+ 20637030084881771176788188367974505419050866216433677435050410899110162793040751338330447574748263391136356400036001988938659722098883893353523409458775455519257672423829361150611806294256710309281788819450225670112435352092313483086404714074567539245791066202051788986426960935796927738180831688497683293306590464598379493141645539253898709000874685535467854788184424886911457134522632486730390913239660179785071885982403741669161655812015114272497907946919026898579927936299607156006210124954460880383605958519412435713868501997649784658832599101777001703519408664662715322044086646014163774269660274683400619225321 11620128128044940816) 20637030084881771176788188367974505419050866216433677435050410899110162793040751338330447574748263391136356400036001988938659722098883893353523409458775455519257672423829361150611806294256710309281788819450225670112435352092313483086404714074567539245791066202051788986426960935796927738180831688497683293306590464598379493141645539253898709000874685535467854788184424886911457134522632486730390913239660179785071885982403741669161655812015114272497907946919026898579927936299607156006210124954460880383605958519412435713868501997649784658832599101777001703519408664662715322044086646014163774269671894811528664166137)
+  (num-test (+ -9838804688358141062268493389453191808060717708062736103828856866310283812230958467655270667206937622979717683919584610288962829724022506216738929136418489468786902364550847498615864720240589837282441807174290461916292258263929411081218952357662703079709351365960916688275651864441386750529258343003652300629003597744958152243494244227986280506395347894285277364095898602965258114321853474000520432831298793365139040664543928707100657375292032051256485942532600998813627925626928634068613637417702688610315924917761411247617905738119218110678854564441914784262998574445847209847985439514580300936248281049628734475702 2380166482232871816) -9838804688358141062268493389453191808060717708062736103828856866310283812230958467655270667206937622979717683919584610288962829724022506216738929136418489468786902364550847498615864720240589837282441807174290461916292258263929411081218952357662703079709351365960916688275651864441386750529258343003652300629003597744958152243494244227986280506395347894285277364095898602965258114321853474000520432831298793365139040664543928707100657375292032051256485942532600998813627925626928634068613637417702688610315924917761411247617905738119218110678854564441914784262998574445847209847985439514580300936245900883146501603886)
+  (num-test (+ -30961575335426221869515496362216292453766907587859856766456625722888557357647164641922707199324601608700561081422636642523431947551124957385652791834855425829101761914145137205962610515642614866296480715893528289170482422505734612327038754622917335073993027434927547277037587173529054849390646376806910407207016292483185533697336599641898250465186168797820802225861771331652801064811222606773495565340386327294310913503461903243119204619412324538886439122443769008953829820425376589389335553937319588224864611583436327810214798652896733118881040503785110481197462772022447173744898802421806800203373153221004361953729 -10586442965055062759) -30961575335426221869515496362216292453766907587859856766456625722888557357647164641922707199324601608700561081422636642523431947551124957385652791834855425829101761914145137205962610515642614866296480715893528289170482422505734612327038754622917335073993027434927547277037587173529054849390646376806910407207016292483185533697336599641898250465186168797820802225861771331652801064811222606773495565340386327294310913503461903243119204619412324538886439122443769008953829820425376589389335553937319588224864611583436327810214798652896733118881040503785110481197462772022447173744898802421806800203383739663969417016488)
+  (num-test (+ 8835746018617511846981408800319983340292665114153404569022025834059427359831684523399830234196625160662387716033871154398104436720494608541518837969397374272734698261557358249258503982414578618525420572597611597792132117034895074841909295420434392963714805547538976612884853497014341345150095544449860198192757839489063747595073430612069212219930749783824683135433987509303139260133564905961552149844964215891730262218278214035649706577154652729844092199333026620127958228847111442161350881527928460177763370427262298116900358910460957772350452949782281117704005514462730290063772968929608448642592954601418753021512 -12227722924075527556) 8835746018617511846981408800319983340292665114153404569022025834059427359831684523399830234196625160662387716033871154398104436720494608541518837969397374272734698261557358249258503982414578618525420572597611597792132117034895074841909295420434392963714805547538976612884853497014341345150095544449860198192757839489063747595073430612069212219930749783824683135433987509303139260133564905961552149844964215891730262218278214035649706577154652729844092199333026620127958228847111442161350881527928460177763370427262298116900358910460957772350452949782281117704005514462730290063772968929608448642580726878494677493956)
+  (num-test (+ -5455184800550144006991157215735481579353213544152145628297990102571936052187486515129266239245491863623978659179559754999567936067584384479787934704340911556625153536160778495579370425428019248950494107696016864499055854257192071541354806671987402367524770228296322497224645429524493838356022616251290117624472061673033274133156467148770562815676767117605001434288573911556053311048284534341905722947046607192815465807736361991479044698448267471087552952494477144251510778491315012457514838113324210534577956298926109164909779987221094000880908857594198276812276890284008572664102792405452379662935026125770444036994 -7349798942312432150) -5455184800550144006991157215735481579353213544152145628297990102571936052187486515129266239245491863623978659179559754999567936067584384479787934704340911556625153536160778495579370425428019248950494107696016864499055854257192071541354806671987402367524770228296322497224645429524493838356022616251290117624472061673033274133156467148770562815676767117605001434288573911556053311048284534341905722947046607192815465807736361991479044698448267471087552952494477144251510778491315012457514838113324210534577956298926109164909779987221094000880908857594198276812276890284008572664102792405452379662942375924712756469144)
+  (num-test (+ 27233955893140063612427006607965940109569052437681267421929959186535416115028420267622879017163568256526042146282241931623674996867133390355390677118211537487769195270234259640386625552763891339073878417517169618832945750393661600092643257470064376916337734385887099957095417541169462231630821139075814859604097878094729685589777579267192538715202397220666651307185763054526407234767132218634060693076054116575833737797189157152326979078121760900891899319809724675232853322526718686306470372869701173824664984405178677187081936624687293494821338781534163633206006387449585716391843039459733925494003066841874935048611 -66646390577667468207341453008390168215) 27233955893140063612427006607965940109569052437681267421929959186535416115028420267622879017163568256526042146282241931623674996867133390355390677118211537487769195270234259640386625552763891339073878417517169618832945750393661600092643257470064376916337734385887099957095417541169462231630821139075814859604097878094729685589777579267192538715202397220666651307185763054526407234767132218634060693076054116575833737797189157152326979078121760900891899319809724675232853322526718686306470372869701173824664984405178677187081936624687293494821338781534163633206006387449585716391776393069156258025795725388866544880396)
+  (num-test (+ 15030400024888781078933103028897733817304421960545019199443871381537070197157227994520524631721701055962609956080413517776229513420814407790533237358129529547793422514837651333555776540939235592155512951229106778709351772195248438493792786143040421233061520515971787881798980515709417481015662862327435825812557205663033601853937647320838585333754027488605638576977560072206293290493215523194883494322543800546276353830683084405428005815296131527861252717516620765986589669237487765523936713749717927502645633123584240464131140829496052170285171610845098023517906586134613874506419828208611247177336492131262918439281 -164048419232636429449474429717211197442) 15030400024888781078933103028897733817304421960545019199443871381537070197157227994520524631721701055962609956080413517776229513420814407790533237358129529547793422514837651333555776540939235592155512951229106778709351772195248438493792786143040421233061520515971787881798980515709417481015662862327435825812557205663033601853937647320838585333754027488605638576977560072206293290493215523194883494322543800546276353830683084405428005815296131527861252717516620765986589669237487765523936713749717927502645633123584240464131140829496052170285171610845098023517906586134613874506255779789378610747887017701545707241839)
+  (num-test (+ -10227062646189307616073129048534031298512434237226774743330733206156788005874968173984804649812506029813402205606562016228122184161577517837608957023376079537037472977098465137152327215807765130656192272994478964341604278041664840636982572214751638093860605132350960802560601354006634296348422600320863531059118477125143903734159707623839282511184908969206873548650544269932394344952983661665472663102992782521888857016369837211403335306200813816060883478434441858442549261115972947741929087886423170398410216855322384956160289855500229952405068604320121652911887067414460828300146993858360430784079225137421074839819 117460076430162201914796277915447781936) -10227062646189307616073129048534031298512434237226774743330733206156788005874968173984804649812506029813402205606562016228122184161577517837608957023376079537037472977098465137152327215807765130656192272994478964341604278041664840636982572214751638093860605132350960802560601354006634296348422600320863531059118477125143903734159707623839282511184908969206873548650544269932394344952983661665472663102992782521888857016369837211403335306200813816060883478434441858442549261115972947741929087886423170398410216855322384956160289855500229952405068604320121652911887067414460828300029533781930268582164428859505627057883)
+  (num-test (+ 27989453264793973121573869640708223239762902243991948581280654553806618470632044367386680716040316895884976837122054709584963028986161694425215067648887944710852278135008221491665079705797192389681328802747226171436158375378499411314855257919224316919346771317457123252623293612958336691335423245293660257386649100685560072354549579281852792682734916555498283053758141666658137856828164206947320523255487437004565021167276952652515632644458005291855624829941937578229983628962137595011570216766689546500517528191189928660433013004254032861383790553611840534023221000900694995707453499030166286828319347894538505334235 -59175168207571178843658955348404514921) 27989453264793973121573869640708223239762902243991948581280654553806618470632044367386680716040316895884976837122054709584963028986161694425215067648887944710852278135008221491665079705797192389681328802747226171436158375378499411314855257919224316919346771317457123252623293612958336691335423245293660257386649100685560072354549579281852792682734916555498283053758141666658137856828164206947320523255487437004565021167276952652515632644458005291855624829941937578229983628962137595011570216766689546500517528191189928660433013004254032861383790553611840534023221000900694995707394323861958715649475688939190100819314)
+  (num-test (+ 1178650930337394440162727078866515771626896502845852711186000991913866844090831426017480263676964607121490209778220339316756171449922437605552456088105443130477974682689512446683178356259305893852096425478878588001446154476458310269704392486398646169362313605456233489086567865316333034897433650974160168545492823208575634152241341906068149887959566983066154182855136114289266802474404127414747112706158621650063987662749553991791509795764642256261917497984177610694405881831052199417235241109412927893781778469398975117797578753730248539151297798807326284978255001046995523851829184120171969918537718488250577987049 -151873924489040812813761508259707631973) 1178650930337394440162727078866515771626896502845852711186000991913866844090831426017480263676964607121490209778220339316756171449922437605552456088105443130477974682689512446683178356259305893852096425478878588001446154476458310269704392486398646169362313605456233489086567865316333034897433650974160168545492823208575634152241341906068149887959566983066154182855136114289266802474404127414747112706158621650063987662749553991791509795764642256261917497984177610694405881831052199417235241109412927893781778469398975117797578753730248539151297798807326284978255001046995523851677310195682929105723956979990870355076)
+  (num-test (+ 28233332719950979786871881804755080223325040620170668729385709165879717973040387558150293205758215739710262749733170837042434162049732587908182282319848154049410849721309988807368466228286699721201975848741931128639324322061892706638973259354962358866000024260698793885547287093369940035337370984725857550291339492871017395328145015077506882578124550084937438336881072124376107623716831044079223921566902242543198986921476998895559488862309653154914291349588095330683589871173449191854284433182368052817373384461363574550061788800329400860372148193491004593903732351395815409821222597665222975816418433744748143385431 -43245950360315656184924888243641533635) 28233332719950979786871881804755080223325040620170668729385709165879717973040387558150293205758215739710262749733170837042434162049732587908182282319848154049410849721309988807368466228286699721201975848741931128639324322061892706638973259354962358866000024260698793885547287093369940035337370984725857550291339492871017395328145015077506882578124550084937438336881072124376107623716831044079223921566902242543198986921476998895559488862309653154914291349588095330683589871173449191854284433182368052817373384461363574550061788800329400860372148193491004593903732351395815409821179351714862660160233508856504501851796)
+  (num-test (+ 17311283930487575047109155431670372891723312431004343097275158353815289445461275098157423001160013464866170709729134076291306322952612660169010483426086431377525432637844274608988581691477819008626983761905899834444008235608280930166913911248710072733217113558125600345343437000427963292980921009445490627620344145866648036116660335905940809860199697939729919140888034303887423527841395304960072549430314367914315102150378504502158659627719016733307736583749830415574905929299482373462584995162798576853564481617711234957058703455021082855018642616999836886763535412642684228990890160568207941504887072856663966242787 1954009743321912552050341299974626734964446274711484506734354360114801426013796892421541915293157994203607853436799102383078659985249097057923578528366737) 17311283930487575047109155431670372891723312431004343097275158353815289445461275098157423001160013464866170709729134076291306322952612660169010483426086431377525432637844274608988581691477819008626983761905899834444008235608280930166913911248710072733217113558125600345343437000427963292980921009445490627620344145866648036116660335905940809860199697939729919140888034303887423527841395304960072549430314367914315102150378504502158659627719016733307736583749830417528915672621394925512926295137425311818010756329195741691413063569822508868815535038541752179921529616250537665789992543646867926753984130780242494609524)
+  (num-test (+ 1135960177108146621604027872788612991247811085764456406834564014092038611848908717507207251239454266163702244932570537009884467598603226302482406831131219148530146321028801515381981782506355042255201016953375149829517466449677312249611502599434850555618739830488706171667035140895674806873502543300909514568759918040129665855731078258004983486524477103833885001539135541445685573269814159175744401893663504523858005835387122082112362666991112899837534230326730196110477118156871579503345757821268248575583821695674912517830056856597644827244194658166928026249459511837772775196175188368236573504643083995409774002567 -5513982495816270388232134254127393284677692173792609278582774509636977743203029647121158805174638642867428501907786521939155900331399058909602425073976766) 1135960177108146621604027872788612991247811085764456406834564014092038611848908717507207251239454266163702244932570537009884467598603226302482406831131219148530146321028801515381981782506355042255201016953375149829517466449677312249611502599434850555618739830488706171667035140895674806873502543300909514568759918040129665855731078258004983486524477103833885001539135541445685573269814159175744401893663504523858005835387122082112362666991112899837534230326730190596494622340601191271211503693874963897891647903065633935055547219619901624214547537008122851610816644409270867409653249212336242105584174392984700025801)
+  (num-test (+ -30369736932762868789456108597366835061749107555998091727589163626331595118680326568212941898571309672187038272915036839449380083450246957904300051802617002374912724325419651633014408152565340519439718081357147324136023867003917288524338643759680061563616479323818330115572573568245719292922176485298767387601922362893307843067637295955606642841006993776777666041277965868780958830666697755738164183356399977211227424725670822944234275611849032230010745799964550976844117943559190671369193871330514473741920389633762695829790016565565261170688485790141638094160105909405353382982945608773290740598479367828342651860878 3451570547959142767282758882796967240086418127970526029661337442068316209707489088420708984628065070358319478649952710478991064476168799556496237099109563) -30369736932762868789456108597366835061749107555998091727589163626331595118680326568212941898571309672187038272915036839449380083450246957904300051802617002374912724325419651633014408152565340519439718081357147324136023867003917288524338643759680061563616479323818330115572573568245719292922176485298767387601922362893307843067637295955606642841006993776777666041277965868780958830666697755738164183356399977211227424725670822944234275611849032230010745799964550973392547395600047904086434988533547233655502261663236666168452574497249051463199397369432653466095035551085874733030235129782226264429679811332105552751315)
+  (num-test (+ 24749014370880469345815230363662696846133977441600857690896762642529872426102613384561609594131771018575590861342023688138502403609639138062665279129058939911797019091643704220495944170754490238422880589600838613701783818105188827633578438439212856537589855796204839275633245851474930725845096235668385012500773524750522781174430369067441632028068262240870795850561389232369373523415592833273932285308223863420210049445377497367753786125779044716949754454461623397410528064697616617917065021866397277409044449982605591256067763430930720398889239414812509701319783809830072841056369381573100589260104551934136733317845 -9461623592584966196513107657889418526847060851423069480904645009418813160370721071067349946095573698635859409908288864150475056170059858850823883834932131) 24749014370880469345815230363662696846133977441600857690896762642529872426102613384561609594131771018575590861342023688138502403609639138062665279129058939911797019091643704220495944170754490238422880589600838613701783818105188827633578438439212856537589855796204839275633245851474930725845096235668385012500773524750522781174430369067441632028068262240870795850561389232369373523415592833273932285308223863420210049445377497367753786125779044716949754454461623387948904472112650421403957363976978750561983598559536110351422754012117560028168168347462563605746085173970662932767505231098044419200245701110252898385714)
+  (num-test (+ 19070246171469235561279483225919489206942407814032615339351735800304747459507922411906751965555240682457214768298108831815622470433175555196912899313888991765436434867025639919521068437191248198117664398275835972573354886915721765715992151871453808224011999677700078879590132676060988550961950472536029228350169237717222998397029428440792110955380302156159849645211726041489206565536560827557279129751110297078563108009278363910936720061216511798518178957070787710331228500533067546198458251241005176280410230146430275074766072259256583499095689284871987010372039977403712023630453400259082684930755893684499232318008 12330599952818018622104330691506128012101935028731995985677032980931398338453806827555760801312052792065671886621851470997557806941112316627790755867100463) 19070246171469235561279483225919489206942407814032615339351735800304747459507922411906751965555240682457214768298108831815622470433175555196912899313888991765436434867025639919521068437191248198117664398275835972573354886915721765715992151871453808224011999677700078879590132676060988550961950472536029228350169237717222998397029428440792110955380302156159849645211726041489206565536560827557279129751110297078563108009278363910936720061216511798518178957070787722661828453351086168302788942747133188382345258878426260751799053190654921952902516840632788322424832043075598645481924397816889626043072521475255099418471)
+  (num-test (+ -20895998178036569919774658790651496115060841511658297683195804524712012347695091074325978179977718571444320688167469052862702339462089668992243209990795362064005869602003990235714500149401994013174762139297327430396441552225926368085284222509085197484452650071390132794942944512235132641643003294762547138305644086106533258432786768644384855008506026923783604514268955071498269812887794817192371944269611642901807443894686178438687102834127061425955994253034824027771176714559050403098437684091684851207513969915720607528045624635094984539637789113651579846373399975502788877555747414523231999341294756679330384323996 764238600803843266244444637050072967342049538611688895792923539838804953492110953673720766879606601435939162680753428779068917662740403667549850724878795) -20895998178036569919774658790651496115060841511658297683195804524712012347695091074325978179977718571444320688167469052862702339462089668992243209990795362064005869602003990235714500149401994013174762139297327430396441552225926368085284222509085197484452650071390132794942944512235132641643003294762547138305644086106533258432786768644384855008506026923783604514268955071498269812887794817192371944269611642901807443894686178438687102834127061425955994253034824027006938113755207136853993047041611883865464431304031711735122084796290031047526835439930812966766798539563626196802318635454314336600891089129479659445201)
+  (num-test (+ 6243894672855694190803081952962387322599009058758027960092936187687064819462191583137945440936085088260632250436567758576422207449236613172605950116622271404444221039084346501796818945639456207912207604248991842124079786471250102192718092353598850889806607728696519257402580732995770031331187089424192803722612735557735028710899438934171272639518928194764526910590046378401600819132587804143949995694950116915803127294011661411525934100144319021440919928013617766507409909846670172516021888661284467975865076091834094160862228180625536450124272957206172214541444266874056050295270719541605687740822711659847211976891 11877496607682442993105675644902145742318375725225741293060927105303783712520284640625374957608051032540491531573337817824773543104969422017506696018037874641947740606655370938613842356322585858034851150595788166740174872996252792014218946552442572806242471174234462119454014379628228878122072189387777413014452140618318641689597452676091677588204537830401725113931418426919671512011822864583481449136550835952005765386885680701637038206002172218712504732572449659704181315669255320876647592649071711438131711904976335957846353867776093588236311654631696625859173554395714740218099921290128795607292259527492722462071) 18121391280538137183908757597864533064917384783983769253153863292990848531982476223763320398544136120801123782009905576401195750554206035190112646134660146046391961645739717440410661301962042065947058754844780008864254659467502894206937038906041423696049078902930981376856595112623998909453259278811970216737064876176053670400496891610262950227723466025166252024521464805321272331144410668727431444831500952867808892680897342113162972306146491240153424660586067426211591225515925493392669481310356179413996787996810430118708582048401630038360584611837868840400617821269770790513370640831734483348114971187339934438962)
+  (num-test (+ -24023960171862805266003610953999097357395283354964456554686635290239019705581779621120391229617494503580661676939681517550103414632840981987397485411400553792707518662609532504246677658012933762605038799352109564432278094548068984563394926376371580465135388578139331334464060067790936072127680597181415407099723844313625277987147283697141407959289588588489162704824409673099509423520008795428217612706997355591985894255450783091681112776112997887084157623388943538145736618168104404283342039105202585543852590302154958791010622670839015475427693311663800177428904406869645066988663292128104453773413982185343111560886 -31939808827732134714870375774276102357277346245583282398423150631754622253109692213928642228787888509211781331649081002266227303203259124984426497846441848502574293640959494009564992092503141598640200823656998243767453860939156780549404892392521391484933772285520949470194562525777116137058001008184603332597820522016200623301007194309404025522056113671560767212894303567191067178003014955596425115379852712737129325098876542459702682095445350281859042779889411325882123213577906096942649941285655935053362468972482748617111598313960198743596285343178242282172686940700127068972627110105953098737923773182254460772630) -55963768999594939980873986728275199714672629600547738953109785921993641958691471835049033458405383012792443008588762519816330717836100106971823983257842402295281812303569026513811669750516075361245239623009107808199731955487225765112799818768892971950069160863660280804658622593568052209185681605366018739697544366329825901288154478006545433481345702260049929917718713240290576601523023751024642728086850068329115219354327325551383794871558348168943200403278354864027859831746010501225991980390858520597215059274637707408122220984799214219023978654842042459601591347569772135961290402234057552511337755367597572333516)
+  (num-test (+ 14513652183174940741664411990199277445706189147726874603036586212536012746892966848269748909379750612027025331446918381470766609543142456872580466135425754204680927122749772612276850998180593344389487924747722210296498854143380696064338777945015153982467675141485724865534995199700908286263993697988986805404864429385840512740226775506122190698806967785494289035976495492863456705096841250592980439363856397663738211335801835896091823148249303370609165910779981271035234045185574995335952208702661648744928539539455138167482396767268362221492607154709559716065850417221174683768503217544145599044845325824451589309835 -12814535978730024053359592817368712576084646962861720729844389627130663192435154658607204342320327460695280260731620465435530495952836598646143907272825807563512741964987882356778796849529260646503692618525570185450780889283642116889481314560395290434301143877809550098309214046129802023655714098730144464028249594406616074059558969757405392170810220921023905546104487938441503430332099605473144930508420331873995741851604525954472341693863067199617721032815462094767522339305487934030130207039176659398466616780628644572276059410087128533031562978399689702766028716401176531098447698206272762966470643604141938670152) 1699116204444916688304819172830564869621542184865153873192196585405349554457812189662544567059423151331745070715297916035236113590305858226436558862599946641168185157761890255498054148651332697885795306222152024845717964859738579174857463384619863548166531263676174767225781153571106262608279599258842341376614834979224438680667805748716798527996746864470383489872007554421953274764741645119835508855436065789742469484197309941619481454386236170991444877964519176267711705880087061305822001663484989346461922758826493595206337357181233688461044176309870013299821700819998152670055519337872836078374682220309650639683)
+  (num-test (+ 11356479761814008572465147431830778885327227506593483181241437802252618729479905490826767363633131720717461693888023278837835457496021519184903984385091047829540007466025527592005114414671285638168997562037691602144751434208304408870143450743278437854754504713023422097017723330207792526222436928747286558205279330508360438281011315147578105966454344087225699378388309094140949428028313539634103047841948634832398526343605363013644180832752120081735152285507591096001749463421326282317713079361827765412853023201330345752038722069405404812511739634687282327711258974520622248165974215116400638833123609666501349513623 -2451734542868054449539778460457497703609327132304922810342762480808881050209276687756391911546806187586640918078231508181876445466503459873508196878629364924241891220686182517218825181707207808769770392864734466652524094735160185556148554260517746279303022469784592528209667497664672945900929888144529727881050106027775707933311860110618130543481573815538047460723253898548348335762406437618625388229555824532715231231491787570056329865617082709588903922431713098922691537317839185452018617461891748518176708607861270770493263960554805373552348256747200291438630960804647686832667981625018361034564086859426490014044) 8904745218945954122925368971373281181717900374288560370898675321443737679270628803070375452086325533130820775809791770655959012029518059311395787506461682905298116245339345074786289232964077829399227169172957135492227339473144223313994896482760691575451482243238829568808055832543119580321507040602756830324229224480584730347699455036959975422972770271687651917665055195592601092265907102015477659612392810299683295112113575443587850967135037372146248363075877997079057926103487096865694461899936016894676314593469074981545458108850599438959391377940082036272628013715974561333306233491382277798559522807074859499579)
+  (num-test (+ -1814184401790217165873937825605141478060935014868566665644215718762341535891730598045990231798382966074312671040257824056876679135909008140059087311700216658095793352051583071432744886316274989901835606602224927350560604355249919901932382803472476702792978322468747380191775778902733911968522382089332819162367884984027854067607561808704316828316820133400099093450636968732151876570835173932998599031643640476109466728761033062776578175554441947411139184426213290292577467587355369954997241091769769542810051228504545831588488726789173405585678190671534386784806998695797717346491308862362775748058331375692317599945 15466182953987394334491149436346080039471412309427279110582769586053943302670765125931570041904640518032832554998553018838321871748542118021556398569294085708441934948186080236498081517178574839977996802813431873543309853609838200338534343580791382510179184571852290959723696010410340740895530535423959476873857191548113125728667781953125153120447892632916574768078583174099545013854248664119997703948998871566374080719541931440495888606776561795893839624084254684939434035018741535261951124673664746010067859317726891535170781460914710499572006592206360512398012457295755926986236618644330364227754380084585899275327) 13651998552197177168617211610740938561410477294558712444938553867291601766779034527885579810106257551958519883958295194781445192612633109881497311257593869050346141596134497165065336630862299850076161196211206946192749249254588280436601960777318905807386206249383543579531920231507606828927008153334626657711489306564085271661060220144420836292131072499516475674627946205367393137283413490186999104917355231090264613990780898377719310431222119848482700439658041394646856567431386165306953883581894976467257808089222345703582292734125537093986328401534826125613205458599958209639745309781967588479696048708893581675382)
+  (num-test (+ -27127130599753372624001250456405972983012981437652156246797208697430661165612459362971759027335854588888552031022264244768883843080959804690580574272908031271224646245152017114094021048441971097191444782106551075175878815012595015584723250801765859461211934306789890718268168352614164589637346918581658850565274510502652089457352942736418509881708568727739912127781455473660768550022762222130489047215089836402367851853412705556570667960548570630054608024914653686223423908494006675057953013815512203710764854485332282975729323105427143207127239069826750682633272289409910001698385240596625059970587393681128674617278 5719655139276246085992066702308194672442413085748146924567717361937179810269300239821879673460959112727066470468217892213025828988023367028158410455624528688729907493639908638553730770145274142147983721694721139760883483821883267129411125364089207412089113869427479340283853501026803387874124668123626271531796990801822527792189514551888019206405597994403243358155410088320317141454525417323186389587327532772638942220300149829241141659063128602316305332848477566686425551944956989370838072872906293845914921103561360871571846865478762953536949621421094416539099628942010528483544062050170673327754206501716239719529) -21407475460477126538009183754097778310570568351904009322229491335493481355343159123149879353874895476161485560554046352555858014092936437662422163817283502582494738751512108475540290278296696955043461060411829935414995331190711748455312125437676652049122820437362411377984314851587361201763222250458032579033477519700829561665163428184530490675302970733336668769626045385340451408568236804807302657627762303629728909633112555727329526301485442027738302692066176119536998356549049685687114940942605909864849933381770922104157476239948380253590289448405656266094172660467899473214841178546454386642833187179412434897749)
+  
+  (num-test (+ -6069217517368004039/4076344942716985944 -399587800008780737/578697755310708616) -321318766345655960630110128852941297/147435729263904928853096856396980844)
+  (num-test (+ -41285036778370718/305793940074617155 -1396094619926552183/15846027887642356854) -1081121118676718273499338028514700537/4845619302294419132297197085940230370)
+  (num-test (+ 15975644088444536091/18063939613598316583 17501188199168431305/2979264551795273683) 363736076920798535449296038324193823968/53817254956563877935003279344562385189)
+  (num-test (+ 10197734562406803221/17452826108659293487 14639450560606090654/236781760961536951) 257914422508077920978698094723491089669/4132510899763835955061848877304138137)
+  (num-test (+ -16810360766832230069/13652857552883800956 5011749175730438558/4169057419710079215) -184295743992738197672588473692806043/6324394120121667288243293659228081060)
+  (num-test (+ 2234573531734039025/1128831476977636536 5842177084459535064/10255356071975483971) 29511180623959738330730559435115466579/11576568741659658592450950022331964456)
+  (num-test (+ 2268894928233321367/45672733521488298991909987382109984899 -10510750087507287356/187832098427494353069556175466145198255) -53883392376116199828369509984040539934420061636271022459/8578805378260910951788610598591490227836321974082207035230408675959411151245)
+  (num-test (+ 14273433611429514043/7774518083776389556784045601066955324 17247074371340283485/225579726714102822702316919752160926694) 1676942472465190408518249346164012571239098147062478293991/876886832336064155131767120243155911448808491410701588797601053820468509428)
+  (num-test (+ -384768590020206817/26284423885474502132625533495652664626 -913687410374243983/254477371735734658619949996700223764026) -10160887225658731404416073535892287983824191154410167550/557399258996959835387173465565070652935481894323496556880024318994528462023)
+  (num-test (+ -4465222504572200650/89674568206322981678158378582739708537 4148550863841320780/74302497820894496090312266744880513261) 2118016946376507498169590394563632549990739165791772590/350686547828419379316750498534703170285368675911953477374458878558215968903)
+  (num-test (+ -4466938407638238142/281859125741189685767904931589784285893 7302241525893379697/204618108204962312932373858463395271264) 1144186926000295881841982161759159994442430111060328362933/57673481089466829503954266461746705742702466399988738560842837126631263478752)
+  (num-test (+ 6692616266348342275/280491911593106290120490189988812804382 5414100524539959087/183579771905991028181574615911067652873) 2747240373316006570071525025488180559154305534334705425309/51492641151737853299832848099101317109893853469394209716061486746077629289486)
+  (num-test (+ -2794289802081124319/15768464977850217600859580216291365931410230647587457388598921425875331529149 10869776169503285673/33805119742344157512165738805682358903614971418053290198565741206390317449856) 76938383491719886409504555688515759257937029058461512747558964579607347503639994773101488934213/533054846729186819415263583890627325668798847177803707144003483502948153457972377767011992167761176556555806720273883868208938866192358148729990609852544)
+  (num-test (+ -253222140119290489/2123024034843473393742534167007121513293496410591072104903085284304117612082 17957334013642389787/32058972871090153103034645121513493401113378486125580864856088310966601405847) 30005809992231287609744177955201962181880644831204431411802631067134766877061419104162728517351/68061969937719269465960475690278941280799593161143759512261685488134507341176789799765185182008442410081522124548392827986923668912612728349293792643454)
+  (num-test (+ -13318881947309618/3105936147298438543619802738126617974207009907186580731552500517452462642139 1850968757748704519/36469179946212878965111748233319050931475015876401494718861814560453153824935) 5263262069792987469108717688485565287648879759118200779949761992573778798556738644541735401311/113270944257273905484832818286307416845956086746130199501242465128236430928807948126409718436237517505516279133169796919230385184900609912160483959935965)
+  (num-test (+ -9937822914683494298/36414156259035675966580098631253549474580108307284844243190992829476777586283 -13712605099585970325/17758145954890657915358548152198427387923366136638180213650029984340849686198) -675810254607579372158951115566887998278519717754376916387787672973408477396668549189167387350979/646647901672150721610792561233068038707362067627156669418022102308446036384411330678972562863413004325878365438890328206637571985169324874284800419222034)
+  (num-test (+ 2479135971595944301/28169711053558469409458629766960029324030958129245230797895768033968717159836 3427244662960653095/28446538857424788738244844756675951434179713170118835630969510829753715142438) 83533664807147783700314944003289704497366290621039272787320536148072960487262393639109696219129/400665390043739792096386856839000624247597803909916773326187593475005945995926511155915226239317839405221783416485999405286913042389632370302962776360084)
+  (num-test (+ 14865500635281371370/56222262470894935247131881777606182311286871927285650835673424014252462156319 6436092572090050725/19282524131572095520593158313261757267758159099923763177708581262473988426947) 648496060602737474174747620183913927791943082591316359990137585798909535115053578637078811588665/1084107132826611778585714784136700465449309125114745313342842325649687943726086785657821763235618936882528385000712567133180567926723616940173290425928093)
+  (num-test (+ 340196811925805824067049620503247332111/14422464039094716975 51285507111580975533385007190438537498/3230944134273302873) 1838820276033673324738967436225477772648372110186756083453/46598175588880723338390245118389369175)
+  (num-test (+ -210449319160504160992731982827917332322/5436857856220342451 251628249079137248539965770847855056283/4323109210037952829) 458271632943884346915405609513071881239303671882386130695/23504130271893362375786510953364243879)
+  (num-test (+ -40984360445255688839942109197081457275/6593417935076565019 -138094174027187773198981391229349265879/7135512300754720691) -1202957011856131413678873259651070808566709454882536663726/47047414779755620074837011989046108129)
+  (num-test (+ -289704472880230079383856507128133962457/10452740760651010288 -55251460678415911958671096669490155237/10333740726609314202) -1785630052601050832889834016432677758176770083879794496285/54007956451514283340719766211063255088)
+  (num-test (+ 276702099951674677215621541062877777467/3899918017008359516 42623843937285717338660228144403811741/1973785812353331893) 712380176058162142132059442064597996057720566915757732387/7697602851312240113570356856612843788)
+  (num-test (+ -323480614013303716597188084301661616596/12957985934572321773 -72966206939397711493108854138997499334/4539020357040680881) -2413780175334213399707013296172687953960842714316410700258/58816561943270580900205343368941122013)
+  (num-test (+ 65443777543319569578713907336699651721/218804857459609839540825438673960136766 -61986861924091374470669233802827103921/65997977315012279293170493460332070399) -9243869541956614722377007489838492339200370508580665293676272508698701352807/14440678019033825487758061900150103876633207457375858942267120523885980189634)
+  (num-test (+ 75417845823236070411341994633288547531/70553457686181702397810927701121800017 -7132208259849175775323757110664708879/24379326462014713478002790304943339422) 1335434330716260509518880689691257567128541829706203586134358870209350816139/1720045777955364955754847231620711706115121721983605654691934662747636370174)
+  (num-test (+ -144692585186931942602350348772472248638/135233395864627580439431775527364081053 282512666765911374279543408363363928190/317835040256607665191397469890906044457) -7783226336195038987381961251409043080655184208289882004756343793157154115496/42981911818671667582796085276418080952868666330715445603855323471628969373221)
+  (num-test (+ 44888992584766727877549626240272070725/30583318432547259097085073976959329092 8004917623696885952432014881247978821/22005016116109025986417835664774768346) 616299974987760892931461886440810919939264155149950328291076750435394215691/336493207496148335911511951044490614757807556827643881435283379298939260916)
+  (num-test (+ 78378756441281199312006031491361997668/175125578595003447448566412156266355477 41128705932035853424044828385766740319/216359823601433445464965619660717081261) 24160702340946845080381231961736762955784254747832931999121777482667650876511/37890139292913914697800186893609983979783140570423836226844401085057321416497)
+  (num-test (+ -36669293296367265584135816683983780855/7341750629088488427994322429098120058 -110335983484012479290765295565662258281/5944410911181873015545360879141666465) -1028036623331099574157832708037007047972965676333418398303213384036005227873/43642382546729990922161061763293407461832155878510163500678954788762454970)
+  (num-test (+ 228535455883892721240720366651075744967/13353170075841095813026701300679754576855418298534901819672803635370738730013 50622643250826426975012800479360461693/18462345430382979738234695697296360785230118465695284267226773073149552698303) 4895273294635392498665165879164922265508724130843670837390305811645771221742112327485665544066552056189958877583010/246530838530831602270074647792752210668736478466245992891169449973883874207653264921203783108295835419855394180777469634862446033810927048792871560267939)
+  (num-test (+ 11355068601761731966774720678777239425/4604724775053993730579400400679579947095967462408565975449642189823843820753 140083339434585694465706029861026468774/44667214322013486680993684507177513903616004462434123967566781106229226297333) 1152244506542792151980649054527153167035843960949499862764543674633978109831264344257976000890169981044543787620347/205680228421222079539939271800361418862113882206694593495620042859527547538342323521609420336002641308832164587573546802806916292021672743366881933951749)
+  (num-test (+ -1347509007210283053816302848714698886/1127513773036247565111791991337919355855664936242166138889250311777351432819 -29464928273311615445392112247506626497/61933028109313748081628643142485450090725737246358993405254280723087421657760) -116677425670791909053501267317366054796703074907755330120413752187834449333299886015456661052906469074533366060403/69830342199092322009251417145364324484174202256910311362396720371574344280505889954115533896831727771442604285956749924105078563356474162416148250025440)
+  (num-test (+ -324250487660721070279458563122233299722/81069650926979269606211148691445887485067008319429991878657612702576019034861 221744296343315457943731256980089803078/69422237643162665956763790134527973903052044485041686255401689654420090859107) -1511153903564243978242173323335554031611949546418082039382510246845821774680210236992700372319944685567533765722032/1876012190766999122356500320654631447623282613780323887424324139799202291067983209550065997185860196433399782230215269625922714982832188312141580824109709)
+  (num-test (+ -5518324152042099343909980322067306333/114786626838714403445081775763480415805466836213320421844559660900880511042496 -34415425451618992284220085078832944671/96012285963709194218263616278916829663708037691620330613749177799086889040577) -121088040955051148243092870850103339772063863319219725752028251933576579890093496821887384992074112246777968211161/297862876779681729593084954525306275464788137269287692384941959703420459939692410434239827100068259769782676124741025632728203586961467995819025176090816)
+  (num-test (+ -14763921690861243371082340598041267817/5580497386043551028888310256097864185640794395615400088682607872958152738111 -37917865546640067592937379176813765341/6460563866107795917092814416816176677900242086501650458839130903088333290440) -306983808565398982164654624310995401934900925070311336095043743767915008644459192438083753301097540174379867380331/36053159767181973313125557585868206969047484351694148822117591172786449966899079869470557965303954072842600790897257698854023751399649072014440219958840)
+  (num-test (+ -50167218239107621378232529938205077788547946059832391744348095230748591585676/15685777859540025727 2959973815535345735348053015389999235839609978295604181643547897863515739931/7556072538495923601) -332637648328710384664787658442281566361265475773778265650094684540358159241317316408573560734439/118522875329417757148187346888166482927)
+  (num-test (+ 36275100136090483878026478935942224245036692059657264537598788566553406654319/7192442039871568876 31833552596558882106090352174644817045294359487590746360517241517440556146007/5115621724114081523) 6795584791386081942310910570767193224876510928834120433155946649367201608618436115134135392229/603177258173744207443043238127434068)
+  (num-test (+ 1518304705177739493483387141342904186483658277690975456045607777812450680478/1837349761252804045 -98159070764971437450169149833809835519268242923913777966502463698396945141091/17238232824535200528) -154179655228376218743158291724235398278770272999447263973992852061897564252670941977524115620711/31672662964580000612902147746364535760)
+  (num-test (+ -16820231344048323866426670709751443650129113909724546927974450301780935205864/4879137683452153951 41987219452495799378686134495924115238909423831017150785452046648616005475639/10470103987572807938) 28751853386830083847297108941057082854166610198448421498169760256533906032780671559334244751257/51085078915429149801779227663330863038)
+  (num-test (+ 106981694162678522688926793970551228214793665448093395251834862896418045995969/12359470989873920972 57736849967187961211538031441400807467468650239660040144967046985609433512403/9148121311784151716) 211534804819567028232303054650327703050869189253958355919997046592895748577556985792570078031065/14133242495605447754080611005730273494)
+  (num-test (+ 32477400086615533920132766925666506741908300936974348739732763951610256880146/9045135183308696243 -27444990730472195954051975667481893116650518055101159075033425831129583042846/14815776448343565085) 232934248044934592851252865496377968609159820017147884670610366058217203617961573611006127074832/134010700820948737148715427669965475655)
+  (num-test (+ -110053921687226074580746319073262192216481755737797790655164396095655530752161/255625377233605953547425802301922658850 104095037267817888539158192425982072195078148060302393917025130946535913363779/52156238014583575190277280296975732513) 20869334635774913818120011435677143948904421430726712952150525645851498022294865158343391008006649321440592131083557/13332458017563665620865770931104425383051282278510599570476131200251352190050)
+  (num-test (+ -29732769078100192507326444863945498799317005912797369958801703828462203585495/153426302667449722633466432797809987061 36094569840376017510791155197897623093337784636438580042046806320700826250193/73286165979315961333009750429763545174) 3358855747298609357265422062476767573626163217619249414656940907348235709105513077913806378841119674678021275101643/11244025482879487592663298816607141776071841230792806495601092332558428993614)
+  (num-test (+ -5942892427460131788264792587455286675871284855854073854440582948253436001319/42136930106315714728428443448730580823 4013357443728612356640061171485791666303136232331145404661874650095235381569/4039594279673425548586623641599574814) 48367895947790658831309709091377784501687363167039737892874371817395083020674648576881857510385191335175551957207/56738700606823969419119152217721454504573192499839513549171731025354063974)
+  (num-test (+ 83833896550100013648317056712064289497247852876055488793078639582729685477353/188580876675619574786621140720273228537 -94310653397371924313725082402708514144086936359594289802762093989853507835016/223423274286761439988276492107364036191) 945257965914081840217765265999453398105151083284254483307155736205796420255026737575918161700355729594975143830831/42133356934734885127066999419230498520039134905254787577957770920054881982567)
+  (num-test (+ -14753992026457621496269953958381833108089826525439816493815533773338622353285/187171041855711408638339193132645929319 41340837577662628944845446369855468662228665858415210386857356535970453143469/322471558852595372991189266479896691326) 993354944176102401496932276511264091214577507066786487301109889019709943488537161608732610457423116833164991120567/20119112546425211128699888199278894685207186285215928241217590790016852128998)
+  (num-test (+ 1370528773439579327226257222995383030603284075640526658282329726447335048230/305600505683287165495713194488435114383 65450762047588146235054351616480175308174618406941901794570541085963681607527/78934496562987400429145916504112602768) 2234440886428442112499564751364146150136438855986167755259621093816030535881959724370423862435538502079424185584609/2680269118389404699570998335430047660909241475691839354273569734988880268016)
+  (num-test (+ -76890617375308981455205142622328108690129081798840077873315966300000409208129/15716637731576156581128288257209679492686622162926707938907282962815471734862 38716252217351070567267262306332875768795464072349655597599997486613800623507/8966639693620677733207403249675415446338239705879120765911896990394928596139) -80961151400006413290662155450270992168701818633203071886556882897757813544592915596861717853520674107309124394292702460320442121704840951425284048212897/140925427734207212133604717335369986754855062343668899363006574618520848268718851310007161609443093589067206438198588881828988648068282656538084484897818)
+  (num-test (+ -43290760758277846058307167265569849910514905939554272559141355223092464986939/39390771697068809730875092892395235497943839933482798653607450783947201796777 -34021960935937170163894986285771504067448629886312440795733904794894095253649/106500928228745564800818258673435811176493306775154643113582742982704678574998) -5950657500399238361998292872481533631424138885403498309639150240712482075115081624153513501886127772738596607451116548616099047843190357858736503567640395/4195153749384427435979718872073512266029328962522899010907363614544821318917440413166534226890289043064894115954085809567292470182917919104836361549181446)
+  (num-test (+ 17906146982204022925114071077515882010955693727109005464426577098738402001871/11978213712662686419384559301746021856683603106261241838035626618416021524231 37108371752538653389309509075248119316034595087990649061240232817571629131708/23044877611981158676785639370406786635050056158699399001947422631523989139615) 857136973087880657664203854652754375000000796400911171478039451763440064550649429609696307332611304395324153178602635490321877797571177424460384122636213/276036469018466057777760709173569478463866562650149880633721199971933767458324034017734890892482223472007882939609440193626728031771767304374122564511065)
+  (num-test (+ -77062185592993847534024832256462395143306675613123510837298699277378172890089/108133793614758275822883834459865239455798743725021300772336023406871185253111 11169356025540464491224577661206910726665825152149521753528516637690366838655/6369000033300801574913390611244042297918207179453133439308688067382050608197) 716975776667538986425481530620118513423964367153518065425241139444161780269039780459555836804116752462325735011822817367819625929553250251515977390346172/688704135133337463423649074673019029541747166391680122270752018123634233590688096940261480888455237095078029621363428114402137147558304641222314936350867)
+  (num-test (+ 13583698920327742567560325715281067532806062839142769830536738488850089822247/37364394142255392010559408553278838878570049727027927213977555360874308098434 89809462356450792524214360688853318641058652796345720882094866396911421360072/67457610947238032712889230619376608100793287037427539672885124981055281513463) 4272000026182362299819817378001862956001381379478285995446709640464951377212652125169846305230835604666564953883168949950485767679005929254184987140738609/2520512763327523955464432226120154092742373168521113224665257966793820057379494860454732800329019773731110452438496395974166220481124541266348389100216942)
+  (num-test (+ -56124163112538495128545947597589743957824668875494126834084658670528264380488/4752969512023182700122983723156599300062332404522277372984645779569746369511 -24794747728228571193100294011820993825205231022194400752319729320185378063197/98168688073468429337427023004226732413974455700654808087001957859427678524065) -5627484141989830997868845457242226973925524393512774885292323552602180052845805156311097870316601631410500655735815037997645271136502511615781690896430387/466592781448509275992390948177487068548424631274164031114910250651063315574511979617153568070687706304645818907382693929886654490427484894987856595782215)
+  (num-test (+ 17009115185923538769.0 -12047631083067675031.0) 4961484102855863738.0)
+  (num-test (+ 12677011568664239747.0 3269056182420253574.0) 15946067751084493321.0)
+  (num-test (+ 9315504781982082433.0 13857624532376678678.0) 23173129314358761111.0)
+  (num-test (+ 15226508728194069537.0 11481952022080775416.0) 26708460750274844953.0)
+  (num-test (+ 7461641943684774743.0 12249026721402718630.0) 19710668665087493373.0)
+  (num-test (+ 1180469445886971055.0 -3208456171287181032.0) -2027986725400209977.0)
+  (num-test (+ 18358552990465743315.0 221529797579218180385160273426219343697.0) 221529797579218180403518826416685087012.0)
+  (num-test (+ -14819874956616484359.0 30498815629431206969122152847973230849.0) 30498815629431206954302277891356746490.0)
+  (num-test (+ -11781881800334342169.0 112219460388643619332860331282276228017.0) 112219460388643619321078449481941885848.0)
+  (num-test (+ 3570694277032201957.0 284821691832196381859344006870088122712.0) 284821691832196381862914701147120324669.0)
+  (num-test (+ -17005463295060938595.0 69162171850264911722979835561124066203.0) 69162171850264911705974372266063127608.0)
+  (num-test (+ 15647113311796203488.0 150750467185419235519670165664526735459.0) 150750467185419235535317278976322938947.0)
+  (num-test (+ -14330150541101371097.0 -13054027994001826312503071338715966858478218093171762021549815587520723118772963817341751396703629529810372702877555022105594068768886421335353882155416908.0) -13054027994001826312503071338715966858478218093171762021549815587520723118772963817341751396703629529810372702877555022105594068768886435665504423256788005.0)
+  (num-test (+ 7406427184711759740.0 -4059250217961011548005203450962458026528281798230141192186669580689721046971433745892994467792118611646113962840750314719233572760336084100766391093756252.0) -4059250217961011548005203450962458026528281798230141192186669580689721046971433745892994467792118611646113962840750314719233572760336076694339206381996512.0)
+  (num-test (+ 8819522415901031498.0 7274905269237471130619913887005155660991437201841760414347836177003483932007334374478344594178179032728521106519295465031750530183363793325150672647162846.0) 7274905269237471130619913887005155660991437201841760414347836177003483932007334374478344594178179032728521106519295465031750530183363802144673088548194344.0)
+  (num-test (+ -7242932332215698200.0 -10558564312909325527488520195600871241245891651644550509993750377630234801225525279855157008009255586978047154906058790342845859331159009687703010657137320.0) -10558564312909325527488520195600871241245891651644550509993750377630234801225525279855157008009255586978047154906058790342845859331159016930635342872835520.0)
+  (num-test (+ 9794320575955609492.0 13380937715397052566925484435342184213544885758759259410983243841206628594840271850190097746775475837233042430565529099681550277688470325394342993771343357.0) 13380937715397052566925484435342184213544885758759259410983243841206628594840271850190097746775475837233042430565529099681550277688470335188663569726952849.0)
+  (num-test (+ -18404048401680891243.0 6690884608978704096379677348142836785900717005050936986370615083929607190833180925295418079551348559691161519822750772440155040888224482801864925665484770.0) 6690884608978704096379677348142836785900717005050936986370615083929607190833180925295418079551348559691161519822750772440155040888224464397816523984593527.0)
+  (num-test (+ -10763220363947284865.0 -30985722824355332972176356513316569304601382411274079243859710673739383446566598659878378034375348869471278415635671865753349734809209959160389615096293457362383744562507969316522225741589739150453090393424063226271167062127000223628785686999799282795143706407082119829140399988180879618548495395684946331608899565543458192773899200054228140747414544792128323269250618482622488195333106891323515989863192944848391405358725993695671970811097285270641251816244586360288952156538400321933146150313939864593445583603568771077260174826348411367609521412133720180359748539721570562669201065857989876521301209899829037444385.0) -30985722824355332972176356513316569304601382411274079243859710673739383446566598659878378034375348869471278415635671865753349734809209959160389615096293457362383744562507969316522225741589739150453090393424063226271167062127000223628785686999799282795143706407082119829140399988180879618548495395684946331608899565543458192773899200054228140747414544792128323269250618482622488195333106891323515989863192944848391405358725993695671970811097285270641251816244586360288952156538400321933146150313939864593445583603568771077260174826348411367609521412133720180359748539721570562669201065857989876521311973120192984729250.0)
+  (num-test (+ -12742462236537568498.0 8711131313747826394504271797986775572294949693272674156076339989631171694968899228610359983845552623710580616605402899155485071497929100432998183040757832449369366844015907530612334721882095163137705867337969942902346066961718232788529860214990099385213558935023241940238638069647809530490438245386869385682221280939688108487754251075630026707075310465788398213293782900699868609660892232563106662995330591906155134237356516622436517046191466823447743155250482328613449506396571170001248589926831956459700467126756876526930443317428628239358666456771112897986098390410773312792390699312960051747534683311506465130527.0) 8711131313747826394504271797986775572294949693272674156076339989631171694968899228610359983845552623710580616605402899155485071497929100432998183040757832449369366844015907530612334721882095163137705867337969942902346066961718232788529860214990099385213558935023241940238638069647809530490438245386869385682221280939688108487754251075630026707075310465788398213293782900699868609660892232563106662995330591906155134237356516622436517046191466823447743155250482328613449506396571170001248589926831956459700467126756876526930443317428628239358666456771112897986098390410773312792390699312960051747521940849269927562029.0)
+  (num-test (+ 9991390529516174614.0 7879872958436992955898278403297937595295396115022400543178444946646147916754852888072481665174663073269556311758611700754643170639645548596647557683044355930340624784190093631808382820554407595007761070026239341594197877214157118335743842022627898879376346092898666610367809537340994845045475091410516226225078052019727419030585524815982151736622865401299588936172760762386183577504972623377661437665668080131418564228642443266935225613702941906491478788336262289516199380144218708241406077806669686589734333554945412904560108150202389909124657090061223183441083590340175629756198442568877659538345749595968764873879.0) 7879872958436992955898278403297937595295396115022400543178444946646147916754852888072481665174663073269556311758611700754643170639645548596647557683044355930340624784190093631808382820554407595007761070026239341594197877214157118335743842022627898879376346092898666610367809537340994845045475091410516226225078052019727419030585524815982151736622865401299588936172760762386183577504972623377661437665668080131418564228642443266935225613702941906491478788336262289516199380144218708241406077806669686589734333554945412904560108150202389909124657090061223183441083590340175629756198442568877659538355740986498281048493.0)
+  (num-test (+ 831234034418847630.0 -744676478858160349467117341859049692149463503380690495147216354303526704924280287782902146026018180364963325847811379182950159627878800024734206345960410146056000392683000433501805629464626281031086102425271022388473812300724085127447081771317912465921636737545371909901577246384446144919253141375367648958387948463576516115079816552636772639965957498569187848459747361493535081532845254971492261148968198806736512864867151355002902241562014241077734122599581732704243705918200179789271894804233542502502119523149682814025979598424744685548054183678652651244898867735764030968089217841214778606507809487462642341164.0) -744676478858160349467117341859049692149463503380690495147216354303526704924280287782902146026018180364963325847811379182950159627878800024734206345960410146056000392683000433501805629464626281031086102425271022388473812300724085127447081771317912465921636737545371909901577246384446144919253141375367648958387948463576516115079816552636772639965957498569187848459747361493535081532845254971492261148968198806736512864867151355002902241562014241077734122599581732704243705918200179789271894804233542502502119523149682814025979598424744685548054183678652651244898867735764030968089217841214778606506978253428223493534.0)
+  (num-test (+ -6996572501442843347.0 -16567158719848992553565776505785820491834685475229611199353714982570065913508303466008005931649515528390057456882757990896824841386431756898386429000065518724021230756426613661219891419166146764347562529640689229693578574350948436847247856000438153789455857903402883189892697143647998643667467614427922009931545254965075041050860609824086811877108940020349157317276288348430058535959434983921323332907180869396258655826781438419383792024592535415693101119109484610789291889841197827977530804650015884500878613240443324806805475203272442094530735476095374446946252236490708915034012846683015547314889561060687692538144.0) -16567158719848992553565776505785820491834685475229611199353714982570065913508303466008005931649515528390057456882757990896824841386431756898386429000065518724021230756426613661219891419166146764347562529640689229693578574350948436847247856000438153789455857903402883189892697143647998643667467614427922009931545254965075041050860609824086811877108940020349157317276288348430058535959434983921323332907180869396258655826781438419383792024592535415693101119109484610789291889841197827977530804650015884500878613240443324806805475203272442094530735476095374446946252236490708915034012846683015547314896557633189135381491.0)
+  (num-test (+ -8920936222630165483.0 -18738991973681679876688842391791783563249057933653045519186959571392922172943405646958686202208790537612746921398028331540617848217445632123805070077600768524509025758950743971128222843292926773668584735575066246660802064630842300367821042873152766467703905048558085377302000898639290554395913805527529259855535801856020623830262396582180677933562523957295341539162448074423901242873918231922121053192425691524797238343327318801359521456598967984637483081312932069399045363737622797213185099130529375169698811801965974416555301085043300426947769193582129151016159057101028336667142913854943018973494705119572045938607.0) -18738991973681679876688842391791783563249057933653045519186959571392922172943405646958686202208790537612746921398028331540617848217445632123805070077600768524509025758950743971128222843292926773668584735575066246660802064630842300367821042873152766467703905048558085377302000898639290554395913805527529259855535801856020623830262396582180677933562523957295341539162448074423901242873918231922121053192425691524797238343327318801359521456598967984637483081312932069399045363737622797213185099130529375169698811801965974416555301085043300426947769193582129151016159057101028336667142913854943018973503626055794676104090.0)
+  (num-test (+ -243510292488206214847646757340020705642.0 5940577100149745132.0) -243510292488206214841706180239870960510.0)
+  (num-test (+ 35446324064743728955945058978206455057.0 -6248622708755929572.0) 35446324064743728949696436269450525485.0)
+  (num-test (+ -285342226760657637664173494795024413673.0 -11942737781617905307.0) -285342226760657637676116232576642318980.0)
+  (num-test (+ 180790435817422032042321866247362452865.0 12401641959336396832.0) 180790435817422032054723508206698849697.0)
+  (num-test (+ -179994871947239535956826388240542999950.0 13573822506399140772.0) -179994871947239535943252565734143859178.0)
+  (num-test (+ -308198027295905163635866438671452347268.0 -8790069282378476990.0) -308198027295905163644656507953830824258.0)
+  (num-test (+ -139324757925833055762410227358605285566.0 -190622873846936719063564661032771271922.0) -329947631772769774825974888391376557488.0)
+  (num-test (+ 332866352618304570046318203427223999347.0 147978646177673305481282943528696833018.0) 480844998795977875527601146955920832365.0)
+  (num-test (+ -39471620476300923970352914034802271156.0 28992893610776120142668950821916856486.0) -10478726865524803827683963212885414670.0)
+  (num-test (+ 274120253734611965146455315763505869288.0 254675910805265090692978775702306142625.0) 528796164539877055839434091465812011913.0)
+  (num-test (+ -122086811464559635596206661886176775901.0 287312583034687582188356355813963609701.0) 165225771570127946592149693927786833800.0)
+  (num-test (+ 288576174771266329955482943556556984728.0 -57843540651903655425270706396868707777.0) 230732634119362674530212237159688276951.0)
+  (num-test (+ -47977736580820486006305788441965482221.0 984809271313988066640898939725532304075331399066274624928410251834520283291912387208948664716457549646483445981126881113426109906085249657168046936670489.0) 984809271313988066640898939725532304075331399066274624928410251834520283291912387208948664716457549646483445981126833135689529085599243351379604971188268.0)
+  (num-test (+ 21225484205143479814642328762121362291.0 11839789093732539327981861490012713257538550745921177905266671749716203131127256902110452504526721633943016923389974867770082516862899595554460170417713940.0) 11839789093732539327981861490012713257538550745921177905266671749716203131127256902110452504526721633943016923389974888995566722006379410196788932539076231.0)
+  (num-test (+ -193095363331703875886398909106293703000.0 4389392021031719669078675478621418677903292147307684123866099084349756491860737402449105804868232530632178577388168068485304437343508442251302846768269976.0) 4389392021031719669078675478621418677903292147307684123866099084349756491860737402449105804868232530632178577388167875389941105639632555852393740474566976.0)
+  (num-test (+ -14827657635864183514988182371035598180.0 -7256545787852407071411458891023580461638051949278710509801472046178301830006724297747051044450550248499056073213660185258676369175307019300952192657194576.0) -7256545787852407071411458891023580461638051949278710509801472046178301830006724297747051044450550248499056073213660200086334005039490534289134563692792756.0)
+  (num-test (+ 54301423175725658626298504084995819705.0 -13385853291610595576947504757201441006088030688464261540642594993520424631577281077984278942244446266776534612440941312995898184903431893212829646845766101.0) -13385853291610595576947504757201441006088030688464261540642594993520424631577281077984278942244446266776534612440941258694475009177773266914325561849946396.0)
+  (num-test (+ 195114404067053480147948948510253723990.0 -8373866462448797623435948949281383906369538962237624940506813188612614128993186653340202956656303504523161255703176374041758276069255591562198514767063594.0) -8373866462448797623435948949281383906369538962237624940506813188612614128993186653340202956656303504523161255703176178927354209015775443613250004513339604.0)
+  (num-test (+ -308030589512186791277525017840002670741.0 -11922204352024596469278978325035646517433105521287613403902396944414655739824695945028308092245747333098422116078042326104667969967224788442970266049942774583538734406057081597034454910987815490244451193242377705191422489528853976486607580169986057592557285271953385769215318545520155212402919465580052078255078759756709086185424029620805084776442744700501748376290562843380642608395240491162047933014854466267084965223593172702334466729933986413870670083326499598274393380692146118979961818816348097032083332695128587696590646086980241100792624502607816103195636761141133903550454815591457829485684936036414823492160.0) -11922204352024596469278978325035646517433105521287613403902396944414655739824695945028308092245747333098422116078042326104667969967224788442970266049942774583538734406057081597034454910987815490244451193242377705191422489528853976486607580169986057592557285271953385769215318545520155212402919465580052078255078759756709086185424029620805084776442744700501748376290562843380642608395240491162047933014854466267084965223593172702334466729933986413870670083326499598274393380692146118979961818816348097032083332695128587696590646086980241100792624502607816103195636761141133903550762846180970016276962461054254826162901.0)
+  (num-test (+ -172649878347923210775992373331623646864.0 22180935775581457002090790736532281654456312526625354262953960635330604551829750571440878712430708012807252279301365732385899228826740712544768476577874129759972563823209525283326887563301081200476495752033290851190327066070873711444930389093339915885090143783170994309089448293499799071372787520776773788274677288230540162485916160484352398851925328125588729604931589867889917097887951581817207079060016091919559509735997493084833476849835444339835031436580214492450731100723026312163752403946315983551266206214298679421644737804098691991631489261658890937663698502561036246447760919715595005106669653475931803053499.0) 22180935775581457002090790736532281654456312526625354262953960635330604551829750571440878712430708012807252279301365732385899228826740712544768476577874129759972563823209525283326887563301081200476495752033290851190327066070873711444930389093339915885090143783170994309089448293499799071372787520776773788274677288230540162485916160484352398851925328125588729604931589867889917097887951581817207079060016091919559509735997493084833476849835444339835031436580214492450731100723026312163752403946315983551266206214298679421644737804098691991631489261658890937663698502561036246447588269837247081895893661102600179406635.0)
+  (num-test (+ 17539006966816771902104329685391462527.0 15609797782337099611892065465036826453911053690739041627254619195700021040383385710184052653282070244915503750549545390475671883312314708978681904377133928647935359080875691628246716591529028104762422990155477702994042953196747769893182153631482194578269859879402160062955490194674372351117284129320011166238130774752386987036267064693133554447596069886693581191241594745541512444806003236372840085705813835001957163976961730871756250344335996073970142337882238844723800849054637237549515249957267772181010402413375667537558243971058326641257721901094391380667244006959028327507917720426571969997513984360849930719808.0) 15609797782337099611892065465036826453911053690739041627254619195700021040383385710184052653282070244915503750549545390475671883312314708978681904377133928647935359080875691628246716591529028104762422990155477702994042953196747769893182153631482194578269859879402160062955490194674372351117284129320011166238130774752386987036267064693133554447596069886693581191241594745541512444806003236372840085705813835001957163976961730871756250344335996073970142337882238844723800849054637237549515249957267772181010402413375667537558243971058326641257721901094391380667244006959028327507935259433538786769416088690535322182335.0)
+  (num-test (+ 244901855797156286376563377540855746602.0 -22138106346578776369849317622304392466030036563754663379976505966920461958652141160336156065177498990718609170201272980114106671808245437660234479124938853665375934080221740523696180221118540569603989748587853373569525751680828044059607889572522502629277877343410298879764820905044284757389006201848194571453112545228115550224254565141563427486518108434758694923122284117299374156393942906293546318323661938734959824887786185558612820887463537294120950912969343488704744978847504513710882720654330147775174336365363311173472002077960424794151168301281665765411704505095008907760396535767621855642720080219960822554492.0) -22138106346578776369849317622304392466030036563754663379976505966920461958652141160336156065177498990718609170201272980114106671808245437660234479124938853665375934080221740523696180221118540569603989748587853373569525751680828044059607889572522502629277877343410298879764820905044284757389006201848194571453112545228115550224254565141563427486518108434758694923122284117299374156393942906293546318323661938734959824887786185558612820887463537294120950912969343488704744978847504513710882720654330147775174336365363311173472002077960424794151168301281665765411704505095008907760151633911824699356343516842419966807890.0)
+  (num-test (+ -119403662992279138748600939857239307122.0 26272999248235953724172008428088697264933069743507017434844709711501131900922919455931092196539942532993887162365511473221418376205773427597933886270411672062672089518774390132453916538404354895529975888201032175628249480896964400801763570333497287321002961557096975786141940970260074557095118887294558700145949117395512768347250531196100831164663613049206690894640391431616112104502483838173255614981302462548882276825096564828583591963617871547373532874400764134244496979962241959713525053686209002866840900623246072884125102845824992994967009109046451949348656842486048332953732384499190437432898387573320391878853.0) 26272999248235953724172008428088697264933069743507017434844709711501131900922919455931092196539942532993887162365511473221418376205773427597933886270411672062672089518774390132453916538404354895529975888201032175628249480896964400801763570333497287321002961557096975786141940970260074557095118887294558700145949117395512768347250531196100831164663613049206690894640391431616112104502483838173255614981302462548882276825096564828583591963617871547373532874400764134244496979962241959713525053686209002866840900623246072884125102845824992994967009109046451949348656842486048332953612980836198158294149786633463152571731.0)
+  (num-test (+ 313963939617834410089002930298454269912.0 23286645405607099799151331553995799851855144387826191186590140820016670502830395945076644578998873585162998873396623634135231418574284200209367505115739462344028303923666952261030907434438322884189133236837089851688275865098623902644385995630973049587854251981548128145516004461191094062488421288607625783540996659060285661398859383778209495884203323937672739376151794507745282074538961033778823733980759695886879886017489555795079194346438911010371103435094677167286870898482214310646392174423422237727456012197253183422715313378603607058548706460095379882633958651034759773864354021315490712575535559549015858088608.0) 23286645405607099799151331553995799851855144387826191186590140820016670502830395945076644578998873585162998873396623634135231418574284200209367505115739462344028303923666952261030907434438322884189133236837089851688275865098623902644385995630973049587854251981548128145516004461191094062488421288607625783540996659060285661398859383778209495884203323937672739376151794507745282074538961033778823733980759695886879886017489555795079194346438911010371103435094677167286870898482214310646392174423422237727456012197253183422715313378603607058548706460095379882633958651034759773864667985255108546985624562479314312358520.0)
+  (num-test (+ 2000877973959266893810594143560134441447453310844726478119781029700338468704683515329516333146806175216349912753585564808803731447160643580198590073658869.0 -17993015014355471903.0) 2000877973959266893810594143560134441447453310844726478119781029700338468704683515329516333146806175216349912753585564808803731447160625587183575718186966.0)
+  (num-test (+ 5492930533666246223206322654398877802091439062008700770880939594548305919677404080859141226095489505872709347538974725998600861651942609010590873980143878.0 15372278140141207703.0) 5492930533666246223206322654398877802091439062008700770880939594548305919677404080859141226095489505872709347538974725998600861651942624382869014121351581.0)
+  (num-test (+ -13405500833215428652808705089190188280715732437731292502890523313631564795139560159124390691283401484515088713758307366404145018349044148223082253439210893.0 -14793401891248640808.0) -13405500833215428652808705089190188280715732437731292502890523313631564795139560159124390691283401484515088713758307366404145018349044163016484144687851701.0)
+  (num-test (+ 9945195259699924701593703207751086973468898794114625092150620088406276196469184233537941913755508476427888065765634203723512911676149274871082481174186606.0 8699133332160461067.0) 9945195259699924701593703207751086973468898794114625092150620088406276196469184233537941913755508476427888065765634203723512911676149283570215813334647673.0)
+  (num-test (+ -1785165974800693006461065312083337532938610906605533088558498259067461510781028452552786542598361030690629530721209490413999022804146471920873844686294838.0 -13079925952361275418.0) -1785165974800693006461065312083337532938610906605533088558498259067461510781028452552786542598361030690629530721209490413999022804146485000799797047570256.0)
+  (num-test (+ -4861207515430071951958387366611380234482792653010151054346367776006873932152600469133110239669746470475230906073865131648496652783311445471793936775767736.0 -9381557743227419896.0) -4861207515430071951958387366611380234482792653010151054346367776006873932152600469133110239669746470475230906073865131648496652783311454853351680003187632.0)
+  (num-test (+ -6638723469626495957966112633999375479181736600737250559572415894485618850919815869703127084789143821420728194272094956858541960962483734293877093635361160.0 277811698220276334443479876776376776138.0) -6638723469626495957966112633999375479181736600737250559572415894485618850919815869703127084789143821420728194272094679046843740686149290814000317258585022.0)
+  (num-test (+ 1983880417172931934469534542170437296262471214582817006917470485544552211448284732460451903536334682269123998240709059499894818265755197559390728940140016.0 -118940994129137705779355371753506018694.0) 1983880417172931934469534542170437296262471214582817006917470485544552211448284732460451903536334682269123998240708940558900689128049418204018975434121322.0)
+  (num-test (+ -9354509264984586574958285335910611806441061705184818350015454221731287473282231343722010109181841005578131927454778025302197744540571159656556971614966757.0 120224841184491944160266976391113485817.0) -9354509264984586574958285335910611806441061705184818350015454221731287473282231343722010109181841005578131927454777905077356560048626999389580580501480940.0)
+  (num-test (+ 4389359421234641412950681847970318834150108533025088077429496538447029921663033978550089607257809597829358374972237448178553189381274150213236222139873594.0 106674783386899772113212633712093787897.0) 4389359421234641412950681847970318834150108533025088077429496538447029921663033978550089607257809597829358374972237554853336576281046263425869934233661491.0)
+  (num-test (+ -9319417879153488839579936799737117639058244394679644240663244688680826325564084529474537634510092069422987165268448907193562300482925125162731530249763801.0 192969103435503875767216559494769734726.0) -9319417879153488839579936799737117639058244394679644240663244688680826325564084529474537634510092069422987165268448714224458864979049357946172035480029075.0)
+  (num-test (+ 1394404616168163951844558734723678125985464491792846741433683801962971891047718103736551854371207400145441134823994228143957746922511631911996296931168332.0 -211230038021470285136061932161632203274.0) 1394404616168163951844558734723678125985464491792846741433683801962971891047718103736551854371207400145441134823994016913919725452226495850064135298965058.0)
+  (num-test (+ -2935941510094051560788359387128767361559188973149773593522440619832472030019457317998381634585179453958737810428870232715146002408187749944694186205812791.0 -1221176156661231926164756142840452419679061324806989304452215660535991083923207702827717652226257158321829748247784282139952864899457896871473184473608543.0) -4157117666755283486953115529969219781238250297956762897974656280368463113942665020826099286811436612280567558676654514855098867307645646816167370679421334.0)
+  (num-test (+ -1338674579024795395027232680327531457830908239605718353094975139226848400289367913459076082700361212506196070727982446232782659114647371030398516119682505.0 -1298372177520411182435886041880377054374169787570856408996533471838082317927648953576721017727347029007573543972764860712708420553928791798580799809858729.0) -2637046756545206577463118722207908512205078027176574762091508611064930718217016867035797100427708241513769614700747306945491079668576162828979315929541234.0)
+  (num-test (+ -2072456075229532951804023218627137969798924912365258263779029006567941400203608770518731715660383378937120213112973528605594220795605977413985543331908189.0 -9744489461776287963808523409593616918248399004543154581056479712028497082820841423941781438667661074968238703192056877665754560746003512076830245760254982.0) -11816945537005820915612546628220754888047323916908412844835508718596438483024450194460513154328044453905358916305030406271348781541609489490815789092163171.0)
+  (num-test (+ -2570682164188734368809161664810917340861573482754788446510182252413437925852206735928397938304353826925422441004271229738766803460790995673395984247950088.0 656920705293329551826685120408221577679101260931105312141757138825917579070505267306626244216341686712802796891966598838285570807961966448181138356047523.0) -1913761458895404816982476544402695763182472221823683134368425113587520346781701468621771694088012140212619644112304630900481232652829029225214845891902565.0)
+  (num-test (+ 7846359203342053693101523606887617345982401999003795257520576318451663998927274759872692123323796450295314377046602880394071105863527900699633560551732837.0 3683380639347829102597675045842249667669675715600522157867595962635108482512780509393310714588544837398923613138772339053021025559943198965234376657126821.0) 11529739842689882795699198652729867013652077714604317415388172281086772481440055269266002837912341287694237990185375219447092131423471099664867937208859658.0)
+  (num-test (+ -11692323148567132684205145901751681947225824260005631214936266006610207543813382900867093989444659986091234552140689684476541703112098935301322850961583953.0 -8534276689564199122569555420819240948691777228327984555753862457592427992599992931175844172478864477440165366128106812103785256271256853749622592560655914.0) -20226599838131331806774701322570922895917601488333615770690128464202635536413375832042938161923524463531399918268796496580326959383355789050945443522239867.0)
+  (num-test (+ -10734754884168724884333968138739681643742524619139397687680049322697740991391014196697040576174049452737571835233123127815762146577096625434481167057340772.0 17059878151450238567815178684522345445687980385106446646013863901583786249398194029757376950491550197185231926262467028755342392379269039238766592672298850588065335172902157386017520689203005559576263548017475991638498600879259882041932152385436968424098224966518534467302264172016376096778201462205990822825056602379115848799619564610033123837036507127427054121975400703490855123544706355545059512146550901507159940126280812512339749605195422987937677650572797378799103456094203126081464905326203083057134061673694975250599375795827437561275156235513192978645909947341297774926450637694325145427434486258223666250272.0) 17059878151450238567815178684522345445687980385106446646013863901583786249398194029757376950491550197185231926262467028755342392379269039238766592672298850588065335172902157386017520689203005559576263548017475991638498600879259882041932152385436968424098224966518534467302264172016376096778201462205990822825056602379115848799619564610033123837036507127427054121975400703490855123544706355545059512146550901507159940126280812512339749605195422987937677650572797368064348571925478241747496766586521439314609442534297287570550053098086446170260959538472616804596457209769462541803322821932178568330809051777056608909500.0)
+  (num-test (+ 1982582032974021971225071139786536402936929744496433027195224299475980201425925452469321205602618940472354066218156609448199804973454183972974358405933935.0 -5591374624026484498020036332218412149978824230210339582240360391202660977358546150723165491729699122647688030937226316069237264083850854032732663284717882873051337566653841254365703461654061656817936193716386141166210237666314879751427421825450110467888973152907618520704486700443275358649289847595635931220181024199692771066498714511145489237541761266539978351840438236927937894376002981658065431416811632941197501676956304254109064936038146674412392128883565757325842468006824235119684861972224857533964558963441079998949499582965764591461900562931342373507763081479989957632695010603500633322408246084430203281475.0) -5591374624026484498020036332218412149978824230210339582240360391202660977358546150723165491729699122647688030937226316069237264083850854032732663284717882873051337566653841254365703461654061656817936193716386141166210237666314879751427421825450110467888973152907618520704486700443275358649289847595635931220181024199692771066498714511145489237541761266539978351840438236927937894376002981658065431416811632941197501676956304254109064936038146674412392128883565755343260435032802263894613722185688454597034814467008052803725200106985563165536448093610136770888822609125923739476085562403695659868224273110071797347540.0)
+  (num-test (+ 11532228364136654310006206557545352284448588590560137249197311142901246089838098630841794341370689745410654263817911440601934362503092628725755210859171724.0 -25776236925500995542036591604259749301547568770017466769502569415611770276300787105037848049555500555975152877716727294374436703766730618054071617947449695177320842403963009384468257891933593584757723535299746543328292715942626303315235241470269740287031317322772461137186093930239744879822272349431389779234805703118929710210161489122272898252221025966631463842234537744822906696719691188223105175714602909117904182229960075276443648211003011686250829474364425483901920822837775032295913486152631638908227467242772081310515646217115760180349854601959031626524004201825198439309850266508687796415478396821644422350208.0) -25776236925500995542036591604259749301547568770017466769502569415611770276300787105037848049555500555975152877716727294374436703766730618054071617947449695177320842403963009384468257891933593584757723535299746543328292715942626303315235241470269740287031317322772461137186093930239744879822272349431389779234805703118929710210161489122272898252221025966631463842234537744822906696719691188223105175714602909117904182229960075276443648211003011686250829474364425472369692458701120722289706928607279354459638876682634832113204503315869670342251223760164690255834258791170934621398409664574325293322849671066433563178484.0)
+  (num-test (+ -2603756427337798371354526130541868239006085657393372011847827118826669474695402075575479286172808099892726251004549675772420422527946534088483901153485670.0 -10844269742362409682236511127219508926736627172993604953084481596070757241623728297275447608738915355190715664012379562650777199088096670239050254578284071100042116609747208178716191571268815994455064584659920497876052406993834873124981417288518101426395560764186717660091472734401090302285129741058888303693710456902635092811413971399734306158050053239768185860958896447298052082493590498954512083131068867270078638929796561440903919430094619437872896595720463663570751134804664228918188923926951933302878771189484614604311920655871182974081898031051411394311700207305532216445616083858025977851570522763537300875989.0) -10844269742362409682236511127219508926736627172993604953084481596070757241623728297275447608738915355190715664012379562650777199088096670239050254578284071100042116609747208178716191571268815994455064584659920497876052406993834873124981417288518101426395560764186717660091472734401090302285129741058888303693710456902635092811413971399734306158050053239768185860958896447298052082493590498954512083131068867270078638929796561440903919430094619437872896595720463666174507562142462600272715054468820172308964428582856626452139039482540657669483973606530697567119800100031783220995291856278448505798104611247438454361659.0)
+  (num-test (+ -5929887196386997518766568868806997104240129372360669348628384183712406620199102166145939206783172815805659513128544493795329100599632286529420772709366102.0 24544958491142793859949310604465694574872439331169358241746200808802938771527900616394258199996170862256988647191747967628756772368808644819831481350919782560499270148419601775750932556119448001824346026042068416905254113155445053931789404515589532235225580737103411251232560863878948880220469490014568323308965914171394449781093816607870593225534700167342589927524232815571862258490314644577819742372918446373756857848586825568514909823940075182825283229026250682015641747568282510036326125505522447591703308661608718100933027549520132308555240654655887041040427813131621391320267698106519650611462269033902177180035.0) 24544958491142793859949310604465694574872439331169358241746200808802938771527900616394258199996170862256988647191747967628756772368808644819831481350919782560499270148419601775750932556119448001824346026042068416905254113155445053931789404515589532235225580737103411251232560863878948880220469490014568323308965914171394449781093816607870593225534700167342589927524232815571862258490314644577819742372918446373756857848586825568514909823940075182825283229026250676085754551181284991269757256698525343351573936300939369472548843837113512109453074508716680257867612007472108262775773902777419050979175739613129467813933.0)
+  (num-test (+ -8848084327536592532063677611386811805244460767433749071435930786126721080365289638381557872263825830664387392539638767251180242665642373539064690745095464.0 -15917950175678012281826361248776190984758236997789474333609547749168308439513527143790323694526378056113636462939674273462177686456811495629631337058042159570336251822399402513133598701991665209363955263097315081570618652783181494594400709239428597117944511110842795526862595552977665064029517628515465251448116061875878430407784298951946811321795808932206846491091803276390661869369638950672478828532423383951689632136029256108992610781912267083149156104328033893238864631158195280554850035949666897861529711006187241710164902350100555999894332438423857208747342184052953230247487231455921360593096823760117493579248.0) -15917950175678012281826361248776190984758236997789474333609547749168308439513527143790323694526378056113636462939674273462177686456811495629631337058042159570336251822399402513133598701991665209363955263097315081570618652783181494594400709239428597117944511110842795526862595552977665064029517628515465251448116061875878430407784298951946811321795808932206846491091803276390661869369638950672478828532423383951689632136029256108992610781912267083149156104328033902086948958694787812618527647336478703105990478439936313146095688476821636365183970819981729472573172848440345769886254482636164026235470362824808238674712.0)
+  (num-test (+ -16314775600714318471451792035636584056297958597339492996728118376578145765736873313518831390349547274517050864260054903974054712997529177834428786007341762649083404743713562157667828894017440065599882523458121037421757904691003094608420565550031561905074671735751685371533975894842331113347413787808917193134135744321547478500861021485075363990553639161661734684228250909589741380076008551020384304303171431833670236949934603973673998262066558668396388979463892768199916011368116729432353268535563246463324517035331079693172060671712718486388759443825620676228470068291448236914050793177812037679396721657020438979754.0 12553426083939460917.0) -16314775600714318471451792035636584056297958597339492996728118376578145765736873313518831390349547274517050864260054903974054712997529177834428786007341762649083404743713562157667828894017440065599882523458121037421757904691003094608420565550031561905074671735751685371533975894842331113347413787808917193134135744321547478500861021485075363990553639161661734684228250909589741380076008551020384304303171431833670236949934603973673998262066558668396388979463892768199916011368116729432353268535563246463324517035331079693172060671712718486388759443825620676228470068291448236914050793177812037679384168230936499518837.0)
+  (num-test (+ 20637030084881771176788188367974505419050866216433677435050410899110162793040751338330447574748263391136356400036001988938659722098883893353523409458775455519257672423829361150611806294256710309281788819450225670112435352092313483086404714074567539245791066202051788986426960935796927738180831688497683293306590464598379493141645539253898709000874685535467854788184424886911457134522632486730390913239660179785071885982403741669161655812015114272497907946919026898579927936299607156006210124954460880383605958519412435713868501997649784658832599101777001703519408664662715322044086646014163774269660274683400619225321.0 11620128128044940816.0) 20637030084881771176788188367974505419050866216433677435050410899110162793040751338330447574748263391136356400036001988938659722098883893353523409458775455519257672423829361150611806294256710309281788819450225670112435352092313483086404714074567539245791066202051788986426960935796927738180831688497683293306590464598379493141645539253898709000874685535467854788184424886911457134522632486730390913239660179785071885982403741669161655812015114272497907946919026898579927936299607156006210124954460880383605958519412435713868501997649784658832599101777001703519408664662715322044086646014163774269671894811528664166137.0)
+  (num-test (+ -9838804688358141062268493389453191808060717708062736103828856866310283812230958467655270667206937622979717683919584610288962829724022506216738929136418489468786902364550847498615864720240589837282441807174290461916292258263929411081218952357662703079709351365960916688275651864441386750529258343003652300629003597744958152243494244227986280506395347894285277364095898602965258114321853474000520432831298793365139040664543928707100657375292032051256485942532600998813627925626928634068613637417702688610315924917761411247617905738119218110678854564441914784262998574445847209847985439514580300936248281049628734475702.0 2380166482232871816.0) -9838804688358141062268493389453191808060717708062736103828856866310283812230958467655270667206937622979717683919584610288962829724022506216738929136418489468786902364550847498615864720240589837282441807174290461916292258263929411081218952357662703079709351365960916688275651864441386750529258343003652300629003597744958152243494244227986280506395347894285277364095898602965258114321853474000520432831298793365139040664543928707100657375292032051256485942532600998813627925626928634068613637417702688610315924917761411247617905738119218110678854564441914784262998574445847209847985439514580300936245900883146501603886.0)
+  (num-test (+ -30961575335426221869515496362216292453766907587859856766456625722888557357647164641922707199324601608700561081422636642523431947551124957385652791834855425829101761914145137205962610515642614866296480715893528289170482422505734612327038754622917335073993027434927547277037587173529054849390646376806910407207016292483185533697336599641898250465186168797820802225861771331652801064811222606773495565340386327294310913503461903243119204619412324538886439122443769008953829820425376589389335553937319588224864611583436327810214798652896733118881040503785110481197462772022447173744898802421806800203373153221004361953729.0 -10586442965055062759.0) -30961575335426221869515496362216292453766907587859856766456625722888557357647164641922707199324601608700561081422636642523431947551124957385652791834855425829101761914145137205962610515642614866296480715893528289170482422505734612327038754622917335073993027434927547277037587173529054849390646376806910407207016292483185533697336599641898250465186168797820802225861771331652801064811222606773495565340386327294310913503461903243119204619412324538886439122443769008953829820425376589389335553937319588224864611583436327810214798652896733118881040503785110481197462772022447173744898802421806800203383739663969417016488.0)
+  (num-test (+ 8835746018617511846981408800319983340292665114153404569022025834059427359831684523399830234196625160662387716033871154398104436720494608541518837969397374272734698261557358249258503982414578618525420572597611597792132117034895074841909295420434392963714805547538976612884853497014341345150095544449860198192757839489063747595073430612069212219930749783824683135433987509303139260133564905961552149844964215891730262218278214035649706577154652729844092199333026620127958228847111442161350881527928460177763370427262298116900358910460957772350452949782281117704005514462730290063772968929608448642592954601418753021512.0 -12227722924075527556.0) 8835746018617511846981408800319983340292665114153404569022025834059427359831684523399830234196625160662387716033871154398104436720494608541518837969397374272734698261557358249258503982414578618525420572597611597792132117034895074841909295420434392963714805547538976612884853497014341345150095544449860198192757839489063747595073430612069212219930749783824683135433987509303139260133564905961552149844964215891730262218278214035649706577154652729844092199333026620127958228847111442161350881527928460177763370427262298116900358910460957772350452949782281117704005514462730290063772968929608448642580726878494677493956.0)
+  (num-test (+ -5455184800550144006991157215735481579353213544152145628297990102571936052187486515129266239245491863623978659179559754999567936067584384479787934704340911556625153536160778495579370425428019248950494107696016864499055854257192071541354806671987402367524770228296322497224645429524493838356022616251290117624472061673033274133156467148770562815676767117605001434288573911556053311048284534341905722947046607192815465807736361991479044698448267471087552952494477144251510778491315012457514838113324210534577956298926109164909779987221094000880908857594198276812276890284008572664102792405452379662935026125770444036994.0 -7349798942312432150.0) -5455184800550144006991157215735481579353213544152145628297990102571936052187486515129266239245491863623978659179559754999567936067584384479787934704340911556625153536160778495579370425428019248950494107696016864499055854257192071541354806671987402367524770228296322497224645429524493838356022616251290117624472061673033274133156467148770562815676767117605001434288573911556053311048284534341905722947046607192815465807736361991479044698448267471087552952494477144251510778491315012457514838113324210534577956298926109164909779987221094000880908857594198276812276890284008572664102792405452379662942375924712756469144.0)
+  (num-test (+ 27233955893140063612427006607965940109569052437681267421929959186535416115028420267622879017163568256526042146282241931623674996867133390355390677118211537487769195270234259640386625552763891339073878417517169618832945750393661600092643257470064376916337734385887099957095417541169462231630821139075814859604097878094729685589777579267192538715202397220666651307185763054526407234767132218634060693076054116575833737797189157152326979078121760900891899319809724675232853322526718686306470372869701173824664984405178677187081936624687293494821338781534163633206006387449585716391843039459733925494003066841874935048611.0 -66646390577667468207341453008390168215.0) 27233955893140063612427006607965940109569052437681267421929959186535416115028420267622879017163568256526042146282241931623674996867133390355390677118211537487769195270234259640386625552763891339073878417517169618832945750393661600092643257470064376916337734385887099957095417541169462231630821139075814859604097878094729685589777579267192538715202397220666651307185763054526407234767132218634060693076054116575833737797189157152326979078121760900891899319809724675232853322526718686306470372869701173824664984405178677187081936624687293494821338781534163633206006387449585716391776393069156258025795725388866544880396.0)
+  (num-test (+ 15030400024888781078933103028897733817304421960545019199443871381537070197157227994520524631721701055962609956080413517776229513420814407790533237358129529547793422514837651333555776540939235592155512951229106778709351772195248438493792786143040421233061520515971787881798980515709417481015662862327435825812557205663033601853937647320838585333754027488605638576977560072206293290493215523194883494322543800546276353830683084405428005815296131527861252717516620765986589669237487765523936713749717927502645633123584240464131140829496052170285171610845098023517906586134613874506419828208611247177336492131262918439281.0 -164048419232636429449474429717211197442.0) 15030400024888781078933103028897733817304421960545019199443871381537070197157227994520524631721701055962609956080413517776229513420814407790533237358129529547793422514837651333555776540939235592155512951229106778709351772195248438493792786143040421233061520515971787881798980515709417481015662862327435825812557205663033601853937647320838585333754027488605638576977560072206293290493215523194883494322543800546276353830683084405428005815296131527861252717516620765986589669237487765523936713749717927502645633123584240464131140829496052170285171610845098023517906586134613874506255779789378610747887017701545707241839.0)
+  (num-test (+ -10227062646189307616073129048534031298512434237226774743330733206156788005874968173984804649812506029813402205606562016228122184161577517837608957023376079537037472977098465137152327215807765130656192272994478964341604278041664840636982572214751638093860605132350960802560601354006634296348422600320863531059118477125143903734159707623839282511184908969206873548650544269932394344952983661665472663102992782521888857016369837211403335306200813816060883478434441858442549261115972947741929087886423170398410216855322384956160289855500229952405068604320121652911887067414460828300146993858360430784079225137421074839819.0 117460076430162201914796277915447781936.0) -10227062646189307616073129048534031298512434237226774743330733206156788005874968173984804649812506029813402205606562016228122184161577517837608957023376079537037472977098465137152327215807765130656192272994478964341604278041664840636982572214751638093860605132350960802560601354006634296348422600320863531059118477125143903734159707623839282511184908969206873548650544269932394344952983661665472663102992782521888857016369837211403335306200813816060883478434441858442549261115972947741929087886423170398410216855322384956160289855500229952405068604320121652911887067414460828300029533781930268582164428859505627057883.0)
+  (num-test (+ 27989453264793973121573869640708223239762902243991948581280654553806618470632044367386680716040316895884976837122054709584963028986161694425215067648887944710852278135008221491665079705797192389681328802747226171436158375378499411314855257919224316919346771317457123252623293612958336691335423245293660257386649100685560072354549579281852792682734916555498283053758141666658137856828164206947320523255487437004565021167276952652515632644458005291855624829941937578229983628962137595011570216766689546500517528191189928660433013004254032861383790553611840534023221000900694995707453499030166286828319347894538505334235.0 -59175168207571178843658955348404514921.0) 27989453264793973121573869640708223239762902243991948581280654553806618470632044367386680716040316895884976837122054709584963028986161694425215067648887944710852278135008221491665079705797192389681328802747226171436158375378499411314855257919224316919346771317457123252623293612958336691335423245293660257386649100685560072354549579281852792682734916555498283053758141666658137856828164206947320523255487437004565021167276952652515632644458005291855624829941937578229983628962137595011570216766689546500517528191189928660433013004254032861383790553611840534023221000900694995707394323861958715649475688939190100819314.0)
+  (num-test (+ 1178650930337394440162727078866515771626896502845852711186000991913866844090831426017480263676964607121490209778220339316756171449922437605552456088105443130477974682689512446683178356259305893852096425478878588001446154476458310269704392486398646169362313605456233489086567865316333034897433650974160168545492823208575634152241341906068149887959566983066154182855136114289266802474404127414747112706158621650063987662749553991791509795764642256261917497984177610694405881831052199417235241109412927893781778469398975117797578753730248539151297798807326284978255001046995523851829184120171969918537718488250577987049.0 -151873924489040812813761508259707631973.0) 1178650930337394440162727078866515771626896502845852711186000991913866844090831426017480263676964607121490209778220339316756171449922437605552456088105443130477974682689512446683178356259305893852096425478878588001446154476458310269704392486398646169362313605456233489086567865316333034897433650974160168545492823208575634152241341906068149887959566983066154182855136114289266802474404127414747112706158621650063987662749553991791509795764642256261917497984177610694405881831052199417235241109412927893781778469398975117797578753730248539151297798807326284978255001046995523851677310195682929105723956979990870355076.0)
+  (num-test (+ 28233332719950979786871881804755080223325040620170668729385709165879717973040387558150293205758215739710262749733170837042434162049732587908182282319848154049410849721309988807368466228286699721201975848741931128639324322061892706638973259354962358866000024260698793885547287093369940035337370984725857550291339492871017395328145015077506882578124550084937438336881072124376107623716831044079223921566902242543198986921476998895559488862309653154914291349588095330683589871173449191854284433182368052817373384461363574550061788800329400860372148193491004593903732351395815409821222597665222975816418433744748143385431.0 -43245950360315656184924888243641533635.0) 28233332719950979786871881804755080223325040620170668729385709165879717973040387558150293205758215739710262749733170837042434162049732587908182282319848154049410849721309988807368466228286699721201975848741931128639324322061892706638973259354962358866000024260698793885547287093369940035337370984725857550291339492871017395328145015077506882578124550084937438336881072124376107623716831044079223921566902242543198986921476998895559488862309653154914291349588095330683589871173449191854284433182368052817373384461363574550061788800329400860372148193491004593903732351395815409821179351714862660160233508856504501851796.0)
+  (num-test (+ 17311283930487575047109155431670372891723312431004343097275158353815289445461275098157423001160013464866170709729134076291306322952612660169010483426086431377525432637844274608988581691477819008626983761905899834444008235608280930166913911248710072733217113558125600345343437000427963292980921009445490627620344145866648036116660335905940809860199697939729919140888034303887423527841395304960072549430314367914315102150378504502158659627719016733307736583749830415574905929299482373462584995162798576853564481617711234957058703455021082855018642616999836886763535412642684228990890160568207941504887072856663966242787.0 1954009743321912552050341299974626734964446274711484506734354360114801426013796892421541915293157994203607853436799102383078659985249097057923578528366737.0) 17311283930487575047109155431670372891723312431004343097275158353815289445461275098157423001160013464866170709729134076291306322952612660169010483426086431377525432637844274608988581691477819008626983761905899834444008235608280930166913911248710072733217113558125600345343437000427963292980921009445490627620344145866648036116660335905940809860199697939729919140888034303887423527841395304960072549430314367914315102150378504502158659627719016733307736583749830417528915672621394925512926295137425311818010756329195741691413063569822508868815535038541752179921529616250537665789992543646867926753984130780242494609524.0)
+  (num-test (+ 1135960177108146621604027872788612991247811085764456406834564014092038611848908717507207251239454266163702244932570537009884467598603226302482406831131219148530146321028801515381981782506355042255201016953375149829517466449677312249611502599434850555618739830488706171667035140895674806873502543300909514568759918040129665855731078258004983486524477103833885001539135541445685573269814159175744401893663504523858005835387122082112362666991112899837534230326730196110477118156871579503345757821268248575583821695674912517830056856597644827244194658166928026249459511837772775196175188368236573504643083995409774002567.0 -5513982495816270388232134254127393284677692173792609278582774509636977743203029647121158805174638642867428501907786521939155900331399058909602425073976766.0) 1135960177108146621604027872788612991247811085764456406834564014092038611848908717507207251239454266163702244932570537009884467598603226302482406831131219148530146321028801515381981782506355042255201016953375149829517466449677312249611502599434850555618739830488706171667035140895674806873502543300909514568759918040129665855731078258004983486524477103833885001539135541445685573269814159175744401893663504523858005835387122082112362666991112899837534230326730190596494622340601191271211503693874963897891647903065633935055547219619901624214547537008122851610816644409270867409653249212336242105584174392984700025801.0)
+  (num-test (+ -30369736932762868789456108597366835061749107555998091727589163626331595118680326568212941898571309672187038272915036839449380083450246957904300051802617002374912724325419651633014408152565340519439718081357147324136023867003917288524338643759680061563616479323818330115572573568245719292922176485298767387601922362893307843067637295955606642841006993776777666041277965868780958830666697755738164183356399977211227424725670822944234275611849032230010745799964550976844117943559190671369193871330514473741920389633762695829790016565565261170688485790141638094160105909405353382982945608773290740598479367828342651860878.0 3451570547959142767282758882796967240086418127970526029661337442068316209707489088420708984628065070358319478649952710478991064476168799556496237099109563.0) -30369736932762868789456108597366835061749107555998091727589163626331595118680326568212941898571309672187038272915036839449380083450246957904300051802617002374912724325419651633014408152565340519439718081357147324136023867003917288524338643759680061563616479323818330115572573568245719292922176485298767387601922362893307843067637295955606642841006993776777666041277965868780958830666697755738164183356399977211227424725670822944234275611849032230010745799964550973392547395600047904086434988533547233655502261663236666168452574497249051463199397369432653466095035551085874733030235129782226264429679811332105552751315.0)
+  (num-test (+ 24749014370880469345815230363662696846133977441600857690896762642529872426102613384561609594131771018575590861342023688138502403609639138062665279129058939911797019091643704220495944170754490238422880589600838613701783818105188827633578438439212856537589855796204839275633245851474930725845096235668385012500773524750522781174430369067441632028068262240870795850561389232369373523415592833273932285308223863420210049445377497367753786125779044716949754454461623397410528064697616617917065021866397277409044449982605591256067763430930720398889239414812509701319783809830072841056369381573100589260104551934136733317845.0 -9461623592584966196513107657889418526847060851423069480904645009418813160370721071067349946095573698635859409908288864150475056170059858850823883834932131.0) 24749014370880469345815230363662696846133977441600857690896762642529872426102613384561609594131771018575590861342023688138502403609639138062665279129058939911797019091643704220495944170754490238422880589600838613701783818105188827633578438439212856537589855796204839275633245851474930725845096235668385012500773524750522781174430369067441632028068262240870795850561389232369373523415592833273932285308223863420210049445377497367753786125779044716949754454461623387948904472112650421403957363976978750561983598559536110351422754012117560028168168347462563605746085173970662932767505231098044419200245701110252898385714.0)
+  (num-test (+ 19070246171469235561279483225919489206942407814032615339351735800304747459507922411906751965555240682457214768298108831815622470433175555196912899313888991765436434867025639919521068437191248198117664398275835972573354886915721765715992151871453808224011999677700078879590132676060988550961950472536029228350169237717222998397029428440792110955380302156159849645211726041489206565536560827557279129751110297078563108009278363910936720061216511798518178957070787710331228500533067546198458251241005176280410230146430275074766072259256583499095689284871987010372039977403712023630453400259082684930755893684499232318008.0 12330599952818018622104330691506128012101935028731995985677032980931398338453806827555760801312052792065671886621851470997557806941112316627790755867100463.0) 19070246171469235561279483225919489206942407814032615339351735800304747459507922411906751965555240682457214768298108831815622470433175555196912899313888991765436434867025639919521068437191248198117664398275835972573354886915721765715992151871453808224011999677700078879590132676060988550961950472536029228350169237717222998397029428440792110955380302156159849645211726041489206565536560827557279129751110297078563108009278363910936720061216511798518178957070787722661828453351086168302788942747133188382345258878426260751799053190654921952902516840632788322424832043075598645481924397816889626043072521475255099418471.0)
+  (num-test (+ -20895998178036569919774658790651496115060841511658297683195804524712012347695091074325978179977718571444320688167469052862702339462089668992243209990795362064005869602003990235714500149401994013174762139297327430396441552225926368085284222509085197484452650071390132794942944512235132641643003294762547138305644086106533258432786768644384855008506026923783604514268955071498269812887794817192371944269611642901807443894686178438687102834127061425955994253034824027771176714559050403098437684091684851207513969915720607528045624635094984539637789113651579846373399975502788877555747414523231999341294756679330384323996.0 764238600803843266244444637050072967342049538611688895792923539838804953492110953673720766879606601435939162680753428779068917662740403667549850724878795.0) -20895998178036569919774658790651496115060841511658297683195804524712012347695091074325978179977718571444320688167469052862702339462089668992243209990795362064005869602003990235714500149401994013174762139297327430396441552225926368085284222509085197484452650071390132794942944512235132641643003294762547138305644086106533258432786768644384855008506026923783604514268955071498269812887794817192371944269611642901807443894686178438687102834127061425955994253034824027006938113755207136853993047041611883865464431304031711735122084796290031047526835439930812966766798539563626196802318635454314336600891089129479659445201.0)
+  (num-test (+ 6243894672855694190803081952962387322599009058758027960092936187687064819462191583137945440936085088260632250436567758576422207449236613172605950116622271404444221039084346501796818945639456207912207604248991842124079786471250102192718092353598850889806607728696519257402580732995770031331187089424192803722612735557735028710899438934171272639518928194764526910590046378401600819132587804143949995694950116915803127294011661411525934100144319021440919928013617766507409909846670172516021888661284467975865076091834094160862228180625536450124272957206172214541444266874056050295270719541605687740822711659847211976891.0 11877496607682442993105675644902145742318375725225741293060927105303783712520284640625374957608051032540491531573337817824773543104969422017506696018037874641947740606655370938613842356322585858034851150595788166740174872996252792014218946552442572806242471174234462119454014379628228878122072189387777413014452140618318641689597452676091677588204537830401725113931418426919671512011822864583481449136550835952005765386885680701637038206002172218712504732572449659704181315669255320876647592649071711438131711904976335957846353867776093588236311654631696625859173554395714740218099921290128795607292259527492722462071.0) 18121391280538137183908757597864533064917384783983769253153863292990848531982476223763320398544136120801123782009905576401195750554206035190112646134660146046391961645739717440410661301962042065947058754844780008864254659467502894206937038906041423696049078902930981376856595112623998909453259278811970216737064876176053670400496891610262950227723466025166252024521464805321272331144410668727431444831500952867808892680897342113162972306146491240153424660586067426211591225515925493392669481310356179413996787996810430118708582048401630038360584611837868840400617821269770790513370640831734483348114971187339934438962.0)
+  (num-test (+ -24023960171862805266003610953999097357395283354964456554686635290239019705581779621120391229617494503580661676939681517550103414632840981987397485411400553792707518662609532504246677658012933762605038799352109564432278094548068984563394926376371580465135388578139331334464060067790936072127680597181415407099723844313625277987147283697141407959289588588489162704824409673099509423520008795428217612706997355591985894255450783091681112776112997887084157623388943538145736618168104404283342039105202585543852590302154958791010622670839015475427693311663800177428904406869645066988663292128104453773413982185343111560886.0 -31939808827732134714870375774276102357277346245583282398423150631754622253109692213928642228787888509211781331649081002266227303203259124984426497846441848502574293640959494009564992092503141598640200823656998243767453860939156780549404892392521391484933772285520949470194562525777116137058001008184603332597820522016200623301007194309404025522056113671560767212894303567191067178003014955596425115379852712737129325098876542459702682095445350281859042779889411325882123213577906096942649941285655935053362468972482748617111598313960198743596285343178242282172686940700127068972627110105953098737923773182254460772630.0) -55963768999594939980873986728275199714672629600547738953109785921993641958691471835049033458405383012792443008588762519816330717836100106971823983257842402295281812303569026513811669750516075361245239623009107808199731955487225765112799818768892971950069160863660280804658622593568052209185681605366018739697544366329825901288154478006545433481345702260049929917718713240290576601523023751024642728086850068329115219354327325551383794871558348168943200403278354864027859831746010501225991980390858520597215059274637707408122220984799214219023978654842042459601591347569772135961290402234057552511337755367597572333516.0)
+  (num-test (+ 14513652183174940741664411990199277445706189147726874603036586212536012746892966848269748909379750612027025331446918381470766609543142456872580466135425754204680927122749772612276850998180593344389487924747722210296498854143380696064338777945015153982467675141485724865534995199700908286263993697988986805404864429385840512740226775506122190698806967785494289035976495492863456705096841250592980439363856397663738211335801835896091823148249303370609165910779981271035234045185574995335952208702661648744928539539455138167482396767268362221492607154709559716065850417221174683768503217544145599044845325824451589309835.0 -12814535978730024053359592817368712576084646962861720729844389627130663192435154658607204342320327460695280260731620465435530495952836598646143907272825807563512741964987882356778796849529260646503692618525570185450780889283642116889481314560395290434301143877809550098309214046129802023655714098730144464028249594406616074059558969757405392170810220921023905546104487938441503430332099605473144930508420331873995741851604525954472341693863067199617721032815462094767522339305487934030130207039176659398466616780628644572276059410087128533031562978399689702766028716401176531098447698206272762966470643604141938670152.0) 1699116204444916688304819172830564869621542184865153873192196585405349554457812189662544567059423151331745070715297916035236113590305858226436558862599946641168185157761890255498054148651332697885795306222152024845717964859738579174857463384619863548166531263676174767225781153571106262608279599258842341376614834979224438680667805748716798527996746864470383489872007554421953274764741645119835508855436065789742469484197309941619481454386236170991444877964519176267711705880087061305822001663484989346461922758826493595206337357181233688461044176309870013299821700819998152670055519337872836078374682220309650639683.0)
+  (num-test (+ 11356479761814008572465147431830778885327227506593483181241437802252618729479905490826767363633131720717461693888023278837835457496021519184903984385091047829540007466025527592005114414671285638168997562037691602144751434208304408870143450743278437854754504713023422097017723330207792526222436928747286558205279330508360438281011315147578105966454344087225699378388309094140949428028313539634103047841948634832398526343605363013644180832752120081735152285507591096001749463421326282317713079361827765412853023201330345752038722069405404812511739634687282327711258974520622248165974215116400638833123609666501349513623.0 -2451734542868054449539778460457497703609327132304922810342762480808881050209276687756391911546806187586640918078231508181876445466503459873508196878629364924241891220686182517218825181707207808769770392864734466652524094735160185556148554260517746279303022469784592528209667497664672945900929888144529727881050106027775707933311860110618130543481573815538047460723253898548348335762406437618625388229555824532715231231491787570056329865617082709588903922431713098922691537317839185452018617461891748518176708607861270770493263960554805373552348256747200291438630960804647686832667981625018361034564086859426490014044.0) 8904745218945954122925368971373281181717900374288560370898675321443737679270628803070375452086325533130820775809791770655959012029518059311395787506461682905298116245339345074786289232964077829399227169172957135492227339473144223313994896482760691575451482243238829568808055832543119580321507040602756830324229224480584730347699455036959975422972770271687651917665055195592601092265907102015477659612392810299683295112113575443587850967135037372146248363075877997079057926103487096865694461899936016894676314593469074981545458108850599438959391377940082036272628013715974561333306233491382277798559522807074859499579.0)
+  (num-test (+ -1814184401790217165873937825605141478060935014868566665644215718762341535891730598045990231798382966074312671040257824056876679135909008140059087311700216658095793352051583071432744886316274989901835606602224927350560604355249919901932382803472476702792978322468747380191775778902733911968522382089332819162367884984027854067607561808704316828316820133400099093450636968732151876570835173932998599031643640476109466728761033062776578175554441947411139184426213290292577467587355369954997241091769769542810051228504545831588488726789173405585678190671534386784806998695797717346491308862362775748058331375692317599945.0 15466182953987394334491149436346080039471412309427279110582769586053943302670765125931570041904640518032832554998553018838321871748542118021556398569294085708441934948186080236498081517178574839977996802813431873543309853609838200338534343580791382510179184571852290959723696010410340740895530535423959476873857191548113125728667781953125153120447892632916574768078583174099545013854248664119997703948998871566374080719541931440495888606776561795893839624084254684939434035018741535261951124673664746010067859317726891535170781460914710499572006592206360512398012457295755926986236618644330364227754380084585899275327.0) 13651998552197177168617211610740938561410477294558712444938553867291601766779034527885579810106257551958519883958295194781445192612633109881497311257593869050346141596134497165065336630862299850076161196211206946192749249254588280436601960777318905807386206249383543579531920231507606828927008153334626657711489306564085271661060220144420836292131072499516475674627946205367393137283413490186999104917355231090264613990780898377719310431222119848482700439658041394646856567431386165306953883581894976467257808089222345703582292734125537093986328401534826125613205458599958209639745309781967588479696048708893581675382.0)
+  (num-test (+ -27127130599753372624001250456405972983012981437652156246797208697430661165612459362971759027335854588888552031022264244768883843080959804690580574272908031271224646245152017114094021048441971097191444782106551075175878815012595015584723250801765859461211934306789890718268168352614164589637346918581658850565274510502652089457352942736418509881708568727739912127781455473660768550022762222130489047215089836402367851853412705556570667960548570630054608024914653686223423908494006675057953013815512203710764854485332282975729323105427143207127239069826750682633272289409910001698385240596625059970587393681128674617278.0 5719655139276246085992066702308194672442413085748146924567717361937179810269300239821879673460959112727066470468217892213025828988023367028158410455624528688729907493639908638553730770145274142147983721694721139760883483821883267129411125364089207412089113869427479340283853501026803387874124668123626271531796990801822527792189514551888019206405597994403243358155410088320317141454525417323186389587327532772638942220300149829241141659063128602316305332848477566686425551944956989370838072872906293845914921103561360871571846865478762953536949621421094416539099628942010528483544062050170673327754206501716239719529.0) -21407475460477126538009183754097778310570568351904009322229491335493481355343159123149879353874895476161485560554046352555858014092936437662422163817283502582494738751512108475540290278296696955043461060411829935414995331190711748455312125437676652049122820437362411377984314851587361201763222250458032579033477519700829561665163428184530490675302970733336668769626045385340451408568236804807302657627762303629728909633112555727329526301485442027738302692066176119536998356549049685687114940942605909864849933381770922104157476239948380253590289448405656266094172660467899473214841178546454386642833187179412434897749.0))
 
 (test (+ 1 #f) 'error)
 (test (+ 1 #t) 'error)
@@ -75037,279 +74834,274 @@ but it's the printout that is at fault:
 
 (num-test (- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99) -4948)
 
-(if (not with-bignums)
-    (begin
-      (num-test (- 1/9223372036854775807 1/9223372036854775806) -1.1754943508223e-38)
-      (num-test (- 1/98947 2/97499 3/76847 4/61981 5/59981 6/66601) -0.00028742959363084)
-      (num-test (- 1/98947 2/97499 3/76847 4/61981 5/59981) -0.00019734085622449)
-      (num-test (- 1/98947 2/97499 3/76847 4/61981) -0.00011398112564314)
-      (num-test (- 500009/500029 500057/500041 500083/500069) -1.00009999119288)
-      (num-test (- 98947 2/97499 76847 4/61981 5/59981) 22099.999831591)
-      (test (< (abs (- (/ 1/98947 2/97499 3/76847 4/61981) 195556288.07955816413500830)) 1e-8) #t)
-      ))
-
-(if with-bignums
-    (begin
-      (num-test (- -4611686018427387904 4611686018427387906) -9223372036854775810)
-      (num-test (- -9223372036854775800 10) -9223372036854775810)
-      (num-test (- 1/9223372036854775807 1/9223372036854775806) -1/85070591730234615838173535747377725442)
-      (num-test (- 1/98947 2/97499 3/76847 4/61981 5/59981 6/66601) -52761146275983172771170709/183561983334767209753061626751)
-      (num-test (- 1/98947 2/97499 3/76847 4/61981 5/59981) -543899925850203550003/2756144552405627689570151) 
-      (num-test (- 1e40+1e30i 1e40-1e30i) 0+2e30i)
-      (num-test (- 2 12345678901234567890+12345678901234567890i) -12345678901234567888-12345678901234567890i)
-      (num-test (- 500009/500029 500057/500041 500083/500069) -125047255383687283/125034753009582041)
-      (num-test (- 9223372036854775807 -9223372036854775808) 18446744073709551615)
-      (num-test (- 98947 2/97499 76847 4/61981 5/59981) 8010593845541429507/362470312515139)
-      (num-test (- most-negative-fixnum) 9223372036854775808)
-      (num-test (- 3872339191937382556 13437882608410293981) -9565543416472911425)
-      (num-test (- 12702320881720530101 13823645380834800545) -1121324499114270444)
-      (num-test (- 10222969257152373972 -3454292165863475982) 13677261423015849954)
-      (num-test (- 591233951053628288 -17639978232337836611) 18231212183391464899)
-      (num-test (- -7878405903223218778 9050739027069287469) -16929144930292506247)
-      (num-test (- 11347120771894057376 8443917396834074370) 2903203375059983006)
-      (num-test (- 7831959259127703467 -257470007821066702597399141202130667973) 257470007821066702605231100461258371440)
-      (num-test (- 1092406341647857980 -325710450166845666190895573961860069495) 325710450166845666191987980303507927475)
-      (num-test (- -4220606126689357919 73461013742902296577411907972196819778) -73461013742902296581632514098886177697)
-      (num-test (- -5112059189225304080 334306213789148650102245018234146620793) -334306213789148650107357077423371924873)
-      (num-test (- 3093346224554776175 -204967241927023874963787190016588249299) 204967241927023874966880536241143025474)
-      (num-test (- -5735747638156472357 -3881750746805128137401544408305666047) 3881750746805128131665796770149193690)
-      (num-test (- 17639095392510638323 13312205908441007415860933757605397223142073616822325142416364932887680287063250296996056787873086490231950036662943632990219865746131453861285495087665017) -13312205908441007415860933757605397223142073616822325142416364932887680287063250296996056787873086490231950036662943632990219865746131436222190102577026694)
-      (num-test (- 16304056910692545233 1463591032326743052350022746892396184459320617971409440301562638996633667625451301419074212369365394140737678584830314878769698416417465834928609990708982) -1463591032326743052350022746892396184459320617971409440301562638996633667625451301419074212369365394140737678584830314878769698416417449530871699298163749)
-      (num-test (- -10347586523508777315 12614325304787850623826535169596975975360455924114817820074336137897280818245940873677389644701038550150832199897314137414727161192173691528917744363375331) -12614325304787850623826535169596975975360455924114817820074336137897280818245940873677389644701038550150832199897314137414727161192173701876504267872152646)
-      (num-test (- 16875252323587344863 -10230183557696638447600885112945653217398839137450096120772416948425622105048400944465287395231588821521217980407867153259741079758527788318592431794213674) 10230183557696638447600885112945653217398839137450096120772416948425622105048400944465287395231588821521217980407867153259741079758527805193844755381558537)
-      (num-test (- 8574302739232756920 2945205250727759066959418729185252318153395797902208079569164623770839848878181416073351760975066439564334127158302281471631001294503759011790017443478716) -2945205250727759066959418729185252318153395797902208079569164623770839848878181416073351760975066439564334127158302281471631001294503750437487278210721796)
-      (num-test (- -17657597319577965851 -470389901349206124503884936612357721199915776516939967013182926735009022045917047211666512521578494339222795740836335004070464944715357800461845632614015) 470389901349206124503884936612357721199915776516939967013182926735009022045917047211666512521578494339222795740836335004070464944715340142864526054648164)
-      (num-test (- 11472336850218354926 16764018932433717867649699977474298016589762238077229911249331402108995850754999065988360217500238643747316139204767820295123085026049273617874157749889925712672510963712964034497935503076689670786498045302562704435768723916334451317158760704743066709581593570757498670622547878516907127632802801541072452593999435195637193819500375063696114131057474475407791672955417184592088612921927282233762919112197264895445408873539746256555444555901857369535350160665235184955438709679669964546134487688796078142789125799020704969226557493354453298489954288702387159956161243151013189140749021799388406290339231792790773612376) -16764018932433717867649699977474298016589762238077229911249331402108995850754999065988360217500238643747316139204767820295123085026049273617874157749889925712672510963712964034497935503076689670786498045302562704435768723916334451317158760704743066709581593570757498670622547878516907127632802801541072452593999435195637193819500375063696114131057474475407791672955417184592088612921927282233762919112197264895445408873539746256555444555901857369535350160665235184955438709679669964546134487688796078142789125799020704969226557493354453298489954288702387159956161243151013189140749021799388406290327759455940555257450)
-      (num-test (- 12682607562584942903 32133619583510009354538204193505267426986629771080807813988708187761849276650847958886764459302043799013813125903744946349479743277662066609741649009023451783267511140245797235200413941774959851628239089013586399425314412329003636059313583335807925401822165199322334470452126484173417518861322963430951772895619791799137157183662289329901964728384697377777905235894234370773419160283767144177627084271804319157013765325677633945370597318765372346484383325176768117059688792498687750479618961541872574768601477738410497806623403054372221338126223825515939164627992974469102910882915893925327931884157735553718792115929) -32133619583510009354538204193505267426986629771080807813988708187761849276650847958886764459302043799013813125903744946349479743277662066609741649009023451783267511140245797235200413941774959851628239089013586399425314412329003636059313583335807925401822165199322334470452126484173417518861322963430951772895619791799137157183662289329901964728384697377777905235894234370773419160283767144177627084271804319157013765325677633945370597318765372346484383325176768117059688792498687750479618961541872574768601477738410497806623403054372221338126223825515939164627992974469102910882915893925327931884145052946156207173026)
-      (num-test (- 14621880654476679971 -10075923784619510279100488003620810539888599376089081798647754628017452762406215094511315867213396543200861274584884759429891242650999761503100661310915213260386281412125687376866399124849043409890009033179987278297335571911640353059036551139958369871790768643514550179661619387008678118363266091945225880595898524898713646458647465935791224159084684209727153050053537752111696883536364966526666445737103854446009305531519860527938394412863332757413309423156200192973778629503534709731073637828912608835085933003410694216843775182940057891552358942312728978810053715387504707194992816961400377579655168106377696154728) 10075923784619510279100488003620810539888599376089081798647754628017452762406215094511315867213396543200861274584884759429891242650999761503100661310915213260386281412125687376866399124849043409890009033179987278297335571911640353059036551139958369871790768643514550179661619387008678118363266091945225880595898524898713646458647465935791224159084684209727153050053537752111696883536364966526666445737103854446009305531519860527938394412863332757413309423156200192973778629503534709731073637828912608835085933003410694216843775182940057891552358942312728978810053715387504707194992816961400377579669789987032172834699)
-      (num-test (- -3220156644655019630 -8347829670073174550775641165362740628312221836466572623516708794243074870361401136762432100726575330214254748615114820602945887237367461962207075265579588481261313345359877816874924645801358760718027997416917747796144940020489321523749233377708490614979453376328244189926517907474704635785063100359787580409065317918203485474119227673185211436285930586838616288721370975925191964611302275354365110550116042403226844820172448647475637867255305805337047967053177320593337377763657329816935516961201488840745892529800883680912275812320160312651894919502389242002380151562481051684439333368396132543667539444686619670713) 8347829670073174550775641165362740628312221836466572623516708794243074870361401136762432100726575330214254748615114820602945887237367461962207075265579588481261313345359877816874924645801358760718027997416917747796144940020489321523749233377708490614979453376328244189926517907474704635785063100359787580409065317918203485474119227673185211436285930586838616288721370975925191964611302275354365110550116042403226844820172448647475637867255305805337047967053177320593337377763657329816935516961201488840745892529800883680912275812320160312651894919502389242002380151562481051684439333368396132543664319288041964651083)
-      (num-test (- 11628988978410243120 21091260149209133824278525560739673446778991946138130571540201996950100883736332286627324787663044982195445635023357027423513202277912840570399895946346028843517588470258087913846945044832851780108963206182331994065720076983528527849542421619745503796476103034657238118665288185878258232226731582201217795631247916614224227701409259346052937919425072595891571572960468193421257458185693656090215937518204243652916583730260295885562094977775951577484951577581277292356830523013216949489797535362720471761788697932265967910160407593278848113303674799017334692501935041730808945554336564957621028111014116286675587727714) -21091260149209133824278525560739673446778991946138130571540201996950100883736332286627324787663044982195445635023357027423513202277912840570399895946346028843517588470258087913846945044832851780108963206182331994065720076983528527849542421619745503796476103034657238118665288185878258232226731582201217795631247916614224227701409259346052937919425072595891571572960468193421257458185693656090215937518204243652916583730260295885562094977775951577484951577581277292356830523013216949489797535362720471761788697932265967910160407593278848113303674799017334692501935041730808945554336564957621028111002487297697177484594)
-      (num-test (- -15960716439913426281 18799211173341989380260980155501104944815245973352765317821146163884181375747259542484535639646490774929026134833947975785613727050541297797675705933339289016115326958150660323801621778641184271728990164666383865587422591755046779736996211052149338115836473967202556153668963815595875844414662034458693455631979862997316049580586739835122770408911308146605671192538040301857163633538268589024651373766021087864982140201615461513687698136663128896835597598904095187715456109340116329587986878167776146023396961265667934659006280575496363066974484893764810659481361856335795455814679851690737943592227795474197104696127) -18799211173341989380260980155501104944815245973352765317821146163884181375747259542484535639646490774929026134833947975785613727050541297797675705933339289016115326958150660323801621778641184271728990164666383865587422591755046779736996211052149338115836473967202556153668963815595875844414662034458693455631979862997316049580586739835122770408911308146605671192538040301857163633538268589024651373766021087864982140201615461513687698136663128896835597598904095187715456109340116329587986878167776146023396961265667934659006280575496363066974484893764810659481361856335795455814679851690737943592243756190637018122408)
-      (num-test (- -181065640455671431985325539445069267017 14120143334024043377) -181065640455671431999445682779093310394)
-      (num-test (- -91295299684959299024846233061686623774 6891102275697080803) -91295299684959299031737335337383704577)
-      (num-test (- -252582289949155881579950873916766853744 883304029266526072) -252582289949155881580834177946033379816)
-      (num-test (- -10104159950635417603045689770006558103 17251490913777465304) -10104159950635417620297180683784023407)
-      (num-test (- 288463495341489091297108607960869684860 -16376960611483226267) 288463495341489091313485568572352911127)
-      (num-test (- 204661965092367792468062569536290631004 7774991291341524479) 204661965092367792460287578244949106525)
-      (num-test (- 174559967167400201536723778015754014369 168183438971818617783400303174116396891) 6376528195581583753323474841637617478)
-      (num-test (- -253300708624436983509156598368557395374 -77166863757693227553099778725240875400) -176133844866743755956056819643316519974)
-      (num-test (- -38587765028356074196061530813295290944 5999161273284748726648331130480323187) -44586926301640822922709861943775614131)
-      (num-test (- -236400856885875891058508662756360145662 222191413471626205952456600591947275777) -458592270357502097010965263348307421439)
-      (num-test (- 212937903940173587742882129816769611096 336470165768472077447806282475185249734) -123532261828298489704924152658415638638)
-      (num-test (- -264812595676159375893264580577855253845 -247068943830535581577267897204259299723) -17743651845623794315996683373595954122)
-      (num-test (- -1725732715479127274526681751197327660 -2279805492899538651574406423954277869507456204136276822451602661149698386520868702017367409743272511010382761246500508887739763323997191435566266331339917) 2279805492899538651574406423954277869507456204136276822451602661149698386520868702017367409743272511010382761246500507162007047844869916908884515134012257)
-      (num-test (- -220007189346579184019349894240059989979 9116030813176547770422918633286023943039811682891023288884273747820892639481842291616424036020927750322528731882517057595815179415042385175627374957565803) -9116030813176547770422918633286023943039811682891023288884273747820892639481842291616424036020927750322528731882517277603004525994226404525521615017555782)
-      (num-test (- 139683266109784685815165642637380856544 5782493350903499652295971390391981928106911831248674750993968151944332845911526084530951283012280786005612601970108688202931002414214353708335212597807345) -5782493350903499652295971390391981928106911831248674750993968151944332845911526084530951283012280786005612601970108548519664892629528538542692575216950801)
-      (num-test (- 239160165978290709841254489756277328273 5152132850125501873897264811465207492706871561577273155117982457627773151595716641409297120994045059130053034927464958986304380141364542178714472948085275) -5152132850125501873897264811465207492706871561577273155117982457627773151595716641409297120994045059130053034927464719826138401850654700924224716670757002)
-      (num-test (- 315772704643232632782106484978382006176 -3689252327480456512393153800679864208480329729627292260734151097785848947569336194072922395859496552999163037466184616218582046814434719444842678248982224) 3689252327480456512393153800679864208480329729627292260734151097785848947569336194072922395859496552999163037466184931991286690047067501551327656630988400)
-      (num-test (- 82735713197488344149642668226610301853 -12473025194535761005577066561696471986140205263843017221991729197337093872383371857001077050460827652296473928714097816492579684543651922277865558518876774) 12473025194535761005577066561696471986140205263843017221991729197337093872383371857001077050460827652296473928714097899228292882031996071920533785129178627)
-      (num-test (- 63472235942371758467270296983419551089 -7866520408163137968600317959735552406794938230345293650627055135268307695389903092041438746530663083967329111232451176014649873249349534808700483360707382397988918594143264031213181385790969271527978925616276399184489007642142996251807222768397530946779296600805549276528669432847672215219943599871223372831999133812100481632278022608906065923652981249057846548868473376683960144009223047416366697876553049362242497225174860431577034875737250719899362881567590934060155436179316063810148362442197071642183371654740845983314705249832168923202400873364289483910868432511677656218937984504828452980698439495961392749596) 7866520408163137968600317959735552406794938230345293650627055135268307695389903092041438746530663083967329111232451176014649873249349534808700483360707382397988918594143264031213181385790969271527978925616276399184489007642142996251807222768397530946779296600805549276528669432847672215219943599871223372831999133812100481632278022608906065923652981249057846548868473376683960144009223047416366697876553049362242497225174860431577034875737250719899362881567590934060155436179316063810148362442197071642183371654740845983314705249832168923202400873364289483910868432511677656219001456740770824739165709792944812300685)
-      (num-test (- -284018520801241078671538235859630240269 -5529748211779294240854894683633173443789067073881249229985499707296461959655918837051490512357840133495603640185675483847478587849599477020706893805485599954539589062532211767295361120129440287144117406526027552427750375526095104163474774446716012360038076376952619723549765229763943818011605991300849052030142173100367582906381575666628005795818339029350398340616624791399526643991489247585213423174803853961438830286737553181353007081438503238779644371968004083452645077716952159339978836669723137339898471600546912430030276920763475622536295311290657163861398519747560279682401429552174530714298081464588450842581) 5529748211779294240854894683633173443789067073881249229985499707296461959655918837051490512357840133495603640185675483847478587849599477020706893805485599954539589062532211767295361120129440287144117406526027552427750375526095104163474774446716012360038076376952619723549765229763943818011605991300849052030142173100367582906381575666628005795818339029350398340616624791399526643991489247585213423174803853961438830286737553181353007081438503238779644371968004083452645077716952159339978836669723137339898471600546912430030276920763475622536295311290657163861398519747560279682117411031373289635626543228728820602312)
-      (num-test (- -171812101820192353275910956459431262142 11401673303315394031728944442295528921842441448377692701102691446500671963119794838260543877466107345474902885032629120622020177051592733148817057943390167845763358795044702079370835841331467130719834250134674578757640577473495192331790176510774020541399177011446664359866582351045889299070080989390219063301859447807907203943168891690028442190793548699886572720360741686677780644932612683647303776634496172481504075784427704287335805355801794320914944330891519283383694196486986108936857630373759865062862204149003789919218681050221366182434949855054760827976853645027544605870235074909890698574792562001595287630131) -11401673303315394031728944442295528921842441448377692701102691446500671963119794838260543877466107345474902885032629120622020177051592733148817057943390167845763358795044702079370835841331467130719834250134674578757640577473495192331790176510774020541399177011446664359866582351045889299070080989390219063301859447807907203943168891690028442190793548699886572720360741686677780644932612683647303776634496172481504075784427704287335805355801794320914944330891519283383694196486986108936857630373759865062862204149003789919218681050221366182434949855054760827976853645027544605870406887011710890928068472958054718892273)
-      (num-test (- -243638660221338112796448050030955119997 -32214383478080953899491069562585164652288236626686985994647827422262342469970423345510055643470262764747630363450204055220886177681745412924556264758690138113272748656941509018308925555317383307928766093730384151056027828368474245304944063213926492719166086055718735381341569379006804236876950175122702350552198046290567043195716369691666842524594399597143281611765509174168738392889075290806378316647736667077047013214732267367344808724905727602402784621437141760604478301412768904784950365257469208085143467704875589485635570084387755189599791857576855454112556762755762408826226326879491415484319411662301650468948) 32214383478080953899491069562585164652288236626686985994647827422262342469970423345510055643470262764747630363450204055220886177681745412924556264758690138113272748656941509018308925555317383307928766093730384151056027828368474245304944063213926492719166086055718735381341569379006804236876950175122702350552198046290567043195716369691666842524594399597143281611765509174168738392889075290806378316647736667077047013214732267367344808724905727602402784621437141760604478301412768904784950365257469208085143467704875589485635570084387755189599791857576855454112556762755762408825982688219270077371522963612270695348951)
-      (num-test (- -126332081511349770866908261827634312283 31497387372874133218238910173378055967910722258532087598053588964599898753455370244114881403020152175272452951858324158004662566613339529101292284073176382818309096142522412043073218657587031893636358434796164444941535757484360125937835242214199979245499374972029624710574236962978707708765065292759037309958875006017588240959790355958632745299212449602934380927677385974488564420550408281673927387615657765312151272852486266800510090872812376232597458154951925709496664568906509814364388823105469855516803225244972466742963619633076158367569109107733990828830121948130235858799809203410103682003414364238243553515261) -31497387372874133218238910173378055967910722258532087598053588964599898753455370244114881403020152175272452951858324158004662566613339529101292284073176382818309096142522412043073218657587031893636358434796164444941535757484360125937835242214199979245499374972029624710574236962978707708765065292759037309958875006017588240959790355958632745299212449602934380927677385974488564420550408281673927387615657765312151272852486266800510090872812376232597458154951925709496664568906509814364388823105469855516803225244972466742963619633076158367569109107733990828830121948130235858799935535491615031774281272500071187827544)
-      (num-test (- 219979452670016849533060110266815720199 3900115048441644499033281842448985956665866771934663536385503692700586024397767816761943054115584011069129310718114010862034970648115172218305599786238607524420973404711138276011261135403209178420948996472570042497859127324157786975578751148348046315727383390370594954695454631662061021971027739429505825056455676233533511412589936865597034183410893428831818716136282201523804692574965779771140320669492229416601369453681528301333865290947482219850340728455965391492610516639151652595539203632139883064874286555941718154489936421274731413286355640404192677546692090304496817063325766995908926108582896362623757323811) -3900115048441644499033281842448985956665866771934663536385503692700586024397767816761943054115584011069129310718114010862034970648115172218305599786238607524420973404711138276011261135403209178420948996472570042497859127324157786975578751148348046315727383390370594954695454631662061021971027739429505825056455676233533511412589936865597034183410893428831818716136282201523804692574965779771140320669492229416601369453681528301333865290947482219850340728455965391492610516639151652595539203632139883064874286555941718154489936421274731413286355640404192677546692090304496817063105787543238909259049836252356941603612)
-      (num-test (- 585873325961105129055557280004608765382109855007674169500308242261038324959928764512890600512016613154122762798104714052579267789493643522748210870974797 -1855792162818946202) 585873325961105129055557280004608765382109855007674169500308242261038324959928764512890600512016613154122762798104714052579267789493645378540373689920999)
-      (num-test (- -3026050092505200332789765255096964033685859497096213532090644235603419347590512426830117415222669642053441336442247132403948783838396746566100575461602162 18009081534399282710) -3026050092505200332789765255096964033685859497096213532090644235603419347590512426830117415222669642053441336442247132403948783838396764575182109860884872)
-      (num-test (- -11124638695599888462310706699308855434715251048597328942409434888923094027849143412724699165971400546471660924330688750607774759764580214088920441698992069 -4827559068742614723) -11124638695599888462310706699308855434715251048597328942409434888923094027849143412724699165971400546471660924330688750607774759764580209261361372956377346)
-      (num-test (- 4950293428090696283711882613183655723616682297360442241017758383241177602498881186549809051670562038601658285833496694108818253845693871318067007752043113 17597810481352184048) 4950293428090696283711882613183655723616682297360442241017758383241177602498881186549809051670562038601658285833496694108818253845693853720256526399859065)
-      (num-test (- -5733769947958740467479139247420201065087494801172241127791526686385518674532830661413722661802560247463032020003355494614502034002778775472609306735864748 -3892174127829225880) -5733769947958740467479139247420201065087494801172241127791526686385518674532830661413722661802560247463032020003355494614502034002778771580435178906638868)
-      (num-test (- 8320894458193427045187598554188178307429755504967209344418448624882517461814957461249858674758807195827056824653471934409067429988676743031117653237018365 -12861394200627120797) 8320894458193427045187598554188178307429755504967209344418448624882517461814957461249858674758807195827056824653471934409067429988676755892511853864139162)
-      (num-test (- 13033402737450594044106258936169013897237368708138118260402180886096095497725071502601849887805439844083105685971731015312020770945603825344926844435936044 236396022362585261770052671762207864597) 13033402737450594044106258936169013897237368708138118260402180886096095497725071502601849887805439844083105685971730778915998408360342055292255082228071447)
-      (num-test (- 12170667278114656173974716189098171384426379753661081475485441559687661443127166543908925678856145097632475832903680828294561265828775791256812588754280222 -276673555533799047589626400978981416789) 12170667278114656173974716189098171384426379753661081475485441559687661443127166543908925678856145097632475832903681104968116799627823380883213567735697011)
-      (num-test (- -12755594876262399860618168642932232021734362385933348033134635580177924615701078617214764415318471507488803810365565826229169313660087149542130819663319659 -157671440495648010763311068579191828684) -12755594876262399860618168642932232021734362385933348033134635580177924615701078617214764415318471507488803810365565668557728818012076386231062240471490975)
-      (num-test (- 8664063140780163008577373335591938905735059211566906376953760862047748343846207426667781783874718320339071949903053785280430612875488847226724390758938740 54361107931665215623681874454167019934) 8664063140780163008577373335591938905735059211566906376953760862047748343846207426667781783874718320339071949903053730919322681210273223544849936591918806)
-      (num-test (- 3699576825118349347309026261327541749454660339251578894574483235547605815416603169143590292164644149607672871236942391817131531474661895913650810587431606 -50508350367572393968128467319633674717) 3699576825118349347309026261327541749454660339251578894574483235547605815416603169143590292164644149607672871236942442325481899047055864042118130221106323)
-      (num-test (- 5626548453644136572409808769267055618695663227750732922630041368983808478347120771651822300668480671524976882745306794511840379704578900504784165956486985 170502882789371639987361620116696459267) 5626548453644136572409808769267055618695663227750732922630041368983808478347120771651822300668480671524976882745306624008957590332938913143164049260027718)
-      (num-test (- -10859007735074693411217019392659638207496329895257318665547454149984863458541990037760564769787816800806064437172810158051442267508476778676439633382657890 -7558060977666720080449823996328496253877735754811271086853901493753796001778345391546991917892931500169890406340928835457635973812901681485438886367096185) -3300946757407973330767195396331141953618594140446047578693552656231067456763644646213572851894885300636174030831881322593806293695575097191000747015561705)
-      (num-test (- 9842028993407961669727766131360795288615020071102475108883839785397865740828387076847892646234215787999498419839351470775471313077046438080666908734795616 8259939762466350877481193620364896193464602165170783019804380181692322874550956777598992104871440502758410340359413403619753571535498118388286469082729503) 1582089230941610792246572510995899095150417905931692089079459603705542866277430299248900541362775285241088079479938067155717741541548319692380439652066113)
-      (num-test (- 3122315115429970622394662815735050825423438028108957393747131991771456957037829402044934484343765915727397519247940959221091465331254497476137639859816450 10737995515603450913722681305571315249864367824351372254572936648132763616823019940208526402092654554035074813865303483747097673960803093638463005072804384) -7615680400173480291328018489836264424440929796242414860825804656361306659785190538163591917748888638307677294617362524526006208629548596162325365212987934)
-      (num-test (- 11618335890332522671268040181306950825004789685088262996478365976802329054158653675768163009290064139158450983598701977173152384425333441365287895694522192 -13130287008197231017935223399369698658354829835061356451363818961959486828237111511740029441613108087354987794332115218978284937263725126538295501305403242) 24748622898529753689203263580676649483359619520149619447842184938761815882395765187508192450903172226513438777930817196151437321689058567903583396999925434)
-      (num-test (- -4829477140897377009195646150061276059814366801005389903693533021027427566117360765323647260121062827801190746646296803957067548167571028717513392985791293 10716557117391614298810040587314742187092120526669273567183969821384063434473189717686678450880765426943205955814024872764413373364846268902370055526485180) -15546034258288991308005686737376018246906487327674663470877502842411491000590550483010325711001828254744396702460321676721480921532417297619883448512276473)
-      (num-test (- 1560421244904974852620371975782132605421448226892487453928759432083522187778803424020804578027100625536441377609275030418285893555753560195716001014786650 -11797558308994912054526619290334311429749533070145154703018977152548370444659962978040151671210413666186432921816690953994784423526183449271023503069393845) 13357979553899886907146991266116444035170981297037642156947736584631892632438766402060956249237514291722874299425965984413070317081937009466739504084180495)
-      (num-test (- -7701347923966912534344428538744620884561375267012102797292378941649984539207353887059064943586048644516121387166836442084007442716291792933061162738380376 5290969389374230541016502448421359606252744677802288901830045825873182202718418905866055323957065013553046698199939002159982374580735362593037515863844280108947533575824820196689891621498006303535207762625068798755031433921940066544809959896067184147997503827988613858484669349726945188167613248195147619673963531690938913245110754715059472477991342216448470339490385593605806518967792963339193162830698488489270925945408227996742278697477358272529028932771642478870844024835907350391770605391526921411004262446196112836319091260967898895009427182171643279100998182191816962677328417390867021108292139204864164048286) -5290969389374230541016502448421359606252744677802288901830045825873182202718418905866055323957065013553046698199939002159982374580735362593037515863844280108947533575824820196689891621498006303535207762625068798755031433921940066544809959896067184147997503827988613858484669349726945188167613248195147619673963531690938913245110754715059472477991342216448470339490385593605806518967792963339193162830698488489270925945408227996742278697477358272529028932771642486572191948802819884736199144136147805972379529458298910128698032910952438102363314241236586865149642698313204129513770501398309737400085072266026902428662)
-      (num-test (- 9733743430220591762422540139212426729307515492818443460852332805653889275463385649305231919846970974905736816260992940027028218064265519723018527155353151 -29407855293830047984154639411082591337348779678279017647951764366455421210163494489475996514661359700145916243499452007595041420522019751347743105082745321262372977262641488359297167392118038994384136863563032667040671405618315550876997904307423736276844997706938133936081058323434935833614475654922773162140266784233792639117145232791514703532554345086520312281500696798706889025860427142771458666376271994240028586899592254884476941388776984078337603148583453255593120138178690189726206775893096279000909079330468718593887702543025737308336025198677457129910473491269839827087491228569718246503140134413881896746751) 29407855293830047984154639411082591337348779678279017647951764366455421210163494489475996514661359700145916243499452007595041420522019751347743105082745321262372977262641488359297167392118038994384136863563032667040671405618315550876997904307423736276844997706938133936081058323434935833614475654922773162140266784233792639117145232791514703532554345086520312281500696798706889025860427142771458666376271994240028586899592254884476941388776984078337603148583453265326863568399281952148746915105523008308424572148912179446220508196915012771721674503909376976881448397006656088080431255597936310768659857432409052099902)
-      (num-test (- -276731217243271862683214238489380950428392903790808046630969592255272629537001990355375434170910931115552132394269672247616298060929507021008951190291387 100289083769237476480554074865040988004216167545459907207847010762380733541100608695693297149249375537088329431700364201275915507683345148401600569951338052791424407090330310974243070931256108167365334162914085216447196038922091547331474328250886730614683299908003398886233860613008266913065047699535081030427106800418656336608005860846045905149012346378286475449307630537665901621055008855374148058291266835796203075976592585729940879567246284967856356337849150102261744547461816282538319258966892339056695718919291240188920586288417893106046698069355647145603908383687239983874164793005765733782432717429040621674) -100289083769237476480554074865040988004216167545459907207847010762380733541100608695693297149249375537088329431700364201275915507683345148401600569951338052791424407090330310974243070931256108167365334162914085216447196038922091547331474328250886730614683299908003398886233860613008266913065047699535081030427106800418656336608005860846045905149012346378286475449307630537665901621055008855374148058291266835796203075976592585729940879567246284967856356337849150378992961790733678965752557748347842767449599509727337871158512841561047430108037053444789818056535023935819634253546412409303826663289453726380230913061)
-      (num-test (- 8505070389896098095621766692413480203366379968950158493268895987250690600795955783113900096527432416791184386061684833478921638080978014176210898461637606 -16410711613672171332126342754193842244915477287016327757357714698751777287458963458682349581881560880814595167244857846847668988374679430572782121021084683986742283012573569894084166107235597351093334125816075658348307113218478800035703971671113417712009419861470917307849916674203301497919242668373376352901312309673053175315189945730756118172940886476343290174961420986113367531057713782438374928471960914578818951372282574754612716278516397754222547513576728677459134022062202283647690649100602260948409511070624300011106517649666031530376191755817891213910847547809248990517666613043010292627100428536737652546738) 16410711613672171332126342754193842244915477287016327757357714698751777287458963458682349581881560880814595167244857846847668988374679430572782121021084683986742283012573569894084166107235597351093334125816075658348307113218478800035703971671113417712009419861470917307849916674203301497919242668373376352901312309673053175315189945730756118172940886476343290174961420986113367531057713782438374928471960914578818951372282574754612716278516397754222547513576728685964204411958300379269457341514082464314789480020782793280002504900356632326331974869717987741343264338993635052202500091964648373605114604747636114184344)
-      (num-test (- -12618010259109779267590315037969998053964054382853891516547435925972388025118492931596200697357628900783311183940584302426381939302632641549019984810957030 -30500906828861638007306362171210132987300359439962044769219457463653547834815716264412200930088623097530758080891972640000479943534665059199377729854850415258341537838023739964147532129877743393965857370995558748807382396090020006195649251292012405690725917389684473999400905751109361754679152179983739269026226054012963756892488872262522587481931950410504651253101938824790285623805566521723062029033001745636445860437154344665483641408727637784045030118212476306906983993748299291616038887011943864441807818857508443930272872365334665976442185494702520760793786640113779099219233665607521784524244604432396247693263) 30500906828861638007306362171210132987300359439962044769219457463653547834815716264412200930088623097530758080891972640000479943534665059199377729854850415258341537838023739964147532129877743393965857370995558748807382396090020006195649251292012405690725917389684473999400905751109361754679152179983739269026226054012963756892488872262522587481931950410504651253101938824790285623805566521723062029033001745636445860437154344665483641408727637784045030118212476294288973734638520024025723849041945810477753436003616927382836946392946640857949253898501823403164885856802595158634931239225582481891603055412411436736233)
-      (num-test (- 793528769616879938852241178439496352527042950647521648629732169156958768358523029837406526207126598190786120139491813624819360632811627576064199559812277 -7357484069649002655190557040768215614708659708788999334802985986235721030962928900092675952032143512196279092521450986819067071570862007086586132687661085824939677603953832219860573980632016025218580608321648907608385784471745482257672314890331358256478273312255285010343369949412955387472116587504557483184506548209831317705115523967163525846685455369176657510129844566195941925821733027993620517287411895496215426174909366458092382652675628195464969405904518323018004882611048769247228828875493680284766874334247375868318795940759082324831733175858991629741478124633015067484305547002438816473086042218906532116413) 7357484069649002655190557040768215614708659708788999334802985986235721030962928900092675952032143512196279092521450986819067071570862007086586132687661085824939677603953832219860573980632016025218580608321648907608385784471745482257672314890331358256478273312255285010343369949412955387472116587504557483184506548209831317705115523967163525846685455369176657510129844566195941925821733027993620517287411895496215426174909366458092382652675628195464969405904518323811533652227928708099470007314990032811809824981769024498050965097717850683354763013265517836868076315419135206976119171821799449284713618283106091928690)
-      (num-test (- 30958566711373255787092081401292877738974978442987704470984765018293851031728996862405055424093249924047528792113585028592262445810946419909807061004531455817427671594281537965628880611732831524185850161910304038646992464838306728350704966234151134620041799373762432970330864023007632010865749239024802839173884778578927209741320635135275002489733299806669933393428518104197594560039136096527206600870299327752296492029012993590212340409989598323540081430189567580333356380487749078595746626408529223195894600223743978246922817054226858311823994547784553612982586322603593335538875728113115443554199017672360091721648 9164115638960783470) 30958566711373255787092081401292877738974978442987704470984765018293851031728996862405055424093249924047528792113585028592262445810946419909807061004531455817427671594281537965628880611732831524185850161910304038646992464838306728350704966234151134620041799373762432970330864023007632010865749239024802839173884778578927209741320635135275002489733299806669933393428518104197594560039136096527206600870299327752296492029012993590212340409989598323540081430189567580333356380487749078595746626408529223195894600223743978246922817054226858311823994547784553612982586322603593335538875728113115443554189853556721130938178)
-      (num-test (- -22540807692474380279530794404584230073523360203115293035869063366926380719566516089428840111682263403627532047214106171892715667227836310498366393991106231487046533598391969789120283294510723096483520917309134391072655861112766764278247568027435618337967113341863713181603534251049249873125130781073437913954718595729437608729446837417196899902194261111827656247095442897532040935029872731410799530408713850806239149348700486268275019296069828199088780767614008685960242354118969741283398882689239770114582524756296906388861630890288875920861344939520380841337675934551587994259348267613541166769237154904791412049964 16928681651977808800) -22540807692474380279530794404584230073523360203115293035869063366926380719566516089428840111682263403627532047214106171892715667227836310498366393991106231487046533598391969789120283294510723096483520917309134391072655861112766764278247568027435618337967113341863713181603534251049249873125130781073437913954718595729437608729446837417196899902194261111827656247095442897532040935029872731410799530408713850806239149348700486268275019296069828199088780767614008685960242354118969741283398882689239770114582524756296906388861630890288875920861344939520380841337675934551587994259348267613541166769254083586443389858764)
-      (num-test (- -5403850875869356031749551669837202919756114555261706106905659104903792701565965475066159243529680606410723686422444947172225540145977333194008702465610630608545009270872541652430806931212184915840724378685979865349848151917650322286497417985248678815214889868576385900691591784772762893647315325310416150353725001943778473686980157692817497562783521120544549784746647104651038037129984152623720529803205580894126664077380391379306511348324442512538418658728022685805514196592544294177914956734669359073791151050869328577099869772182315103156047405800398706114122356939316464974680113324979723289916823063616573634058 -10755560408227106818) -5403850875869356031749551669837202919756114555261706106905659104903792701565965475066159243529680606410723686422444947172225540145977333194008702465610630608545009270872541652430806931212184915840724378685979865349848151917650322286497417985248678815214889868576385900691591784772762893647315325310416150353725001943778473686980157692817497562783521120544549784746647104651038037129984152623720529803205580894126664077380391379306511348324442512538418658728022685805514196592544294177914956734669359073791151050869328577099869772182315103156047405800398706114122356939316464974680113324979723289906067503208346527240)
-      (num-test (- 16201587974698660164372991183566748501003872177894450603471850345714117528335101264234127789041855420954511595895378320972957964222386731614839583078498685801156670229700092209313747849610762975747730086443186821337319452128253859293962343891549207804191088925361935683615063225197130192492652062735684739784075955094308092423304262201429421582566117390598395895220976999990205945523225411701169301910362640419341608407294018105959688929256136725564385243617240412649023368133778798063226772467915584333795357813292935080009919284755332034998122912861893282865727947810588086156919649131720183722427134042574317487793 -126159569916621842) 16201587974698660164372991183566748501003872177894450603471850345714117528335101264234127789041855420954511595895378320972957964222386731614839583078498685801156670229700092209313747849610762975747730086443186821337319452128253859293962343891549207804191088925361935683615063225197130192492652062735684739784075955094308092423304262201429421582566117390598395895220976999990205945523225411701169301910362640419341608407294018105959688929256136725564385243617240412649023368133778798063226772467915584333795357813292935080009919284755332034998122912861893282865727947810588086156919649131720183722427260202144234109635)
-      (num-test (- -9976758107386398142455037422077809088581080675608340830198269021688955930541332630075972471934165382030070969307731206728197760190279942894255740733209190331510591013089699837164445642396864912572863786290237335963836376543389815671640509582958465164874961381137096877288362944469137669502842448492172241151419831252572392809173900377271652074261706120638052379886108764460001026094198502028776365675088466580595870167840105746912975236851293882732079317535103041585285239081516202482201377111734010788198635874359396626004300532752450289119192633850562141516671742961938277967783337559307443617308447853505824391099 13449070890444925581) -9976758107386398142455037422077809088581080675608340830198269021688955930541332630075972471934165382030070969307731206728197760190279942894255740733209190331510591013089699837164445642396864912572863786290237335963836376543389815671640509582958465164874961381137096877288362944469137669502842448492172241151419831252572392809173900377271652074261706120638052379886108764460001026094198502028776365675088466580595870167840105746912975236851293882732079317535103041585285239081516202482201377111734010788198635874359396626004300532752450289119192633850562141516671742961938277967783337559307443617321896924396269316680)
-      (num-test (- -8570952518585194406209873586517687582701183275108243979199329595605282282125006489076327154374449108678257552384372919282846744626955206382078850958298637157198962032090439427286914716782317030245513658212430127586764421559372214829010306717557679285031617989735914399954286846456953917915955558448774972943731602144914068097214910567329340361564904028964471241318105967747431610163083002382821902859161510204381788262611298660559327478615315484763561786397041779926288206767156863141140852268323253657685018587945456372648431446464389004257999049529945532453598011773843788498650935959375182414447893892341891463988 4431555062692055371) -8570952518585194406209873586517687582701183275108243979199329595605282282125006489076327154374449108678257552384372919282846744626955206382078850958298637157198962032090439427286914716782317030245513658212430127586764421559372214829010306717557679285031617989735914399954286846456953917915955558448774972943731602144914068097214910567329340361564904028964471241318105967747431610163083002382821902859161510204381788262611298660559327478615315484763561786397041779926288206767156863141140852268323253657685018587945456372648431446464389004257999049529945532453598011773843788498650935959375182414452325447404583519359)
-      (num-test (- 4117976000917214601143188578494558474138167055110060832594841842655428229500889876131794484851166401425675703592388271925904534237338595998991043982676292549088043959446082382516734793718348862105938692342851330680670593768890094290655852108130945387988863730762717733881418314989528719379494082656897158942547008663543153236129762264443358316776532465284014215413819415615612452225913947961681691310132286840303081453109375175436902292224029179426794714036524361081174901146731799945483243427138748119832116750910126386838614645397770107366925613473924955965862778639046707637382775371488874447622330992324750207465 329466253508616383200261654231797136951) 4117976000917214601143188578494558474138167055110060832594841842655428229500889876131794484851166401425675703592388271925904534237338595998991043982676292549088043959446082382516734793718348862105938692342851330680670593768890094290655852108130945387988863730762717733881418314989528719379494082656897158942547008663543153236129762264443358316776532465284014215413819415615612452225913947961681691310132286840303081453109375175436902292224029179426794714036524361081174901146731799945483243427138748119832116750910126386838614645397770107366925613473924955965862778639046707637053309117980258064422069338092953070514)
-      (num-test (- 28857935543824608075326348244201981931023939250259142606733822094071772153858420201297951828741003977413353359215638528196235956061529059419904405354390715114239219947402126760298132539402386106279333968395498788354937020337343839325588433318100331044091923709732742795159387846354148919054314582749477292946200912006940503778924320301062789466388997936618573519744795661160190636101768486096961991215006236190655062992372061052426455063703038765465688361316141792840153608145888307784845264037109867657483109819380082597605481013612040648149090345778910883349230476481347645708269410828528742743794495302359380494607 126536164564464424337714470705049463978) 28857935543824608075326348244201981931023939250259142606733822094071772153858420201297951828741003977413353359215638528196235956061529059419904405354390715114239219947402126760298132539402386106279333968395498788354937020337343839325588433318100331044091923709732742795159387846354148919054314582749477292946200912006940503778924320301062789466388997936618573519744795661160190636101768486096961991215006236190655062992372061052426455063703038765465688361316141792840153608145888307784845264037109867657483109819380082597605481013612040648149090345778910883349230476481347645708142874663964278319456780831654331030629)
-      (num-test (- 3146199586408378667812619157270468624370984629500707476575291934586478540055436137993431548830607708293475788354970610669452058906009873485175438772484599603993015239438297747261356407887781450787482447252615210880612867127689283653562498484594955015919746443263740095372831444793239911996227663006098501180972347442107190398034048225264564325230296723559400768342331039755765597288518435463475921534765025262262798267314969774604439319964638461636007229819888743218820584570149249791727508891676067767073852694327748467914037392778283816153183422263956621516748627574334199731850712255885395479903525322397561293553 -169494171680584797187706369710105239124) 3146199586408378667812619157270468624370984629500707476575291934586478540055436137993431548830607708293475788354970610669452058906009873485175438772484599603993015239438297747261356407887781450787482447252615210880612867127689283653562498484594955015919746443263740095372831444793239911996227663006098501180972347442107190398034048225264564325230296723559400768342331039755765597288518435463475921534765025262262798267314969774604439319964638461636007229819888743218820584570149249791727508891676067767073852694327748467914037392778283816153183422263956621516748627574334199732020206427565980277091231692107666532677)
-      (num-test (- -17024716654716744558842421452239026542281806678754026383430912733874686056449261218428541803113383766132449624540209841726047308927951820311213785345168358108138304716549475322223600292513384537980742126687035576531330089447100646214364923043445903103768701639992829171572718403272488931980504461938688955457870904289239032709146514866818331202329982821151580491257491540240579366183525075936339515949345815704583685855315810611089822402567649542290589282153225725537026309623090382054078872576985425957096858376112688308214148412270019118710904983829984589093557307164347051152307499446188262820058714564165108542508 -26845770031559702758807696432929071597) -17024716654716744558842421452239026542281806678754026383430912733874686056449261218428541803113383766132449624540209841726047308927951820311213785345168358108138304716549475322223600292513384537980742126687035576531330089447100646214364923043445903103768701639992829171572718403272488931980504461938688955457870904289239032709146514866818331202329982821151580491257491540240579366183525075936339515949345815704583685855315810611089822402567649542290589282153225725537026309623090382054078872576985425957096858376112688308214148412270019118710904983829984589093557307164347051152280653676156703117299906867732179470911)
-      (num-test (- -20875354448001792153279041347864644172439177882677780548397567327274288309764204295853633150227327732322157811413794613378828291977852467550695289535036337326494269114787031260705326469002279939986228049380615128280814933748700667874022724707001736732724010699175779382411342385842744973636495738468838244099596215421975861650998954057316519632062827510021706536194961332185926551767127180751211669386674770139039516623606727799489291663572125587356845055646322930167536458093283930082765496058330805117442824718962237069840252138957395570892073194575112213410604881673785921789655406716271370732069643455590690035701 -321447426701397438572265325285879998363) -20875354448001792153279041347864644172439177882677780548397567327274288309764204295853633150227327732322157811413794613378828291977852467550695289535036337326494269114787031260705326469002279939986228049380615128280814933748700667874022724707001736732724010699175779382411342385842744973636495738468838244099596215421975861650998954057316519632062827510021706536194961332185926551767127180751211669386674770139039516623606727799489291663572125587356845055646322930167536458093283930082765496058330805117442824718962237069840252138957395570892073194575112213410604881673785921789333959289569973293497378130304810037338)
-      (num-test (- -6750548706930727136186675393752693335334383613941059024795513640678178119089262068912855951615043660442324823673049951182143778744824110223137384940032268718291241014850714197673735719784663896993460156686600813524168487673234842233781654493200950459723884918456280719440022930492599128086690014332139955274261568563155723011697763382009890186816226119314994799655369791620499988988986590903148198659095740939986627235565633349906453726759224441608018598520571182643709143072528030332708598472074166415467718451869993686505339408706320298338691467040585228617379086727764240955696690287600957842671916189752415855520 132223863177855649509430852484092802671) -6750548706930727136186675393752693335334383613941059024795513640678178119089262068912855951615043660442324823673049951182143778744824110223137384940032268718291241014850714197673735719784663896993460156686600813524168487673234842233781654493200950459723884918456280719440022930492599128086690014332139955274261568563155723011697763382009890186816226119314994799655369791620499988988986590903148198659095740939986627235565633349906453726759224441608018598520571182643709143072528030332708598472074166415467718451869993686505339408706320298338691467040585228617379086727764240955828914150778813492181347042236508658191)
-      (num-test (- 15737797902964168014939893286340956118635524170934156177365242966267432695262586636031957242055461736359478270642576860414422844075672388559647477705484719667060463718865742735598799928335211410004369240278699196301127699945374217439676378682879115442203681638050752745036508637214733712716867800216723838016099572951915042604603457902610639317648800296497583507890473114507231814851908526534709496988648572353272479026750068932474334642929727977996779536604912743446197670724757690108283368934769626461285961947257397454619164856011847736479229692086038931510067165282571276049292116713101550911614590774659556899356 -6114512833799784097991148713266650451765474382378581896952003894922931741133332233338460555227243451198289670274036744955599177213449957470212981501678055) 15737797902964168014939893286340956118635524170934156177365242966267432695262586636031957242055461736359478270642576860414422844075672388559647477705484719667060463718865742735598799928335211410004369240278699196301127699945374217439676378682879115442203681638050752745036508637214733712716867800216723838016099572951915042604603457902610639317648800296497583507890473114507231814851908526534709496988648572353272479026750068932474334642929727977996779536604912749560710504524541788099432082201420078226760344325839294406623059778943588869811463030546594158753518363572241550086037072312278764361572060987641058577411)
-      (num-test (- -26633154627863501044020127597209297142657179797586777727331879111280843451446814109347357601013807189824906954310855123313836812409388745541128842840054310853220032505914307470215180950497357091093642400638925719682307925365402618310180378684705799724964274776149984064608716300479893889145492885897234574442542501896696821902329473018442082678749291668341477914681413039643187020003425962922948452894682558162414623956491734656939841377698702802567258906642912449969621455596132708975438173455827361542712483153981422051943690720556013580161324856788091093465837542336129629269227369781823515673967591796132853515009 3321161637038961370471515250185392889390643163295535903347391615170504064647249127732639364682803744773593849851778894972403397573953564801884397178069327) -26633154627863501044020127597209297142657179797586777727331879111280843451446814109347357601013807189824906954310855123313836812409388745541128842840054310853220032505914307470215180950497357091093642400638925719682307925365402618310180378684705799724964274776149984064608716300479893889145492885897234574442542501896696821902329473018442082678749291668341477914681413039643187020003425962922948452894682558162414623956491734656939841377698702802567258906642912453290783092635094079446953423641220250933355646449517325399335305891060078227410452589427455776269582315929979481048122342185221089627532393680530031584336)
-      (num-test (- 27668394897866653012794531261739800318882766882548843941974485394983434533400277607364280566269718161470415771058329222680901477416257843578362127708934184467195154000133252468684612556324066063725677629160438683034201285122508880444372096430021219637788794365539396242345208611990491721052691567092029622640533057073151980959055665792776356282961971341363712186503783566960850166774438868528799819047163739437906559674823146932668464230936946321915236658512741918196732794332451120218658490129307932187658010681746557120172585093207839141764683325214902696969028472942954863209641597556494684135445935915485525220911 204625459185084436546676461283890328511903949966691877662249903659689934813784661695047569885195881142676761876303280806728760511429260843727967794322777) 27668394897866653012794531261739800318882766882548843941974485394983434533400277607364280566269718161470415771058329222680901477416257843578362127708934184467195154000133252468684612556324066063725677629160438683034201285122508880444372096430021219637788794365539396242345208611990491721052691567092029622640533057073151980959055665792776356282961971341363712186503783566960850166774438868528799819047163739437906559674823146932668464230936946321915236658512741917992107335147366683671982028845417603675754060715054679457922681433517904327980021630167332811773147330266192986906360790827734172706185092187517730898134)
-      (num-test (- 18944451653774463090918576081661764936021793389045063662102219434278236461286997354190032851092512146937346521704215170240383659165117708716738711782597164244188741818096207452074083439983059414271417130274747048227795964884943105011205424198661201055104372863019759130697888820715782179466491256695453118035286889359217448004524564796840711987314064158194625731263591557915838970249677548534895064545467992194029425250039951132361639559343536937119283951538321037694842089561504643350632756961329867761604760788760440497535611072991056505806805291706178639395690245460397975614715123591611301423752799666149495108752 994321141213369910357526037382331323092462599623554452705525887587326552002660849455542761618020243106424015447778226642816634338781654345001677083881111) 18944451653774463090918576081661764936021793389045063662102219434278236461286997354190032851092512146937346521704215170240383659165117708716738711782597164244188741818096207452074083439983059414271417130274747048227795964884943105011205424198661201055104372863019759130697888820715782179466491256695453118035286889359217448004524564796840711987314064158194625731263591557915838970249677548534895064545467992194029425250039951132361639559343536937119283951538321036700520948348134732993106719578998544669142161165205987792009723485664504503145955836163417021375447139036382527836488480774976962642098454664472411227641)
-      (num-test (- -25075128489482657321316021943980016828761861550379828525731288423212311433274066958090940464803020097932875912251380196071686918459370667428905844496548191635733867314315152547202859654044591981512687559437417616479425752991419002108503390319869665933757684966460526631533822984311725217788657567199485442486045019468844265484117570385156844404625735176559901986920712550964238722824122000259551821135404274194791706113272773768366572120227974096419295159271316157215551931810740200836725504693738229444336470213883741520460842708733150362983831267583568258736572295448486287825894301201018490203520738439038977754991 -7402949251688548738762242219263594861535354011996392637087346760786292549376145193266590582054224293289596877537643409310483743293801574030358189880866069) -25075128489482657321316021943980016828761861550379828525731288423212311433274066958090940464803020097932875912251380196071686918459370667428905844496548191635733867314315152547202859654044591981512687559437417616479425752991419002108503390319869665933757684966460526631533822984311725217788657567199485442486045019468844265484117570385156844404625735176559901986920712550964238722824122000259551821135404274194791706113272773768366572120227974096419295159271316149812602680122191462074483285430143367908982458217491104433114081922440600986838638000992986204512279005851608750182484990717275196401946708080849096888922)
-      (num-test (- -26509487378481600038412836495388065888781507388737194948728047318975269277448073484403390476243134990463394380967295356958474984927721196047241216945988250219075749832868804186657201899994373052648345989716938779173325348547767647529160988985542438998030764420175306438858518207072038513664360905985908879070216069156102379349899544471658754952888660878997691670566078979940005195987259493512159628198906090101827331841914429358969184839073862821059400943312264269215878469013316796620921077244799814690434355127994011220041638393750697699141479399553359747084811371804524490919966410379714725200415331414459870271869 -9247155945465656153397925559476432992975541781462281935278489123804934847762489500833913193183733932905776020790478662969835879365116238125565077744775032) -26509487378481600038412836495388065888781507388737194948728047318975269277448073484403390476243134990463394380967295356958474984927721196047241216945988250219075749832868804186657201899994373052648345989716938779173325348547767647529160988985542438998030764420175306438858518207072038513664360905985908879070216069156102379349899544471658754952888660878997691670566078979940005195987259493512159628198906090101827331841914429358969184839073862821059400943312264259968722523547660643222995517768366821714892573665712075941552514588815849936651978565640166563350878466028503700441303440543835360084177205849382125496837)
-      (num-test (- -17010604274474750006607667808593883725990508452473783283717890546525148212376267233909567638545898628257361383837671935903199638230375408397752251127816717091041943873728526445398525706450929660366518707254053655364610471112296477865068960744948010561798109833411657930112293904378353445961131058136287425064317621271289456901138718557297733713446119244533144377470099270824020439428168481914824420861176457152299497728390918971852021025089592998997807574907789524112450146545688385954763667980124432645276563626082835790429598328230426471161191074551543308732791287559033843466623138171520961684959997180979203053477 -17319079025684619178510812811805110270463447771889107440996086020812918555191263705580533644731591929176480040622705607552852994906782176254877135818109655911838591767583157894999741648979817400330572419476101372927546509769818404491634583907246692993992514876697330603464497645633398167129555001859772111887143352351860130929715392173452396253437927361301990735683539169040916027268831202732178553152351117118606495416985612909248422655861312689027789401950549626643389790516560291620711705848717875304929186131258525831197192620523261738944873398924939726689336762464320190834794155527335576391767307110012289717973) 308474751209869171903145003211226544472939319415324157278195474287770342814996471670966006185693300919118656785033671649653356676406767857124884690292938820796647893854631449601215942528887739964053712222047717562936038657521926626565623162298682432194405043285672673352203741255044721168423943723484686822825731080570674028576673616154662539991808116768846358213439898216895587840662720817354132291174659966306997688594693937396401630771719690029981827042760102530939643970871905665948037868593442659652622505175690040767594292292835267783682324373396417956545474905286347368171017355814614706807309929033086664496)
-      (num-test (- -28362352496476494327713713233021518136860402239251781438945998574753662942796270292818595738100959519541952077905620088422871490191217157269435052965329201030095268586136492980900212955645939325800541690754639292707053269767151001292253701853012092829784482071789669480438026889625605099744553642207773753943711175375843649210118677569597324789367425691177169929576236753018329085700397911235750600921874606148324025962628852167093806152864269874177214562322576097931390470469397118268354868919899638376323751276807304678316688836173746719723312665764603485606350244811113608471530958617108833879194264695174468397461 -4081062111675377984305281082755054920741203741273067094307824323728798665450292976016160959354997082250970415737745853292134965575242789548167162064123232363464302136338349828801951197252612093077640695564825095503535921549690447893467349156939791370286866987224201115453216606688305427702274940837032716124925028835914047967887674858015919302546781010326385758988488478290741665427521820112231266659657169118374988259423444686317389869729817643396097464874333968181509317307320406521221309011946212308190273531009796563611621389720223920155554879800901239072885025170342349379379336047732368458185953903872634982504) -24281290384801116343408432150266463216119198497978714344638174251024864277345977316802434778745962437290981662167874235130736524615974367721267890901205968666630966449798143152098261758393327232722900995189814197203517348217460553398786352696072301459497615084565468364984810282937299672042278701370741037818786146539929601242231002711581405486820644680850784170587748274727587420272876091123519334262217437029949037703205407480776416283134452230781117097448242129749881153162076711747133559907953426068133477745797508114705067446453522799567757785963702246533465219640771259092151622569376465421008310791301833414957)
-      (num-test (- 10367142604728811799331249565431331488313655422005202933702176605382043644320209814639311439871418581341534233560256605231366966869093495784665834232350567124110194965198962966795893926025854156729633358240069116588609932539289897499402463770167927610848388138020589286461244557962368497723086593344721146859584146431437967506007518396464517349944129896971137720357645026281243138165214047233258394590454775153944241555543594427555914116439316287902470043292624597940465373006598913770411505099332700167695871387948271302951230983772351549087620538875967635100644404345317626621438913980275970160864401622986870735123 -13323117602411502623386235160326625769048477819798659261203460002048250420188223753407093545503703207645050883770850457071863684414849353264890601744588860687970804808452855795406182324143949747985869939791374195222513169904228914579995165180964917538177994190229733465224857616114628815752065632238207474599531507602861647623695058640735949593381112671690796335596142010430124683781417828023076027476816068202219709673411776556090962187853799456968290579708094595903778622705850818245685205707447012659247018940946510378371952655457988959551256869060428488498330109152756599450626641948447980234503249330875085656261) 23690260207140314422717484725757957257362133241803862194905636607430294064508433568046404985375121788986585117331107062303230651283942849049556435976939427812080999773651818762202076250169803904715503298031443311811123102443518812079397628951132845149026382328250322751686102174076997313475152225582928621459115654034299615129702577037200466943325242568661934055953787036711367821946631875256334422067270843356163951228955370983646876304293115744870760623000719193844243995712449732016096710806779712826942890328894781681323183639230340508638877407936396123598974513498074226072065555928723950395367650953861956391384)
-      (num-test (- -25321281404861286799950777949097462701962113587443565138655462269365151737118518315058035825695270231347401755128007072923189452859397209062457461602335603630181865680063451525170253746137368267674863889514153713728814272332433431604233690200451816570240227260445028630591376891139306370205846627093813889699170594185178241812081296510140572331372738998993116117098817936927692238682202717231675283209016857095739468507690090676681400453024293870135659990528969837132054786661560150259115734877162158755858653364070279937027014730947342216816307219127474721622123875699701715404820384545693058511056735799834754890692 -15870257059811626693754498423136372480069134596343998984549199283973854570508228359295418026089909378687774627821225399931314225867711515277913855368473873536462450935842786002269065816311054834857109074848803122494252885020527074586145467185882674518032764708782999568002770206995683800833252068328835778749976046128872525287656002968632147457840467536682726059599593635219947081138082647985895437016641903078766878782632503812736486529143041369932038649270950453231711525943737962179463585338023463992816994328519710963267459007592689204838965317062070771191372220277256094361390952025057574056586665509010902583686) -9451024345049660106196279525961090221892978991099566154106262985391297166610289955762617799605360852659627127306781672991875226991685693784543606233861730093719414744220665522901187929826313432817754814665350591234561387311906357018088223014569142052207462551662029062588606684143622569372594558764978110949194548056305716524425293541508424873532271462310390057499224301707745157544120069245779846192374954016972589725057586863944913923881252500203621341258019383900343260717822188079652149539138694763041659035550568973759555723354653011977341902065403950430751655422445621043429432520635484454470070290823852307006)
-      (num-test (- -10064759312484387184876313010284016458560725440641239737323234767636591183611201479885347260175161165340917225306019885202675573016295152797559983194160634880140345743489989007821872426587698574795394887035658449467358615185057180305109018898637903449135520486663185036663238956537895356325733583128141439025002140924158670346599492383552938312402521066705186885506193758499006001382444818328802338159713646715901977137011576113434170842422373328479181457354927400927267448788528116619711184792932525071391797130057189079431487557270366699175956757661488296856660145077706273571985222726397848614141194988258117115194 -3689074607001776735792882994440038588887963294487080609346609068733026224735369468180206799966728461935654851527895876039403151156669223687679382665269013769686991783531091821265184956524448064027733731862929686596729449196238312997460578818232100254940830907672953344544031914926653652310468671685310332327057444910423081752028857828828473637496272809899061573593874011995802487442092326045415689987885712749026491545159340468151000027397821404233369034594141219014219707193746581364791219277489927025992135462852894714639406751538919395016165215641239054420028872350709704191189169571752512626755385998505584006855) -6375684705482610449083430015843977869672762146154159127976625698903564958875832011705140460208432703405262373778124009163272421859625929109880600528891621110453353959958897186556687470063250510767661155172728762870629165988818867307648440080405803194194689578990231692119207041611241704015264911442831106697944696013735588594570634554724464674906248256806125311912319746503203513940352492283386648171827933966875485591852235645283170815024551924245812422760786181913047741594781535254919965515442598045399661667204294364792080805731447304159791542020249242436631272726996569380796053154645335987385808989752533108339)
-      (num-test (- -4621513851362114851854472268081584822344822740665629177305004335694395719163541988311496405455186973857145245414214464449674464879082042971313025249648887349614046805778335573547862191522938924075560443632614665169520240664970180760364771373836023824195690134618554368845612471858027311791638881380352344527105480173917778084361560336490212845414303819150625355111300877737042696291233444311426721588476948565949641149735838580313236869041013210454558557732497012037162735013212361842433337324577522358968152852532145622765032318936569346015498130151789662274686368870963891262060214274101000058555635785833724062234 20283847238128227963042817384468009365120280641032764409860857066215336820785816567924217697745867082423864450685360959383940995237907453126362378908108545669654749698030305432673477271848544313029448526561606175059997663752601262173667861202924953502866611309434183496911206954880840674239880495147451496219568787221129244201657487090244435562896841733049066453539864301122516559479757096183362477594406691085946787803323712522074578611082872627361465163804239673539339633332349145205596371287028267780080937728455742966681547897652607170788637996317683436193829274172400558140357237480809582038468874094877651383053) -24905361089490342814897289652549594187465103381698393587165861401909732539949358556235714103201054056281009696099575423833615460116989496097675404157757433019268796503808641006221339463371483237105008970194220840229517904417571442934032632576760977327062301444052737865756819426738867986031519376527803840746674267395047022286019047426734648408311145552199691808651165178859559255770990540494789199182883639651896428953059551102387815480123885837816023721536736685576502368345561507048029708611605790139049090580987888589446580216589176516804136126469473098468515643043364449402417451754910582097024509880711375445287)
-      (num-test (- 8229768172162771789/4094631553683915058 14916542302144281688/9648520391570031013) 18327341244785642013243791303754634353/39507136041685332578233153660317693754)
-      (num-test (- 13554976081719376860/5850035209629724601 -6813034992928443315/16012083383654426278) 256899901877002811987490932642058619395/93671251573905451634945335611797465078)
-      (num-test (- -221798849980968127/896588178875000428 -10118632981534633697/16809799818197706916) 333990778095757160537366868413422249/941966737890699707694484674257410003)
-      (num-test (- -10398409463665680242/10672871071680021919 908300169382593227/1663860017749090135) -2076589873614048366639515256135965791/1366012573135328609279238070700513005)
-      (num-test (- -2198518713248421187/494031967775171833 162489257999262168/3608560229859558061) -8013762081101965644053022173225152351/1782744111192743850497670941715295813)
-      (num-test (- 4025149216228566945/640594137312937394 5467380276809034025/15813352732084653151) 60148732603712157399679443099667862845/10129941051434949990590527231467828494)
-      (num-test (- 45649282670476595/278386580761220266717341154184065537 -8637266763647548631/320617180101036447149595031898805939080) 17040443444897688379155017841073877168061229451634462447/89255520501631886327999278515127058459530587144975987720686743155549485960)
-      (num-test (- 5648415331928005377/86815630814151297970860026950116430492 -3858618729527320883/27855468652821710859204555976171379400) 123081918822962876101148539477322308270739795776139149559/604572520679633516300271119677141637780408278090307422820905500994965166200)
-      (num-test (- 9781572955588417059/112881800445343004034168709823458687843 -5059688483724168531/4577416283528891230944530353546966748) 615921077060787960354561606126348783111829996215681822765/516706991472571912574910836774186280180852506048696459094758451180832844564)
-      (num-test (- -4967914039344839478/238170260180199675500515253723794945205 1851848905279976507/5731170327270969184071911155742503278) -469527297115675955424190428047537920421409443442551107819/1364994327983166854234805393053180119374354994464588574791772715189542881990)
-      (num-test (- -16853061581795824324/96404437352723357070647888504166371117 2887610208906060444/32980643277330946266739822018299212963) -834203249643667606680245846951263316484378801689149307960/3179480358681967952651970543397987660141008737601948320258541111852875189671)
-      (num-test (- -10766003534404571638/1736320411127247334175538439020437437 -220564366893542891/24024005562370344889629855466198025799) -11228676451427374102904112111967705085778332338188090365/1813624835433832784217556253227924899981441517333394378436857197512671181)
-      (num-test (- -4039872531792560303/2717817538621352660433068255065439787147153801016478776178010367557953211548 -17969900169229544519/10371230759745501411127733226376204123221866394120596070959771442399588297129) 6940459580028931824293913174633904994365279610168782399332846513086074139209123514834476635325/28187112855925579976299840753672542065528422968220885043792832460046226866036339425358907691441054924266606457279617295071355282523744922239122018045692)
-      (num-test (- 11905720953886477738/26349991043344773150817457299711471013733618033386232710348739943906972457535 -1868508269239354100/7915113871665192715310471309271830385175189228544536787145345883401181858893) 15941145914794937177093386304443205602552827651536706608400845076162777444155363739893353329726/23173686625047977587990304423741788120258508897732978034793987736019678129860415537604628640859289817332994555163435451240013483415438259775849311623195)
-      (num-test (- -2449440712560236858/3924161613720467738425590715321110829708355586356453490516463081317902575263 3313932993860824279/18392642760231276916239249302906853654153090246504347205856270072174622214792) -19352032211145724571420568734409847660231095572377236173431089875006133635431666731719362137971/24058567564857748536604240288023690440577404826273237225585673569644473540232022448230431237781096357243673961302816983638647478040822458289501843963432)
-      (num-test (- 2375854596996813469/17171542567603713573317138241061150416263899780234956304631913156611236192733 -1690236091628058998/115698505401619203741389026136939663329574241316722960060260525901879106902321) 303906786920788985464713527121698374469813384178920405503303785899916213843318155692692663023083/1986721810512032345893371071989737461519340072368099757524397292434629497187713075053126253107235936414498803590298681018206068059043963268488989361033293)
-      (num-test (- -9066703779833220052/53996509329904595759286231403247566365148374715934463324003880626270687736687 10104829441267883881/34350188217372122913844475743718288066233853695548819225257606841719829170673) -857068498550946301314281599902676812596945461499639532351672507051201056365247232693696093577243/1854790258563312749374056592838765632813507083399863975139987272744324437901043103651094837595789610803765303659351781344942305171362498886075754606580351)
-      (num-test (- -712905705954993103/38361275706852471555340413672243335795384295466685977818182375699688812583403 -3487523845474404757/24004509207225606167828624323100421869226668573968691661898194620137716910067) 116672912187985693533424614379662678476187446315443107971581372764612623068602629062267386180170/920843595906060126846114857872490000269306626188013726759480780006531676144330596572087176480154495471428384288229491172449159350622326294294528887818001)
-      (num-test (- -104068455909264700529593875361271227125/3443783531459345396 94266182755532992545775726171008609186/10986871169556601787) -1468019045636814162670978305715811638938423723806410280031/37836405995984502494576730289263822652)
-      (num-test (- 6250188382163250356218308848100308290/74975517450841979 10057222263694104272437942231238950849/1377150882331486572) 7853407001895533030925726629648778749078643531548391709/103252600010686800286181264132405988)
-      (num-test (- -325869560300902552275820653500571757882/6390430580148850471 94468553562411191993094256419298214695/11908765973274803007) -4484399064985071999330976874105690617426359030318059422519/76102142247451389303559481900024166297)
-      (num-test (- -93570528036598407567281714804477572547/1681213810574384291 -244906502561054838674546679498356325029/6878656438675875801) -231899320744132980638168050942881155823492361410591515708/11564492202898292712047439710761442091)
-      (num-test (- -81411835730261219386583131450337332863/716127167248934 305772198898084305417824619321954306670/5852119619187572757) -476650772889757879179369019399921041943854248979406203071/4190861845290706865359628655691038)
-      (num-test (- 8378821874364768218652992773582270365/264620166167099506 -235085292482743132422942426826553295351/5218853722286899445) 105936154887632142427944491040385766054707164161382644031/1381013939193345109641609957531174170)
-      (num-test (- -46932041053326337601984043288899377207/83004348019257810472659105973646518650 -172752976692389001100875729845538600392/64697064048458368935602368307247306331) 11302882932785858045495103305619355060523322049764297548269071809310077113283/5370137620102451116225827082734739449691101289924623877117727128768254573150)
-      (num-test (- -5215113722152182902641295804790889582/37267147737183802417372262122851319461 -174324915479281952095382231256728338942/198797486533978895289571841018885549001) 1819946959828587625889363843813156766676787993042778284071188313098762447560/2469538433480866339929667414220581052912334718874062150193407525506073469487)
-      (num-test (- -308468863588547635528373349890793262605/277175417813474671446046438490775760091 -88071245580784145343997181342216325733/109042592277517238289414020635536175644) -9225060231388102579469362745283215538990500777711808852192407359260779270917/30223926073985207174135233898799350451872811382182855106546181559011381423604)
-      (num-test (- -139281160373255540085888405052544101003/21590054032847718908692432707921390245 -175128181843395150044469443628898278945/101874815793501611839718166887463701141) -10408215647857282226079103083273257459322595128147732742048301223816698452898/2199482777568107961766315941206227462112836158088743951492692685709912769545)
-      (num-test (- -13653637423911886957204229566898836211/6724361745919744069899921221745423919 60537422461958273742622747790343370991/323722395245687564470126807800714703749) -4827063738484690108652046326448960810791170812913084889649499536314520788768/2176826490887613088066161490358401961235974091796973399049221882998503572331)
-      (num-test (- 207284509647982883454717074874778610186/315575836476247924963087075944676754095 59454580888278446469281150437143941047/3799382139920332759258392540934029749) -17974876032324524053425850245755672169670471578477359535347261991433397414151/1198993196898275844180025803639723883733761367273976879884312817813487572155)
-      (num-test (- -149255714031984711085009662216310611563/61209488724728410476016289765233999883959861482512968048939594260689484910535 -206353007879160639705730135450663155/12341134377195982958424940281067948493740598784362073339140017508008773524522) -1829354061323966095884091779117676852909282652562065419187935424186237303685407507859167669375269438805585201409961/755394525511335693198081866608161950899365908489933659716533239785460293292606918153507868614180865950008697266433342863460741791684603303270127798639270)
-      (num-test (- 286228990947356503137685907205210886138/64525193112922470913382853022276019736227442678252533126077234112153953877503 -93778927468512815169462456699065596479/70019706577332037325570327903202382111804035215024271930215402736305222068556) 26092773364888269343302672267572690894453186378630697330693315371426642609003667116358459590920104883240139740188665/4518035088612517412858008269349176355736855744033363257986123715832709510554983209440815107866748014413528943649032845277041680450752670951433682692095668)
-      (num-test (- 128067958966292694713545212085241612749/50804897676960765097908813878456128842417954009101908722816951877006748778869 -331437715897535092432788513322484606485/102911257177761006574263802557003927106564530572416215828322919550454967864323) 30018293903870953799879886574342637699455128356488843398998059810000258259055116602688738404467489640369684487419392/5228395890723542025866546462435908982096651119675992137235094920338650164475761939608730060759309002063498665792819192135030537577109853650729817121390687)
-      (num-test (- 27065789167947870065829490227927612633/10795458608984562931374526676297845621730864739104955678079256994070639461197 53314096352440087811254806167289750292/44807028208492548064750449353871285104149154384082409595945081934090139448067) 637187458285170434834128234123875152637450428605039275620795715002449318075555518355578432548587274399560043210887/483712418416385035748598509413117409273155809870339120248356475239836262578288026980177669113025449532258001487616187498682131415946755647640047843156199)
-      (num-test (- 275528434092876314751862670579225752027/23290954563951481764306221308726902093226107549717031306984541394996363441752 118398743375843543978994815511147957868/26050691402435592629863948804505350954161759382372519491414484055670238339031) 4420086456754111377514058698455330162869575963826459083894390154200727636413353382047981846196341965799691593361101/606745469813648893293125236863835131523556569847025597910312571817347251611730291043895952533706547565767925058454286630395458711598751591845070996622312)
-      (num-test (- -263828172858355421790882308711676546531/27836884730007976814146538035133148053942251062564400015534567388490010158584 31580638196736633522674344981675107601/26210154715367115936541726366619494863883445533448748701891278370021519416412) -1948520953518189888695889830515156795224640917019574042614412953331052369986548949517168001067643449389746489215939/182402263891837359872743630675214135004512597266032306942151126033873543370078488920825920736994254287019873146147276876145783659805845233146169813070152)
-      (num-test (- 43029409555492054023102681165249027816896930295612442385573977041111849786681/17478431621804970398 -63831159286570708329826084149841946467426290005331979697932225104261019322894/15909114936773208135) 1800228375210677909820927489860838061135888931548234366640994061734196466170531105718785437541747/278066377585826623354880511023167787730)
-      (num-test (- -34677827126365037739221949705076349308552841821108642369491195428278121711851/12321935233094032355 2466652720703038662112375481129216761044838204088317060529010755963314905661/458077759838279587) -46279076433142446690218423399092373290016631287423134630356063713373023144989129659854095947192/5644404488448083755690706619714037385)
-      (num-test (- 75657421640076548917316021979547903196453821552146142751737530624725671569062/5416811919979369403 -51031635143911513328361770575139950616395278082588474953679149885798666896870/16274277637120569843) 1507698654622877634185545368063085304919907004898369478770589865697455127479301592176158803465876/88154701093808389139357381843158713729)
-      (num-test (- -86696779369804422745383183615836359604633179506005810847902134850836986706763/15354752711854066426 83875579121692496325618937810567731584819474189441279434601944065565889174333/1890321146489013312) -725886765676185953186290796464189476910148783977596698524963064505627422317719186476684911836457/14512706875163632554860591439823131456)
-      (num-test (- -2824584270835350806110810310308644313069326027498380007733023821989145840779/3128200028313826545 -16485532380752962986834975164722153533427821569516340079793116204530103476885/4044901389917631001) 40144878017198534388242075435853869853984060096218401720566307902396394251666454424383286522546/12653260642466969643085415999628721545)
-      (num-test (- -71140717297594692514165816539390347954764512441693085945645019026357644035048/15130773661553937219 106518314860779634188990156539381479314908411240039365434170935270962911954978/11202282371121185733) -267626990691150539404999353980899804835901788880218020004516046839225745741587662342920970677374/18833244338916713919008552672213388503)
-      (num-test (- -31372444086039981530710911528326367048894875160807395940269724829549418985367/149682691887362386596593782520991059630 13980025800771566396092717430902170466939197897483207383178768135899198010674/143215924045734814208985239450703841431) -6585601463869631351127457963734548845246885851328680299125624347680443020577881573937479731612385878788264587830797/21436945032301618223045694723696447349670080755369221855700055538448185530530)
-      (num-test (- 60002561005149795132492915799111287923312170708430066011808292212167201814322/16346766380600148228286881361520329811 104734497917913613491539581495799848702023341599268915776996571583385896191203/61937476024742321910315674059586179787) 19844918952732846654680216616282727016967753441473733514766184661191061075852141231786969917096326062063227788681/10024529215648371311559365663430434349900555024451481776473735938354274557)
-      (num-test (- 78980655687309201443760271907411093305339297143458162112992101000746746121121/24094471248783344167514231679460830840 10562090177736342378322146805187203837437609238688017154037816697523731420573/74961473522415640988394298626742882726) 2833009175986364875175323375606672657538996734036576482627590142336455915129629838687125527863027857335645122892263/903078534276138789186206765245648729133926893901427360507431923032322034920)
-      (num-test (- 96507496069338193466683209170737942070468924698476218759487496209308948365/19252547784216386872197161331387216893 12563973560096321588715986952435909079270363887929001032891628645353358046011/79879611474172059435223762585596250921) -234179520035021783886726161079163865833895106001667476480293126893061678147610754451356994012799045797572757769658/1537886036891137155393554113191390737924110193971845147480358562685078008453)
-      (num-test (- -95307376781556674397571761484869767912211504027346871580288574968524683908606/128329921725822403056205582017133271311 36170894925879686192917617159219095595164782822289198001474013555499918728596/240886887357120796976726436320063138705) -27600105449672599524131749634403660999916186956076872373762346977331203119722064380924286397976905109959929163304586/30912995399316310109755266138690547023211992922143297688759057498082990192255)
-      (num-test (- -22104893896795356297688360407985617971036912713007110938688208155601366216839/5790727918973991999188987227357894380 -2339372311396919406471876113751500811577555408710269902369834593304924842262/12937689744925498650506694361349920911) -90813196841584888136609582546105640167792279132393576014002859436259486025871518847027719826829986116492656710923/24972880404321196721702428178050372850585634300866259560981343234830460060)
-      (num-test (- -3426218098660813853559652497557253942819662042768623922183022792185928242671/2077407536662385613357832628600529321326686191757127715026249042748302985178 102639297566540827510784861997871251414598617775200449087621943894148321803293/83089038429507982364103335021257902316010144851865721965726693103637274338545) -497904817589969304680335736144278473886197067420059149312627956679073246109792679236301202959163792633927112737045328517845259242265445360227131779644849/172609794647490471018785535271654901168315737813115654161745630290269473799997219289162551586864155467201760250711449118429648095083028041134558889086010)
-      (num-test (- 1543899448831604569141696144740105016328586790221799945430718394112623114412/1094690716976737526626281319975432667416762320123576900412499904933271786567 -101835025746074730017715423582062511397387458863000475669454309217160145993/55116548932808468782187525862059393507883043749327746382569396580129398962) 196572266866178229534134252625134989714563665559807019513454337864363053729628560611312158082929567528955985669620113192156991984486011150099776316375/60335574468539540262844259780498204139853746803235564167348945699931512713417761400790104247218084745081610815218855896912895393599203789305655343454)
-      (num-test (- -37581128364300495505521143552535972339959603365602244668159915869829949338997/42947503543372015019662104425995959382231280059683481488692141811517675950053 -64888994735350842409379226446854438865448614840503930577860382883594178287934/83188698741706753136718468601650233481619465918167616089202536622553688681087) -339504834548876267781536981106771553482515399809961247195394672491113984585270709765073243997043174508213253440272888923497173265137136111635177948889237/3572746933977957867604303713153220827104741303667912510494658617478381525690274918494624922428110123336345510454960178899375325287131764283538305257747611)
-      (num-test (- -16230533405187239318665866908175768720879595131719076634847964191318368133798/22572606803697929681675696479626869642065470042484269772607381297011844085929 -3238806615045730440879378702226410558103197865253164974472379309242480970831/7167633180423354812410246140643720752789573307606828791458541239290047771821) -43226201536346598702395278529841763047400215735214225929426206339139243925579733185594282160061132691154727543083543034702325848468839969037250195569159/161792165494835249202675342837643048016103040739685489755239980324180308179745586573032524649518850731442178659412287492012066453331740508600962908806709)
-      (num-test (- -58154703770626762920775801228739843350302933064569814497417973139312614069763/25655935043535628671780902110427599603857741303802203417196105196580175051005 2291927744682353823611191393035210406213286149316388597509251757479544491322/2075117977066796442381930295725401140983312287419314083032058820231519915051) -2848879691864593463404526996418656511058536739346277043463623510210968076493148319480555434626780964688210750895957968447300033820091387019574369485421/845064952814266442598400897276554701819815257830830535600041451476645443978805142044657833921127247033533628716506571358424324423237490438402971304385)
-      (num-test (- 16233726784138742204308718138203086218138595789383817317246449554340898453104/16370584482945481446847872945862788646563748664837147378940234530469832625057 14431071141710676049963542765626402177344958369162454874051268130438178883381/21166786163219212747261378458659387864767326410261049063051557406799162784072) 107370754167217929909136144689909613387440429633745577224054233373886366171618903318258855919060113440621302505589923655976636732694637334616990468681771/346512661117421566971293748815177161526095870176610277140325665174756629068111228154091043637596506814557119477231243643171068111260010676990408227692104)
-
-      (num-test (- 3872339191937382556.0 13437882608410293981.0) -9565543416472911425.0)
-      (num-test (- 12702320881720530101.0 13823645380834800545.0) -1121324499114270444.0)
-      (num-test (- 10222969257152373972.0 -3454292165863475982.0) 13677261423015849954.0)
-      (num-test (- 591233951053628288.0 -17639978232337836611.0) 18231212183391464899.0)
-      (num-test (- -7878405903223218778.0 9050739027069287469.0) -16929144930292506247.0)
-      (num-test (- 11347120771894057376.0 8443917396834074370.0) 2903203375059983006.0)
-      (num-test (- 7831959259127703467.0 -257470007821066702597399141202130667973.0) 257470007821066702605231100461258371440.0)
-      (num-test (- 1092406341647857980.0 -325710450166845666190895573961860069495.0) 325710450166845666191987980303507927475.0)
-      (num-test (- -4220606126689357919.0 73461013742902296577411907972196819778.0) -73461013742902296581632514098886177697.0)
-      (num-test (- -5112059189225304080.0 334306213789148650102245018234146620793.0) -334306213789148650107357077423371924873.0)
-      (num-test (- 3093346224554776175.0 -204967241927023874963787190016588249299.0) 204967241927023874966880536241143025474.0)
-      (num-test (- -5735747638156472357.0 -3881750746805128137401544408305666047.0) 3881750746805128131665796770149193690.0)
-      (num-test (- 17639095392510638323.0 13312205908441007415860933757605397223142073616822325142416364932887680287063250296996056787873086490231950036662943632990219865746131453861285495087665017.0) -13312205908441007415860933757605397223142073616822325142416364932887680287063250296996056787873086490231950036662943632990219865746131436222190102577026694.0)
-      (num-test (- 16304056910692545233.0 1463591032326743052350022746892396184459320617971409440301562638996633667625451301419074212369365394140737678584830314878769698416417465834928609990708982.0) -1463591032326743052350022746892396184459320617971409440301562638996633667625451301419074212369365394140737678584830314878769698416417449530871699298163749.0)
-      (num-test (- -10347586523508777315.0 12614325304787850623826535169596975975360455924114817820074336137897280818245940873677389644701038550150832199897314137414727161192173691528917744363375331.0) -12614325304787850623826535169596975975360455924114817820074336137897280818245940873677389644701038550150832199897314137414727161192173701876504267872152646.0)
-      (num-test (- 16875252323587344863.0 -10230183557696638447600885112945653217398839137450096120772416948425622105048400944465287395231588821521217980407867153259741079758527788318592431794213674.0) 10230183557696638447600885112945653217398839137450096120772416948425622105048400944465287395231588821521217980407867153259741079758527805193844755381558537.0)
-      (num-test (- 8574302739232756920.0 2945205250727759066959418729185252318153395797902208079569164623770839848878181416073351760975066439564334127158302281471631001294503759011790017443478716.0) -2945205250727759066959418729185252318153395797902208079569164623770839848878181416073351760975066439564334127158302281471631001294503750437487278210721796.0)
-      (num-test (- -17657597319577965851.0 -470389901349206124503884936612357721199915776516939967013182926735009022045917047211666512521578494339222795740836335004070464944715357800461845632614015.0) 470389901349206124503884936612357721199915776516939967013182926735009022045917047211666512521578494339222795740836335004070464944715340142864526054648164.0)
-      (num-test (- 11472336850218354926.0 16764018932433717867649699977474298016589762238077229911249331402108995850754999065988360217500238643747316139204767820295123085026049273617874157749889925712672510963712964034497935503076689670786498045302562704435768723916334451317158760704743066709581593570757498670622547878516907127632802801541072452593999435195637193819500375063696114131057474475407791672955417184592088612921927282233762919112197264895445408873539746256555444555901857369535350160665235184955438709679669964546134487688796078142789125799020704969226557493354453298489954288702387159956161243151013189140749021799388406290339231792790773612376.0) -16764018932433717867649699977474298016589762238077229911249331402108995850754999065988360217500238643747316139204767820295123085026049273617874157749889925712672510963712964034497935503076689670786498045302562704435768723916334451317158760704743066709581593570757498670622547878516907127632802801541072452593999435195637193819500375063696114131057474475407791672955417184592088612921927282233762919112197264895445408873539746256555444555901857369535350160665235184955438709679669964546134487688796078142789125799020704969226557493354453298489954288702387159956161243151013189140749021799388406290327759455940555257450.0)
-      (num-test (- 12682607562584942903.0 32133619583510009354538204193505267426986629771080807813988708187761849276650847958886764459302043799013813125903744946349479743277662066609741649009023451783267511140245797235200413941774959851628239089013586399425314412329003636059313583335807925401822165199322334470452126484173417518861322963430951772895619791799137157183662289329901964728384697377777905235894234370773419160283767144177627084271804319157013765325677633945370597318765372346484383325176768117059688792498687750479618961541872574768601477738410497806623403054372221338126223825515939164627992974469102910882915893925327931884157735553718792115929.0) -32133619583510009354538204193505267426986629771080807813988708187761849276650847958886764459302043799013813125903744946349479743277662066609741649009023451783267511140245797235200413941774959851628239089013586399425314412329003636059313583335807925401822165199322334470452126484173417518861322963430951772895619791799137157183662289329901964728384697377777905235894234370773419160283767144177627084271804319157013765325677633945370597318765372346484383325176768117059688792498687750479618961541872574768601477738410497806623403054372221338126223825515939164627992974469102910882915893925327931884145052946156207173026.0)
-      (num-test (- 14621880654476679971.0 -10075923784619510279100488003620810539888599376089081798647754628017452762406215094511315867213396543200861274584884759429891242650999761503100661310915213260386281412125687376866399124849043409890009033179987278297335571911640353059036551139958369871790768643514550179661619387008678118363266091945225880595898524898713646458647465935791224159084684209727153050053537752111696883536364966526666445737103854446009305531519860527938394412863332757413309423156200192973778629503534709731073637828912608835085933003410694216843775182940057891552358942312728978810053715387504707194992816961400377579655168106377696154728.0) 10075923784619510279100488003620810539888599376089081798647754628017452762406215094511315867213396543200861274584884759429891242650999761503100661310915213260386281412125687376866399124849043409890009033179987278297335571911640353059036551139958369871790768643514550179661619387008678118363266091945225880595898524898713646458647465935791224159084684209727153050053537752111696883536364966526666445737103854446009305531519860527938394412863332757413309423156200192973778629503534709731073637828912608835085933003410694216843775182940057891552358942312728978810053715387504707194992816961400377579669789987032172834699.0)
-      (num-test (- -3220156644655019630.0 -8347829670073174550775641165362740628312221836466572623516708794243074870361401136762432100726575330214254748615114820602945887237367461962207075265579588481261313345359877816874924645801358760718027997416917747796144940020489321523749233377708490614979453376328244189926517907474704635785063100359787580409065317918203485474119227673185211436285930586838616288721370975925191964611302275354365110550116042403226844820172448647475637867255305805337047967053177320593337377763657329816935516961201488840745892529800883680912275812320160312651894919502389242002380151562481051684439333368396132543667539444686619670713.0) 8347829670073174550775641165362740628312221836466572623516708794243074870361401136762432100726575330214254748615114820602945887237367461962207075265579588481261313345359877816874924645801358760718027997416917747796144940020489321523749233377708490614979453376328244189926517907474704635785063100359787580409065317918203485474119227673185211436285930586838616288721370975925191964611302275354365110550116042403226844820172448647475637867255305805337047967053177320593337377763657329816935516961201488840745892529800883680912275812320160312651894919502389242002380151562481051684439333368396132543664319288041964651083.0)
-      (num-test (- 11628988978410243120.0 21091260149209133824278525560739673446778991946138130571540201996950100883736332286627324787663044982195445635023357027423513202277912840570399895946346028843517588470258087913846945044832851780108963206182331994065720076983528527849542421619745503796476103034657238118665288185878258232226731582201217795631247916614224227701409259346052937919425072595891571572960468193421257458185693656090215937518204243652916583730260295885562094977775951577484951577581277292356830523013216949489797535362720471761788697932265967910160407593278848113303674799017334692501935041730808945554336564957621028111014116286675587727714.0) -21091260149209133824278525560739673446778991946138130571540201996950100883736332286627324787663044982195445635023357027423513202277912840570399895946346028843517588470258087913846945044832851780108963206182331994065720076983528527849542421619745503796476103034657238118665288185878258232226731582201217795631247916614224227701409259346052937919425072595891571572960468193421257458185693656090215937518204243652916583730260295885562094977775951577484951577581277292356830523013216949489797535362720471761788697932265967910160407593278848113303674799017334692501935041730808945554336564957621028111002487297697177484594.0)
-      (num-test (- -15960716439913426281.0 18799211173341989380260980155501104944815245973352765317821146163884181375747259542484535639646490774929026134833947975785613727050541297797675705933339289016115326958150660323801621778641184271728990164666383865587422591755046779736996211052149338115836473967202556153668963815595875844414662034458693455631979862997316049580586739835122770408911308146605671192538040301857163633538268589024651373766021087864982140201615461513687698136663128896835597598904095187715456109340116329587986878167776146023396961265667934659006280575496363066974484893764810659481361856335795455814679851690737943592227795474197104696127.0) -18799211173341989380260980155501104944815245973352765317821146163884181375747259542484535639646490774929026134833947975785613727050541297797675705933339289016115326958150660323801621778641184271728990164666383865587422591755046779736996211052149338115836473967202556153668963815595875844414662034458693455631979862997316049580586739835122770408911308146605671192538040301857163633538268589024651373766021087864982140201615461513687698136663128896835597598904095187715456109340116329587986878167776146023396961265667934659006280575496363066974484893764810659481361856335795455814679851690737943592243756190637018122408.0)
-      (num-test (- -181065640455671431985325539445069267017.0 14120143334024043377.0) -181065640455671431999445682779093310394.0)
-      (num-test (- -91295299684959299024846233061686623774.0 6891102275697080803.0) -91295299684959299031737335337383704577.0)
-      (num-test (- -252582289949155881579950873916766853744.0 883304029266526072.0) -252582289949155881580834177946033379816.0)
-      (num-test (- -10104159950635417603045689770006558103.0 17251490913777465304.0) -10104159950635417620297180683784023407.0)
-      (num-test (- 288463495341489091297108607960869684860.0 -16376960611483226267.0) 288463495341489091313485568572352911127.0)
-      (num-test (- 204661965092367792468062569536290631004.0 7774991291341524479.0) 204661965092367792460287578244949106525.0)
-      (num-test (- 174559967167400201536723778015754014369.0 168183438971818617783400303174116396891.0) 6376528195581583753323474841637617478.0)
-      (num-test (- -253300708624436983509156598368557395374.0 -77166863757693227553099778725240875400.0) -176133844866743755956056819643316519974.0)
-      (num-test (- -38587765028356074196061530813295290944.0 5999161273284748726648331130480323187.0) -44586926301640822922709861943775614131.0)
-      (num-test (- -236400856885875891058508662756360145662.0 222191413471626205952456600591947275777.0) -458592270357502097010965263348307421439.0)
-      (num-test (- 212937903940173587742882129816769611096.0 336470165768472077447806282475185249734.0) -123532261828298489704924152658415638638.0)
-      (num-test (- -264812595676159375893264580577855253845.0 -247068943830535581577267897204259299723.0) -17743651845623794315996683373595954122.0)
-      (num-test (- -1725732715479127274526681751197327660.0 -2279805492899538651574406423954277869507456204136276822451602661149698386520868702017367409743272511010382761246500508887739763323997191435566266331339917.0) 2279805492899538651574406423954277869507456204136276822451602661149698386520868702017367409743272511010382761246500507162007047844869916908884515134012257.0)
-      (num-test (- -220007189346579184019349894240059989979.0 9116030813176547770422918633286023943039811682891023288884273747820892639481842291616424036020927750322528731882517057595815179415042385175627374957565803.0) -9116030813176547770422918633286023943039811682891023288884273747820892639481842291616424036020927750322528731882517277603004525994226404525521615017555782.0)
-      (num-test (- 139683266109784685815165642637380856544.0 5782493350903499652295971390391981928106911831248674750993968151944332845911526084530951283012280786005612601970108688202931002414214353708335212597807345.0) -5782493350903499652295971390391981928106911831248674750993968151944332845911526084530951283012280786005612601970108548519664892629528538542692575216950801.0)
-      (num-test (- 239160165978290709841254489756277328273.0 5152132850125501873897264811465207492706871561577273155117982457627773151595716641409297120994045059130053034927464958986304380141364542178714472948085275.0) -5152132850125501873897264811465207492706871561577273155117982457627773151595716641409297120994045059130053034927464719826138401850654700924224716670757002.0)
-      (num-test (- 315772704643232632782106484978382006176.0 -3689252327480456512393153800679864208480329729627292260734151097785848947569336194072922395859496552999163037466184616218582046814434719444842678248982224.0) 3689252327480456512393153800679864208480329729627292260734151097785848947569336194072922395859496552999163037466184931991286690047067501551327656630988400.0)
-      (num-test (- 82735713197488344149642668226610301853.0 -12473025194535761005577066561696471986140205263843017221991729197337093872383371857001077050460827652296473928714097816492579684543651922277865558518876774.0) 12473025194535761005577066561696471986140205263843017221991729197337093872383371857001077050460827652296473928714097899228292882031996071920533785129178627.0)
-      (num-test (- 63472235942371758467270296983419551089.0 -7866520408163137968600317959735552406794938230345293650627055135268307695389903092041438746530663083967329111232451176014649873249349534808700483360707382397988918594143264031213181385790969271527978925616276399184489007642142996251807222768397530946779296600805549276528669432847672215219943599871223372831999133812100481632278022608906065923652981249057846548868473376683960144009223047416366697876553049362242497225174860431577034875737250719899362881567590934060155436179316063810148362442197071642183371654740845983314705249832168923202400873364289483910868432511677656218937984504828452980698439495961392749596.0) 7866520408163137968600317959735552406794938230345293650627055135268307695389903092041438746530663083967329111232451176014649873249349534808700483360707382397988918594143264031213181385790969271527978925616276399184489007642142996251807222768397530946779296600805549276528669432847672215219943599871223372831999133812100481632278022608906065923652981249057846548868473376683960144009223047416366697876553049362242497225174860431577034875737250719899362881567590934060155436179316063810148362442197071642183371654740845983314705249832168923202400873364289483910868432511677656219001456740770824739165709792944812300685.0)
-      (num-test (- -284018520801241078671538235859630240269.0 -5529748211779294240854894683633173443789067073881249229985499707296461959655918837051490512357840133495603640185675483847478587849599477020706893805485599954539589062532211767295361120129440287144117406526027552427750375526095104163474774446716012360038076376952619723549765229763943818011605991300849052030142173100367582906381575666628005795818339029350398340616624791399526643991489247585213423174803853961438830286737553181353007081438503238779644371968004083452645077716952159339978836669723137339898471600546912430030276920763475622536295311290657163861398519747560279682401429552174530714298081464588450842581.0) 5529748211779294240854894683633173443789067073881249229985499707296461959655918837051490512357840133495603640185675483847478587849599477020706893805485599954539589062532211767295361120129440287144117406526027552427750375526095104163474774446716012360038076376952619723549765229763943818011605991300849052030142173100367582906381575666628005795818339029350398340616624791399526643991489247585213423174803853961438830286737553181353007081438503238779644371968004083452645077716952159339978836669723137339898471600546912430030276920763475622536295311290657163861398519747560279682117411031373289635626543228728820602312.0)
-      (num-test (- -171812101820192353275910956459431262142.0 11401673303315394031728944442295528921842441448377692701102691446500671963119794838260543877466107345474902885032629120622020177051592733148817057943390167845763358795044702079370835841331467130719834250134674578757640577473495192331790176510774020541399177011446664359866582351045889299070080989390219063301859447807907203943168891690028442190793548699886572720360741686677780644932612683647303776634496172481504075784427704287335805355801794320914944330891519283383694196486986108936857630373759865062862204149003789919218681050221366182434949855054760827976853645027544605870235074909890698574792562001595287630131.0) -11401673303315394031728944442295528921842441448377692701102691446500671963119794838260543877466107345474902885032629120622020177051592733148817057943390167845763358795044702079370835841331467130719834250134674578757640577473495192331790176510774020541399177011446664359866582351045889299070080989390219063301859447807907203943168891690028442190793548699886572720360741686677780644932612683647303776634496172481504075784427704287335805355801794320914944330891519283383694196486986108936857630373759865062862204149003789919218681050221366182434949855054760827976853645027544605870406887011710890928068472958054718892273.0)
-      (num-test (- -243638660221338112796448050030955119997.0 -32214383478080953899491069562585164652288236626686985994647827422262342469970423345510055643470262764747630363450204055220886177681745412924556264758690138113272748656941509018308925555317383307928766093730384151056027828368474245304944063213926492719166086055718735381341569379006804236876950175122702350552198046290567043195716369691666842524594399597143281611765509174168738392889075290806378316647736667077047013214732267367344808724905727602402784621437141760604478301412768904784950365257469208085143467704875589485635570084387755189599791857576855454112556762755762408826226326879491415484319411662301650468948.0) 32214383478080953899491069562585164652288236626686985994647827422262342469970423345510055643470262764747630363450204055220886177681745412924556264758690138113272748656941509018308925555317383307928766093730384151056027828368474245304944063213926492719166086055718735381341569379006804236876950175122702350552198046290567043195716369691666842524594399597143281611765509174168738392889075290806378316647736667077047013214732267367344808724905727602402784621437141760604478301412768904784950365257469208085143467704875589485635570084387755189599791857576855454112556762755762408825982688219270077371522963612270695348951.0)
-      (num-test (- -126332081511349770866908261827634312283.0 31497387372874133218238910173378055967910722258532087598053588964599898753455370244114881403020152175272452951858324158004662566613339529101292284073176382818309096142522412043073218657587031893636358434796164444941535757484360125937835242214199979245499374972029624710574236962978707708765065292759037309958875006017588240959790355958632745299212449602934380927677385974488564420550408281673927387615657765312151272852486266800510090872812376232597458154951925709496664568906509814364388823105469855516803225244972466742963619633076158367569109107733990828830121948130235858799809203410103682003414364238243553515261.0) -31497387372874133218238910173378055967910722258532087598053588964599898753455370244114881403020152175272452951858324158004662566613339529101292284073176382818309096142522412043073218657587031893636358434796164444941535757484360125937835242214199979245499374972029624710574236962978707708765065292759037309958875006017588240959790355958632745299212449602934380927677385974488564420550408281673927387615657765312151272852486266800510090872812376232597458154951925709496664568906509814364388823105469855516803225244972466742963619633076158367569109107733990828830121948130235858799935535491615031774281272500071187827544.0)
-      (num-test (- 219979452670016849533060110266815720199.0 3900115048441644499033281842448985956665866771934663536385503692700586024397767816761943054115584011069129310718114010862034970648115172218305599786238607524420973404711138276011261135403209178420948996472570042497859127324157786975578751148348046315727383390370594954695454631662061021971027739429505825056455676233533511412589936865597034183410893428831818716136282201523804692574965779771140320669492229416601369453681528301333865290947482219850340728455965391492610516639151652595539203632139883064874286555941718154489936421274731413286355640404192677546692090304496817063325766995908926108582896362623757323811.0) -3900115048441644499033281842448985956665866771934663536385503692700586024397767816761943054115584011069129310718114010862034970648115172218305599786238607524420973404711138276011261135403209178420948996472570042497859127324157786975578751148348046315727383390370594954695454631662061021971027739429505825056455676233533511412589936865597034183410893428831818716136282201523804692574965779771140320669492229416601369453681528301333865290947482219850340728455965391492610516639151652595539203632139883064874286555941718154489936421274731413286355640404192677546692090304496817063105787543238909259049836252356941603612.0)
-      (num-test (- 585873325961105129055557280004608765382109855007674169500308242261038324959928764512890600512016613154122762798104714052579267789493643522748210870974797.0 -1855792162818946202.0) 585873325961105129055557280004608765382109855007674169500308242261038324959928764512890600512016613154122762798104714052579267789493645378540373689920999.0)
-      (num-test (- -3026050092505200332789765255096964033685859497096213532090644235603419347590512426830117415222669642053441336442247132403948783838396746566100575461602162.0 18009081534399282710.0) -3026050092505200332789765255096964033685859497096213532090644235603419347590512426830117415222669642053441336442247132403948783838396764575182109860884872.0)
-      (num-test (- -11124638695599888462310706699308855434715251048597328942409434888923094027849143412724699165971400546471660924330688750607774759764580214088920441698992069.0 -4827559068742614723.0) -11124638695599888462310706699308855434715251048597328942409434888923094027849143412724699165971400546471660924330688750607774759764580209261361372956377346.0)
-      (num-test (- 4950293428090696283711882613183655723616682297360442241017758383241177602498881186549809051670562038601658285833496694108818253845693871318067007752043113.0 17597810481352184048.0) 4950293428090696283711882613183655723616682297360442241017758383241177602498881186549809051670562038601658285833496694108818253845693853720256526399859065.0)
-      (num-test (- -5733769947958740467479139247420201065087494801172241127791526686385518674532830661413722661802560247463032020003355494614502034002778775472609306735864748.0 -3892174127829225880.0) -5733769947958740467479139247420201065087494801172241127791526686385518674532830661413722661802560247463032020003355494614502034002778771580435178906638868.0)
-      (num-test (- 8320894458193427045187598554188178307429755504967209344418448624882517461814957461249858674758807195827056824653471934409067429988676743031117653237018365.0 -12861394200627120797.0) 8320894458193427045187598554188178307429755504967209344418448624882517461814957461249858674758807195827056824653471934409067429988676755892511853864139162.0)
-      (num-test (- 13033402737450594044106258936169013897237368708138118260402180886096095497725071502601849887805439844083105685971731015312020770945603825344926844435936044.0 236396022362585261770052671762207864597.0) 13033402737450594044106258936169013897237368708138118260402180886096095497725071502601849887805439844083105685971730778915998408360342055292255082228071447.0)
-      (num-test (- 12170667278114656173974716189098171384426379753661081475485441559687661443127166543908925678856145097632475832903680828294561265828775791256812588754280222.0 -276673555533799047589626400978981416789.0) 12170667278114656173974716189098171384426379753661081475485441559687661443127166543908925678856145097632475832903681104968116799627823380883213567735697011.0)
-      (num-test (- -12755594876262399860618168642932232021734362385933348033134635580177924615701078617214764415318471507488803810365565826229169313660087149542130819663319659.0 -157671440495648010763311068579191828684.0) -12755594876262399860618168642932232021734362385933348033134635580177924615701078617214764415318471507488803810365565668557728818012076386231062240471490975.0)
-      (num-test (- 8664063140780163008577373335591938905735059211566906376953760862047748343846207426667781783874718320339071949903053785280430612875488847226724390758938740.0 54361107931665215623681874454167019934.0) 8664063140780163008577373335591938905735059211566906376953760862047748343846207426667781783874718320339071949903053730919322681210273223544849936591918806.0)
-      (num-test (- 3699576825118349347309026261327541749454660339251578894574483235547605815416603169143590292164644149607672871236942391817131531474661895913650810587431606.0 -50508350367572393968128467319633674717.0) 3699576825118349347309026261327541749454660339251578894574483235547605815416603169143590292164644149607672871236942442325481899047055864042118130221106323.0)
-      (num-test (- 5626548453644136572409808769267055618695663227750732922630041368983808478347120771651822300668480671524976882745306794511840379704578900504784165956486985.0 170502882789371639987361620116696459267.0) 5626548453644136572409808769267055618695663227750732922630041368983808478347120771651822300668480671524976882745306624008957590332938913143164049260027718.0)
-      (num-test (- -10859007735074693411217019392659638207496329895257318665547454149984863458541990037760564769787816800806064437172810158051442267508476778676439633382657890.0 -7558060977666720080449823996328496253877735754811271086853901493753796001778345391546991917892931500169890406340928835457635973812901681485438886367096185.0) -3300946757407973330767195396331141953618594140446047578693552656231067456763644646213572851894885300636174030831881322593806293695575097191000747015561705.0)
-      (num-test (- 9842028993407961669727766131360795288615020071102475108883839785397865740828387076847892646234215787999498419839351470775471313077046438080666908734795616.0 8259939762466350877481193620364896193464602165170783019804380181692322874550956777598992104871440502758410340359413403619753571535498118388286469082729503.0) 1582089230941610792246572510995899095150417905931692089079459603705542866277430299248900541362775285241088079479938067155717741541548319692380439652066113.0)
-      (num-test (- 3122315115429970622394662815735050825423438028108957393747131991771456957037829402044934484343765915727397519247940959221091465331254497476137639859816450.0 10737995515603450913722681305571315249864367824351372254572936648132763616823019940208526402092654554035074813865303483747097673960803093638463005072804384.0) -7615680400173480291328018489836264424440929796242414860825804656361306659785190538163591917748888638307677294617362524526006208629548596162325365212987934.0)
-      (num-test (- 11618335890332522671268040181306950825004789685088262996478365976802329054158653675768163009290064139158450983598701977173152384425333441365287895694522192.0 -13130287008197231017935223399369698658354829835061356451363818961959486828237111511740029441613108087354987794332115218978284937263725126538295501305403242.0) 24748622898529753689203263580676649483359619520149619447842184938761815882395765187508192450903172226513438777930817196151437321689058567903583396999925434.0)
-      (num-test (- -4829477140897377009195646150061276059814366801005389903693533021027427566117360765323647260121062827801190746646296803957067548167571028717513392985791293.0 10716557117391614298810040587314742187092120526669273567183969821384063434473189717686678450880765426943205955814024872764413373364846268902370055526485180.0) -15546034258288991308005686737376018246906487327674663470877502842411491000590550483010325711001828254744396702460321676721480921532417297619883448512276473.0)
-      (num-test (- 1560421244904974852620371975782132605421448226892487453928759432083522187778803424020804578027100625536441377609275030418285893555753560195716001014786650.0 -11797558308994912054526619290334311429749533070145154703018977152548370444659962978040151671210413666186432921816690953994784423526183449271023503069393845.0) 13357979553899886907146991266116444035170981297037642156947736584631892632438766402060956249237514291722874299425965984413070317081937009466739504084180495.0)
-      (num-test (- -7701347923966912534344428538744620884561375267012102797292378941649984539207353887059064943586048644516121387166836442084007442716291792933061162738380376.0 5290969389374230541016502448421359606252744677802288901830045825873182202718418905866055323957065013553046698199939002159982374580735362593037515863844280108947533575824820196689891621498006303535207762625068798755031433921940066544809959896067184147997503827988613858484669349726945188167613248195147619673963531690938913245110754715059472477991342216448470339490385593605806518967792963339193162830698488489270925945408227996742278697477358272529028932771642478870844024835907350391770605391526921411004262446196112836319091260967898895009427182171643279100998182191816962677328417390867021108292139204864164048286.0) -5290969389374230541016502448421359606252744677802288901830045825873182202718418905866055323957065013553046698199939002159982374580735362593037515863844280108947533575824820196689891621498006303535207762625068798755031433921940066544809959896067184147997503827988613858484669349726945188167613248195147619673963531690938913245110754715059472477991342216448470339490385593605806518967792963339193162830698488489270925945408227996742278697477358272529028932771642486572191948802819884736199144136147805972379529458298910128698032910952438102363314241236586865149642698313204129513770501398309737400085072266026902428662.0)
-      (num-test (- 9733743430220591762422540139212426729307515492818443460852332805653889275463385649305231919846970974905736816260992940027028218064265519723018527155353151.0 -29407855293830047984154639411082591337348779678279017647951764366455421210163494489475996514661359700145916243499452007595041420522019751347743105082745321262372977262641488359297167392118038994384136863563032667040671405618315550876997904307423736276844997706938133936081058323434935833614475654922773162140266784233792639117145232791514703532554345086520312281500696798706889025860427142771458666376271994240028586899592254884476941388776984078337603148583453255593120138178690189726206775893096279000909079330468718593887702543025737308336025198677457129910473491269839827087491228569718246503140134413881896746751.0) 29407855293830047984154639411082591337348779678279017647951764366455421210163494489475996514661359700145916243499452007595041420522019751347743105082745321262372977262641488359297167392118038994384136863563032667040671405618315550876997904307423736276844997706938133936081058323434935833614475654922773162140266784233792639117145232791514703532554345086520312281500696798706889025860427142771458666376271994240028586899592254884476941388776984078337603148583453265326863568399281952148746915105523008308424572148912179446220508196915012771721674503909376976881448397006656088080431255597936310768659857432409052099902.0)
-      (num-test (- -276731217243271862683214238489380950428392903790808046630969592255272629537001990355375434170910931115552132394269672247616298060929507021008951190291387.0 100289083769237476480554074865040988004216167545459907207847010762380733541100608695693297149249375537088329431700364201275915507683345148401600569951338052791424407090330310974243070931256108167365334162914085216447196038922091547331474328250886730614683299908003398886233860613008266913065047699535081030427106800418656336608005860846045905149012346378286475449307630537665901621055008855374148058291266835796203075976592585729940879567246284967856356337849150102261744547461816282538319258966892339056695718919291240188920586288417893106046698069355647145603908383687239983874164793005765733782432717429040621674.0) -100289083769237476480554074865040988004216167545459907207847010762380733541100608695693297149249375537088329431700364201275915507683345148401600569951338052791424407090330310974243070931256108167365334162914085216447196038922091547331474328250886730614683299908003398886233860613008266913065047699535081030427106800418656336608005860846045905149012346378286475449307630537665901621055008855374148058291266835796203075976592585729940879567246284967856356337849150378992961790733678965752557748347842767449599509727337871158512841561047430108037053444789818056535023935819634253546412409303826663289453726380230913061.0)
-      (num-test (- 8505070389896098095621766692413480203366379968950158493268895987250690600795955783113900096527432416791184386061684833478921638080978014176210898461637606.0 -16410711613672171332126342754193842244915477287016327757357714698751777287458963458682349581881560880814595167244857846847668988374679430572782121021084683986742283012573569894084166107235597351093334125816075658348307113218478800035703971671113417712009419861470917307849916674203301497919242668373376352901312309673053175315189945730756118172940886476343290174961420986113367531057713782438374928471960914578818951372282574754612716278516397754222547513576728677459134022062202283647690649100602260948409511070624300011106517649666031530376191755817891213910847547809248990517666613043010292627100428536737652546738.0) 16410711613672171332126342754193842244915477287016327757357714698751777287458963458682349581881560880814595167244857846847668988374679430572782121021084683986742283012573569894084166107235597351093334125816075658348307113218478800035703971671113417712009419861470917307849916674203301497919242668373376352901312309673053175315189945730756118172940886476343290174961420986113367531057713782438374928471960914578818951372282574754612716278516397754222547513576728685964204411958300379269457341514082464314789480020782793280002504900356632326331974869717987741343264338993635052202500091964648373605114604747636114184344.0)
-      (num-test (- -12618010259109779267590315037969998053964054382853891516547435925972388025118492931596200697357628900783311183940584302426381939302632641549019984810957030.0 -30500906828861638007306362171210132987300359439962044769219457463653547834815716264412200930088623097530758080891972640000479943534665059199377729854850415258341537838023739964147532129877743393965857370995558748807382396090020006195649251292012405690725917389684473999400905751109361754679152179983739269026226054012963756892488872262522587481931950410504651253101938824790285623805566521723062029033001745636445860437154344665483641408727637784045030118212476306906983993748299291616038887011943864441807818857508443930272872365334665976442185494702520760793786640113779099219233665607521784524244604432396247693263.0) 30500906828861638007306362171210132987300359439962044769219457463653547834815716264412200930088623097530758080891972640000479943534665059199377729854850415258341537838023739964147532129877743393965857370995558748807382396090020006195649251292012405690725917389684473999400905751109361754679152179983739269026226054012963756892488872262522587481931950410504651253101938824790285623805566521723062029033001745636445860437154344665483641408727637784045030118212476294288973734638520024025723849041945810477753436003616927382836946392946640857949253898501823403164885856802595158634931239225582481891603055412411436736233.0)
-      (num-test (- 793528769616879938852241178439496352527042950647521648629732169156958768358523029837406526207126598190786120139491813624819360632811627576064199559812277.0 -7357484069649002655190557040768215614708659708788999334802985986235721030962928900092675952032143512196279092521450986819067071570862007086586132687661085824939677603953832219860573980632016025218580608321648907608385784471745482257672314890331358256478273312255285010343369949412955387472116587504557483184506548209831317705115523967163525846685455369176657510129844566195941925821733027993620517287411895496215426174909366458092382652675628195464969405904518323018004882611048769247228828875493680284766874334247375868318795940759082324831733175858991629741478124633015067484305547002438816473086042218906532116413.0) 7357484069649002655190557040768215614708659708788999334802985986235721030962928900092675952032143512196279092521450986819067071570862007086586132687661085824939677603953832219860573980632016025218580608321648907608385784471745482257672314890331358256478273312255285010343369949412955387472116587504557483184506548209831317705115523967163525846685455369176657510129844566195941925821733027993620517287411895496215426174909366458092382652675628195464969405904518323811533652227928708099470007314990032811809824981769024498050965097717850683354763013265517836868076315419135206976119171821799449284713618283106091928690.0)
-      (num-test (- 30958566711373255787092081401292877738974978442987704470984765018293851031728996862405055424093249924047528792113585028592262445810946419909807061004531455817427671594281537965628880611732831524185850161910304038646992464838306728350704966234151134620041799373762432970330864023007632010865749239024802839173884778578927209741320635135275002489733299806669933393428518104197594560039136096527206600870299327752296492029012993590212340409989598323540081430189567580333356380487749078595746626408529223195894600223743978246922817054226858311823994547784553612982586322603593335538875728113115443554199017672360091721648.0 9164115638960783470.0) 30958566711373255787092081401292877738974978442987704470984765018293851031728996862405055424093249924047528792113585028592262445810946419909807061004531455817427671594281537965628880611732831524185850161910304038646992464838306728350704966234151134620041799373762432970330864023007632010865749239024802839173884778578927209741320635135275002489733299806669933393428518104197594560039136096527206600870299327752296492029012993590212340409989598323540081430189567580333356380487749078595746626408529223195894600223743978246922817054226858311823994547784553612982586322603593335538875728113115443554189853556721130938178.0)
-      (num-test (- -22540807692474380279530794404584230073523360203115293035869063366926380719566516089428840111682263403627532047214106171892715667227836310498366393991106231487046533598391969789120283294510723096483520917309134391072655861112766764278247568027435618337967113341863713181603534251049249873125130781073437913954718595729437608729446837417196899902194261111827656247095442897532040935029872731410799530408713850806239149348700486268275019296069828199088780767614008685960242354118969741283398882689239770114582524756296906388861630890288875920861344939520380841337675934551587994259348267613541166769237154904791412049964.0 16928681651977808800.0) -22540807692474380279530794404584230073523360203115293035869063366926380719566516089428840111682263403627532047214106171892715667227836310498366393991106231487046533598391969789120283294510723096483520917309134391072655861112766764278247568027435618337967113341863713181603534251049249873125130781073437913954718595729437608729446837417196899902194261111827656247095442897532040935029872731410799530408713850806239149348700486268275019296069828199088780767614008685960242354118969741283398882689239770114582524756296906388861630890288875920861344939520380841337675934551587994259348267613541166769254083586443389858764.0)
-      (num-test (- -5403850875869356031749551669837202919756114555261706106905659104903792701565965475066159243529680606410723686422444947172225540145977333194008702465610630608545009270872541652430806931212184915840724378685979865349848151917650322286497417985248678815214889868576385900691591784772762893647315325310416150353725001943778473686980157692817497562783521120544549784746647104651038037129984152623720529803205580894126664077380391379306511348324442512538418658728022685805514196592544294177914956734669359073791151050869328577099869772182315103156047405800398706114122356939316464974680113324979723289916823063616573634058.0 -10755560408227106818.0) -5403850875869356031749551669837202919756114555261706106905659104903792701565965475066159243529680606410723686422444947172225540145977333194008702465610630608545009270872541652430806931212184915840724378685979865349848151917650322286497417985248678815214889868576385900691591784772762893647315325310416150353725001943778473686980157692817497562783521120544549784746647104651038037129984152623720529803205580894126664077380391379306511348324442512538418658728022685805514196592544294177914956734669359073791151050869328577099869772182315103156047405800398706114122356939316464974680113324979723289906067503208346527240.0)
-      (num-test (- 16201587974698660164372991183566748501003872177894450603471850345714117528335101264234127789041855420954511595895378320972957964222386731614839583078498685801156670229700092209313747849610762975747730086443186821337319452128253859293962343891549207804191088925361935683615063225197130192492652062735684739784075955094308092423304262201429421582566117390598395895220976999990205945523225411701169301910362640419341608407294018105959688929256136725564385243617240412649023368133778798063226772467915584333795357813292935080009919284755332034998122912861893282865727947810588086156919649131720183722427134042574317487793.0 -126159569916621842.0) 16201587974698660164372991183566748501003872177894450603471850345714117528335101264234127789041855420954511595895378320972957964222386731614839583078498685801156670229700092209313747849610762975747730086443186821337319452128253859293962343891549207804191088925361935683615063225197130192492652062735684739784075955094308092423304262201429421582566117390598395895220976999990205945523225411701169301910362640419341608407294018105959688929256136725564385243617240412649023368133778798063226772467915584333795357813292935080009919284755332034998122912861893282865727947810588086156919649131720183722427260202144234109635.0)
-      (num-test (- -9976758107386398142455037422077809088581080675608340830198269021688955930541332630075972471934165382030070969307731206728197760190279942894255740733209190331510591013089699837164445642396864912572863786290237335963836376543389815671640509582958465164874961381137096877288362944469137669502842448492172241151419831252572392809173900377271652074261706120638052379886108764460001026094198502028776365675088466580595870167840105746912975236851293882732079317535103041585285239081516202482201377111734010788198635874359396626004300532752450289119192633850562141516671742961938277967783337559307443617308447853505824391099.0 13449070890444925581.0) -9976758107386398142455037422077809088581080675608340830198269021688955930541332630075972471934165382030070969307731206728197760190279942894255740733209190331510591013089699837164445642396864912572863786290237335963836376543389815671640509582958465164874961381137096877288362944469137669502842448492172241151419831252572392809173900377271652074261706120638052379886108764460001026094198502028776365675088466580595870167840105746912975236851293882732079317535103041585285239081516202482201377111734010788198635874359396626004300532752450289119192633850562141516671742961938277967783337559307443617321896924396269316680.0)
-      (num-test (- -8570952518585194406209873586517687582701183275108243979199329595605282282125006489076327154374449108678257552384372919282846744626955206382078850958298637157198962032090439427286914716782317030245513658212430127586764421559372214829010306717557679285031617989735914399954286846456953917915955558448774972943731602144914068097214910567329340361564904028964471241318105967747431610163083002382821902859161510204381788262611298660559327478615315484763561786397041779926288206767156863141140852268323253657685018587945456372648431446464389004257999049529945532453598011773843788498650935959375182414447893892341891463988.0 4431555062692055371.0) -8570952518585194406209873586517687582701183275108243979199329595605282282125006489076327154374449108678257552384372919282846744626955206382078850958298637157198962032090439427286914716782317030245513658212430127586764421559372214829010306717557679285031617989735914399954286846456953917915955558448774972943731602144914068097214910567329340361564904028964471241318105967747431610163083002382821902859161510204381788262611298660559327478615315484763561786397041779926288206767156863141140852268323253657685018587945456372648431446464389004257999049529945532453598011773843788498650935959375182414452325447404583519359.0)
-      (num-test (- 4117976000917214601143188578494558474138167055110060832594841842655428229500889876131794484851166401425675703592388271925904534237338595998991043982676292549088043959446082382516734793718348862105938692342851330680670593768890094290655852108130945387988863730762717733881418314989528719379494082656897158942547008663543153236129762264443358316776532465284014215413819415615612452225913947961681691310132286840303081453109375175436902292224029179426794714036524361081174901146731799945483243427138748119832116750910126386838614645397770107366925613473924955965862778639046707637382775371488874447622330992324750207465.0 329466253508616383200261654231797136951.0) 4117976000917214601143188578494558474138167055110060832594841842655428229500889876131794484851166401425675703592388271925904534237338595998991043982676292549088043959446082382516734793718348862105938692342851330680670593768890094290655852108130945387988863730762717733881418314989528719379494082656897158942547008663543153236129762264443358316776532465284014215413819415615612452225913947961681691310132286840303081453109375175436902292224029179426794714036524361081174901146731799945483243427138748119832116750910126386838614645397770107366925613473924955965862778639046707637053309117980258064422069338092953070514.0)
-      (num-test (- 28857935543824608075326348244201981931023939250259142606733822094071772153858420201297951828741003977413353359215638528196235956061529059419904405354390715114239219947402126760298132539402386106279333968395498788354937020337343839325588433318100331044091923709732742795159387846354148919054314582749477292946200912006940503778924320301062789466388997936618573519744795661160190636101768486096961991215006236190655062992372061052426455063703038765465688361316141792840153608145888307784845264037109867657483109819380082597605481013612040648149090345778910883349230476481347645708269410828528742743794495302359380494607.0 126536164564464424337714470705049463978.0) 28857935543824608075326348244201981931023939250259142606733822094071772153858420201297951828741003977413353359215638528196235956061529059419904405354390715114239219947402126760298132539402386106279333968395498788354937020337343839325588433318100331044091923709732742795159387846354148919054314582749477292946200912006940503778924320301062789466388997936618573519744795661160190636101768486096961991215006236190655062992372061052426455063703038765465688361316141792840153608145888307784845264037109867657483109819380082597605481013612040648149090345778910883349230476481347645708142874663964278319456780831654331030629.0)
-      (num-test (- 3146199586408378667812619157270468624370984629500707476575291934586478540055436137993431548830607708293475788354970610669452058906009873485175438772484599603993015239438297747261356407887781450787482447252615210880612867127689283653562498484594955015919746443263740095372831444793239911996227663006098501180972347442107190398034048225264564325230296723559400768342331039755765597288518435463475921534765025262262798267314969774604439319964638461636007229819888743218820584570149249791727508891676067767073852694327748467914037392778283816153183422263956621516748627574334199731850712255885395479903525322397561293553.0 -169494171680584797187706369710105239124.0) 3146199586408378667812619157270468624370984629500707476575291934586478540055436137993431548830607708293475788354970610669452058906009873485175438772484599603993015239438297747261356407887781450787482447252615210880612867127689283653562498484594955015919746443263740095372831444793239911996227663006098501180972347442107190398034048225264564325230296723559400768342331039755765597288518435463475921534765025262262798267314969774604439319964638461636007229819888743218820584570149249791727508891676067767073852694327748467914037392778283816153183422263956621516748627574334199732020206427565980277091231692107666532677.0)
-      (num-test (- -17024716654716744558842421452239026542281806678754026383430912733874686056449261218428541803113383766132449624540209841726047308927951820311213785345168358108138304716549475322223600292513384537980742126687035576531330089447100646214364923043445903103768701639992829171572718403272488931980504461938688955457870904289239032709146514866818331202329982821151580491257491540240579366183525075936339515949345815704583685855315810611089822402567649542290589282153225725537026309623090382054078872576985425957096858376112688308214148412270019118710904983829984589093557307164347051152307499446188262820058714564165108542508.0 -26845770031559702758807696432929071597.0) -17024716654716744558842421452239026542281806678754026383430912733874686056449261218428541803113383766132449624540209841726047308927951820311213785345168358108138304716549475322223600292513384537980742126687035576531330089447100646214364923043445903103768701639992829171572718403272488931980504461938688955457870904289239032709146514866818331202329982821151580491257491540240579366183525075936339515949345815704583685855315810611089822402567649542290589282153225725537026309623090382054078872576985425957096858376112688308214148412270019118710904983829984589093557307164347051152280653676156703117299906867732179470911.0)
-      (num-test (- -20875354448001792153279041347864644172439177882677780548397567327274288309764204295853633150227327732322157811413794613378828291977852467550695289535036337326494269114787031260705326469002279939986228049380615128280814933748700667874022724707001736732724010699175779382411342385842744973636495738468838244099596215421975861650998954057316519632062827510021706536194961332185926551767127180751211669386674770139039516623606727799489291663572125587356845055646322930167536458093283930082765496058330805117442824718962237069840252138957395570892073194575112213410604881673785921789655406716271370732069643455590690035701.0 -321447426701397438572265325285879998363.0) -20875354448001792153279041347864644172439177882677780548397567327274288309764204295853633150227327732322157811413794613378828291977852467550695289535036337326494269114787031260705326469002279939986228049380615128280814933748700667874022724707001736732724010699175779382411342385842744973636495738468838244099596215421975861650998954057316519632062827510021706536194961332185926551767127180751211669386674770139039516623606727799489291663572125587356845055646322930167536458093283930082765496058330805117442824718962237069840252138957395570892073194575112213410604881673785921789333959289569973293497378130304810037338.0)
-      (num-test (- -6750548706930727136186675393752693335334383613941059024795513640678178119089262068912855951615043660442324823673049951182143778744824110223137384940032268718291241014850714197673735719784663896993460156686600813524168487673234842233781654493200950459723884918456280719440022930492599128086690014332139955274261568563155723011697763382009890186816226119314994799655369791620499988988986590903148198659095740939986627235565633349906453726759224441608018598520571182643709143072528030332708598472074166415467718451869993686505339408706320298338691467040585228617379086727764240955696690287600957842671916189752415855520.0 132223863177855649509430852484092802671.0) -6750548706930727136186675393752693335334383613941059024795513640678178119089262068912855951615043660442324823673049951182143778744824110223137384940032268718291241014850714197673735719784663896993460156686600813524168487673234842233781654493200950459723884918456280719440022930492599128086690014332139955274261568563155723011697763382009890186816226119314994799655369791620499988988986590903148198659095740939986627235565633349906453726759224441608018598520571182643709143072528030332708598472074166415467718451869993686505339408706320298338691467040585228617379086727764240955828914150778813492181347042236508658191.0)
-      (num-test (- 15737797902964168014939893286340956118635524170934156177365242966267432695262586636031957242055461736359478270642576860414422844075672388559647477705484719667060463718865742735598799928335211410004369240278699196301127699945374217439676378682879115442203681638050752745036508637214733712716867800216723838016099572951915042604603457902610639317648800296497583507890473114507231814851908526534709496988648572353272479026750068932474334642929727977996779536604912743446197670724757690108283368934769626461285961947257397454619164856011847736479229692086038931510067165282571276049292116713101550911614590774659556899356.0 -6114512833799784097991148713266650451765474382378581896952003894922931741133332233338460555227243451198289670274036744955599177213449957470212981501678055.0) 15737797902964168014939893286340956118635524170934156177365242966267432695262586636031957242055461736359478270642576860414422844075672388559647477705484719667060463718865742735598799928335211410004369240278699196301127699945374217439676378682879115442203681638050752745036508637214733712716867800216723838016099572951915042604603457902610639317648800296497583507890473114507231814851908526534709496988648572353272479026750068932474334642929727977996779536604912749560710504524541788099432082201420078226760344325839294406623059778943588869811463030546594158753518363572241550086037072312278764361572060987641058577411.0)
-      (num-test (- -26633154627863501044020127597209297142657179797586777727331879111280843451446814109347357601013807189824906954310855123313836812409388745541128842840054310853220032505914307470215180950497357091093642400638925719682307925365402618310180378684705799724964274776149984064608716300479893889145492885897234574442542501896696821902329473018442082678749291668341477914681413039643187020003425962922948452894682558162414623956491734656939841377698702802567258906642912449969621455596132708975438173455827361542712483153981422051943690720556013580161324856788091093465837542336129629269227369781823515673967591796132853515009.0 3321161637038961370471515250185392889390643163295535903347391615170504064647249127732639364682803744773593849851778894972403397573953564801884397178069327.0) -26633154627863501044020127597209297142657179797586777727331879111280843451446814109347357601013807189824906954310855123313836812409388745541128842840054310853220032505914307470215180950497357091093642400638925719682307925365402618310180378684705799724964274776149984064608716300479893889145492885897234574442542501896696821902329473018442082678749291668341477914681413039643187020003425962922948452894682558162414623956491734656939841377698702802567258906642912453290783092635094079446953423641220250933355646449517325399335305891060078227410452589427455776269582315929979481048122342185221089627532393680530031584336.0)
-      (num-test (- 27668394897866653012794531261739800318882766882548843941974485394983434533400277607364280566269718161470415771058329222680901477416257843578362127708934184467195154000133252468684612556324066063725677629160438683034201285122508880444372096430021219637788794365539396242345208611990491721052691567092029622640533057073151980959055665792776356282961971341363712186503783566960850166774438868528799819047163739437906559674823146932668464230936946321915236658512741918196732794332451120218658490129307932187658010681746557120172585093207839141764683325214902696969028472942954863209641597556494684135445935915485525220911.0 204625459185084436546676461283890328511903949966691877662249903659689934813784661695047569885195881142676761876303280806728760511429260843727967794322777.0) 27668394897866653012794531261739800318882766882548843941974485394983434533400277607364280566269718161470415771058329222680901477416257843578362127708934184467195154000133252468684612556324066063725677629160438683034201285122508880444372096430021219637788794365539396242345208611990491721052691567092029622640533057073151980959055665792776356282961971341363712186503783566960850166774438868528799819047163739437906559674823146932668464230936946321915236658512741917992107335147366683671982028845417603675754060715054679457922681433517904327980021630167332811773147330266192986906360790827734172706185092187517730898134.0)
-      (num-test (- 18944451653774463090918576081661764936021793389045063662102219434278236461286997354190032851092512146937346521704215170240383659165117708716738711782597164244188741818096207452074083439983059414271417130274747048227795964884943105011205424198661201055104372863019759130697888820715782179466491256695453118035286889359217448004524564796840711987314064158194625731263591557915838970249677548534895064545467992194029425250039951132361639559343536937119283951538321037694842089561504643350632756961329867761604760788760440497535611072991056505806805291706178639395690245460397975614715123591611301423752799666149495108752.0 994321141213369910357526037382331323092462599623554452705525887587326552002660849455542761618020243106424015447778226642816634338781654345001677083881111.0) 18944451653774463090918576081661764936021793389045063662102219434278236461286997354190032851092512146937346521704215170240383659165117708716738711782597164244188741818096207452074083439983059414271417130274747048227795964884943105011205424198661201055104372863019759130697888820715782179466491256695453118035286889359217448004524564796840711987314064158194625731263591557915838970249677548534895064545467992194029425250039951132361639559343536937119283951538321036700520948348134732993106719578998544669142161165205987792009723485664504503145955836163417021375447139036382527836488480774976962642098454664472411227641.0)
-      (num-test (- -25075128489482657321316021943980016828761861550379828525731288423212311433274066958090940464803020097932875912251380196071686918459370667428905844496548191635733867314315152547202859654044591981512687559437417616479425752991419002108503390319869665933757684966460526631533822984311725217788657567199485442486045019468844265484117570385156844404625735176559901986920712550964238722824122000259551821135404274194791706113272773768366572120227974096419295159271316157215551931810740200836725504693738229444336470213883741520460842708733150362983831267583568258736572295448486287825894301201018490203520738439038977754991.0 -7402949251688548738762242219263594861535354011996392637087346760786292549376145193266590582054224293289596877537643409310483743293801574030358189880866069.0) -25075128489482657321316021943980016828761861550379828525731288423212311433274066958090940464803020097932875912251380196071686918459370667428905844496548191635733867314315152547202859654044591981512687559437417616479425752991419002108503390319869665933757684966460526631533822984311725217788657567199485442486045019468844265484117570385156844404625735176559901986920712550964238722824122000259551821135404274194791706113272773768366572120227974096419295159271316149812602680122191462074483285430143367908982458217491104433114081922440600986838638000992986204512279005851608750182484990717275196401946708080849096888922.0)
-      (num-test (- -26509487378481600038412836495388065888781507388737194948728047318975269277448073484403390476243134990463394380967295356958474984927721196047241216945988250219075749832868804186657201899994373052648345989716938779173325348547767647529160988985542438998030764420175306438858518207072038513664360905985908879070216069156102379349899544471658754952888660878997691670566078979940005195987259493512159628198906090101827331841914429358969184839073862821059400943312264269215878469013316796620921077244799814690434355127994011220041638393750697699141479399553359747084811371804524490919966410379714725200415331414459870271869.0 -9247155945465656153397925559476432992975541781462281935278489123804934847762489500833913193183733932905776020790478662969835879365116238125565077744775032.0) -26509487378481600038412836495388065888781507388737194948728047318975269277448073484403390476243134990463394380967295356958474984927721196047241216945988250219075749832868804186657201899994373052648345989716938779173325348547767647529160988985542438998030764420175306438858518207072038513664360905985908879070216069156102379349899544471658754952888660878997691670566078979940005195987259493512159628198906090101827331841914429358969184839073862821059400943312264259968722523547660643222995517768366821714892573665712075941552514588815849936651978565640166563350878466028503700441303440543835360084177205849382125496837.0)
-      (num-test (- -17010604274474750006607667808593883725990508452473783283717890546525148212376267233909567638545898628257361383837671935903199638230375408397752251127816717091041943873728526445398525706450929660366518707254053655364610471112296477865068960744948010561798109833411657930112293904378353445961131058136287425064317621271289456901138718557297733713446119244533144377470099270824020439428168481914824420861176457152299497728390918971852021025089592998997807574907789524112450146545688385954763667980124432645276563626082835790429598328230426471161191074551543308732791287559033843466623138171520961684959997180979203053477.0 -17319079025684619178510812811805110270463447771889107440996086020812918555191263705580533644731591929176480040622705607552852994906782176254877135818109655911838591767583157894999741648979817400330572419476101372927546509769818404491634583907246692993992514876697330603464497645633398167129555001859772111887143352351860130929715392173452396253437927361301990735683539169040916027268831202732178553152351117118606495416985612909248422655861312689027789401950549626643389790516560291620711705848717875304929186131258525831197192620523261738944873398924939726689336762464320190834794155527335576391767307110012289717973.0) 308474751209869171903145003211226544472939319415324157278195474287770342814996471670966006185693300919118656785033671649653356676406767857124884690292938820796647893854631449601215942528887739964053712222047717562936038657521926626565623162298682432194405043285672673352203741255044721168423943723484686822825731080570674028576673616154662539991808116768846358213439898216895587840662720817354132291174659966306997688594693937396401630771719690029981827042760102530939643970871905665948037868593442659652622505175690040767594292292835267783682324373396417956545474905286347368171017355814614706807309929033086664496.0)
-      (num-test (- -28362352496476494327713713233021518136860402239251781438945998574753662942796270292818595738100959519541952077905620088422871490191217157269435052965329201030095268586136492980900212955645939325800541690754639292707053269767151001292253701853012092829784482071789669480438026889625605099744553642207773753943711175375843649210118677569597324789367425691177169929576236753018329085700397911235750600921874606148324025962628852167093806152864269874177214562322576097931390470469397118268354868919899638376323751276807304678316688836173746719723312665764603485606350244811113608471530958617108833879194264695174468397461.0 -4081062111675377984305281082755054920741203741273067094307824323728798665450292976016160959354997082250970415737745853292134965575242789548167162064123232363464302136338349828801951197252612093077640695564825095503535921549690447893467349156939791370286866987224201115453216606688305427702274940837032716124925028835914047967887674858015919302546781010326385758988488478290741665427521820112231266659657169118374988259423444686317389869729817643396097464874333968181509317307320406521221309011946212308190273531009796563611621389720223920155554879800901239072885025170342349379379336047732368458185953903872634982504.0) -24281290384801116343408432150266463216119198497978714344638174251024864277345977316802434778745962437290981662167874235130736524615974367721267890901205968666630966449798143152098261758393327232722900995189814197203517348217460553398786352696072301459497615084565468364984810282937299672042278701370741037818786146539929601242231002711581405486820644680850784170587748274727587420272876091123519334262217437029949037703205407480776416283134452230781117097448242129749881153162076711747133559907953426068133477745797508114705067446453522799567757785963702246533465219640771259092151622569376465421008310791301833414957.0)
-      (num-test (- 10367142604728811799331249565431331488313655422005202933702176605382043644320209814639311439871418581341534233560256605231366966869093495784665834232350567124110194965198962966795893926025854156729633358240069116588609932539289897499402463770167927610848388138020589286461244557962368497723086593344721146859584146431437967506007518396464517349944129896971137720357645026281243138165214047233258394590454775153944241555543594427555914116439316287902470043292624597940465373006598913770411505099332700167695871387948271302951230983772351549087620538875967635100644404345317626621438913980275970160864401622986870735123.0 -13323117602411502623386235160326625769048477819798659261203460002048250420188223753407093545503703207645050883770850457071863684414849353264890601744588860687970804808452855795406182324143949747985869939791374195222513169904228914579995165180964917538177994190229733465224857616114628815752065632238207474599531507602861647623695058640735949593381112671690796335596142010430124683781417828023076027476816068202219709673411776556090962187853799456968290579708094595903778622705850818245685205707447012659247018940946510378371952655457988959551256869060428488498330109152756599450626641948447980234503249330875085656261.0) 23690260207140314422717484725757957257362133241803862194905636607430294064508433568046404985375121788986585117331107062303230651283942849049556435976939427812080999773651818762202076250169803904715503298031443311811123102443518812079397628951132845149026382328250322751686102174076997313475152225582928621459115654034299615129702577037200466943325242568661934055953787036711367821946631875256334422067270843356163951228955370983646876304293115744870760623000719193844243995712449732016096710806779712826942890328894781681323183639230340508638877407936396123598974513498074226072065555928723950395367650953861956391384.0)
-      (num-test (- -25321281404861286799950777949097462701962113587443565138655462269365151737118518315058035825695270231347401755128007072923189452859397209062457461602335603630181865680063451525170253746137368267674863889514153713728814272332433431604233690200451816570240227260445028630591376891139306370205846627093813889699170594185178241812081296510140572331372738998993116117098817936927692238682202717231675283209016857095739468507690090676681400453024293870135659990528969837132054786661560150259115734877162158755858653364070279937027014730947342216816307219127474721622123875699701715404820384545693058511056735799834754890692.0 -15870257059811626693754498423136372480069134596343998984549199283973854570508228359295418026089909378687774627821225399931314225867711515277913855368473873536462450935842786002269065816311054834857109074848803122494252885020527074586145467185882674518032764708782999568002770206995683800833252068328835778749976046128872525287656002968632147457840467536682726059599593635219947081138082647985895437016641903078766878782632503812736486529143041369932038649270950453231711525943737962179463585338023463992816994328519710963267459007592689204838965317062070771191372220277256094361390952025057574056586665509010902583686.0) -9451024345049660106196279525961090221892978991099566154106262985391297166610289955762617799605360852659627127306781672991875226991685693784543606233861730093719414744220665522901187929826313432817754814665350591234561387311906357018088223014569142052207462551662029062588606684143622569372594558764978110949194548056305716524425293541508424873532271462310390057499224301707745157544120069245779846192374954016972589725057586863944913923881252500203621341258019383900343260717822188079652149539138694763041659035550568973759555723354653011977341902065403950430751655422445621043429432520635484454470070290823852307006.0)
-      (num-test (- -10064759312484387184876313010284016458560725440641239737323234767636591183611201479885347260175161165340917225306019885202675573016295152797559983194160634880140345743489989007821872426587698574795394887035658449467358615185057180305109018898637903449135520486663185036663238956537895356325733583128141439025002140924158670346599492383552938312402521066705186885506193758499006001382444818328802338159713646715901977137011576113434170842422373328479181457354927400927267448788528116619711184792932525071391797130057189079431487557270366699175956757661488296856660145077706273571985222726397848614141194988258117115194.0 -3689074607001776735792882994440038588887963294487080609346609068733026224735369468180206799966728461935654851527895876039403151156669223687679382665269013769686991783531091821265184956524448064027733731862929686596729449196238312997460578818232100254940830907672953344544031914926653652310468671685310332327057444910423081752028857828828473637496272809899061573593874011995802487442092326045415689987885712749026491545159340468151000027397821404233369034594141219014219707193746581364791219277489927025992135462852894714639406751538919395016165215641239054420028872350709704191189169571752512626755385998505584006855.0) -6375684705482610449083430015843977869672762146154159127976625698903564958875832011705140460208432703405262373778124009163272421859625929109880600528891621110453353959958897186556687470063250510767661155172728762870629165988818867307648440080405803194194689578990231692119207041611241704015264911442831106697944696013735588594570634554724464674906248256806125311912319746503203513940352492283386648171827933966875485591852235645283170815024551924245812422760786181913047741594781535254919965515442598045399661667204294364792080805731447304159791542020249242436631272726996569380796053154645335987385808989752533108339.0)
-      (num-test (- -4621513851362114851854472268081584822344822740665629177305004335694395719163541988311496405455186973857145245414214464449674464879082042971313025249648887349614046805778335573547862191522938924075560443632614665169520240664970180760364771373836023824195690134618554368845612471858027311791638881380352344527105480173917778084361560336490212845414303819150625355111300877737042696291233444311426721588476948565949641149735838580313236869041013210454558557732497012037162735013212361842433337324577522358968152852532145622765032318936569346015498130151789662274686368870963891262060214274101000058555635785833724062234.0 20283847238128227963042817384468009365120280641032764409860857066215336820785816567924217697745867082423864450685360959383940995237907453126362378908108545669654749698030305432673477271848544313029448526561606175059997663752601262173667861202924953502866611309434183496911206954880840674239880495147451496219568787221129244201657487090244435562896841733049066453539864301122516559479757096183362477594406691085946787803323712522074578611082872627361465163804239673539339633332349145205596371287028267780080937728455742966681547897652607170788637996317683436193829274172400558140357237480809582038468874094877651383053.0) -24905361089490342814897289652549594187465103381698393587165861401909732539949358556235714103201054056281009696099575423833615460116989496097675404157757433019268796503808641006221339463371483237105008970194220840229517904417571442934032632576760977327062301444052737865756819426738867986031519376527803840746674267395047022286019047426734648408311145552199691808651165178859559255770990540494789199182883639651896428953059551102387815480123885837816023721536736685576502368345561507048029708611605790139049090580987888589446580216589176516804136126469473098468515643043364449402417451754910582097024509880711375445287.0)
+(unless with-bignums
+  (num-test (- 1/9223372036854775807 1/9223372036854775806) -1.1754943508223e-38)
+  (num-test (- 1/98947 2/97499 3/76847 4/61981 5/59981 6/66601) -0.00028742959363084)
+  (num-test (- 1/98947 2/97499 3/76847 4/61981 5/59981) -0.00019734085622449)
+  (num-test (- 1/98947 2/97499 3/76847 4/61981) -0.00011398112564314)
+  (num-test (- 500009/500029 500057/500041 500083/500069) -1.00009999119288)
+  (num-test (- 98947 2/97499 76847 4/61981 5/59981) 22099.999831591)
+  (test (< (abs (- (/ 1/98947 2/97499 3/76847 4/61981) 195556288.07955816413500830)) 1e-8) #t))
 
-      ))
+(when with-bignums
+  (num-test (- -4611686018427387904 4611686018427387906) -9223372036854775810)
+  (num-test (- -9223372036854775800 10) -9223372036854775810)
+  (num-test (- 1/9223372036854775807 1/9223372036854775806) -1/85070591730234615838173535747377725442)
+  (num-test (- 1/98947 2/97499 3/76847 4/61981 5/59981 6/66601) -52761146275983172771170709/183561983334767209753061626751)
+  (num-test (- 1/98947 2/97499 3/76847 4/61981 5/59981) -543899925850203550003/2756144552405627689570151) 
+  (num-test (- 1e40+1e30i 1e40-1e30i) 0+2e30i)
+  (num-test (- 2 12345678901234567890+12345678901234567890i) -12345678901234567888-12345678901234567890i)
+  (num-test (- 500009/500029 500057/500041 500083/500069) -125047255383687283/125034753009582041)
+  (num-test (- 9223372036854775807 -9223372036854775808) 18446744073709551615)
+  (num-test (- 98947 2/97499 76847 4/61981 5/59981) 8010593845541429507/362470312515139)
+  (num-test (- most-negative-fixnum) 9223372036854775808)
+  (num-test (- 3872339191937382556 13437882608410293981) -9565543416472911425)
+  (num-test (- 12702320881720530101 13823645380834800545) -1121324499114270444)
+  (num-test (- 10222969257152373972 -3454292165863475982) 13677261423015849954)
+  (num-test (- 591233951053628288 -17639978232337836611) 18231212183391464899)
+  (num-test (- -7878405903223218778 9050739027069287469) -16929144930292506247)
+  (num-test (- 11347120771894057376 8443917396834074370) 2903203375059983006)
+  (num-test (- 7831959259127703467 -257470007821066702597399141202130667973) 257470007821066702605231100461258371440)
+  (num-test (- 1092406341647857980 -325710450166845666190895573961860069495) 325710450166845666191987980303507927475)
+  (num-test (- -4220606126689357919 73461013742902296577411907972196819778) -73461013742902296581632514098886177697)
+  (num-test (- -5112059189225304080 334306213789148650102245018234146620793) -334306213789148650107357077423371924873)
+  (num-test (- 3093346224554776175 -204967241927023874963787190016588249299) 204967241927023874966880536241143025474)
+  (num-test (- -5735747638156472357 -3881750746805128137401544408305666047) 3881750746805128131665796770149193690)
+  (num-test (- 17639095392510638323 13312205908441007415860933757605397223142073616822325142416364932887680287063250296996056787873086490231950036662943632990219865746131453861285495087665017) -13312205908441007415860933757605397223142073616822325142416364932887680287063250296996056787873086490231950036662943632990219865746131436222190102577026694)
+  (num-test (- 16304056910692545233 1463591032326743052350022746892396184459320617971409440301562638996633667625451301419074212369365394140737678584830314878769698416417465834928609990708982) -1463591032326743052350022746892396184459320617971409440301562638996633667625451301419074212369365394140737678584830314878769698416417449530871699298163749)
+  (num-test (- -10347586523508777315 12614325304787850623826535169596975975360455924114817820074336137897280818245940873677389644701038550150832199897314137414727161192173691528917744363375331) -12614325304787850623826535169596975975360455924114817820074336137897280818245940873677389644701038550150832199897314137414727161192173701876504267872152646)
+  (num-test (- 16875252323587344863 -10230183557696638447600885112945653217398839137450096120772416948425622105048400944465287395231588821521217980407867153259741079758527788318592431794213674) 10230183557696638447600885112945653217398839137450096120772416948425622105048400944465287395231588821521217980407867153259741079758527805193844755381558537)
+  (num-test (- 8574302739232756920 2945205250727759066959418729185252318153395797902208079569164623770839848878181416073351760975066439564334127158302281471631001294503759011790017443478716) -2945205250727759066959418729185252318153395797902208079569164623770839848878181416073351760975066439564334127158302281471631001294503750437487278210721796)
+  (num-test (- -17657597319577965851 -470389901349206124503884936612357721199915776516939967013182926735009022045917047211666512521578494339222795740836335004070464944715357800461845632614015) 470389901349206124503884936612357721199915776516939967013182926735009022045917047211666512521578494339222795740836335004070464944715340142864526054648164)
+  (num-test (- 11472336850218354926 16764018932433717867649699977474298016589762238077229911249331402108995850754999065988360217500238643747316139204767820295123085026049273617874157749889925712672510963712964034497935503076689670786498045302562704435768723916334451317158760704743066709581593570757498670622547878516907127632802801541072452593999435195637193819500375063696114131057474475407791672955417184592088612921927282233762919112197264895445408873539746256555444555901857369535350160665235184955438709679669964546134487688796078142789125799020704969226557493354453298489954288702387159956161243151013189140749021799388406290339231792790773612376) -16764018932433717867649699977474298016589762238077229911249331402108995850754999065988360217500238643747316139204767820295123085026049273617874157749889925712672510963712964034497935503076689670786498045302562704435768723916334451317158760704743066709581593570757498670622547878516907127632802801541072452593999435195637193819500375063696114131057474475407791672955417184592088612921927282233762919112197264895445408873539746256555444555901857369535350160665235184955438709679669964546134487688796078142789125799020704969226557493354453298489954288702387159956161243151013189140749021799388406290327759455940555257450)
+  (num-test (- 12682607562584942903 32133619583510009354538204193505267426986629771080807813988708187761849276650847958886764459302043799013813125903744946349479743277662066609741649009023451783267511140245797235200413941774959851628239089013586399425314412329003636059313583335807925401822165199322334470452126484173417518861322963430951772895619791799137157183662289329901964728384697377777905235894234370773419160283767144177627084271804319157013765325677633945370597318765372346484383325176768117059688792498687750479618961541872574768601477738410497806623403054372221338126223825515939164627992974469102910882915893925327931884157735553718792115929) -32133619583510009354538204193505267426986629771080807813988708187761849276650847958886764459302043799013813125903744946349479743277662066609741649009023451783267511140245797235200413941774959851628239089013586399425314412329003636059313583335807925401822165199322334470452126484173417518861322963430951772895619791799137157183662289329901964728384697377777905235894234370773419160283767144177627084271804319157013765325677633945370597318765372346484383325176768117059688792498687750479618961541872574768601477738410497806623403054372221338126223825515939164627992974469102910882915893925327931884145052946156207173026)
+  (num-test (- 14621880654476679971 -10075923784619510279100488003620810539888599376089081798647754628017452762406215094511315867213396543200861274584884759429891242650999761503100661310915213260386281412125687376866399124849043409890009033179987278297335571911640353059036551139958369871790768643514550179661619387008678118363266091945225880595898524898713646458647465935791224159084684209727153050053537752111696883536364966526666445737103854446009305531519860527938394412863332757413309423156200192973778629503534709731073637828912608835085933003410694216843775182940057891552358942312728978810053715387504707194992816961400377579655168106377696154728) 10075923784619510279100488003620810539888599376089081798647754628017452762406215094511315867213396543200861274584884759429891242650999761503100661310915213260386281412125687376866399124849043409890009033179987278297335571911640353059036551139958369871790768643514550179661619387008678118363266091945225880595898524898713646458647465935791224159084684209727153050053537752111696883536364966526666445737103854446009305531519860527938394412863332757413309423156200192973778629503534709731073637828912608835085933003410694216843775182940057891552358942312728978810053715387504707194992816961400377579669789987032172834699)
+  (num-test (- -3220156644655019630 -8347829670073174550775641165362740628312221836466572623516708794243074870361401136762432100726575330214254748615114820602945887237367461962207075265579588481261313345359877816874924645801358760718027997416917747796144940020489321523749233377708490614979453376328244189926517907474704635785063100359787580409065317918203485474119227673185211436285930586838616288721370975925191964611302275354365110550116042403226844820172448647475637867255305805337047967053177320593337377763657329816935516961201488840745892529800883680912275812320160312651894919502389242002380151562481051684439333368396132543667539444686619670713) 8347829670073174550775641165362740628312221836466572623516708794243074870361401136762432100726575330214254748615114820602945887237367461962207075265579588481261313345359877816874924645801358760718027997416917747796144940020489321523749233377708490614979453376328244189926517907474704635785063100359787580409065317918203485474119227673185211436285930586838616288721370975925191964611302275354365110550116042403226844820172448647475637867255305805337047967053177320593337377763657329816935516961201488840745892529800883680912275812320160312651894919502389242002380151562481051684439333368396132543664319288041964651083)
+  (num-test (- 11628988978410243120 21091260149209133824278525560739673446778991946138130571540201996950100883736332286627324787663044982195445635023357027423513202277912840570399895946346028843517588470258087913846945044832851780108963206182331994065720076983528527849542421619745503796476103034657238118665288185878258232226731582201217795631247916614224227701409259346052937919425072595891571572960468193421257458185693656090215937518204243652916583730260295885562094977775951577484951577581277292356830523013216949489797535362720471761788697932265967910160407593278848113303674799017334692501935041730808945554336564957621028111014116286675587727714) -21091260149209133824278525560739673446778991946138130571540201996950100883736332286627324787663044982195445635023357027423513202277912840570399895946346028843517588470258087913846945044832851780108963206182331994065720076983528527849542421619745503796476103034657238118665288185878258232226731582201217795631247916614224227701409259346052937919425072595891571572960468193421257458185693656090215937518204243652916583730260295885562094977775951577484951577581277292356830523013216949489797535362720471761788697932265967910160407593278848113303674799017334692501935041730808945554336564957621028111002487297697177484594)
+  (num-test (- -15960716439913426281 18799211173341989380260980155501104944815245973352765317821146163884181375747259542484535639646490774929026134833947975785613727050541297797675705933339289016115326958150660323801621778641184271728990164666383865587422591755046779736996211052149338115836473967202556153668963815595875844414662034458693455631979862997316049580586739835122770408911308146605671192538040301857163633538268589024651373766021087864982140201615461513687698136663128896835597598904095187715456109340116329587986878167776146023396961265667934659006280575496363066974484893764810659481361856335795455814679851690737943592227795474197104696127) -18799211173341989380260980155501104944815245973352765317821146163884181375747259542484535639646490774929026134833947975785613727050541297797675705933339289016115326958150660323801621778641184271728990164666383865587422591755046779736996211052149338115836473967202556153668963815595875844414662034458693455631979862997316049580586739835122770408911308146605671192538040301857163633538268589024651373766021087864982140201615461513687698136663128896835597598904095187715456109340116329587986878167776146023396961265667934659006280575496363066974484893764810659481361856335795455814679851690737943592243756190637018122408)
+  (num-test (- -181065640455671431985325539445069267017 14120143334024043377) -181065640455671431999445682779093310394)
+  (num-test (- -91295299684959299024846233061686623774 6891102275697080803) -91295299684959299031737335337383704577)
+  (num-test (- -252582289949155881579950873916766853744 883304029266526072) -252582289949155881580834177946033379816)
+  (num-test (- -10104159950635417603045689770006558103 17251490913777465304) -10104159950635417620297180683784023407)
+  (num-test (- 288463495341489091297108607960869684860 -16376960611483226267) 288463495341489091313485568572352911127)
+  (num-test (- 204661965092367792468062569536290631004 7774991291341524479) 204661965092367792460287578244949106525)
+  (num-test (- 174559967167400201536723778015754014369 168183438971818617783400303174116396891) 6376528195581583753323474841637617478)
+  (num-test (- -253300708624436983509156598368557395374 -77166863757693227553099778725240875400) -176133844866743755956056819643316519974)
+  (num-test (- -38587765028356074196061530813295290944 5999161273284748726648331130480323187) -44586926301640822922709861943775614131)
+  (num-test (- -236400856885875891058508662756360145662 222191413471626205952456600591947275777) -458592270357502097010965263348307421439)
+  (num-test (- 212937903940173587742882129816769611096 336470165768472077447806282475185249734) -123532261828298489704924152658415638638)
+  (num-test (- -264812595676159375893264580577855253845 -247068943830535581577267897204259299723) -17743651845623794315996683373595954122)
+  (num-test (- -1725732715479127274526681751197327660 -2279805492899538651574406423954277869507456204136276822451602661149698386520868702017367409743272511010382761246500508887739763323997191435566266331339917) 2279805492899538651574406423954277869507456204136276822451602661149698386520868702017367409743272511010382761246500507162007047844869916908884515134012257)
+  (num-test (- -220007189346579184019349894240059989979 9116030813176547770422918633286023943039811682891023288884273747820892639481842291616424036020927750322528731882517057595815179415042385175627374957565803) -9116030813176547770422918633286023943039811682891023288884273747820892639481842291616424036020927750322528731882517277603004525994226404525521615017555782)
+  (num-test (- 139683266109784685815165642637380856544 5782493350903499652295971390391981928106911831248674750993968151944332845911526084530951283012280786005612601970108688202931002414214353708335212597807345) -5782493350903499652295971390391981928106911831248674750993968151944332845911526084530951283012280786005612601970108548519664892629528538542692575216950801)
+  (num-test (- 239160165978290709841254489756277328273 5152132850125501873897264811465207492706871561577273155117982457627773151595716641409297120994045059130053034927464958986304380141364542178714472948085275) -5152132850125501873897264811465207492706871561577273155117982457627773151595716641409297120994045059130053034927464719826138401850654700924224716670757002)
+  (num-test (- 315772704643232632782106484978382006176 -3689252327480456512393153800679864208480329729627292260734151097785848947569336194072922395859496552999163037466184616218582046814434719444842678248982224) 3689252327480456512393153800679864208480329729627292260734151097785848947569336194072922395859496552999163037466184931991286690047067501551327656630988400)
+  (num-test (- 82735713197488344149642668226610301853 -12473025194535761005577066561696471986140205263843017221991729197337093872383371857001077050460827652296473928714097816492579684543651922277865558518876774) 12473025194535761005577066561696471986140205263843017221991729197337093872383371857001077050460827652296473928714097899228292882031996071920533785129178627)
+  (num-test (- 63472235942371758467270296983419551089 -7866520408163137968600317959735552406794938230345293650627055135268307695389903092041438746530663083967329111232451176014649873249349534808700483360707382397988918594143264031213181385790969271527978925616276399184489007642142996251807222768397530946779296600805549276528669432847672215219943599871223372831999133812100481632278022608906065923652981249057846548868473376683960144009223047416366697876553049362242497225174860431577034875737250719899362881567590934060155436179316063810148362442197071642183371654740845983314705249832168923202400873364289483910868432511677656218937984504828452980698439495961392749596) 7866520408163137968600317959735552406794938230345293650627055135268307695389903092041438746530663083967329111232451176014649873249349534808700483360707382397988918594143264031213181385790969271527978925616276399184489007642142996251807222768397530946779296600805549276528669432847672215219943599871223372831999133812100481632278022608906065923652981249057846548868473376683960144009223047416366697876553049362242497225174860431577034875737250719899362881567590934060155436179316063810148362442197071642183371654740845983314705249832168923202400873364289483910868432511677656219001456740770824739165709792944812300685)
+  (num-test (- -284018520801241078671538235859630240269 -5529748211779294240854894683633173443789067073881249229985499707296461959655918837051490512357840133495603640185675483847478587849599477020706893805485599954539589062532211767295361120129440287144117406526027552427750375526095104163474774446716012360038076376952619723549765229763943818011605991300849052030142173100367582906381575666628005795818339029350398340616624791399526643991489247585213423174803853961438830286737553181353007081438503238779644371968004083452645077716952159339978836669723137339898471600546912430030276920763475622536295311290657163861398519747560279682401429552174530714298081464588450842581) 5529748211779294240854894683633173443789067073881249229985499707296461959655918837051490512357840133495603640185675483847478587849599477020706893805485599954539589062532211767295361120129440287144117406526027552427750375526095104163474774446716012360038076376952619723549765229763943818011605991300849052030142173100367582906381575666628005795818339029350398340616624791399526643991489247585213423174803853961438830286737553181353007081438503238779644371968004083452645077716952159339978836669723137339898471600546912430030276920763475622536295311290657163861398519747560279682117411031373289635626543228728820602312)
+  (num-test (- -171812101820192353275910956459431262142 11401673303315394031728944442295528921842441448377692701102691446500671963119794838260543877466107345474902885032629120622020177051592733148817057943390167845763358795044702079370835841331467130719834250134674578757640577473495192331790176510774020541399177011446664359866582351045889299070080989390219063301859447807907203943168891690028442190793548699886572720360741686677780644932612683647303776634496172481504075784427704287335805355801794320914944330891519283383694196486986108936857630373759865062862204149003789919218681050221366182434949855054760827976853645027544605870235074909890698574792562001595287630131) -11401673303315394031728944442295528921842441448377692701102691446500671963119794838260543877466107345474902885032629120622020177051592733148817057943390167845763358795044702079370835841331467130719834250134674578757640577473495192331790176510774020541399177011446664359866582351045889299070080989390219063301859447807907203943168891690028442190793548699886572720360741686677780644932612683647303776634496172481504075784427704287335805355801794320914944330891519283383694196486986108936857630373759865062862204149003789919218681050221366182434949855054760827976853645027544605870406887011710890928068472958054718892273)
+  (num-test (- -243638660221338112796448050030955119997 -32214383478080953899491069562585164652288236626686985994647827422262342469970423345510055643470262764747630363450204055220886177681745412924556264758690138113272748656941509018308925555317383307928766093730384151056027828368474245304944063213926492719166086055718735381341569379006804236876950175122702350552198046290567043195716369691666842524594399597143281611765509174168738392889075290806378316647736667077047013214732267367344808724905727602402784621437141760604478301412768904784950365257469208085143467704875589485635570084387755189599791857576855454112556762755762408826226326879491415484319411662301650468948) 32214383478080953899491069562585164652288236626686985994647827422262342469970423345510055643470262764747630363450204055220886177681745412924556264758690138113272748656941509018308925555317383307928766093730384151056027828368474245304944063213926492719166086055718735381341569379006804236876950175122702350552198046290567043195716369691666842524594399597143281611765509174168738392889075290806378316647736667077047013214732267367344808724905727602402784621437141760604478301412768904784950365257469208085143467704875589485635570084387755189599791857576855454112556762755762408825982688219270077371522963612270695348951)
+  (num-test (- -126332081511349770866908261827634312283 31497387372874133218238910173378055967910722258532087598053588964599898753455370244114881403020152175272452951858324158004662566613339529101292284073176382818309096142522412043073218657587031893636358434796164444941535757484360125937835242214199979245499374972029624710574236962978707708765065292759037309958875006017588240959790355958632745299212449602934380927677385974488564420550408281673927387615657765312151272852486266800510090872812376232597458154951925709496664568906509814364388823105469855516803225244972466742963619633076158367569109107733990828830121948130235858799809203410103682003414364238243553515261) -31497387372874133218238910173378055967910722258532087598053588964599898753455370244114881403020152175272452951858324158004662566613339529101292284073176382818309096142522412043073218657587031893636358434796164444941535757484360125937835242214199979245499374972029624710574236962978707708765065292759037309958875006017588240959790355958632745299212449602934380927677385974488564420550408281673927387615657765312151272852486266800510090872812376232597458154951925709496664568906509814364388823105469855516803225244972466742963619633076158367569109107733990828830121948130235858799935535491615031774281272500071187827544)
+  (num-test (- 219979452670016849533060110266815720199 3900115048441644499033281842448985956665866771934663536385503692700586024397767816761943054115584011069129310718114010862034970648115172218305599786238607524420973404711138276011261135403209178420948996472570042497859127324157786975578751148348046315727383390370594954695454631662061021971027739429505825056455676233533511412589936865597034183410893428831818716136282201523804692574965779771140320669492229416601369453681528301333865290947482219850340728455965391492610516639151652595539203632139883064874286555941718154489936421274731413286355640404192677546692090304496817063325766995908926108582896362623757323811) -3900115048441644499033281842448985956665866771934663536385503692700586024397767816761943054115584011069129310718114010862034970648115172218305599786238607524420973404711138276011261135403209178420948996472570042497859127324157786975578751148348046315727383390370594954695454631662061021971027739429505825056455676233533511412589936865597034183410893428831818716136282201523804692574965779771140320669492229416601369453681528301333865290947482219850340728455965391492610516639151652595539203632139883064874286555941718154489936421274731413286355640404192677546692090304496817063105787543238909259049836252356941603612)
+  (num-test (- 585873325961105129055557280004608765382109855007674169500308242261038324959928764512890600512016613154122762798104714052579267789493643522748210870974797 -1855792162818946202) 585873325961105129055557280004608765382109855007674169500308242261038324959928764512890600512016613154122762798104714052579267789493645378540373689920999)
+  (num-test (- -3026050092505200332789765255096964033685859497096213532090644235603419347590512426830117415222669642053441336442247132403948783838396746566100575461602162 18009081534399282710) -3026050092505200332789765255096964033685859497096213532090644235603419347590512426830117415222669642053441336442247132403948783838396764575182109860884872)
+  (num-test (- -11124638695599888462310706699308855434715251048597328942409434888923094027849143412724699165971400546471660924330688750607774759764580214088920441698992069 -4827559068742614723) -11124638695599888462310706699308855434715251048597328942409434888923094027849143412724699165971400546471660924330688750607774759764580209261361372956377346)
+  (num-test (- 4950293428090696283711882613183655723616682297360442241017758383241177602498881186549809051670562038601658285833496694108818253845693871318067007752043113 17597810481352184048) 4950293428090696283711882613183655723616682297360442241017758383241177602498881186549809051670562038601658285833496694108818253845693853720256526399859065)
+  (num-test (- -5733769947958740467479139247420201065087494801172241127791526686385518674532830661413722661802560247463032020003355494614502034002778775472609306735864748 -3892174127829225880) -5733769947958740467479139247420201065087494801172241127791526686385518674532830661413722661802560247463032020003355494614502034002778771580435178906638868)
+  (num-test (- 8320894458193427045187598554188178307429755504967209344418448624882517461814957461249858674758807195827056824653471934409067429988676743031117653237018365 -12861394200627120797) 8320894458193427045187598554188178307429755504967209344418448624882517461814957461249858674758807195827056824653471934409067429988676755892511853864139162)
+  (num-test (- 13033402737450594044106258936169013897237368708138118260402180886096095497725071502601849887805439844083105685971731015312020770945603825344926844435936044 236396022362585261770052671762207864597) 13033402737450594044106258936169013897237368708138118260402180886096095497725071502601849887805439844083105685971730778915998408360342055292255082228071447)
+  (num-test (- 12170667278114656173974716189098171384426379753661081475485441559687661443127166543908925678856145097632475832903680828294561265828775791256812588754280222 -276673555533799047589626400978981416789) 12170667278114656173974716189098171384426379753661081475485441559687661443127166543908925678856145097632475832903681104968116799627823380883213567735697011)
+  (num-test (- -12755594876262399860618168642932232021734362385933348033134635580177924615701078617214764415318471507488803810365565826229169313660087149542130819663319659 -157671440495648010763311068579191828684) -12755594876262399860618168642932232021734362385933348033134635580177924615701078617214764415318471507488803810365565668557728818012076386231062240471490975)
+  (num-test (- 8664063140780163008577373335591938905735059211566906376953760862047748343846207426667781783874718320339071949903053785280430612875488847226724390758938740 54361107931665215623681874454167019934) 8664063140780163008577373335591938905735059211566906376953760862047748343846207426667781783874718320339071949903053730919322681210273223544849936591918806)
+  (num-test (- 3699576825118349347309026261327541749454660339251578894574483235547605815416603169143590292164644149607672871236942391817131531474661895913650810587431606 -50508350367572393968128467319633674717) 3699576825118349347309026261327541749454660339251578894574483235547605815416603169143590292164644149607672871236942442325481899047055864042118130221106323)
+  (num-test (- 5626548453644136572409808769267055618695663227750732922630041368983808478347120771651822300668480671524976882745306794511840379704578900504784165956486985 170502882789371639987361620116696459267) 5626548453644136572409808769267055618695663227750732922630041368983808478347120771651822300668480671524976882745306624008957590332938913143164049260027718)
+  (num-test (- -10859007735074693411217019392659638207496329895257318665547454149984863458541990037760564769787816800806064437172810158051442267508476778676439633382657890 -7558060977666720080449823996328496253877735754811271086853901493753796001778345391546991917892931500169890406340928835457635973812901681485438886367096185) -3300946757407973330767195396331141953618594140446047578693552656231067456763644646213572851894885300636174030831881322593806293695575097191000747015561705)
+  (num-test (- 9842028993407961669727766131360795288615020071102475108883839785397865740828387076847892646234215787999498419839351470775471313077046438080666908734795616 8259939762466350877481193620364896193464602165170783019804380181692322874550956777598992104871440502758410340359413403619753571535498118388286469082729503) 1582089230941610792246572510995899095150417905931692089079459603705542866277430299248900541362775285241088079479938067155717741541548319692380439652066113)
+  (num-test (- 3122315115429970622394662815735050825423438028108957393747131991771456957037829402044934484343765915727397519247940959221091465331254497476137639859816450 10737995515603450913722681305571315249864367824351372254572936648132763616823019940208526402092654554035074813865303483747097673960803093638463005072804384) -7615680400173480291328018489836264424440929796242414860825804656361306659785190538163591917748888638307677294617362524526006208629548596162325365212987934)
+  (num-test (- 11618335890332522671268040181306950825004789685088262996478365976802329054158653675768163009290064139158450983598701977173152384425333441365287895694522192 -13130287008197231017935223399369698658354829835061356451363818961959486828237111511740029441613108087354987794332115218978284937263725126538295501305403242) 24748622898529753689203263580676649483359619520149619447842184938761815882395765187508192450903172226513438777930817196151437321689058567903583396999925434)
+  (num-test (- -4829477140897377009195646150061276059814366801005389903693533021027427566117360765323647260121062827801190746646296803957067548167571028717513392985791293 10716557117391614298810040587314742187092120526669273567183969821384063434473189717686678450880765426943205955814024872764413373364846268902370055526485180) -15546034258288991308005686737376018246906487327674663470877502842411491000590550483010325711001828254744396702460321676721480921532417297619883448512276473)
+  (num-test (- 1560421244904974852620371975782132605421448226892487453928759432083522187778803424020804578027100625536441377609275030418285893555753560195716001014786650 -11797558308994912054526619290334311429749533070145154703018977152548370444659962978040151671210413666186432921816690953994784423526183449271023503069393845) 13357979553899886907146991266116444035170981297037642156947736584631892632438766402060956249237514291722874299425965984413070317081937009466739504084180495)
+  (num-test (- -7701347923966912534344428538744620884561375267012102797292378941649984539207353887059064943586048644516121387166836442084007442716291792933061162738380376 5290969389374230541016502448421359606252744677802288901830045825873182202718418905866055323957065013553046698199939002159982374580735362593037515863844280108947533575824820196689891621498006303535207762625068798755031433921940066544809959896067184147997503827988613858484669349726945188167613248195147619673963531690938913245110754715059472477991342216448470339490385593605806518967792963339193162830698488489270925945408227996742278697477358272529028932771642478870844024835907350391770605391526921411004262446196112836319091260967898895009427182171643279100998182191816962677328417390867021108292139204864164048286) -5290969389374230541016502448421359606252744677802288901830045825873182202718418905866055323957065013553046698199939002159982374580735362593037515863844280108947533575824820196689891621498006303535207762625068798755031433921940066544809959896067184147997503827988613858484669349726945188167613248195147619673963531690938913245110754715059472477991342216448470339490385593605806518967792963339193162830698488489270925945408227996742278697477358272529028932771642486572191948802819884736199144136147805972379529458298910128698032910952438102363314241236586865149642698313204129513770501398309737400085072266026902428662)
+  (num-test (- 9733743430220591762422540139212426729307515492818443460852332805653889275463385649305231919846970974905736816260992940027028218064265519723018527155353151 -29407855293830047984154639411082591337348779678279017647951764366455421210163494489475996514661359700145916243499452007595041420522019751347743105082745321262372977262641488359297167392118038994384136863563032667040671405618315550876997904307423736276844997706938133936081058323434935833614475654922773162140266784233792639117145232791514703532554345086520312281500696798706889025860427142771458666376271994240028586899592254884476941388776984078337603148583453255593120138178690189726206775893096279000909079330468718593887702543025737308336025198677457129910473491269839827087491228569718246503140134413881896746751) 29407855293830047984154639411082591337348779678279017647951764366455421210163494489475996514661359700145916243499452007595041420522019751347743105082745321262372977262641488359297167392118038994384136863563032667040671405618315550876997904307423736276844997706938133936081058323434935833614475654922773162140266784233792639117145232791514703532554345086520312281500696798706889025860427142771458666376271994240028586899592254884476941388776984078337603148583453265326863568399281952148746915105523008308424572148912179446220508196915012771721674503909376976881448397006656088080431255597936310768659857432409052099902)
+  (num-test (- -276731217243271862683214238489380950428392903790808046630969592255272629537001990355375434170910931115552132394269672247616298060929507021008951190291387 100289083769237476480554074865040988004216167545459907207847010762380733541100608695693297149249375537088329431700364201275915507683345148401600569951338052791424407090330310974243070931256108167365334162914085216447196038922091547331474328250886730614683299908003398886233860613008266913065047699535081030427106800418656336608005860846045905149012346378286475449307630537665901621055008855374148058291266835796203075976592585729940879567246284967856356337849150102261744547461816282538319258966892339056695718919291240188920586288417893106046698069355647145603908383687239983874164793005765733782432717429040621674) -100289083769237476480554074865040988004216167545459907207847010762380733541100608695693297149249375537088329431700364201275915507683345148401600569951338052791424407090330310974243070931256108167365334162914085216447196038922091547331474328250886730614683299908003398886233860613008266913065047699535081030427106800418656336608005860846045905149012346378286475449307630537665901621055008855374148058291266835796203075976592585729940879567246284967856356337849150378992961790733678965752557748347842767449599509727337871158512841561047430108037053444789818056535023935819634253546412409303826663289453726380230913061)
+  (num-test (- 8505070389896098095621766692413480203366379968950158493268895987250690600795955783113900096527432416791184386061684833478921638080978014176210898461637606 -16410711613672171332126342754193842244915477287016327757357714698751777287458963458682349581881560880814595167244857846847668988374679430572782121021084683986742283012573569894084166107235597351093334125816075658348307113218478800035703971671113417712009419861470917307849916674203301497919242668373376352901312309673053175315189945730756118172940886476343290174961420986113367531057713782438374928471960914578818951372282574754612716278516397754222547513576728677459134022062202283647690649100602260948409511070624300011106517649666031530376191755817891213910847547809248990517666613043010292627100428536737652546738) 16410711613672171332126342754193842244915477287016327757357714698751777287458963458682349581881560880814595167244857846847668988374679430572782121021084683986742283012573569894084166107235597351093334125816075658348307113218478800035703971671113417712009419861470917307849916674203301497919242668373376352901312309673053175315189945730756118172940886476343290174961420986113367531057713782438374928471960914578818951372282574754612716278516397754222547513576728685964204411958300379269457341514082464314789480020782793280002504900356632326331974869717987741343264338993635052202500091964648373605114604747636114184344)
+  (num-test (- -12618010259109779267590315037969998053964054382853891516547435925972388025118492931596200697357628900783311183940584302426381939302632641549019984810957030 -30500906828861638007306362171210132987300359439962044769219457463653547834815716264412200930088623097530758080891972640000479943534665059199377729854850415258341537838023739964147532129877743393965857370995558748807382396090020006195649251292012405690725917389684473999400905751109361754679152179983739269026226054012963756892488872262522587481931950410504651253101938824790285623805566521723062029033001745636445860437154344665483641408727637784045030118212476306906983993748299291616038887011943864441807818857508443930272872365334665976442185494702520760793786640113779099219233665607521784524244604432396247693263) 30500906828861638007306362171210132987300359439962044769219457463653547834815716264412200930088623097530758080891972640000479943534665059199377729854850415258341537838023739964147532129877743393965857370995558748807382396090020006195649251292012405690725917389684473999400905751109361754679152179983739269026226054012963756892488872262522587481931950410504651253101938824790285623805566521723062029033001745636445860437154344665483641408727637784045030118212476294288973734638520024025723849041945810477753436003616927382836946392946640857949253898501823403164885856802595158634931239225582481891603055412411436736233)
+  (num-test (- 793528769616879938852241178439496352527042950647521648629732169156958768358523029837406526207126598190786120139491813624819360632811627576064199559812277 -7357484069649002655190557040768215614708659708788999334802985986235721030962928900092675952032143512196279092521450986819067071570862007086586132687661085824939677603953832219860573980632016025218580608321648907608385784471745482257672314890331358256478273312255285010343369949412955387472116587504557483184506548209831317705115523967163525846685455369176657510129844566195941925821733027993620517287411895496215426174909366458092382652675628195464969405904518323018004882611048769247228828875493680284766874334247375868318795940759082324831733175858991629741478124633015067484305547002438816473086042218906532116413) 7357484069649002655190557040768215614708659708788999334802985986235721030962928900092675952032143512196279092521450986819067071570862007086586132687661085824939677603953832219860573980632016025218580608321648907608385784471745482257672314890331358256478273312255285010343369949412955387472116587504557483184506548209831317705115523967163525846685455369176657510129844566195941925821733027993620517287411895496215426174909366458092382652675628195464969405904518323811533652227928708099470007314990032811809824981769024498050965097717850683354763013265517836868076315419135206976119171821799449284713618283106091928690)
+  (num-test (- 30958566711373255787092081401292877738974978442987704470984765018293851031728996862405055424093249924047528792113585028592262445810946419909807061004531455817427671594281537965628880611732831524185850161910304038646992464838306728350704966234151134620041799373762432970330864023007632010865749239024802839173884778578927209741320635135275002489733299806669933393428518104197594560039136096527206600870299327752296492029012993590212340409989598323540081430189567580333356380487749078595746626408529223195894600223743978246922817054226858311823994547784553612982586322603593335538875728113115443554199017672360091721648 9164115638960783470) 30958566711373255787092081401292877738974978442987704470984765018293851031728996862405055424093249924047528792113585028592262445810946419909807061004531455817427671594281537965628880611732831524185850161910304038646992464838306728350704966234151134620041799373762432970330864023007632010865749239024802839173884778578927209741320635135275002489733299806669933393428518104197594560039136096527206600870299327752296492029012993590212340409989598323540081430189567580333356380487749078595746626408529223195894600223743978246922817054226858311823994547784553612982586322603593335538875728113115443554189853556721130938178)
+  (num-test (- -22540807692474380279530794404584230073523360203115293035869063366926380719566516089428840111682263403627532047214106171892715667227836310498366393991106231487046533598391969789120283294510723096483520917309134391072655861112766764278247568027435618337967113341863713181603534251049249873125130781073437913954718595729437608729446837417196899902194261111827656247095442897532040935029872731410799530408713850806239149348700486268275019296069828199088780767614008685960242354118969741283398882689239770114582524756296906388861630890288875920861344939520380841337675934551587994259348267613541166769237154904791412049964 16928681651977808800) -22540807692474380279530794404584230073523360203115293035869063366926380719566516089428840111682263403627532047214106171892715667227836310498366393991106231487046533598391969789120283294510723096483520917309134391072655861112766764278247568027435618337967113341863713181603534251049249873125130781073437913954718595729437608729446837417196899902194261111827656247095442897532040935029872731410799530408713850806239149348700486268275019296069828199088780767614008685960242354118969741283398882689239770114582524756296906388861630890288875920861344939520380841337675934551587994259348267613541166769254083586443389858764)
+  (num-test (- -5403850875869356031749551669837202919756114555261706106905659104903792701565965475066159243529680606410723686422444947172225540145977333194008702465610630608545009270872541652430806931212184915840724378685979865349848151917650322286497417985248678815214889868576385900691591784772762893647315325310416150353725001943778473686980157692817497562783521120544549784746647104651038037129984152623720529803205580894126664077380391379306511348324442512538418658728022685805514196592544294177914956734669359073791151050869328577099869772182315103156047405800398706114122356939316464974680113324979723289916823063616573634058 -10755560408227106818) -5403850875869356031749551669837202919756114555261706106905659104903792701565965475066159243529680606410723686422444947172225540145977333194008702465610630608545009270872541652430806931212184915840724378685979865349848151917650322286497417985248678815214889868576385900691591784772762893647315325310416150353725001943778473686980157692817497562783521120544549784746647104651038037129984152623720529803205580894126664077380391379306511348324442512538418658728022685805514196592544294177914956734669359073791151050869328577099869772182315103156047405800398706114122356939316464974680113324979723289906067503208346527240)
+  (num-test (- 16201587974698660164372991183566748501003872177894450603471850345714117528335101264234127789041855420954511595895378320972957964222386731614839583078498685801156670229700092209313747849610762975747730086443186821337319452128253859293962343891549207804191088925361935683615063225197130192492652062735684739784075955094308092423304262201429421582566117390598395895220976999990205945523225411701169301910362640419341608407294018105959688929256136725564385243617240412649023368133778798063226772467915584333795357813292935080009919284755332034998122912861893282865727947810588086156919649131720183722427134042574317487793 -126159569916621842) 16201587974698660164372991183566748501003872177894450603471850345714117528335101264234127789041855420954511595895378320972957964222386731614839583078498685801156670229700092209313747849610762975747730086443186821337319452128253859293962343891549207804191088925361935683615063225197130192492652062735684739784075955094308092423304262201429421582566117390598395895220976999990205945523225411701169301910362640419341608407294018105959688929256136725564385243617240412649023368133778798063226772467915584333795357813292935080009919284755332034998122912861893282865727947810588086156919649131720183722427260202144234109635)
+  (num-test (- -9976758107386398142455037422077809088581080675608340830198269021688955930541332630075972471934165382030070969307731206728197760190279942894255740733209190331510591013089699837164445642396864912572863786290237335963836376543389815671640509582958465164874961381137096877288362944469137669502842448492172241151419831252572392809173900377271652074261706120638052379886108764460001026094198502028776365675088466580595870167840105746912975236851293882732079317535103041585285239081516202482201377111734010788198635874359396626004300532752450289119192633850562141516671742961938277967783337559307443617308447853505824391099 13449070890444925581) -9976758107386398142455037422077809088581080675608340830198269021688955930541332630075972471934165382030070969307731206728197760190279942894255740733209190331510591013089699837164445642396864912572863786290237335963836376543389815671640509582958465164874961381137096877288362944469137669502842448492172241151419831252572392809173900377271652074261706120638052379886108764460001026094198502028776365675088466580595870167840105746912975236851293882732079317535103041585285239081516202482201377111734010788198635874359396626004300532752450289119192633850562141516671742961938277967783337559307443617321896924396269316680)
+  (num-test (- -8570952518585194406209873586517687582701183275108243979199329595605282282125006489076327154374449108678257552384372919282846744626955206382078850958298637157198962032090439427286914716782317030245513658212430127586764421559372214829010306717557679285031617989735914399954286846456953917915955558448774972943731602144914068097214910567329340361564904028964471241318105967747431610163083002382821902859161510204381788262611298660559327478615315484763561786397041779926288206767156863141140852268323253657685018587945456372648431446464389004257999049529945532453598011773843788498650935959375182414447893892341891463988 4431555062692055371) -8570952518585194406209873586517687582701183275108243979199329595605282282125006489076327154374449108678257552384372919282846744626955206382078850958298637157198962032090439427286914716782317030245513658212430127586764421559372214829010306717557679285031617989735914399954286846456953917915955558448774972943731602144914068097214910567329340361564904028964471241318105967747431610163083002382821902859161510204381788262611298660559327478615315484763561786397041779926288206767156863141140852268323253657685018587945456372648431446464389004257999049529945532453598011773843788498650935959375182414452325447404583519359)
+  (num-test (- 4117976000917214601143188578494558474138167055110060832594841842655428229500889876131794484851166401425675703592388271925904534237338595998991043982676292549088043959446082382516734793718348862105938692342851330680670593768890094290655852108130945387988863730762717733881418314989528719379494082656897158942547008663543153236129762264443358316776532465284014215413819415615612452225913947961681691310132286840303081453109375175436902292224029179426794714036524361081174901146731799945483243427138748119832116750910126386838614645397770107366925613473924955965862778639046707637382775371488874447622330992324750207465 329466253508616383200261654231797136951) 4117976000917214601143188578494558474138167055110060832594841842655428229500889876131794484851166401425675703592388271925904534237338595998991043982676292549088043959446082382516734793718348862105938692342851330680670593768890094290655852108130945387988863730762717733881418314989528719379494082656897158942547008663543153236129762264443358316776532465284014215413819415615612452225913947961681691310132286840303081453109375175436902292224029179426794714036524361081174901146731799945483243427138748119832116750910126386838614645397770107366925613473924955965862778639046707637053309117980258064422069338092953070514)
+  (num-test (- 28857935543824608075326348244201981931023939250259142606733822094071772153858420201297951828741003977413353359215638528196235956061529059419904405354390715114239219947402126760298132539402386106279333968395498788354937020337343839325588433318100331044091923709732742795159387846354148919054314582749477292946200912006940503778924320301062789466388997936618573519744795661160190636101768486096961991215006236190655062992372061052426455063703038765465688361316141792840153608145888307784845264037109867657483109819380082597605481013612040648149090345778910883349230476481347645708269410828528742743794495302359380494607 126536164564464424337714470705049463978) 28857935543824608075326348244201981931023939250259142606733822094071772153858420201297951828741003977413353359215638528196235956061529059419904405354390715114239219947402126760298132539402386106279333968395498788354937020337343839325588433318100331044091923709732742795159387846354148919054314582749477292946200912006940503778924320301062789466388997936618573519744795661160190636101768486096961991215006236190655062992372061052426455063703038765465688361316141792840153608145888307784845264037109867657483109819380082597605481013612040648149090345778910883349230476481347645708142874663964278319456780831654331030629)
+  (num-test (- 3146199586408378667812619157270468624370984629500707476575291934586478540055436137993431548830607708293475788354970610669452058906009873485175438772484599603993015239438297747261356407887781450787482447252615210880612867127689283653562498484594955015919746443263740095372831444793239911996227663006098501180972347442107190398034048225264564325230296723559400768342331039755765597288518435463475921534765025262262798267314969774604439319964638461636007229819888743218820584570149249791727508891676067767073852694327748467914037392778283816153183422263956621516748627574334199731850712255885395479903525322397561293553 -169494171680584797187706369710105239124) 3146199586408378667812619157270468624370984629500707476575291934586478540055436137993431548830607708293475788354970610669452058906009873485175438772484599603993015239438297747261356407887781450787482447252615210880612867127689283653562498484594955015919746443263740095372831444793239911996227663006098501180972347442107190398034048225264564325230296723559400768342331039755765597288518435463475921534765025262262798267314969774604439319964638461636007229819888743218820584570149249791727508891676067767073852694327748467914037392778283816153183422263956621516748627574334199732020206427565980277091231692107666532677)
+  (num-test (- -17024716654716744558842421452239026542281806678754026383430912733874686056449261218428541803113383766132449624540209841726047308927951820311213785345168358108138304716549475322223600292513384537980742126687035576531330089447100646214364923043445903103768701639992829171572718403272488931980504461938688955457870904289239032709146514866818331202329982821151580491257491540240579366183525075936339515949345815704583685855315810611089822402567649542290589282153225725537026309623090382054078872576985425957096858376112688308214148412270019118710904983829984589093557307164347051152307499446188262820058714564165108542508 -26845770031559702758807696432929071597) -17024716654716744558842421452239026542281806678754026383430912733874686056449261218428541803113383766132449624540209841726047308927951820311213785345168358108138304716549475322223600292513384537980742126687035576531330089447100646214364923043445903103768701639992829171572718403272488931980504461938688955457870904289239032709146514866818331202329982821151580491257491540240579366183525075936339515949345815704583685855315810611089822402567649542290589282153225725537026309623090382054078872576985425957096858376112688308214148412270019118710904983829984589093557307164347051152280653676156703117299906867732179470911)
+  (num-test (- -20875354448001792153279041347864644172439177882677780548397567327274288309764204295853633150227327732322157811413794613378828291977852467550695289535036337326494269114787031260705326469002279939986228049380615128280814933748700667874022724707001736732724010699175779382411342385842744973636495738468838244099596215421975861650998954057316519632062827510021706536194961332185926551767127180751211669386674770139039516623606727799489291663572125587356845055646322930167536458093283930082765496058330805117442824718962237069840252138957395570892073194575112213410604881673785921789655406716271370732069643455590690035701 -321447426701397438572265325285879998363) -20875354448001792153279041347864644172439177882677780548397567327274288309764204295853633150227327732322157811413794613378828291977852467550695289535036337326494269114787031260705326469002279939986228049380615128280814933748700667874022724707001736732724010699175779382411342385842744973636495738468838244099596215421975861650998954057316519632062827510021706536194961332185926551767127180751211669386674770139039516623606727799489291663572125587356845055646322930167536458093283930082765496058330805117442824718962237069840252138957395570892073194575112213410604881673785921789333959289569973293497378130304810037338)
+  (num-test (- -6750548706930727136186675393752693335334383613941059024795513640678178119089262068912855951615043660442324823673049951182143778744824110223137384940032268718291241014850714197673735719784663896993460156686600813524168487673234842233781654493200950459723884918456280719440022930492599128086690014332139955274261568563155723011697763382009890186816226119314994799655369791620499988988986590903148198659095740939986627235565633349906453726759224441608018598520571182643709143072528030332708598472074166415467718451869993686505339408706320298338691467040585228617379086727764240955696690287600957842671916189752415855520 132223863177855649509430852484092802671) -6750548706930727136186675393752693335334383613941059024795513640678178119089262068912855951615043660442324823673049951182143778744824110223137384940032268718291241014850714197673735719784663896993460156686600813524168487673234842233781654493200950459723884918456280719440022930492599128086690014332139955274261568563155723011697763382009890186816226119314994799655369791620499988988986590903148198659095740939986627235565633349906453726759224441608018598520571182643709143072528030332708598472074166415467718451869993686505339408706320298338691467040585228617379086727764240955828914150778813492181347042236508658191)
+  (num-test (- 15737797902964168014939893286340956118635524170934156177365242966267432695262586636031957242055461736359478270642576860414422844075672388559647477705484719667060463718865742735598799928335211410004369240278699196301127699945374217439676378682879115442203681638050752745036508637214733712716867800216723838016099572951915042604603457902610639317648800296497583507890473114507231814851908526534709496988648572353272479026750068932474334642929727977996779536604912743446197670724757690108283368934769626461285961947257397454619164856011847736479229692086038931510067165282571276049292116713101550911614590774659556899356 -6114512833799784097991148713266650451765474382378581896952003894922931741133332233338460555227243451198289670274036744955599177213449957470212981501678055) 15737797902964168014939893286340956118635524170934156177365242966267432695262586636031957242055461736359478270642576860414422844075672388559647477705484719667060463718865742735598799928335211410004369240278699196301127699945374217439676378682879115442203681638050752745036508637214733712716867800216723838016099572951915042604603457902610639317648800296497583507890473114507231814851908526534709496988648572353272479026750068932474334642929727977996779536604912749560710504524541788099432082201420078226760344325839294406623059778943588869811463030546594158753518363572241550086037072312278764361572060987641058577411)
+  (num-test (- -26633154627863501044020127597209297142657179797586777727331879111280843451446814109347357601013807189824906954310855123313836812409388745541128842840054310853220032505914307470215180950497357091093642400638925719682307925365402618310180378684705799724964274776149984064608716300479893889145492885897234574442542501896696821902329473018442082678749291668341477914681413039643187020003425962922948452894682558162414623956491734656939841377698702802567258906642912449969621455596132708975438173455827361542712483153981422051943690720556013580161324856788091093465837542336129629269227369781823515673967591796132853515009 3321161637038961370471515250185392889390643163295535903347391615170504064647249127732639364682803744773593849851778894972403397573953564801884397178069327) -26633154627863501044020127597209297142657179797586777727331879111280843451446814109347357601013807189824906954310855123313836812409388745541128842840054310853220032505914307470215180950497357091093642400638925719682307925365402618310180378684705799724964274776149984064608716300479893889145492885897234574442542501896696821902329473018442082678749291668341477914681413039643187020003425962922948452894682558162414623956491734656939841377698702802567258906642912453290783092635094079446953423641220250933355646449517325399335305891060078227410452589427455776269582315929979481048122342185221089627532393680530031584336)
+  (num-test (- 27668394897866653012794531261739800318882766882548843941974485394983434533400277607364280566269718161470415771058329222680901477416257843578362127708934184467195154000133252468684612556324066063725677629160438683034201285122508880444372096430021219637788794365539396242345208611990491721052691567092029622640533057073151980959055665792776356282961971341363712186503783566960850166774438868528799819047163739437906559674823146932668464230936946321915236658512741918196732794332451120218658490129307932187658010681746557120172585093207839141764683325214902696969028472942954863209641597556494684135445935915485525220911 204625459185084436546676461283890328511903949966691877662249903659689934813784661695047569885195881142676761876303280806728760511429260843727967794322777) 27668394897866653012794531261739800318882766882548843941974485394983434533400277607364280566269718161470415771058329222680901477416257843578362127708934184467195154000133252468684612556324066063725677629160438683034201285122508880444372096430021219637788794365539396242345208611990491721052691567092029622640533057073151980959055665792776356282961971341363712186503783566960850166774438868528799819047163739437906559674823146932668464230936946321915236658512741917992107335147366683671982028845417603675754060715054679457922681433517904327980021630167332811773147330266192986906360790827734172706185092187517730898134)
+  (num-test (- 18944451653774463090918576081661764936021793389045063662102219434278236461286997354190032851092512146937346521704215170240383659165117708716738711782597164244188741818096207452074083439983059414271417130274747048227795964884943105011205424198661201055104372863019759130697888820715782179466491256695453118035286889359217448004524564796840711987314064158194625731263591557915838970249677548534895064545467992194029425250039951132361639559343536937119283951538321037694842089561504643350632756961329867761604760788760440497535611072991056505806805291706178639395690245460397975614715123591611301423752799666149495108752 994321141213369910357526037382331323092462599623554452705525887587326552002660849455542761618020243106424015447778226642816634338781654345001677083881111) 18944451653774463090918576081661764936021793389045063662102219434278236461286997354190032851092512146937346521704215170240383659165117708716738711782597164244188741818096207452074083439983059414271417130274747048227795964884943105011205424198661201055104372863019759130697888820715782179466491256695453118035286889359217448004524564796840711987314064158194625731263591557915838970249677548534895064545467992194029425250039951132361639559343536937119283951538321036700520948348134732993106719578998544669142161165205987792009723485664504503145955836163417021375447139036382527836488480774976962642098454664472411227641)
+  (num-test (- -25075128489482657321316021943980016828761861550379828525731288423212311433274066958090940464803020097932875912251380196071686918459370667428905844496548191635733867314315152547202859654044591981512687559437417616479425752991419002108503390319869665933757684966460526631533822984311725217788657567199485442486045019468844265484117570385156844404625735176559901986920712550964238722824122000259551821135404274194791706113272773768366572120227974096419295159271316157215551931810740200836725504693738229444336470213883741520460842708733150362983831267583568258736572295448486287825894301201018490203520738439038977754991 -7402949251688548738762242219263594861535354011996392637087346760786292549376145193266590582054224293289596877537643409310483743293801574030358189880866069) -25075128489482657321316021943980016828761861550379828525731288423212311433274066958090940464803020097932875912251380196071686918459370667428905844496548191635733867314315152547202859654044591981512687559437417616479425752991419002108503390319869665933757684966460526631533822984311725217788657567199485442486045019468844265484117570385156844404625735176559901986920712550964238722824122000259551821135404274194791706113272773768366572120227974096419295159271316149812602680122191462074483285430143367908982458217491104433114081922440600986838638000992986204512279005851608750182484990717275196401946708080849096888922)
+  (num-test (- -26509487378481600038412836495388065888781507388737194948728047318975269277448073484403390476243134990463394380967295356958474984927721196047241216945988250219075749832868804186657201899994373052648345989716938779173325348547767647529160988985542438998030764420175306438858518207072038513664360905985908879070216069156102379349899544471658754952888660878997691670566078979940005195987259493512159628198906090101827331841914429358969184839073862821059400943312264269215878469013316796620921077244799814690434355127994011220041638393750697699141479399553359747084811371804524490919966410379714725200415331414459870271869 -9247155945465656153397925559476432992975541781462281935278489123804934847762489500833913193183733932905776020790478662969835879365116238125565077744775032) -26509487378481600038412836495388065888781507388737194948728047318975269277448073484403390476243134990463394380967295356958474984927721196047241216945988250219075749832868804186657201899994373052648345989716938779173325348547767647529160988985542438998030764420175306438858518207072038513664360905985908879070216069156102379349899544471658754952888660878997691670566078979940005195987259493512159628198906090101827331841914429358969184839073862821059400943312264259968722523547660643222995517768366821714892573665712075941552514588815849936651978565640166563350878466028503700441303440543835360084177205849382125496837)
+  (num-test (- -17010604274474750006607667808593883725990508452473783283717890546525148212376267233909567638545898628257361383837671935903199638230375408397752251127816717091041943873728526445398525706450929660366518707254053655364610471112296477865068960744948010561798109833411657930112293904378353445961131058136287425064317621271289456901138718557297733713446119244533144377470099270824020439428168481914824420861176457152299497728390918971852021025089592998997807574907789524112450146545688385954763667980124432645276563626082835790429598328230426471161191074551543308732791287559033843466623138171520961684959997180979203053477 -17319079025684619178510812811805110270463447771889107440996086020812918555191263705580533644731591929176480040622705607552852994906782176254877135818109655911838591767583157894999741648979817400330572419476101372927546509769818404491634583907246692993992514876697330603464497645633398167129555001859772111887143352351860130929715392173452396253437927361301990735683539169040916027268831202732178553152351117118606495416985612909248422655861312689027789401950549626643389790516560291620711705848717875304929186131258525831197192620523261738944873398924939726689336762464320190834794155527335576391767307110012289717973) 308474751209869171903145003211226544472939319415324157278195474287770342814996471670966006185693300919118656785033671649653356676406767857124884690292938820796647893854631449601215942528887739964053712222047717562936038657521926626565623162298682432194405043285672673352203741255044721168423943723484686822825731080570674028576673616154662539991808116768846358213439898216895587840662720817354132291174659966306997688594693937396401630771719690029981827042760102530939643970871905665948037868593442659652622505175690040767594292292835267783682324373396417956545474905286347368171017355814614706807309929033086664496)
+  (num-test (- -28362352496476494327713713233021518136860402239251781438945998574753662942796270292818595738100959519541952077905620088422871490191217157269435052965329201030095268586136492980900212955645939325800541690754639292707053269767151001292253701853012092829784482071789669480438026889625605099744553642207773753943711175375843649210118677569597324789367425691177169929576236753018329085700397911235750600921874606148324025962628852167093806152864269874177214562322576097931390470469397118268354868919899638376323751276807304678316688836173746719723312665764603485606350244811113608471530958617108833879194264695174468397461 -4081062111675377984305281082755054920741203741273067094307824323728798665450292976016160959354997082250970415737745853292134965575242789548167162064123232363464302136338349828801951197252612093077640695564825095503535921549690447893467349156939791370286866987224201115453216606688305427702274940837032716124925028835914047967887674858015919302546781010326385758988488478290741665427521820112231266659657169118374988259423444686317389869729817643396097464874333968181509317307320406521221309011946212308190273531009796563611621389720223920155554879800901239072885025170342349379379336047732368458185953903872634982504) -24281290384801116343408432150266463216119198497978714344638174251024864277345977316802434778745962437290981662167874235130736524615974367721267890901205968666630966449798143152098261758393327232722900995189814197203517348217460553398786352696072301459497615084565468364984810282937299672042278701370741037818786146539929601242231002711581405486820644680850784170587748274727587420272876091123519334262217437029949037703205407480776416283134452230781117097448242129749881153162076711747133559907953426068133477745797508114705067446453522799567757785963702246533465219640771259092151622569376465421008310791301833414957)
+  (num-test (- 10367142604728811799331249565431331488313655422005202933702176605382043644320209814639311439871418581341534233560256605231366966869093495784665834232350567124110194965198962966795893926025854156729633358240069116588609932539289897499402463770167927610848388138020589286461244557962368497723086593344721146859584146431437967506007518396464517349944129896971137720357645026281243138165214047233258394590454775153944241555543594427555914116439316287902470043292624597940465373006598913770411505099332700167695871387948271302951230983772351549087620538875967635100644404345317626621438913980275970160864401622986870735123 -13323117602411502623386235160326625769048477819798659261203460002048250420188223753407093545503703207645050883770850457071863684414849353264890601744588860687970804808452855795406182324143949747985869939791374195222513169904228914579995165180964917538177994190229733465224857616114628815752065632238207474599531507602861647623695058640735949593381112671690796335596142010430124683781417828023076027476816068202219709673411776556090962187853799456968290579708094595903778622705850818245685205707447012659247018940946510378371952655457988959551256869060428488498330109152756599450626641948447980234503249330875085656261) 23690260207140314422717484725757957257362133241803862194905636607430294064508433568046404985375121788986585117331107062303230651283942849049556435976939427812080999773651818762202076250169803904715503298031443311811123102443518812079397628951132845149026382328250322751686102174076997313475152225582928621459115654034299615129702577037200466943325242568661934055953787036711367821946631875256334422067270843356163951228955370983646876304293115744870760623000719193844243995712449732016096710806779712826942890328894781681323183639230340508638877407936396123598974513498074226072065555928723950395367650953861956391384)
+  (num-test (- -25321281404861286799950777949097462701962113587443565138655462269365151737118518315058035825695270231347401755128007072923189452859397209062457461602335603630181865680063451525170253746137368267674863889514153713728814272332433431604233690200451816570240227260445028630591376891139306370205846627093813889699170594185178241812081296510140572331372738998993116117098817936927692238682202717231675283209016857095739468507690090676681400453024293870135659990528969837132054786661560150259115734877162158755858653364070279937027014730947342216816307219127474721622123875699701715404820384545693058511056735799834754890692 -15870257059811626693754498423136372480069134596343998984549199283973854570508228359295418026089909378687774627821225399931314225867711515277913855368473873536462450935842786002269065816311054834857109074848803122494252885020527074586145467185882674518032764708782999568002770206995683800833252068328835778749976046128872525287656002968632147457840467536682726059599593635219947081138082647985895437016641903078766878782632503812736486529143041369932038649270950453231711525943737962179463585338023463992816994328519710963267459007592689204838965317062070771191372220277256094361390952025057574056586665509010902583686) -9451024345049660106196279525961090221892978991099566154106262985391297166610289955762617799605360852659627127306781672991875226991685693784543606233861730093719414744220665522901187929826313432817754814665350591234561387311906357018088223014569142052207462551662029062588606684143622569372594558764978110949194548056305716524425293541508424873532271462310390057499224301707745157544120069245779846192374954016972589725057586863944913923881252500203621341258019383900343260717822188079652149539138694763041659035550568973759555723354653011977341902065403950430751655422445621043429432520635484454470070290823852307006)
+  (num-test (- -10064759312484387184876313010284016458560725440641239737323234767636591183611201479885347260175161165340917225306019885202675573016295152797559983194160634880140345743489989007821872426587698574795394887035658449467358615185057180305109018898637903449135520486663185036663238956537895356325733583128141439025002140924158670346599492383552938312402521066705186885506193758499006001382444818328802338159713646715901977137011576113434170842422373328479181457354927400927267448788528116619711184792932525071391797130057189079431487557270366699175956757661488296856660145077706273571985222726397848614141194988258117115194 -3689074607001776735792882994440038588887963294487080609346609068733026224735369468180206799966728461935654851527895876039403151156669223687679382665269013769686991783531091821265184956524448064027733731862929686596729449196238312997460578818232100254940830907672953344544031914926653652310468671685310332327057444910423081752028857828828473637496272809899061573593874011995802487442092326045415689987885712749026491545159340468151000027397821404233369034594141219014219707193746581364791219277489927025992135462852894714639406751538919395016165215641239054420028872350709704191189169571752512626755385998505584006855) -6375684705482610449083430015843977869672762146154159127976625698903564958875832011705140460208432703405262373778124009163272421859625929109880600528891621110453353959958897186556687470063250510767661155172728762870629165988818867307648440080405803194194689578990231692119207041611241704015264911442831106697944696013735588594570634554724464674906248256806125311912319746503203513940352492283386648171827933966875485591852235645283170815024551924245812422760786181913047741594781535254919965515442598045399661667204294364792080805731447304159791542020249242436631272726996569380796053154645335987385808989752533108339)
+  (num-test (- -4621513851362114851854472268081584822344822740665629177305004335694395719163541988311496405455186973857145245414214464449674464879082042971313025249648887349614046805778335573547862191522938924075560443632614665169520240664970180760364771373836023824195690134618554368845612471858027311791638881380352344527105480173917778084361560336490212845414303819150625355111300877737042696291233444311426721588476948565949641149735838580313236869041013210454558557732497012037162735013212361842433337324577522358968152852532145622765032318936569346015498130151789662274686368870963891262060214274101000058555635785833724062234 20283847238128227963042817384468009365120280641032764409860857066215336820785816567924217697745867082423864450685360959383940995237907453126362378908108545669654749698030305432673477271848544313029448526561606175059997663752601262173667861202924953502866611309434183496911206954880840674239880495147451496219568787221129244201657487090244435562896841733049066453539864301122516559479757096183362477594406691085946787803323712522074578611082872627361465163804239673539339633332349145205596371287028267780080937728455742966681547897652607170788637996317683436193829274172400558140357237480809582038468874094877651383053) -24905361089490342814897289652549594187465103381698393587165861401909732539949358556235714103201054056281009696099575423833615460116989496097675404157757433019268796503808641006221339463371483237105008970194220840229517904417571442934032632576760977327062301444052737865756819426738867986031519376527803840746674267395047022286019047426734648408311145552199691808651165178859559255770990540494789199182883639651896428953059551102387815480123885837816023721536736685576502368345561507048029708611605790139049090580987888589446580216589176516804136126469473098468515643043364449402417451754910582097024509880711375445287)
+  (num-test (- 8229768172162771789/4094631553683915058 14916542302144281688/9648520391570031013) 18327341244785642013243791303754634353/39507136041685332578233153660317693754)
+  (num-test (- 13554976081719376860/5850035209629724601 -6813034992928443315/16012083383654426278) 256899901877002811987490932642058619395/93671251573905451634945335611797465078)
+  (num-test (- -221798849980968127/896588178875000428 -10118632981534633697/16809799818197706916) 333990778095757160537366868413422249/941966737890699707694484674257410003)
+  (num-test (- -10398409463665680242/10672871071680021919 908300169382593227/1663860017749090135) -2076589873614048366639515256135965791/1366012573135328609279238070700513005)
+  (num-test (- -2198518713248421187/494031967775171833 162489257999262168/3608560229859558061) -8013762081101965644053022173225152351/1782744111192743850497670941715295813)
+  (num-test (- 4025149216228566945/640594137312937394 5467380276809034025/15813352732084653151) 60148732603712157399679443099667862845/10129941051434949990590527231467828494)
+  (num-test (- 45649282670476595/278386580761220266717341154184065537 -8637266763647548631/320617180101036447149595031898805939080) 17040443444897688379155017841073877168061229451634462447/89255520501631886327999278515127058459530587144975987720686743155549485960)
+  (num-test (- 5648415331928005377/86815630814151297970860026950116430492 -3858618729527320883/27855468652821710859204555976171379400) 123081918822962876101148539477322308270739795776139149559/604572520679633516300271119677141637780408278090307422820905500994965166200)
+  (num-test (- 9781572955588417059/112881800445343004034168709823458687843 -5059688483724168531/4577416283528891230944530353546966748) 615921077060787960354561606126348783111829996215681822765/516706991472571912574910836774186280180852506048696459094758451180832844564)
+  (num-test (- -4967914039344839478/238170260180199675500515253723794945205 1851848905279976507/5731170327270969184071911155742503278) -469527297115675955424190428047537920421409443442551107819/1364994327983166854234805393053180119374354994464588574791772715189542881990)
+  (num-test (- -16853061581795824324/96404437352723357070647888504166371117 2887610208906060444/32980643277330946266739822018299212963) -834203249643667606680245846951263316484378801689149307960/3179480358681967952651970543397987660141008737601948320258541111852875189671)
+  (num-test (- -10766003534404571638/1736320411127247334175538439020437437 -220564366893542891/24024005562370344889629855466198025799) -11228676451427374102904112111967705085778332338188090365/1813624835433832784217556253227924899981441517333394378436857197512671181)
+  (num-test (- -4039872531792560303/2717817538621352660433068255065439787147153801016478776178010367557953211548 -17969900169229544519/10371230759745501411127733226376204123221866394120596070959771442399588297129) 6940459580028931824293913174633904994365279610168782399332846513086074139209123514834476635325/28187112855925579976299840753672542065528422968220885043792832460046226866036339425358907691441054924266606457279617295071355282523744922239122018045692)
+  (num-test (- 11905720953886477738/26349991043344773150817457299711471013733618033386232710348739943906972457535 -1868508269239354100/7915113871665192715310471309271830385175189228544536787145345883401181858893) 15941145914794937177093386304443205602552827651536706608400845076162777444155363739893353329726/23173686625047977587990304423741788120258508897732978034793987736019678129860415537604628640859289817332994555163435451240013483415438259775849311623195)
+  (num-test (- -2449440712560236858/3924161613720467738425590715321110829708355586356453490516463081317902575263 3313932993860824279/18392642760231276916239249302906853654153090246504347205856270072174622214792) -19352032211145724571420568734409847660231095572377236173431089875006133635431666731719362137971/24058567564857748536604240288023690440577404826273237225585673569644473540232022448230431237781096357243673961302816983638647478040822458289501843963432)
+  (num-test (- 2375854596996813469/17171542567603713573317138241061150416263899780234956304631913156611236192733 -1690236091628058998/115698505401619203741389026136939663329574241316722960060260525901879106902321) 303906786920788985464713527121698374469813384178920405503303785899916213843318155692692663023083/1986721810512032345893371071989737461519340072368099757524397292434629497187713075053126253107235936414498803590298681018206068059043963268488989361033293)
+  (num-test (- -9066703779833220052/53996509329904595759286231403247566365148374715934463324003880626270687736687 10104829441267883881/34350188217372122913844475743718288066233853695548819225257606841719829170673) -857068498550946301314281599902676812596945461499639532351672507051201056365247232693696093577243/1854790258563312749374056592838765632813507083399863975139987272744324437901043103651094837595789610803765303659351781344942305171362498886075754606580351)
+  (num-test (- -712905705954993103/38361275706852471555340413672243335795384295466685977818182375699688812583403 -3487523845474404757/24004509207225606167828624323100421869226668573968691661898194620137716910067) 116672912187985693533424614379662678476187446315443107971581372764612623068602629062267386180170/920843595906060126846114857872490000269306626188013726759480780006531676144330596572087176480154495471428384288229491172449159350622326294294528887818001)
+  (num-test (- -104068455909264700529593875361271227125/3443783531459345396 94266182755532992545775726171008609186/10986871169556601787) -1468019045636814162670978305715811638938423723806410280031/37836405995984502494576730289263822652)
+  (num-test (- 6250188382163250356218308848100308290/74975517450841979 10057222263694104272437942231238950849/1377150882331486572) 7853407001895533030925726629648778749078643531548391709/103252600010686800286181264132405988)
+  (num-test (- -325869560300902552275820653500571757882/6390430580148850471 94468553562411191993094256419298214695/11908765973274803007) -4484399064985071999330976874105690617426359030318059422519/76102142247451389303559481900024166297)
+  (num-test (- -93570528036598407567281714804477572547/1681213810574384291 -244906502561054838674546679498356325029/6878656438675875801) -231899320744132980638168050942881155823492361410591515708/11564492202898292712047439710761442091)
+  (num-test (- -81411835730261219386583131450337332863/716127167248934 305772198898084305417824619321954306670/5852119619187572757) -476650772889757879179369019399921041943854248979406203071/4190861845290706865359628655691038)
+  (num-test (- 8378821874364768218652992773582270365/264620166167099506 -235085292482743132422942426826553295351/5218853722286899445) 105936154887632142427944491040385766054707164161382644031/1381013939193345109641609957531174170)
+  (num-test (- -46932041053326337601984043288899377207/83004348019257810472659105973646518650 -172752976692389001100875729845538600392/64697064048458368935602368307247306331) 11302882932785858045495103305619355060523322049764297548269071809310077113283/5370137620102451116225827082734739449691101289924623877117727128768254573150)
+  (num-test (- -5215113722152182902641295804790889582/37267147737183802417372262122851319461 -174324915479281952095382231256728338942/198797486533978895289571841018885549001) 1819946959828587625889363843813156766676787993042778284071188313098762447560/2469538433480866339929667414220581052912334718874062150193407525506073469487)
+  (num-test (- -308468863588547635528373349890793262605/277175417813474671446046438490775760091 -88071245580784145343997181342216325733/109042592277517238289414020635536175644) -9225060231388102579469362745283215538990500777711808852192407359260779270917/30223926073985207174135233898799350451872811382182855106546181559011381423604)
+  (num-test (- -139281160373255540085888405052544101003/21590054032847718908692432707921390245 -175128181843395150044469443628898278945/101874815793501611839718166887463701141) -10408215647857282226079103083273257459322595128147732742048301223816698452898/2199482777568107961766315941206227462112836158088743951492692685709912769545)
+  (num-test (- -13653637423911886957204229566898836211/6724361745919744069899921221745423919 60537422461958273742622747790343370991/323722395245687564470126807800714703749) -4827063738484690108652046326448960810791170812913084889649499536314520788768/2176826490887613088066161490358401961235974091796973399049221882998503572331)
+  (num-test (- 207284509647982883454717074874778610186/315575836476247924963087075944676754095 59454580888278446469281150437143941047/3799382139920332759258392540934029749) -17974876032324524053425850245755672169670471578477359535347261991433397414151/1198993196898275844180025803639723883733761367273976879884312817813487572155)
+  (num-test (- -149255714031984711085009662216310611563/61209488724728410476016289765233999883959861482512968048939594260689484910535 -206353007879160639705730135450663155/12341134377195982958424940281067948493740598784362073339140017508008773524522) -1829354061323966095884091779117676852909282652562065419187935424186237303685407507859167669375269438805585201409961/755394525511335693198081866608161950899365908489933659716533239785460293292606918153507868614180865950008697266433342863460741791684603303270127798639270)
+  (num-test (- 286228990947356503137685907205210886138/64525193112922470913382853022276019736227442678252533126077234112153953877503 -93778927468512815169462456699065596479/70019706577332037325570327903202382111804035215024271930215402736305222068556) 26092773364888269343302672267572690894453186378630697330693315371426642609003667116358459590920104883240139740188665/4518035088612517412858008269349176355736855744033363257986123715832709510554983209440815107866748014413528943649032845277041680450752670951433682692095668)
+  (num-test (- 128067958966292694713545212085241612749/50804897676960765097908813878456128842417954009101908722816951877006748778869 -331437715897535092432788513322484606485/102911257177761006574263802557003927106564530572416215828322919550454967864323) 30018293903870953799879886574342637699455128356488843398998059810000258259055116602688738404467489640369684487419392/5228395890723542025866546462435908982096651119675992137235094920338650164475761939608730060759309002063498665792819192135030537577109853650729817121390687)
+  (num-test (- 27065789167947870065829490227927612633/10795458608984562931374526676297845621730864739104955678079256994070639461197 53314096352440087811254806167289750292/44807028208492548064750449353871285104149154384082409595945081934090139448067) 637187458285170434834128234123875152637450428605039275620795715002449318075555518355578432548587274399560043210887/483712418416385035748598509413117409273155809870339120248356475239836262578288026980177669113025449532258001487616187498682131415946755647640047843156199)
+  (num-test (- 275528434092876314751862670579225752027/23290954563951481764306221308726902093226107549717031306984541394996363441752 118398743375843543978994815511147957868/26050691402435592629863948804505350954161759382372519491414484055670238339031) 4420086456754111377514058698455330162869575963826459083894390154200727636413353382047981846196341965799691593361101/606745469813648893293125236863835131523556569847025597910312571817347251611730291043895952533706547565767925058454286630395458711598751591845070996622312)
+  (num-test (- -263828172858355421790882308711676546531/27836884730007976814146538035133148053942251062564400015534567388490010158584 31580638196736633522674344981675107601/26210154715367115936541726366619494863883445533448748701891278370021519416412) -1948520953518189888695889830515156795224640917019574042614412953331052369986548949517168001067643449389746489215939/182402263891837359872743630675214135004512597266032306942151126033873543370078488920825920736994254287019873146147276876145783659805845233146169813070152)
+  (num-test (- 43029409555492054023102681165249027816896930295612442385573977041111849786681/17478431621804970398 -63831159286570708329826084149841946467426290005331979697932225104261019322894/15909114936773208135) 1800228375210677909820927489860838061135888931548234366640994061734196466170531105718785437541747/278066377585826623354880511023167787730)
+  (num-test (- -34677827126365037739221949705076349308552841821108642369491195428278121711851/12321935233094032355 2466652720703038662112375481129216761044838204088317060529010755963314905661/458077759838279587) -46279076433142446690218423399092373290016631287423134630356063713373023144989129659854095947192/5644404488448083755690706619714037385)
+  (num-test (- 75657421640076548917316021979547903196453821552146142751737530624725671569062/5416811919979369403 -51031635143911513328361770575139950616395278082588474953679149885798666896870/16274277637120569843) 1507698654622877634185545368063085304919907004898369478770589865697455127479301592176158803465876/88154701093808389139357381843158713729)
+  (num-test (- -86696779369804422745383183615836359604633179506005810847902134850836986706763/15354752711854066426 83875579121692496325618937810567731584819474189441279434601944065565889174333/1890321146489013312) -725886765676185953186290796464189476910148783977596698524963064505627422317719186476684911836457/14512706875163632554860591439823131456)
+  (num-test (- -2824584270835350806110810310308644313069326027498380007733023821989145840779/3128200028313826545 -16485532380752962986834975164722153533427821569516340079793116204530103476885/4044901389917631001) 40144878017198534388242075435853869853984060096218401720566307902396394251666454424383286522546/12653260642466969643085415999628721545)
+  (num-test (- -71140717297594692514165816539390347954764512441693085945645019026357644035048/15130773661553937219 106518314860779634188990156539381479314908411240039365434170935270962911954978/11202282371121185733) -267626990691150539404999353980899804835901788880218020004516046839225745741587662342920970677374/18833244338916713919008552672213388503)
+  (num-test (- -31372444086039981530710911528326367048894875160807395940269724829549418985367/149682691887362386596593782520991059630 13980025800771566396092717430902170466939197897483207383178768135899198010674/143215924045734814208985239450703841431) -6585601463869631351127457963734548845246885851328680299125624347680443020577881573937479731612385878788264587830797/21436945032301618223045694723696447349670080755369221855700055538448185530530)
+  (num-test (- 60002561005149795132492915799111287923312170708430066011808292212167201814322/16346766380600148228286881361520329811 104734497917913613491539581495799848702023341599268915776996571583385896191203/61937476024742321910315674059586179787) 19844918952732846654680216616282727016967753441473733514766184661191061075852141231786969917096326062063227788681/10024529215648371311559365663430434349900555024451481776473735938354274557)
+  (num-test (- 78980655687309201443760271907411093305339297143458162112992101000746746121121/24094471248783344167514231679460830840 10562090177736342378322146805187203837437609238688017154037816697523731420573/74961473522415640988394298626742882726) 2833009175986364875175323375606672657538996734036576482627590142336455915129629838687125527863027857335645122892263/903078534276138789186206765245648729133926893901427360507431923032322034920)
+  (num-test (- 96507496069338193466683209170737942070468924698476218759487496209308948365/19252547784216386872197161331387216893 12563973560096321588715986952435909079270363887929001032891628645353358046011/79879611474172059435223762585596250921) -234179520035021783886726161079163865833895106001667476480293126893061678147610754451356994012799045797572757769658/1537886036891137155393554113191390737924110193971845147480358562685078008453)
+  (num-test (- -95307376781556674397571761484869767912211504027346871580288574968524683908606/128329921725822403056205582017133271311 36170894925879686192917617159219095595164782822289198001474013555499918728596/240886887357120796976726436320063138705) -27600105449672599524131749634403660999916186956076872373762346977331203119722064380924286397976905109959929163304586/30912995399316310109755266138690547023211992922143297688759057498082990192255)
+  (num-test (- -22104893896795356297688360407985617971036912713007110938688208155601366216839/5790727918973991999188987227357894380 -2339372311396919406471876113751500811577555408710269902369834593304924842262/12937689744925498650506694361349920911) -90813196841584888136609582546105640167792279132393576014002859436259486025871518847027719826829986116492656710923/24972880404321196721702428178050372850585634300866259560981343234830460060)
+  (num-test (- -3426218098660813853559652497557253942819662042768623922183022792185928242671/2077407536662385613357832628600529321326686191757127715026249042748302985178 102639297566540827510784861997871251414598617775200449087621943894148321803293/83089038429507982364103335021257902316010144851865721965726693103637274338545) -497904817589969304680335736144278473886197067420059149312627956679073246109792679236301202959163792633927112737045328517845259242265445360227131779644849/172609794647490471018785535271654901168315737813115654161745630290269473799997219289162551586864155467201760250711449118429648095083028041134558889086010)
+  (num-test (- 1543899448831604569141696144740105016328586790221799945430718394112623114412/1094690716976737526626281319975432667416762320123576900412499904933271786567 -101835025746074730017715423582062511397387458863000475669454309217160145993/55116548932808468782187525862059393507883043749327746382569396580129398962) 196572266866178229534134252625134989714563665559807019513454337864363053729628560611312158082929567528955985669620113192156991984486011150099776316375/60335574468539540262844259780498204139853746803235564167348945699931512713417761400790104247218084745081610815218855896912895393599203789305655343454)
+  (num-test (- -37581128364300495505521143552535972339959603365602244668159915869829949338997/42947503543372015019662104425995959382231280059683481488692141811517675950053 -64888994735350842409379226446854438865448614840503930577860382883594178287934/83188698741706753136718468601650233481619465918167616089202536622553688681087) -339504834548876267781536981106771553482515399809961247195394672491113984585270709765073243997043174508213253440272888923497173265137136111635177948889237/3572746933977957867604303713153220827104741303667912510494658617478381525690274918494624922428110123336345510454960178899375325287131764283538305257747611)
+  (num-test (- -16230533405187239318665866908175768720879595131719076634847964191318368133798/22572606803697929681675696479626869642065470042484269772607381297011844085929 -3238806615045730440879378702226410558103197865253164974472379309242480970831/7167633180423354812410246140643720752789573307606828791458541239290047771821) -43226201536346598702395278529841763047400215735214225929426206339139243925579733185594282160061132691154727543083543034702325848468839969037250195569159/161792165494835249202675342837643048016103040739685489755239980324180308179745586573032524649518850731442178659412287492012066453331740508600962908806709)
+  (num-test (- -58154703770626762920775801228739843350302933064569814497417973139312614069763/25655935043535628671780902110427599603857741303802203417196105196580175051005 2291927744682353823611191393035210406213286149316388597509251757479544491322/2075117977066796442381930295725401140983312287419314083032058820231519915051) -2848879691864593463404526996418656511058536739346277043463623510210968076493148319480555434626780964688210750895957968447300033820091387019574369485421/845064952814266442598400897276554701819815257830830535600041451476645443978805142044657833921127247033533628716506571358424324423237490438402971304385)
+  (num-test (- 16233726784138742204308718138203086218138595789383817317246449554340898453104/16370584482945481446847872945862788646563748664837147378940234530469832625057 14431071141710676049963542765626402177344958369162454874051268130438178883381/21166786163219212747261378458659387864767326410261049063051557406799162784072) 107370754167217929909136144689909613387440429633745577224054233373886366171618903318258855919060113440621302505589923655976636732694637334616990468681771/346512661117421566971293748815177161526095870176610277140325665174756629068111228154091043637596506814557119477231243643171068111260010676990408227692104)
+  
+  (num-test (- 3872339191937382556.0 13437882608410293981.0) -9565543416472911425.0)
+  (num-test (- 12702320881720530101.0 13823645380834800545.0) -1121324499114270444.0)
+  (num-test (- 10222969257152373972.0 -3454292165863475982.0) 13677261423015849954.0)
+  (num-test (- 591233951053628288.0 -17639978232337836611.0) 18231212183391464899.0)
+  (num-test (- -7878405903223218778.0 9050739027069287469.0) -16929144930292506247.0)
+  (num-test (- 11347120771894057376.0 8443917396834074370.0) 2903203375059983006.0)
+  (num-test (- 7831959259127703467.0 -257470007821066702597399141202130667973.0) 257470007821066702605231100461258371440.0)
+  (num-test (- 1092406341647857980.0 -325710450166845666190895573961860069495.0) 325710450166845666191987980303507927475.0)
+  (num-test (- -4220606126689357919.0 73461013742902296577411907972196819778.0) -73461013742902296581632514098886177697.0)
+  (num-test (- -5112059189225304080.0 334306213789148650102245018234146620793.0) -334306213789148650107357077423371924873.0)
+  (num-test (- 3093346224554776175.0 -204967241927023874963787190016588249299.0) 204967241927023874966880536241143025474.0)
+  (num-test (- -5735747638156472357.0 -3881750746805128137401544408305666047.0) 3881750746805128131665796770149193690.0)
+  (num-test (- 17639095392510638323.0 13312205908441007415860933757605397223142073616822325142416364932887680287063250296996056787873086490231950036662943632990219865746131453861285495087665017.0) -13312205908441007415860933757605397223142073616822325142416364932887680287063250296996056787873086490231950036662943632990219865746131436222190102577026694.0)
+  (num-test (- 16304056910692545233.0 1463591032326743052350022746892396184459320617971409440301562638996633667625451301419074212369365394140737678584830314878769698416417465834928609990708982.0) -1463591032326743052350022746892396184459320617971409440301562638996633667625451301419074212369365394140737678584830314878769698416417449530871699298163749.0)
+  (num-test (- -10347586523508777315.0 12614325304787850623826535169596975975360455924114817820074336137897280818245940873677389644701038550150832199897314137414727161192173691528917744363375331.0) -12614325304787850623826535169596975975360455924114817820074336137897280818245940873677389644701038550150832199897314137414727161192173701876504267872152646.0)
+  (num-test (- 16875252323587344863.0 -10230183557696638447600885112945653217398839137450096120772416948425622105048400944465287395231588821521217980407867153259741079758527788318592431794213674.0) 10230183557696638447600885112945653217398839137450096120772416948425622105048400944465287395231588821521217980407867153259741079758527805193844755381558537.0)
+  (num-test (- 8574302739232756920.0 2945205250727759066959418729185252318153395797902208079569164623770839848878181416073351760975066439564334127158302281471631001294503759011790017443478716.0) -2945205250727759066959418729185252318153395797902208079569164623770839848878181416073351760975066439564334127158302281471631001294503750437487278210721796.0)
+  (num-test (- -17657597319577965851.0 -470389901349206124503884936612357721199915776516939967013182926735009022045917047211666512521578494339222795740836335004070464944715357800461845632614015.0) 470389901349206124503884936612357721199915776516939967013182926735009022045917047211666512521578494339222795740836335004070464944715340142864526054648164.0)
+  (num-test (- 11472336850218354926.0 16764018932433717867649699977474298016589762238077229911249331402108995850754999065988360217500238643747316139204767820295123085026049273617874157749889925712672510963712964034497935503076689670786498045302562704435768723916334451317158760704743066709581593570757498670622547878516907127632802801541072452593999435195637193819500375063696114131057474475407791672955417184592088612921927282233762919112197264895445408873539746256555444555901857369535350160665235184955438709679669964546134487688796078142789125799020704969226557493354453298489954288702387159956161243151013189140749021799388406290339231792790773612376.0) -16764018932433717867649699977474298016589762238077229911249331402108995850754999065988360217500238643747316139204767820295123085026049273617874157749889925712672510963712964034497935503076689670786498045302562704435768723916334451317158760704743066709581593570757498670622547878516907127632802801541072452593999435195637193819500375063696114131057474475407791672955417184592088612921927282233762919112197264895445408873539746256555444555901857369535350160665235184955438709679669964546134487688796078142789125799020704969226557493354453298489954288702387159956161243151013189140749021799388406290327759455940555257450.0)
+  (num-test (- 12682607562584942903.0 32133619583510009354538204193505267426986629771080807813988708187761849276650847958886764459302043799013813125903744946349479743277662066609741649009023451783267511140245797235200413941774959851628239089013586399425314412329003636059313583335807925401822165199322334470452126484173417518861322963430951772895619791799137157183662289329901964728384697377777905235894234370773419160283767144177627084271804319157013765325677633945370597318765372346484383325176768117059688792498687750479618961541872574768601477738410497806623403054372221338126223825515939164627992974469102910882915893925327931884157735553718792115929.0) -32133619583510009354538204193505267426986629771080807813988708187761849276650847958886764459302043799013813125903744946349479743277662066609741649009023451783267511140245797235200413941774959851628239089013586399425314412329003636059313583335807925401822165199322334470452126484173417518861322963430951772895619791799137157183662289329901964728384697377777905235894234370773419160283767144177627084271804319157013765325677633945370597318765372346484383325176768117059688792498687750479618961541872574768601477738410497806623403054372221338126223825515939164627992974469102910882915893925327931884145052946156207173026.0)
+  (num-test (- 14621880654476679971.0 -10075923784619510279100488003620810539888599376089081798647754628017452762406215094511315867213396543200861274584884759429891242650999761503100661310915213260386281412125687376866399124849043409890009033179987278297335571911640353059036551139958369871790768643514550179661619387008678118363266091945225880595898524898713646458647465935791224159084684209727153050053537752111696883536364966526666445737103854446009305531519860527938394412863332757413309423156200192973778629503534709731073637828912608835085933003410694216843775182940057891552358942312728978810053715387504707194992816961400377579655168106377696154728.0) 10075923784619510279100488003620810539888599376089081798647754628017452762406215094511315867213396543200861274584884759429891242650999761503100661310915213260386281412125687376866399124849043409890009033179987278297335571911640353059036551139958369871790768643514550179661619387008678118363266091945225880595898524898713646458647465935791224159084684209727153050053537752111696883536364966526666445737103854446009305531519860527938394412863332757413309423156200192973778629503534709731073637828912608835085933003410694216843775182940057891552358942312728978810053715387504707194992816961400377579669789987032172834699.0)
+  (num-test (- -3220156644655019630.0 -8347829670073174550775641165362740628312221836466572623516708794243074870361401136762432100726575330214254748615114820602945887237367461962207075265579588481261313345359877816874924645801358760718027997416917747796144940020489321523749233377708490614979453376328244189926517907474704635785063100359787580409065317918203485474119227673185211436285930586838616288721370975925191964611302275354365110550116042403226844820172448647475637867255305805337047967053177320593337377763657329816935516961201488840745892529800883680912275812320160312651894919502389242002380151562481051684439333368396132543667539444686619670713.0) 8347829670073174550775641165362740628312221836466572623516708794243074870361401136762432100726575330214254748615114820602945887237367461962207075265579588481261313345359877816874924645801358760718027997416917747796144940020489321523749233377708490614979453376328244189926517907474704635785063100359787580409065317918203485474119227673185211436285930586838616288721370975925191964611302275354365110550116042403226844820172448647475637867255305805337047967053177320593337377763657329816935516961201488840745892529800883680912275812320160312651894919502389242002380151562481051684439333368396132543664319288041964651083.0)
+  (num-test (- 11628988978410243120.0 21091260149209133824278525560739673446778991946138130571540201996950100883736332286627324787663044982195445635023357027423513202277912840570399895946346028843517588470258087913846945044832851780108963206182331994065720076983528527849542421619745503796476103034657238118665288185878258232226731582201217795631247916614224227701409259346052937919425072595891571572960468193421257458185693656090215937518204243652916583730260295885562094977775951577484951577581277292356830523013216949489797535362720471761788697932265967910160407593278848113303674799017334692501935041730808945554336564957621028111014116286675587727714.0) -21091260149209133824278525560739673446778991946138130571540201996950100883736332286627324787663044982195445635023357027423513202277912840570399895946346028843517588470258087913846945044832851780108963206182331994065720076983528527849542421619745503796476103034657238118665288185878258232226731582201217795631247916614224227701409259346052937919425072595891571572960468193421257458185693656090215937518204243652916583730260295885562094977775951577484951577581277292356830523013216949489797535362720471761788697932265967910160407593278848113303674799017334692501935041730808945554336564957621028111002487297697177484594.0)
+  (num-test (- -15960716439913426281.0 18799211173341989380260980155501104944815245973352765317821146163884181375747259542484535639646490774929026134833947975785613727050541297797675705933339289016115326958150660323801621778641184271728990164666383865587422591755046779736996211052149338115836473967202556153668963815595875844414662034458693455631979862997316049580586739835122770408911308146605671192538040301857163633538268589024651373766021087864982140201615461513687698136663128896835597598904095187715456109340116329587986878167776146023396961265667934659006280575496363066974484893764810659481361856335795455814679851690737943592227795474197104696127.0) -18799211173341989380260980155501104944815245973352765317821146163884181375747259542484535639646490774929026134833947975785613727050541297797675705933339289016115326958150660323801621778641184271728990164666383865587422591755046779736996211052149338115836473967202556153668963815595875844414662034458693455631979862997316049580586739835122770408911308146605671192538040301857163633538268589024651373766021087864982140201615461513687698136663128896835597598904095187715456109340116329587986878167776146023396961265667934659006280575496363066974484893764810659481361856335795455814679851690737943592243756190637018122408.0)
+  (num-test (- -181065640455671431985325539445069267017.0 14120143334024043377.0) -181065640455671431999445682779093310394.0)
+  (num-test (- -91295299684959299024846233061686623774.0 6891102275697080803.0) -91295299684959299031737335337383704577.0)
+  (num-test (- -252582289949155881579950873916766853744.0 883304029266526072.0) -252582289949155881580834177946033379816.0)
+  (num-test (- -10104159950635417603045689770006558103.0 17251490913777465304.0) -10104159950635417620297180683784023407.0)
+  (num-test (- 288463495341489091297108607960869684860.0 -16376960611483226267.0) 288463495341489091313485568572352911127.0)
+  (num-test (- 204661965092367792468062569536290631004.0 7774991291341524479.0) 204661965092367792460287578244949106525.0)
+  (num-test (- 174559967167400201536723778015754014369.0 168183438971818617783400303174116396891.0) 6376528195581583753323474841637617478.0)
+  (num-test (- -253300708624436983509156598368557395374.0 -77166863757693227553099778725240875400.0) -176133844866743755956056819643316519974.0)
+  (num-test (- -38587765028356074196061530813295290944.0 5999161273284748726648331130480323187.0) -44586926301640822922709861943775614131.0)
+  (num-test (- -236400856885875891058508662756360145662.0 222191413471626205952456600591947275777.0) -458592270357502097010965263348307421439.0)
+  (num-test (- 212937903940173587742882129816769611096.0 336470165768472077447806282475185249734.0) -123532261828298489704924152658415638638.0)
+  (num-test (- -264812595676159375893264580577855253845.0 -247068943830535581577267897204259299723.0) -17743651845623794315996683373595954122.0)
+  (num-test (- -1725732715479127274526681751197327660.0 -2279805492899538651574406423954277869507456204136276822451602661149698386520868702017367409743272511010382761246500508887739763323997191435566266331339917.0) 2279805492899538651574406423954277869507456204136276822451602661149698386520868702017367409743272511010382761246500507162007047844869916908884515134012257.0)
+  (num-test (- -220007189346579184019349894240059989979.0 9116030813176547770422918633286023943039811682891023288884273747820892639481842291616424036020927750322528731882517057595815179415042385175627374957565803.0) -9116030813176547770422918633286023943039811682891023288884273747820892639481842291616424036020927750322528731882517277603004525994226404525521615017555782.0)
+  (num-test (- 139683266109784685815165642637380856544.0 5782493350903499652295971390391981928106911831248674750993968151944332845911526084530951283012280786005612601970108688202931002414214353708335212597807345.0) -5782493350903499652295971390391981928106911831248674750993968151944332845911526084530951283012280786005612601970108548519664892629528538542692575216950801.0)
+  (num-test (- 239160165978290709841254489756277328273.0 5152132850125501873897264811465207492706871561577273155117982457627773151595716641409297120994045059130053034927464958986304380141364542178714472948085275.0) -5152132850125501873897264811465207492706871561577273155117982457627773151595716641409297120994045059130053034927464719826138401850654700924224716670757002.0)
+  (num-test (- 315772704643232632782106484978382006176.0 -3689252327480456512393153800679864208480329729627292260734151097785848947569336194072922395859496552999163037466184616218582046814434719444842678248982224.0) 3689252327480456512393153800679864208480329729627292260734151097785848947569336194072922395859496552999163037466184931991286690047067501551327656630988400.0)
+  (num-test (- 82735713197488344149642668226610301853.0 -12473025194535761005577066561696471986140205263843017221991729197337093872383371857001077050460827652296473928714097816492579684543651922277865558518876774.0) 12473025194535761005577066561696471986140205263843017221991729197337093872383371857001077050460827652296473928714097899228292882031996071920533785129178627.0)
+  (num-test (- 63472235942371758467270296983419551089.0 -7866520408163137968600317959735552406794938230345293650627055135268307695389903092041438746530663083967329111232451176014649873249349534808700483360707382397988918594143264031213181385790969271527978925616276399184489007642142996251807222768397530946779296600805549276528669432847672215219943599871223372831999133812100481632278022608906065923652981249057846548868473376683960144009223047416366697876553049362242497225174860431577034875737250719899362881567590934060155436179316063810148362442197071642183371654740845983314705249832168923202400873364289483910868432511677656218937984504828452980698439495961392749596.0) 7866520408163137968600317959735552406794938230345293650627055135268307695389903092041438746530663083967329111232451176014649873249349534808700483360707382397988918594143264031213181385790969271527978925616276399184489007642142996251807222768397530946779296600805549276528669432847672215219943599871223372831999133812100481632278022608906065923652981249057846548868473376683960144009223047416366697876553049362242497225174860431577034875737250719899362881567590934060155436179316063810148362442197071642183371654740845983314705249832168923202400873364289483910868432511677656219001456740770824739165709792944812300685.0)
+  (num-test (- -284018520801241078671538235859630240269.0 -5529748211779294240854894683633173443789067073881249229985499707296461959655918837051490512357840133495603640185675483847478587849599477020706893805485599954539589062532211767295361120129440287144117406526027552427750375526095104163474774446716012360038076376952619723549765229763943818011605991300849052030142173100367582906381575666628005795818339029350398340616624791399526643991489247585213423174803853961438830286737553181353007081438503238779644371968004083452645077716952159339978836669723137339898471600546912430030276920763475622536295311290657163861398519747560279682401429552174530714298081464588450842581.0) 5529748211779294240854894683633173443789067073881249229985499707296461959655918837051490512357840133495603640185675483847478587849599477020706893805485599954539589062532211767295361120129440287144117406526027552427750375526095104163474774446716012360038076376952619723549765229763943818011605991300849052030142173100367582906381575666628005795818339029350398340616624791399526643991489247585213423174803853961438830286737553181353007081438503238779644371968004083452645077716952159339978836669723137339898471600546912430030276920763475622536295311290657163861398519747560279682117411031373289635626543228728820602312.0)
+  (num-test (- -171812101820192353275910956459431262142.0 11401673303315394031728944442295528921842441448377692701102691446500671963119794838260543877466107345474902885032629120622020177051592733148817057943390167845763358795044702079370835841331467130719834250134674578757640577473495192331790176510774020541399177011446664359866582351045889299070080989390219063301859447807907203943168891690028442190793548699886572720360741686677780644932612683647303776634496172481504075784427704287335805355801794320914944330891519283383694196486986108936857630373759865062862204149003789919218681050221366182434949855054760827976853645027544605870235074909890698574792562001595287630131.0) -11401673303315394031728944442295528921842441448377692701102691446500671963119794838260543877466107345474902885032629120622020177051592733148817057943390167845763358795044702079370835841331467130719834250134674578757640577473495192331790176510774020541399177011446664359866582351045889299070080989390219063301859447807907203943168891690028442190793548699886572720360741686677780644932612683647303776634496172481504075784427704287335805355801794320914944330891519283383694196486986108936857630373759865062862204149003789919218681050221366182434949855054760827976853645027544605870406887011710890928068472958054718892273.0)
+  (num-test (- -243638660221338112796448050030955119997.0 -32214383478080953899491069562585164652288236626686985994647827422262342469970423345510055643470262764747630363450204055220886177681745412924556264758690138113272748656941509018308925555317383307928766093730384151056027828368474245304944063213926492719166086055718735381341569379006804236876950175122702350552198046290567043195716369691666842524594399597143281611765509174168738392889075290806378316647736667077047013214732267367344808724905727602402784621437141760604478301412768904784950365257469208085143467704875589485635570084387755189599791857576855454112556762755762408826226326879491415484319411662301650468948.0) 32214383478080953899491069562585164652288236626686985994647827422262342469970423345510055643470262764747630363450204055220886177681745412924556264758690138113272748656941509018308925555317383307928766093730384151056027828368474245304944063213926492719166086055718735381341569379006804236876950175122702350552198046290567043195716369691666842524594399597143281611765509174168738392889075290806378316647736667077047013214732267367344808724905727602402784621437141760604478301412768904784950365257469208085143467704875589485635570084387755189599791857576855454112556762755762408825982688219270077371522963612270695348951.0)
+  (num-test (- -126332081511349770866908261827634312283.0 31497387372874133218238910173378055967910722258532087598053588964599898753455370244114881403020152175272452951858324158004662566613339529101292284073176382818309096142522412043073218657587031893636358434796164444941535757484360125937835242214199979245499374972029624710574236962978707708765065292759037309958875006017588240959790355958632745299212449602934380927677385974488564420550408281673927387615657765312151272852486266800510090872812376232597458154951925709496664568906509814364388823105469855516803225244972466742963619633076158367569109107733990828830121948130235858799809203410103682003414364238243553515261.0) -31497387372874133218238910173378055967910722258532087598053588964599898753455370244114881403020152175272452951858324158004662566613339529101292284073176382818309096142522412043073218657587031893636358434796164444941535757484360125937835242214199979245499374972029624710574236962978707708765065292759037309958875006017588240959790355958632745299212449602934380927677385974488564420550408281673927387615657765312151272852486266800510090872812376232597458154951925709496664568906509814364388823105469855516803225244972466742963619633076158367569109107733990828830121948130235858799935535491615031774281272500071187827544.0)
+  (num-test (- 219979452670016849533060110266815720199.0 3900115048441644499033281842448985956665866771934663536385503692700586024397767816761943054115584011069129310718114010862034970648115172218305599786238607524420973404711138276011261135403209178420948996472570042497859127324157786975578751148348046315727383390370594954695454631662061021971027739429505825056455676233533511412589936865597034183410893428831818716136282201523804692574965779771140320669492229416601369453681528301333865290947482219850340728455965391492610516639151652595539203632139883064874286555941718154489936421274731413286355640404192677546692090304496817063325766995908926108582896362623757323811.0) -3900115048441644499033281842448985956665866771934663536385503692700586024397767816761943054115584011069129310718114010862034970648115172218305599786238607524420973404711138276011261135403209178420948996472570042497859127324157786975578751148348046315727383390370594954695454631662061021971027739429505825056455676233533511412589936865597034183410893428831818716136282201523804692574965779771140320669492229416601369453681528301333865290947482219850340728455965391492610516639151652595539203632139883064874286555941718154489936421274731413286355640404192677546692090304496817063105787543238909259049836252356941603612.0)
+  (num-test (- 585873325961105129055557280004608765382109855007674169500308242261038324959928764512890600512016613154122762798104714052579267789493643522748210870974797.0 -1855792162818946202.0) 585873325961105129055557280004608765382109855007674169500308242261038324959928764512890600512016613154122762798104714052579267789493645378540373689920999.0)
+  (num-test (- -3026050092505200332789765255096964033685859497096213532090644235603419347590512426830117415222669642053441336442247132403948783838396746566100575461602162.0 18009081534399282710.0) -3026050092505200332789765255096964033685859497096213532090644235603419347590512426830117415222669642053441336442247132403948783838396764575182109860884872.0)
+  (num-test (- -11124638695599888462310706699308855434715251048597328942409434888923094027849143412724699165971400546471660924330688750607774759764580214088920441698992069.0 -4827559068742614723.0) -11124638695599888462310706699308855434715251048597328942409434888923094027849143412724699165971400546471660924330688750607774759764580209261361372956377346.0)
+  (num-test (- 4950293428090696283711882613183655723616682297360442241017758383241177602498881186549809051670562038601658285833496694108818253845693871318067007752043113.0 17597810481352184048.0) 4950293428090696283711882613183655723616682297360442241017758383241177602498881186549809051670562038601658285833496694108818253845693853720256526399859065.0)
+  (num-test (- -5733769947958740467479139247420201065087494801172241127791526686385518674532830661413722661802560247463032020003355494614502034002778775472609306735864748.0 -3892174127829225880.0) -5733769947958740467479139247420201065087494801172241127791526686385518674532830661413722661802560247463032020003355494614502034002778771580435178906638868.0)
+  (num-test (- 8320894458193427045187598554188178307429755504967209344418448624882517461814957461249858674758807195827056824653471934409067429988676743031117653237018365.0 -12861394200627120797.0) 8320894458193427045187598554188178307429755504967209344418448624882517461814957461249858674758807195827056824653471934409067429988676755892511853864139162.0)
+  (num-test (- 13033402737450594044106258936169013897237368708138118260402180886096095497725071502601849887805439844083105685971731015312020770945603825344926844435936044.0 236396022362585261770052671762207864597.0) 13033402737450594044106258936169013897237368708138118260402180886096095497725071502601849887805439844083105685971730778915998408360342055292255082228071447.0)
+  (num-test (- 12170667278114656173974716189098171384426379753661081475485441559687661443127166543908925678856145097632475832903680828294561265828775791256812588754280222.0 -276673555533799047589626400978981416789.0) 12170667278114656173974716189098171384426379753661081475485441559687661443127166543908925678856145097632475832903681104968116799627823380883213567735697011.0)
+  (num-test (- -12755594876262399860618168642932232021734362385933348033134635580177924615701078617214764415318471507488803810365565826229169313660087149542130819663319659.0 -157671440495648010763311068579191828684.0) -12755594876262399860618168642932232021734362385933348033134635580177924615701078617214764415318471507488803810365565668557728818012076386231062240471490975.0)
+  (num-test (- 8664063140780163008577373335591938905735059211566906376953760862047748343846207426667781783874718320339071949903053785280430612875488847226724390758938740.0 54361107931665215623681874454167019934.0) 8664063140780163008577373335591938905735059211566906376953760862047748343846207426667781783874718320339071949903053730919322681210273223544849936591918806.0)
+  (num-test (- 3699576825118349347309026261327541749454660339251578894574483235547605815416603169143590292164644149607672871236942391817131531474661895913650810587431606.0 -50508350367572393968128467319633674717.0) 3699576825118349347309026261327541749454660339251578894574483235547605815416603169143590292164644149607672871236942442325481899047055864042118130221106323.0)
+  (num-test (- 5626548453644136572409808769267055618695663227750732922630041368983808478347120771651822300668480671524976882745306794511840379704578900504784165956486985.0 170502882789371639987361620116696459267.0) 5626548453644136572409808769267055618695663227750732922630041368983808478347120771651822300668480671524976882745306624008957590332938913143164049260027718.0)
+  (num-test (- -10859007735074693411217019392659638207496329895257318665547454149984863458541990037760564769787816800806064437172810158051442267508476778676439633382657890.0 -7558060977666720080449823996328496253877735754811271086853901493753796001778345391546991917892931500169890406340928835457635973812901681485438886367096185.0) -3300946757407973330767195396331141953618594140446047578693552656231067456763644646213572851894885300636174030831881322593806293695575097191000747015561705.0)
+  (num-test (- 9842028993407961669727766131360795288615020071102475108883839785397865740828387076847892646234215787999498419839351470775471313077046438080666908734795616.0 8259939762466350877481193620364896193464602165170783019804380181692322874550956777598992104871440502758410340359413403619753571535498118388286469082729503.0) 1582089230941610792246572510995899095150417905931692089079459603705542866277430299248900541362775285241088079479938067155717741541548319692380439652066113.0)
+  (num-test (- 3122315115429970622394662815735050825423438028108957393747131991771456957037829402044934484343765915727397519247940959221091465331254497476137639859816450.0 10737995515603450913722681305571315249864367824351372254572936648132763616823019940208526402092654554035074813865303483747097673960803093638463005072804384.0) -7615680400173480291328018489836264424440929796242414860825804656361306659785190538163591917748888638307677294617362524526006208629548596162325365212987934.0)
+  (num-test (- 11618335890332522671268040181306950825004789685088262996478365976802329054158653675768163009290064139158450983598701977173152384425333441365287895694522192.0 -13130287008197231017935223399369698658354829835061356451363818961959486828237111511740029441613108087354987794332115218978284937263725126538295501305403242.0) 24748622898529753689203263580676649483359619520149619447842184938761815882395765187508192450903172226513438777930817196151437321689058567903583396999925434.0)
+  (num-test (- -4829477140897377009195646150061276059814366801005389903693533021027427566117360765323647260121062827801190746646296803957067548167571028717513392985791293.0 10716557117391614298810040587314742187092120526669273567183969821384063434473189717686678450880765426943205955814024872764413373364846268902370055526485180.0) -15546034258288991308005686737376018246906487327674663470877502842411491000590550483010325711001828254744396702460321676721480921532417297619883448512276473.0)
+  (num-test (- 1560421244904974852620371975782132605421448226892487453928759432083522187778803424020804578027100625536441377609275030418285893555753560195716001014786650.0 -11797558308994912054526619290334311429749533070145154703018977152548370444659962978040151671210413666186432921816690953994784423526183449271023503069393845.0) 13357979553899886907146991266116444035170981297037642156947736584631892632438766402060956249237514291722874299425965984413070317081937009466739504084180495.0)
+  (num-test (- -7701347923966912534344428538744620884561375267012102797292378941649984539207353887059064943586048644516121387166836442084007442716291792933061162738380376.0 5290969389374230541016502448421359606252744677802288901830045825873182202718418905866055323957065013553046698199939002159982374580735362593037515863844280108947533575824820196689891621498006303535207762625068798755031433921940066544809959896067184147997503827988613858484669349726945188167613248195147619673963531690938913245110754715059472477991342216448470339490385593605806518967792963339193162830698488489270925945408227996742278697477358272529028932771642478870844024835907350391770605391526921411004262446196112836319091260967898895009427182171643279100998182191816962677328417390867021108292139204864164048286.0) -5290969389374230541016502448421359606252744677802288901830045825873182202718418905866055323957065013553046698199939002159982374580735362593037515863844280108947533575824820196689891621498006303535207762625068798755031433921940066544809959896067184147997503827988613858484669349726945188167613248195147619673963531690938913245110754715059472477991342216448470339490385593605806518967792963339193162830698488489270925945408227996742278697477358272529028932771642486572191948802819884736199144136147805972379529458298910128698032910952438102363314241236586865149642698313204129513770501398309737400085072266026902428662.0)
+  (num-test (- 9733743430220591762422540139212426729307515492818443460852332805653889275463385649305231919846970974905736816260992940027028218064265519723018527155353151.0 -29407855293830047984154639411082591337348779678279017647951764366455421210163494489475996514661359700145916243499452007595041420522019751347743105082745321262372977262641488359297167392118038994384136863563032667040671405618315550876997904307423736276844997706938133936081058323434935833614475654922773162140266784233792639117145232791514703532554345086520312281500696798706889025860427142771458666376271994240028586899592254884476941388776984078337603148583453255593120138178690189726206775893096279000909079330468718593887702543025737308336025198677457129910473491269839827087491228569718246503140134413881896746751.0) 29407855293830047984154639411082591337348779678279017647951764366455421210163494489475996514661359700145916243499452007595041420522019751347743105082745321262372977262641488359297167392118038994384136863563032667040671405618315550876997904307423736276844997706938133936081058323434935833614475654922773162140266784233792639117145232791514703532554345086520312281500696798706889025860427142771458666376271994240028586899592254884476941388776984078337603148583453265326863568399281952148746915105523008308424572148912179446220508196915012771721674503909376976881448397006656088080431255597936310768659857432409052099902.0)
+  (num-test (- -276731217243271862683214238489380950428392903790808046630969592255272629537001990355375434170910931115552132394269672247616298060929507021008951190291387.0 100289083769237476480554074865040988004216167545459907207847010762380733541100608695693297149249375537088329431700364201275915507683345148401600569951338052791424407090330310974243070931256108167365334162914085216447196038922091547331474328250886730614683299908003398886233860613008266913065047699535081030427106800418656336608005860846045905149012346378286475449307630537665901621055008855374148058291266835796203075976592585729940879567246284967856356337849150102261744547461816282538319258966892339056695718919291240188920586288417893106046698069355647145603908383687239983874164793005765733782432717429040621674.0) -100289083769237476480554074865040988004216167545459907207847010762380733541100608695693297149249375537088329431700364201275915507683345148401600569951338052791424407090330310974243070931256108167365334162914085216447196038922091547331474328250886730614683299908003398886233860613008266913065047699535081030427106800418656336608005860846045905149012346378286475449307630537665901621055008855374148058291266835796203075976592585729940879567246284967856356337849150378992961790733678965752557748347842767449599509727337871158512841561047430108037053444789818056535023935819634253546412409303826663289453726380230913061.0)
+  (num-test (- 8505070389896098095621766692413480203366379968950158493268895987250690600795955783113900096527432416791184386061684833478921638080978014176210898461637606.0 -16410711613672171332126342754193842244915477287016327757357714698751777287458963458682349581881560880814595167244857846847668988374679430572782121021084683986742283012573569894084166107235597351093334125816075658348307113218478800035703971671113417712009419861470917307849916674203301497919242668373376352901312309673053175315189945730756118172940886476343290174961420986113367531057713782438374928471960914578818951372282574754612716278516397754222547513576728677459134022062202283647690649100602260948409511070624300011106517649666031530376191755817891213910847547809248990517666613043010292627100428536737652546738.0) 16410711613672171332126342754193842244915477287016327757357714698751777287458963458682349581881560880814595167244857846847668988374679430572782121021084683986742283012573569894084166107235597351093334125816075658348307113218478800035703971671113417712009419861470917307849916674203301497919242668373376352901312309673053175315189945730756118172940886476343290174961420986113367531057713782438374928471960914578818951372282574754612716278516397754222547513576728685964204411958300379269457341514082464314789480020782793280002504900356632326331974869717987741343264338993635052202500091964648373605114604747636114184344.0)
+  (num-test (- -12618010259109779267590315037969998053964054382853891516547435925972388025118492931596200697357628900783311183940584302426381939302632641549019984810957030.0 -30500906828861638007306362171210132987300359439962044769219457463653547834815716264412200930088623097530758080891972640000479943534665059199377729854850415258341537838023739964147532129877743393965857370995558748807382396090020006195649251292012405690725917389684473999400905751109361754679152179983739269026226054012963756892488872262522587481931950410504651253101938824790285623805566521723062029033001745636445860437154344665483641408727637784045030118212476306906983993748299291616038887011943864441807818857508443930272872365334665976442185494702520760793786640113779099219233665607521784524244604432396247693263.0) 30500906828861638007306362171210132987300359439962044769219457463653547834815716264412200930088623097530758080891972640000479943534665059199377729854850415258341537838023739964147532129877743393965857370995558748807382396090020006195649251292012405690725917389684473999400905751109361754679152179983739269026226054012963756892488872262522587481931950410504651253101938824790285623805566521723062029033001745636445860437154344665483641408727637784045030118212476294288973734638520024025723849041945810477753436003616927382836946392946640857949253898501823403164885856802595158634931239225582481891603055412411436736233.0)
+  (num-test (- 793528769616879938852241178439496352527042950647521648629732169156958768358523029837406526207126598190786120139491813624819360632811627576064199559812277.0 -7357484069649002655190557040768215614708659708788999334802985986235721030962928900092675952032143512196279092521450986819067071570862007086586132687661085824939677603953832219860573980632016025218580608321648907608385784471745482257672314890331358256478273312255285010343369949412955387472116587504557483184506548209831317705115523967163525846685455369176657510129844566195941925821733027993620517287411895496215426174909366458092382652675628195464969405904518323018004882611048769247228828875493680284766874334247375868318795940759082324831733175858991629741478124633015067484305547002438816473086042218906532116413.0) 7357484069649002655190557040768215614708659708788999334802985986235721030962928900092675952032143512196279092521450986819067071570862007086586132687661085824939677603953832219860573980632016025218580608321648907608385784471745482257672314890331358256478273312255285010343369949412955387472116587504557483184506548209831317705115523967163525846685455369176657510129844566195941925821733027993620517287411895496215426174909366458092382652675628195464969405904518323811533652227928708099470007314990032811809824981769024498050965097717850683354763013265517836868076315419135206976119171821799449284713618283106091928690.0)
+  (num-test (- 30958566711373255787092081401292877738974978442987704470984765018293851031728996862405055424093249924047528792113585028592262445810946419909807061004531455817427671594281537965628880611732831524185850161910304038646992464838306728350704966234151134620041799373762432970330864023007632010865749239024802839173884778578927209741320635135275002489733299806669933393428518104197594560039136096527206600870299327752296492029012993590212340409989598323540081430189567580333356380487749078595746626408529223195894600223743978246922817054226858311823994547784553612982586322603593335538875728113115443554199017672360091721648.0 9164115638960783470.0) 30958566711373255787092081401292877738974978442987704470984765018293851031728996862405055424093249924047528792113585028592262445810946419909807061004531455817427671594281537965628880611732831524185850161910304038646992464838306728350704966234151134620041799373762432970330864023007632010865749239024802839173884778578927209741320635135275002489733299806669933393428518104197594560039136096527206600870299327752296492029012993590212340409989598323540081430189567580333356380487749078595746626408529223195894600223743978246922817054226858311823994547784553612982586322603593335538875728113115443554189853556721130938178.0)
+  (num-test (- -22540807692474380279530794404584230073523360203115293035869063366926380719566516089428840111682263403627532047214106171892715667227836310498366393991106231487046533598391969789120283294510723096483520917309134391072655861112766764278247568027435618337967113341863713181603534251049249873125130781073437913954718595729437608729446837417196899902194261111827656247095442897532040935029872731410799530408713850806239149348700486268275019296069828199088780767614008685960242354118969741283398882689239770114582524756296906388861630890288875920861344939520380841337675934551587994259348267613541166769237154904791412049964.0 16928681651977808800.0) -22540807692474380279530794404584230073523360203115293035869063366926380719566516089428840111682263403627532047214106171892715667227836310498366393991106231487046533598391969789120283294510723096483520917309134391072655861112766764278247568027435618337967113341863713181603534251049249873125130781073437913954718595729437608729446837417196899902194261111827656247095442897532040935029872731410799530408713850806239149348700486268275019296069828199088780767614008685960242354118969741283398882689239770114582524756296906388861630890288875920861344939520380841337675934551587994259348267613541166769254083586443389858764.0)
+  (num-test (- -5403850875869356031749551669837202919756114555261706106905659104903792701565965475066159243529680606410723686422444947172225540145977333194008702465610630608545009270872541652430806931212184915840724378685979865349848151917650322286497417985248678815214889868576385900691591784772762893647315325310416150353725001943778473686980157692817497562783521120544549784746647104651038037129984152623720529803205580894126664077380391379306511348324442512538418658728022685805514196592544294177914956734669359073791151050869328577099869772182315103156047405800398706114122356939316464974680113324979723289916823063616573634058.0 -10755560408227106818.0) -5403850875869356031749551669837202919756114555261706106905659104903792701565965475066159243529680606410723686422444947172225540145977333194008702465610630608545009270872541652430806931212184915840724378685979865349848151917650322286497417985248678815214889868576385900691591784772762893647315325310416150353725001943778473686980157692817497562783521120544549784746647104651038037129984152623720529803205580894126664077380391379306511348324442512538418658728022685805514196592544294177914956734669359073791151050869328577099869772182315103156047405800398706114122356939316464974680113324979723289906067503208346527240.0)
+  (num-test (- 16201587974698660164372991183566748501003872177894450603471850345714117528335101264234127789041855420954511595895378320972957964222386731614839583078498685801156670229700092209313747849610762975747730086443186821337319452128253859293962343891549207804191088925361935683615063225197130192492652062735684739784075955094308092423304262201429421582566117390598395895220976999990205945523225411701169301910362640419341608407294018105959688929256136725564385243617240412649023368133778798063226772467915584333795357813292935080009919284755332034998122912861893282865727947810588086156919649131720183722427134042574317487793.0 -126159569916621842.0) 16201587974698660164372991183566748501003872177894450603471850345714117528335101264234127789041855420954511595895378320972957964222386731614839583078498685801156670229700092209313747849610762975747730086443186821337319452128253859293962343891549207804191088925361935683615063225197130192492652062735684739784075955094308092423304262201429421582566117390598395895220976999990205945523225411701169301910362640419341608407294018105959688929256136725564385243617240412649023368133778798063226772467915584333795357813292935080009919284755332034998122912861893282865727947810588086156919649131720183722427260202144234109635.0)
+  (num-test (- -9976758107386398142455037422077809088581080675608340830198269021688955930541332630075972471934165382030070969307731206728197760190279942894255740733209190331510591013089699837164445642396864912572863786290237335963836376543389815671640509582958465164874961381137096877288362944469137669502842448492172241151419831252572392809173900377271652074261706120638052379886108764460001026094198502028776365675088466580595870167840105746912975236851293882732079317535103041585285239081516202482201377111734010788198635874359396626004300532752450289119192633850562141516671742961938277967783337559307443617308447853505824391099.0 13449070890444925581.0) -9976758107386398142455037422077809088581080675608340830198269021688955930541332630075972471934165382030070969307731206728197760190279942894255740733209190331510591013089699837164445642396864912572863786290237335963836376543389815671640509582958465164874961381137096877288362944469137669502842448492172241151419831252572392809173900377271652074261706120638052379886108764460001026094198502028776365675088466580595870167840105746912975236851293882732079317535103041585285239081516202482201377111734010788198635874359396626004300532752450289119192633850562141516671742961938277967783337559307443617321896924396269316680.0)
+  (num-test (- -8570952518585194406209873586517687582701183275108243979199329595605282282125006489076327154374449108678257552384372919282846744626955206382078850958298637157198962032090439427286914716782317030245513658212430127586764421559372214829010306717557679285031617989735914399954286846456953917915955558448774972943731602144914068097214910567329340361564904028964471241318105967747431610163083002382821902859161510204381788262611298660559327478615315484763561786397041779926288206767156863141140852268323253657685018587945456372648431446464389004257999049529945532453598011773843788498650935959375182414447893892341891463988.0 4431555062692055371.0) -8570952518585194406209873586517687582701183275108243979199329595605282282125006489076327154374449108678257552384372919282846744626955206382078850958298637157198962032090439427286914716782317030245513658212430127586764421559372214829010306717557679285031617989735914399954286846456953917915955558448774972943731602144914068097214910567329340361564904028964471241318105967747431610163083002382821902859161510204381788262611298660559327478615315484763561786397041779926288206767156863141140852268323253657685018587945456372648431446464389004257999049529945532453598011773843788498650935959375182414452325447404583519359.0)
+  (num-test (- 4117976000917214601143188578494558474138167055110060832594841842655428229500889876131794484851166401425675703592388271925904534237338595998991043982676292549088043959446082382516734793718348862105938692342851330680670593768890094290655852108130945387988863730762717733881418314989528719379494082656897158942547008663543153236129762264443358316776532465284014215413819415615612452225913947961681691310132286840303081453109375175436902292224029179426794714036524361081174901146731799945483243427138748119832116750910126386838614645397770107366925613473924955965862778639046707637382775371488874447622330992324750207465.0 329466253508616383200261654231797136951.0) 4117976000917214601143188578494558474138167055110060832594841842655428229500889876131794484851166401425675703592388271925904534237338595998991043982676292549088043959446082382516734793718348862105938692342851330680670593768890094290655852108130945387988863730762717733881418314989528719379494082656897158942547008663543153236129762264443358316776532465284014215413819415615612452225913947961681691310132286840303081453109375175436902292224029179426794714036524361081174901146731799945483243427138748119832116750910126386838614645397770107366925613473924955965862778639046707637053309117980258064422069338092953070514.0)
+  (num-test (- 28857935543824608075326348244201981931023939250259142606733822094071772153858420201297951828741003977413353359215638528196235956061529059419904405354390715114239219947402126760298132539402386106279333968395498788354937020337343839325588433318100331044091923709732742795159387846354148919054314582749477292946200912006940503778924320301062789466388997936618573519744795661160190636101768486096961991215006236190655062992372061052426455063703038765465688361316141792840153608145888307784845264037109867657483109819380082597605481013612040648149090345778910883349230476481347645708269410828528742743794495302359380494607.0 126536164564464424337714470705049463978.0) 28857935543824608075326348244201981931023939250259142606733822094071772153858420201297951828741003977413353359215638528196235956061529059419904405354390715114239219947402126760298132539402386106279333968395498788354937020337343839325588433318100331044091923709732742795159387846354148919054314582749477292946200912006940503778924320301062789466388997936618573519744795661160190636101768486096961991215006236190655062992372061052426455063703038765465688361316141792840153608145888307784845264037109867657483109819380082597605481013612040648149090345778910883349230476481347645708142874663964278319456780831654331030629.0)
+  (num-test (- 3146199586408378667812619157270468624370984629500707476575291934586478540055436137993431548830607708293475788354970610669452058906009873485175438772484599603993015239438297747261356407887781450787482447252615210880612867127689283653562498484594955015919746443263740095372831444793239911996227663006098501180972347442107190398034048225264564325230296723559400768342331039755765597288518435463475921534765025262262798267314969774604439319964638461636007229819888743218820584570149249791727508891676067767073852694327748467914037392778283816153183422263956621516748627574334199731850712255885395479903525322397561293553.0 -169494171680584797187706369710105239124.0) 3146199586408378667812619157270468624370984629500707476575291934586478540055436137993431548830607708293475788354970610669452058906009873485175438772484599603993015239438297747261356407887781450787482447252615210880612867127689283653562498484594955015919746443263740095372831444793239911996227663006098501180972347442107190398034048225264564325230296723559400768342331039755765597288518435463475921534765025262262798267314969774604439319964638461636007229819888743218820584570149249791727508891676067767073852694327748467914037392778283816153183422263956621516748627574334199732020206427565980277091231692107666532677.0)
+  (num-test (- -17024716654716744558842421452239026542281806678754026383430912733874686056449261218428541803113383766132449624540209841726047308927951820311213785345168358108138304716549475322223600292513384537980742126687035576531330089447100646214364923043445903103768701639992829171572718403272488931980504461938688955457870904289239032709146514866818331202329982821151580491257491540240579366183525075936339515949345815704583685855315810611089822402567649542290589282153225725537026309623090382054078872576985425957096858376112688308214148412270019118710904983829984589093557307164347051152307499446188262820058714564165108542508.0 -26845770031559702758807696432929071597.0) -17024716654716744558842421452239026542281806678754026383430912733874686056449261218428541803113383766132449624540209841726047308927951820311213785345168358108138304716549475322223600292513384537980742126687035576531330089447100646214364923043445903103768701639992829171572718403272488931980504461938688955457870904289239032709146514866818331202329982821151580491257491540240579366183525075936339515949345815704583685855315810611089822402567649542290589282153225725537026309623090382054078872576985425957096858376112688308214148412270019118710904983829984589093557307164347051152280653676156703117299906867732179470911.0)
+  (num-test (- -20875354448001792153279041347864644172439177882677780548397567327274288309764204295853633150227327732322157811413794613378828291977852467550695289535036337326494269114787031260705326469002279939986228049380615128280814933748700667874022724707001736732724010699175779382411342385842744973636495738468838244099596215421975861650998954057316519632062827510021706536194961332185926551767127180751211669386674770139039516623606727799489291663572125587356845055646322930167536458093283930082765496058330805117442824718962237069840252138957395570892073194575112213410604881673785921789655406716271370732069643455590690035701.0 -321447426701397438572265325285879998363.0) -20875354448001792153279041347864644172439177882677780548397567327274288309764204295853633150227327732322157811413794613378828291977852467550695289535036337326494269114787031260705326469002279939986228049380615128280814933748700667874022724707001736732724010699175779382411342385842744973636495738468838244099596215421975861650998954057316519632062827510021706536194961332185926551767127180751211669386674770139039516623606727799489291663572125587356845055646322930167536458093283930082765496058330805117442824718962237069840252138957395570892073194575112213410604881673785921789333959289569973293497378130304810037338.0)
+  (num-test (- -6750548706930727136186675393752693335334383613941059024795513640678178119089262068912855951615043660442324823673049951182143778744824110223137384940032268718291241014850714197673735719784663896993460156686600813524168487673234842233781654493200950459723884918456280719440022930492599128086690014332139955274261568563155723011697763382009890186816226119314994799655369791620499988988986590903148198659095740939986627235565633349906453726759224441608018598520571182643709143072528030332708598472074166415467718451869993686505339408706320298338691467040585228617379086727764240955696690287600957842671916189752415855520.0 132223863177855649509430852484092802671.0) -6750548706930727136186675393752693335334383613941059024795513640678178119089262068912855951615043660442324823673049951182143778744824110223137384940032268718291241014850714197673735719784663896993460156686600813524168487673234842233781654493200950459723884918456280719440022930492599128086690014332139955274261568563155723011697763382009890186816226119314994799655369791620499988988986590903148198659095740939986627235565633349906453726759224441608018598520571182643709143072528030332708598472074166415467718451869993686505339408706320298338691467040585228617379086727764240955828914150778813492181347042236508658191.0)
+  (num-test (- 15737797902964168014939893286340956118635524170934156177365242966267432695262586636031957242055461736359478270642576860414422844075672388559647477705484719667060463718865742735598799928335211410004369240278699196301127699945374217439676378682879115442203681638050752745036508637214733712716867800216723838016099572951915042604603457902610639317648800296497583507890473114507231814851908526534709496988648572353272479026750068932474334642929727977996779536604912743446197670724757690108283368934769626461285961947257397454619164856011847736479229692086038931510067165282571276049292116713101550911614590774659556899356.0 -6114512833799784097991148713266650451765474382378581896952003894922931741133332233338460555227243451198289670274036744955599177213449957470212981501678055.0) 15737797902964168014939893286340956118635524170934156177365242966267432695262586636031957242055461736359478270642576860414422844075672388559647477705484719667060463718865742735598799928335211410004369240278699196301127699945374217439676378682879115442203681638050752745036508637214733712716867800216723838016099572951915042604603457902610639317648800296497583507890473114507231814851908526534709496988648572353272479026750068932474334642929727977996779536604912749560710504524541788099432082201420078226760344325839294406623059778943588869811463030546594158753518363572241550086037072312278764361572060987641058577411.0)
+  (num-test (- -26633154627863501044020127597209297142657179797586777727331879111280843451446814109347357601013807189824906954310855123313836812409388745541128842840054310853220032505914307470215180950497357091093642400638925719682307925365402618310180378684705799724964274776149984064608716300479893889145492885897234574442542501896696821902329473018442082678749291668341477914681413039643187020003425962922948452894682558162414623956491734656939841377698702802567258906642912449969621455596132708975438173455827361542712483153981422051943690720556013580161324856788091093465837542336129629269227369781823515673967591796132853515009.0 3321161637038961370471515250185392889390643163295535903347391615170504064647249127732639364682803744773593849851778894972403397573953564801884397178069327.0) -26633154627863501044020127597209297142657179797586777727331879111280843451446814109347357601013807189824906954310855123313836812409388745541128842840054310853220032505914307470215180950497357091093642400638925719682307925365402618310180378684705799724964274776149984064608716300479893889145492885897234574442542501896696821902329473018442082678749291668341477914681413039643187020003425962922948452894682558162414623956491734656939841377698702802567258906642912453290783092635094079446953423641220250933355646449517325399335305891060078227410452589427455776269582315929979481048122342185221089627532393680530031584336.0)
+  (num-test (- 27668394897866653012794531261739800318882766882548843941974485394983434533400277607364280566269718161470415771058329222680901477416257843578362127708934184467195154000133252468684612556324066063725677629160438683034201285122508880444372096430021219637788794365539396242345208611990491721052691567092029622640533057073151980959055665792776356282961971341363712186503783566960850166774438868528799819047163739437906559674823146932668464230936946321915236658512741918196732794332451120218658490129307932187658010681746557120172585093207839141764683325214902696969028472942954863209641597556494684135445935915485525220911.0 204625459185084436546676461283890328511903949966691877662249903659689934813784661695047569885195881142676761876303280806728760511429260843727967794322777.0) 27668394897866653012794531261739800318882766882548843941974485394983434533400277607364280566269718161470415771058329222680901477416257843578362127708934184467195154000133252468684612556324066063725677629160438683034201285122508880444372096430021219637788794365539396242345208611990491721052691567092029622640533057073151980959055665792776356282961971341363712186503783566960850166774438868528799819047163739437906559674823146932668464230936946321915236658512741917992107335147366683671982028845417603675754060715054679457922681433517904327980021630167332811773147330266192986906360790827734172706185092187517730898134.0)
+  (num-test (- 18944451653774463090918576081661764936021793389045063662102219434278236461286997354190032851092512146937346521704215170240383659165117708716738711782597164244188741818096207452074083439983059414271417130274747048227795964884943105011205424198661201055104372863019759130697888820715782179466491256695453118035286889359217448004524564796840711987314064158194625731263591557915838970249677548534895064545467992194029425250039951132361639559343536937119283951538321037694842089561504643350632756961329867761604760788760440497535611072991056505806805291706178639395690245460397975614715123591611301423752799666149495108752.0 994321141213369910357526037382331323092462599623554452705525887587326552002660849455542761618020243106424015447778226642816634338781654345001677083881111.0) 18944451653774463090918576081661764936021793389045063662102219434278236461286997354190032851092512146937346521704215170240383659165117708716738711782597164244188741818096207452074083439983059414271417130274747048227795964884943105011205424198661201055104372863019759130697888820715782179466491256695453118035286889359217448004524564796840711987314064158194625731263591557915838970249677548534895064545467992194029425250039951132361639559343536937119283951538321036700520948348134732993106719578998544669142161165205987792009723485664504503145955836163417021375447139036382527836488480774976962642098454664472411227641.0)
+  (num-test (- -25075128489482657321316021943980016828761861550379828525731288423212311433274066958090940464803020097932875912251380196071686918459370667428905844496548191635733867314315152547202859654044591981512687559437417616479425752991419002108503390319869665933757684966460526631533822984311725217788657567199485442486045019468844265484117570385156844404625735176559901986920712550964238722824122000259551821135404274194791706113272773768366572120227974096419295159271316157215551931810740200836725504693738229444336470213883741520460842708733150362983831267583568258736572295448486287825894301201018490203520738439038977754991.0 -7402949251688548738762242219263594861535354011996392637087346760786292549376145193266590582054224293289596877537643409310483743293801574030358189880866069.0) -25075128489482657321316021943980016828761861550379828525731288423212311433274066958090940464803020097932875912251380196071686918459370667428905844496548191635733867314315152547202859654044591981512687559437417616479425752991419002108503390319869665933757684966460526631533822984311725217788657567199485442486045019468844265484117570385156844404625735176559901986920712550964238722824122000259551821135404274194791706113272773768366572120227974096419295159271316149812602680122191462074483285430143367908982458217491104433114081922440600986838638000992986204512279005851608750182484990717275196401946708080849096888922.0)
+  (num-test (- -26509487378481600038412836495388065888781507388737194948728047318975269277448073484403390476243134990463394380967295356958474984927721196047241216945988250219075749832868804186657201899994373052648345989716938779173325348547767647529160988985542438998030764420175306438858518207072038513664360905985908879070216069156102379349899544471658754952888660878997691670566078979940005195987259493512159628198906090101827331841914429358969184839073862821059400943312264269215878469013316796620921077244799814690434355127994011220041638393750697699141479399553359747084811371804524490919966410379714725200415331414459870271869.0 -9247155945465656153397925559476432992975541781462281935278489123804934847762489500833913193183733932905776020790478662969835879365116238125565077744775032.0) -26509487378481600038412836495388065888781507388737194948728047318975269277448073484403390476243134990463394380967295356958474984927721196047241216945988250219075749832868804186657201899994373052648345989716938779173325348547767647529160988985542438998030764420175306438858518207072038513664360905985908879070216069156102379349899544471658754952888660878997691670566078979940005195987259493512159628198906090101827331841914429358969184839073862821059400943312264259968722523547660643222995517768366821714892573665712075941552514588815849936651978565640166563350878466028503700441303440543835360084177205849382125496837.0)
+  (num-test (- -17010604274474750006607667808593883725990508452473783283717890546525148212376267233909567638545898628257361383837671935903199638230375408397752251127816717091041943873728526445398525706450929660366518707254053655364610471112296477865068960744948010561798109833411657930112293904378353445961131058136287425064317621271289456901138718557297733713446119244533144377470099270824020439428168481914824420861176457152299497728390918971852021025089592998997807574907789524112450146545688385954763667980124432645276563626082835790429598328230426471161191074551543308732791287559033843466623138171520961684959997180979203053477.0 -17319079025684619178510812811805110270463447771889107440996086020812918555191263705580533644731591929176480040622705607552852994906782176254877135818109655911838591767583157894999741648979817400330572419476101372927546509769818404491634583907246692993992514876697330603464497645633398167129555001859772111887143352351860130929715392173452396253437927361301990735683539169040916027268831202732178553152351117118606495416985612909248422655861312689027789401950549626643389790516560291620711705848717875304929186131258525831197192620523261738944873398924939726689336762464320190834794155527335576391767307110012289717973.0) 308474751209869171903145003211226544472939319415324157278195474287770342814996471670966006185693300919118656785033671649653356676406767857124884690292938820796647893854631449601215942528887739964053712222047717562936038657521926626565623162298682432194405043285672673352203741255044721168423943723484686822825731080570674028576673616154662539991808116768846358213439898216895587840662720817354132291174659966306997688594693937396401630771719690029981827042760102530939643970871905665948037868593442659652622505175690040767594292292835267783682324373396417956545474905286347368171017355814614706807309929033086664496.0)
+  (num-test (- -28362352496476494327713713233021518136860402239251781438945998574753662942796270292818595738100959519541952077905620088422871490191217157269435052965329201030095268586136492980900212955645939325800541690754639292707053269767151001292253701853012092829784482071789669480438026889625605099744553642207773753943711175375843649210118677569597324789367425691177169929576236753018329085700397911235750600921874606148324025962628852167093806152864269874177214562322576097931390470469397118268354868919899638376323751276807304678316688836173746719723312665764603485606350244811113608471530958617108833879194264695174468397461.0 -4081062111675377984305281082755054920741203741273067094307824323728798665450292976016160959354997082250970415737745853292134965575242789548167162064123232363464302136338349828801951197252612093077640695564825095503535921549690447893467349156939791370286866987224201115453216606688305427702274940837032716124925028835914047967887674858015919302546781010326385758988488478290741665427521820112231266659657169118374988259423444686317389869729817643396097464874333968181509317307320406521221309011946212308190273531009796563611621389720223920155554879800901239072885025170342349379379336047732368458185953903872634982504.0) -24281290384801116343408432150266463216119198497978714344638174251024864277345977316802434778745962437290981662167874235130736524615974367721267890901205968666630966449798143152098261758393327232722900995189814197203517348217460553398786352696072301459497615084565468364984810282937299672042278701370741037818786146539929601242231002711581405486820644680850784170587748274727587420272876091123519334262217437029949037703205407480776416283134452230781117097448242129749881153162076711747133559907953426068133477745797508114705067446453522799567757785963702246533465219640771259092151622569376465421008310791301833414957.0)
+  (num-test (- 10367142604728811799331249565431331488313655422005202933702176605382043644320209814639311439871418581341534233560256605231366966869093495784665834232350567124110194965198962966795893926025854156729633358240069116588609932539289897499402463770167927610848388138020589286461244557962368497723086593344721146859584146431437967506007518396464517349944129896971137720357645026281243138165214047233258394590454775153944241555543594427555914116439316287902470043292624597940465373006598913770411505099332700167695871387948271302951230983772351549087620538875967635100644404345317626621438913980275970160864401622986870735123.0 -13323117602411502623386235160326625769048477819798659261203460002048250420188223753407093545503703207645050883770850457071863684414849353264890601744588860687970804808452855795406182324143949747985869939791374195222513169904228914579995165180964917538177994190229733465224857616114628815752065632238207474599531507602861647623695058640735949593381112671690796335596142010430124683781417828023076027476816068202219709673411776556090962187853799456968290579708094595903778622705850818245685205707447012659247018940946510378371952655457988959551256869060428488498330109152756599450626641948447980234503249330875085656261.0) 23690260207140314422717484725757957257362133241803862194905636607430294064508433568046404985375121788986585117331107062303230651283942849049556435976939427812080999773651818762202076250169803904715503298031443311811123102443518812079397628951132845149026382328250322751686102174076997313475152225582928621459115654034299615129702577037200466943325242568661934055953787036711367821946631875256334422067270843356163951228955370983646876304293115744870760623000719193844243995712449732016096710806779712826942890328894781681323183639230340508638877407936396123598974513498074226072065555928723950395367650953861956391384.0)
+  (num-test (- -25321281404861286799950777949097462701962113587443565138655462269365151737118518315058035825695270231347401755128007072923189452859397209062457461602335603630181865680063451525170253746137368267674863889514153713728814272332433431604233690200451816570240227260445028630591376891139306370205846627093813889699170594185178241812081296510140572331372738998993116117098817936927692238682202717231675283209016857095739468507690090676681400453024293870135659990528969837132054786661560150259115734877162158755858653364070279937027014730947342216816307219127474721622123875699701715404820384545693058511056735799834754890692.0 -15870257059811626693754498423136372480069134596343998984549199283973854570508228359295418026089909378687774627821225399931314225867711515277913855368473873536462450935842786002269065816311054834857109074848803122494252885020527074586145467185882674518032764708782999568002770206995683800833252068328835778749976046128872525287656002968632147457840467536682726059599593635219947081138082647985895437016641903078766878782632503812736486529143041369932038649270950453231711525943737962179463585338023463992816994328519710963267459007592689204838965317062070771191372220277256094361390952025057574056586665509010902583686.0) -9451024345049660106196279525961090221892978991099566154106262985391297166610289955762617799605360852659627127306781672991875226991685693784543606233861730093719414744220665522901187929826313432817754814665350591234561387311906357018088223014569142052207462551662029062588606684143622569372594558764978110949194548056305716524425293541508424873532271462310390057499224301707745157544120069245779846192374954016972589725057586863944913923881252500203621341258019383900343260717822188079652149539138694763041659035550568973759555723354653011977341902065403950430751655422445621043429432520635484454470070290823852307006.0)
+  (num-test (- -10064759312484387184876313010284016458560725440641239737323234767636591183611201479885347260175161165340917225306019885202675573016295152797559983194160634880140345743489989007821872426587698574795394887035658449467358615185057180305109018898637903449135520486663185036663238956537895356325733583128141439025002140924158670346599492383552938312402521066705186885506193758499006001382444818328802338159713646715901977137011576113434170842422373328479181457354927400927267448788528116619711184792932525071391797130057189079431487557270366699175956757661488296856660145077706273571985222726397848614141194988258117115194.0 -3689074607001776735792882994440038588887963294487080609346609068733026224735369468180206799966728461935654851527895876039403151156669223687679382665269013769686991783531091821265184956524448064027733731862929686596729449196238312997460578818232100254940830907672953344544031914926653652310468671685310332327057444910423081752028857828828473637496272809899061573593874011995802487442092326045415689987885712749026491545159340468151000027397821404233369034594141219014219707193746581364791219277489927025992135462852894714639406751538919395016165215641239054420028872350709704191189169571752512626755385998505584006855.0) -6375684705482610449083430015843977869672762146154159127976625698903564958875832011705140460208432703405262373778124009163272421859625929109880600528891621110453353959958897186556687470063250510767661155172728762870629165988818867307648440080405803194194689578990231692119207041611241704015264911442831106697944696013735588594570634554724464674906248256806125311912319746503203513940352492283386648171827933966875485591852235645283170815024551924245812422760786181913047741594781535254919965515442598045399661667204294364792080805731447304159791542020249242436631272726996569380796053154645335987385808989752533108339.0)
+  (num-test (- -4621513851362114851854472268081584822344822740665629177305004335694395719163541988311496405455186973857145245414214464449674464879082042971313025249648887349614046805778335573547862191522938924075560443632614665169520240664970180760364771373836023824195690134618554368845612471858027311791638881380352344527105480173917778084361560336490212845414303819150625355111300877737042696291233444311426721588476948565949641149735838580313236869041013210454558557732497012037162735013212361842433337324577522358968152852532145622765032318936569346015498130151789662274686368870963891262060214274101000058555635785833724062234.0 20283847238128227963042817384468009365120280641032764409860857066215336820785816567924217697745867082423864450685360959383940995237907453126362378908108545669654749698030305432673477271848544313029448526561606175059997663752601262173667861202924953502866611309434183496911206954880840674239880495147451496219568787221129244201657487090244435562896841733049066453539864301122516559479757096183362477594406691085946787803323712522074578611082872627361465163804239673539339633332349145205596371287028267780080937728455742966681547897652607170788637996317683436193829274172400558140357237480809582038468874094877651383053.0) -24905361089490342814897289652549594187465103381698393587165861401909732539949358556235714103201054056281009696099575423833615460116989496097675404157757433019268796503808641006221339463371483237105008970194220840229517904417571442934032632576760977327062301444052737865756819426738867986031519376527803840746674267395047022286019047426734648408311145552199691808651165178859559255770990540494789199182883639651896428953059551102387815480123885837816023721536736685576502368345561507048029708611605790139049090580987888589446580216589176516804136126469473098468515643043364449402417451754910582097024509880711375445287.0))
 
 (test (- - 1) 'error)
 (test (-) 'error)
@@ -75911,12 +75703,10 @@ but it's the printout that is at fault:
 (num-test (/ 2/9223372036854775807 2) 1/9223372036854775807)
 (num-test (/ -63/288230376151711744 -63) 1/288230376151711744)
 
-(if (not with-bignums)
-    (begin
-      (num-test (/ 1/2305843009213693952 -1 4194304/2097151) -2.168403310995243176730312012479018335398E-19)
-      (num-test (/ 1/2199023255552 -63 8388608/4194303) -3.609105098938467225452985162735872325445E-15)
-      (num-test (/ 1/17179869184 -1 1073741824/536870911) -2.91038304025235949890060282996273599565E-11)
-      ))
+(unless with-bignums
+  (num-test (/ 1/2305843009213693952 -1 4194304/2097151) -2.168403310995243176730312012479018335398E-19)
+  (num-test (/ 1/2199023255552 -63 8388608/4194303) -3.609105098938467225452985162735872325445E-15)
+  (num-test (/ 1/17179869184 -1 1073741824/536870911) -2.91038304025235949890060282996273599565E-11))
 
 (for-each-permutation 
  (lambda args
@@ -76118,10 +75908,8 @@ but it's the printout that is at fault:
 (num-test (/ -8.847946637724495E-21 6.33827952828724E-21) -1.395953996386055439061738621964402924048E0)
 
 (when with-bignums ; from futilitycloset I think
-  (let ((oldp (*s7* 'bignum-precision)))
-    (set! (*s7* 'bignum-precision) 2048)
-    (test (object->string (/ 1.0 999999999999999999999998999999999999999999999999)) "1.00000000000000000000000100000000000000000000000200000000000000000000000300000000000000000000000500000000000000000000000800000000000000000000001300000000000000000000002100000000000000000000003400000000000000000000005500000000000000000000008900000000000000000000014400000000000000000000023300000000000000000000037700000000000000000000061000000000000000000000098700000000000000000000159700000000000000000000258400000000000000000000418100000000000000000000676500000000000000000001094600000000000000000001771100000000000000000002865700000000000000000004636800000000000000000007502500000000000000000012139300000000000000001E-48")
-    (set! (*s7* 'bignum-precision) oldp)))
+  (let-temporarily (((*s7* 'bignum-precision) 2048))
+    (test (object->string (/ 1.0 999999999999999999999998999999999999999999999999)) "1.00000000000000000000000100000000000000000000000200000000000000000000000300000000000000000000000500000000000000000000000800000000000000000000001300000000000000000000002100000000000000000000003400000000000000000000005500000000000000000000008900000000000000000000014400000000000000000000023300000000000000000000037700000000000000000000061000000000000000000000098700000000000000000000159700000000000000000000258400000000000000000000418100000000000000000000676500000000000000000001094600000000000000000001771100000000000000000002865700000000000000000004636800000000000000000007502500000000000000000012139300000000000000001E-48")))
 
 (for-each
  (lambda (num-and-val)
@@ -76145,273 +75933,269 @@ but it's the printout that is at fault:
 (num-test (/ (/ -1 most-positive-fixnum)) (- most-positive-fixnum))
 (num-test (/ (/ most-positive-fixnum) 1) 1/9223372036854775807) ; why isn't this a ratio in the non-bignum case?
 
-(if (not with-bignums)
-    (begin
-      (num-test (/ -1024 1/9765625 1/512 1/1953125) -1e19)
-      (num-test (/ 1/19073486328125 -524288) -1e-19)
-      (num-test (/ 1/19073486328125 524288) 1e-19)
-      (num-test (/ 1/524288 -19073486328125) -1e-19)
-      (num-test (/ 1/524288 19073486328125) 1e-19)
-      (num-test (/ 1/9223372036854775807 1/3) 3.2526065174565e-19)
-      (num-test (/ 1/9223372036854775807 1/9223372036854775806) 1.0)
-      (num-test (/ 1/98947 2/97499 3/76847 4/61981 5/59981 6/66601) 2.6040239996689e+16)
-      (num-test (/ 1/98947 2/97499 3/76847 4/61981 5/59981) 2345932343059.9)
-      (num-test (/ 1/98947 2/97499 3/76847 4/61981) 464392992878593/2374728) ;195556288.07955 -- seems to fit
-      (num-test (/ 1024 1/9765625 1/512 1/1953125) 1e19)
-      (num-test (/ 500009/500029 500057/500041 500083/500069) 0.999900013909921)
-      (num-test (/ 98947 2/97499 76847 4/61981 5/59981) 11667778186668.0)
-      (num-test (/ 3037000500 1/3037000500) 9.22337203700025E18)
-      ))
+(unless with-bignums
+  (num-test (/ -1024 1/9765625 1/512 1/1953125) -1e19)
+  (num-test (/ 1/19073486328125 -524288) -1e-19)
+  (num-test (/ 1/19073486328125 524288) 1e-19)
+  (num-test (/ 1/524288 -19073486328125) -1e-19)
+  (num-test (/ 1/524288 19073486328125) 1e-19)
+  (num-test (/ 1/9223372036854775807 1/3) 3.2526065174565e-19)
+  (num-test (/ 1/9223372036854775807 1/9223372036854775806) 1.0)
+  (num-test (/ 1/98947 2/97499 3/76847 4/61981 5/59981 6/66601) 2.6040239996689e+16)
+  (num-test (/ 1/98947 2/97499 3/76847 4/61981 5/59981) 2345932343059.9)
+  (num-test (/ 1/98947 2/97499 3/76847 4/61981) 464392992878593/2374728) ;195556288.07955 -- seems to fit
+  (num-test (/ 1024 1/9765625 1/512 1/1953125) 1e19)
+  (num-test (/ 500009/500029 500057/500041 500083/500069) 0.999900013909921)
+  (num-test (/ 98947 2/97499 76847 4/61981 5/59981) 11667778186668.0)
+  (num-test (/ 3037000500 1/3037000500) 9.22337203700025E18))
 
-(if with-bignums
-    (begin
-      (num-test (/ 1/9223372036854775807 1+1i 1-1i) 5.421010862427522170625011179760852311177E-20)
-      (num-test (/ (/ 1 most-positive-fixnum) most-negative-fixnum) -1/85070591730234615856620279821087277056)
-      (num-test (/ 1.0e308+1.0e308i 2.0e308+2.0e308i) (/ 1.0e307+1.0e307i 2.0e307+2.0e307i))
-      (num-test (/ (+ 1.2345e-15 1 -1)) 8.1004455245038e+14)
-      (num-test (/ -1.797693134862315699999999999999999999998E308 -9223372036854775808) 1.949062802279999590850112500817203908808E289)
-      (num-test (/ -1/19073486328125 524288) -1/10000000000000000000)
-      (num-test (/ -1/524288 19073486328125) -1/10000000000000000000)
-      (num-test (/ -1024 1/9765625 1/512 1/1953125) -10000000000000000000)
-      (num-test (/ -21 -1/2432902008176640000) 51090942171709440000)
-      (num-test (/ -21 1/2432902008176640000) -51090942171709440000)
-      (num-test (/ -2432902008176640000 -1/21) 51090942171709440000)
-      (num-test (/ -2432902008176640000 1/21) -51090942171709440000)
-      (num-test (/ -9223372036854775808 -9223372036854775808 -9223372036854775808) -1/9223372036854775808)
-      (num-test (/ -9223372036854775808 -9223372036854775808) 1)
-      (num-test (/ -9223372036854775808 9223372036854775807 -9223372036854775808) 1/9223372036854775807)
-      (num-test (/ 0+1e20i 0-1e20i) -1.0)
-      (num-test (/ 1 1000000000 1000000000 1000000000) 1/1000000000000000000000000000)
-      (num-test (/ 1.0e20+i 1.0e20+i) 1.0)
-      (num-test (/ 1/1024 9765625 -512 1953125) -1/10000000000000000000)
-      (num-test (/ 1/1024 9765625 512 1953125) 1/10000000000000000000)
-      (num-test (/ 1/19073486328125 524288) 1/10000000000000000000)
-      (num-test (/ 1/524288 19073486328125) 1/10000000000000000000)
-      (num-test (/ 1/9223372036854775807 1/3) 3/9223372036854775807)
-      (num-test (/ 1/9223372036854775807 1/9223372036854775806) 9223372036854775806/9223372036854775807)
-      (num-test (/ 1/98947 2/97499 3/76847 4/61981 5/59981 6/66601) 1855154611405774907304533/71241840)
-      (num-test (/ 1/98947 2/97499 3/76847 4/61981 5/59981) 27854756105850886733/11873640)
-      (num-test (/ 1024 1/9765625 1/512 1/1953125) 10000000000000000000)
-      (num-test (/ 132120577/12 33292289/6 260046847/4) 264241154/8657554783862783)
-      (num-test (/ 1e20 0+i) 0-1e20i)
-      (num-test (/ 21 -1/2432902008176640000) -51090942171709440000)
-      (num-test (/ 21 1/2432902008176640000) 51090942171709440000)
-      (num-test (/ 2432902008176640000 -1/21) -51090942171709440000)
-      (num-test (/ 2432902008176640000 1/21) 51090942171709440000)
-      (num-test (/ 500009/500029 500057/500041 500083/500069) 125029751909525461/125042254395637199)
-      (num-test (/ 9223372036854775807 -9223372036854775808) -9223372036854775807/9223372036854775808)
-      (num-test (/ 98947 2/97499 76847 4/61981 5/59981) 35865350012435458633/3073880)
-      (num-test (/ most-negative-fixnum) -1/9223372036854775808)
-      (num-test (/ 10105597264942543888 14352488138967388642) 5052798632471271944/7176244069483694321)
-      (num-test (/ -17631701977702695093 3931860028646338313) -17631701977702695093/3931860028646338313)
-      (num-test (/ -1606495881715082381 16324360910828438638) -1606495881715082381/16324360910828438638)
-      (num-test (/ -7960193178071300653 -10280747961248435844) 7960193178071300653/10280747961248435844)
-      (num-test (/ -11544909483975853384 -16041992360613233027) 11544909483975853384/16041992360613233027)
-      (num-test (/ -5758820541298901548 -2596462557714095861) 5758820541298901548/2596462557714095861)
-      (num-test (/ -13056342734667572546 46502284983183419157350605242474199851) -13056342734667572546/46502284983183419157350605242474199851)
-      (num-test (/ 12668118634717482325 -338544675918656078399121171905238525746) -12668118634717482325/338544675918656078399121171905238525746)
-      (num-test (/ -16738429327795346815 164053836541028518093058940786011794219) -16738429327795346815/164053836541028518093058940786011794219)
-      (num-test (/ -9884600460121235549 -53914696297933680001835530599748561584) 9884600460121235549/53914696297933680001835530599748561584)
-      (num-test (/ 6753521264659576004 71759828079371803409570464915096122874) 3376760632329788002/35879914039685901704785232457548061437)
-      (num-test (/ -6072478784520825268 83641961138289700975241455431547940418) -3036239392260412634/41820980569144850487620727715773970209)
-      (num-test (/ -6708950756971973620 -9847903810677323447803434015107261150885944735136350527205856921771320298384705376646797569973415403097847060539915279223391112430240736564839483430569706) 3354475378485986810/4923951905338661723901717007553630575442972367568175263602928460885660149192352688323398784986707701548923530269957639611695556215120368282419741715284853)
-      (num-test (/ 11263779860755455072 2292311486393743282743453705144070351222990311578446825826935237655927864700827857707370158936582804478427014131790879562565658386819339761919809732496450) 1877296643459242512/382051914398957213790575617524011725203831718596407804304489206275987977450137976284561693156097134079737835688631813260427609731136556626986634955416075)
-      (num-test (/ 9956488981426387585 -12351244248621474338537656633137999145154500022264356186225225426288301330225259889671144104952158102155582320296061124840400655528634050137479515338944145) -1991297796285277517/2470248849724294867707531326627599829030900004452871237245045085257660266045051977934228820990431620431116464059212224968080131105726810027495903067788829)
-      (num-test (/ -14875992781716065391 4906952781757522095285156014969507916562921709689447567404076064849249737893410245743456952512717420040816186768213920574809530298070437840356629617118643) -2125141825959437913/700993254536788870755022287852786845223274529955635366772010866407035676841915749391922421787531060005830883824030560082115647185438633977193804231016949)
-      (num-test (/ 16043178952268979636 -4962728781666935768923030490263743715131420507991284894489828489607808897271220927863958149140648859077934323268424257800724618076505149638049461104621679) -5347726317422993212/1654242927222311922974343496754581238377140169330428298163276163202602965757073642621319383046882953025978107756141419266908206025501716546016487034873893)
-      (num-test (/ -14889985628902581941 3075736124701105220602924325296812116294816310089906623707854625135862902005059305428034753787024827094954645083406870532379125275086885405969947540175361) -14889985628902581941/3075736124701105220602924325296812116294816310089906623707854625135862902005059305428034753787024827094954645083406870532379125275086885405969947540175361)
-      (num-test (/ -1719613957783789857 19860562547348050982501313785551054055826630539673708970554435103060535649825139319625648954889488501680865494719253019921780044205805557658109807483499994523398090829033362953135186523580359552555144614353929273831853529446536288544481045105104526669277307473478898498061888931858821517694257595658138564305517447595298378933983614114298000880741350618424855028965861930329619462261269994651112266861896630584883581092431090390354633458596611690990999635499563944625720180529318327647519405136188243979680965052005899543797270970540925042201315580510136864931200059448645464256385079735225156720340173280541113382758) -1719613957783789857/19860562547348050982501313785551054055826630539673708970554435103060535649825139319625648954889488501680865494719253019921780044205805557658109807483499994523398090829033362953135186523580359552555144614353929273831853529446536288544481045105104526669277307473478898498061888931858821517694257595658138564305517447595298378933983614114298000880741350618424855028965861930329619462261269994651112266861896630584883581092431090390354633458596611690990999635499563944625720180529318327647519405136188243979680965052005899543797270970540925042201315580510136864931200059448645464256385079735225156720340173280541113382758)
-      (num-test (/ -10969623867482498359 1292477254230352575769754773488799598312602810841892384475535212194939033905139960602724737178675944133847094464739764817257836826367652752931492512753561670732296265459534230949226553571982695924178928914002527460943582374603078611662312521259541641138419845784008028215876048965254023368247445173694441960256131358058174374542730502334351759171930973722361567186133851896057677818979314942434199157003833234473048838906103902832115569853657335216793235394595479328932380393044485884605451918890395812628720641212850763944658735838941829604119213195707479940053016354291972875689927240247563236506479099606571912595) -10969623867482498359/1292477254230352575769754773488799598312602810841892384475535212194939033905139960602724737178675944133847094464739764817257836826367652752931492512753561670732296265459534230949226553571982695924178928914002527460943582374603078611662312521259541641138419845784008028215876048965254023368247445173694441960256131358058174374542730502334351759171930973722361567186133851896057677818979314942434199157003833234473048838906103902832115569853657335216793235394595479328932380393044485884605451918890395812628720641212850763944658735838941829604119213195707479940053016354291972875689927240247563236506479099606571912595)
-      (num-test (/ -3716891004757979686 -19452372993227550502015765258932159656814363741878583541173956168837566077148160901999018823586675966076058615847408138956450751813058209394199427182041779436168298455103717521843644244801542056954603631432685194627158423459586845252167819811850263444712218938833443253125954475476481099092216538126519474183531297423759923656571895377587989169731023397615799830371852298135015608612181670362528239430952907458704415974164085176066242388561893721949244663406941558257051263727439679525692652639731850971185056484335828001005009903973037524233097329857690857731943951449292814500362180170793919266389501882641682782987) 3716891004757979686/19452372993227550502015765258932159656814363741878583541173956168837566077148160901999018823586675966076058615847408138956450751813058209394199427182041779436168298455103717521843644244801542056954603631432685194627158423459586845252167819811850263444712218938833443253125954475476481099092216538126519474183531297423759923656571895377587989169731023397615799830371852298135015608612181670362528239430952907458704415974164085176066242388561893721949244663406941558257051263727439679525692652639731850971185056484335828001005009903973037524233097329857690857731943951449292814500362180170793919266389501882641682782987)
-      (num-test (/ -4863232114852441787 -22963038454503597269981750990033903654256693514059439027985256604978917966584414065892146187253799108250061573972673983350956191446047978392921074610323648301008272837432907303975548030552369880338022067315042332692023645592417869181836251486577977896077712912433381480614752789750181208326525834629219729662085632321271870762094800588296544243340047360684854239747242066367921596241226349790282723168222543448385227922748241223520686047460119733024390425165073367321644498280127168757335614077882325524816799960018589278475564547840614315473357481582710826551932681173443524724802157570101916268510464302946527662720) 4863232114852441787/22963038454503597269981750990033903654256693514059439027985256604978917966584414065892146187253799108250061573972673983350956191446047978392921074610323648301008272837432907303975548030552369880338022067315042332692023645592417869181836251486577977896077712912433381480614752789750181208326525834629219729662085632321271870762094800588296544243340047360684854239747242066367921596241226349790282723168222543448385227922748241223520686047460119733024390425165073367321644498280127168757335614077882325524816799960018589278475564547840614315473357481582710826551932681173443524724802157570101916268510464302946527662720)
-      (num-test (/ -16248276650501285553 -3381199474840825715485713565301777938368574604710714363907009216856320913536015299178065264912798511857598595067318796576494480424838898250138649774858742984769125731728430552285782315111538920026330816414650913188340281906359149109963139438960274321560117812365241840204034925444652058916966934904097509799291744775242863360284348334605170437300543978049053839829106628489146216325576991696936733592366926096500684308845306493636196092408597450926695579897293944488261001228478152650490677071497874746121221519036861983646423005753475340900508665494162949119110128646472783016552527735050067363030838015919512260159) 16248276650501285553/3381199474840825715485713565301777938368574604710714363907009216856320913536015299178065264912798511857598595067318796576494480424838898250138649774858742984769125731728430552285782315111538920026330816414650913188340281906359149109963139438960274321560117812365241840204034925444652058916966934904097509799291744775242863360284348334605170437300543978049053839829106628489146216325576991696936733592366926096500684308845306493636196092408597450926695579897293944488261001228478152650490677071497874746121221519036861983646423005753475340900508665494162949119110128646472783016552527735050067363030838015919512260159)
-      (num-test (/ 18296946401228630959 3302341071702763311560113831030141639804425031433511503765833897787925467295486187687396312611805794369889470239777040624530990622212474466940548049117664906468330871893337410618797113677420975837622378808494314918471282099855916016026079371666730617071364751834080179173620476977670099126230223862266413091012344741482772771219725893630556702028108027870656512750807359335108428687238687397060104669074315031780019301768744978815422943986587389425726602444937024004102212071953113581935989741954695450085391443134273670514145585869912689150728183940456773133212037846765421397201956541430155664614978559762638030787) 494512064898071107/89252461397371981393516590027841665940660135984689500101779294534808796413391518586145846286805562009997012709183163260122459206005742553160555352678855808282927861402522632719426949018308675022638442670499846349147872489185295027460164307342344070731658506806326491329016769648045137814222438482763957110567901209229264128951884483611636667622381298050558284128400198900948876451006451010731354180245251757615676197345101215643660079567205064579073691957971270919029789515458192258971242965998775552705010579544169558662544475293781424031100761728120453327924649671534200578302755582200815017962566988101692919751)
-      (num-test (/ -60488682170925814337492051725122486652 14880088785789146426) -30244341085462907168746025862561243326/7440044392894573213)
-      (num-test (/ 126617729996196635247771282957911941277 -7166506344996883172) -126617729996196635247771282957911941277/7166506344996883172)
-      (num-test (/ -278675896803726074870988122161067771390 7744689831802931490) -27867589680372607487098812216106777139/774468983180293149)
-      (num-test (/ -283351838662873779255871649630248958879 6912311315831153835) -14913254666467041013466928927907839941/363805858727955465)
-      (num-test (/ -9715584046609700027352634666499181378 3368831995960494221) -9715584046609700027352634666499181378/3368831995960494221)
-      (num-test (/ -137493547985106345282009151869389470397 -1916381539906956855) 137493547985106345282009151869389470397/1916381539906956855)
-      (num-test (/ -328662747577960331872949773416436800743 -231069430804205460334599495337085157308) 328662747577960331872949773416436800743/231069430804205460334599495337085157308)
-      (num-test (/ 213595640581249636406536485951630735277 -48492294677143227478357598229530842959) -213595640581249636406536485951630735277/48492294677143227478357598229530842959)
-      (num-test (/ 85922846498729014445816145204889624189 193533957681757355413031965695625196813) 85922846498729014445816145204889624189/193533957681757355413031965695625196813)
-      (num-test (/ 24053342958857142686054803491202486471 196417511107100936775397820630955772553) 24053342958857142686054803491202486471/196417511107100936775397820630955772553)
-      (num-test (/ 102038936612518756467074084117019701214 -111946989731587760700903475996379168167) -102038936612518756467074084117019701214/111946989731587760700903475996379168167)
-      (num-test (/ -3006867214208872584699983438179656913 -234257597822744479264249663225224173340) 3006867214208872584699983438179656913/234257597822744479264249663225224173340)
-      (num-test (/ -279839802710533516603863620922251878907 -3244112647743502769852782626803305310331045534071805654982307107362388474314396636799597033636575215617240554815450017779373048313695795886893032630263219) 279839802710533516603863620922251878907/3244112647743502769852782626803305310331045534071805654982307107362388474314396636799597033636575215617240554815450017779373048313695795886893032630263219)
-      (num-test (/ 123635964546481689465778244982425098404 7701433613491146708866098469269971554817017737111287276993583150548359764165526640986060909954451793171933304569726872785964805121981749276421956645830854) 61817982273240844732889122491212549202/3850716806745573354433049234634985777408508868555643638496791575274179882082763320493030454977225896585966652284863436392982402560990874638210978322915427)
-      (num-test (/ 166158110049010486343321316578688184578 4093720847216792748840371965199135052196058344862447621818024731938681519017878880275303125899149558774718190527651555811733139227128378041055212888819294) 83079055024505243171660658289344092289/2046860423608396374420185982599567526098029172431223810909012365969340759508939440137651562949574779387359095263825777905866569613564189020527606444409647)
-      (num-test (/ 147416259636838312272435267341375281181 -11266711292262839805944890501811605204323255169233519804446548849178247889563130015168799346120099052214488209897402054530713234143622703174309015777885801) -147416259636838312272435267341375281181/11266711292262839805944890501811605204323255169233519804446548849178247889563130015168799346120099052214488209897402054530713234143622703174309015777885801)
-      (num-test (/ 102557200511608632541115941654031896919 3866177549962722728707550488877109233779215384377007088712280650225992470307822792085413087509167847767889824884877044539352696974351192629898363157976511) 102557200511608632541115941654031896919/3866177549962722728707550488877109233779215384377007088712280650225992470307822792085413087509167847767889824884877044539352696974351192629898363157976511)
-      (num-test (/ 47794953079190110032282671989549362415 3802290983508829335098916118339496411537222492645529399519373082799614656011270200284796148989094312601047370399228868583158444769807910513767845541589667) 47794953079190110032282671989549362415/3802290983508829335098916118339496411537222492645529399519373082799614656011270200284796148989094312601047370399228868583158444769807910513767845541589667)
-      (num-test (/ -169956065319483471022234920202991103615 -9934427489865644196610501807375648335352544234206717324511161205173460054921759084767897792996557220898467288533128078406604709773449948420404563411793533441010236017064154469575084055359823982786110746700747423674942932421964955746280671982635899487781780756099620799397239156211815110739544719746684712086075069101799537802834839550142629064374734870047412916259754010150500874430055034366305216104752636211802195447299210332237598443674867760860326529472901775427058078447963316168327741049511844237329137194533000697525539835371015163158135757326482343130221118201740819963770851200676279882978581431999960842565) 33991213063896694204446984040598220723/1986885497973128839322100361475129667070508846841343464902232241034692010984351816953579558599311444179693457706625615681320941954689989684080912682358706688202047203412830893915016811071964796557222149340149484734988586484392991149256134396527179897556356151219924159879447831242363022147908943949336942417215013820359907560566967910028525812874946974009482583251950802030100174886011006873261043220950527242360439089459842066447519688734973552172065305894580355085411615689592663233665548209902368847465827438906600139505107967074203032631627151465296468626044223640348163992754170240135255976595716286399992168513)
-      (num-test (/ -83006311763073652927964071041666508273 13480787677843057038436344704360462056114592749322481662307876594244244638227291805757775026215166740035048814729231681821563443093991755779505400592913963236010573873554317250153995160235771659208137440518282824497744092608999871327127239673370293239927529076145825972430101380272357235582367639159280348164804218713823424182167974242317526959809443701996053548231667727254858428867000011055354779789221097183515832386890638024105232865079002765479933320220378271026425568216748186200736499581088153390350474814123049637951929317200314355414551809067125550551841102097159644340520444983020267926123546444838010089690) -83006311763073652927964071041666508273/13480787677843057038436344704360462056114592749322481662307876594244244638227291805757775026215166740035048814729231681821563443093991755779505400592913963236010573873554317250153995160235771659208137440518282824497744092608999871327127239673370293239927529076145825972430101380272357235582367639159280348164804218713823424182167974242317526959809443701996053548231667727254858428867000011055354779789221097183515832386890638024105232865079002765479933320220378271026425568216748186200736499581088153390350474814123049637951929317200314355414551809067125550551841102097159644340520444983020267926123546444838010089690)
-      (num-test (/ -312626207169475064151212222217866488926 6989069923898656093413456232544365450599471748502878018530391549015151484336014906416216966193568842618920902504390187814247729346977677905224098932673981665869061845335443588666641982676550205160521286690015544764015602751932938178737949961754714143180917985455875095030469699198116593730005119922928175789172042067281849364217595912265452199938281052984802042194034638773435768458457616208103331213440768472281882976004050012769415198321241810008696147179275528426468408383757692656341606162350211696837361434874035354680073309142183699892959618671515841112321607728427286289324836870027735590091451421689980776552) -52104367861579177358535370369644414821/1164844987316442682235576038757394241766578624750479669755065258169191914056002484402702827698928140436486817084065031302374621557829612984204016488778996944311510307555907264777773663779425034193420214448335924127335933791988823029789658326959119023863486330909312515838411616533019432288334186653821362631528673677880308227369599318710908699989713508830800340365672439795572628076409602701350555202240128078713647162667341668794902533053540301668116024529879254737744734730626282109390267693725035282806226905812339225780012218190363949982159936445252640185386934621404547714887472811671289265015241903614996796092)
-      (num-test (/ -151709660794612786408772973806200383563 -26960472721919005254400858042130056790831511338891584787669209989714807518625849812230185079206081782191501696661436514815190623849929065098497737155759771863508038766934134444191240792356114381746781342181881402424707118515655119761011977116554236461222788625158348668147995099157685699761135150772589445239536582228655532345059046596356954495360132444243748421428095867292294626357084961338288369883088525401649234025290736504802104065029036642533076183281468647642956623788270236516849523210698622687255735945678505925047193818483603361307498423724202227256505312543145618362906047473400380196192622607541097732443) 151709660794612786408772973806200383563/26960472721919005254400858042130056790831511338891584787669209989714807518625849812230185079206081782191501696661436514815190623849929065098497737155759771863508038766934134444191240792356114381746781342181881402424707118515655119761011977116554236461222788625158348668147995099157685699761135150772589445239536582228655532345059046596356954495360132444243748421428095867292294626357084961338288369883088525401649234025290736504802104065029036642533076183281468647642956623788270236516849523210698622687255735945678505925047193818483603361307498423724202227256505312543145618362906047473400380196192622607541097732443)
-      (num-test (/ 138834496986391136939574372853300933725 -8052690543272184576133758511645801940246473546142520821850130421981395129853341888352999304040698251945886555605291324954368612109314080471658982022831338507499254609048475429862437003158379101603576571787302167207044118847876475134352180874260998595377014195145760071923429129767580115085764485254455919915567128572731355497418831212259648020550107573824886521471697331410754043280744066090848295906051303624846301488010249980896364883452154860562864255354208802313850527991005497484253401461375477060954782095047043919500670383372218536999834862885439984085848342867301834247551832677237328664699302165347765799113) -15426055220710126326619374761477881525/894743393696909397348195390182866882249608171793613424650014491331266125539260209816999922671188694660654061733921258328263179123257120052406553558092370945277694956560941714429159667017597677955952952420811351911893790983097386126039131208251222066153001577238417785769269903307508901676196053917161768879507458730303483944157647912473294224505567508202765169052410814601194893697860451787872032878450144847205144609778916664544040542605794984506984917261578755812650058665667277498250377940152830784550531343894115991055630042596913170777759429209493331565094260318589092694172425853026369851633255796149751755457)
-      (num-test (/ 276499207940187081393841843387608369874 27347897028734618663428054896349668572244941195143856840032842195489553215406302254043947382368793914074147314353589439281000471813879502242851166670252197853998033813694814376228360691543987661407996785043637351295817024680721181205269262470473172181965930243852520386958529041036476807810647578694133804796395977642274699322030062940721165202488695975750512485574440928370802874677938542169620505668128224812441566912043326338714451629730522324228356364241376445033028898865300103247057378058702233150414643818049655628999871012383236520330575609745427181485617250755214922048672375947942288446974485524776744246517) 8919329288393131657865865915729302254/882190226733374795594453383753215115233707780488511510968801361144824297271171040453030560721573997228198300463019014170354853929479983943317779570008135414645097864957897237942850344888515731013161186614310882299865065312281328425976427821628166844579546136898468399579307388420531509929375728344972058219238579923944345139420324610991005329112538579862919757599175513818412995957352856199020016311875104026207792481033655688345627471926791042717043753685205691775258996737590325911195399292216201069368214316711279213838705516528491500655825019669207328435019911314684352324150721804772331885386273726605701427307)
-      (num-test (/ -8979365591106781219797187096315899769868799444656824967426553299158070014074001230883484015880186603742048949313393413640240595706939311540002219411120389 -1698360947072008877) 1282766513015254459971026728045128538552685634950974995346650471308295716296285890126212002268598086248864135616199059091462942243848473077143174201588627/242622992438858411)
-      (num-test (/ -12831814656788829919185319784994714617782749504716966706877579983082880759985031662545957372565411439648298939198657738497464024214657609856476819270030801 454910754379715) -273017333123166594025219569893504566335803180951424823550586808150699590637979397075445901543944924247836147642524632733988596259886332124605889771702783/9678952220845)
-      (num-test (/ -7834266257250691217409788323211914445703052638619784568844628449769010091330019095736167988675873769434766592786720961949649685040028101508217441360672222 -428418418877192732) 3917133128625345608704894161605957222851526319309892284422314224884505045665009547868083994337936884717383296393360480974824842520014050754108720680336111/214209209438596366)
-      (num-test (/ 5737805823029931079838944835405107564434908634489801628049345331760087020955028323378020396677249341204498685189403657652738071833877470777083253103936452 9588993061977446661) 5737805823029931079838944835405107564434908634489801628049345331760087020955028323378020396677249341204498685189403657652738071833877470777083253103936452/9588993061977446661)
-      (num-test (/ -4001605821592542867351046644170905984672346731784670159062281252096012802838642896466582343641124674682428297533953704119505640938363392225910275838094045 15760991890495426717) -4001605821592542867351046644170905984672346731784670159062281252096012802838642896466582343641124674682428297533953704119505640938363392225910275838094045/15760991890495426717)
-      (num-test (/ 2876630161532936743269451364955814480771395635620140205538288339793482694260173239474830738010159518887660000673207712630507802368373928478641773477534499 -6788234478844960330) -2876630161532936743269451364955814480771395635620140205538288339793482694260173239474830738010159518887660000673207712630507802368373928478641773477534499/6788234478844960330)
-      (num-test (/ 6230070442453337264527950102774203962152836811174649694700041895216739851602598854067104967963392074425258687296947909484969927078206601660837276754799333 190237375887614033974333796608341639595) 6230070442453337264527950102774203962152836811174649694700041895216739851602598854067104967963392074425258687296947909484969927078206601660837276754799333/190237375887614033974333796608341639595)
-      (num-test (/ -12098771374444180013224380531550204930654718468097503123335711776524055419889032578894177605164827523969169377266342179411916625188550162928371789854647472 -41681385674896602840749705069663453185) 12098771374444180013224380531550204930654718468097503123335711776524055419889032578894177605164827523969169377266342179411916625188550162928371789854647472/41681385674896602840749705069663453185)
-      (num-test (/ 13185465843955116174925558412278612918939024395488172088108029202384613698982949554556435640011161663974075894844304583900497170806796813871943782330552768 -155202352609947911537719051033334010254) -6592732921977558087462779206139306459469512197744086044054014601192306849491474777278217820005580831987037947422152291950248585403398406935971891165276384/77601176304973955768859525516667005127)
-      (num-test (/ 12784980722915659825738808684740823452025110516624579136271791852138148426775553817114893299569867520414470532361018804123866264934222335562072872489963044 -249441012384365373362771955533424187237) -12784980722915659825738808684740823452025110516624579136271791852138148426775553817114893299569867520414470532361018804123866264934222335562072872489963044/249441012384365373362771955533424187237)
-      (num-test (/ 8517839393030302736298983538193047531846908718502576675615969705563208303329257882565359266876007571790337440612227785062203468682754778416335180236967433 -23101645464137481399279134347982485126) -8517839393030302736298983538193047531846908718502576675615969705563208303329257882565359266876007571790337440612227785062203468682754778416335180236967433/23101645464137481399279134347982485126)
-      (num-test (/ -10157767522292361462005308817460390811646115952647174687477824271227382383351453540195549992670001314693794150879368708343715654899952822395459036505947192 -25611473771508763579433379623726126173) 10157767522292361462005308817460390811646115952647174687477824271227382383351453540195549992670001314693794150879368708343715654899952822395459036505947192/25611473771508763579433379623726126173)
-      (num-test (/ -8580252632668820290302987230726290672170301642399871646484841866604753910447257372311950907045477729554307803379310475132687855999835211879267570997069974 5347050029330174629945013741349819215851040371727058829687387719215168997632386672310746837193930669173408831178932364105722911104309540550576485594530627) -8580252632668820290302987230726290672170301642399871646484841866604753910447257372311950907045477729554307803379310475132687855999835211879267570997069974/5347050029330174629945013741349819215851040371727058829687387719215168997632386672310746837193930669173408831178932364105722911104309540550576485594530627)
-      (num-test (/ 7706102251141221799524762336156378964168657337573751909064577951085535246905735244239132983582998872001001594454632956803416956154262109939446710205558308 6334400709835247308796432875490978646658012545184955441452799118298109610816693049400832749087993843490999852355789914065232784070007399786089389453289854) 3853051125570610899762381168078189482084328668786875954532288975542767623452867622119566491791499436000500797227316478401708478077131054969723355102779154/3167200354917623654398216437745489323329006272592477720726399559149054805408346524700416374543996921745499926177894957032616392035003699893044694726644927)
-      (num-test (/ 12609622044672092190084693450911157599596799695538449568681964257744962273690941575572590166273187189250007688411096790312605666562908125521094386992971478 -8237858212652788898158635047388584411011830102060269605835391741772914864422465141467281143809161251942948659243584296367296559912373856433388249393853968) -6304811022336046095042346725455578799798399847769224784340982128872481136845470787786295083136593594625003844205548395156302833281454062760547193496485739/4118929106326394449079317523694292205505915051030134802917695870886457432211232570733640571904580625971474329621792148183648279956186928216694124696926984)
-      (num-test (/ -9988492519236282081446302885464711911055350309732728352574982611126604133339499170845224383282665522673248920309221355720665956477799939031063172954469785 -1878204914631111607000020160429571305542722711529281855381736226230242796648854769713662269068364131804626863789957256573308715572826753755672493154125086) 9988492519236282081446302885464711911055350309732728352574982611126604133339499170845224383282665522673248920309221355720665956477799939031063172954469785/1878204914631111607000020160429571305542722711529281855381736226230242796648854769713662269068364131804626863789957256573308715572826753755672493154125086)
-      (num-test (/ -10729942326579120947061030583094707809945059776287551713953926998992375520903658867971835616518813070294302895655369081976222497359056962112544408591462495 -4917625712783289245414023733273041940212797202855299465496072729329693853584860839801663152618595377553772371725021213143455497822882736730281253858119747) 10729942326579120947061030583094707809945059776287551713953926998992375520903658867971835616518813070294302895655369081976222497359056962112544408591462495/4917625712783289245414023733273041940212797202855299465496072729329693853584860839801663152618595377553772371725021213143455497822882736730281253858119747)
-      (num-test (/ 8114113595157517238445304590338354472776364877475201453112450680537221171989478096363668912966343706408770932684807802285529572133696646343108263717309148 5443953102973235688784499815692116502566847594605098596244123647428188581304528525010862185203718640610834003873728718183528722470626702382993497913086105) 8114113595157517238445304590338354472776364877475201453112450680537221171989478096363668912966343706408770932684807802285529572133696646343108263717309148/5443953102973235688784499815692116502566847594605098596244123647428188581304528525010862185203718640610834003873728718183528722470626702382993497913086105)
-      (num-test (/ -7125100205152691887479515774712530950031072786448635736036405923401522078562323494262148946679985384635556474075282302608446439950458673260234175964199684 -23871420315894180764743988478670341498770583257649869670486332228804693253344466615199983955886679924409910043885402198203427975742868174334723967563526738510726448815413356678504144193747696164586135745786501041060322480940451156015256191962506052700295351077719851275026974629635679531161390660244641370183176979934485671396035404817388717005746812037357500295693454623478902942336087760288091719793968445716246099043828787040340339906538864570506773535078524092440112404847904632624419421052178754041718790915772437556681684830937503838434712179830722395832238257078212535157309743054115702650740005055678387806081) 7125100205152691887479515774712530950031072786448635736036405923401522078562323494262148946679985384635556474075282302608446439950458673260234175964199684/23871420315894180764743988478670341498770583257649869670486332228804693253344466615199983955886679924409910043885402198203427975742868174334723967563526738510726448815413356678504144193747696164586135745786501041060322480940451156015256191962506052700295351077719851275026974629635679531161390660244641370183176979934485671396035404817388717005746812037357500295693454623478902942336087760288091719793968445716246099043828787040340339906538864570506773535078524092440112404847904632624419421052178754041718790915772437556681684830937503838434712179830722395832238257078212535157309743054115702650740005055678387806081)
-      (num-test (/ 4801495919363827077158204249631885157347198552733998896638174958434968555935827788499392382851493568264006507028024783408190862186734863708684652212703744 29234959990138609668202089052356468732793041824333219340488007351402997202222578434579705387840772390513345507274006495462445058795870182760749392281528881636623188890883479914921272700981309656920982410970774047916714087713562927554033500521877735827036675598267184309367127514966388636440710253467328441763131873309183205727440365838789320851968108312559316922678357314418486932673434031479515016224407618177089903730349114511598373251388750023508633761000320088841886505077453257141723747388913336375142897897501529451618927178835485127020789481918641637409265186365292847057986276062625965612268181771076051892980) 1200373979840956769289551062407971289336799638183499724159543739608742138983956947124848095712873392066001626757006195852047715546683715927171163053175936/7308739997534652417050522263089117183198260456083304835122001837850749300555644608644926346960193097628336376818501623865611264698967545690187348070382220409155797222720869978730318175245327414230245602742693511979178521928390731888508375130469433956759168899566796077341781878741597159110177563366832110440782968327295801431860091459697330212992027078139829230669589328604621733168358507869878754056101904544272475932587278627899593312847187505877158440250080022210471626269363314285430936847228334093785724474375382362904731794708871281755197370479660409352316296591323211764496569015656491403067045442769012973245)
-      (num-test (/ 10769619761532897875307527770350128978615798426116103116325434914975512103385205123955114305107607195469345895102375220593168903042839441996791318999499708 -7224105715967976893083374742254251507019823877014718307738328810406361200631626366722837314776666720638271529652546975342143108973422364041422652163016078890272393678677152791565494865444430757858556891645947268886646732022748338160528677218733159766121781240328812893374941548395710123982510227501927393735585082736583984561348450061452997663109932611188779299623613963995350679177776686423432406091192517292522853783968685873925548901506191291253596763183277703635837071862492572256145656312023955675669362656148946145528559574994353884313568526553663370513565393821926602014407548325293145102073923450066319746913) -10769619761532897875307527770350128978615798426116103116325434914975512103385205123955114305107607195469345895102375220593168903042839441996791318999499708/7224105715967976893083374742254251507019823877014718307738328810406361200631626366722837314776666720638271529652546975342143108973422364041422652163016078890272393678677152791565494865444430757858556891645947268886646732022748338160528677218733159766121781240328812893374941548395710123982510227501927393735585082736583984561348450061452997663109932611188779299623613963995350679177776686423432406091192517292522853783968685873925548901506191291253596763183277703635837071862492572256145656312023955675669362656148946145528559574994353884313568526553663370513565393821926602014407548325293145102073923450066319746913)
-      (num-test (/ 1505915608160301518246681692927442986955390537144107830770082927276722640395785957392652130911646706470337068266772174699405268120590454296080828168261019 31152879253507543898583880698200027990847289346701738353567402100527465991154555548630544962150902011282973749886327325250084401181379196961322399337408341296727915922288276602390334861175305055229766353672502691855637668618950047400571070157436221479289152631256433294884836727331457389922838951144187501751190662594278336543502171639899940796536926507796271202659224890656712231014450702948847764643603683153113663072089256293587951842007583210791100743318865647555912543508324790181772321217524164822106191538518498016236866957803105254555578252294418243701672226181762763332992886540089416888889135117147250495261) 1505915608160301518246681692927442986955390537144107830770082927276722640395785957392652130911646706470337068266772174699405268120590454296080828168261019/31152879253507543898583880698200027990847289346701738353567402100527465991154555548630544962150902011282973749886327325250084401181379196961322399337408341296727915922288276602390334861175305055229766353672502691855637668618950047400571070157436221479289152631256433294884836727331457389922838951144187501751190662594278336543502171639899940796536926507796271202659224890656712231014450702948847764643603683153113663072089256293587951842007583210791100743318865647555912543508324790181772321217524164822106191538518498016236866957803105254555578252294418243701672226181762763332992886540089416888889135117147250495261)
-      (num-test (/ -4912349668310730778272626761660101328812783790262451913449395750351147048676353891314609774894027305081515542385381430403698808605768281804457186380542764 6582102431028556562269167182029950958541569095123705594954788174046339660437206159173417583841743892857066740116322758515837624700881569925244230209567223461401193316695082415261197843574563450002486582967745135870782254839990479649574452750850133306720341823136645982650022199634379361313745598455049448887744206616434903460504591098363901961758069797933831934878649993183747273660007900662110776570580293994733189753806312784239743585453090900671308673380802381312083077891736513388250097195232616017027333586286786139736783210630705878401429301217589001317082952461701571026008195534878902572422952568763551674434) -2456174834155365389136313380830050664406391895131225956724697875175573524338176945657304887447013652540757771192690715201849404302884140902228593190271382/3291051215514278281134583591014975479270784547561852797477394087023169830218603079586708791920871946428533370058161379257918812350440784962622115104783611730700596658347541207630598921787281725001243291483872567935391127419995239824787226375425066653360170911568322991325011099817189680656872799227524724443872103308217451730252295549181950980879034898966915967439324996591873636830003950331055388285290146997366594876903156392119871792726545450335654336690401190656041538945868256694125048597616308008513666793143393069868391605315352939200714650608794500658541476230850785513004097767439451286211476284381775837217)
-      (num-test (/ -11503235648135220410087372678575470255397243144180272745183844970864347348074104828328211521698012119761674096067066173927209129755062269068090560678650614 -5548338218081690289723998288742945948643693817491921699797822887914665364835947234564530865119623677435878746610856459141463506776423054050179729345956931675338102809929977610828639446535095411122377961067651902947030310564736893080382424590568134091858634304377553326990788802662029347894499019277621467098333287442862683493159356014650672092060912274570436879076161496563079759704321556494898013269338428360856068237785049960484767969682269790642298701577934519452927652996671267126348627432295779183359417597868330923329974640383630473044712419371517153268338860560601603043892503067815822312755611206254762903436) 5751617824067610205043686339287735127698621572090136372591922485432173674037052414164105760849006059880837048033533086963604564877531134534045280339325307/2774169109040845144861999144371472974321846908745960849898911443957332682417973617282265432559811838717939373305428229570731753388211527025089864672978465837669051404964988805414319723267547705561188980533825951473515155282368446540191212295284067045929317152188776663495394401331014673947249509638810733549166643721431341746579678007325336046030456137285218439538080748281539879852160778247449006634669214180428034118892524980242383984841134895321149350788967259726463826498335633563174313716147889591679708798934165461664987320191815236522356209685758576634169430280300801521946251533907911156377805603127381451718)
-      (num-test (/ -22964048032108117904633365483799091488990853392670636861794813863757795874434768543212887316456319246155824842161717179767513360050328383696194174741889496306018655333450647372293193335577883672679165775070112770359697627614883420620410888137853011387271594559450892054491963940112235887802995117234918878648066362268919389271696465517050425727202664230530633207566444357393843669758809938086228366322548799235049875711702216182219182908217345405023677260470015666831191434586902791186444958476491096759363292487221288620810273243009200212776634572092195691654105986099646006756823055390654876878195583529521482548988 10644501761877612307) -22964048032108117904633365483799091488990853392670636861794813863757795874434768543212887316456319246155824842161717179767513360050328383696194174741889496306018655333450647372293193335577883672679165775070112770359697627614883420620410888137853011387271594559450892054491963940112235887802995117234918878648066362268919389271696465517050425727202664230530633207566444357393843669758809938086228366322548799235049875711702216182219182908217345405023677260470015666831191434586902791186444958476491096759363292487221288620810273243009200212776634572092195691654105986099646006756823055390654876878195583529521482548988/10644501761877612307)
-      (num-test (/ -19058897134776675884737764093896349427183484738023061956638485191239529906311503740032626797095131123523175909943402828257449376045336777553758951620699386266853663342003969442142858702229701661125904623724248177901462857013835790939020450746503125344631958534655024089231193396521561965297735217497608287565163852923704017958259400904834287026933197193592591423799328167149965328232560408884408251535373934831244856695227539243433290481951528897142697352526450162440279318507285454432916819060795455956931254810171588139618689138022062041222735056137988435900866680084665165131313435515187611756148824388549448126467 -8326067459929079652) 19058897134776675884737764093896349427183484738023061956638485191239529906311503740032626797095131123523175909943402828257449376045336777553758951620699386266853663342003969442142858702229701661125904623724248177901462857013835790939020450746503125344631958534655024089231193396521561965297735217497608287565163852923704017958259400904834287026933197193592591423799328167149965328232560408884408251535373934831244856695227539243433290481951528897142697352526450162440279318507285454432916819060795455956931254810171588139618689138022062041222735056137988435900866680084665165131313435515187611756148824388549448126467/8326067459929079652)
-      (num-test (/ 25828007361450952719858846443651616751980622231808382804245407702688699228397920589229449608543284896555585501243582045708656531815385828908740757435341854996277769645696261182122648194952548457487178342682313459444433667556195761154944956714756269417591048771194019245925463541886773351873002480266654825771525233808830260734678788520487541379982691221386179066818743751876186761036101255542680066874888848011074569355779905086056095043888696435054884292698783753890317487209955316141370052511469715869816445031102161253514609763532756500340262263800747279044587806090353812452308490155782240390040070679663451429071 -16419739031141199968) -25828007361450952719858846443651616751980622231808382804245407702688699228397920589229449608543284896555585501243582045708656531815385828908740757435341854996277769645696261182122648194952548457487178342682313459444433667556195761154944956714756269417591048771194019245925463541886773351873002480266654825771525233808830260734678788520487541379982691221386179066818743751876186761036101255542680066874888848011074569355779905086056095043888696435054884292698783753890317487209955316141370052511469715869816445031102161253514609763532756500340262263800747279044587806090353812452308490155782240390040070679663451429071/16419739031141199968)
-      (num-test (/ -1669696848499325185991294008037906453080648048592518700324899343297324898656645662186964240087582483813312797482298159224575128489696846451225871663856944749639170892311973606684486632224811435175199158920841554176114937196187087530038509898368755036744105403511353564606301040888877621412514452110348953863172547944175251415725815533087344857665837809749724257466399374547882097484009980477192931829030533366309859182367479867549644502538060694266048652224732348150866071381652452605392696555259221463464108413747443898588713629829490175098280805280460168541344102200890646453100478450456898359263676257882174308268 -3154577849943484396) 417424212124831296497823502009476613270162012148129675081224835824331224664161415546741060021895620953328199370574539806143782122424211612806467915964236187409792723077993401671121658056202858793799789730210388544028734299046771882509627474592188759186026350877838391151575260222219405353128613027587238465793136986043812853931453883271836214416459452437431064366599843636970524371002495119298232957257633341577464795591869966887411125634515173566512163056183087037716517845413113151348174138814805365866027103436860974647178407457372543774570201320115042135336025550222661613275119612614224589815919064470543577067/788644462485871099)
-      (num-test (/ -2215504974719141921873290809898041836016933916943403987778356628123168736190963062169230280020568365292362281642280014010817115943641228422541948070912910166283758843455538187697141038676028739959626556519808411324617157646799936128314485433146912658200236754847332237438334421065771940922444296618134121662770699950019164632463150784605652351782139277998735272280336096528241168196650073301607171613955878761317417480490869592669781417658461696905996344800864447403426286476662235990122025654999230690604488053668524888833992415515434190712628587043474760836969696399229242018051635699746048823240033842587927229964 -11305319675542865070) 1107752487359570960936645404949020918008466958471701993889178314061584368095481531084615140010284182646181140821140007005408557971820614211270974035456455083141879421727769093848570519338014369979813278259904205662308578823399968064157242716573456329100118377423666118719167210532885970461222148309067060831385349975009582316231575392302826175891069638999367636140168048264120584098325036650803585806977939380658708740245434796334890708829230848452998172400432223701713143238331117995061012827499615345302244026834262444416996207757717095356314293521737380418484848199614621009025817849873024411620016921293963614982/5652659837771432535)
-      (num-test (/ 24358677073350645219370308521851912760304925518671532565724702185818845784332554892130070740233218685874351979772556877899278790031132507391155876157108663291716896413773711734271947599485714147026138105714458778787734198938526335256418673319464023475137997251085298903419563039860433435847755093653670989129405749785476487449599232956305952768800154351414655365461746574761818724131185410194605648466196476174400166047788352670171627261342369793028465418799251589432585363577887467959594667618177199696618852093807640490831859585621198048572586882398004957371434677752931134884039120875470266936204172511104679441462 8754800987327220648) 12179338536675322609685154260925956380152462759335766282862351092909422892166277446065035370116609342937175989886278438949639395015566253695577938078554331645858448206886855867135973799742857073513069052857229389393867099469263167628209336659732011737568998625542649451709781519930216717923877546826835494564702874892738243724799616478152976384400077175707327682730873287380909362065592705097302824233098238087200083023894176335085813630671184896514232709399625794716292681788943733979797333809088599848309426046903820245415929792810599024286293441199002478685717338876465567442019560437735133468102086255552339720731/4377400493663610324)
-      (num-test (/ -26302114071841994464108666310942614602208671348774320769941579409198660404735714925432808094014718434192516800374483192192707032773903982752997957629389083405320034044554226640590549491188742685901503166669355807243735533977994184111229208270447279559478659750835531593667003322059717930484363943660175452777363121025595100592911646539549735930625865256846706785601753749996181113742254145758187876411260965175520035400453360390392991183382425735199046574346992179663247011131958270717402007532256308394559029768974932620173103778338779940189812875680687510582798628982957687329572431433891809534332514765287899172737 196971971351558855568201373145365478995) -26302114071841994464108666310942614602208671348774320769941579409198660404735714925432808094014718434192516800374483192192707032773903982752997957629389083405320034044554226640590549491188742685901503166669355807243735533977994184111229208270447279559478659750835531593667003322059717930484363943660175452777363121025595100592911646539549735930625865256846706785601753749996181113742254145758187876411260965175520035400453360390392991183382425735199046574346992179663247011131958270717402007532256308394559029768974932620173103778338779940189812875680687510582798628982957687329572431433891809534332514765287899172737/196971971351558855568201373145365478995)
-      (num-test (/ -25700334917103749626396366612061842558162882395534131493737229591609654899446089376271023701490708870843231350129849819430092002268875830384992877382393956173037794109904701961390126146975281052960293513473777226100954163054292968509501976296424278813632162404905591038465215586347229260479401862039805429711982871702185657527199220459658257385112793877259572278229045135617281858788415643567614198333459934599272409406206213115625226065750113120833933806486512117533453281522448845990642550827848765145774541658722594353290694745164913189694785762218575339370800538946514325662656804799046877175035545715523049884960 56325873113907570153638933263921340484) -6425083729275937406599091653015460639540720598883532873434307397902413724861522344067755925372677217710807837532462454857523000567218957596248219345598489043259448527476175490347531536743820263240073378368444306525238540763573242127375494074106069703408040601226397759616303896586807315119850465509951357427995717925546414381799805114914564346278198469314893069557261283904320464697103910891903549583364983649818102351551553278906306516437528280208483451621628029383363320380612211497660637706962191286443635414680648588322673686291228297423696440554643834842700134736628581415664201199761719293758886428880762471240/14081468278476892538409733315980335121)
-      (num-test (/ -25716495567761925495340309269248196976121711927176026606462843116646034561721958499564011513233986043633061335866265799467020807570689498961190839877265773450484494789052182300993137822542881883769593344810286970036960228835955266304979090841345697560418139960733748874044680214388098802745248923989851173047158103142988835055585349795022662576576434371181693607267864646932929998659458265265400181839509356921460222604661909947838434113964465769102604033848276159366897885013231683417270877512514679528402888899725431524867260144325739317224922955028035417867933390409466302057857579158202739536568407090965929352402 -92089830031261826185903006947297196357) 25716495567761925495340309269248196976121711927176026606462843116646034561721958499564011513233986043633061335866265799467020807570689498961190839877265773450484494789052182300993137822542881883769593344810286970036960228835955266304979090841345697560418139960733748874044680214388098802745248923989851173047158103142988835055585349795022662576576434371181693607267864646932929998659458265265400181839509356921460222604661909947838434113964465769102604033848276159366897885013231683417270877512514679528402888899725431524867260144325739317224922955028035417867933390409466302057857579158202739536568407090965929352402/92089830031261826185903006947297196357)
-      (num-test (/ 6427758281007308443295844679532867042370757542760390680622584758338041709910068192973790897624827722686313216884084305612889554116246627679267186323854642904894988936981064543865794245002470271142875081223308666588659587718561791667575945670118263124267218395749059879636505504607358472659126298770422135028955713148882314050530771750859372048576074912599265823577267962213046012777760882389021047579367276198483178024744924299929585515193595330026399302022065656106472153858484998010254767462854235008343139218888170221421046454280858208068658907389288543063912721882521711363713136166478126504226820360347652405439 80854661163518168674595213426641201760) 6427758281007308443295844679532867042370757542760390680622584758338041709910068192973790897624827722686313216884084305612889554116246627679267186323854642904894988936981064543865794245002470271142875081223308666588659587718561791667575945670118263124267218395749059879636505504607358472659126298770422135028955713148882314050530771750859372048576074912599265823577267962213046012777760882389021047579367276198483178024744924299929585515193595330026399302022065656106472153858484998010254767462854235008343139218888170221421046454280858208068658907389288543063912721882521711363713136166478126504226820360347652405439/80854661163518168674595213426641201760)
-      (num-test (/ 1960728263483597985471065015024594804771170333646104429205729831998416939777820080209106943861368202560376682136488253096512360698625765514606930980274938979705620987031595592685578710084284618125325617453699875318678007463857705931376750632972266553809944621631324385690517092215690694024807784270742388108802858889381036105223858467345514041786882957807868961085072340965930749117411726729713477739990680381647988935514765113077094375924848051541167125595015542791382355149166582367766443782842193396221676952668624805183924877889696428989259842153378327156342464279071638070457876940165186524833987190050817072048 91266493124541431873557009470479491083) 1960728263483597985471065015024594804771170333646104429205729831998416939777820080209106943861368202560376682136488253096512360698625765514606930980274938979705620987031595592685578710084284618125325617453699875318678007463857705931376750632972266553809944621631324385690517092215690694024807784270742388108802858889381036105223858467345514041786882957807868961085072340965930749117411726729713477739990680381647988935514765113077094375924848051541167125595015542791382355149166582367766443782842193396221676952668624805183924877889696428989259842153378327156342464279071638070457876940165186524833987190050817072048/91266493124541431873557009470479491083)
-      (num-test (/ 4941680418946960910262990974014623728051861920391294141439502190044830922127013115391726343950340163023958511659132792063033185693862678433421115681422259770928656196358763089894449447854011668445981430826871764812047994423858851467292757304285634515474652989618200442851239459073981986390515468331839802701176644729973346052528164203299481240263263697394061787580128379398464090163611942724580936445878570184925290925246112514015572149640886198984723311273144361235138411362294735799814160816806773736605477503201836095726740734281001021071803299510239436683913500734680524381145064985356627091311888606290704759943 291575320383555320391938911470370670502) 1647226806315653636754330324671541242683953973463764713813167396681610307375671038463908781316780054341319503886377597354344395231287559477807038560474086590309552065452921029964816482618003889481993810275623921604015998141286283822430919101428544838491550996539400147617079819691327328796838489443946600900392214909991115350842721401099827080087754565798020595860042793132821363387870647574860312148626190061641763641748704171338524049880295399661574437091048120411712803787431578599938053605602257912201825834400612031908913578093667007023934433170079812227971166911560174793715021661785542363770629535430234919981/97191773461185106797312970490123556834)
-      (num-test (/ -17803449239532304707372697093467431202778585961066204978641168716990033159088600623106396534094218402005803618121159982050197012697237961155375180768349707725936023283589475384693590539312637333226292265409814019687105755522332846972859860649558844229320481883408457674560284773922666633054564243260924189551494368660033292970122831009582038986061326503238023206238467592238752824663935316307653075615249537594229930297642710570473007696494702367783692850946455203144153509057520651038068881755863521371187245025834292163874467913915588768778393773565536027848586260129438664753479013894698439967637389690509120223682 -10962227285754340409566802000064407225866105372406170304563353147415988225079632767886653994299800743521362563345682593189107807948342418743229049299449088) 8901724619766152353686348546733715601389292980533102489320584358495016579544300311553198267047109201002901809060579991025098506348618980577687590384174853862968011641794737692346795269656318666613146132704907009843552877761166423486429930324779422114660240941704228837280142386961333316527282121630462094775747184330016646485061415504791019493030663251619011603119233796119376412331967658153826537807624768797114965148821355285236503848247351183891846425473227601572076754528760325519034440877931760685593622512917146081937233956957794384389196886782768013924293130064719332376739506947349219983818694845254560111841/5481113642877170204783401000032203612933052686203085152281676573707994112539816383943326997149900371760681281672841296594553903974171209371614524649724544)
-      (num-test (/ -11349783565099575757929584771389010505157850113880084607145768380886038854233583951229136273631022011781914171912628263930864052254964518914857757025547156428098062812984733912827827545722979442676567330004437902674729872754963478834939047061999292143602525229120558979819117729589695377623970606315287270030693151486803968345724658003068961239204812937084581894755863859944500186226990319892122692007317326534880413455575446314965159569830188583093978564829748603480193166063624130610256395632946002879039047154077629561745862713628266069928068634042545592328263646730943717246953000457159714049930890865576634096206 -5169948998417532948043886408019867395123131165917923418040862036041756675786217242743410895008311710518018466892169868028617239526646914529999134517417939) 11349783565099575757929584771389010505157850113880084607145768380886038854233583951229136273631022011781914171912628263930864052254964518914857757025547156428098062812984733912827827545722979442676567330004437902674729872754963478834939047061999292143602525229120558979819117729589695377623970606315287270030693151486803968345724658003068961239204812937084581894755863859944500186226990319892122692007317326534880413455575446314965159569830188583093978564829748603480193166063624130610256395632946002879039047154077629561745862713628266069928068634042545592328263646730943717246953000457159714049930890865576634096206/5169948998417532948043886408019867395123131165917923418040862036041756675786217242743410895008311710518018466892169868028617239526646914529999134517417939)
-      (num-test (/ -4372008041495429462966226028389793326873997497126815043214338280101332483009650104005998792061125254101227371430911497751865710691604158789733634394053254604723940088324934622768312096370232736965692181452463495731681105253628558429524788376108667441329817524961077744083376843098018692898745743361309486938506049017980865957895278210133305721083115513131884239744064081819033733041876411992332060293539102545847193260167588667810376670587099064558298380310132769718526554738650709745767046942440481512965138461694790645096012018276362849398785863823724642554436182185786302301222529261914437437947741031113015699315 -13213007132248918651858333568248204618745148942720942572088217188768868803339938910599097839075045781852237705726227293430250507070717570662238736211897310) 874401608299085892593245205677958665374799499425363008642867656020266496601930020801199758412225050820245474286182299550373142138320831757946726878810650920944788017664986924553662419274046547393138436290492699146336221050725711685904957675221733488265963504992215548816675368619603738579749148672261897387701209803596173191579055642026661144216623102626376847948812816363806746608375282398466412058707820509169438652033517733562075334117419812911659676062026553943705310947730141949153409388488096302593027692338958129019202403655272569879757172764744928510887236437157260460244505852382887487589548206222603139863/2642601426449783730371666713649640923749029788544188514417643437753773760667987782119819567815009156370447541145245458686050101414143514132447747242379462)
-      (num-test (/ -24003371850945507239307096734506644624830254935119140199726507920301383328662376914775504920527918338079792692943250446679097229950654636321252144129692109999375967030689211646504258922323499994340282315270808545865248969923421472430657741998787024263629527291510416193284540865950122841477102934165296344839654902079279846705581902668360663987722715177845485423354226653585575109653937253382583158263755381721094429734122004436184054214443676096492583897635497699417294183504529284810360226314491839533303380490277211336049582128602304906849999737224506976061216780230350942535246958957024226614847691329767208211525 10686139440491678930358521446524488461285005495304677740436234635584738003880529034339295291091217655777627375148264449580064000634364863951333061091724053) -1263335360576079328384584038658244453938434470269428431564553048436914912034861942882921311606732544109462773312802655088373538418455507174802744427878532105230314054246800612973908364332815789175804332382674133992907840522285340654245144315725632855980501436395285062804449519260532781130373838640278754991560784319962097195030626456229508630932774483044499232808117192293977637350207223862241218855987125353741812091269579180851792327075982952446978099875552510495647062289712067621597906648131149449121230552119853228213135901505384468781578933538131946108485093696334260133434050471422327716570931122619326747975/562428391604825206860974812974973076909737131331825144233486033451828315993712054438910278478485139777769861849908655241056000033387624418491213741669687)
-      (num-test (/ 11114571678097117920369007866358540243142633567044843952020632081573546909920632543585596494530749645890342978505657174505155646987551523455565703297238406590291026899487431109110746657023874064284362499621762851387854720746040865741433394111425240861542892218169985953747711593827913014379823797703717216676877313898809377467394109623799717556800777662963842899812297087284510893865429864819927951428138755600792987191034272014681606301885821862650098620488569288170357746018556395309910262410994899971436293672676949544989196526035130226777567220128838888396668158456237490064462262193759918857287915854681904206680 4808076329737968688023887165061921594706561818755147855784713748545995818001333418509444774306288638038607173052166709335820929501845348060033808100812677) 11114571678097117920369007866358540243142633567044843952020632081573546909920632543585596494530749645890342978505657174505155646987551523455565703297238406590291026899487431109110746657023874064284362499621762851387854720746040865741433394111425240861542892218169985953747711593827913014379823797703717216676877313898809377467394109623799717556800777662963842899812297087284510893865429864819927951428138755600792987191034272014681606301885821862650098620488569288170357746018556395309910262410994899971436293672676949544989196526035130226777567220128838888396668158456237490064462262193759918857287915854681904206680/4808076329737968688023887165061921594706561818755147855784713748545995818001333418509444774306288638038607173052166709335820929501845348060033808100812677)
-      (num-test (/ -27971792815424016824370019866875377333122266892537700816201893161065327053508379094007350664178576160161460501442627646041422270472469587140689725524176629653056006769618104516779694726446739085332330345789012312708713495757968594985567285237456431009983022526625885024663335598317191838389804118084831445251467492693688286258834282078888862754754572546522075833632779922232880101875914894393005204887265821991459415144492487189071888581048779385051174007698853920104709378859053075296413813207007405843448595681090932498329066591349910723578718333092115184652723310842559914379989208301125396793101430807658654849482 3169580893680227534064172567436590084742349042688765883461923377455374714865282199177755353861979892274552092801376364846717140845237173266602633583445110) -4661965469237336137395003311145896222187044482089616802700315526844221175584729849001225110696429360026910083573771274340237045078744931190114954254029438275509334461603017419463282454407789847555388390964835385451452249292994765830927880872909405168330503754437647504110555933052865306398300686347471907541911248782281381043139047013148143792459095424420345972272129987038813350312652482398834200814544303665243235857415414531511981430174796564175195667949808986684118229809842179216068968867834567640574765946848488749721511098558318453929786388848685864108787218473759985729998201383520899465516905134609775808247/528263482280037922344028761239431680790391507114794313910320562909229119144213699862959225643663315379092015466896060807786190140872862211100438930574185)
-      (num-test (/ -138888658164471549506154385143989713534453638138516110941977029 48484067562152384719540184707188444570280914254129306788137384972303743285284814 56428088099244342456240635263153370817851703737803685168591843059886944388583310 6984617762898435035101945891920384937438416626357047934508608980105797822504000 90193136183227859939744547239819443586783276313678017953708293432043879247302040 70539472782976230144489157899475475029273447055080677052149474853222128626227832 2525164589393997980217929709704832829968554364529060039097810436136432713906553063644429644328565051224269893261942396763235990073001625976866246420775436 15614337547041181126817477188043219628044963126229393225781917631975649438502836750353253851523795212263078850399716875892512719059737913422781999218667136371648316387382440793865460028660248325297931269646982047533754121791358966254514009830876592200454797694143082163294323565673200905929297174223061890100210054105027025488322289599106119653451218493916291922340123640475500240519924011764050880374885136181582395113140580448936759383024305870622004464940344826337458060607492042593813585998516868215921180540240201095202617277388950504036371411600204964284568597705251929695275183521036281637399204541958859605054) -138888658164471549506154385143989713534453638138516110941977029/4793535847709521198063287553243915170068914691727215964454867625024011698922303669226389748584276840530192157568469968220857898703102351955898913589325705637953049380748829567692600765708909637920797057370082064005557328769108356548100875674196976079597658854339583183901899349355521527519781721778545444496852540362424465770767219571362842157786846795990148969989617793004579188905882473140017509154008696803103206996067638134383708975696867028865870695941933200225325283190379262695816923376790224594063264297952504481719779782130509306530621779762254864669078635401870023086312919956154224782043667754741333688780367667466505233610011253346902821033707597517691608103391952937194719540981992469020284583499872663129517095879706480339710037976698298522952071766717472040399518290905103777436461474880898550115925718887748413534479076504168236430697214654069473800915087572730747027455509241250627470590715812698745630545585772046458363388764449879417348554556621640336029897762172500880501074103433267444717053504878282494505367980026597725927414511391047010801407870379019921551218005714825277162504166028680939100225793768617321830389705750902850499916610355200000)
-      (num-test (/ 2902267908619179684129536324641634394442732593027015198805855082 4748067699021154152763168285921806700655154833226062437593302484475663167752990 92172802787151156076284963978247829387076983213530315481815585776147505007251090 15808981285029107672090190966349736198141855760941720122983980047623201110025085 60559202289239963744584432021634662330089323842876293477363484160210450706125345 20641717016962556495214267565148984505293698026059157698737040675346468206231142 142380249473014630955299439077662853963947100833592874440361316474000948841420058017600161066408668117933232436922811486348705081331372574460204309908598 22418721268614574393232189860262616514600143215945007038687873335656746730488694050883006164427390756358558140145027011322151188565843290717535647848841274550496431839061217253488169143292339455650565906288959125935798633464526818546688779845699340483771625364583343140648892889571715648295855169294054985996834093294240640072029711789359793649773566295329912082241637482772608479106201840565936084243727069954911883243252762742415647868355726139789907900798435783365130277592703989608678774745914668128791639635886550753850811717805962562157686110637810320436812644047534536168343578232389700410352900247092236175044) 1451133954309589842064768162320817197221366296513507599402927541/13803211377640454778526029288269623376813125655593684775595099045285713415153039020789267800416616529908688645478733023490751981264976732618374046330204398361829051480928696426688037404239513603403603849882719851670264413777889524531938606364925013854252374108222701436535488401321603495905123597139234414735397259257280679663147039651553472142280954446675036289021783142392760217244908768132158498744301278889276778209560846418263599491357632762902447742083022806085077053406738681250354036208472026046315736408632370478801849290705001622808552373129971427533249307210975612625050706661691322027927380443494854794852235813844542319971019369687589916047377092369702778251658652143114091304960406840026816351348391618676357634544120732441610431417230403811846208113160343697557236265319994702483700922393762500190362776377442551539417224595247790865885105594005740401824824367904020732469833438717527758468635665777261969819260766044978137909489986407113029460354144391595512642835261443393260585888868936164331461486646676578398836326366036777321522851855085808626766493197635871100152761464712744017549919220291986785134521319127277292845352756807452050073157340000)
-      (num-test (/ 7798204144688205291220879078360728451593323170355809361079096742 35808393784851478122520372074317359817820799318259895240196875729073154197251420 58532175726063855694248618287185551673975962776708803423334853085996022345828434 97834368697888769536063057370864051207348099191057106781292664602519775900739777 92489021460656714290092899983209031746574776013841975324837145038810562509209529 71083733375588666647468985607775761710974844539643116636307037921671845148256816 6123989271760127932230015643359630675168106436173654465119508990415235040641894537960236511442249258231302028977221206744158863083898145166446430168108 -27418900206398855942064397259705713102524342707255992250395147550519659429645343464288092288218160406382406024735131578979728501208163782063519839258876833755387025755815673514708453862847139552613587001235204464673999898312854941659541050445981594990466469147364579547089805525464252876345032296745312923488525701877655352034887018931755379078328147999631937419977103372927428613463482328465834563846802083044643719319690088670748858904291298575733560600669924511028715689681303059001186388754140003746463568171428267337107394361025465082282061651196456268663181772211292647101192148287507051053367729008997838464209) -3899102072344102645610439539180364225796661585177904680539548371/113184205287561573324139833190653102440730360395399197973956984769580868365256138025034414373155098575475566747215877030265786675432252675717351889433714136838615056208470421665419618669892136317438270826178251174708190860235979949204785938786562420189510825909814566675745650194525647207897976611434325225523578368855952217879373499055292850828774005130267218801086474623429504045290678320168493275019256514768273116059350700654655821674309331585233552793659038912697151359657915391954687630783641745610431060563252789714638916120291482852533638921356624929690158752601417722733222880768367060672103351737811624242610815140332559619520810810999145535251960674284283045907801934328911198563750515779896457101601178888594882087326241517566336011980952110586199881600553269825310575512911473547251704677890770772166895623118832621335417348044312911888377718725944255218219811801447500167145561774582342171995333086224230231746597452848775656030037837271428187450747141983599129861631612369300880722326218963779650411119279310045263996988089484063433088077868691314162108392639864773907107325220582413508233901954483499166402135445110435112499264825479433389003494762240)
-      (num-test (/ 6291885367078853457481986049409245691302078375827782321496819120 20959289231548357352292073342856567687394126070322865796282035211176720583560298 24366038587110130209541647226271577368736240640393242419005751016119649778306566 40118119174220166901790237425673316895032570534639145502274313654443256239236466 73598137358602854818844747625643480865061277528564461120022408463105339470504117 36695182446520138181079917512512743290981469731336486456411609014364293489978544 8671667981598505073194269824535189054936442262459158402875147736469644925300845122881093216273840895555488593258562684601176239455526568314028830532770 15920064019095473156324398162334173238735268739049399738654357508344572552411935473846021991360836375685872129737682603096450566258725052013769725919038955505690389573813769125933987978360857342250911865713011888064725725934341157729878064563080803955584985269499994186472079783942404183377695242296289152788154908185130552013951432753148997632323578507137074131845177376689609114975253308906745794984371839952312988353950198030866538756253618535421214253194954603293145507537939731320546686208032528588232652963255550963088571344119439249328480867640436815434047309164687808223851012490130534705427647158409623238123) 1439421788255379275215959765325419043929720157723371200401/1747562187028503746686299553853635643553063923188506902759251937250022196751705340155682655202720363192751787186892107863159676381018035068965958466119538181810433273947829904580526582292369320932134048728374142501965682147541817431447933591106030690334465450755701191781243754499216697336293783127396687916725975251100500896467549458036395977769801208905203001097425041200299917628353220804629035768571072498715030261324138691471497255335498185741379289492513543474304524261634247519034231348033379344777678679950561777846684978640375273167561174451700942154388980887510088060818147834369595669846115248027925007288445161871535514130090907585140894883683709507099726386549038354860875469377442908932714711235823032704493155679240378374325069782368108779247450762222838197717507164088182062062215767468125843278459189085290703729281279344184417197883359351058003644499215541300350121854220342250451978930421772367851329849662028719768708399155817754711362398236471946313773603716759409265530444582884661320404389499624411965234669344882203618613097197387901166904575791500958722726774956950592290330175936039556139052663816485140080963740296685158607671768592)
-      (num-test (/ 7377598052472799909620353419322603137723415431070641423056433630 50990728761110292768803869421408199244526424730838143228662194914314857136430737 89434155113971221138805303763480423496687322824531744020762041598590716339098287 91343386111124700155689622654961840380754244946720984970313893805578518003516073 5641075230099727784981579696383316732450130418277879081291954534985607255267932 91040802121912074401640073226003257602385910518707524375098380810792151468159323 59272268188012925764499414539835790113036863511169317924034366016920114706179376837448098952655862721652129333873020625135398431500899131874782270590048 26690053756452308398721390096804652429111408747235998849320348549870126230712525274708597346508961935323823048352116439255386668122483555236157562141222434006899926132549352821247340442387991613448730451171206857242290791156220288682675982609964518905569737166444127835826079348146626921864776959482079234994631361894786436656768739968380067890165160954836874044821979903056957225885565092422439358816023307475581832942250031121721325840673134241504501661692722633100336840768527354183989544434614842654682324213774503456414914613412547380720171088896588158750436205804689590730033393056191028424154915201435563063992) 3688799026236399954810176709661301568861707715535320711528216815/169215718032454146095901737002485678790901914179482864125777331106759302744215797822810809511498045518338288799757661725047129775976254373463314416017128993811694804386237923340900604770406784566473173755998386770282409830097844352035251738093305402541509197084964701114515390028814839744480965823142680384744649624767291550851759670297818996073873968006960956353033659153219390871979066743795530136868490210455800714335529013059123604101460242870160400211866883478263106349349114199154533363251799944090298252763172390952446660627602934622584400932001701907172000401485323481964448487312714644861543740014645407417493588261100128985848137181719614326345024112347151970444057551896842474702539258687521054961314443551837168457190568932765925484427579811571491887599619302241390226818415165012748654917331557679228501007751078584244340346651276906088856205294333241792044902850102153793417101337667969641035858108457362954650972654353600494166650067557014544136240962457086782865870886529792004619668808741311540795514394731398977642092124679638585188974746423756335151669217754388004341907440529525288302872368689364872785975840444000802518095138062596107983803117056)
-      (num-test (/ -239344771695510351349291992975349015183687755312261264640655565 59880027487583466136533364102518649070390160795136023810470091681171428955831193 48344457085007359228086666145324485903333773379391455489556219681156342646858065 96824393663737121700189215323825147927318524415097221824671795011444303522438090 73240728471954064253765051525185557601431281145369716902120469411886093226662465 53476482728312567840603110355495270554470432250981685279567813448298175801364992 2468459436652089730331798017030410049989399340882712030505584719342958436741536069714790640546086933185494149096286590992747248311590137695839482679011866 -20583944357058654336975302336113341974001469085102805363209530168831840401111182124827636905521584509677325966689931599005216123375088335255672290604710305325984961984791919524676460851699284525672773368217606895110240237523696098521003978238685169880199868729577660354717875890521074505342309726366304528678619465048659607726264456481345739318939431629704180230985397408136331466856633265343276511285483458860216756106887559724757372775728879136089013590836231272961497930729470443491032308329051560641396901204040829291495325588896591482909336032903587307512310970849256645908744180630660878534263566681640143534823) 15956318113034023423286132865023267678912517020817417642710371/3718709813392127924163278362562751486187605430152002432053108623099406465632705761508167478249438322470295467114170871555665890539409511492475240415534629792791729596612426725326976353265532166735941330128195885206087665506220364347120981130748862937276841801804372097254983242962029582754709606117339082763083905960784323141929645331591164015455383939302728076410053178677168172481507115685831178503426055335630689722163467637005123748113214310366231893390818795405612007113310547901224920768646006621130651182788173442625298859454337696280614462941186626306295514630883052819172301830539345633711941340491653447613466053205836875456839023743314390098829184111583809697328393569588632000669468187410368485286035179259523632217543401146996259011916302393091677624838641658623073752023082344005134299104409908004250830639232078441523519412192782367689826532215394196055149255026188549091956300108740792221660678858924234682223183500313556198187095251404633698868186071148295957994257417049500872570631774233307260384902571112475241073598945295745287525486108978093728296107260155093397986671349139935376427469718767763295900745932105722655724205000829205748307261900800)
-
-      (num-test (/ 7013212896988366906/12397903473277899947 818833870013215068/2125577647443895255) 7453564285301859120853045020886215515/5075911640537211768265804260348400698)
-      (num-test (/ -15781329068048599432/14942574238341613337 4388772934226358350/2640112802717985697) -20832244458230302534551181278529162052/32789782692450857054331267544650656975)
-      (num-test (/ -9015230453321124271/17425619133302730035 -10422000746814766599/14972344381173680534) 134979135022768387806775446187867640714/181609815620990738305316999098032100965)
-      (num-test (/ -14741075237791868512/12448692140900938227 -1090381863721238817/1060836378253796023) 15637868866825840780217685066084527776/13573828137487503515304766902031557459)
-      (num-test (/ -7371815071140740177/4722722556038701367 3872455829192658988/994203944294825175) -7329087620340161131469364260313555975/18288534491791723206480607737200436596)
-      (num-test (/ -9856364379969390509/7988230468709836259 -7208901117187058135/7430860779232874136) 1093153305924514768551484985555671272/859497963436269188803272225817371895)
-      (num-test (/ -16740689272507881147/56924866550406451570641164619431212169 -14712532880452686095/143481612520580129383584255576273223983) 2401981091525408257128502717450566513166280001357873948501/837508970838236191644285394369194561392491093277901090055)
-      (num-test (/ 1874027699956565000/65960003455647360668413772300355814843 -172394881832672950/2006879686300828197846469567507151887) -75218962452157875130617756878839223573611935155763100/227423340028380523596387094039260091189651621559491937)
-      (num-test (/ 851521912886492079/58839621451933520132430725102159653727 -5525838657334730480/268863138354222710211869290179088409033) -228942853876053297959532391872114722003932597144466549607/325138254802036127673497464266072288930584674567672498960)
-      (num-test (/ 2130823024472312937/30463932363736038600114358208342163020 413938864244113775/131673792970459944919771618253738144891) 280573549781056638388629087822719475587456644826399754867/12610205563054396144647765193069861697742251186477600500)
-      (num-test (/ 17234694073181371137/253506951459931119968572673772742357160 8407879684613951161/42697666588937447817581914537644794355) 147176244259806896721181660841298454615950364713859506327/426291189417673978158704851675227114861497071554451732552)
-      (num-test (/ 14739301038477826821/4801125431810347467140397350459581435 -1752125940488995048/127905197451270157484305628763539243969) -1885233209620217720514367144506571751170505057476450692549/8412176412616337518572109406238500578932979745867733880)
-      (num-test (/ 9194848570227974720/45448499872046683203864930109076126035374684748838016011669264943000310475483 -4572473918523931944/28941042619577200519536336906341131911598596429670188136734086846500956354149) -33263563043940787786171015409141766453199063320923723716765930467953050399983260590187417389160/25976510037621464639740779963549572814837984766154635046133743883024710122710674726552171566119)
-      (num-test (/ -2662376868940711929/2674240208804755702377222409224408783678596883960539287029565653749020338064 -5046618244273151929/26826013625152995057141957222948811537350409769204161465077735924332004069058) 35710479080747854012875521001477955195584454274704368888444222736697434540936425667291700196441/6747934713661461716612153292457811722283965560031580498434684530869001786777260513409206862728)
-      (num-test (/ 646980248518054663/28444849537262537816809349756569888989442483441699293309597267649158853799707 -10174938507557455325/16470612178414296088079890015341965945714023680627341561729034923083435428747) -10656160760434978971303471120231114671340660575734505071429575384684610862775940451177787597261/289424594898370460244167952344748286246980979584479610186308309369583658143095854438992150589775)
-      (num-test (/ 1268676597518744714/6024937921458004492480888468749320142603908196076058575752452561172018490893 17823595902143962912/85935047374548136904062562443188289405155329832270007415035044821925251080203) 18170630585125644385503771892175817370913744757273904248648000044618805359154885235028182716157/17897676474595109057512045856227678061218241143085827332930191066967148125532813505892133626736)
-      (num-test (/ -3035741006152688190/58890268425224581569217175195410848521985674465189565646495474378301884202047 -4870935665435665519/47998868922405332801456101880162843269583282603435159879276723163289928325531) 145712134636693761356266465698326002831562744975420904782663360472436650653549187025441059178890/286850708819506259357726384810790881448875152111132928069815447961129371272624891025817707117393)
-      (num-test (/ -4420263280205408439/38682162086456801604593696710774835436326970692840048042132553053971380151628 -758651402628235427/1755534012040040367913026343944696058732638465867705260088080517539506722166) 3879961265286134914514096239640695384126081133972137242327715997675029567458817030555062379437/14673138261791601182714628661554161812345431143865809776872034934342213839184709418896670662578)
-      (num-test (/ -312487180249669742743295380499853180353/9828632991038934281 -86131955660561774942466932680637336739/10268762916730341592) 3208856768501438660232746468300370677374054716853273141976/846559380988100144557815474234956961169507773676687849659)
-      (num-test (/ 105376075880566042097567073713047434893/11411565636673693365 -220737802783327232867818580441304577024/5817406274606660773) -613015445021032499619145665530563205764250055719854552289/2518963924957071797477174332253152325843619212749200245760)
-      (num-test (/ -311533429150518992652072799089375050497/4403073054828470603 -320230219907951760832723580313293021909/1370493254961533625) 426954463345823097468320537904981772054351338526938461625/1409997052618498081840381197699863669488222338862641441127)
-      (num-test (/ 305676222727436457375950609916137360009/2001517485431820526 324338803123828318219640932070020543912/11123178903397935211) 3400091311912189654145957985944153094384781502787164376899/649169785656371151621897383467144093766684841422885937712)
-      (num-test (/ 8845112929712368402815105446090151026/8124751572615311799 -107609110538267962880281203537194473336/8714443449141779053) -38540118213625599008519681983731393728094066419546629189/437148645036763776481446937412401903340367189496615845732)
-      (num-test (/ 152921217721894690043853278309581658066/11705615305395353865 184187448038871874764725486848823516773/4171619104693691390) 127585814672335876029018138907883882524550368713261650348/431205482165106014329333719781838993214328411764819575529)
-      (num-test (/ 16414254293541341780725162107696242521/155838132618727968561620486302365154071 323320173010032367023620851618405869489/49801924105617352177018959505967933104) 817461446577249670665800625691379410535771218196808189195363718417488315184/50385611999847495177988476252475899813264458225659097815552272081452203039719)
-      (num-test (/ -188149667625860588508273820953820709614/21438745582767797684161462130971215025 128458309657689922121539794960212789849/134174286369366827879740776978166655691) -25244847384333405496229128525982900130397411994350175944375943735942831513274/2753985018743617742875555653653797261370358442640799457019039857068516281225)
-      (num-test (/ 1218460641064115152742257147372113443/1773382194117714970762642066492794929 -105212349758139121832338365854603836112/35045896682356785176328011712384921341) -42702045738251194875426595475683618047253961691478453648029952948483687063/186581707662369193907913729212042024270164277319717456729276609131940676048)
-      (num-test (/ 1467722271775252460214852151179762687/1747611358981474614363356529179985509 25495740211005247928144692929451604259/29615224810946461612486375021101910565) 14488975012885720730598332784736375353299643425098519766594278819666029385/14852215066131169889445443721709162270198753408805825268529301698140894277)
-      (num-test (/ 6278399735526726207674375684072448068/13890681759576280617381650633747782321 -112063146811220963294237186476216238443/46495820670393894026441353693945662660) -291919348200099113895651901892723884699250237261456280525601785996696740880/1556633509331345870779770006255469001211806559199158615405344674499795966203)
-      (num-test (/ 248406099260780863433196593538936526373/315762135750029127758352280023694126018 -24578051912523675039725210046249323571/3033769619337997374435389027823294736) -376803438597807975522050212312559316811899647514236724224019181136008036264/3880409082236781853269738100403484871805889674074731389226471480469265885139)
-      (num-test (/ -305871752543087256004326578375555909668/80170799467978436032303243749692785696371676780847080230403479135749775915991 -208573266832391890136462745593008906685/96016271562601269514856687672805175650907293023094157826925793080307407361434) 29368665255505841438632782694581946057561031972462112644657516768267440383833513431444679871238206541553985530943912/16721485549600848123731461311227384049611071114404954309505697259277905994635125654414916826332204568970567318299835)
-      (num-test (/ -171651126582338417143004525987733942986/48126955023093310081685702171788275811688444573315712039582092051531229683107 32570134112026732491936310765048378699/18584159151613423191553551933672204731023422884196280183931777685641069715348) -3189991854959918631828923606391779823799241149346421336570141741355492000935500642040047513113849334779592681149128/1567501379505627719887579027549074087653888429037997616626567546431482074522690424133509833932668944596793898937793)
-      (num-test (/ -31304786393644787215292629624842492472/10539846271603297974613179098685212701091372728582260780054561526149580513583 43496364289252206338797704034889660065/966865502932307025364733802774045297740949567802356684866342045679773834966) -30267518040679809082934454680954168768135550720881039440573156734314284479043791824457029301083428211405425375952/458444992982373700837242411005687390212275114474481688646320865335043970683786989531994936463047685893258985162895)
-      (num-test (/ 124366625369659591476708994326732418029/107684759001536292829359995221778346870065030877016948429894748600664800488759 -90949754058598173499067700725927605729/79727020098830307921496202496061295138733611655702270828135321391380898414003) -9915380440470549523296226431396644117384598256053664887332801972488440466568616812942647849957495261151611303260087/9793902347049141646079571573977765974008832433473016883117384010293158932212528563016145547341801740792289848500311)
-      (num-test (/ 26792084925762094333829722201654015569/6815899891200140342329613369008754659665480100088941978786466272502677117648 179968988142253715757129058636648023126/97033837835570527321466682927970125702018459951415339098532052222053589117353) 866579607987744230609336186273867662887766686833260209925103055244528379635362816895584608387230956963010276689619/408883535566062149539621907018509777969515872715944952500700527207173412646715462423653890585029605025758308909216)
-      (num-test (/ 320794852821756057819990044473359503428/42380074203350930293358543616207018031675687905746455222111844144668904183229 -11813439835454851567822019323728871339/51852159737956631156972450987013128151750117741949546305537111598356497409240) -5544635317209327550045071802859986261979158492907374734760649234578367469399038563605323839330681533705071632958240/166884818941132804535892580774781586387104334774784737031184369589400544303785250219152004898392301479219940857877)
-      (num-test (/ 63160395612932962868082774785156358041658469338654564454114468396132462549944/5671929772244157797 19541045450680948617094710246839287171374470593288265457341382295544977156173/10827756125123268218) 227961786821047895774887365257727015864174017882302289602409601101722343657899277052494444293264/36945145824164509580938949252327087600266044162541122809277442696583642758457532273140841543627)
-      (num-test (/ 31389399613343712511677734270541516183531975055644318154870016415582858008412/11320913214023484367 -95931706646769408081251897664360951854776052790951374912970042200868629796051/14301831604104230477) -149641969141325406602881756591195860220337618158488775091717625369334526143115090325362684257508/362011508473745439254610688691597507367516106821889963803421575701854031622412859179610532278239)
-      (num-test (/ -50845041077039215658764589763556935122444212169574762080162289087527164772395/482986173890811026 -51342299909113507561385579724776151277474630060658338514843664853027455595538/3864573616937705869) 196494404298439669659681446421686066898686292162412914850963937042669022612531239234324840686255/24797620991857267698917294149872672843409173617406514673128342148521539559341861421304646801988)
-      (num-test (/ 76283614020376921713154299810619585257752996149145061806263596894412414185408/337890011287912517039286436540240936661 70530558237421368381589233382700323659036925075366138096846582768833233488577/12121510300837787759729092713205686989) 924672613133132744522463879340347327755455994321131972145048214329608890428265966744607561005512244129921459256512/23831571118985077324412202325831974453532679575894228007993082738742295289254461850021038245882565939546151124021397)
-      (num-test (/ 13518475961402756750057330871273933874583566313800024119371308450919239424622/71146816100737230880567880716110051085 -11914742388051168959634071864657967837347162591767656949770878950409478930980/166466796775669753065110807850377519909) -1125188695291804746273664719520877594103080002716204716437885631737502681157239448228517736957154781558316254899699/423847992785167635691798025732868758201476408654527740579259436528169254792708107390082891890404030666159494556650)
-      (num-test (/ -53624051286117226406327700847140806598091981633622544805551583455315188018537/149060170957501829683988930330276188371 -49540630291338976658332195799658601133012561780540500265134312414843218811481/313014990314092319823049811442768272842) 16785131893926373429171158665038393627227592608630727377590747943991201054188961463248027101037470630205119769672154/7384534820569381535972144752572408048556227885764547207137140227958732266609348654686668662110083737942669493487451)
-      (num-test (/ 2634758410586745842739353561704344884865889793873131750193619887157306355755/83106075320614705363810122092414199463231740446254118542567688658288107572919 10787649314660479714744029413883607304719873485501736976813666398631455642569/2439964488756696481271244145022481444549967702052558191280867337292105066432) 2142905652761565172685487282499186838096673751132490328620490049367034561455889328384026705096013173825469773464105722689198047146574263705663366838720/298839732158850477765824602476778580028064205733214070073086531571837859351705342746223206218407306637658483098569582239416197836311325170250187389329637)
-      (num-test (/ -1907320079310938642409293211056905401889419041722087613680756850005726714712/10387378553621846874105702088597026076825105075730032753153301604042569998683 113647247724474559442709588703965365251731833799417671287796250968092484717057/58756890421232187224353930678527831208703723187770044891160428018937233424397) -37356065632762902117955690133395145368676268194116097031480521390942668514422835237280325034441435052929702455487858500299401976652159912902024146542888/393498994563785425899168694480259206994308562177080555315323154941891277193612821825931878224565302417504072329241812530787363937691786269618438039211977)
-      (num-test (/ -54987418627898620923060954379316763081930842855917193391807940070173620336071/17370345837184638879794373707261631548922174314274224219546763452439685451597 107349939397731511365417710412808670916754334908520065561311453951414109180973/7800708635318451621630266369706695626474649690647985662113853436261704078874) -428940831324519456770429889832838610542119304716244392653623661175655561457214418178921042544524225772650432309479656622489393939407340321261255371264054/1864705572939408818246392762570376592749103793151936455808919833872532407312841098160841844995663367019074328670998871082130543124576872890789577304863881)
-
-
-      (test (= -98781233389595723930250385525631360344437602649022271391716773162526352115087074898920261954897888235939429993829738630297052776667061779065100945771127020439712527398509771853491319737304616607041615012797134365574007368603232768089410097730646360760856052946465578073788924743642391638455649511108051053789425902013657106523269224045822294981391380222050223141347787674321888089837786284947870569165079491411110074602544203383038299901291952931113248943344436935596614205784436844912243069019367149526328612664067719765890897558075277707055756274228634652905751880612235340874976952880431555921814590049070979276358637989837532124647692152520447680373275200239544449293834424643702763974403094033892112967196087310232853165951285609426599617479356206218697586025251765476179158153123631158173662488102357611674821528467825910806391548770908013608889792001203039243914696463472490444573930050190716726220002151679336252008777326482398042427845860796285369622627679324605214987983884122808994422164327311297556122943400093231935477754959547620500784989043704825777186301417894825200797719289692636286337716705491307686644214213732116277102140558505945554566856673724837541141206267647285222293953181717113434757149921850120377706206012113994795124049471433490016083401216757825264766474891405185591236321448744678896448941259668731597494947127423662646933419809756274038044752395708014998820826196523041220918922611359697502638594907608648168849193813197790291360087857093790119162389573209640804111261616771827989939551840471235079945175327536638365874717775169210186608268924244639016270610098894971732892267642318266405837012482726627199088381027028630711279130575230815976484191675172279903609489448225149181063260231957171204855841611039996959582465138269247794842445177715476581512709861409446684911276158067098438009067149531119008707418601627426255891/2063950098473886055933596136103014753954685977787179797499441692283103642150668140884348149132839387663291870239435604463778573480782766958396423322880804442523056530013282118705429274303746421980903580754656364533869319744640130831962767797772323836293079599182477171562218297208495122660799328579852852969560730744211066545295945803939271680397511478811389399527913043145952054883289558914237172406636283114284363301999238526952309439259354223729114988806937903509692118585280437646676248013406270664905997291670857985754768850507766359973207600149782819306010561088246502918148146264806947375101624011387317921439210509902170092173796154464078297852707797984007992277904626058467143192149921546030028316990855470478894515952884526783686210401408859364838148201339959570732480920969000913791571631154267939054105878236201498477027265774680071188764947522112650857013491135901945605796776829525789886482760578142306057177990048751864852763036720112071475134369179525117161001517868525821398753039187062869247457336940152614866298628205010037695017885878296140891234142925514925051385440766473260338168038302226808098439763889250948602137806546736025439919604390464712793474019469457135856879584745805794574609707742445431851999335443724488636749987837445626810087003490329257105472274738811579817454656532496370562155449815456374456838912258383282154811001588175608617475540639254689723629881619252699580383612847920348111900440075645703960104081690968807839189109040568288972353424306876947127635585164905071821419089229871978994388197349499565628906992171901547121903117815637249359328193980583892566359962066242217169190169986105579733710057404319381685578470983838597020624234209884597110721892707818651210378187525863009879314177842634871978427592746452643603586344401223449546482306838947819060455178762434166799996220143825677025686435609179225302671777326568324855229172912876656233006785717920665743720753617646617017219230313226844735567400507490772935145894670445831971526014183234960075574401616682479457962912905141754252265169682318523572680657053374002911007741991220001444440319448034755483178790032581428679303588017268970 0) #f)
-      
-      (num-test (/ 10105597264942543888.0 14352488138967388642.0) 5052798632471271944/7176244069483694321)
-      (num-test (/ -17631701977702695093.0 3931860028646338313.0) -17631701977702695093/3931860028646338313)
-      (num-test (/ -1606495881715082381.0 16324360910828438638.0) -1606495881715082381/16324360910828438638)
-      (num-test (/ -7960193178071300653.0 -10280747961248435844.0) 7960193178071300653/10280747961248435844)
-      (num-test (/ -11544909483975853384.0 -16041992360613233027.0) 11544909483975853384/16041992360613233027)
-      (num-test (/ -5758820541298901548.0 -2596462557714095861.0) 5758820541298901548/2596462557714095861)
-      (num-test (/ -13056342734667572546.0 46502284983183419157350605242474199851.0) -13056342734667572546/46502284983183419157350605242474199851)
-      (num-test (/ 12668118634717482325.0 -338544675918656078399121171905238525746.0) -12668118634717482325/338544675918656078399121171905238525746)
-      (num-test (/ -16738429327795346815.0 164053836541028518093058940786011794219.0) -16738429327795346815/164053836541028518093058940786011794219)
-      (num-test (/ -9884600460121235549.0 -53914696297933680001835530599748561584.0) 9884600460121235549/53914696297933680001835530599748561584)
-      (num-test (/ 6753521264659576004.0 71759828079371803409570464915096122874.0) 3376760632329788002/35879914039685901704785232457548061437)
-      (num-test (/ -6072478784520825268.0 83641961138289700975241455431547940418.0) -3036239392260412634/41820980569144850487620727715773970209)
-      (num-test (/ -6708950756971973620.0 -9847903810677323447803434015107261150885944735136350527205856921771320298384705376646797569973415403097847060539915279223391112430240736564839483430569706.0) 3354475378485986810/4923951905338661723901717007553630575442972367568175263602928460885660149192352688323398784986707701548923530269957639611695556215120368282419741715284853)
-      (num-test (/ 11263779860755455072.0 2292311486393743282743453705144070351222990311578446825826935237655927864700827857707370158936582804478427014131790879562565658386819339761919809732496450.0) 1877296643459242512/382051914398957213790575617524011725203831718596407804304489206275987977450137976284561693156097134079737835688631813260427609731136556626986634955416075)
-      (num-test (/ 9956488981426387585.0 -12351244248621474338537656633137999145154500022264356186225225426288301330225259889671144104952158102155582320296061124840400655528634050137479515338944145.0) -1991297796285277517/2470248849724294867707531326627599829030900004452871237245045085257660266045051977934228820990431620431116464059212224968080131105726810027495903067788829)
-      (num-test (/ -14875992781716065391.0 4906952781757522095285156014969507916562921709689447567404076064849249737893410245743456952512717420040816186768213920574809530298070437840356629617118643.0) -2125141825959437913/700993254536788870755022287852786845223274529955635366772010866407035676841915749391922421787531060005830883824030560082115647185438633977193804231016949)
-      (num-test (/ 16043178952268979636.0 -4962728781666935768923030490263743715131420507991284894489828489607808897271220927863958149140648859077934323268424257800724618076505149638049461104621679.0) -5347726317422993212/1654242927222311922974343496754581238377140169330428298163276163202602965757073642621319383046882953025978107756141419266908206025501716546016487034873893)
-      (num-test (/ -14889985628902581941.0 3075736124701105220602924325296812116294816310089906623707854625135862902005059305428034753787024827094954645083406870532379125275086885405969947540175361.0) -14889985628902581941/3075736124701105220602924325296812116294816310089906623707854625135862902005059305428034753787024827094954645083406870532379125275086885405969947540175361)
-      (num-test (/ -1719613957783789857.0 19860562547348050982501313785551054055826630539673708970554435103060535649825139319625648954889488501680865494719253019921780044205805557658109807483499994523398090829033362953135186523580359552555144614353929273831853529446536288544481045105104526669277307473478898498061888931858821517694257595658138564305517447595298378933983614114298000880741350618424855028965861930329619462261269994651112266861896630584883581092431090390354633458596611690990999635499563944625720180529318327647519405136188243979680965052005899543797270970540925042201315580510136864931200059448645464256385079735225156720340173280541113382758.0) -1719613957783789857/19860562547348050982501313785551054055826630539673708970554435103060535649825139319625648954889488501680865494719253019921780044205805557658109807483499994523398090829033362953135186523580359552555144614353929273831853529446536288544481045105104526669277307473478898498061888931858821517694257595658138564305517447595298378933983614114298000880741350618424855028965861930329619462261269994651112266861896630584883581092431090390354633458596611690990999635499563944625720180529318327647519405136188243979680965052005899543797270970540925042201315580510136864931200059448645464256385079735225156720340173280541113382758)
-      (num-test (/ -10969623867482498359.0 1292477254230352575769754773488799598312602810841892384475535212194939033905139960602724737178675944133847094464739764817257836826367652752931492512753561670732296265459534230949226553571982695924178928914002527460943582374603078611662312521259541641138419845784008028215876048965254023368247445173694441960256131358058174374542730502334351759171930973722361567186133851896057677818979314942434199157003833234473048838906103902832115569853657335216793235394595479328932380393044485884605451918890395812628720641212850763944658735838941829604119213195707479940053016354291972875689927240247563236506479099606571912595.0) -10969623867482498359/1292477254230352575769754773488799598312602810841892384475535212194939033905139960602724737178675944133847094464739764817257836826367652752931492512753561670732296265459534230949226553571982695924178928914002527460943582374603078611662312521259541641138419845784008028215876048965254023368247445173694441960256131358058174374542730502334351759171930973722361567186133851896057677818979314942434199157003833234473048838906103902832115569853657335216793235394595479328932380393044485884605451918890395812628720641212850763944658735838941829604119213195707479940053016354291972875689927240247563236506479099606571912595)
-      (num-test (/ -3716891004757979686.0 -19452372993227550502015765258932159656814363741878583541173956168837566077148160901999018823586675966076058615847408138956450751813058209394199427182041779436168298455103717521843644244801542056954603631432685194627158423459586845252167819811850263444712218938833443253125954475476481099092216538126519474183531297423759923656571895377587989169731023397615799830371852298135015608612181670362528239430952907458704415974164085176066242388561893721949244663406941558257051263727439679525692652639731850971185056484335828001005009903973037524233097329857690857731943951449292814500362180170793919266389501882641682782987.0) 3716891004757979686/19452372993227550502015765258932159656814363741878583541173956168837566077148160901999018823586675966076058615847408138956450751813058209394199427182041779436168298455103717521843644244801542056954603631432685194627158423459586845252167819811850263444712218938833443253125954475476481099092216538126519474183531297423759923656571895377587989169731023397615799830371852298135015608612181670362528239430952907458704415974164085176066242388561893721949244663406941558257051263727439679525692652639731850971185056484335828001005009903973037524233097329857690857731943951449292814500362180170793919266389501882641682782987)
-      (num-test (/ -4863232114852441787.0 -22963038454503597269981750990033903654256693514059439027985256604978917966584414065892146187253799108250061573972673983350956191446047978392921074610323648301008272837432907303975548030552369880338022067315042332692023645592417869181836251486577977896077712912433381480614752789750181208326525834629219729662085632321271870762094800588296544243340047360684854239747242066367921596241226349790282723168222543448385227922748241223520686047460119733024390425165073367321644498280127168757335614077882325524816799960018589278475564547840614315473357481582710826551932681173443524724802157570101916268510464302946527662720.0) 4863232114852441787/22963038454503597269981750990033903654256693514059439027985256604978917966584414065892146187253799108250061573972673983350956191446047978392921074610323648301008272837432907303975548030552369880338022067315042332692023645592417869181836251486577977896077712912433381480614752789750181208326525834629219729662085632321271870762094800588296544243340047360684854239747242066367921596241226349790282723168222543448385227922748241223520686047460119733024390425165073367321644498280127168757335614077882325524816799960018589278475564547840614315473357481582710826551932681173443524724802157570101916268510464302946527662720)
-      (num-test (/ -16248276650501285553.0 -3381199474840825715485713565301777938368574604710714363907009216856320913536015299178065264912798511857598595067318796576494480424838898250138649774858742984769125731728430552285782315111538920026330816414650913188340281906359149109963139438960274321560117812365241840204034925444652058916966934904097509799291744775242863360284348334605170437300543978049053839829106628489146216325576991696936733592366926096500684308845306493636196092408597450926695579897293944488261001228478152650490677071497874746121221519036861983646423005753475340900508665494162949119110128646472783016552527735050067363030838015919512260159.0) 16248276650501285553/3381199474840825715485713565301777938368574604710714363907009216856320913536015299178065264912798511857598595067318796576494480424838898250138649774858742984769125731728430552285782315111538920026330816414650913188340281906359149109963139438960274321560117812365241840204034925444652058916966934904097509799291744775242863360284348334605170437300543978049053839829106628489146216325576991696936733592366926096500684308845306493636196092408597450926695579897293944488261001228478152650490677071497874746121221519036861983646423005753475340900508665494162949119110128646472783016552527735050067363030838015919512260159)
-      (num-test (/ 18296946401228630959.0 3302341071702763311560113831030141639804425031433511503765833897787925467295486187687396312611805794369889470239777040624530990622212474466940548049117664906468330871893337410618797113677420975837622378808494314918471282099855916016026079371666730617071364751834080179173620476977670099126230223862266413091012344741482772771219725893630556702028108027870656512750807359335108428687238687397060104669074315031780019301768744978815422943986587389425726602444937024004102212071953113581935989741954695450085391443134273670514145585869912689150728183940456773133212037846765421397201956541430155664614978559762638030787.0) 494512064898071107/89252461397371981393516590027841665940660135984689500101779294534808796413391518586145846286805562009997012709183163260122459206005742553160555352678855808282927861402522632719426949018308675022638442670499846349147872489185295027460164307342344070731658506806326491329016769648045137814222438482763957110567901209229264128951884483611636667622381298050558284128400198900948876451006451010731354180245251757615676197345101215643660079567205064579073691957971270919029789515458192258971242965998775552705010579544169558662544475293781424031100761728120453327924649671534200578302755582200815017962566988101692919751)
-      (num-test (/ -60488682170925814337492051725122486652.0 14880088785789146426.0) -30244341085462907168746025862561243326/7440044392894573213)
-      (num-test (/ 126617729996196635247771282957911941277.0 -7166506344996883172.0) -126617729996196635247771282957911941277/7166506344996883172)
-      (num-test (/ -278675896803726074870988122161067771390.0 7744689831802931490.0) -27867589680372607487098812216106777139/774468983180293149)
-      (num-test (/ -283351838662873779255871649630248958879.0 6912311315831153835.0) -14913254666467041013466928927907839941/363805858727955465)
-      (num-test (/ -9715584046609700027352634666499181378.0 3368831995960494221.0) -9715584046609700027352634666499181378/3368831995960494221)
-      (num-test (/ -137493547985106345282009151869389470397.0 -1916381539906956855.0) 137493547985106345282009151869389470397/1916381539906956855)
-      (num-test (/ -328662747577960331872949773416436800743.0 -231069430804205460334599495337085157308.0) 328662747577960331872949773416436800743/231069430804205460334599495337085157308)
-      (num-test (/ 213595640581249636406536485951630735277.0 -48492294677143227478357598229530842959.0) -213595640581249636406536485951630735277/48492294677143227478357598229530842959)
-      (num-test (/ 85922846498729014445816145204889624189.0 193533957681757355413031965695625196813.0) 85922846498729014445816145204889624189/193533957681757355413031965695625196813)
-      (num-test (/ 24053342958857142686054803491202486471.0 196417511107100936775397820630955772553.0) 24053342958857142686054803491202486471/196417511107100936775397820630955772553)
-      (num-test (/ 102038936612518756467074084117019701214.0 -111946989731587760700903475996379168167.0) -102038936612518756467074084117019701214/111946989731587760700903475996379168167)
-      (num-test (/ -3006867214208872584699983438179656913.0 -234257597822744479264249663225224173340.0) 3006867214208872584699983438179656913/234257597822744479264249663225224173340)
-      (num-test (/ -279839802710533516603863620922251878907.0 -3244112647743502769852782626803305310331045534071805654982307107362388474314396636799597033636575215617240554815450017779373048313695795886893032630263219.0) 279839802710533516603863620922251878907/3244112647743502769852782626803305310331045534071805654982307107362388474314396636799597033636575215617240554815450017779373048313695795886893032630263219)
-      (num-test (/ 123635964546481689465778244982425098404.0 7701433613491146708866098469269971554817017737111287276993583150548359764165526640986060909954451793171933304569726872785964805121981749276421956645830854.0) 61817982273240844732889122491212549202/3850716806745573354433049234634985777408508868555643638496791575274179882082763320493030454977225896585966652284863436392982402560990874638210978322915427)
-      (num-test (/ 166158110049010486343321316578688184578.0 4093720847216792748840371965199135052196058344862447621818024731938681519017878880275303125899149558774718190527651555811733139227128378041055212888819294.0) 83079055024505243171660658289344092289/2046860423608396374420185982599567526098029172431223810909012365969340759508939440137651562949574779387359095263825777905866569613564189020527606444409647)
-      (num-test (/ 147416259636838312272435267341375281181.0 -11266711292262839805944890501811605204323255169233519804446548849178247889563130015168799346120099052214488209897402054530713234143622703174309015777885801.0) -147416259636838312272435267341375281181/11266711292262839805944890501811605204323255169233519804446548849178247889563130015168799346120099052214488209897402054530713234143622703174309015777885801)
-      (num-test (/ 102557200511608632541115941654031896919.0 3866177549962722728707550488877109233779215384377007088712280650225992470307822792085413087509167847767889824884877044539352696974351192629898363157976511.0) 102557200511608632541115941654031896919/3866177549962722728707550488877109233779215384377007088712280650225992470307822792085413087509167847767889824884877044539352696974351192629898363157976511)
-      (num-test (/ 47794953079190110032282671989549362415.0 3802290983508829335098916118339496411537222492645529399519373082799614656011270200284796148989094312601047370399228868583158444769807910513767845541589667.0) 47794953079190110032282671989549362415/3802290983508829335098916118339496411537222492645529399519373082799614656011270200284796148989094312601047370399228868583158444769807910513767845541589667)
-      (num-test (/ -169956065319483471022234920202991103615.0 -9934427489865644196610501807375648335352544234206717324511161205173460054921759084767897792996557220898467288533128078406604709773449948420404563411793533441010236017064154469575084055359823982786110746700747423674942932421964955746280671982635899487781780756099620799397239156211815110739544719746684712086075069101799537802834839550142629064374734870047412916259754010150500874430055034366305216104752636211802195447299210332237598443674867760860326529472901775427058078447963316168327741049511844237329137194533000697525539835371015163158135757326482343130221118201740819963770851200676279882978581431999960842565.0) 33991213063896694204446984040598220723/1986885497973128839322100361475129667070508846841343464902232241034692010984351816953579558599311444179693457706625615681320941954689989684080912682358706688202047203412830893915016811071964796557222149340149484734988586484392991149256134396527179897556356151219924159879447831242363022147908943949336942417215013820359907560566967910028525812874946974009482583251950802030100174886011006873261043220950527242360439089459842066447519688734973552172065305894580355085411615689592663233665548209902368847465827438906600139505107967074203032631627151465296468626044223640348163992754170240135255976595716286399992168513)
-      (num-test (/ -83006311763073652927964071041666508273.0 13480787677843057038436344704360462056114592749322481662307876594244244638227291805757775026215166740035048814729231681821563443093991755779505400592913963236010573873554317250153995160235771659208137440518282824497744092608999871327127239673370293239927529076145825972430101380272357235582367639159280348164804218713823424182167974242317526959809443701996053548231667727254858428867000011055354779789221097183515832386890638024105232865079002765479933320220378271026425568216748186200736499581088153390350474814123049637951929317200314355414551809067125550551841102097159644340520444983020267926123546444838010089690.0) -83006311763073652927964071041666508273/13480787677843057038436344704360462056114592749322481662307876594244244638227291805757775026215166740035048814729231681821563443093991755779505400592913963236010573873554317250153995160235771659208137440518282824497744092608999871327127239673370293239927529076145825972430101380272357235582367639159280348164804218713823424182167974242317526959809443701996053548231667727254858428867000011055354779789221097183515832386890638024105232865079002765479933320220378271026425568216748186200736499581088153390350474814123049637951929317200314355414551809067125550551841102097159644340520444983020267926123546444838010089690)
-      (num-test (/ -312626207169475064151212222217866488926.0 6989069923898656093413456232544365450599471748502878018530391549015151484336014906416216966193568842618920902504390187814247729346977677905224098932673981665869061845335443588666641982676550205160521286690015544764015602751932938178737949961754714143180917985455875095030469699198116593730005119922928175789172042067281849364217595912265452199938281052984802042194034638773435768458457616208103331213440768472281882976004050012769415198321241810008696147179275528426468408383757692656341606162350211696837361434874035354680073309142183699892959618671515841112321607728427286289324836870027735590091451421689980776552.0) -52104367861579177358535370369644414821/1164844987316442682235576038757394241766578624750479669755065258169191914056002484402702827698928140436486817084065031302374621557829612984204016488778996944311510307555907264777773663779425034193420214448335924127335933791988823029789658326959119023863486330909312515838411616533019432288334186653821362631528673677880308227369599318710908699989713508830800340365672439795572628076409602701350555202240128078713647162667341668794902533053540301668116024529879254737744734730626282109390267693725035282806226905812339225780012218190363949982159936445252640185386934621404547714887472811671289265015241903614996796092)
-      (num-test (/ -151709660794612786408772973806200383563.0 -26960472721919005254400858042130056790831511338891584787669209989714807518625849812230185079206081782191501696661436514815190623849929065098497737155759771863508038766934134444191240792356114381746781342181881402424707118515655119761011977116554236461222788625158348668147995099157685699761135150772589445239536582228655532345059046596356954495360132444243748421428095867292294626357084961338288369883088525401649234025290736504802104065029036642533076183281468647642956623788270236516849523210698622687255735945678505925047193818483603361307498423724202227256505312543145618362906047473400380196192622607541097732443.0) 151709660794612786408772973806200383563/26960472721919005254400858042130056790831511338891584787669209989714807518625849812230185079206081782191501696661436514815190623849929065098497737155759771863508038766934134444191240792356114381746781342181881402424707118515655119761011977116554236461222788625158348668147995099157685699761135150772589445239536582228655532345059046596356954495360132444243748421428095867292294626357084961338288369883088525401649234025290736504802104065029036642533076183281468647642956623788270236516849523210698622687255735945678505925047193818483603361307498423724202227256505312543145618362906047473400380196192622607541097732443)
-      (num-test (/ 138834496986391136939574372853300933725.0 -8052690543272184576133758511645801940246473546142520821850130421981395129853341888352999304040698251945886555605291324954368612109314080471658982022831338507499254609048475429862437003158379101603576571787302167207044118847876475134352180874260998595377014195145760071923429129767580115085764485254455919915567128572731355497418831212259648020550107573824886521471697331410754043280744066090848295906051303624846301488010249980896364883452154860562864255354208802313850527991005497484253401461375477060954782095047043919500670383372218536999834862885439984085848342867301834247551832677237328664699302165347765799113.0) -15426055220710126326619374761477881525/894743393696909397348195390182866882249608171793613424650014491331266125539260209816999922671188694660654061733921258328263179123257120052406553558092370945277694956560941714429159667017597677955952952420811351911893790983097386126039131208251222066153001577238417785769269903307508901676196053917161768879507458730303483944157647912473294224505567508202765169052410814601194893697860451787872032878450144847205144609778916664544040542605794984506984917261578755812650058665667277498250377940152830784550531343894115991055630042596913170777759429209493331565094260318589092694172425853026369851633255796149751755457)
-      (num-test (/ 276499207940187081393841843387608369874.0 27347897028734618663428054896349668572244941195143856840032842195489553215406302254043947382368793914074147314353589439281000471813879502242851166670252197853998033813694814376228360691543987661407996785043637351295817024680721181205269262470473172181965930243852520386958529041036476807810647578694133804796395977642274699322030062940721165202488695975750512485574440928370802874677938542169620505668128224812441566912043326338714451629730522324228356364241376445033028898865300103247057378058702233150414643818049655628999871012383236520330575609745427181485617250755214922048672375947942288446974485524776744246517.0) 8919329288393131657865865915729302254/882190226733374795594453383753215115233707780488511510968801361144824297271171040453030560721573997228198300463019014170354853929479983943317779570008135414645097864957897237942850344888515731013161186614310882299865065312281328425976427821628166844579546136898468399579307388420531509929375728344972058219238579923944345139420324610991005329112538579862919757599175513818412995957352856199020016311875104026207792481033655688345627471926791042717043753685205691775258996737590325911195399292216201069368214316711279213838705516528491500655825019669207328435019911314684352324150721804772331885386273726605701427307)
-      (num-test (/ -8979365591106781219797187096315899769868799444656824967426553299158070014074001230883484015880186603742048949313393413640240595706939311540002219411120389.0 -1698360947072008877.0) 1282766513015254459971026728045128538552685634950974995346650471308295716296285890126212002268598086248864135616199059091462942243848473077143174201588627/242622992438858411)
-      (num-test (/ -12831814656788829919185319784994714617782749504716966706877579983082880759985031662545957372565411439648298939198657738497464024214657609856476819270030801.0 454910754379715.0) -273017333123166594025219569893504566335803180951424823550586808150699590637979397075445901543944924247836147642524632733988596259886332124605889771702783/9678952220845)
-      (num-test (/ -7834266257250691217409788323211914445703052638619784568844628449769010091330019095736167988675873769434766592786720961949649685040028101508217441360672222.0 -428418418877192732.0) 3917133128625345608704894161605957222851526319309892284422314224884505045665009547868083994337936884717383296393360480974824842520014050754108720680336111/214209209438596366)
-      (num-test (/ -4001605821592542867351046644170905984672346731784670159062281252096012802838642896466582343641124674682428297533953704119505640938363392225910275838094045.0 15760991890495426717.0) -4001605821592542867351046644170905984672346731784670159062281252096012802838642896466582343641124674682428297533953704119505640938363392225910275838094045/15760991890495426717)
-      (num-test (/ 2876630161532936743269451364955814480771395635620140205538288339793482694260173239474830738010159518887660000673207712630507802368373928478641773477534499.0 -6788234478844960330.0) -2876630161532936743269451364955814480771395635620140205538288339793482694260173239474830738010159518887660000673207712630507802368373928478641773477534499/6788234478844960330)
-      (num-test (/ 6230070442453337264527950102774203962152836811174649694700041895216739851602598854067104967963392074425258687296947909484969927078206601660837276754799333.0 190237375887614033974333796608341639595.0) 6230070442453337264527950102774203962152836811174649694700041895216739851602598854067104967963392074425258687296947909484969927078206601660837276754799333/190237375887614033974333796608341639595)
-      (num-test (/ -12098771374444180013224380531550204930654718468097503123335711776524055419889032578894177605164827523969169377266342179411916625188550162928371789854647472.0 -41681385674896602840749705069663453185.0) 12098771374444180013224380531550204930654718468097503123335711776524055419889032578894177605164827523969169377266342179411916625188550162928371789854647472/41681385674896602840749705069663453185)
-      (num-test (/ 13185465843955116174925558412278612918939024395488172088108029202384613698982949554556435640011161663974075894844304583900497170806796813871943782330552768.0 -155202352609947911537719051033334010254.0) -6592732921977558087462779206139306459469512197744086044054014601192306849491474777278217820005580831987037947422152291950248585403398406935971891165276384/77601176304973955768859525516667005127)
-      (num-test (/ 12784980722915659825738808684740823452025110516624579136271791852138148426775553817114893299569867520414470532361018804123866264934222335562072872489963044.0 -249441012384365373362771955533424187237.0) -12784980722915659825738808684740823452025110516624579136271791852138148426775553817114893299569867520414470532361018804123866264934222335562072872489963044/249441012384365373362771955533424187237)
-      (num-test (/ 8517839393030302736298983538193047531846908718502576675615969705563208303329257882565359266876007571790337440612227785062203468682754778416335180236967433.0 -23101645464137481399279134347982485126.0) -8517839393030302736298983538193047531846908718502576675615969705563208303329257882565359266876007571790337440612227785062203468682754778416335180236967433/23101645464137481399279134347982485126)
-      (num-test (/ -10157767522292361462005308817460390811646115952647174687477824271227382383351453540195549992670001314693794150879368708343715654899952822395459036505947192.0 -25611473771508763579433379623726126173.0) 10157767522292361462005308817460390811646115952647174687477824271227382383351453540195549992670001314693794150879368708343715654899952822395459036505947192/25611473771508763579433379623726126173)
-      (num-test (/ -8580252632668820290302987230726290672170301642399871646484841866604753910447257372311950907045477729554307803379310475132687855999835211879267570997069974.0 5347050029330174629945013741349819215851040371727058829687387719215168997632386672310746837193930669173408831178932364105722911104309540550576485594530627.0) -8580252632668820290302987230726290672170301642399871646484841866604753910447257372311950907045477729554307803379310475132687855999835211879267570997069974/5347050029330174629945013741349819215851040371727058829687387719215168997632386672310746837193930669173408831178932364105722911104309540550576485594530627)
-      (num-test (/ 7706102251141221799524762336156378964168657337573751909064577951085535246905735244239132983582998872001001594454632956803416956154262109939446710205558308.0 6334400709835247308796432875490978646658012545184955441452799118298109610816693049400832749087993843490999852355789914065232784070007399786089389453289854.0) 3853051125570610899762381168078189482084328668786875954532288975542767623452867622119566491791499436000500797227316478401708478077131054969723355102779154/3167200354917623654398216437745489323329006272592477720726399559149054805408346524700416374543996921745499926177894957032616392035003699893044694726644927)
-      (num-test (/ 12609622044672092190084693450911157599596799695538449568681964257744962273690941575572590166273187189250007688411096790312605666562908125521094386992971478.0 -8237858212652788898158635047388584411011830102060269605835391741772914864422465141467281143809161251942948659243584296367296559912373856433388249393853968.0) -6304811022336046095042346725455578799798399847769224784340982128872481136845470787786295083136593594625003844205548395156302833281454062760547193496485739/4118929106326394449079317523694292205505915051030134802917695870886457432211232570733640571904580625971474329621792148183648279956186928216694124696926984)
-      (num-test (/ -9988492519236282081446302885464711911055350309732728352574982611126604133339499170845224383282665522673248920309221355720665956477799939031063172954469785.0 -1878204914631111607000020160429571305542722711529281855381736226230242796648854769713662269068364131804626863789957256573308715572826753755672493154125086.0) 9988492519236282081446302885464711911055350309732728352574982611126604133339499170845224383282665522673248920309221355720665956477799939031063172954469785/1878204914631111607000020160429571305542722711529281855381736226230242796648854769713662269068364131804626863789957256573308715572826753755672493154125086)
-      ))
+(when with-bignums
+  (num-test (/ 1/9223372036854775807 1+1i 1-1i) 5.421010862427522170625011179760852311177E-20)
+  (num-test (/ (/ 1 most-positive-fixnum) most-negative-fixnum) -1/85070591730234615856620279821087277056)
+  (num-test (/ 1.0e308+1.0e308i 2.0e308+2.0e308i) (/ 1.0e307+1.0e307i 2.0e307+2.0e307i))
+  (num-test (/ (+ 1.2345e-15 1 -1)) 8.1004455245038e+14)
+  (num-test (/ -1.797693134862315699999999999999999999998E308 -9223372036854775808) 1.949062802279999590850112500817203908808E289)
+  (num-test (/ -1/19073486328125 524288) -1/10000000000000000000)
+  (num-test (/ -1/524288 19073486328125) -1/10000000000000000000)
+  (num-test (/ -1024 1/9765625 1/512 1/1953125) -10000000000000000000)
+  (num-test (/ -21 -1/2432902008176640000) 51090942171709440000)
+  (num-test (/ -21 1/2432902008176640000) -51090942171709440000)
+  (num-test (/ -2432902008176640000 -1/21) 51090942171709440000)
+  (num-test (/ -2432902008176640000 1/21) -51090942171709440000)
+  (num-test (/ -9223372036854775808 -9223372036854775808 -9223372036854775808) -1/9223372036854775808)
+  (num-test (/ -9223372036854775808 -9223372036854775808) 1)
+  (num-test (/ -9223372036854775808 9223372036854775807 -9223372036854775808) 1/9223372036854775807)
+  (num-test (/ 0+1e20i 0-1e20i) -1.0)
+  (num-test (/ 1 1000000000 1000000000 1000000000) 1/1000000000000000000000000000)
+  (num-test (/ 1.0e20+i 1.0e20+i) 1.0)
+  (num-test (/ 1/1024 9765625 -512 1953125) -1/10000000000000000000)
+  (num-test (/ 1/1024 9765625 512 1953125) 1/10000000000000000000)
+  (num-test (/ 1/19073486328125 524288) 1/10000000000000000000)
+  (num-test (/ 1/524288 19073486328125) 1/10000000000000000000)
+  (num-test (/ 1/9223372036854775807 1/3) 3/9223372036854775807)
+  (num-test (/ 1/9223372036854775807 1/9223372036854775806) 9223372036854775806/9223372036854775807)
+  (num-test (/ 1/98947 2/97499 3/76847 4/61981 5/59981 6/66601) 1855154611405774907304533/71241840)
+  (num-test (/ 1/98947 2/97499 3/76847 4/61981 5/59981) 27854756105850886733/11873640)
+  (num-test (/ 1024 1/9765625 1/512 1/1953125) 10000000000000000000)
+  (num-test (/ 132120577/12 33292289/6 260046847/4) 264241154/8657554783862783)
+  (num-test (/ 1e20 0+i) 0-1e20i)
+  (num-test (/ 21 -1/2432902008176640000) -51090942171709440000)
+  (num-test (/ 21 1/2432902008176640000) 51090942171709440000)
+  (num-test (/ 2432902008176640000 -1/21) -51090942171709440000)
+  (num-test (/ 2432902008176640000 1/21) 51090942171709440000)
+  (num-test (/ 500009/500029 500057/500041 500083/500069) 125029751909525461/125042254395637199)
+  (num-test (/ 9223372036854775807 -9223372036854775808) -9223372036854775807/9223372036854775808)
+  (num-test (/ 98947 2/97499 76847 4/61981 5/59981) 35865350012435458633/3073880)
+  (num-test (/ most-negative-fixnum) -1/9223372036854775808)
+  (num-test (/ 10105597264942543888 14352488138967388642) 5052798632471271944/7176244069483694321)
+  (num-test (/ -17631701977702695093 3931860028646338313) -17631701977702695093/3931860028646338313)
+  (num-test (/ -1606495881715082381 16324360910828438638) -1606495881715082381/16324360910828438638)
+  (num-test (/ -7960193178071300653 -10280747961248435844) 7960193178071300653/10280747961248435844)
+  (num-test (/ -11544909483975853384 -16041992360613233027) 11544909483975853384/16041992360613233027)
+  (num-test (/ -5758820541298901548 -2596462557714095861) 5758820541298901548/2596462557714095861)
+  (num-test (/ -13056342734667572546 46502284983183419157350605242474199851) -13056342734667572546/46502284983183419157350605242474199851)
+  (num-test (/ 12668118634717482325 -338544675918656078399121171905238525746) -12668118634717482325/338544675918656078399121171905238525746)
+  (num-test (/ -16738429327795346815 164053836541028518093058940786011794219) -16738429327795346815/164053836541028518093058940786011794219)
+  (num-test (/ -9884600460121235549 -53914696297933680001835530599748561584) 9884600460121235549/53914696297933680001835530599748561584)
+  (num-test (/ 6753521264659576004 71759828079371803409570464915096122874) 3376760632329788002/35879914039685901704785232457548061437)
+  (num-test (/ -6072478784520825268 83641961138289700975241455431547940418) -3036239392260412634/41820980569144850487620727715773970209)
+  (num-test (/ -6708950756971973620 -9847903810677323447803434015107261150885944735136350527205856921771320298384705376646797569973415403097847060539915279223391112430240736564839483430569706) 3354475378485986810/4923951905338661723901717007553630575442972367568175263602928460885660149192352688323398784986707701548923530269957639611695556215120368282419741715284853)
+  (num-test (/ 11263779860755455072 2292311486393743282743453705144070351222990311578446825826935237655927864700827857707370158936582804478427014131790879562565658386819339761919809732496450) 1877296643459242512/382051914398957213790575617524011725203831718596407804304489206275987977450137976284561693156097134079737835688631813260427609731136556626986634955416075)
+  (num-test (/ 9956488981426387585 -12351244248621474338537656633137999145154500022264356186225225426288301330225259889671144104952158102155582320296061124840400655528634050137479515338944145) -1991297796285277517/2470248849724294867707531326627599829030900004452871237245045085257660266045051977934228820990431620431116464059212224968080131105726810027495903067788829)
+  (num-test (/ -14875992781716065391 4906952781757522095285156014969507916562921709689447567404076064849249737893410245743456952512717420040816186768213920574809530298070437840356629617118643) -2125141825959437913/700993254536788870755022287852786845223274529955635366772010866407035676841915749391922421787531060005830883824030560082115647185438633977193804231016949)
+  (num-test (/ 16043178952268979636 -4962728781666935768923030490263743715131420507991284894489828489607808897271220927863958149140648859077934323268424257800724618076505149638049461104621679) -5347726317422993212/1654242927222311922974343496754581238377140169330428298163276163202602965757073642621319383046882953025978107756141419266908206025501716546016487034873893)
+  (num-test (/ -14889985628902581941 3075736124701105220602924325296812116294816310089906623707854625135862902005059305428034753787024827094954645083406870532379125275086885405969947540175361) -14889985628902581941/3075736124701105220602924325296812116294816310089906623707854625135862902005059305428034753787024827094954645083406870532379125275086885405969947540175361)
+  (num-test (/ -1719613957783789857 19860562547348050982501313785551054055826630539673708970554435103060535649825139319625648954889488501680865494719253019921780044205805557658109807483499994523398090829033362953135186523580359552555144614353929273831853529446536288544481045105104526669277307473478898498061888931858821517694257595658138564305517447595298378933983614114298000880741350618424855028965861930329619462261269994651112266861896630584883581092431090390354633458596611690990999635499563944625720180529318327647519405136188243979680965052005899543797270970540925042201315580510136864931200059448645464256385079735225156720340173280541113382758) -1719613957783789857/19860562547348050982501313785551054055826630539673708970554435103060535649825139319625648954889488501680865494719253019921780044205805557658109807483499994523398090829033362953135186523580359552555144614353929273831853529446536288544481045105104526669277307473478898498061888931858821517694257595658138564305517447595298378933983614114298000880741350618424855028965861930329619462261269994651112266861896630584883581092431090390354633458596611690990999635499563944625720180529318327647519405136188243979680965052005899543797270970540925042201315580510136864931200059448645464256385079735225156720340173280541113382758)
+  (num-test (/ -10969623867482498359 1292477254230352575769754773488799598312602810841892384475535212194939033905139960602724737178675944133847094464739764817257836826367652752931492512753561670732296265459534230949226553571982695924178928914002527460943582374603078611662312521259541641138419845784008028215876048965254023368247445173694441960256131358058174374542730502334351759171930973722361567186133851896057677818979314942434199157003833234473048838906103902832115569853657335216793235394595479328932380393044485884605451918890395812628720641212850763944658735838941829604119213195707479940053016354291972875689927240247563236506479099606571912595) -10969623867482498359/1292477254230352575769754773488799598312602810841892384475535212194939033905139960602724737178675944133847094464739764817257836826367652752931492512753561670732296265459534230949226553571982695924178928914002527460943582374603078611662312521259541641138419845784008028215876048965254023368247445173694441960256131358058174374542730502334351759171930973722361567186133851896057677818979314942434199157003833234473048838906103902832115569853657335216793235394595479328932380393044485884605451918890395812628720641212850763944658735838941829604119213195707479940053016354291972875689927240247563236506479099606571912595)
+  (num-test (/ -3716891004757979686 -19452372993227550502015765258932159656814363741878583541173956168837566077148160901999018823586675966076058615847408138956450751813058209394199427182041779436168298455103717521843644244801542056954603631432685194627158423459586845252167819811850263444712218938833443253125954475476481099092216538126519474183531297423759923656571895377587989169731023397615799830371852298135015608612181670362528239430952907458704415974164085176066242388561893721949244663406941558257051263727439679525692652639731850971185056484335828001005009903973037524233097329857690857731943951449292814500362180170793919266389501882641682782987) 3716891004757979686/19452372993227550502015765258932159656814363741878583541173956168837566077148160901999018823586675966076058615847408138956450751813058209394199427182041779436168298455103717521843644244801542056954603631432685194627158423459586845252167819811850263444712218938833443253125954475476481099092216538126519474183531297423759923656571895377587989169731023397615799830371852298135015608612181670362528239430952907458704415974164085176066242388561893721949244663406941558257051263727439679525692652639731850971185056484335828001005009903973037524233097329857690857731943951449292814500362180170793919266389501882641682782987)
+  (num-test (/ -4863232114852441787 -22963038454503597269981750990033903654256693514059439027985256604978917966584414065892146187253799108250061573972673983350956191446047978392921074610323648301008272837432907303975548030552369880338022067315042332692023645592417869181836251486577977896077712912433381480614752789750181208326525834629219729662085632321271870762094800588296544243340047360684854239747242066367921596241226349790282723168222543448385227922748241223520686047460119733024390425165073367321644498280127168757335614077882325524816799960018589278475564547840614315473357481582710826551932681173443524724802157570101916268510464302946527662720) 4863232114852441787/22963038454503597269981750990033903654256693514059439027985256604978917966584414065892146187253799108250061573972673983350956191446047978392921074610323648301008272837432907303975548030552369880338022067315042332692023645592417869181836251486577977896077712912433381480614752789750181208326525834629219729662085632321271870762094800588296544243340047360684854239747242066367921596241226349790282723168222543448385227922748241223520686047460119733024390425165073367321644498280127168757335614077882325524816799960018589278475564547840614315473357481582710826551932681173443524724802157570101916268510464302946527662720)
+  (num-test (/ -16248276650501285553 -3381199474840825715485713565301777938368574604710714363907009216856320913536015299178065264912798511857598595067318796576494480424838898250138649774858742984769125731728430552285782315111538920026330816414650913188340281906359149109963139438960274321560117812365241840204034925444652058916966934904097509799291744775242863360284348334605170437300543978049053839829106628489146216325576991696936733592366926096500684308845306493636196092408597450926695579897293944488261001228478152650490677071497874746121221519036861983646423005753475340900508665494162949119110128646472783016552527735050067363030838015919512260159) 16248276650501285553/3381199474840825715485713565301777938368574604710714363907009216856320913536015299178065264912798511857598595067318796576494480424838898250138649774858742984769125731728430552285782315111538920026330816414650913188340281906359149109963139438960274321560117812365241840204034925444652058916966934904097509799291744775242863360284348334605170437300543978049053839829106628489146216325576991696936733592366926096500684308845306493636196092408597450926695579897293944488261001228478152650490677071497874746121221519036861983646423005753475340900508665494162949119110128646472783016552527735050067363030838015919512260159)
+  (num-test (/ 18296946401228630959 3302341071702763311560113831030141639804425031433511503765833897787925467295486187687396312611805794369889470239777040624530990622212474466940548049117664906468330871893337410618797113677420975837622378808494314918471282099855916016026079371666730617071364751834080179173620476977670099126230223862266413091012344741482772771219725893630556702028108027870656512750807359335108428687238687397060104669074315031780019301768744978815422943986587389425726602444937024004102212071953113581935989741954695450085391443134273670514145585869912689150728183940456773133212037846765421397201956541430155664614978559762638030787) 494512064898071107/89252461397371981393516590027841665940660135984689500101779294534808796413391518586145846286805562009997012709183163260122459206005742553160555352678855808282927861402522632719426949018308675022638442670499846349147872489185295027460164307342344070731658506806326491329016769648045137814222438482763957110567901209229264128951884483611636667622381298050558284128400198900948876451006451010731354180245251757615676197345101215643660079567205064579073691957971270919029789515458192258971242965998775552705010579544169558662544475293781424031100761728120453327924649671534200578302755582200815017962566988101692919751)
+  (num-test (/ -60488682170925814337492051725122486652 14880088785789146426) -30244341085462907168746025862561243326/7440044392894573213)
+  (num-test (/ 126617729996196635247771282957911941277 -7166506344996883172) -126617729996196635247771282957911941277/7166506344996883172)
+  (num-test (/ -278675896803726074870988122161067771390 7744689831802931490) -27867589680372607487098812216106777139/774468983180293149)
+  (num-test (/ -283351838662873779255871649630248958879 6912311315831153835) -14913254666467041013466928927907839941/363805858727955465)
+  (num-test (/ -9715584046609700027352634666499181378 3368831995960494221) -9715584046609700027352634666499181378/3368831995960494221)
+  (num-test (/ -137493547985106345282009151869389470397 -1916381539906956855) 137493547985106345282009151869389470397/1916381539906956855)
+  (num-test (/ -328662747577960331872949773416436800743 -231069430804205460334599495337085157308) 328662747577960331872949773416436800743/231069430804205460334599495337085157308)
+  (num-test (/ 213595640581249636406536485951630735277 -48492294677143227478357598229530842959) -213595640581249636406536485951630735277/48492294677143227478357598229530842959)
+  (num-test (/ 85922846498729014445816145204889624189 193533957681757355413031965695625196813) 85922846498729014445816145204889624189/193533957681757355413031965695625196813)
+  (num-test (/ 24053342958857142686054803491202486471 196417511107100936775397820630955772553) 24053342958857142686054803491202486471/196417511107100936775397820630955772553)
+  (num-test (/ 102038936612518756467074084117019701214 -111946989731587760700903475996379168167) -102038936612518756467074084117019701214/111946989731587760700903475996379168167)
+  (num-test (/ -3006867214208872584699983438179656913 -234257597822744479264249663225224173340) 3006867214208872584699983438179656913/234257597822744479264249663225224173340)
+  (num-test (/ -279839802710533516603863620922251878907 -3244112647743502769852782626803305310331045534071805654982307107362388474314396636799597033636575215617240554815450017779373048313695795886893032630263219) 279839802710533516603863620922251878907/3244112647743502769852782626803305310331045534071805654982307107362388474314396636799597033636575215617240554815450017779373048313695795886893032630263219)
+  (num-test (/ 123635964546481689465778244982425098404 7701433613491146708866098469269971554817017737111287276993583150548359764165526640986060909954451793171933304569726872785964805121981749276421956645830854) 61817982273240844732889122491212549202/3850716806745573354433049234634985777408508868555643638496791575274179882082763320493030454977225896585966652284863436392982402560990874638210978322915427)
+  (num-test (/ 166158110049010486343321316578688184578 4093720847216792748840371965199135052196058344862447621818024731938681519017878880275303125899149558774718190527651555811733139227128378041055212888819294) 83079055024505243171660658289344092289/2046860423608396374420185982599567526098029172431223810909012365969340759508939440137651562949574779387359095263825777905866569613564189020527606444409647)
+  (num-test (/ 147416259636838312272435267341375281181 -11266711292262839805944890501811605204323255169233519804446548849178247889563130015168799346120099052214488209897402054530713234143622703174309015777885801) -147416259636838312272435267341375281181/11266711292262839805944890501811605204323255169233519804446548849178247889563130015168799346120099052214488209897402054530713234143622703174309015777885801)
+  (num-test (/ 102557200511608632541115941654031896919 3866177549962722728707550488877109233779215384377007088712280650225992470307822792085413087509167847767889824884877044539352696974351192629898363157976511) 102557200511608632541115941654031896919/3866177549962722728707550488877109233779215384377007088712280650225992470307822792085413087509167847767889824884877044539352696974351192629898363157976511)
+  (num-test (/ 47794953079190110032282671989549362415 3802290983508829335098916118339496411537222492645529399519373082799614656011270200284796148989094312601047370399228868583158444769807910513767845541589667) 47794953079190110032282671989549362415/3802290983508829335098916118339496411537222492645529399519373082799614656011270200284796148989094312601047370399228868583158444769807910513767845541589667)
+  (num-test (/ -169956065319483471022234920202991103615 -9934427489865644196610501807375648335352544234206717324511161205173460054921759084767897792996557220898467288533128078406604709773449948420404563411793533441010236017064154469575084055359823982786110746700747423674942932421964955746280671982635899487781780756099620799397239156211815110739544719746684712086075069101799537802834839550142629064374734870047412916259754010150500874430055034366305216104752636211802195447299210332237598443674867760860326529472901775427058078447963316168327741049511844237329137194533000697525539835371015163158135757326482343130221118201740819963770851200676279882978581431999960842565) 33991213063896694204446984040598220723/1986885497973128839322100361475129667070508846841343464902232241034692010984351816953579558599311444179693457706625615681320941954689989684080912682358706688202047203412830893915016811071964796557222149340149484734988586484392991149256134396527179897556356151219924159879447831242363022147908943949336942417215013820359907560566967910028525812874946974009482583251950802030100174886011006873261043220950527242360439089459842066447519688734973552172065305894580355085411615689592663233665548209902368847465827438906600139505107967074203032631627151465296468626044223640348163992754170240135255976595716286399992168513)
+  (num-test (/ -83006311763073652927964071041666508273 13480787677843057038436344704360462056114592749322481662307876594244244638227291805757775026215166740035048814729231681821563443093991755779505400592913963236010573873554317250153995160235771659208137440518282824497744092608999871327127239673370293239927529076145825972430101380272357235582367639159280348164804218713823424182167974242317526959809443701996053548231667727254858428867000011055354779789221097183515832386890638024105232865079002765479933320220378271026425568216748186200736499581088153390350474814123049637951929317200314355414551809067125550551841102097159644340520444983020267926123546444838010089690) -83006311763073652927964071041666508273/13480787677843057038436344704360462056114592749322481662307876594244244638227291805757775026215166740035048814729231681821563443093991755779505400592913963236010573873554317250153995160235771659208137440518282824497744092608999871327127239673370293239927529076145825972430101380272357235582367639159280348164804218713823424182167974242317526959809443701996053548231667727254858428867000011055354779789221097183515832386890638024105232865079002765479933320220378271026425568216748186200736499581088153390350474814123049637951929317200314355414551809067125550551841102097159644340520444983020267926123546444838010089690)
+  (num-test (/ -312626207169475064151212222217866488926 6989069923898656093413456232544365450599471748502878018530391549015151484336014906416216966193568842618920902504390187814247729346977677905224098932673981665869061845335443588666641982676550205160521286690015544764015602751932938178737949961754714143180917985455875095030469699198116593730005119922928175789172042067281849364217595912265452199938281052984802042194034638773435768458457616208103331213440768472281882976004050012769415198321241810008696147179275528426468408383757692656341606162350211696837361434874035354680073309142183699892959618671515841112321607728427286289324836870027735590091451421689980776552) -52104367861579177358535370369644414821/1164844987316442682235576038757394241766578624750479669755065258169191914056002484402702827698928140436486817084065031302374621557829612984204016488778996944311510307555907264777773663779425034193420214448335924127335933791988823029789658326959119023863486330909312515838411616533019432288334186653821362631528673677880308227369599318710908699989713508830800340365672439795572628076409602701350555202240128078713647162667341668794902533053540301668116024529879254737744734730626282109390267693725035282806226905812339225780012218190363949982159936445252640185386934621404547714887472811671289265015241903614996796092)
+  (num-test (/ -151709660794612786408772973806200383563 -26960472721919005254400858042130056790831511338891584787669209989714807518625849812230185079206081782191501696661436514815190623849929065098497737155759771863508038766934134444191240792356114381746781342181881402424707118515655119761011977116554236461222788625158348668147995099157685699761135150772589445239536582228655532345059046596356954495360132444243748421428095867292294626357084961338288369883088525401649234025290736504802104065029036642533076183281468647642956623788270236516849523210698622687255735945678505925047193818483603361307498423724202227256505312543145618362906047473400380196192622607541097732443) 151709660794612786408772973806200383563/26960472721919005254400858042130056790831511338891584787669209989714807518625849812230185079206081782191501696661436514815190623849929065098497737155759771863508038766934134444191240792356114381746781342181881402424707118515655119761011977116554236461222788625158348668147995099157685699761135150772589445239536582228655532345059046596356954495360132444243748421428095867292294626357084961338288369883088525401649234025290736504802104065029036642533076183281468647642956623788270236516849523210698622687255735945678505925047193818483603361307498423724202227256505312543145618362906047473400380196192622607541097732443)
+  (num-test (/ 138834496986391136939574372853300933725 -8052690543272184576133758511645801940246473546142520821850130421981395129853341888352999304040698251945886555605291324954368612109314080471658982022831338507499254609048475429862437003158379101603576571787302167207044118847876475134352180874260998595377014195145760071923429129767580115085764485254455919915567128572731355497418831212259648020550107573824886521471697331410754043280744066090848295906051303624846301488010249980896364883452154860562864255354208802313850527991005497484253401461375477060954782095047043919500670383372218536999834862885439984085848342867301834247551832677237328664699302165347765799113) -15426055220710126326619374761477881525/894743393696909397348195390182866882249608171793613424650014491331266125539260209816999922671188694660654061733921258328263179123257120052406553558092370945277694956560941714429159667017597677955952952420811351911893790983097386126039131208251222066153001577238417785769269903307508901676196053917161768879507458730303483944157647912473294224505567508202765169052410814601194893697860451787872032878450144847205144609778916664544040542605794984506984917261578755812650058665667277498250377940152830784550531343894115991055630042596913170777759429209493331565094260318589092694172425853026369851633255796149751755457)
+  (num-test (/ 276499207940187081393841843387608369874 27347897028734618663428054896349668572244941195143856840032842195489553215406302254043947382368793914074147314353589439281000471813879502242851166670252197853998033813694814376228360691543987661407996785043637351295817024680721181205269262470473172181965930243852520386958529041036476807810647578694133804796395977642274699322030062940721165202488695975750512485574440928370802874677938542169620505668128224812441566912043326338714451629730522324228356364241376445033028898865300103247057378058702233150414643818049655628999871012383236520330575609745427181485617250755214922048672375947942288446974485524776744246517) 8919329288393131657865865915729302254/882190226733374795594453383753215115233707780488511510968801361144824297271171040453030560721573997228198300463019014170354853929479983943317779570008135414645097864957897237942850344888515731013161186614310882299865065312281328425976427821628166844579546136898468399579307388420531509929375728344972058219238579923944345139420324610991005329112538579862919757599175513818412995957352856199020016311875104026207792481033655688345627471926791042717043753685205691775258996737590325911195399292216201069368214316711279213838705516528491500655825019669207328435019911314684352324150721804772331885386273726605701427307)
+  (num-test (/ -8979365591106781219797187096315899769868799444656824967426553299158070014074001230883484015880186603742048949313393413640240595706939311540002219411120389 -1698360947072008877) 1282766513015254459971026728045128538552685634950974995346650471308295716296285890126212002268598086248864135616199059091462942243848473077143174201588627/242622992438858411)
+  (num-test (/ -12831814656788829919185319784994714617782749504716966706877579983082880759985031662545957372565411439648298939198657738497464024214657609856476819270030801 454910754379715) -273017333123166594025219569893504566335803180951424823550586808150699590637979397075445901543944924247836147642524632733988596259886332124605889771702783/9678952220845)
+  (num-test (/ -7834266257250691217409788323211914445703052638619784568844628449769010091330019095736167988675873769434766592786720961949649685040028101508217441360672222 -428418418877192732) 3917133128625345608704894161605957222851526319309892284422314224884505045665009547868083994337936884717383296393360480974824842520014050754108720680336111/214209209438596366)
+  (num-test (/ 5737805823029931079838944835405107564434908634489801628049345331760087020955028323378020396677249341204498685189403657652738071833877470777083253103936452 9588993061977446661) 5737805823029931079838944835405107564434908634489801628049345331760087020955028323378020396677249341204498685189403657652738071833877470777083253103936452/9588993061977446661)
+  (num-test (/ -4001605821592542867351046644170905984672346731784670159062281252096012802838642896466582343641124674682428297533953704119505640938363392225910275838094045 15760991890495426717) -4001605821592542867351046644170905984672346731784670159062281252096012802838642896466582343641124674682428297533953704119505640938363392225910275838094045/15760991890495426717)
+  (num-test (/ 2876630161532936743269451364955814480771395635620140205538288339793482694260173239474830738010159518887660000673207712630507802368373928478641773477534499 -6788234478844960330) -2876630161532936743269451364955814480771395635620140205538288339793482694260173239474830738010159518887660000673207712630507802368373928478641773477534499/6788234478844960330)
+  (num-test (/ 6230070442453337264527950102774203962152836811174649694700041895216739851602598854067104967963392074425258687296947909484969927078206601660837276754799333 190237375887614033974333796608341639595) 6230070442453337264527950102774203962152836811174649694700041895216739851602598854067104967963392074425258687296947909484969927078206601660837276754799333/190237375887614033974333796608341639595)
+  (num-test (/ -12098771374444180013224380531550204930654718468097503123335711776524055419889032578894177605164827523969169377266342179411916625188550162928371789854647472 -41681385674896602840749705069663453185) 12098771374444180013224380531550204930654718468097503123335711776524055419889032578894177605164827523969169377266342179411916625188550162928371789854647472/41681385674896602840749705069663453185)
+  (num-test (/ 13185465843955116174925558412278612918939024395488172088108029202384613698982949554556435640011161663974075894844304583900497170806796813871943782330552768 -155202352609947911537719051033334010254) -6592732921977558087462779206139306459469512197744086044054014601192306849491474777278217820005580831987037947422152291950248585403398406935971891165276384/77601176304973955768859525516667005127)
+  (num-test (/ 12784980722915659825738808684740823452025110516624579136271791852138148426775553817114893299569867520414470532361018804123866264934222335562072872489963044 -249441012384365373362771955533424187237) -12784980722915659825738808684740823452025110516624579136271791852138148426775553817114893299569867520414470532361018804123866264934222335562072872489963044/249441012384365373362771955533424187237)
+  (num-test (/ 8517839393030302736298983538193047531846908718502576675615969705563208303329257882565359266876007571790337440612227785062203468682754778416335180236967433 -23101645464137481399279134347982485126) -8517839393030302736298983538193047531846908718502576675615969705563208303329257882565359266876007571790337440612227785062203468682754778416335180236967433/23101645464137481399279134347982485126)
+  (num-test (/ -10157767522292361462005308817460390811646115952647174687477824271227382383351453540195549992670001314693794150879368708343715654899952822395459036505947192 -25611473771508763579433379623726126173) 10157767522292361462005308817460390811646115952647174687477824271227382383351453540195549992670001314693794150879368708343715654899952822395459036505947192/25611473771508763579433379623726126173)
+  (num-test (/ -8580252632668820290302987230726290672170301642399871646484841866604753910447257372311950907045477729554307803379310475132687855999835211879267570997069974 5347050029330174629945013741349819215851040371727058829687387719215168997632386672310746837193930669173408831178932364105722911104309540550576485594530627) -8580252632668820290302987230726290672170301642399871646484841866604753910447257372311950907045477729554307803379310475132687855999835211879267570997069974/5347050029330174629945013741349819215851040371727058829687387719215168997632386672310746837193930669173408831178932364105722911104309540550576485594530627)
+  (num-test (/ 7706102251141221799524762336156378964168657337573751909064577951085535246905735244239132983582998872001001594454632956803416956154262109939446710205558308 6334400709835247308796432875490978646658012545184955441452799118298109610816693049400832749087993843490999852355789914065232784070007399786089389453289854) 3853051125570610899762381168078189482084328668786875954532288975542767623452867622119566491791499436000500797227316478401708478077131054969723355102779154/3167200354917623654398216437745489323329006272592477720726399559149054805408346524700416374543996921745499926177894957032616392035003699893044694726644927)
+  (num-test (/ 12609622044672092190084693450911157599596799695538449568681964257744962273690941575572590166273187189250007688411096790312605666562908125521094386992971478 -8237858212652788898158635047388584411011830102060269605835391741772914864422465141467281143809161251942948659243584296367296559912373856433388249393853968) -6304811022336046095042346725455578799798399847769224784340982128872481136845470787786295083136593594625003844205548395156302833281454062760547193496485739/4118929106326394449079317523694292205505915051030134802917695870886457432211232570733640571904580625971474329621792148183648279956186928216694124696926984)
+  (num-test (/ -9988492519236282081446302885464711911055350309732728352574982611126604133339499170845224383282665522673248920309221355720665956477799939031063172954469785 -1878204914631111607000020160429571305542722711529281855381736226230242796648854769713662269068364131804626863789957256573308715572826753755672493154125086) 9988492519236282081446302885464711911055350309732728352574982611126604133339499170845224383282665522673248920309221355720665956477799939031063172954469785/1878204914631111607000020160429571305542722711529281855381736226230242796648854769713662269068364131804626863789957256573308715572826753755672493154125086)
+  (num-test (/ -10729942326579120947061030583094707809945059776287551713953926998992375520903658867971835616518813070294302895655369081976222497359056962112544408591462495 -4917625712783289245414023733273041940212797202855299465496072729329693853584860839801663152618595377553772371725021213143455497822882736730281253858119747) 10729942326579120947061030583094707809945059776287551713953926998992375520903658867971835616518813070294302895655369081976222497359056962112544408591462495/4917625712783289245414023733273041940212797202855299465496072729329693853584860839801663152618595377553772371725021213143455497822882736730281253858119747)
+  (num-test (/ 8114113595157517238445304590338354472776364877475201453112450680537221171989478096363668912966343706408770932684807802285529572133696646343108263717309148 5443953102973235688784499815692116502566847594605098596244123647428188581304528525010862185203718640610834003873728718183528722470626702382993497913086105) 8114113595157517238445304590338354472776364877475201453112450680537221171989478096363668912966343706408770932684807802285529572133696646343108263717309148/5443953102973235688784499815692116502566847594605098596244123647428188581304528525010862185203718640610834003873728718183528722470626702382993497913086105)
+  (num-test (/ -7125100205152691887479515774712530950031072786448635736036405923401522078562323494262148946679985384635556474075282302608446439950458673260234175964199684 -23871420315894180764743988478670341498770583257649869670486332228804693253344466615199983955886679924409910043885402198203427975742868174334723967563526738510726448815413356678504144193747696164586135745786501041060322480940451156015256191962506052700295351077719851275026974629635679531161390660244641370183176979934485671396035404817388717005746812037357500295693454623478902942336087760288091719793968445716246099043828787040340339906538864570506773535078524092440112404847904632624419421052178754041718790915772437556681684830937503838434712179830722395832238257078212535157309743054115702650740005055678387806081) 7125100205152691887479515774712530950031072786448635736036405923401522078562323494262148946679985384635556474075282302608446439950458673260234175964199684/23871420315894180764743988478670341498770583257649869670486332228804693253344466615199983955886679924409910043885402198203427975742868174334723967563526738510726448815413356678504144193747696164586135745786501041060322480940451156015256191962506052700295351077719851275026974629635679531161390660244641370183176979934485671396035404817388717005746812037357500295693454623478902942336087760288091719793968445716246099043828787040340339906538864570506773535078524092440112404847904632624419421052178754041718790915772437556681684830937503838434712179830722395832238257078212535157309743054115702650740005055678387806081)
+  (num-test (/ 4801495919363827077158204249631885157347198552733998896638174958434968555935827788499392382851493568264006507028024783408190862186734863708684652212703744 29234959990138609668202089052356468732793041824333219340488007351402997202222578434579705387840772390513345507274006495462445058795870182760749392281528881636623188890883479914921272700981309656920982410970774047916714087713562927554033500521877735827036675598267184309367127514966388636440710253467328441763131873309183205727440365838789320851968108312559316922678357314418486932673434031479515016224407618177089903730349114511598373251388750023508633761000320088841886505077453257141723747388913336375142897897501529451618927178835485127020789481918641637409265186365292847057986276062625965612268181771076051892980) 1200373979840956769289551062407971289336799638183499724159543739608742138983956947124848095712873392066001626757006195852047715546683715927171163053175936/7308739997534652417050522263089117183198260456083304835122001837850749300555644608644926346960193097628336376818501623865611264698967545690187348070382220409155797222720869978730318175245327414230245602742693511979178521928390731888508375130469433956759168899566796077341781878741597159110177563366832110440782968327295801431860091459697330212992027078139829230669589328604621733168358507869878754056101904544272475932587278627899593312847187505877158440250080022210471626269363314285430936847228334093785724474375382362904731794708871281755197370479660409352316296591323211764496569015656491403067045442769012973245)
+  (num-test (/ 10769619761532897875307527770350128978615798426116103116325434914975512103385205123955114305107607195469345895102375220593168903042839441996791318999499708 -7224105715967976893083374742254251507019823877014718307738328810406361200631626366722837314776666720638271529652546975342143108973422364041422652163016078890272393678677152791565494865444430757858556891645947268886646732022748338160528677218733159766121781240328812893374941548395710123982510227501927393735585082736583984561348450061452997663109932611188779299623613963995350679177776686423432406091192517292522853783968685873925548901506191291253596763183277703635837071862492572256145656312023955675669362656148946145528559574994353884313568526553663370513565393821926602014407548325293145102073923450066319746913) -10769619761532897875307527770350128978615798426116103116325434914975512103385205123955114305107607195469345895102375220593168903042839441996791318999499708/7224105715967976893083374742254251507019823877014718307738328810406361200631626366722837314776666720638271529652546975342143108973422364041422652163016078890272393678677152791565494865444430757858556891645947268886646732022748338160528677218733159766121781240328812893374941548395710123982510227501927393735585082736583984561348450061452997663109932611188779299623613963995350679177776686423432406091192517292522853783968685873925548901506191291253596763183277703635837071862492572256145656312023955675669362656148946145528559574994353884313568526553663370513565393821926602014407548325293145102073923450066319746913)
+  (num-test (/ 1505915608160301518246681692927442986955390537144107830770082927276722640395785957392652130911646706470337068266772174699405268120590454296080828168261019 31152879253507543898583880698200027990847289346701738353567402100527465991154555548630544962150902011282973749886327325250084401181379196961322399337408341296727915922288276602390334861175305055229766353672502691855637668618950047400571070157436221479289152631256433294884836727331457389922838951144187501751190662594278336543502171639899940796536926507796271202659224890656712231014450702948847764643603683153113663072089256293587951842007583210791100743318865647555912543508324790181772321217524164822106191538518498016236866957803105254555578252294418243701672226181762763332992886540089416888889135117147250495261) 1505915608160301518246681692927442986955390537144107830770082927276722640395785957392652130911646706470337068266772174699405268120590454296080828168261019/31152879253507543898583880698200027990847289346701738353567402100527465991154555548630544962150902011282973749886327325250084401181379196961322399337408341296727915922288276602390334861175305055229766353672502691855637668618950047400571070157436221479289152631256433294884836727331457389922838951144187501751190662594278336543502171639899940796536926507796271202659224890656712231014450702948847764643603683153113663072089256293587951842007583210791100743318865647555912543508324790181772321217524164822106191538518498016236866957803105254555578252294418243701672226181762763332992886540089416888889135117147250495261)
+  (num-test (/ -4912349668310730778272626761660101328812783790262451913449395750351147048676353891314609774894027305081515542385381430403698808605768281804457186380542764 6582102431028556562269167182029950958541569095123705594954788174046339660437206159173417583841743892857066740116322758515837624700881569925244230209567223461401193316695082415261197843574563450002486582967745135870782254839990479649574452750850133306720341823136645982650022199634379361313745598455049448887744206616434903460504591098363901961758069797933831934878649993183747273660007900662110776570580293994733189753806312784239743585453090900671308673380802381312083077891736513388250097195232616017027333586286786139736783210630705878401429301217589001317082952461701571026008195534878902572422952568763551674434) -2456174834155365389136313380830050664406391895131225956724697875175573524338176945657304887447013652540757771192690715201849404302884140902228593190271382/3291051215514278281134583591014975479270784547561852797477394087023169830218603079586708791920871946428533370058161379257918812350440784962622115104783611730700596658347541207630598921787281725001243291483872567935391127419995239824787226375425066653360170911568322991325011099817189680656872799227524724443872103308217451730252295549181950980879034898966915967439324996591873636830003950331055388285290146997366594876903156392119871792726545450335654336690401190656041538945868256694125048597616308008513666793143393069868391605315352939200714650608794500658541476230850785513004097767439451286211476284381775837217)
+  (num-test (/ -11503235648135220410087372678575470255397243144180272745183844970864347348074104828328211521698012119761674096067066173927209129755062269068090560678650614 -5548338218081690289723998288742945948643693817491921699797822887914665364835947234564530865119623677435878746610856459141463506776423054050179729345956931675338102809929977610828639446535095411122377961067651902947030310564736893080382424590568134091858634304377553326990788802662029347894499019277621467098333287442862683493159356014650672092060912274570436879076161496563079759704321556494898013269338428360856068237785049960484767969682269790642298701577934519452927652996671267126348627432295779183359417597868330923329974640383630473044712419371517153268338860560601603043892503067815822312755611206254762903436) 5751617824067610205043686339287735127698621572090136372591922485432173674037052414164105760849006059880837048033533086963604564877531134534045280339325307/2774169109040845144861999144371472974321846908745960849898911443957332682417973617282265432559811838717939373305428229570731753388211527025089864672978465837669051404964988805414319723267547705561188980533825951473515155282368446540191212295284067045929317152188776663495394401331014673947249509638810733549166643721431341746579678007325336046030456137285218439538080748281539879852160778247449006634669214180428034118892524980242383984841134895321149350788967259726463826498335633563174313716147889591679708798934165461664987320191815236522356209685758576634169430280300801521946251533907911156377805603127381451718)
+  (num-test (/ -22964048032108117904633365483799091488990853392670636861794813863757795874434768543212887316456319246155824842161717179767513360050328383696194174741889496306018655333450647372293193335577883672679165775070112770359697627614883420620410888137853011387271594559450892054491963940112235887802995117234918878648066362268919389271696465517050425727202664230530633207566444357393843669758809938086228366322548799235049875711702216182219182908217345405023677260470015666831191434586902791186444958476491096759363292487221288620810273243009200212776634572092195691654105986099646006756823055390654876878195583529521482548988 10644501761877612307) -22964048032108117904633365483799091488990853392670636861794813863757795874434768543212887316456319246155824842161717179767513360050328383696194174741889496306018655333450647372293193335577883672679165775070112770359697627614883420620410888137853011387271594559450892054491963940112235887802995117234918878648066362268919389271696465517050425727202664230530633207566444357393843669758809938086228366322548799235049875711702216182219182908217345405023677260470015666831191434586902791186444958476491096759363292487221288620810273243009200212776634572092195691654105986099646006756823055390654876878195583529521482548988/10644501761877612307)
+  (num-test (/ -19058897134776675884737764093896349427183484738023061956638485191239529906311503740032626797095131123523175909943402828257449376045336777553758951620699386266853663342003969442142858702229701661125904623724248177901462857013835790939020450746503125344631958534655024089231193396521561965297735217497608287565163852923704017958259400904834287026933197193592591423799328167149965328232560408884408251535373934831244856695227539243433290481951528897142697352526450162440279318507285454432916819060795455956931254810171588139618689138022062041222735056137988435900866680084665165131313435515187611756148824388549448126467 -8326067459929079652) 19058897134776675884737764093896349427183484738023061956638485191239529906311503740032626797095131123523175909943402828257449376045336777553758951620699386266853663342003969442142858702229701661125904623724248177901462857013835790939020450746503125344631958534655024089231193396521561965297735217497608287565163852923704017958259400904834287026933197193592591423799328167149965328232560408884408251535373934831244856695227539243433290481951528897142697352526450162440279318507285454432916819060795455956931254810171588139618689138022062041222735056137988435900866680084665165131313435515187611756148824388549448126467/8326067459929079652)
+  (num-test (/ 25828007361450952719858846443651616751980622231808382804245407702688699228397920589229449608543284896555585501243582045708656531815385828908740757435341854996277769645696261182122648194952548457487178342682313459444433667556195761154944956714756269417591048771194019245925463541886773351873002480266654825771525233808830260734678788520487541379982691221386179066818743751876186761036101255542680066874888848011074569355779905086056095043888696435054884292698783753890317487209955316141370052511469715869816445031102161253514609763532756500340262263800747279044587806090353812452308490155782240390040070679663451429071 -16419739031141199968) -25828007361450952719858846443651616751980622231808382804245407702688699228397920589229449608543284896555585501243582045708656531815385828908740757435341854996277769645696261182122648194952548457487178342682313459444433667556195761154944956714756269417591048771194019245925463541886773351873002480266654825771525233808830260734678788520487541379982691221386179066818743751876186761036101255542680066874888848011074569355779905086056095043888696435054884292698783753890317487209955316141370052511469715869816445031102161253514609763532756500340262263800747279044587806090353812452308490155782240390040070679663451429071/16419739031141199968)
+  (num-test (/ -1669696848499325185991294008037906453080648048592518700324899343297324898656645662186964240087582483813312797482298159224575128489696846451225871663856944749639170892311973606684486632224811435175199158920841554176114937196187087530038509898368755036744105403511353564606301040888877621412514452110348953863172547944175251415725815533087344857665837809749724257466399374547882097484009980477192931829030533366309859182367479867549644502538060694266048652224732348150866071381652452605392696555259221463464108413747443898588713629829490175098280805280460168541344102200890646453100478450456898359263676257882174308268 -3154577849943484396) 417424212124831296497823502009476613270162012148129675081224835824331224664161415546741060021895620953328199370574539806143782122424211612806467915964236187409792723077993401671121658056202858793799789730210388544028734299046771882509627474592188759186026350877838391151575260222219405353128613027587238465793136986043812853931453883271836214416459452437431064366599843636970524371002495119298232957257633341577464795591869966887411125634515173566512163056183087037716517845413113151348174138814805365866027103436860974647178407457372543774570201320115042135336025550222661613275119612614224589815919064470543577067/788644462485871099)
+  (num-test (/ -2215504974719141921873290809898041836016933916943403987778356628123168736190963062169230280020568365292362281642280014010817115943641228422541948070912910166283758843455538187697141038676028739959626556519808411324617157646799936128314485433146912658200236754847332237438334421065771940922444296618134121662770699950019164632463150784605652351782139277998735272280336096528241168196650073301607171613955878761317417480490869592669781417658461696905996344800864447403426286476662235990122025654999230690604488053668524888833992415515434190712628587043474760836969696399229242018051635699746048823240033842587927229964 -11305319675542865070) 1107752487359570960936645404949020918008466958471701993889178314061584368095481531084615140010284182646181140821140007005408557971820614211270974035456455083141879421727769093848570519338014369979813278259904205662308578823399968064157242716573456329100118377423666118719167210532885970461222148309067060831385349975009582316231575392302826175891069638999367636140168048264120584098325036650803585806977939380658708740245434796334890708829230848452998172400432223701713143238331117995061012827499615345302244026834262444416996207757717095356314293521737380418484848199614621009025817849873024411620016921293963614982/5652659837771432535)
+  (num-test (/ 24358677073350645219370308521851912760304925518671532565724702185818845784332554892130070740233218685874351979772556877899278790031132507391155876157108663291716896413773711734271947599485714147026138105714458778787734198938526335256418673319464023475137997251085298903419563039860433435847755093653670989129405749785476487449599232956305952768800154351414655365461746574761818724131185410194605648466196476174400166047788352670171627261342369793028465418799251589432585363577887467959594667618177199696618852093807640490831859585621198048572586882398004957371434677752931134884039120875470266936204172511104679441462 8754800987327220648) 12179338536675322609685154260925956380152462759335766282862351092909422892166277446065035370116609342937175989886278438949639395015566253695577938078554331645858448206886855867135973799742857073513069052857229389393867099469263167628209336659732011737568998625542649451709781519930216717923877546826835494564702874892738243724799616478152976384400077175707327682730873287380909362065592705097302824233098238087200083023894176335085813630671184896514232709399625794716292681788943733979797333809088599848309426046903820245415929792810599024286293441199002478685717338876465567442019560437735133468102086255552339720731/4377400493663610324)
+  (num-test (/ -26302114071841994464108666310942614602208671348774320769941579409198660404735714925432808094014718434192516800374483192192707032773903982752997957629389083405320034044554226640590549491188742685901503166669355807243735533977994184111229208270447279559478659750835531593667003322059717930484363943660175452777363121025595100592911646539549735930625865256846706785601753749996181113742254145758187876411260965175520035400453360390392991183382425735199046574346992179663247011131958270717402007532256308394559029768974932620173103778338779940189812875680687510582798628982957687329572431433891809534332514765287899172737 196971971351558855568201373145365478995) -26302114071841994464108666310942614602208671348774320769941579409198660404735714925432808094014718434192516800374483192192707032773903982752997957629389083405320034044554226640590549491188742685901503166669355807243735533977994184111229208270447279559478659750835531593667003322059717930484363943660175452777363121025595100592911646539549735930625865256846706785601753749996181113742254145758187876411260965175520035400453360390392991183382425735199046574346992179663247011131958270717402007532256308394559029768974932620173103778338779940189812875680687510582798628982957687329572431433891809534332514765287899172737/196971971351558855568201373145365478995)
+  (num-test (/ -25700334917103749626396366612061842558162882395534131493737229591609654899446089376271023701490708870843231350129849819430092002268875830384992877382393956173037794109904701961390126146975281052960293513473777226100954163054292968509501976296424278813632162404905591038465215586347229260479401862039805429711982871702185657527199220459658257385112793877259572278229045135617281858788415643567614198333459934599272409406206213115625226065750113120833933806486512117533453281522448845990642550827848765145774541658722594353290694745164913189694785762218575339370800538946514325662656804799046877175035545715523049884960 56325873113907570153638933263921340484) -6425083729275937406599091653015460639540720598883532873434307397902413724861522344067755925372677217710807837532462454857523000567218957596248219345598489043259448527476175490347531536743820263240073378368444306525238540763573242127375494074106069703408040601226397759616303896586807315119850465509951357427995717925546414381799805114914564346278198469314893069557261283904320464697103910891903549583364983649818102351551553278906306516437528280208483451621628029383363320380612211497660637706962191286443635414680648588322673686291228297423696440554643834842700134736628581415664201199761719293758886428880762471240/14081468278476892538409733315980335121)
+  (num-test (/ -25716495567761925495340309269248196976121711927176026606462843116646034561721958499564011513233986043633061335866265799467020807570689498961190839877265773450484494789052182300993137822542881883769593344810286970036960228835955266304979090841345697560418139960733748874044680214388098802745248923989851173047158103142988835055585349795022662576576434371181693607267864646932929998659458265265400181839509356921460222604661909947838434113964465769102604033848276159366897885013231683417270877512514679528402888899725431524867260144325739317224922955028035417867933390409466302057857579158202739536568407090965929352402 -92089830031261826185903006947297196357) 25716495567761925495340309269248196976121711927176026606462843116646034561721958499564011513233986043633061335866265799467020807570689498961190839877265773450484494789052182300993137822542881883769593344810286970036960228835955266304979090841345697560418139960733748874044680214388098802745248923989851173047158103142988835055585349795022662576576434371181693607267864646932929998659458265265400181839509356921460222604661909947838434113964465769102604033848276159366897885013231683417270877512514679528402888899725431524867260144325739317224922955028035417867933390409466302057857579158202739536568407090965929352402/92089830031261826185903006947297196357)
+  (num-test (/ 6427758281007308443295844679532867042370757542760390680622584758338041709910068192973790897624827722686313216884084305612889554116246627679267186323854642904894988936981064543865794245002470271142875081223308666588659587718561791667575945670118263124267218395749059879636505504607358472659126298770422135028955713148882314050530771750859372048576074912599265823577267962213046012777760882389021047579367276198483178024744924299929585515193595330026399302022065656106472153858484998010254767462854235008343139218888170221421046454280858208068658907389288543063912721882521711363713136166478126504226820360347652405439 80854661163518168674595213426641201760) 6427758281007308443295844679532867042370757542760390680622584758338041709910068192973790897624827722686313216884084305612889554116246627679267186323854642904894988936981064543865794245002470271142875081223308666588659587718561791667575945670118263124267218395749059879636505504607358472659126298770422135028955713148882314050530771750859372048576074912599265823577267962213046012777760882389021047579367276198483178024744924299929585515193595330026399302022065656106472153858484998010254767462854235008343139218888170221421046454280858208068658907389288543063912721882521711363713136166478126504226820360347652405439/80854661163518168674595213426641201760)
+  (num-test (/ 1960728263483597985471065015024594804771170333646104429205729831998416939777820080209106943861368202560376682136488253096512360698625765514606930980274938979705620987031595592685578710084284618125325617453699875318678007463857705931376750632972266553809944621631324385690517092215690694024807784270742388108802858889381036105223858467345514041786882957807868961085072340965930749117411726729713477739990680381647988935514765113077094375924848051541167125595015542791382355149166582367766443782842193396221676952668624805183924877889696428989259842153378327156342464279071638070457876940165186524833987190050817072048 91266493124541431873557009470479491083) 1960728263483597985471065015024594804771170333646104429205729831998416939777820080209106943861368202560376682136488253096512360698625765514606930980274938979705620987031595592685578710084284618125325617453699875318678007463857705931376750632972266553809944621631324385690517092215690694024807784270742388108802858889381036105223858467345514041786882957807868961085072340965930749117411726729713477739990680381647988935514765113077094375924848051541167125595015542791382355149166582367766443782842193396221676952668624805183924877889696428989259842153378327156342464279071638070457876940165186524833987190050817072048/91266493124541431873557009470479491083)
+  (num-test (/ 4941680418946960910262990974014623728051861920391294141439502190044830922127013115391726343950340163023958511659132792063033185693862678433421115681422259770928656196358763089894449447854011668445981430826871764812047994423858851467292757304285634515474652989618200442851239459073981986390515468331839802701176644729973346052528164203299481240263263697394061787580128379398464090163611942724580936445878570184925290925246112514015572149640886198984723311273144361235138411362294735799814160816806773736605477503201836095726740734281001021071803299510239436683913500734680524381145064985356627091311888606290704759943 291575320383555320391938911470370670502) 1647226806315653636754330324671541242683953973463764713813167396681610307375671038463908781316780054341319503886377597354344395231287559477807038560474086590309552065452921029964816482618003889481993810275623921604015998141286283822430919101428544838491550996539400147617079819691327328796838489443946600900392214909991115350842721401099827080087754565798020595860042793132821363387870647574860312148626190061641763641748704171338524049880295399661574437091048120411712803787431578599938053605602257912201825834400612031908913578093667007023934433170079812227971166911560174793715021661785542363770629535430234919981/97191773461185106797312970490123556834)
+  (num-test (/ -17803449239532304707372697093467431202778585961066204978641168716990033159088600623106396534094218402005803618121159982050197012697237961155375180768349707725936023283589475384693590539312637333226292265409814019687105755522332846972859860649558844229320481883408457674560284773922666633054564243260924189551494368660033292970122831009582038986061326503238023206238467592238752824663935316307653075615249537594229930297642710570473007696494702367783692850946455203144153509057520651038068881755863521371187245025834292163874467913915588768778393773565536027848586260129438664753479013894698439967637389690509120223682 -10962227285754340409566802000064407225866105372406170304563353147415988225079632767886653994299800743521362563345682593189107807948342418743229049299449088) 8901724619766152353686348546733715601389292980533102489320584358495016579544300311553198267047109201002901809060579991025098506348618980577687590384174853862968011641794737692346795269656318666613146132704907009843552877761166423486429930324779422114660240941704228837280142386961333316527282121630462094775747184330016646485061415504791019493030663251619011603119233796119376412331967658153826537807624768797114965148821355285236503848247351183891846425473227601572076754528760325519034440877931760685593622512917146081937233956957794384389196886782768013924293130064719332376739506947349219983818694845254560111841/5481113642877170204783401000032203612933052686203085152281676573707994112539816383943326997149900371760681281672841296594553903974171209371614524649724544)
+  (num-test (/ -11349783565099575757929584771389010505157850113880084607145768380886038854233583951229136273631022011781914171912628263930864052254964518914857757025547156428098062812984733912827827545722979442676567330004437902674729872754963478834939047061999292143602525229120558979819117729589695377623970606315287270030693151486803968345724658003068961239204812937084581894755863859944500186226990319892122692007317326534880413455575446314965159569830188583093978564829748603480193166063624130610256395632946002879039047154077629561745862713628266069928068634042545592328263646730943717246953000457159714049930890865576634096206 -5169948998417532948043886408019867395123131165917923418040862036041756675786217242743410895008311710518018466892169868028617239526646914529999134517417939) 11349783565099575757929584771389010505157850113880084607145768380886038854233583951229136273631022011781914171912628263930864052254964518914857757025547156428098062812984733912827827545722979442676567330004437902674729872754963478834939047061999292143602525229120558979819117729589695377623970606315287270030693151486803968345724658003068961239204812937084581894755863859944500186226990319892122692007317326534880413455575446314965159569830188583093978564829748603480193166063624130610256395632946002879039047154077629561745862713628266069928068634042545592328263646730943717246953000457159714049930890865576634096206/5169948998417532948043886408019867395123131165917923418040862036041756675786217242743410895008311710518018466892169868028617239526646914529999134517417939)
+  (num-test (/ -4372008041495429462966226028389793326873997497126815043214338280101332483009650104005998792061125254101227371430911497751865710691604158789733634394053254604723940088324934622768312096370232736965692181452463495731681105253628558429524788376108667441329817524961077744083376843098018692898745743361309486938506049017980865957895278210133305721083115513131884239744064081819033733041876411992332060293539102545847193260167588667810376670587099064558298380310132769718526554738650709745767046942440481512965138461694790645096012018276362849398785863823724642554436182185786302301222529261914437437947741031113015699315 -13213007132248918651858333568248204618745148942720942572088217188768868803339938910599097839075045781852237705726227293430250507070717570662238736211897310) 874401608299085892593245205677958665374799499425363008642867656020266496601930020801199758412225050820245474286182299550373142138320831757946726878810650920944788017664986924553662419274046547393138436290492699146336221050725711685904957675221733488265963504992215548816675368619603738579749148672261897387701209803596173191579055642026661144216623102626376847948812816363806746608375282398466412058707820509169438652033517733562075334117419812911659676062026553943705310947730141949153409388488096302593027692338958129019202403655272569879757172764744928510887236437157260460244505852382887487589548206222603139863/2642601426449783730371666713649640923749029788544188514417643437753773760667987782119819567815009156370447541145245458686050101414143514132447747242379462)
+  (num-test (/ -24003371850945507239307096734506644624830254935119140199726507920301383328662376914775504920527918338079792692943250446679097229950654636321252144129692109999375967030689211646504258922323499994340282315270808545865248969923421472430657741998787024263629527291510416193284540865950122841477102934165296344839654902079279846705581902668360663987722715177845485423354226653585575109653937253382583158263755381721094429734122004436184054214443676096492583897635497699417294183504529284810360226314491839533303380490277211336049582128602304906849999737224506976061216780230350942535246958957024226614847691329767208211525 10686139440491678930358521446524488461285005495304677740436234635584738003880529034339295291091217655777627375148264449580064000634364863951333061091724053) -1263335360576079328384584038658244453938434470269428431564553048436914912034861942882921311606732544109462773312802655088373538418455507174802744427878532105230314054246800612973908364332815789175804332382674133992907840522285340654245144315725632855980501436395285062804449519260532781130373838640278754991560784319962097195030626456229508630932774483044499232808117192293977637350207223862241218855987125353741812091269579180851792327075982952446978099875552510495647062289712067621597906648131149449121230552119853228213135901505384468781578933538131946108485093696334260133434050471422327716570931122619326747975/562428391604825206860974812974973076909737131331825144233486033451828315993712054438910278478485139777769861849908655241056000033387624418491213741669687)
+  (num-test (/ 11114571678097117920369007866358540243142633567044843952020632081573546909920632543585596494530749645890342978505657174505155646987551523455565703297238406590291026899487431109110746657023874064284362499621762851387854720746040865741433394111425240861542892218169985953747711593827913014379823797703717216676877313898809377467394109623799717556800777662963842899812297087284510893865429864819927951428138755600792987191034272014681606301885821862650098620488569288170357746018556395309910262410994899971436293672676949544989196526035130226777567220128838888396668158456237490064462262193759918857287915854681904206680 4808076329737968688023887165061921594706561818755147855784713748545995818001333418509444774306288638038607173052166709335820929501845348060033808100812677) 11114571678097117920369007866358540243142633567044843952020632081573546909920632543585596494530749645890342978505657174505155646987551523455565703297238406590291026899487431109110746657023874064284362499621762851387854720746040865741433394111425240861542892218169985953747711593827913014379823797703717216676877313898809377467394109623799717556800777662963842899812297087284510893865429864819927951428138755600792987191034272014681606301885821862650098620488569288170357746018556395309910262410994899971436293672676949544989196526035130226777567220128838888396668158456237490064462262193759918857287915854681904206680/4808076329737968688023887165061921594706561818755147855784713748545995818001333418509444774306288638038607173052166709335820929501845348060033808100812677)
+  (num-test (/ -27971792815424016824370019866875377333122266892537700816201893161065327053508379094007350664178576160161460501442627646041422270472469587140689725524176629653056006769618104516779694726446739085332330345789012312708713495757968594985567285237456431009983022526625885024663335598317191838389804118084831445251467492693688286258834282078888862754754572546522075833632779922232880101875914894393005204887265821991459415144492487189071888581048779385051174007698853920104709378859053075296413813207007405843448595681090932498329066591349910723578718333092115184652723310842559914379989208301125396793101430807658654849482 3169580893680227534064172567436590084742349042688765883461923377455374714865282199177755353861979892274552092801376364846717140845237173266602633583445110) -4661965469237336137395003311145896222187044482089616802700315526844221175584729849001225110696429360026910083573771274340237045078744931190114954254029438275509334461603017419463282454407789847555388390964835385451452249292994765830927880872909405168330503754437647504110555933052865306398300686347471907541911248782281381043139047013148143792459095424420345972272129987038813350312652482398834200814544303665243235857415414531511981430174796564175195667949808986684118229809842179216068968867834567640574765946848488749721511098558318453929786388848685864108787218473759985729998201383520899465516905134609775808247/528263482280037922344028761239431680790391507114794313910320562909229119144213699862959225643663315379092015466896060807786190140872862211100438930574185)
+  (num-test (/ -138888658164471549506154385143989713534453638138516110941977029 48484067562152384719540184707188444570280914254129306788137384972303743285284814 56428088099244342456240635263153370817851703737803685168591843059886944388583310 6984617762898435035101945891920384937438416626357047934508608980105797822504000 90193136183227859939744547239819443586783276313678017953708293432043879247302040 70539472782976230144489157899475475029273447055080677052149474853222128626227832 2525164589393997980217929709704832829968554364529060039097810436136432713906553063644429644328565051224269893261942396763235990073001625976866246420775436 15614337547041181126817477188043219628044963126229393225781917631975649438502836750353253851523795212263078850399716875892512719059737913422781999218667136371648316387382440793865460028660248325297931269646982047533754121791358966254514009830876592200454797694143082163294323565673200905929297174223061890100210054105027025488322289599106119653451218493916291922340123640475500240519924011764050880374885136181582395113140580448936759383024305870622004464940344826337458060607492042593813585998516868215921180540240201095202617277388950504036371411600204964284568597705251929695275183521036281637399204541958859605054) -138888658164471549506154385143989713534453638138516110941977029/4793535847709521198063287553243915170068914691727215964454867625024011698922303669226389748584276840530192157568469968220857898703102351955898913589325705637953049380748829567692600765708909637920797057370082064005557328769108356548100875674196976079597658854339583183901899349355521527519781721778545444496852540362424465770767219571362842157786846795990148969989617793004579188905882473140017509154008696803103206996067638134383708975696867028865870695941933200225325283190379262695816923376790224594063264297952504481719779782130509306530621779762254864669078635401870023086312919956154224782043667754741333688780367667466505233610011253346902821033707597517691608103391952937194719540981992469020284583499872663129517095879706480339710037976698298522952071766717472040399518290905103777436461474880898550115925718887748413534479076504168236430697214654069473800915087572730747027455509241250627470590715812698745630545585772046458363388764449879417348554556621640336029897762172500880501074103433267444717053504878282494505367980026597725927414511391047010801407870379019921551218005714825277162504166028680939100225793768617321830389705750902850499916610355200000)
+  (num-test (/ 2902267908619179684129536324641634394442732593027015198805855082 4748067699021154152763168285921806700655154833226062437593302484475663167752990 92172802787151156076284963978247829387076983213530315481815585776147505007251090 15808981285029107672090190966349736198141855760941720122983980047623201110025085 60559202289239963744584432021634662330089323842876293477363484160210450706125345 20641717016962556495214267565148984505293698026059157698737040675346468206231142 142380249473014630955299439077662853963947100833592874440361316474000948841420058017600161066408668117933232436922811486348705081331372574460204309908598 22418721268614574393232189860262616514600143215945007038687873335656746730488694050883006164427390756358558140145027011322151188565843290717535647848841274550496431839061217253488169143292339455650565906288959125935798633464526818546688779845699340483771625364583343140648892889571715648295855169294054985996834093294240640072029711789359793649773566295329912082241637482772608479106201840565936084243727069954911883243252762742415647868355726139789907900798435783365130277592703989608678774745914668128791639635886550753850811717805962562157686110637810320436812644047534536168343578232389700410352900247092236175044) 1451133954309589842064768162320817197221366296513507599402927541/13803211377640454778526029288269623376813125655593684775595099045285713415153039020789267800416616529908688645478733023490751981264976732618374046330204398361829051480928696426688037404239513603403603849882719851670264413777889524531938606364925013854252374108222701436535488401321603495905123597139234414735397259257280679663147039651553472142280954446675036289021783142392760217244908768132158498744301278889276778209560846418263599491357632762902447742083022806085077053406738681250354036208472026046315736408632370478801849290705001622808552373129971427533249307210975612625050706661691322027927380443494854794852235813844542319971019369687589916047377092369702778251658652143114091304960406840026816351348391618676357634544120732441610431417230403811846208113160343697557236265319994702483700922393762500190362776377442551539417224595247790865885105594005740401824824367904020732469833438717527758468635665777261969819260766044978137909489986407113029460354144391595512642835261443393260585888868936164331461486646676578398836326366036777321522851855085808626766493197635871100152761464712744017549919220291986785134521319127277292845352756807452050073157340000)
+  (num-test (/ 7798204144688205291220879078360728451593323170355809361079096742 35808393784851478122520372074317359817820799318259895240196875729073154197251420 58532175726063855694248618287185551673975962776708803423334853085996022345828434 97834368697888769536063057370864051207348099191057106781292664602519775900739777 92489021460656714290092899983209031746574776013841975324837145038810562509209529 71083733375588666647468985607775761710974844539643116636307037921671845148256816 6123989271760127932230015643359630675168106436173654465119508990415235040641894537960236511442249258231302028977221206744158863083898145166446430168108 -27418900206398855942064397259705713102524342707255992250395147550519659429645343464288092288218160406382406024735131578979728501208163782063519839258876833755387025755815673514708453862847139552613587001235204464673999898312854941659541050445981594990466469147364579547089805525464252876345032296745312923488525701877655352034887018931755379078328147999631937419977103372927428613463482328465834563846802083044643719319690088670748858904291298575733560600669924511028715689681303059001186388754140003746463568171428267337107394361025465082282061651196456268663181772211292647101192148287507051053367729008997838464209) -3899102072344102645610439539180364225796661585177904680539548371/113184205287561573324139833190653102440730360395399197973956984769580868365256138025034414373155098575475566747215877030265786675432252675717351889433714136838615056208470421665419618669892136317438270826178251174708190860235979949204785938786562420189510825909814566675745650194525647207897976611434325225523578368855952217879373499055292850828774005130267218801086474623429504045290678320168493275019256514768273116059350700654655821674309331585233552793659038912697151359657915391954687630783641745610431060563252789714638916120291482852533638921356624929690158752601417722733222880768367060672103351737811624242610815140332559619520810810999145535251960674284283045907801934328911198563750515779896457101601178888594882087326241517566336011980952110586199881600553269825310575512911473547251704677890770772166895623118832621335417348044312911888377718725944255218219811801447500167145561774582342171995333086224230231746597452848775656030037837271428187450747141983599129861631612369300880722326218963779650411119279310045263996988089484063433088077868691314162108392639864773907107325220582413508233901954483499166402135445110435112499264825479433389003494762240)
+  (num-test (/ 6291885367078853457481986049409245691302078375827782321496819120 20959289231548357352292073342856567687394126070322865796282035211176720583560298 24366038587110130209541647226271577368736240640393242419005751016119649778306566 40118119174220166901790237425673316895032570534639145502274313654443256239236466 73598137358602854818844747625643480865061277528564461120022408463105339470504117 36695182446520138181079917512512743290981469731336486456411609014364293489978544 8671667981598505073194269824535189054936442262459158402875147736469644925300845122881093216273840895555488593258562684601176239455526568314028830532770 15920064019095473156324398162334173238735268739049399738654357508344572552411935473846021991360836375685872129737682603096450566258725052013769725919038955505690389573813769125933987978360857342250911865713011888064725725934341157729878064563080803955584985269499994186472079783942404183377695242296289152788154908185130552013951432753148997632323578507137074131845177376689609114975253308906745794984371839952312988353950198030866538756253618535421214253194954603293145507537939731320546686208032528588232652963255550963088571344119439249328480867640436815434047309164687808223851012490130534705427647158409623238123) 1439421788255379275215959765325419043929720157723371200401/1747562187028503746686299553853635643553063923188506902759251937250022196751705340155682655202720363192751787186892107863159676381018035068965958466119538181810433273947829904580526582292369320932134048728374142501965682147541817431447933591106030690334465450755701191781243754499216697336293783127396687916725975251100500896467549458036395977769801208905203001097425041200299917628353220804629035768571072498715030261324138691471497255335498185741379289492513543474304524261634247519034231348033379344777678679950561777846684978640375273167561174451700942154388980887510088060818147834369595669846115248027925007288445161871535514130090907585140894883683709507099726386549038354860875469377442908932714711235823032704493155679240378374325069782368108779247450762222838197717507164088182062062215767468125843278459189085290703729281279344184417197883359351058003644499215541300350121854220342250451978930421772367851329849662028719768708399155817754711362398236471946313773603716759409265530444582884661320404389499624411965234669344882203618613097197387901166904575791500958722726774956950592290330175936039556139052663816485140080963740296685158607671768592)
+  (num-test (/ 7377598052472799909620353419322603137723415431070641423056433630 50990728761110292768803869421408199244526424730838143228662194914314857136430737 89434155113971221138805303763480423496687322824531744020762041598590716339098287 91343386111124700155689622654961840380754244946720984970313893805578518003516073 5641075230099727784981579696383316732450130418277879081291954534985607255267932 91040802121912074401640073226003257602385910518707524375098380810792151468159323 59272268188012925764499414539835790113036863511169317924034366016920114706179376837448098952655862721652129333873020625135398431500899131874782270590048 26690053756452308398721390096804652429111408747235998849320348549870126230712525274708597346508961935323823048352116439255386668122483555236157562141222434006899926132549352821247340442387991613448730451171206857242290791156220288682675982609964518905569737166444127835826079348146626921864776959482079234994631361894786436656768739968380067890165160954836874044821979903056957225885565092422439358816023307475581832942250031121721325840673134241504501661692722633100336840768527354183989544434614842654682324213774503456414914613412547380720171088896588158750436205804689590730033393056191028424154915201435563063992) 3688799026236399954810176709661301568861707715535320711528216815/169215718032454146095901737002485678790901914179482864125777331106759302744215797822810809511498045518338288799757661725047129775976254373463314416017128993811694804386237923340900604770406784566473173755998386770282409830097844352035251738093305402541509197084964701114515390028814839744480965823142680384744649624767291550851759670297818996073873968006960956353033659153219390871979066743795530136868490210455800714335529013059123604101460242870160400211866883478263106349349114199154533363251799944090298252763172390952446660627602934622584400932001701907172000401485323481964448487312714644861543740014645407417493588261100128985848137181719614326345024112347151970444057551896842474702539258687521054961314443551837168457190568932765925484427579811571491887599619302241390226818415165012748654917331557679228501007751078584244340346651276906088856205294333241792044902850102153793417101337667969641035858108457362954650972654353600494166650067557014544136240962457086782865870886529792004619668808741311540795514394731398977642092124679638585188974746423756335151669217754388004341907440529525288302872368689364872785975840444000802518095138062596107983803117056)
+  (num-test (/ -239344771695510351349291992975349015183687755312261264640655565 59880027487583466136533364102518649070390160795136023810470091681171428955831193 48344457085007359228086666145324485903333773379391455489556219681156342646858065 96824393663737121700189215323825147927318524415097221824671795011444303522438090 73240728471954064253765051525185557601431281145369716902120469411886093226662465 53476482728312567840603110355495270554470432250981685279567813448298175801364992 2468459436652089730331798017030410049989399340882712030505584719342958436741536069714790640546086933185494149096286590992747248311590137695839482679011866 -20583944357058654336975302336113341974001469085102805363209530168831840401111182124827636905521584509677325966689931599005216123375088335255672290604710305325984961984791919524676460851699284525672773368217606895110240237523696098521003978238685169880199868729577660354717875890521074505342309726366304528678619465048659607726264456481345739318939431629704180230985397408136331466856633265343276511285483458860216756106887559724757372775728879136089013590836231272961497930729470443491032308329051560641396901204040829291495325588896591482909336032903587307512310970849256645908744180630660878534263566681640143534823) 15956318113034023423286132865023267678912517020817417642710371/3718709813392127924163278362562751486187605430152002432053108623099406465632705761508167478249438322470295467114170871555665890539409511492475240415534629792791729596612426725326976353265532166735941330128195885206087665506220364347120981130748862937276841801804372097254983242962029582754709606117339082763083905960784323141929645331591164015455383939302728076410053178677168172481507115685831178503426055335630689722163467637005123748113214310366231893390818795405612007113310547901224920768646006621130651182788173442625298859454337696280614462941186626306295514630883052819172301830539345633711941340491653447613466053205836875456839023743314390098829184111583809697328393569588632000669468187410368485286035179259523632217543401146996259011916302393091677624838641658623073752023082344005134299104409908004250830639232078441523519412192782367689826532215394196055149255026188549091956300108740792221660678858924234682223183500313556198187095251404633698868186071148295957994257417049500872570631774233307260384902571112475241073598945295745287525486108978093728296107260155093397986671349139935376427469718767763295900745932105722655724205000829205748307261900800)
+  
+  (num-test (/ 7013212896988366906/12397903473277899947 818833870013215068/2125577647443895255) 7453564285301859120853045020886215515/5075911640537211768265804260348400698)
+  (num-test (/ -15781329068048599432/14942574238341613337 4388772934226358350/2640112802717985697) -20832244458230302534551181278529162052/32789782692450857054331267544650656975)
+  (num-test (/ -9015230453321124271/17425619133302730035 -10422000746814766599/14972344381173680534) 134979135022768387806775446187867640714/181609815620990738305316999098032100965)
+  (num-test (/ -14741075237791868512/12448692140900938227 -1090381863721238817/1060836378253796023) 15637868866825840780217685066084527776/13573828137487503515304766902031557459)
+  (num-test (/ -7371815071140740177/4722722556038701367 3872455829192658988/994203944294825175) -7329087620340161131469364260313555975/18288534491791723206480607737200436596)
+  (num-test (/ -9856364379969390509/7988230468709836259 -7208901117187058135/7430860779232874136) 1093153305924514768551484985555671272/859497963436269188803272225817371895)
+  (num-test (/ -16740689272507881147/56924866550406451570641164619431212169 -14712532880452686095/143481612520580129383584255576273223983) 2401981091525408257128502717450566513166280001357873948501/837508970838236191644285394369194561392491093277901090055)
+  (num-test (/ 1874027699956565000/65960003455647360668413772300355814843 -172394881832672950/2006879686300828197846469567507151887) -75218962452157875130617756878839223573611935155763100/227423340028380523596387094039260091189651621559491937)
+  (num-test (/ 851521912886492079/58839621451933520132430725102159653727 -5525838657334730480/268863138354222710211869290179088409033) -228942853876053297959532391872114722003932597144466549607/325138254802036127673497464266072288930584674567672498960)
+  (num-test (/ 2130823024472312937/30463932363736038600114358208342163020 413938864244113775/131673792970459944919771618253738144891) 280573549781056638388629087822719475587456644826399754867/12610205563054396144647765193069861697742251186477600500)
+  (num-test (/ 17234694073181371137/253506951459931119968572673772742357160 8407879684613951161/42697666588937447817581914537644794355) 147176244259806896721181660841298454615950364713859506327/426291189417673978158704851675227114861497071554451732552)
+  (num-test (/ 14739301038477826821/4801125431810347467140397350459581435 -1752125940488995048/127905197451270157484305628763539243969) -1885233209620217720514367144506571751170505057476450692549/8412176412616337518572109406238500578932979745867733880)
+  (num-test (/ 9194848570227974720/45448499872046683203864930109076126035374684748838016011669264943000310475483 -4572473918523931944/28941042619577200519536336906341131911598596429670188136734086846500956354149) -33263563043940787786171015409141766453199063320923723716765930467953050399983260590187417389160/25976510037621464639740779963549572814837984766154635046133743883024710122710674726552171566119)
+  (num-test (/ -2662376868940711929/2674240208804755702377222409224408783678596883960539287029565653749020338064 -5046618244273151929/26826013625152995057141957222948811537350409769204161465077735924332004069058) 35710479080747854012875521001477955195584454274704368888444222736697434540936425667291700196441/6747934713661461716612153292457811722283965560031580498434684530869001786777260513409206862728)
+  (num-test (/ 646980248518054663/28444849537262537816809349756569888989442483441699293309597267649158853799707 -10174938507557455325/16470612178414296088079890015341965945714023680627341561729034923083435428747) -10656160760434978971303471120231114671340660575734505071429575384684610862775940451177787597261/289424594898370460244167952344748286246980979584479610186308309369583658143095854438992150589775)
+  (num-test (/ 1268676597518744714/6024937921458004492480888468749320142603908196076058575752452561172018490893 17823595902143962912/85935047374548136904062562443188289405155329832270007415035044821925251080203) 18170630585125644385503771892175817370913744757273904248648000044618805359154885235028182716157/17897676474595109057512045856227678061218241143085827332930191066967148125532813505892133626736)
+  (num-test (/ -3035741006152688190/58890268425224581569217175195410848521985674465189565646495474378301884202047 -4870935665435665519/47998868922405332801456101880162843269583282603435159879276723163289928325531) 145712134636693761356266465698326002831562744975420904782663360472436650653549187025441059178890/286850708819506259357726384810790881448875152111132928069815447961129371272624891025817707117393)
+  (num-test (/ -4420263280205408439/38682162086456801604593696710774835436326970692840048042132553053971380151628 -758651402628235427/1755534012040040367913026343944696058732638465867705260088080517539506722166) 3879961265286134914514096239640695384126081133972137242327715997675029567458817030555062379437/14673138261791601182714628661554161812345431143865809776872034934342213839184709418896670662578)
+  (num-test (/ -312487180249669742743295380499853180353/9828632991038934281 -86131955660561774942466932680637336739/10268762916730341592) 3208856768501438660232746468300370677374054716853273141976/846559380988100144557815474234956961169507773676687849659)
+  (num-test (/ 105376075880566042097567073713047434893/11411565636673693365 -220737802783327232867818580441304577024/5817406274606660773) -613015445021032499619145665530563205764250055719854552289/2518963924957071797477174332253152325843619212749200245760)
+  (num-test (/ -311533429150518992652072799089375050497/4403073054828470603 -320230219907951760832723580313293021909/1370493254961533625) 426954463345823097468320537904981772054351338526938461625/1409997052618498081840381197699863669488222338862641441127)
+  (num-test (/ 305676222727436457375950609916137360009/2001517485431820526 324338803123828318219640932070020543912/11123178903397935211) 3400091311912189654145957985944153094384781502787164376899/649169785656371151621897383467144093766684841422885937712)
+  (num-test (/ 8845112929712368402815105446090151026/8124751572615311799 -107609110538267962880281203537194473336/8714443449141779053) -38540118213625599008519681983731393728094066419546629189/437148645036763776481446937412401903340367189496615845732)
+  (num-test (/ 152921217721894690043853278309581658066/11705615305395353865 184187448038871874764725486848823516773/4171619104693691390) 127585814672335876029018138907883882524550368713261650348/431205482165106014329333719781838993214328411764819575529)
+  (num-test (/ 16414254293541341780725162107696242521/155838132618727968561620486302365154071 323320173010032367023620851618405869489/49801924105617352177018959505967933104) 817461446577249670665800625691379410535771218196808189195363718417488315184/50385611999847495177988476252475899813264458225659097815552272081452203039719)
+  (num-test (/ -188149667625860588508273820953820709614/21438745582767797684161462130971215025 128458309657689922121539794960212789849/134174286369366827879740776978166655691) -25244847384333405496229128525982900130397411994350175944375943735942831513274/2753985018743617742875555653653797261370358442640799457019039857068516281225)
+  (num-test (/ 1218460641064115152742257147372113443/1773382194117714970762642066492794929 -105212349758139121832338365854603836112/35045896682356785176328011712384921341) -42702045738251194875426595475683618047253961691478453648029952948483687063/186581707662369193907913729212042024270164277319717456729276609131940676048)
+  (num-test (/ 1467722271775252460214852151179762687/1747611358981474614363356529179985509 25495740211005247928144692929451604259/29615224810946461612486375021101910565) 14488975012885720730598332784736375353299643425098519766594278819666029385/14852215066131169889445443721709162270198753408805825268529301698140894277)
+  (num-test (/ 6278399735526726207674375684072448068/13890681759576280617381650633747782321 -112063146811220963294237186476216238443/46495820670393894026441353693945662660) -291919348200099113895651901892723884699250237261456280525601785996696740880/1556633509331345870779770006255469001211806559199158615405344674499795966203)
+  (num-test (/ 248406099260780863433196593538936526373/315762135750029127758352280023694126018 -24578051912523675039725210046249323571/3033769619337997374435389027823294736) -376803438597807975522050212312559316811899647514236724224019181136008036264/3880409082236781853269738100403484871805889674074731389226471480469265885139)
+  (num-test (/ -305871752543087256004326578375555909668/80170799467978436032303243749692785696371676780847080230403479135749775915991 -208573266832391890136462745593008906685/96016271562601269514856687672805175650907293023094157826925793080307407361434) 29368665255505841438632782694581946057561031972462112644657516768267440383833513431444679871238206541553985530943912/16721485549600848123731461311227384049611071114404954309505697259277905994635125654414916826332204568970567318299835)
+  (num-test (/ -171651126582338417143004525987733942986/48126955023093310081685702171788275811688444573315712039582092051531229683107 32570134112026732491936310765048378699/18584159151613423191553551933672204731023422884196280183931777685641069715348) -3189991854959918631828923606391779823799241149346421336570141741355492000935500642040047513113849334779592681149128/1567501379505627719887579027549074087653888429037997616626567546431482074522690424133509833932668944596793898937793)
+  (num-test (/ -31304786393644787215292629624842492472/10539846271603297974613179098685212701091372728582260780054561526149580513583 43496364289252206338797704034889660065/966865502932307025364733802774045297740949567802356684866342045679773834966) -30267518040679809082934454680954168768135550720881039440573156734314284479043791824457029301083428211405425375952/458444992982373700837242411005687390212275114474481688646320865335043970683786989531994936463047685893258985162895)
+  (num-test (/ 124366625369659591476708994326732418029/107684759001536292829359995221778346870065030877016948429894748600664800488759 -90949754058598173499067700725927605729/79727020098830307921496202496061295138733611655702270828135321391380898414003) -9915380440470549523296226431396644117384598256053664887332801972488440466568616812942647849957495261151611303260087/9793902347049141646079571573977765974008832433473016883117384010293158932212528563016145547341801740792289848500311)
+  (num-test (/ 26792084925762094333829722201654015569/6815899891200140342329613369008754659665480100088941978786466272502677117648 179968988142253715757129058636648023126/97033837835570527321466682927970125702018459951415339098532052222053589117353) 866579607987744230609336186273867662887766686833260209925103055244528379635362816895584608387230956963010276689619/408883535566062149539621907018509777969515872715944952500700527207173412646715462423653890585029605025758308909216)
+  (num-test (/ 320794852821756057819990044473359503428/42380074203350930293358543616207018031675687905746455222111844144668904183229 -11813439835454851567822019323728871339/51852159737956631156972450987013128151750117741949546305537111598356497409240) -5544635317209327550045071802859986261979158492907374734760649234578367469399038563605323839330681533705071632958240/166884818941132804535892580774781586387104334774784737031184369589400544303785250219152004898392301479219940857877)
+  (num-test (/ 63160395612932962868082774785156358041658469338654564454114468396132462549944/5671929772244157797 19541045450680948617094710246839287171374470593288265457341382295544977156173/10827756125123268218) 227961786821047895774887365257727015864174017882302289602409601101722343657899277052494444293264/36945145824164509580938949252327087600266044162541122809277442696583642758457532273140841543627)
+  (num-test (/ 31389399613343712511677734270541516183531975055644318154870016415582858008412/11320913214023484367 -95931706646769408081251897664360951854776052790951374912970042200868629796051/14301831604104230477) -149641969141325406602881756591195860220337618158488775091717625369334526143115090325362684257508/362011508473745439254610688691597507367516106821889963803421575701854031622412859179610532278239)
+  (num-test (/ -50845041077039215658764589763556935122444212169574762080162289087527164772395/482986173890811026 -51342299909113507561385579724776151277474630060658338514843664853027455595538/3864573616937705869) 196494404298439669659681446421686066898686292162412914850963937042669022612531239234324840686255/24797620991857267698917294149872672843409173617406514673128342148521539559341861421304646801988)
+  (num-test (/ 76283614020376921713154299810619585257752996149145061806263596894412414185408/337890011287912517039286436540240936661 70530558237421368381589233382700323659036925075366138096846582768833233488577/12121510300837787759729092713205686989) 924672613133132744522463879340347327755455994321131972145048214329608890428265966744607561005512244129921459256512/23831571118985077324412202325831974453532679575894228007993082738742295289254461850021038245882565939546151124021397)
+  (num-test (/ 13518475961402756750057330871273933874583566313800024119371308450919239424622/71146816100737230880567880716110051085 -11914742388051168959634071864657967837347162591767656949770878950409478930980/166466796775669753065110807850377519909) -1125188695291804746273664719520877594103080002716204716437885631737502681157239448228517736957154781558316254899699/423847992785167635691798025732868758201476408654527740579259436528169254792708107390082891890404030666159494556650)
+  (num-test (/ -53624051286117226406327700847140806598091981633622544805551583455315188018537/149060170957501829683988930330276188371 -49540630291338976658332195799658601133012561780540500265134312414843218811481/313014990314092319823049811442768272842) 16785131893926373429171158665038393627227592608630727377590747943991201054188961463248027101037470630205119769672154/7384534820569381535972144752572408048556227885764547207137140227958732266609348654686668662110083737942669493487451)
+  (num-test (/ 2634758410586745842739353561704344884865889793873131750193619887157306355755/83106075320614705363810122092414199463231740446254118542567688658288107572919 10787649314660479714744029413883607304719873485501736976813666398631455642569/2439964488756696481271244145022481444549967702052558191280867337292105066432) 2142905652761565172685487282499186838096673751132490328620490049367034561455889328384026705096013173825469773464105722689198047146574263705663366838720/298839732158850477765824602476778580028064205733214070073086531571837859351705342746223206218407306637658483098569582239416197836311325170250187389329637)
+  (num-test (/ -1907320079310938642409293211056905401889419041722087613680756850005726714712/10387378553621846874105702088597026076825105075730032753153301604042569998683 113647247724474559442709588703965365251731833799417671287796250968092484717057/58756890421232187224353930678527831208703723187770044891160428018937233424397) -37356065632762902117955690133395145368676268194116097031480521390942668514422835237280325034441435052929702455487858500299401976652159912902024146542888/393498994563785425899168694480259206994308562177080555315323154941891277193612821825931878224565302417504072329241812530787363937691786269618438039211977)
+  (num-test (/ -54987418627898620923060954379316763081930842855917193391807940070173620336071/17370345837184638879794373707261631548922174314274224219546763452439685451597 107349939397731511365417710412808670916754334908520065561311453951414109180973/7800708635318451621630266369706695626474649690647985662113853436261704078874) -428940831324519456770429889832838610542119304716244392653623661175655561457214418178921042544524225772650432309479656622489393939407340321261255371264054/1864705572939408818246392762570376592749103793151936455808919833872532407312841098160841844995663367019074328670998871082130543124576872890789577304863881)
+  
+  
+  (test (= -98781233389595723930250385525631360344437602649022271391716773162526352115087074898920261954897888235939429993829738630297052776667061779065100945771127020439712527398509771853491319737304616607041615012797134365574007368603232768089410097730646360760856052946465578073788924743642391638455649511108051053789425902013657106523269224045822294981391380222050223141347787674321888089837786284947870569165079491411110074602544203383038299901291952931113248943344436935596614205784436844912243069019367149526328612664067719765890897558075277707055756274228634652905751880612235340874976952880431555921814590049070979276358637989837532124647692152520447680373275200239544449293834424643702763974403094033892112967196087310232853165951285609426599617479356206218697586025251765476179158153123631158173662488102357611674821528467825910806391548770908013608889792001203039243914696463472490444573930050190716726220002151679336252008777326482398042427845860796285369622627679324605214987983884122808994422164327311297556122943400093231935477754959547620500784989043704825777186301417894825200797719289692636286337716705491307686644214213732116277102140558505945554566856673724837541141206267647285222293953181717113434757149921850120377706206012113994795124049471433490016083401216757825264766474891405185591236321448744678896448941259668731597494947127423662646933419809756274038044752395708014998820826196523041220918922611359697502638594907608648168849193813197790291360087857093790119162389573209640804111261616771827989939551840471235079945175327536638365874717775169210186608268924244639016270610098894971732892267642318266405837012482726627199088381027028630711279130575230815976484191675172279903609489448225149181063260231957171204855841611039996959582465138269247794842445177715476581512709861409446684911276158067098438009067149531119008707418601627426255891/2063950098473886055933596136103014753954685977787179797499441692283103642150668140884348149132839387663291870239435604463778573480782766958396423322880804442523056530013282118705429274303746421980903580754656364533869319744640130831962767797772323836293079599182477171562218297208495122660799328579852852969560730744211066545295945803939271680397511478811389399527913043145952054883289558914237172406636283114284363301999238526952309439259354223729114988806937903509692118585280437646676248013406270664905997291670857985754768850507766359973207600149782819306010561088246502918148146264806947375101624011387317921439210509902170092173796154464078297852707797984007992277904626058467143192149921546030028316990855470478894515952884526783686210401408859364838148201339959570732480920969000913791571631154267939054105878236201498477027265774680071188764947522112650857013491135901945605796776829525789886482760578142306057177990048751864852763036720112071475134369179525117161001517868525821398753039187062869247457336940152614866298628205010037695017885878296140891234142925514925051385440766473260338168038302226808098439763889250948602137806546736025439919604390464712793474019469457135856879584745805794574609707742445431851999335443724488636749987837445626810087003490329257105472274738811579817454656532496370562155449815456374456838912258383282154811001588175608617475540639254689723629881619252699580383612847920348111900440075645703960104081690968807839189109040568288972353424306876947127635585164905071821419089229871978994388197349499565628906992171901547121903117815637249359328193980583892566359962066242217169190169986105579733710057404319381685578470983838597020624234209884597110721892707818651210378187525863009879314177842634871978427592746452643603586344401223449546482306838947819060455178762434166799996220143825677025686435609179225302671777326568324855229172912876656233006785717920665743720753617646617017219230313226844735567400507490772935145894670445831971526014183234960075574401616682479457962912905141754252265169682318523572680657053374002911007741991220001444440319448034755483178790032581428679303588017268970 0) #f)
+  
+  (num-test (/ 10105597264942543888.0 14352488138967388642.0) 5052798632471271944/7176244069483694321)
+  (num-test (/ -17631701977702695093.0 3931860028646338313.0) -17631701977702695093/3931860028646338313)
+  (num-test (/ -1606495881715082381.0 16324360910828438638.0) -1606495881715082381/16324360910828438638)
+  (num-test (/ -7960193178071300653.0 -10280747961248435844.0) 7960193178071300653/10280747961248435844)
+  (num-test (/ -11544909483975853384.0 -16041992360613233027.0) 11544909483975853384/16041992360613233027)
+  (num-test (/ -5758820541298901548.0 -2596462557714095861.0) 5758820541298901548/2596462557714095861)
+  (num-test (/ -13056342734667572546.0 46502284983183419157350605242474199851.0) -13056342734667572546/46502284983183419157350605242474199851)
+  (num-test (/ 12668118634717482325.0 -338544675918656078399121171905238525746.0) -12668118634717482325/338544675918656078399121171905238525746)
+  (num-test (/ -16738429327795346815.0 164053836541028518093058940786011794219.0) -16738429327795346815/164053836541028518093058940786011794219)
+  (num-test (/ -9884600460121235549.0 -53914696297933680001835530599748561584.0) 9884600460121235549/53914696297933680001835530599748561584)
+  (num-test (/ 6753521264659576004.0 71759828079371803409570464915096122874.0) 3376760632329788002/35879914039685901704785232457548061437)
+  (num-test (/ -6072478784520825268.0 83641961138289700975241455431547940418.0) -3036239392260412634/41820980569144850487620727715773970209)
+  (num-test (/ -6708950756971973620.0 -9847903810677323447803434015107261150885944735136350527205856921771320298384705376646797569973415403097847060539915279223391112430240736564839483430569706.0) 3354475378485986810/4923951905338661723901717007553630575442972367568175263602928460885660149192352688323398784986707701548923530269957639611695556215120368282419741715284853)
+  (num-test (/ 11263779860755455072.0 2292311486393743282743453705144070351222990311578446825826935237655927864700827857707370158936582804478427014131790879562565658386819339761919809732496450.0) 1877296643459242512/382051914398957213790575617524011725203831718596407804304489206275987977450137976284561693156097134079737835688631813260427609731136556626986634955416075)
+  (num-test (/ 9956488981426387585.0 -12351244248621474338537656633137999145154500022264356186225225426288301330225259889671144104952158102155582320296061124840400655528634050137479515338944145.0) -1991297796285277517/2470248849724294867707531326627599829030900004452871237245045085257660266045051977934228820990431620431116464059212224968080131105726810027495903067788829)
+  (num-test (/ -14875992781716065391.0 4906952781757522095285156014969507916562921709689447567404076064849249737893410245743456952512717420040816186768213920574809530298070437840356629617118643.0) -2125141825959437913/700993254536788870755022287852786845223274529955635366772010866407035676841915749391922421787531060005830883824030560082115647185438633977193804231016949)
+  (num-test (/ 16043178952268979636.0 -4962728781666935768923030490263743715131420507991284894489828489607808897271220927863958149140648859077934323268424257800724618076505149638049461104621679.0) -5347726317422993212/1654242927222311922974343496754581238377140169330428298163276163202602965757073642621319383046882953025978107756141419266908206025501716546016487034873893)
+  (num-test (/ -14889985628902581941.0 3075736124701105220602924325296812116294816310089906623707854625135862902005059305428034753787024827094954645083406870532379125275086885405969947540175361.0) -14889985628902581941/3075736124701105220602924325296812116294816310089906623707854625135862902005059305428034753787024827094954645083406870532379125275086885405969947540175361)
+  (num-test (/ -1719613957783789857.0 19860562547348050982501313785551054055826630539673708970554435103060535649825139319625648954889488501680865494719253019921780044205805557658109807483499994523398090829033362953135186523580359552555144614353929273831853529446536288544481045105104526669277307473478898498061888931858821517694257595658138564305517447595298378933983614114298000880741350618424855028965861930329619462261269994651112266861896630584883581092431090390354633458596611690990999635499563944625720180529318327647519405136188243979680965052005899543797270970540925042201315580510136864931200059448645464256385079735225156720340173280541113382758.0) -1719613957783789857/19860562547348050982501313785551054055826630539673708970554435103060535649825139319625648954889488501680865494719253019921780044205805557658109807483499994523398090829033362953135186523580359552555144614353929273831853529446536288544481045105104526669277307473478898498061888931858821517694257595658138564305517447595298378933983614114298000880741350618424855028965861930329619462261269994651112266861896630584883581092431090390354633458596611690990999635499563944625720180529318327647519405136188243979680965052005899543797270970540925042201315580510136864931200059448645464256385079735225156720340173280541113382758)
+  (num-test (/ -10969623867482498359.0 1292477254230352575769754773488799598312602810841892384475535212194939033905139960602724737178675944133847094464739764817257836826367652752931492512753561670732296265459534230949226553571982695924178928914002527460943582374603078611662312521259541641138419845784008028215876048965254023368247445173694441960256131358058174374542730502334351759171930973722361567186133851896057677818979314942434199157003833234473048838906103902832115569853657335216793235394595479328932380393044485884605451918890395812628720641212850763944658735838941829604119213195707479940053016354291972875689927240247563236506479099606571912595.0) -10969623867482498359/1292477254230352575769754773488799598312602810841892384475535212194939033905139960602724737178675944133847094464739764817257836826367652752931492512753561670732296265459534230949226553571982695924178928914002527460943582374603078611662312521259541641138419845784008028215876048965254023368247445173694441960256131358058174374542730502334351759171930973722361567186133851896057677818979314942434199157003833234473048838906103902832115569853657335216793235394595479328932380393044485884605451918890395812628720641212850763944658735838941829604119213195707479940053016354291972875689927240247563236506479099606571912595)
+  (num-test (/ -3716891004757979686.0 -19452372993227550502015765258932159656814363741878583541173956168837566077148160901999018823586675966076058615847408138956450751813058209394199427182041779436168298455103717521843644244801542056954603631432685194627158423459586845252167819811850263444712218938833443253125954475476481099092216538126519474183531297423759923656571895377587989169731023397615799830371852298135015608612181670362528239430952907458704415974164085176066242388561893721949244663406941558257051263727439679525692652639731850971185056484335828001005009903973037524233097329857690857731943951449292814500362180170793919266389501882641682782987.0) 3716891004757979686/19452372993227550502015765258932159656814363741878583541173956168837566077148160901999018823586675966076058615847408138956450751813058209394199427182041779436168298455103717521843644244801542056954603631432685194627158423459586845252167819811850263444712218938833443253125954475476481099092216538126519474183531297423759923656571895377587989169731023397615799830371852298135015608612181670362528239430952907458704415974164085176066242388561893721949244663406941558257051263727439679525692652639731850971185056484335828001005009903973037524233097329857690857731943951449292814500362180170793919266389501882641682782987)
+  (num-test (/ -4863232114852441787.0 -22963038454503597269981750990033903654256693514059439027985256604978917966584414065892146187253799108250061573972673983350956191446047978392921074610323648301008272837432907303975548030552369880338022067315042332692023645592417869181836251486577977896077712912433381480614752789750181208326525834629219729662085632321271870762094800588296544243340047360684854239747242066367921596241226349790282723168222543448385227922748241223520686047460119733024390425165073367321644498280127168757335614077882325524816799960018589278475564547840614315473357481582710826551932681173443524724802157570101916268510464302946527662720.0) 4863232114852441787/22963038454503597269981750990033903654256693514059439027985256604978917966584414065892146187253799108250061573972673983350956191446047978392921074610323648301008272837432907303975548030552369880338022067315042332692023645592417869181836251486577977896077712912433381480614752789750181208326525834629219729662085632321271870762094800588296544243340047360684854239747242066367921596241226349790282723168222543448385227922748241223520686047460119733024390425165073367321644498280127168757335614077882325524816799960018589278475564547840614315473357481582710826551932681173443524724802157570101916268510464302946527662720)
+  (num-test (/ -16248276650501285553.0 -3381199474840825715485713565301777938368574604710714363907009216856320913536015299178065264912798511857598595067318796576494480424838898250138649774858742984769125731728430552285782315111538920026330816414650913188340281906359149109963139438960274321560117812365241840204034925444652058916966934904097509799291744775242863360284348334605170437300543978049053839829106628489146216325576991696936733592366926096500684308845306493636196092408597450926695579897293944488261001228478152650490677071497874746121221519036861983646423005753475340900508665494162949119110128646472783016552527735050067363030838015919512260159.0) 16248276650501285553/3381199474840825715485713565301777938368574604710714363907009216856320913536015299178065264912798511857598595067318796576494480424838898250138649774858742984769125731728430552285782315111538920026330816414650913188340281906359149109963139438960274321560117812365241840204034925444652058916966934904097509799291744775242863360284348334605170437300543978049053839829106628489146216325576991696936733592366926096500684308845306493636196092408597450926695579897293944488261001228478152650490677071497874746121221519036861983646423005753475340900508665494162949119110128646472783016552527735050067363030838015919512260159)
+  (num-test (/ 18296946401228630959.0 3302341071702763311560113831030141639804425031433511503765833897787925467295486187687396312611805794369889470239777040624530990622212474466940548049117664906468330871893337410618797113677420975837622378808494314918471282099855916016026079371666730617071364751834080179173620476977670099126230223862266413091012344741482772771219725893630556702028108027870656512750807359335108428687238687397060104669074315031780019301768744978815422943986587389425726602444937024004102212071953113581935989741954695450085391443134273670514145585869912689150728183940456773133212037846765421397201956541430155664614978559762638030787.0) 494512064898071107/89252461397371981393516590027841665940660135984689500101779294534808796413391518586145846286805562009997012709183163260122459206005742553160555352678855808282927861402522632719426949018308675022638442670499846349147872489185295027460164307342344070731658506806326491329016769648045137814222438482763957110567901209229264128951884483611636667622381298050558284128400198900948876451006451010731354180245251757615676197345101215643660079567205064579073691957971270919029789515458192258971242965998775552705010579544169558662544475293781424031100761728120453327924649671534200578302755582200815017962566988101692919751)
+  (num-test (/ -60488682170925814337492051725122486652.0 14880088785789146426.0) -30244341085462907168746025862561243326/7440044392894573213)
+  (num-test (/ 126617729996196635247771282957911941277.0 -7166506344996883172.0) -126617729996196635247771282957911941277/7166506344996883172)
+  (num-test (/ -278675896803726074870988122161067771390.0 7744689831802931490.0) -27867589680372607487098812216106777139/774468983180293149)
+  (num-test (/ -283351838662873779255871649630248958879.0 6912311315831153835.0) -14913254666467041013466928927907839941/363805858727955465)
+  (num-test (/ -9715584046609700027352634666499181378.0 3368831995960494221.0) -9715584046609700027352634666499181378/3368831995960494221)
+  (num-test (/ -137493547985106345282009151869389470397.0 -1916381539906956855.0) 137493547985106345282009151869389470397/1916381539906956855)
+  (num-test (/ -328662747577960331872949773416436800743.0 -231069430804205460334599495337085157308.0) 328662747577960331872949773416436800743/231069430804205460334599495337085157308)
+  (num-test (/ 213595640581249636406536485951630735277.0 -48492294677143227478357598229530842959.0) -213595640581249636406536485951630735277/48492294677143227478357598229530842959)
+  (num-test (/ 85922846498729014445816145204889624189.0 193533957681757355413031965695625196813.0) 85922846498729014445816145204889624189/193533957681757355413031965695625196813)
+  (num-test (/ 24053342958857142686054803491202486471.0 196417511107100936775397820630955772553.0) 24053342958857142686054803491202486471/196417511107100936775397820630955772553)
+  (num-test (/ 102038936612518756467074084117019701214.0 -111946989731587760700903475996379168167.0) -102038936612518756467074084117019701214/111946989731587760700903475996379168167)
+  (num-test (/ -3006867214208872584699983438179656913.0 -234257597822744479264249663225224173340.0) 3006867214208872584699983438179656913/234257597822744479264249663225224173340)
+  (num-test (/ -279839802710533516603863620922251878907.0 -3244112647743502769852782626803305310331045534071805654982307107362388474314396636799597033636575215617240554815450017779373048313695795886893032630263219.0) 279839802710533516603863620922251878907/3244112647743502769852782626803305310331045534071805654982307107362388474314396636799597033636575215617240554815450017779373048313695795886893032630263219)
+  (num-test (/ 123635964546481689465778244982425098404.0 7701433613491146708866098469269971554817017737111287276993583150548359764165526640986060909954451793171933304569726872785964805121981749276421956645830854.0) 61817982273240844732889122491212549202/3850716806745573354433049234634985777408508868555643638496791575274179882082763320493030454977225896585966652284863436392982402560990874638210978322915427)
+  (num-test (/ 166158110049010486343321316578688184578.0 4093720847216792748840371965199135052196058344862447621818024731938681519017878880275303125899149558774718190527651555811733139227128378041055212888819294.0) 83079055024505243171660658289344092289/2046860423608396374420185982599567526098029172431223810909012365969340759508939440137651562949574779387359095263825777905866569613564189020527606444409647)
+  (num-test (/ 147416259636838312272435267341375281181.0 -11266711292262839805944890501811605204323255169233519804446548849178247889563130015168799346120099052214488209897402054530713234143622703174309015777885801.0) -147416259636838312272435267341375281181/11266711292262839805944890501811605204323255169233519804446548849178247889563130015168799346120099052214488209897402054530713234143622703174309015777885801)
+  (num-test (/ 102557200511608632541115941654031896919.0 3866177549962722728707550488877109233779215384377007088712280650225992470307822792085413087509167847767889824884877044539352696974351192629898363157976511.0) 102557200511608632541115941654031896919/3866177549962722728707550488877109233779215384377007088712280650225992470307822792085413087509167847767889824884877044539352696974351192629898363157976511)
+  (num-test (/ 47794953079190110032282671989549362415.0 3802290983508829335098916118339496411537222492645529399519373082799614656011270200284796148989094312601047370399228868583158444769807910513767845541589667.0) 47794953079190110032282671989549362415/3802290983508829335098916118339496411537222492645529399519373082799614656011270200284796148989094312601047370399228868583158444769807910513767845541589667)
+  (num-test (/ -169956065319483471022234920202991103615.0 -9934427489865644196610501807375648335352544234206717324511161205173460054921759084767897792996557220898467288533128078406604709773449948420404563411793533441010236017064154469575084055359823982786110746700747423674942932421964955746280671982635899487781780756099620799397239156211815110739544719746684712086075069101799537802834839550142629064374734870047412916259754010150500874430055034366305216104752636211802195447299210332237598443674867760860326529472901775427058078447963316168327741049511844237329137194533000697525539835371015163158135757326482343130221118201740819963770851200676279882978581431999960842565.0) 33991213063896694204446984040598220723/1986885497973128839322100361475129667070508846841343464902232241034692010984351816953579558599311444179693457706625615681320941954689989684080912682358706688202047203412830893915016811071964796557222149340149484734988586484392991149256134396527179897556356151219924159879447831242363022147908943949336942417215013820359907560566967910028525812874946974009482583251950802030100174886011006873261043220950527242360439089459842066447519688734973552172065305894580355085411615689592663233665548209902368847465827438906600139505107967074203032631627151465296468626044223640348163992754170240135255976595716286399992168513)
+  (num-test (/ -83006311763073652927964071041666508273.0 13480787677843057038436344704360462056114592749322481662307876594244244638227291805757775026215166740035048814729231681821563443093991755779505400592913963236010573873554317250153995160235771659208137440518282824497744092608999871327127239673370293239927529076145825972430101380272357235582367639159280348164804218713823424182167974242317526959809443701996053548231667727254858428867000011055354779789221097183515832386890638024105232865079002765479933320220378271026425568216748186200736499581088153390350474814123049637951929317200314355414551809067125550551841102097159644340520444983020267926123546444838010089690.0) -83006311763073652927964071041666508273/13480787677843057038436344704360462056114592749322481662307876594244244638227291805757775026215166740035048814729231681821563443093991755779505400592913963236010573873554317250153995160235771659208137440518282824497744092608999871327127239673370293239927529076145825972430101380272357235582367639159280348164804218713823424182167974242317526959809443701996053548231667727254858428867000011055354779789221097183515832386890638024105232865079002765479933320220378271026425568216748186200736499581088153390350474814123049637951929317200314355414551809067125550551841102097159644340520444983020267926123546444838010089690)
+  (num-test (/ -312626207169475064151212222217866488926.0 6989069923898656093413456232544365450599471748502878018530391549015151484336014906416216966193568842618920902504390187814247729346977677905224098932673981665869061845335443588666641982676550205160521286690015544764015602751932938178737949961754714143180917985455875095030469699198116593730005119922928175789172042067281849364217595912265452199938281052984802042194034638773435768458457616208103331213440768472281882976004050012769415198321241810008696147179275528426468408383757692656341606162350211696837361434874035354680073309142183699892959618671515841112321607728427286289324836870027735590091451421689980776552.0) -52104367861579177358535370369644414821/1164844987316442682235576038757394241766578624750479669755065258169191914056002484402702827698928140436486817084065031302374621557829612984204016488778996944311510307555907264777773663779425034193420214448335924127335933791988823029789658326959119023863486330909312515838411616533019432288334186653821362631528673677880308227369599318710908699989713508830800340365672439795572628076409602701350555202240128078713647162667341668794902533053540301668116024529879254737744734730626282109390267693725035282806226905812339225780012218190363949982159936445252640185386934621404547714887472811671289265015241903614996796092)
+  (num-test (/ -151709660794612786408772973806200383563.0 -26960472721919005254400858042130056790831511338891584787669209989714807518625849812230185079206081782191501696661436514815190623849929065098497737155759771863508038766934134444191240792356114381746781342181881402424707118515655119761011977116554236461222788625158348668147995099157685699761135150772589445239536582228655532345059046596356954495360132444243748421428095867292294626357084961338288369883088525401649234025290736504802104065029036642533076183281468647642956623788270236516849523210698622687255735945678505925047193818483603361307498423724202227256505312543145618362906047473400380196192622607541097732443.0) 151709660794612786408772973806200383563/26960472721919005254400858042130056790831511338891584787669209989714807518625849812230185079206081782191501696661436514815190623849929065098497737155759771863508038766934134444191240792356114381746781342181881402424707118515655119761011977116554236461222788625158348668147995099157685699761135150772589445239536582228655532345059046596356954495360132444243748421428095867292294626357084961338288369883088525401649234025290736504802104065029036642533076183281468647642956623788270236516849523210698622687255735945678505925047193818483603361307498423724202227256505312543145618362906047473400380196192622607541097732443)
+  (num-test (/ 138834496986391136939574372853300933725.0 -8052690543272184576133758511645801940246473546142520821850130421981395129853341888352999304040698251945886555605291324954368612109314080471658982022831338507499254609048475429862437003158379101603576571787302167207044118847876475134352180874260998595377014195145760071923429129767580115085764485254455919915567128572731355497418831212259648020550107573824886521471697331410754043280744066090848295906051303624846301488010249980896364883452154860562864255354208802313850527991005497484253401461375477060954782095047043919500670383372218536999834862885439984085848342867301834247551832677237328664699302165347765799113.0) -15426055220710126326619374761477881525/894743393696909397348195390182866882249608171793613424650014491331266125539260209816999922671188694660654061733921258328263179123257120052406553558092370945277694956560941714429159667017597677955952952420811351911893790983097386126039131208251222066153001577238417785769269903307508901676196053917161768879507458730303483944157647912473294224505567508202765169052410814601194893697860451787872032878450144847205144609778916664544040542605794984506984917261578755812650058665667277498250377940152830784550531343894115991055630042596913170777759429209493331565094260318589092694172425853026369851633255796149751755457)
+  (num-test (/ 276499207940187081393841843387608369874.0 27347897028734618663428054896349668572244941195143856840032842195489553215406302254043947382368793914074147314353589439281000471813879502242851166670252197853998033813694814376228360691543987661407996785043637351295817024680721181205269262470473172181965930243852520386958529041036476807810647578694133804796395977642274699322030062940721165202488695975750512485574440928370802874677938542169620505668128224812441566912043326338714451629730522324228356364241376445033028898865300103247057378058702233150414643818049655628999871012383236520330575609745427181485617250755214922048672375947942288446974485524776744246517.0) 8919329288393131657865865915729302254/882190226733374795594453383753215115233707780488511510968801361144824297271171040453030560721573997228198300463019014170354853929479983943317779570008135414645097864957897237942850344888515731013161186614310882299865065312281328425976427821628166844579546136898468399579307388420531509929375728344972058219238579923944345139420324610991005329112538579862919757599175513818412995957352856199020016311875104026207792481033655688345627471926791042717043753685205691775258996737590325911195399292216201069368214316711279213838705516528491500655825019669207328435019911314684352324150721804772331885386273726605701427307)
+  (num-test (/ -8979365591106781219797187096315899769868799444656824967426553299158070014074001230883484015880186603742048949313393413640240595706939311540002219411120389.0 -1698360947072008877.0) 1282766513015254459971026728045128538552685634950974995346650471308295716296285890126212002268598086248864135616199059091462942243848473077143174201588627/242622992438858411)
+  (num-test (/ -12831814656788829919185319784994714617782749504716966706877579983082880759985031662545957372565411439648298939198657738497464024214657609856476819270030801.0 454910754379715.0) -273017333123166594025219569893504566335803180951424823550586808150699590637979397075445901543944924247836147642524632733988596259886332124605889771702783/9678952220845)
+  (num-test (/ -7834266257250691217409788323211914445703052638619784568844628449769010091330019095736167988675873769434766592786720961949649685040028101508217441360672222.0 -428418418877192732.0) 3917133128625345608704894161605957222851526319309892284422314224884505045665009547868083994337936884717383296393360480974824842520014050754108720680336111/214209209438596366)
+  (num-test (/ -4001605821592542867351046644170905984672346731784670159062281252096012802838642896466582343641124674682428297533953704119505640938363392225910275838094045.0 15760991890495426717.0) -4001605821592542867351046644170905984672346731784670159062281252096012802838642896466582343641124674682428297533953704119505640938363392225910275838094045/15760991890495426717)
+  (num-test (/ 2876630161532936743269451364955814480771395635620140205538288339793482694260173239474830738010159518887660000673207712630507802368373928478641773477534499.0 -6788234478844960330.0) -2876630161532936743269451364955814480771395635620140205538288339793482694260173239474830738010159518887660000673207712630507802368373928478641773477534499/6788234478844960330)
+  (num-test (/ 6230070442453337264527950102774203962152836811174649694700041895216739851602598854067104967963392074425258687296947909484969927078206601660837276754799333.0 190237375887614033974333796608341639595.0) 6230070442453337264527950102774203962152836811174649694700041895216739851602598854067104967963392074425258687296947909484969927078206601660837276754799333/190237375887614033974333796608341639595)
+  (num-test (/ -12098771374444180013224380531550204930654718468097503123335711776524055419889032578894177605164827523969169377266342179411916625188550162928371789854647472.0 -41681385674896602840749705069663453185.0) 12098771374444180013224380531550204930654718468097503123335711776524055419889032578894177605164827523969169377266342179411916625188550162928371789854647472/41681385674896602840749705069663453185)
+  (num-test (/ 13185465843955116174925558412278612918939024395488172088108029202384613698982949554556435640011161663974075894844304583900497170806796813871943782330552768.0 -155202352609947911537719051033334010254.0) -6592732921977558087462779206139306459469512197744086044054014601192306849491474777278217820005580831987037947422152291950248585403398406935971891165276384/77601176304973955768859525516667005127)
+  (num-test (/ 12784980722915659825738808684740823452025110516624579136271791852138148426775553817114893299569867520414470532361018804123866264934222335562072872489963044.0 -249441012384365373362771955533424187237.0) -12784980722915659825738808684740823452025110516624579136271791852138148426775553817114893299569867520414470532361018804123866264934222335562072872489963044/249441012384365373362771955533424187237)
+  (num-test (/ 8517839393030302736298983538193047531846908718502576675615969705563208303329257882565359266876007571790337440612227785062203468682754778416335180236967433.0 -23101645464137481399279134347982485126.0) -8517839393030302736298983538193047531846908718502576675615969705563208303329257882565359266876007571790337440612227785062203468682754778416335180236967433/23101645464137481399279134347982485126)
+  (num-test (/ -10157767522292361462005308817460390811646115952647174687477824271227382383351453540195549992670001314693794150879368708343715654899952822395459036505947192.0 -25611473771508763579433379623726126173.0) 10157767522292361462005308817460390811646115952647174687477824271227382383351453540195549992670001314693794150879368708343715654899952822395459036505947192/25611473771508763579433379623726126173)
+  (num-test (/ -8580252632668820290302987230726290672170301642399871646484841866604753910447257372311950907045477729554307803379310475132687855999835211879267570997069974.0 5347050029330174629945013741349819215851040371727058829687387719215168997632386672310746837193930669173408831178932364105722911104309540550576485594530627.0) -8580252632668820290302987230726290672170301642399871646484841866604753910447257372311950907045477729554307803379310475132687855999835211879267570997069974/5347050029330174629945013741349819215851040371727058829687387719215168997632386672310746837193930669173408831178932364105722911104309540550576485594530627)
+  (num-test (/ 7706102251141221799524762336156378964168657337573751909064577951085535246905735244239132983582998872001001594454632956803416956154262109939446710205558308.0 6334400709835247308796432875490978646658012545184955441452799118298109610816693049400832749087993843490999852355789914065232784070007399786089389453289854.0) 3853051125570610899762381168078189482084328668786875954532288975542767623452867622119566491791499436000500797227316478401708478077131054969723355102779154/3167200354917623654398216437745489323329006272592477720726399559149054805408346524700416374543996921745499926177894957032616392035003699893044694726644927)
+  (num-test (/ 12609622044672092190084693450911157599596799695538449568681964257744962273690941575572590166273187189250007688411096790312605666562908125521094386992971478.0 -8237858212652788898158635047388584411011830102060269605835391741772914864422465141467281143809161251942948659243584296367296559912373856433388249393853968.0) -6304811022336046095042346725455578799798399847769224784340982128872481136845470787786295083136593594625003844205548395156302833281454062760547193496485739/4118929106326394449079317523694292205505915051030134802917695870886457432211232570733640571904580625971474329621792148183648279956186928216694124696926984)
+  (num-test (/ -9988492519236282081446302885464711911055350309732728352574982611126604133339499170845224383282665522673248920309221355720665956477799939031063172954469785.0 -1878204914631111607000020160429571305542722711529281855381736226230242796648854769713662269068364131804626863789957256573308715572826753755672493154125086.0) 9988492519236282081446302885464711911055350309732728352574982611126604133339499170845224383282665522673248920309221355720665956477799939031063172954469785/1878204914631111607000020160429571305542722711529281855381736226230242796648854769713662269068364131804626863789957256573308715572826753755672493154125086))
 
 (let ((val1 (catch #t (lambda () (/ 1.0 0.0)) (lambda args 'error)))
       (val2 (catch #t (lambda () (/ 1.0 -0.0)) (lambda args 'error))))
@@ -76438,11 +76222,10 @@ but it's the printout that is at fault:
 (let ((NaN 1/0)) (test (/ 0.0 1.0 NaN 0 1+i) 'error))
 (test (/ 1/9223372036854775807 0) 'error)
 (test (/ 1/9223372036854775807 0.0) 'error)
-(if with-bignums
-    (begin
-      (test (/ (bignum 1.0) (bignum 0)) 'error)
-      (test (/ (bignum 1.0) (bignum -0.0)) 'error)
-      (test (/ 9223372036854775807123123123 0) 'error)))
+(when with-bignums
+  (test (/ (bignum 1.0) (bignum 0)) 'error)
+  (test (/ (bignum 1.0) (bignum -0.0)) 'error)
+  (test (/ 9223372036854775807123123123 0) 'error))
 
 (for-each
  (lambda (arg)
@@ -76470,122 +76253,119 @@ but it's the printout that is at fault:
 ;;; from guile irc
 (test (boolean? (let ((x (/ 1e-300 1e8))) x)) #f)
 
-(if with-bignums
-    (let ((old-prec (*s7* 'bignum-precision)))
-      (set! (*s7* 'bignum-precision) 512)
-      (let* ((rats (list 2/3
-			5/8
-			12/19
-			53/84
-			253/401
-			665/1054
-			12941/20511
-			15601/24727
-			79335/125743
-			190537/301994
-			7161071/11350029
-			10400200/16483927
-			10781274/17087915
-			53715833/85137581
-			171928773/272500658
-			397573379/630138897
-			4201378396/6659027209
-			6189245291/9809721694
-			6586818670/10439860591
-			65470613321/103768467013
-			137528045312/217976794617
-			615582794569/975675645481
-			753110839881/1193652440098
-			5409303924479/8573543875303
-			11571718688839/18340740190704
-			52449289519716/83130157078217
-			326267455807135/517121682660006
-			483615324366283/766512153894657
-			3816473305410548/6048967074079039
-			6234549927241963/9881527843552324
-			111738283365989051/177100989030047175
-			130441933147714940/206745572560704147
-			397560349370386783/630118245525664765
-			3447601211185766107/5464318637170278738
-			4640282259296926456/7354673373747273033
-			22803850947114245497/36143248623210700400
-			50247984153525417450/79641170620168673833
-			205632218873398596256/325919355854421968365
-			5680010011095224105765/9002602871306688466954
-			7530699980955811472069/11935877073996486182239
-			23414628818361028801231/37111308645407146420177
-			31150961018190238869556/49373105075258054570781
-			1534133422091150914676569/2431543945117495582118873
-			1721039188200292347893905/2727782575569043909543559
-			3473229337418774934657366/5504938256213345873657899
-			154574280995644579711687565/244994438954031520405061896
-			171940427682738454384974395/272519130235098249773351391
-			522767741723052913024237917/828567267217721441067369971
-			2438425051595107335801557824/3864812267597295609689840565
-			8360810638231427833453149306/13251571337227329711204261637
-			25605199656417336413383685835/40583281278899710574680154882
-			62532402744384260909046316717/99111513429841767911321781937
-			201880404458020531058243690939/319972870696382667546684028520
-			378155609259623725703103696043/599362460113865624518687902158
-			2180796053156940756896192173706/3456479965974452268626125476129
-			30909300353456794322249794127927/48990081983756197385284444567964
-			72722580972698292428980549124384/115262563797384656113699516516573
-			253438635377865553122983825848491/401690733307859070263635245069941
-			579599851728429398674948200821366/918644030413102796640970006656455
-			2391121987886415887128773352409848/3789838685449795842677579543142393
-			8658726883466670304288180833845151/13723757414280836847692013404326603
-			13440970859239502078545727538664847/21303434785180428533047172490611389
-			42714034565604922122765955968404389/67700143040991081441819097014976560
-			114701132837575264289752140366548320/181796994337792815792410118554318291
-			845621964428631772151030938534242629/1340279103405540791988689926895204597
-			960323097266207036440783078900790949/1522076097743333607781100045449522888
-			6836962813701024519375233692672084963/10836329678541128070260110436700978507
-			14634248724668256075191250464244960875/23194735454825589748301320918851479902
-			51700032084971999781389768164307758537/81942612140761230922945173238704941101
-			229231662975523486756566339893048870935/363323589794154975118123224355821745701
-			724760772286874203975897537379209410467/1148718646068400566529013525387318698302
-			1360755729128472664464206788894048264735/2156746803310104260960438025216078994304
-			6167783688800764861832724692955402469407/9775705859308817610370765626251634675518
-			28435404464167678210479364512746335244699/45069049768544731377148664330740395536983
-			34603188152968443072312089205701737714106/54844755627853548987519429956992030212501
-			144580536300674537151081081515762353325831/229154728370723013560448485454219755525522
-			792109057809309571900029585990215242057367/1255463153109322165777281287185082838052612
-			1907982376372936661174533424217656928480502/3024080518587943907662978975235597217368769
-			27503862327030422828343497525037412240784395/43592590413340536873058986940483443881215378
-			31319827079776296150692564373472726097745399/49640751450516424688384944890954638315952916
-			221146771934807009716022484038526739612698295/350509340672202916726357593211918065429039181
-			252466599014583305866715048411999465710443694/400150092122719341414742538102872703744992097
-			2555985817225609354817843048493467383202182339/4051141672677709838835810325919681675765873886
-			2808452416240192660684558096905466848912626033/4451291764800429180250552864022554379510865983
-			50299676893308884586455330695886403814716824900/79723101674285005903095209014303106127450595597
-			72767296223230425871931795471130138606017833164/115333435792688439345099631926483541163537523461
-			148343044862701044404548149039165744060948292361/235118163350177307870449816716989636706585912905
-			590563727034563984957508038059757509394880543411/936021361635908802301548714003935992446832785637
-			1550580840017760484596044169668976645517675504708/2457612485764860659689096693368334799470374920545
-			26950438007336492223090258922432360483195364123447/42715433619638540017016192501265627583443206434902
-			))
-	    (fifth (/ (log 2.0) (log 3.0)))
-	    (c-fifth (complex fifth fifth))
-	    (p-fifth (make-polar (* (sqrt 2.0) fifth) (/ pi 4)))
-	    (last-rat 26950438007336492223090258922432360483195364123447/42715433619638540017016192501265627583443206434902))
-	(for-each 
-	 (lambda (a b) 
-	   (if (not (< (abs (- b fifth)) (abs (- a fifth))))
-	       (format-logged #t ";fifth: ~A is not better than ~A??~%" b a))
-	   (if (not (< (magnitude (- (complex b b) c-fifth)) (magnitude (- (complex a a) c-fifth))))
-	       (format-logged #t ";rectangular fifth: ~A is not better than ~A??~%" b a))
-	   (let ((pa (make-polar (* (sqrt 2.0) a) (/ pi 4)))
-		 (pb (make-polar (* (sqrt 2.0) b) (/ pi 4))))
-	     (if (not (< (magnitude (- pb p-fifth)) (magnitude (- pa p-fifth))))
-		 (format-logged #t ";polar  fifth: ~A is not better than ~A??~%" b a)))
-	   (if (not (< (abs (- b last-rat)) (abs (- a last-rat))))
-	       (format-logged #t ";- last: ~A is not better than ~A??~%" b a))
-	   (if (not (< (magnitude (sqrt (- b last-rat))) (magnitude (sqrt (- a last-rat)))))
-	       (format-logged #t ";sqrt last: ~A is not better than ~A??~%" b a))
-	   )
-	 rats (cdr rats)))
-      (set! (*s7* 'bignum-precision) old-prec)))
-    
+(when with-bignums
+  (let-temporarily (((*s7* 'bignum-precision) 512))
+    (let* ((rats (list 2/3
+		       5/8
+		       12/19
+		       53/84
+		       253/401
+		       665/1054
+		       12941/20511
+		       15601/24727
+		       79335/125743
+		       190537/301994
+		       7161071/11350029
+		       10400200/16483927
+		       10781274/17087915
+		       53715833/85137581
+		       171928773/272500658
+		       397573379/630138897
+		       4201378396/6659027209
+		       6189245291/9809721694
+		       6586818670/10439860591
+		       65470613321/103768467013
+		       137528045312/217976794617
+		       615582794569/975675645481
+		       753110839881/1193652440098
+		       5409303924479/8573543875303
+		       11571718688839/18340740190704
+		       52449289519716/83130157078217
+		       326267455807135/517121682660006
+		       483615324366283/766512153894657
+		       3816473305410548/6048967074079039
+		       6234549927241963/9881527843552324
+		       111738283365989051/177100989030047175
+		       130441933147714940/206745572560704147
+		       397560349370386783/630118245525664765
+		       3447601211185766107/5464318637170278738
+		       4640282259296926456/7354673373747273033
+		       22803850947114245497/36143248623210700400
+		       50247984153525417450/79641170620168673833
+		       205632218873398596256/325919355854421968365
+		       5680010011095224105765/9002602871306688466954
+		       7530699980955811472069/11935877073996486182239
+		       23414628818361028801231/37111308645407146420177
+		       31150961018190238869556/49373105075258054570781
+		       1534133422091150914676569/2431543945117495582118873
+		       1721039188200292347893905/2727782575569043909543559
+		       3473229337418774934657366/5504938256213345873657899
+		       154574280995644579711687565/244994438954031520405061896
+		       171940427682738454384974395/272519130235098249773351391
+		       522767741723052913024237917/828567267217721441067369971
+		       2438425051595107335801557824/3864812267597295609689840565
+		       8360810638231427833453149306/13251571337227329711204261637
+		       25605199656417336413383685835/40583281278899710574680154882
+		       62532402744384260909046316717/99111513429841767911321781937
+		       201880404458020531058243690939/319972870696382667546684028520
+		       378155609259623725703103696043/599362460113865624518687902158
+		       2180796053156940756896192173706/3456479965974452268626125476129
+		       30909300353456794322249794127927/48990081983756197385284444567964
+		       72722580972698292428980549124384/115262563797384656113699516516573
+		       253438635377865553122983825848491/401690733307859070263635245069941
+		       579599851728429398674948200821366/918644030413102796640970006656455
+		       2391121987886415887128773352409848/3789838685449795842677579543142393
+		       8658726883466670304288180833845151/13723757414280836847692013404326603
+		       13440970859239502078545727538664847/21303434785180428533047172490611389
+		       42714034565604922122765955968404389/67700143040991081441819097014976560
+		       114701132837575264289752140366548320/181796994337792815792410118554318291
+		       845621964428631772151030938534242629/1340279103405540791988689926895204597
+		       960323097266207036440783078900790949/1522076097743333607781100045449522888
+		       6836962813701024519375233692672084963/10836329678541128070260110436700978507
+		       14634248724668256075191250464244960875/23194735454825589748301320918851479902
+		       51700032084971999781389768164307758537/81942612140761230922945173238704941101
+		       229231662975523486756566339893048870935/363323589794154975118123224355821745701
+		       724760772286874203975897537379209410467/1148718646068400566529013525387318698302
+		       1360755729128472664464206788894048264735/2156746803310104260960438025216078994304
+		       6167783688800764861832724692955402469407/9775705859308817610370765626251634675518
+		       28435404464167678210479364512746335244699/45069049768544731377148664330740395536983
+		       34603188152968443072312089205701737714106/54844755627853548987519429956992030212501
+		       144580536300674537151081081515762353325831/229154728370723013560448485454219755525522
+		       792109057809309571900029585990215242057367/1255463153109322165777281287185082838052612
+		       1907982376372936661174533424217656928480502/3024080518587943907662978975235597217368769
+		       27503862327030422828343497525037412240784395/43592590413340536873058986940483443881215378
+		       31319827079776296150692564373472726097745399/49640751450516424688384944890954638315952916
+		       221146771934807009716022484038526739612698295/350509340672202916726357593211918065429039181
+		       252466599014583305866715048411999465710443694/400150092122719341414742538102872703744992097
+		       2555985817225609354817843048493467383202182339/4051141672677709838835810325919681675765873886
+		       2808452416240192660684558096905466848912626033/4451291764800429180250552864022554379510865983
+		       50299676893308884586455330695886403814716824900/79723101674285005903095209014303106127450595597
+		       72767296223230425871931795471130138606017833164/115333435792688439345099631926483541163537523461
+		       148343044862701044404548149039165744060948292361/235118163350177307870449816716989636706585912905
+		       590563727034563984957508038059757509394880543411/936021361635908802301548714003935992446832785637
+		       1550580840017760484596044169668976645517675504708/2457612485764860659689096693368334799470374920545
+		       26950438007336492223090258922432360483195364123447/42715433619638540017016192501265627583443206434902
+		       ))
+	   (fifth (/ (log 2.0) (log 3.0)))
+	   (c-fifth (complex fifth fifth))
+	   (p-fifth (make-polar (* (sqrt 2.0) fifth) (/ pi 4)))
+	   (last-rat 26950438007336492223090258922432360483195364123447/42715433619638540017016192501265627583443206434902))
+      (for-each 
+       (lambda (a b) 
+	 (if (not (< (abs (- b fifth)) (abs (- a fifth))))
+	     (format-logged #t ";fifth: ~A is not better than ~A??~%" b a))
+	 (if (not (< (magnitude (- (complex b b) c-fifth)) (magnitude (- (complex a a) c-fifth))))
+	     (format-logged #t ";rectangular fifth: ~A is not better than ~A??~%" b a))
+	 (let ((pa (make-polar (* (sqrt 2.0) a) (/ pi 4)))
+	       (pb (make-polar (* (sqrt 2.0) b) (/ pi 4))))
+	   (if (not (< (magnitude (- pb p-fifth)) (magnitude (- pa p-fifth))))
+	       (format-logged #t ";polar  fifth: ~A is not better than ~A??~%" b a)))
+	 (if (not (< (abs (- b last-rat)) (abs (- a last-rat))))
+	     (format-logged #t ";- last: ~A is not better than ~A??~%" b a))
+	 (if (not (< (magnitude (sqrt (- b last-rat))) (magnitude (sqrt (- a last-rat)))))
+	     (format-logged #t ";sqrt last: ~A is not better than ~A??~%" b a)))
+       rats (cdr rats)))))
+
 (if with-bignums
     (num-test (- 2 (* 3796553736732654909229441/2684568892382786771291329 3796553736732654909229441/2684568892382786771291329)) 1/7206910137949342581102166717750576215502190586241))
     
@@ -76740,89 +76520,87 @@ but it's the printout that is at fault:
 		(> val 1.0))
 	    (format-logged #t ";(random 1.0 rs) -> ~A?~%" val)))))
   
-  (if with-bignums
-      (begin
-	(num-test (random (bignum "0")) 0)
-	(num-test (random (bignum "0.0")) 0.0)
-	
-	(let ((vr (v 1000 
-		     (bignum "1.0")
-		     (lambda (val)
-		       (and (real? val)
-			    (not (negative? val))
-			    (<= val 1.0))))))
-	  (if (or (< vr 40)
-		  (> vr 400))
-	      (format-logged #t ";(big-random 1.0) not so random? ~A~%" vr)))
-	
-	(let ((vr (v 1000 
-		     (bignum "100")
-		     (lambda (val)
-		       (and (integer? val)
-			    (not (negative? val))
-			    (<= val 100))))))
-	  (if (or (< vr 40)
-		  (> vr 400))
-	      (format-logged #t ";(big-random 100) not so random? ~A~%" vr)))
-	
-	(let ((vr (v 1000 
-		     (bignum "1/2")
-		     (lambda (val)
-		       (and (rational? val)
-			    (not (negative? val))
-			    (<= val 1/2))))))
-	  (if (or (< vr 40)
-		  (> vr 400))
-	      (format-logged #t ";(big-random 1/2) not so random? ~A~%" vr)))
-	
-	(let ((vr (v 1000 
-		     (bignum "-10.0")
-		     (lambda (val)
-		       (and (real? val)
-			    (not (positive? val))
-			    (>= val -10.0))))))
-	  (if (or (< vr 40)
-		  (> vr 400))
-	      (format-logged #t ";(big-random -10.0) not so random? ~A~%" vr)))
-	
-	(do ((i 0 (+ i 1)))
-	    ((= i 100))
-	  (let ((val (random (bignum "1.0+1.0i"))))
-	    (if (or (not (complex? val))
-		    (> (real-part val) 1.0)
-		    (> (imag-part val) 1.0)
-		    (< (real-part val) 0.0))
-		(format-logged #t ";(big-random 1.0+1.0i) -> ~A?~%" val))))
-	
-	(let ((rs (random-state (bignum "12345678"))))
-	  (do ((i 0 (+ i 1)))
-	      ((= i 100))
-	    (let ((val (random (bignum "1.0") rs)))
-	      (if (or (not (real? val))
-		      (negative? val)
-		      (> val 1.0))
-		  (format-logged #t ";(big-random 1.0 rs) -> ~A?~%" val)))
-	    (let ((val (random 1.0 rs)))
-	      (if (or (not (real? val))
-		      (negative? val)
-		      (> val 1.0))
-		  (format-logged #t ";(big-random small-1.0 rs) -> ~A?~%" val)))))
-	
-	(let ((rs (random-state 1234)))
-	  (do ((i 0 (+ i 1)))
-	      ((= i 100))
-	    (let ((val (random (bignum "1.0") rs)))
-	      (if (or (not (real? val))
-		      (negative? val)
-		      (> val 1.0))
-		  (format-logged #t ";(big-random 1.0 small-rs) -> ~A?~%" val)))
-	    (let ((val (random 1.0 rs)))
-	      (if (or (not (real? val))
-		      (negative? val)
-		      (> val 1.0))
-		  (format-logged #t ";(random small-1.0 rs) -> ~A?~%" val)))))
-	))
-  )
+  (when with-bignums
+    (num-test (random (bignum "0")) 0)
+    (num-test (random (bignum "0.0")) 0.0)
+    
+    (let ((vr (v 1000 
+		 (bignum "1.0")
+		 (lambda (val)
+		   (and (real? val)
+			(not (negative? val))
+			(<= val 1.0))))))
+      (if (or (< vr 40)
+	      (> vr 400))
+	  (format-logged #t ";(big-random 1.0) not so random? ~A~%" vr)))
+    
+    (let ((vr (v 1000 
+		 (bignum "100")
+		 (lambda (val)
+		   (and (integer? val)
+			(not (negative? val))
+			(<= val 100))))))
+      (if (or (< vr 40)
+	      (> vr 400))
+	  (format-logged #t ";(big-random 100) not so random? ~A~%" vr)))
+    
+    (let ((vr (v 1000 
+		 (bignum "1/2")
+		 (lambda (val)
+		   (and (rational? val)
+			(not (negative? val))
+			(<= val 1/2))))))
+      (if (or (< vr 40)
+	      (> vr 400))
+	  (format-logged #t ";(big-random 1/2) not so random? ~A~%" vr)))
+    
+    (let ((vr (v 1000 
+		 (bignum "-10.0")
+		 (lambda (val)
+		   (and (real? val)
+			(not (positive? val))
+			(>= val -10.0))))))
+      (if (or (< vr 40)
+	      (> vr 400))
+	  (format-logged #t ";(big-random -10.0) not so random? ~A~%" vr)))
+    
+    (do ((i 0 (+ i 1)))
+	((= i 100))
+      (let ((val (random (bignum "1.0+1.0i"))))
+	(if (or (not (complex? val))
+		(> (real-part val) 1.0)
+		(> (imag-part val) 1.0)
+		(< (real-part val) 0.0))
+	    (format-logged #t ";(big-random 1.0+1.0i) -> ~A?~%" val))))
+    
+    (let ((rs (random-state (bignum "12345678"))))
+      (do ((i 0 (+ i 1)))
+	  ((= i 100))
+	(let ((val (random (bignum "1.0") rs)))
+	  (if (or (not (real? val))
+		  (negative? val)
+		  (> val 1.0))
+	      (format-logged #t ";(big-random 1.0 rs) -> ~A?~%" val)))
+	(let ((val (random 1.0 rs)))
+	  (if (or (not (real? val))
+		  (negative? val)
+		  (> val 1.0))
+	      (format-logged #t ";(big-random small-1.0 rs) -> ~A?~%" val)))))
+    
+    (let ((rs (random-state 1234)))
+      (do ((i 0 (+ i 1)))
+	  ((= i 100))
+	(let ((val (random (bignum "1.0") rs)))
+	  (if (or (not (real? val))
+		  (negative? val)
+		  (> val 1.0))
+	      (format-logged #t ";(big-random 1.0 small-rs) -> ~A?~%" val)))
+	(let ((val (random 1.0 rs)))
+	  (if (or (not (real? val))
+		  (negative? val)
+		  (> val 1.0))
+	      (format-logged #t ";(random small-1.0 rs) -> ~A?~%" val)))))
+    ))
 
 (test (random 0 #t) 'error)
 (test (random 0.0 #(1 2)) 'error)
@@ -76964,16 +76742,15 @@ but it's the printout that is at fault:
 	(let ((val (random 1180591620717411303424.0)))
 	  (test (and (real? val) (>= val 0.0)) #t)))))
   
-(if with-bignums
-    (begin
-      (let ((r1 (random-state (expt 2 70))))
-	(test (random-state? r1) #t)
-	(test ((object->string r1) 1) #\<)
-	(test (eq? r1 r1) #t)
-	(test (equal? r1 r1) #t)
-	(let ((val1 (random 10000000 r1))
-	      (val2 (random 10000000 r1)))
-	  (test (not (= val1 val2)) #t)))))
+(when with-bignums
+  (let ((r1 (random-state (expt 2 70))))
+    (test (random-state? r1) #t)
+    (test ((object->string r1) 1) #\<)
+    (test (eq? r1 r1) #t)
+    (test (equal? r1 r1) #t)
+    (let ((val1 (random 10000000 r1))
+	  (val2 (random 10000000 r1)))
+      (test (not (= val1 val2)) #t))))
 
 (let () ; optimizer tests
   (define (f1) (- (random 100) 50)) 
@@ -77075,53 +76852,51 @@ but it's the printout that is at fault:
 (test (equal? (string->number (number->string 9.22e18)) 9.22e18) #t)
 
 ;;; @ exponent added 26-Mar-12
-(if (provided? '@-exponent)
-    (begin
-      (num-test 0.0 0 at 0)
-      (num-test 0.0 0 at -0)
-      (num-test 0.0 0 at +0)
-      (num-test 1.0 1 at 0)
-      (num-test 10.0 1 at 1)
-      (num-test 10.0 1 at +1)
-      (num-test 0.1 1 at -1)
-
-      (num-test (string->number "1 at 0" 16) 1.0)
-      (num-test (string->number "e at 0" 16) 14.0)
-      (num-test (string->number "a at 1" 16) 160.0)
-      (num-test (string->number "#xa at 1") 160.0)
-      (num-test (string->number ".a at 0" 12) 0.83333333333333)
-      (num-test (string->number "a. at 0" 16) 10.0)
-      (num-test (string->number "0a" 16) 10)
-      (when (not pure-s7) (num-test (string->number "#e0a" 16) 10))
-      (num-test (string->number "a at -1" 16) 0.625)
-
-      (num-test 1 at 0+1@0i 1+1i)
-      (num-test (string->number "1 at 1" 12) 12.0)
-      (num-test (string->number "1 at -1" 16) 0.0625)
-      (num-test (string->number "1.0 at 1+0.1@2i" 16) 16+16i)
-      (num-test (string->number "#b.0 at 2") 0.0)
-      (num-test (string->number ".2 at -22") 2e-23)
-      (num-test (string->number "+02 at 02") 200.0)
-      (num-test (string->number "2fe2 at 2" 16) 3138048.0)
-      (when (not pure-s7) (num-test (string->number "#i1 at 01" 16) 16.0))
-      (num-test (string->number "1 at -0-bc/di" 16) 1-14.461538461538i)
-      (num-test (string->number ".f-a.c1 at 0i" 16) 0.9375-10.75390625i)
-      (num-test (string->number "df2 at 2-ccfi" 16) 913920-3279i)
-      (num-test (string->number "0/0de-0 at 2i" 16) 0.0)
-      (num-test (string->number "-1a12cd. at 1" 16) -27339984.0)
-      (num-test (string->number "fb/2ea+2 at +1i" 16) 0.33646112600536+32i)
-      (num-test (string->number "af.e0 at -0+0b/efefd11i" 16) 175.875+4.3721589140015e-08i)
-      (num-test (string->number "bb10 at 1-i" 12) 247248-1i)
-      (num-test (string->number "b.+0 at 01i" 12) 11.0)
-      (num-test (string->number "-0 at -0221" 12) 0.0)
-      (num-test (string->number "-a-01 at 2i" 12) -10-144i)
-      (num-test (string->number "#d.0 at -11" 10) 0.0)
-      (num-test (string->number "#i+1 at 002" 10) 100.0)
-      (num-test (string->number "-111 at -1-1i" 10) -11.1-1i)
-      (num-test (string->number "122 at 9-2@0i" 10) 122000000000-2i)
-      (num-test (string->number "-0 at +10-20i" 10) 0-20i)
-      (num-test (string->number "+2 at -909221" 10) 0.0)
-      ))
+(when (provided? '@-exponent)
+  (num-test 0.0 0 at 0)
+  (num-test 0.0 0 at -0)
+  (num-test 0.0 0 at +0)
+  (num-test 1.0 1 at 0)
+  (num-test 10.0 1 at 1)
+  (num-test 10.0 1 at +1)
+  (num-test 0.1 1 at -1)
+  
+  (num-test (string->number "1 at 0" 16) 1.0)
+  (num-test (string->number "e at 0" 16) 14.0)
+  (num-test (string->number "a at 1" 16) 160.0)
+  (num-test (string->number "#xa at 1") 160.0)
+  (num-test (string->number ".a at 0" 12) 0.83333333333333)
+  (num-test (string->number "a. at 0" 16) 10.0)
+  (num-test (string->number "0a" 16) 10)
+  (when (not pure-s7) (num-test (string->number "#e0a" 16) 10))
+  (num-test (string->number "a at -1" 16) 0.625)
+  
+  (num-test 1 at 0+1@0i 1+1i)
+  (num-test (string->number "1 at 1" 12) 12.0)
+  (num-test (string->number "1 at -1" 16) 0.0625)
+  (num-test (string->number "1.0 at 1+0.1@2i" 16) 16+16i)
+  (num-test (string->number "#b.0 at 2") 0.0)
+  (num-test (string->number ".2 at -22") 2e-23)
+  (num-test (string->number "+02 at 02") 200.0)
+  (num-test (string->number "2fe2 at 2" 16) 3138048.0)
+  (when (not pure-s7) (num-test (string->number "#i1 at 01" 16) 16.0))
+  (num-test (string->number "1 at -0-bc/di" 16) 1-14.461538461538i)
+  (num-test (string->number ".f-a.c1 at 0i" 16) 0.9375-10.75390625i)
+  (num-test (string->number "df2 at 2-ccfi" 16) 913920-3279i)
+  (num-test (string->number "0/0de-0 at 2i" 16) 0.0)
+  (num-test (string->number "-1a12cd. at 1" 16) -27339984.0)
+  (num-test (string->number "fb/2ea+2 at +1i" 16) 0.33646112600536+32i)
+  (num-test (string->number "af.e0 at -0+0b/efefd11i" 16) 175.875+4.3721589140015e-08i)
+  (num-test (string->number "bb10 at 1-i" 12) 247248-1i)
+  (num-test (string->number "b.+0 at 01i" 12) 11.0)
+  (num-test (string->number "-0 at -0221" 12) 0.0)
+  (num-test (string->number "-a-01 at 2i" 12) -10-144i)
+  (num-test (string->number "#d.0 at -11" 10) 0.0)
+  (num-test (string->number "#i+1 at 002" 10) 100.0)
+  (num-test (string->number "-111 at -1-1i" 10) -11.1-1i)
+  (num-test (string->number "122 at 9-2@0i" 10) 122000000000-2i)
+  (num-test (string->number "-0 at +10-20i" 10) 0-20i)
+  (num-test (string->number "+2 at -909221" 10) 0.0))
 
 ;; s7.html claims this '=' is guaranteed...
 (test (= .6 (string->number ".6")) #t)
@@ -77344,144 +77119,137 @@ etc....
 (num-test 2e-9223372036854775807 0.0)
 (num-test 2000.000e-9223372036854775807 0.0)
 
-(if (not with-bignums)
-    (begin
-      (test (infinite? 2e123412341231231231231) #t)
-      (test (infinite? 2e12341234123123123123123123) #t)
-      (test (infinite? 2e12341234123123123123213123123123) #t)
-      (test (infinite? 2e9223372036854775807) #t)
-      ))
-      
-(if (provided? 'dfls-exponents)
-    (begin
-      (test (> 1.0L10 1.0e9) #t)
-      (test (> 1.0l10 1.0e9) #t)
-      (test (> 1.0s10 1.0e9) #t)
-      (test (> 1.0S10 1.0e9) #t)
-      (test (> 1.0d10 1.0e9) #t)
-      (test (> 1.0D10 1.0e9) #t)
-      (test (> 1.0f10 1.0e9) #t)
-      (test (> 1.0F10 1.0e9) #t)
-      
-      (test (> (real-part 1.0L10+i) 1.0e9) #t)
-      (test (> (real-part 1.0l10+i) 1.0e9) #t)
-      (test (> (real-part 1.0s10+i) 1.0e9) #t)
-      (test (> (real-part 1.0S10+i) 1.0e9) #t)
-      (test (> (real-part 1.0d10+i) 1.0e9) #t)
-      (test (> (real-part 1.0D10+i) 1.0e9) #t)
-      (test (> (real-part 1.0f10+i) 1.0e9) #t)
-      (test (> (real-part 1.0F10+i) 1.0e9) #t)
-      
-      (test (> (imag-part 1.0+1.0L10i) 1.0e9) #t)
-      (test (> (imag-part 1.0+1.0l10i) 1.0e9) #t)
-      (test (> (imag-part 1.0+1.0s10i) 1.0e9) #t)
-      (test (> (imag-part 1.0+1.0S10i) 1.0e9) #t)
-      (test (> (imag-part 1.0+1.0d10i) 1.0e9) #t)
-      (test (> (imag-part 1.0+1.0D10i) 1.0e9) #t)
-      (test (> (imag-part 1.0+1.0f10i) 1.0e9) #t)
-      (test (> (imag-part 1.0+1.0F10i) 1.0e9) #t)
-      
-      (test (> (string->number "1.0L10") 1.0e9) #t)
-      (test (> (string->number "1.0l10") 1.0e9) #t)
-      (test (> (string->number "1.0s10") 1.0e9) #t)
-      (test (> (string->number "1.0S10") 1.0e9) #t)
-      (test (> (string->number "1.0d10") 1.0e9) #t)
-      (test (> (string->number "1.0D10") 1.0e9) #t)
-      (test (> (string->number "1.0f10") 1.0e9) #t)
-      (test (> (string->number "1.0F10") 1.0e9) #t)
-      
-      (test (> (real-part (string->number "1.0L10+i")) 1.0e9) #t)
-      (test (> (real-part (string->number "1.0l10+i")) 1.0e9) #t)
-      (test (> (real-part (string->number "1.0s10+i")) 1.0e9) #t)
-      (test (> (real-part (string->number "1.0S10+i")) 1.0e9) #t)
-      (test (> (real-part (string->number "1.0d10+i")) 1.0e9) #t)
-      (test (> (real-part (string->number "1.0D10+i")) 1.0e9) #t)
-      (test (> (real-part (string->number "1.0f10+i")) 1.0e9) #t)
-      (test (> (real-part (string->number "1.0F10+i")) 1.0e9) #t)
+(unless with-bignums
+  (test (infinite? 2e123412341231231231231) #t)
+  (test (infinite? 2e12341234123123123123123123) #t)
+  (test (infinite? 2e12341234123123123123213123123123) #t)
+  (test (infinite? 2e9223372036854775807) #t))
       
-      (test (> (imag-part (string->number "1.0+1.0L10i")) 1.0e9) #t)
-      (test (> (imag-part (string->number "1.0+1.0l10i")) 1.0e9) #t)
-      (test (> (imag-part (string->number "1.0+1.0s10i")) 1.0e9) #t)
-      (test (> (imag-part (string->number "1.0+1.0S10i")) 1.0e9) #t)
-      (test (> (imag-part (string->number "1.0+1.0d10i")) 1.0e9) #t)
-      (test (> (imag-part (string->number "1.0+1.0D10i")) 1.0e9) #t)
-      (test (> (imag-part (string->number "1.0+1.0f10i")) 1.0e9) #t)
-      (test (> (imag-part (string->number "1.0+1.0F10i")) 1.0e9) #t)
-
-      (if with-bignums
-	  (begin
-	    (test (> (string->number "1.0L100") 1.0e98) #t)
-	    (test (> (string->number "1.0l100") 1.0e98) #t)
-	    (test (> (string->number "1.0s100") 1.0e98) #t)
-	    (test (> (string->number "1.0S100") 1.0e98) #t)
-	    (test (> (string->number "1.0d100") 1.0e98) #t)
-	    (test (> (string->number "1.0D100") 1.0e98) #t)
-	    (test (> (string->number "1.0f100") 1.0e98) #t)
-	    (test (> (string->number "1.0F100") 1.0e98) #t)
-	    (test (> (string->number "1.0E100") 1.0e98) #t)
-	    
-	    (test (> 1.0L100 1.0e98) #t)
-	    (test (> 1.0l100 1.0e98) #t)
-	    (test (> 1.0s100 1.0e98) #t)
-	    (test (> 1.0S100 1.0e98) #t)
-	    (test (> 1.0d100 1.0e98) #t)
-	    (test (> 1.0D100 1.0e98) #t)
-	    (test (> 1.0f100 1.0e98) #t)
-	    (test (> 1.0F100 1.0e98) #t)
-	    
-	    (test (> (real-part (string->number "1.0L100+i")) 1.0e98) #t)
-	    (test (> (real-part (string->number "1.0l100+i")) 1.0e98) #t)
-	    (test (> (real-part (string->number "1.0s100+i")) 1.0e98) #t)
-	    (test (> (real-part (string->number "1.0S100+i")) 1.0e98) #t)
-	    (test (> (real-part (string->number "1.0d100+i")) 1.0e98) #t)
-	    (test (> (real-part (string->number "1.0D100+i")) 1.0e98) #t)
-	    (test (> (real-part (string->number "1.0f100+i")) 1.0e98) #t)
-	    (test (> (real-part (string->number "1.0F100+i")) 1.0e98) #t)
-	    
-	    (test (> (real-part 1.0L100+i) 1.0e98) #t)
-	    (test (> (real-part 1.0l100+i) 1.0e98) #t)
-	    (test (> (real-part 1.0s100+i) 1.0e98) #t)
-	    (test (> (real-part 1.0S100+i) 1.0e98) #t)
-	    (test (> (real-part 1.0d100+i) 1.0e98) #t)
-	    (test (> (real-part 1.0D100+i) 1.0e98) #t)
-	    (test (> (real-part 1.0f100+i) 1.0e98) #t)
-	    (test (> (real-part 1.0F100+i) 1.0e98) #t)
-	    
-	    (test (> (imag-part (string->number "1.0+1.0L100i")) 1.0e98) #t)
-	    (test (> (imag-part (string->number "1.0+1.0l100i")) 1.0e98) #t)
-	    (test (> (imag-part (string->number "1.0+1.0s100i")) 1.0e98) #t)
-	    (test (> (imag-part (string->number "1.0+1.0S100i")) 1.0e98) #t)
-	    (test (> (imag-part (string->number "1.0+1.0d100i")) 1.0e98) #t)
-	    (test (> (imag-part (string->number "1.0+1.0D100i")) 1.0e98) #t)
-	    (test (> (imag-part (string->number "1.0+1.0f100i")) 1.0e98) #t)
-	    (test (> (imag-part (string->number "1.0+1.0F100i")) 1.0e98) #t)
-	    
-	    (test (> (imag-part 1.0+1.0L100i) 1.0e98) #t)
-	    (test (> (imag-part 1.0+1.0l100i) 1.0e98) #t)
-	    (test (> (imag-part 1.0+1.0s100i) 1.0e98) #t)
-	    (test (> (imag-part 1.0+1.0S100i) 1.0e98) #t)
-	    (test (> (imag-part 1.0+1.0d100i) 1.0e98) #t)
-	    (test (> (imag-part 1.0+1.0D100i) 1.0e98) #t)
-	    (test (> (imag-part 1.0+1.0f100i) 1.0e98) #t)
-	    (test (> (imag-part 1.0+1.0F100i) 1.0e98) #t)
-	    ))))
+(when (provided? 'dfls-exponents)
+  (test (> 1.0L10 1.0e9) #t)
+  (test (> 1.0l10 1.0e9) #t)
+  (test (> 1.0s10 1.0e9) #t)
+  (test (> 1.0S10 1.0e9) #t)
+  (test (> 1.0d10 1.0e9) #t)
+  (test (> 1.0D10 1.0e9) #t)
+  (test (> 1.0f10 1.0e9) #t)
+  (test (> 1.0F10 1.0e9) #t)
+  
+  (test (> (real-part 1.0L10+i) 1.0e9) #t)
+  (test (> (real-part 1.0l10+i) 1.0e9) #t)
+  (test (> (real-part 1.0s10+i) 1.0e9) #t)
+  (test (> (real-part 1.0S10+i) 1.0e9) #t)
+  (test (> (real-part 1.0d10+i) 1.0e9) #t)
+  (test (> (real-part 1.0D10+i) 1.0e9) #t)
+  (test (> (real-part 1.0f10+i) 1.0e9) #t)
+  (test (> (real-part 1.0F10+i) 1.0e9) #t)
+  
+  (test (> (imag-part 1.0+1.0L10i) 1.0e9) #t)
+  (test (> (imag-part 1.0+1.0l10i) 1.0e9) #t)
+  (test (> (imag-part 1.0+1.0s10i) 1.0e9) #t)
+  (test (> (imag-part 1.0+1.0S10i) 1.0e9) #t)
+  (test (> (imag-part 1.0+1.0d10i) 1.0e9) #t)
+  (test (> (imag-part 1.0+1.0D10i) 1.0e9) #t)
+  (test (> (imag-part 1.0+1.0f10i) 1.0e9) #t)
+  (test (> (imag-part 1.0+1.0F10i) 1.0e9) #t)
+  
+  (test (> (string->number "1.0L10") 1.0e9) #t)
+  (test (> (string->number "1.0l10") 1.0e9) #t)
+  (test (> (string->number "1.0s10") 1.0e9) #t)
+  (test (> (string->number "1.0S10") 1.0e9) #t)
+  (test (> (string->number "1.0d10") 1.0e9) #t)
+  (test (> (string->number "1.0D10") 1.0e9) #t)
+  (test (> (string->number "1.0f10") 1.0e9) #t)
+  (test (> (string->number "1.0F10") 1.0e9) #t)
+  
+  (test (> (real-part (string->number "1.0L10+i")) 1.0e9) #t)
+  (test (> (real-part (string->number "1.0l10+i")) 1.0e9) #t)
+  (test (> (real-part (string->number "1.0s10+i")) 1.0e9) #t)
+  (test (> (real-part (string->number "1.0S10+i")) 1.0e9) #t)
+  (test (> (real-part (string->number "1.0d10+i")) 1.0e9) #t)
+  (test (> (real-part (string->number "1.0D10+i")) 1.0e9) #t)
+  (test (> (real-part (string->number "1.0f10+i")) 1.0e9) #t)
+  (test (> (real-part (string->number "1.0F10+i")) 1.0e9) #t)
+  
+  (test (> (imag-part (string->number "1.0+1.0L10i")) 1.0e9) #t)
+  (test (> (imag-part (string->number "1.0+1.0l10i")) 1.0e9) #t)
+  (test (> (imag-part (string->number "1.0+1.0s10i")) 1.0e9) #t)
+  (test (> (imag-part (string->number "1.0+1.0S10i")) 1.0e9) #t)
+  (test (> (imag-part (string->number "1.0+1.0d10i")) 1.0e9) #t)
+  (test (> (imag-part (string->number "1.0+1.0D10i")) 1.0e9) #t)
+  (test (> (imag-part (string->number "1.0+1.0f10i")) 1.0e9) #t)
+  (test (> (imag-part (string->number "1.0+1.0F10i")) 1.0e9) #t)
+  
+  (when with-bignums
+    (test (> (string->number "1.0L100") 1.0e98) #t)
+    (test (> (string->number "1.0l100") 1.0e98) #t)
+    (test (> (string->number "1.0s100") 1.0e98) #t)
+    (test (> (string->number "1.0S100") 1.0e98) #t)
+    (test (> (string->number "1.0d100") 1.0e98) #t)
+    (test (> (string->number "1.0D100") 1.0e98) #t)
+    (test (> (string->number "1.0f100") 1.0e98) #t)
+    (test (> (string->number "1.0F100") 1.0e98) #t)
+    (test (> (string->number "1.0E100") 1.0e98) #t)
+    
+    (test (> 1.0L100 1.0e98) #t)
+    (test (> 1.0l100 1.0e98) #t)
+    (test (> 1.0s100 1.0e98) #t)
+    (test (> 1.0S100 1.0e98) #t)
+    (test (> 1.0d100 1.0e98) #t)
+    (test (> 1.0D100 1.0e98) #t)
+    (test (> 1.0f100 1.0e98) #t)
+    (test (> 1.0F100 1.0e98) #t)
+    
+    (test (> (real-part (string->number "1.0L100+i")) 1.0e98) #t)
+    (test (> (real-part (string->number "1.0l100+i")) 1.0e98) #t)
+    (test (> (real-part (string->number "1.0s100+i")) 1.0e98) #t)
+    (test (> (real-part (string->number "1.0S100+i")) 1.0e98) #t)
+    (test (> (real-part (string->number "1.0d100+i")) 1.0e98) #t)
+    (test (> (real-part (string->number "1.0D100+i")) 1.0e98) #t)
+    (test (> (real-part (string->number "1.0f100+i")) 1.0e98) #t)
+    (test (> (real-part (string->number "1.0F100+i")) 1.0e98) #t)
+    
+    (test (> (real-part 1.0L100+i) 1.0e98) #t)
+    (test (> (real-part 1.0l100+i) 1.0e98) #t)
+    (test (> (real-part 1.0s100+i) 1.0e98) #t)
+    (test (> (real-part 1.0S100+i) 1.0e98) #t)
+    (test (> (real-part 1.0d100+i) 1.0e98) #t)
+    (test (> (real-part 1.0D100+i) 1.0e98) #t)
+    (test (> (real-part 1.0f100+i) 1.0e98) #t)
+    (test (> (real-part 1.0F100+i) 1.0e98) #t)
+    
+    (test (> (imag-part (string->number "1.0+1.0L100i")) 1.0e98) #t)
+    (test (> (imag-part (string->number "1.0+1.0l100i")) 1.0e98) #t)
+    (test (> (imag-part (string->number "1.0+1.0s100i")) 1.0e98) #t)
+    (test (> (imag-part (string->number "1.0+1.0S100i")) 1.0e98) #t)
+    (test (> (imag-part (string->number "1.0+1.0d100i")) 1.0e98) #t)
+    (test (> (imag-part (string->number "1.0+1.0D100i")) 1.0e98) #t)
+    (test (> (imag-part (string->number "1.0+1.0f100i")) 1.0e98) #t)
+    (test (> (imag-part (string->number "1.0+1.0F100i")) 1.0e98) #t)
+    
+    (test (> (imag-part 1.0+1.0L100i) 1.0e98) #t)
+    (test (> (imag-part 1.0+1.0l100i) 1.0e98) #t)
+    (test (> (imag-part 1.0+1.0s100i) 1.0e98) #t)
+    (test (> (imag-part 1.0+1.0S100i) 1.0e98) #t)
+    (test (> (imag-part 1.0+1.0d100i) 1.0e98) #t)
+    (test (> (imag-part 1.0+1.0D100i) 1.0e98) #t)
+    (test (> (imag-part 1.0+1.0f100i) 1.0e98) #t)
+    (test (> (imag-part 1.0+1.0F100i) 1.0e98) #t)))
 
-(if (and with-bignums (not pure-s7))
-    (begin
-      (test (number? (string->number "#e1.0e564")) #t)
-      (test (number? (string->number "#e1.0e307")) #t)
-      (test (number? (string->number "#e1.0e310")) #t)
-      (num-test (string->number "#e1624540914719833702142058941") 1624540914719833702142058941)
-      (num-test (string->number "#i1624540914719833702142058941") 1.624540914719833702142058941E27)
-      (num-test (string->number "#e8978167593632120808315265/5504938256213345873657899") 8978167593632120808315265/5504938256213345873657899)
-      (num-test (string->number "#i8978167593632120808315265/5504938256213345873657899") 1.630929753571457437099527114342760854299E0)
-      (num-test (string->number "#i119601499942330812329233874099/12967220607") 9.223372036854775808414213562473095048798E18)
-      ;; this next test needs more bits to compare with other schemes -- this is the result if 128 bits
-      (num-test (string->number "#e005925563891587147521650777143.74135805596e05") 826023606487248364518118333837545313/1394)
-      (num-test (string->number "#e-1559696614.857e28") -15596966148570000000000000000000000000)
-      (test (integer? (string->number "#e1e310")) #t)
-      (test (number? (string->number "#e1.0e310")) #t)
-      ))
+(when (and with-bignums (not pure-s7))
+  (test (number? (string->number "#e1.0e564")) #t)
+  (test (number? (string->number "#e1.0e307")) #t)
+  (test (number? (string->number "#e1.0e310")) #t)
+  (num-test (string->number "#e1624540914719833702142058941") 1624540914719833702142058941)
+  (num-test (string->number "#i1624540914719833702142058941") 1.624540914719833702142058941E27)
+  (num-test (string->number "#e8978167593632120808315265/5504938256213345873657899") 8978167593632120808315265/5504938256213345873657899)
+  (num-test (string->number "#i8978167593632120808315265/5504938256213345873657899") 1.630929753571457437099527114342760854299E0)
+  (num-test (string->number "#i119601499942330812329233874099/12967220607") 9.223372036854775808414213562473095048798E18)
+  ;; this next test needs more bits to compare with other schemes -- this is the result if 128 bits
+  (num-test (string->number "#e005925563891587147521650777143.74135805596e05") 826023606487248364518118333837545313/1394)
+  (num-test (string->number "#e-1559696614.857e28") -15596966148570000000000000000000000000)
+  (test (integer? (string->number "#e1e310")) #t)
+  (test (number? (string->number "#e1.0e310")) #t))
 ;; in the non-gmp case #e1e321 is a read error -- should s7 return NaN silently?
 
 (when (and (not with-bignums)
@@ -77945,11 +77713,10 @@ etc....
   (num-test (string->number "#e1e-11") 1/90909090910)
   (test (string->number "#e#f1") #f)
 
-  (if with-bignums
-      (begin
-	(test (= (string->number "#e1e19") (string->number "#e.1e20")) #t)
-	(test (= (string->number "#e1e19") (* 10 (string->number "#e1e18"))) #t)
-	(test (= (string->number "#e1e20") (* 100 (string->number "#e1e18"))) #t)))
+  (when with-bignums
+    (test (= (string->number "#e1e19") (string->number "#e.1e20")) #t)
+    (test (= (string->number "#e1e19") (* 10 (string->number "#e1e18"))) #t)
+    (test (= (string->number "#e1e20") (* 100 (string->number "#e1e18"))) #t))
 
   (test (= #i1e19 #i.1e20) #t))
 (test (= 1e19 .1e20) #t)
@@ -79559,21 +79326,20 @@ etc....
 (test (string->number (string (integer->char 30))) #f)
 (test (string->number "123" 10+0i) 'error) ; a real in s7
 
-(if with-bignums
-    (begin
-      (test (number->string -46116860184273879035/27670116110564327424) "-46116860184273879035/27670116110564327424")
-      (test (number->string 123 (bignum "10")) "123")
-      (test (number->string 123 (bignum "2")) "1111011")
-      (test (string->number "123" (bignum "10")) 123)
-      (test (string->number "1111011" (bignum "2")) 123)
-      (test (number->string 123 (bignum "17")) 'error)
-      (test (number->string 123 (bignum "-1")) 'error)
-      (test (number->string 123 (bignum "1")) 'error)
-      (test (number->string 123 (bignum "1/2")) 'error)
-      (test (string->number "101" (bignum "17")) 'error)
-      (test (string->number "101" (bignum "1")) 'error)
-      (test (string->number "101" (bignum "-1")) 'error)
-      (test (string->number "101" (bignum "1/2")) 'error)))
+(when with-bignums
+  (test (number->string -46116860184273879035/27670116110564327424) "-46116860184273879035/27670116110564327424")
+  (test (number->string 123 (bignum "10")) "123")
+  (test (number->string 123 (bignum "2")) "1111011")
+  (test (string->number "123" (bignum "10")) 123)
+  (test (string->number "1111011" (bignum "2")) 123)
+  (test (number->string 123 (bignum "17")) 'error)
+  (test (number->string 123 (bignum "-1")) 'error)
+  (test (number->string 123 (bignum "1")) 'error)
+  (test (number->string 123 (bignum "1/2")) 'error)
+  (test (string->number "101" (bignum "17")) 'error)
+  (test (string->number "101" (bignum "1")) 'error)
+  (test (string->number "101" (bignum "-1")) 'error)
+  (test (string->number "101" (bignum "1/2")) 'error))
 
 (num-test (- (string->number "11880772664.84631001" 10) (string->number "1.188077266484631001E10" 10)) 0.0)
 (num-test (- (string->number "11880772.66484631001" 10) (string->number "1.188077266484631001E7" 10)) 0.0)
@@ -79730,58 +79496,55 @@ more non-gmp:
 etc
 |#
 
-(if with-bignums
-    (begin
-      (test (char=? ((number->string 9.999999999999999) 0) #\9) #t)
-      (test (char=? ((number->string 0.999999999999999999) 3) #\9) #t)
-      (num-test -0.1e309 -1e308)
-      (num-test .01e310 1e308)
-      (num-test .1e310 1e309)
-      (num-test 0.0e310 0.0)
-      ))
+(when with-bignums
+  (test (char=? ((number->string 9.999999999999999) 0) #\9) #t)
+  (test (char=? ((number->string 0.999999999999999999) 3) #\9) #t)
+  (num-test -0.1e309 -1e308)
+  (num-test .01e310 1e308)
+  (num-test .1e310 1e309)
+  (num-test 0.0e310 0.0))
+  
 
 
 ;;; --------------------------------------------------------------------------------
 ;;; bignum
 ;;; --------------------------------------------------------------------------------
 
-(if with-bignums
-    (begin
-      (test (bignum? (bignum "2")) #t)
-      (test (bignum? (bignum "#e1.5")) #t)
-
-      (num-test (bignum "6/3") 2)
-      (num-test (bignum "+3/6") 1/2)
-      (num-test (bignum "7447415382/3") 2482471794)
-
-      (for-each
-       (lambda (n)
-	 (test (bignum? n) #f))
-       (list 0 1 -1 1/3 1.0 1+i 1073741824 1.0e8 1+1.0e8i "hi" () (integer->char 65) #f #t '(1 2) 'a-symbol _ht_ _null_ _c_obj_ (cons 1 2) (make-vector 3) abs))
-
-      (for-each 
-       (lambda (n)
-	 (test (bignum? n) #t))
-       (list 1.0e30 -1.0e20+i 1.0+1.0e80i 1e100 1267650600228229401496703205376 -1267650600228229401496703205376
-	     1180591620717411303424/3 3/1180591620717411303424 1180591620717411303424/1180591620717411303423
-	     1267650600228229401496703205376.99 -1267650600228229401496703205376.88 0.1231231231231231231231231231))
-      (for-each
-       (lambda (n)
-	 (test (bignum n) 'error)
-	 (test (bignum "1.0" n) 'error))
-       (list "hi" (integer->char 65) #f #t '(1 2) 'a-symbol (cons 1 2) () _ht_ _null_ _c_obj_ (make-vector 3) 1 3/4 1.5 1+i abs))
-
-      (test (bignum?) 'error)
-      (test (bignum? 1 2) 'error)
-
-      (test (bignum) 'error)
-      (test (bignum "hi" "ho") 'error)
-      (test (bignum "") 'error)
-      (test (bignum " ") 'error)
-      (test (bignum " 1 ") 'error)
-      (test (bignum "abc") 'error)
-      (test (bignum "1/2/3") 'error)
-      ))
+(when with-bignums
+  (test (bignum? (bignum "2")) #t)
+  (test (bignum? (bignum "#e1.5")) #t)
+  
+  (num-test (bignum "6/3") 2)
+  (num-test (bignum "+3/6") 1/2)
+  (num-test (bignum "7447415382/3") 2482471794)
+  
+  (for-each
+   (lambda (n)
+     (test (bignum? n) #f))
+   (list 0 1 -1 1/3 1.0 1+i 1073741824 1.0e8 1+1.0e8i "hi" () (integer->char 65) #f #t '(1 2) 'a-symbol _ht_ _null_ _c_obj_ (cons 1 2) (make-vector 3) abs))
+  
+  (for-each 
+   (lambda (n)
+     (test (bignum? n) #t))
+   (list 1.0e30 -1.0e20+i 1.0+1.0e80i 1e100 1267650600228229401496703205376 -1267650600228229401496703205376
+	 1180591620717411303424/3 3/1180591620717411303424 1180591620717411303424/1180591620717411303423
+	 1267650600228229401496703205376.99 -1267650600228229401496703205376.88 0.1231231231231231231231231231))
+  (for-each
+   (lambda (n)
+     (test (bignum n) 'error)
+     (test (bignum "1.0" n) 'error))
+   (list "hi" (integer->char 65) #f #t '(1 2) 'a-symbol (cons 1 2) () _ht_ _null_ _c_obj_ (make-vector 3) 1 3/4 1.5 1+i abs))
+  
+  (test (bignum?) 'error)
+  (test (bignum? 1 2) 'error)
+  
+  (test (bignum) 'error)
+  (test (bignum "hi" "ho") 'error)
+  (test (bignum "") 'error)
+  (test (bignum " ") 'error)
+  (test (bignum " 1 ") 'error)
+  (test (bignum "abc") 'error)
+  (test (bignum "1/2/3") 'error))
 
 
 
@@ -79865,62 +79628,60 @@ etc
       expt = max min modulo < > <= >= lcm gcd 
       ))))
 
-(if with-bignums
-    (begin
-      
-      (test (bignum "1/3.0") 'error)
-
-      (let ((d (bignum "3.14"))
-	    (i (bignum "32"))
-	    (r (bignum "2/3"))
-	    (c (bignum "1.5+0.3i")))
-	(let ((check-vals (lambda (name)
-			    (if (or (not (= d (bignum "3.14"))) ; see above
-				    (not (= i 32))
-				    (not (= r 2/3))
-				    (not (= c (bignum "1.5+0.3i"))))
-				(begin 
-				  (display name) (display " changed ")
-				  (if (not (= i 32))
-				      (begin (display "stored integer to: ") (display i))
-				      (if (not (= r 2/3))
-					  (begin (display "stored ratio to: ") (display r))
-					  (if (not (= d 3.14))
-					      (begin (display "stored real to: ") (display d))
-					      (begin (display "stored complex to: ") (display c)))))
-				  (display "?") (newline))))))
-	  (for-each
-	   (lambda (op)
-	     (let ((x (catch #t (lambda () (op i)) (lambda args 'error))))
-	       (check-vals op))
-	     (let ((x (catch #t (lambda () (op r)) (lambda args 'error))))
-	       (check-vals op))
-	     (let ((x (catch #t (lambda () (op d)) (lambda args 'error))))
-	       (check-vals op))
-	     (let ((x (catch #t (lambda () (op c)) (lambda args 'error))))
-	       (check-vals op))
-	     (let ((x (catch #t (lambda () (op i d)) (lambda args 'error))))
-	       (check-vals op))
-	     (let ((x (catch #t (lambda () (op r d)) (lambda args 'error))))
-	       (check-vals op))
-	     (let ((x (catch #t (lambda () (op d d)) (lambda args 'error))))
-	       (check-vals op))
-	     (let ((x (catch #t (lambda () (op c d)) (lambda args 'error))))
-	       (check-vals op)))
-	   (list
-	    number->string string->number complex magnitude abs exp make-polar angle
-	    sin cos tan sinh cosh tanh atan sqrt log asinh acosh atanh acos asin
-	    number? integer? real? complex? rational? even? odd? zero? positive? negative? real-part imag-part
-	    numerator denominator rationalize exact? inexact? exact->inexact inexact->exact floor ceiling truncate round
-	    logior logxor logand lognot logbit? ash integer-length
-	    + - * / quotient remainder
-	    expt = max min modulo < > <= >= lcm gcd 
-	    ))))
-
+(when with-bignums
+  (test (bignum "1/3.0") 'error)
+  
+  (let ((d (bignum "3.14"))
+	(i (bignum "32"))
+	(r (bignum "2/3"))
+	(c (bignum "1.5+0.3i")))
+    (let ((check-vals (lambda (name)
+			(if (or (not (= d (bignum "3.14"))) ; see above
+				(not (= i 32))
+				(not (= r 2/3))
+				(not (= c (bignum "1.5+0.3i"))))
+			    (begin 
+			      (display name) (display " changed ")
+			      (if (not (= i 32))
+				  (begin (display "stored integer to: ") (display i))
+				  (if (not (= r 2/3))
+				      (begin (display "stored ratio to: ") (display r))
+				      (if (not (= d 3.14))
+					  (begin (display "stored real to: ") (display d))
+					  (begin (display "stored complex to: ") (display c)))))
+			      (display "?") (newline))))))
       (for-each
-       (lambda (arg)
-	 (test (bignum "1.0" arg) 'error))
-       (list -1 0 #\a #(1 2 3) 2/3 1.5+0.3i 1+i () 'hi abs "hi" #(()) (list 1 2 3) '(1 . 2) (lambda () 1)))))
+       (lambda (op)
+	 (let ((x (catch #t (lambda () (op i)) (lambda args 'error))))
+	   (check-vals op))
+	 (let ((x (catch #t (lambda () (op r)) (lambda args 'error))))
+	   (check-vals op))
+	 (let ((x (catch #t (lambda () (op d)) (lambda args 'error))))
+	   (check-vals op))
+	 (let ((x (catch #t (lambda () (op c)) (lambda args 'error))))
+	   (check-vals op))
+	 (let ((x (catch #t (lambda () (op i d)) (lambda args 'error))))
+	   (check-vals op))
+	 (let ((x (catch #t (lambda () (op r d)) (lambda args 'error))))
+	   (check-vals op))
+	 (let ((x (catch #t (lambda () (op d d)) (lambda args 'error))))
+	   (check-vals op))
+	 (let ((x (catch #t (lambda () (op c d)) (lambda args 'error))))
+	   (check-vals op)))
+       (list
+	number->string string->number complex magnitude abs exp make-polar angle
+	sin cos tan sinh cosh tanh atan sqrt log asinh acosh atanh acos asin
+	number? integer? real? complex? rational? even? odd? zero? positive? negative? real-part imag-part
+	numerator denominator rationalize exact? inexact? exact->inexact inexact->exact floor ceiling truncate round
+	logior logxor logand lognot logbit? ash integer-length
+	+ - * / quotient remainder
+	expt = max min modulo < > <= >= lcm gcd 
+	))))
+  
+  (for-each
+   (lambda (arg)
+     (test (bignum "1.0" arg) 'error))
+   (list -1 0 #\a #(1 2 3) 2/3 1.5+0.3i 1+i () 'hi abs "hi" #(()) (list 1 2 3) '(1 . 2) (lambda () 1))))
 
 
 
@@ -80064,21 +79825,21 @@ etc
 	(if (> (magnitude (- (v i) (copy-v i))) 1e-12)
 	    (format *stderr* ";cfft! complex: ~D: ~A ~A~%" i (v i) (copy-v i)))))))
 
-(if with-bignums
-    (let ((size 32))
-      (let ((data (make-vector size)))
+(when with-bignums
+  (let ((size 32))
+    (let ((data (make-vector size)))
+      (do ((i 0 (+ i 1)))
+	  ((= i size))
+	(set! (data i) (complex (bignum (number->string (random 1.0))) 
+				(bignum (number->string (random 1.0))))))
+      (let ((old-data (copy data)))
+	(cfft! data size)
+	(cfft! data size -1)
 	(do ((i 0 (+ i 1)))
 	    ((= i size))
-	  (set! (data i) (complex (bignum (number->string (random 1.0))) 
-					   (bignum (number->string (random 1.0))))))
-	(let ((old-data (copy data)))
-	  (cfft! data size)
-	  (cfft! data size -1)
-	  (do ((i 0 (+ i 1)))
-	      ((= i size))
-	    (set! (data i) (/ (data i) size))
-	    (if (> (magnitude (- (data i) (old-data i))) 1e-14)
-		(format *stderr* ";cfft! big: ~D: ~A~%" i (magnitude (- (old-data i) (data i))))))))))
+	  (set! (data i) (/ (data i) size))
+	  (if (> (magnitude (- (data i) (old-data i))) 1e-14)
+	      (format *stderr* ";cfft! big: ~D: ~A~%" i (magnitude (- (old-data i) (data i))))))))))
 #|
 ;;; 1048576 forces us to 4608000, 32568 512000
 (let ((size 65536))
@@ -80746,8 +80507,7 @@ etc
     (test (apply subsequence e ()) #(1 2 3 4))
     (test (subsequence e) #(1 2 3 4)))
 
-  (let ((vpl (*s7* 'print-length)))
-    (set! (*s7* 'print-length) 3)
+  (let-temporarily (((*s7* 'print-length) 3))
     (test (sequence->string '(0 1 2)) "(0 1 2)")
     (test (sequence->string '()) "()")
     (test (sequence->string '(0 1 2 3)) "(0 1 2 ...)")
@@ -80774,8 +80534,7 @@ etc
     (when with-block (test (sequence->string (block 0 1 2 3)) "(0.0 1.0 2.0 ...)") )
     (set! (*s7* 'print-length) 8)
     (test (string? (sequence->string (hash-table '(a . 1) '(b . 2) '(c . 3) '(d . 4)))) #t)
-    (test (sequence->string (inlet 'a 1 'b 2 'c 3 'd 4)) "(inlet '(a . 1) '(b . 2) '(c . 3) '(d . 4))")
-    (set! (*s7* 'print-length) vpl))
+    (test (sequence->string (inlet 'a 1 'b 2 'c 3 'd 4)) "(inlet '(a . 1) '(b . 2) '(c . 3) '(d . 4))"))
 
   (test (pair? (member :heap-size (*s7*->list))) #t)
 
@@ -81240,11 +80999,9 @@ etc
       (format *stderr* "pp8~%"))
   (if (not (string=? (pp 3.1415123123213) "3.1415"))
       (format *stderr* "pp9: ~A~%" (pp 3.1415123123213)))
-  (let ((old-format ((funclet pretty-print) '*pretty-print-float-format*)))
-    (set! ((funclet pretty-print) '*pretty-print-float-format*) "~,12F")
+  (let-temporarily ((((funclet pretty-print) '*pretty-print-float-format*) "~,12F"))
     (if (not (string=? (pp 3.1415123123213) "3.141512312321"))
-	(format *stderr* "pp10: ~A~%" (pp 3.1415123123213)))
-    (set! ((funclet pretty-print) '*pretty-print-float-format*) old-format))
+	(format *stderr* "pp10: ~A~%" (pp 3.1415123123213))))
   (set! ((funclet pretty-print) '*pretty-print-spacing*) 8)
   (if (not (string=? (pp '(let () (+ a b))) "(let ()\n        (+ a b))"))
       (format *stderr* "pp 11~%"))
@@ -81325,7 +81082,7 @@ etc
     (test (head (tail (tail (stream-filter odd? integers)))) 5))
 
   (let ()
-    (define radix (make-parameter 10 (lambda (x) (if (and (integer? x) (<= 2 x 16)) x (error "invalid radix")))))
+    (define radix (make-parameter 10 (lambda (x) (if (and (integer? x) (<= 2 x 16)) x (error 'wrong-type-arg "invalid radix")))))
     (define (f n) (number->string n (radix)))
     (test (f 12) "12")
     (test (parameterize ((radix 2)) (f 12)) "1100")
@@ -81418,44 +81175,43 @@ etc
 ;;; cload c-define tests
 ;;;   (see libc.scm et al below)
 
-(if (provided? 'snd)
-    (begin
-      (load "cload.scm")
-      
-      (c-define '((double j0 (double)) 
-			   (double j1 (double)) 
-			   (double erf (double)) 
-			   (double erfc (double))
-			   (double lgamma (double)))
-	"m" "math.h")
-      (num-test (m:j0 1.0) 0.76519768655797)
-      (num-test (m:j1 1.0) 0.44005058574493)
-      (num-test (m:j0 1/2) 0.93846980724081)
-      (num-test (m:erf 1.0) 0.84270079294971)
-      (num-test (m:erf 2) 0.99532226501895)
-      (num-test (m:erfc 1.0) 0.15729920705029)
-      (num-test (m:lgamma 2/3) 0.30315027514752)
-      
-      (let ()
-	(c-define '(char* getenv (char*)))
-	(c-define '(int setenv (char* char* int)))
-	(test (string? (getenv "HOST")) #t))
-      
-      (test (defined? 'setenv) #f)
-      
-      (let ()
-	(define local-file-exists? (let () ; define F_OK and access only within this let
-				     (c-define '((int F_OK) (int access (char* int))) "" "unistd.h") 
-				     (lambda (arg) (= (access arg F_OK) 0))))
-	
-	(define delete-file (let () 
-			      (c-define '(int unlink (char*)) "" "unistd.h") 
-			      (lambda (file) (= (unlink file) 0)))) ; 0=success
-	
-	(test (local-file-exists? "s7test.scm") #t))
-
-      (c-define 
-	'((in-C "static struct timeval overall_start_time;  \n\
+(when (provided? 'snd)
+  (load "cload.scm")
+  
+  (c-define '((double j0 (double)) 
+	      (double j1 (double)) 
+	      (double erf (double)) 
+	      (double erfc (double))
+	      (double lgamma (double)))
+	    "m" "math.h")
+  (num-test (m:j0 1.0) 0.76519768655797)
+  (num-test (m:j1 1.0) 0.44005058574493)
+  (num-test (m:j0 1/2) 0.93846980724081)
+  (num-test (m:erf 1.0) 0.84270079294971)
+  (num-test (m:erf 2) 0.99532226501895)
+  (num-test (m:erfc 1.0) 0.15729920705029)
+  (num-test (m:lgamma 2/3) 0.30315027514752)
+  
+  (let ()
+    (c-define '(char* getenv (char*)))
+    (c-define '(int setenv (char* char* int)))
+    (test (string? (getenv "HOST")) #t))
+  
+  (test (defined? 'setenv) #f)
+  
+  (let ()
+    (define local-file-exists? (let () ; define F_OK and access only within this let
+				 (c-define '((int F_OK) (int access (char* int))) "" "unistd.h") 
+				 (lambda (arg) (= (access arg F_OK) 0))))
+    
+    (define delete-file (let () 
+			  (c-define '(int unlink (char*)) "" "unistd.h") 
+			  (lambda (file) (= (unlink file) 0)))) ; 0=success
+    
+    (test (local-file-exists? "s7test.scm") #t))
+  
+  (c-define 
+   '((in-C "static struct timeval overall_start_time;  \n\
            static bool time_set_up = false;           \n\
            static double get_internal_real_time(void) \n\
            {                                          \n\
@@ -81467,27 +81223,26 @@ etc
             secs = difftime(t0.tv_sec, overall_start_time.tv_sec);\n\
             return(secs + 0.000001 * (t0.tv_usec - overall_start_time.tv_usec)); \n\
            }")
-	  (double get_internal_real_time (void)))
-	"" '("time.h" "sys/time.h"))
-
-      (define-macro (new-time func) 
-	`(let ((start (get_internal_real_time)))
-	   ,func
-	   (- (get_internal_real_time) start)))
-
-      (test (real? (new-time (do ((i 0 (+ i 1))) ((= i 30) i)))) #t)
-
-      (when (provided? 'linux)
-        (c-define '(int getpid (void)) "" "unistd.h")
-	(call-with-input-file (format #f "/proc/~D/status" (getpid))
-	  (lambda (p)
-	    (let ((name (substring (read-line p) 6)))
-	      (do ((str (read-line p) (read-line p)))
-		  ((eof-object? str))
-		(if (string=? (substring str 0 6) "VmRSS:")
-		    (let ((size (with-input-from-string (substring str 7) read)))
-		      (format #t "~%~A size: ~A kB, time: ~A~%" name size (*s7* 'cpu-time)))))))))
-      ))
+     (double get_internal_real_time (void)))
+   "" '("time.h" "sys/time.h"))
+  
+  (define-macro (new-time func) 
+    `(let ((start (get_internal_real_time)))
+       ,func
+       (- (get_internal_real_time) start)))
+  
+  (test (real? (new-time (do ((i 0 (+ i 1))) ((= i 30) i)))) #t)
+  
+  (when (provided? 'linux)
+    (c-define '(int getpid (void)) "" "unistd.h")
+    (call-with-input-file (format #f "/proc/~D/status" (getpid))
+      (lambda (p)
+	(let ((name (substring (read-line p) 6)))
+	  (do ((str (read-line p) (read-line p)))
+	      ((eof-object? str))
+	    (if (string=? (substring str 0 6) "VmRSS:")
+		(let ((size (with-input-from-string (substring str 7) read)))
+		  (format #t "~%~A size: ~A kB, time: ~A~%" name size (*s7* 'cpu-time))))))))))
 
 
 ;;; --------------------------------------------------------------------------------
@@ -82432,24 +82187,23 @@ etc
     (let () (define (a1 q) (- q 1)) (test (a1 q1) (make-quaternion 0.0 1.0 0.0 0.0)))
     ))
 
-(if (not with-bignums)
-(let ((e1 (openlet 
-	   (inlet 
-	    'x 3
-	    '* (lambda args
-		 (if (number? (car args))    ; are we the first?
-		     (apply * (car args) ((cadr args) 'x) (cddr args))
-		     (apply * ((car args) 'x) (cdr args))))))))
-  (let ((e2 (copy e1)))
-    (set! (e2 'x) 4)
-    (test (* 2 e1 e2 5) 120)
-    (test (* e1 e2 5) 60)
-    (test (* e1 e2) 12)
-    (test (* e1) 3)
-    (test (* 2 e1 e2) 24)
-    (test (* 2 e1 4) 24)
-    (test (* e1 2 e2 e1) 72))))
-
+(unless with-bignums
+  (let ((e1 (openlet 
+	     (inlet 
+	      'x 3
+	      '* (lambda args
+		   (if (number? (car args))    ; are we the first?
+		       (apply * (car args) ((cadr args) 'x) (cddr args))
+		       (apply * ((car args) 'x) (cdr args))))))))
+    (let ((e2 (copy e1)))
+      (set! (e2 'x) 4)
+      (test (* 2 e1 e2 5) 120)
+      (test (* e1 e2 5) 60)
+      (test (* e1 e2) 12)
+      (test (* e1) 3)
+      (test (* 2 e1 e2) 24)
+      (test (* 2 e1 4) 24)
+      (test (* e1 2 e2 e1) 72))))
 
 (let ()
   (begin
@@ -82581,10 +82335,8 @@ etc
   (require mockery.scm)
   (let ((v ((*mock-vector* 'make-mock-vector) 10 0)))
     (test (vector? v) #t)
-    (let ((old-vpl (*s7* 'print-length)))
-      (set! (*s7* 'print-length) 32)
-      (test (object->string v) "#(0 0 0 0 0 0 0 0 0 0)")
-      (set! (*s7* 'print-length) old-vpl))
+    (let-temporarily (((*s7* 'print-length) 32))
+      (test (object->string v) "#(0 0 0 0 0 0 0 0 0 0)"))
     (test (length v) 10)
     (test (vector-length v) 10)
     (test (vector-dimensions v) '(10))
@@ -83831,69 +83583,40 @@ etc
 (test (boolean? (*s7* 'gc-stats)) #f)
 (test (real? (*s7* 'default-rationalize-error)) #t)
 
-(let ((old-default-hash-table-length (*s7* 'default-hash-table-length))
-      (old-initial-string-port-length (*s7* 'initial-string-port-length))
-      (old-hash-table-float-epsilon (*s7* 'hash-table-float-epsilon))
-      (old-morally-equal-float-epsilon (*s7* 'morally-equal-float-epsilon))
-      (old-gc-stats-symbol (*s7* 'gc-stats-symbol))
-      (old-symbol-table-locked? (*s7* 'symbol-table-locked?))
-      (old-max-stack-size (*s7* 'max-stack-size))
-      (old-safety (*s7* 'safety))
-      (old-default-rationalize-error (*s7* 'default-rationalize-error))
-      (old-default-random-state (*s7* 'default-random-state)))
-
-  (set! (*s7* 'default-hash-table-length) 31)
+(let-temporarily (((*s7* 'default-hash-table-length) 31)
+		  ((*s7* 'hash-table-float-epsilon) 1e-4)
+		  ((*s7* 'morally-equal-float-epsilon) .1)
+		  ((*s7* 'gc-stats) #f)
+		  ((*s7* 'max-stack-size) 1234)
+		  ((*s7* 'safety) 1)
+		  ((*s7* 'default-rationalize-error) .1))
   (let ((ht (make-hash-table))) (test (length ht) 32))
   (let ((ht (hash-table '(a . 1)))) (test (length ht) 32))
   (let ((ht (hash-table* :a 1))) (test (length ht) 32))
-  (set! (*s7* 'hash-table-float-epsilon) 1e-4)
   (let ((ht (make-hash-table))) (set! (ht 3.0) 'x) (set! (ht 3.00005) 'y) (test (ht 3.00001) 'y))
-  (set! (*s7* 'morally-equal-float-epsilon) .1)
   (test (morally-equal? 1.0 1.01) #t)
-  (set! (*s7* 'default-rationalize-error) .1)
-  (test (rationalize 3.14159) 16/5)
-
-  (set! (*s7* 'default-hash-table-length) old-default-hash-table-length)
-  (set! (*s7* 'initial-string-port-length) old-initial-string-port-length)
-  (set! (*s7* 'hash-table-float-epsilon) old-hash-table-float-epsilon)
-  (set! (*s7* 'morally-equal-float-epsilon) old-morally-equal-float-epsilon)
-  (set! (*s7* 'gc-stats-symbol) old-gc-stats-symbol)
-  (set! (*s7* 'symbol-table-locked?) old-symbol-table-locked?)
-  (set! (*s7* 'max-stack-size) old-max-stack-size)
-  (set! (*s7* 'safety) old-safety)
-  (set! (*s7* 'default-rationalize-error) old-default-rationalize-error)
-  (set! (*s7* 'default-random-state) old-default-random-state)
-  
-  (let ((ht (make-hash-table))) (test (length ht) (*s7* 'default-hash-table-length)))
-  (let ((ht (make-hash-table))) (set! (ht 3.0) 'x) (set! (ht 3.05) 'y) (test (ht 3.01) #f))
-  (test (morally-equal? 1.0 1.01) #f)
-  (test (rationalize 3.14159) 314159/100000)
-  )
+  (test (rationalize 3.14159) 16/5))
+(let ((ht (make-hash-table))) (test (length ht) (*s7* 'default-hash-table-length)))
+(let ((ht (make-hash-table))) (set! (ht 3.0) 'x) (set! (ht 3.05) 'y) (test (ht 3.01) #f))
+(test (morally-equal? 1.0 1.01) #f)
+(test (rationalize 3.14159) 314159/100000)
   
-(let ((old-vlen (*s7* 'max-vector-length)))
-  (set! (*s7* 'max-vector-length) 123)
+(let-temporarily (((*s7* 'max-vector-length) 123))
   (test (catch #t (lambda () (make-vector 256)) (lambda args 'error)) 'error)  
   (test (catch #t (lambda () (make-float-vector 256)) (lambda args 'error)) 'error) 
   (test (catch #t (lambda () (make-int-vector 256)) (lambda args 'error)) 'error)
-  (test (catch #t (lambda () (make-hash-table 256)) (lambda args 'error)) 'error)
-  (set! (*s7* 'max-vector-length) old-vlen))
+  (test (catch #t (lambda () (make-hash-table 256)) (lambda args 'error)) 'error))
 
-(let ((old-vdim (*s7* 'max-vector-dimensions)))
-  (set! (*s7* 'max-vector-dimensions) 1)
+(let-temporarily (((*s7* 'max-vector-dimensions) 1))
   (test (catch #t (lambda () (make-vector '(2 3))) (lambda args 'error)) 'error)  
   (test (catch #t (lambda () (make-float-vector '(2 3))) (lambda args 'error)) 'error) 
-  (test (catch #t (lambda () (make-int-vector '(2 3))) (lambda args 'error)) 'error)
-  (set! (*s7* 'max-vector-dimensions) old-vdim))
+  (test (catch #t (lambda () (make-int-vector '(2 3))) (lambda args 'error)) 'error))
 
-(let ((old-slen (*s7* 'max-string-length)))
-  (set! (*s7* 'max-string-length) 12)
-  (test (catch #t (lambda () (make-string 256)) (lambda args 'error)) 'error)  
-  (set! (*s7* 'max-string-length) old-slen))
+(let-temporarily (((*s7* 'max-string-length) 12))
+  (test (catch #t (lambda () (make-string 256)) (lambda args 'error)) 'error))
 
-(let ((old-llen (*s7* 'max-list-length)))
-  (set! (*s7* 'max-list-length) 1)
-  (test (catch #t (lambda () (make-list 256)) (lambda args 'error)) 'error)  
-  (set! (*s7* 'max-list-length) old-llen))
+(let-temporarily (((*s7* 'max-list-length) 1))
+  (test (catch #t (lambda () (make-list 256)) (lambda args 'error)) 'error))
 
 (test (*s7* 14) 'error)
 (test (*s7* (list 1)) 'error)
@@ -84519,760 +84242,759 @@ etc
 ;;; --------------------------------------------------------------------------------
 ;;; libc
 
-(if (not (provided? 'windows))
-    (let ()
-      (require libc.scm)
-      (when (and (defined? '*libc*)
-		 (procedure? (*libc* 'passwd_pw_name)))
-        (with-let (sublet *libc*)
-
-	  (test (let ((buf (make-string 20 #\null)))
-		  (strcat buf "All ")
-		  (strcat buf "for ")
-		  (strcat buf "one.")
-		  (substring buf 0 12))
-		"All for one.")
-	  (test (strcmp "a" "b") -1)
-	  (test (strcmp "a" "a") 0)
-	  (test (strncmp "1234" "1235" 3) 0)
-	  (test (strcpy (make-string 3) "123") "123")
-	  (test (strlen "123") 3)
-	  (test (strchr "12345" (char->integer #\3)) "345")
-	  (test (strspn "12345" "123") 3)
-	  (test (isalpha (char->integer #\.)) 0)
-	  (test (zero? (isdigit (char->integer #\2))) #f)
-	  (test (integer->char (toupper (char->integer #\a))) #\A)
-	  (test (let ((buf (malloc 3))) 
-		  (memset buf 90 3) 
-		  (let ((result (c-pointer->string buf 3)))
-		    (free buf) 
-		    result)) 
-		"ZZZ")
-	  
-	  (define get-environment-variable getenv)
-	  (define get-environment-variables getenvs)
-	  (define* (set-environment-variable x v (overwrite #t)) (setenv x v (if overwrite 1 0)))
-	  (define delete-environment-variable unsetenv)
-	  
-	  (define (file-exists? file)
-	    (= (access file F_OK) 0))
-	  
-	  (define delete-file unlink)
-	  ;; system can be used as is
-	  
-	  (define* (ls dir-name (port *stderr*))
-	    (let ((dir (opendir dir-name)))
-	      (do ((p (read_dir dir) (read_dir dir)))
-		  ((= (length p) 0))
-		(format port "~A " p))
-	      (closedir dir)))
-	  
-	  (define (directory->list dir-name)
-	    (let ((lst ())
-		  (dir (opendir dir-name)))
-	      (do ((p (read_dir dir) (read_dir dir)))
-		  ((= (length p) 0))
-		(if (not (member p '("." "..")))
-		    (set! lst (cons p lst)))) ; read_dir in libc.scm returns dpos->d_name
-	      (closedir dir)
-	      lst))
-	  
-	  (define (memory-usage)
-	    (let ((v (rusage.make))) 
-	      (getrusage RUSAGE_SELF v)
-	      (let ((mem (rusage.ru_maxrss v))) 
-		(free v) 
-		(* 1024 mem))))
-	  
-	  (define (os-type) (car (uname)))
-	  (define (cpu-architecture) (cadr (uname)))
-	  (define (machine-name) (caddr (uname)))
-	  (define (os-version) (string-append (list-ref (uname) 3) " " (list-ref (uname) 4)))
-	  (define (implementation-name) "s7")
-	  (define (implementation-version) (substring (s7-version) 3 7))
-	  
-	  (reader-cond ((and (not (provided? 'openbsd)) (not (provided? 'solaris)))
-			(define (word-size) __WORDSIZE)))
-	  (reader-cond ((and (not (provided? 'openbsd)) (not (provided? 'solaris)))
-			(define (little-endian?) (= __BYTE_ORDER __LITTLE_ENDIAN))))
-	  
-	  (define (command-line)
-	    (let ((lst ()))
-	      (with-input-from-file "/proc/self/cmdline"
-		(lambda ()
-		  (do ((c (read-char) (read-char))
-		       (s ""))
-		      ((eof-object? c)
-		       (reverse lst))
-		    (if (char=? c #\null)
+(unless (provided? 'windows)
+  (let ()
+    (require libc.scm)
+    (when (and (defined? '*libc*)
+	       (procedure? (*libc* 'passwd_pw_name)))
+      (with-let (sublet *libc*)
+	
+	(test (let ((buf (make-string 20 #\null)))
+		(strcat buf "All ")
+		(strcat buf "for ")
+		(strcat buf "one.")
+		(substring buf 0 12))
+	      "All for one.")
+	(test (strcmp "a" "b") -1)
+	(test (strcmp "a" "a") 0)
+	(test (strncmp "1234" "1235" 3) 0)
+	(test (strcpy (make-string 3) "123") "123")
+	(test (strlen "123") 3)
+	(test (strchr "12345" (char->integer #\3)) "345")
+	(test (strspn "12345" "123") 3)
+	(test (isalpha (char->integer #\.)) 0)
+	(test (zero? (isdigit (char->integer #\2))) #f)
+	(test (integer->char (toupper (char->integer #\a))) #\A)
+	(test (let ((buf (malloc 3))) 
+		(memset buf 90 3) 
+		(let ((result (c-pointer->string buf 3)))
+		  (free buf) 
+		  result)) 
+	      "ZZZ")
+	
+	(define get-environment-variable getenv)
+	(define get-environment-variables getenvs)
+	(define* (set-environment-variable x v (overwrite #t)) (setenv x v (if overwrite 1 0)))
+	(define delete-environment-variable unsetenv)
+	
+	(define (file-exists? file)
+	  (= (access file F_OK) 0))
+	
+	(define delete-file unlink)
+	;; system can be used as is
+	
+	(define* (ls dir-name (port *stderr*))
+	  (let ((dir (opendir dir-name)))
+	    (do ((p (read_dir dir) (read_dir dir)))
+		((= (length p) 0))
+	      (format port "~A " p))
+	    (closedir dir)))
+	
+	(define (directory->list dir-name)
+	  (let ((lst ())
+		(dir (opendir dir-name)))
+	    (do ((p (read_dir dir) (read_dir dir)))
+		((= (length p) 0))
+	      (if (not (member p '("." "..")))
+		  (set! lst (cons p lst)))) ; read_dir in libc.scm returns dpos->d_name
+	    (closedir dir)
+	    lst))
+	
+	(define (memory-usage)
+	  (let ((v (rusage.make))) 
+	    (getrusage RUSAGE_SELF v)
+	    (let ((mem (rusage.ru_maxrss v))) 
+	      (free v) 
+	      (* 1024 mem))))
+	
+	(define (os-type) (car (uname)))
+	(define (cpu-architecture) (cadr (uname)))
+	(define (machine-name) (caddr (uname)))
+	(define (os-version) (string-append (list-ref (uname) 3) " " (list-ref (uname) 4)))
+	(define (implementation-name) "s7")
+	(define (implementation-version) (substring (s7-version) 3 7))
+	
+	(reader-cond ((and (not (provided? 'openbsd)) (not (provided? 'solaris)))
+		      (define (word-size) __WORDSIZE)))
+	(reader-cond ((and (not (provided? 'openbsd)) (not (provided? 'solaris)))
+		      (define (little-endian?) (= __BYTE_ORDER __LITTLE_ENDIAN))))
+	
+	(define (command-line)
+	  (let ((lst ()))
+	    (with-input-from-file "/proc/self/cmdline"
+	      (lambda ()
+		(do ((c (read-char) (read-char))
+		     (s ""))
+		    ((eof-object? c)
+		     (reverse lst))
+		  (if (char=? c #\null)
+		      (begin
+			(set! lst (cons s lst))
+			(set! s ""))
+		      (set! s (string-append s (string c)))))))))
+	
+	(define (daytime)
+	  (let ((timestr (make-string 64))) 
+	    (let ((len (strftime timestr 64 "%a %d-%b-%Y %H:%M %Z"
+				 (localtime 
+				  (time.make (time 
+					      (c-pointer 0)))))))
+	      (substring timestr 0 len))))
+	
+	(define (write-date file)
+	  (let ((buf (stat.make)))
+	    (and (stat file buf)
+		 (stat.st_mtime buf))))
+	
+	(define (file-write-date->string file)
+	  (let ((timestr (make-string 64))) 
+	    (let ((len (strftime timestr 64 "%a %d-%b-%Y %H:%M %Z" (localtime (time.make (write-date file))))))
+	      (substring timestr 0 len))))
+	
+	(define (copy-file in-file out-file)
+	  (with-let (sublet *libc* 
+		      (inlet 'in-file in-file 'out-file out-file))
+	    (let ((infd (open in-file O_RDONLY 0)))
+	      (if (= infd -1)
+		  (error 'io-error "can't find ~S~%" in-file)
+		  (let ((outfd (creat out-file #o666)))
+		    (if (= outfd -1)
 			(begin
-			  (set! lst (cons s lst))
-			  (set! s ""))
-			(set! s (string-append s (string c)))))))))
-	  
-	  (define (daytime)
-	    (let ((timestr (make-string 64))) 
-	      (let ((len (strftime timestr 64 "%a %d-%b-%Y %H:%M %Z"
-				   (localtime 
-				    (time.make (time 
-						(c-pointer 0)))))))
-		(substring timestr 0 len))))
-	  
-	  (define (write-date file)
-	    (let ((buf (stat.make)))
-	      (and (stat file buf)
-		   (stat.st_mtime buf))))
-	  
-	  (define (file-write-date->string file)
-	    (let ((timestr (make-string 64))) 
-	      (let ((len (strftime timestr 64 "%a %d-%b-%Y %H:%M %Z" (localtime (time.make (write-date file))))))
-		(substring timestr 0 len))))
-	  
-	  (define (copy-file in-file out-file)
-	    (with-let (sublet *libc* 
-			      (inlet 'in-file in-file 'out-file out-file))
-	      (let ((infd (open in-file O_RDONLY 0)))
-		(if (= infd -1)
-		    (error 'io-error "can't find ~S~%" in-file)
-		    (let ((outfd (creat out-file #o666)))
-		      (if (= outfd -1)
-			  (begin
-			    (close infd)
-			    (error 'io-error "can't open ~S~%" out-file))
-			  (let* ((BUF_SIZE 1024)
-				 (buf (malloc BUF_SIZE)))
-			    (do ((num (read infd buf BUF_SIZE) (read infd buf BUF_SIZE)))
-				((or (<= num 0)
-				     (not (= (write outfd buf num) num)))))
-			    (close outfd)
-			    (close infd)
-			    (free buf)
-			    out-file)))))))
-	  
-	  (define (tty-direct) ; run in a non-GUI repl
-	    (with-let (sublet *libc*)
-	      (call-with-exit
-	       (lambda (quit)
-		 (let ((saved (termios.make))
-		       (fn (fileno stdin)))
-		   (define (tty_reset fd)
-		     (tcsetattr fd TCSAFLUSH saved))
-		   (define (sigcatch no)
-		     (tty_reset fn)
+			  (close infd)
+			  (error 'io-error "can't open ~S~%" out-file))
+			(let* ((BUF_SIZE 1024)
+			       (buf (malloc BUF_SIZE)))
+			  (do ((num (read infd buf BUF_SIZE) (read infd buf BUF_SIZE)))
+			      ((or (<= num 0)
+				   (not (= (write outfd buf num) num)))))
+			  (close outfd)
+			  (close infd)
+			  (free buf)
+			  out-file)))))))
+	
+	(define (tty-direct) ; run in a non-GUI repl
+	  (with-let (sublet *libc*)
+	    (call-with-exit
+	     (lambda (quit)
+	       (let ((saved (termios.make))
+		     (fn (fileno stdin)))
+		 (define (tty_reset fd)
+		   (tcsetattr fd TCSAFLUSH saved))
+		 (define (sigcatch no)
+		   (tty_reset fn)
+		   (quit))
+		 (if (or (equal? (signal SIGINT sigcatch) SIG_ERR)
+			 (equal? (signal SIGQUIT sigcatch) SIG_ERR)
+			 (equal? (signal SIGTERM sigcatch) SIG_ERR)
+			 (negative? (tcgetattr fn saved)))
 		     (quit))
-		   (if (or (equal? (signal SIGINT sigcatch) SIG_ERR)
-			   (equal? (signal SIGQUIT sigcatch) SIG_ERR)
-			   (equal? (signal SIGTERM sigcatch) SIG_ERR)
-			   (negative? (tcgetattr fn saved)))
-		       (quit))
-		   (let ((buf (termios.make))
-			 (c (string #\null #\null)))
-		     (let ((cc (string->c-pointer c)))
-		       (tcgetattr fn buf)
-		       (termios.set_c_lflag buf (logand (termios.c_lflag buf) (lognot (logior ECHO ICANON))))
-		       (termios.set_c_cc buf VMIN 1)
-		       (termios.set_c_cc buf VTIME 0)
-		       (if (negative? (tcsetattr fn TCSAFLUSH buf))
-			   (quit))
-		       (do ((i (read fn cc 1) (read fn cc 1)))
-			   ((not (= i 1))
-			    (tty_reset fn)
-			    (quit))
-			 (format *stderr* "got ~C~%" (c 0))))))))))
-	  
-	  ;; to write a directory files + file size:
-	  ;; (ftw "/home/bil/sf1" (lambda (a b c) (format *stderr* "~A ~A~%" a (stat.st_size b)) 0) 10)
-	  
-	  (define (directory? file)
-	    (let ((buf (stat.make)))
-	      (let ((result (and (stat file buf)
-				 (S_ISDIR (stat.st_mode buf)))))
-		(free buf)
-		result)))
-	  
-	  (define* (home-directory name)
-	    (if (not name)
-		(getenv "HOME")
-		(passwd.pw_dir (getpwnam name))))
-	  
-	  (define (file-length file)
-	    (let ((buf (stat.make)))
-	      (stat file buf)
-	      (let ((result (stat.st_size buf)))
-		(free buf)
-		result)))
-	  
-	  (define (system-limits)
-	    (list 'arg-max (sysconf _SC_ARG_MAX)
-		  'login-max (sysconf _SC_LOGIN_NAME_MAX)
-		  'open-max (sysconf _SC_OPEN_MAX)
-		  'groups-max (sysconf _SC_NGROUPS_MAX)
-		  'page-size (sysconf _SC_PAGESIZE)))
-	  
-	  (test (string? (get-environment-variable "HOME")) #t)
-	  (test (integer? (random)) #t)
-	  (test (assq 'decimal_point (localeconv)) '(decimal_point . "."))
-	  (test (string? (getlogin)) #t)
-	  (test (integer? (getpid)) #t)
-	  (test (integer? _POSIX_VERSION) #t)
-	  (if (provided? 'linux) (test (>= __GLIBC__ 2) #t))
-	  (test (c-null? (c-pointer 0)) #t)
-	  (test (fnmatch "*.c" "s7.c" FNM_PATHNAME) 0)
-	  (test (string? (realpath "s7.c" ".")) #t)
-	  (test (passwd.pw_name (getpwnam (getlogin))) (getlogin))
-	  (test (string? (passwd.pw_shell (getpwnam (getlogin)))) #t)
-	  (reader-cond ((not (provided? 'openbsd)) 
-			(test (string? (car (let ((w (wordexp.make))) (wordexp "~/cl/snd-gdraw" w 0) (wordexp.we_wordv w)))) #t)))
-	  (test (pair? (system-limits)) #t)
-	  (test (> (file-length "s7test.scm") 4000000) #t)
-	  (test (string? (home-directory)) #t)
-	  (test (directory? (home-directory)) #t)
-	  (test (string? (file-write-date->string "s7test.scm")) #t)
-	  (if (provided? 'linux) (test (string? (car (command-line))) #t))
-	  (test (string? (daytime)) #t)
-	  (reader-cond ((and (not (provided? 'openbsd)) (not (provided? 'solaris)))
-			(test (not (member (word-size) '(32 64))) #f)))
-	  (reader-cond ((provided? 'linux) (test (os-type) "Linux"))
-		       ((provided? 'osx) (test (os-type) "Darwin"))
-		       ((provided? 'freebsd) (test (os-type) "FreeBSD"))
-		       ((provided? 'netbsd) (test (os-type) "NetBSD"))
-		       ((provided? 'openbsd) (test (os-type) "OpenBSD"))
-		       ((provided? 'solaris) (test (os-type) "SunOS"))
-		       (#t (test (os-type) "Unknown")))
-	  (test (integer? (memory-usage)) #t)
-	  (test (file-exists? "s7test.scm") #t)
-	  (test (atoi "123") 123)
-	  (test (llabs -1234) 1234)
-	  (test (strtod "1.5") 1.5)
-	  (test CLOCKS_PER_SEC 1000000)
-	  (test (group.gr_name (getgrnam "wheel")) "wheel")
-	  (test (let ((g (glob.make))) (glob "s7t*.scm" 0 g) (let ((res (glob.gl_pathv g))) (globfree g) res)) '("s7test.scm"))
-	  ))))
+		 (let ((buf (termios.make))
+		       (c (string #\null #\null)))
+		   (let ((cc (string->c-pointer c)))
+		     (tcgetattr fn buf)
+		     (termios.set_c_lflag buf (logand (termios.c_lflag buf) (lognot (logior ECHO ICANON))))
+		     (termios.set_c_cc buf VMIN 1)
+		     (termios.set_c_cc buf VTIME 0)
+		     (if (negative? (tcsetattr fn TCSAFLUSH buf))
+			 (quit))
+		     (do ((i (read fn cc 1) (read fn cc 1)))
+			 ((not (= i 1))
+			  (tty_reset fn)
+			  (quit))
+		       (format *stderr* "got ~C~%" (c 0))))))))))
+	
+	;; to write a directory files + file size:
+	;; (ftw "/home/bil/sf1" (lambda (a b c) (format *stderr* "~A ~A~%" a (stat.st_size b)) 0) 10)
+	
+	(define (directory? file)
+	  (let ((buf (stat.make)))
+	    (let ((result (and (stat file buf)
+			       (S_ISDIR (stat.st_mode buf)))))
+	      (free buf)
+	      result)))
+	
+	(define* (home-directory name)
+	  (if (not name)
+	      (getenv "HOME")
+	      (passwd.pw_dir (getpwnam name))))
+	
+	(define (file-length file)
+	  (let ((buf (stat.make)))
+	    (stat file buf)
+	    (let ((result (stat.st_size buf)))
+	      (free buf)
+	      result)))
+	
+	(define (system-limits)
+	  (list 'arg-max (sysconf _SC_ARG_MAX)
+		'login-max (sysconf _SC_LOGIN_NAME_MAX)
+		'open-max (sysconf _SC_OPEN_MAX)
+		'groups-max (sysconf _SC_NGROUPS_MAX)
+		'page-size (sysconf _SC_PAGESIZE)))
+	
+	(test (string? (get-environment-variable "HOME")) #t)
+	(test (integer? (random)) #t)
+	(test (assq 'decimal_point (localeconv)) '(decimal_point . "."))
+	(test (string? (getlogin)) #t)
+	(test (integer? (getpid)) #t)
+	(test (integer? _POSIX_VERSION) #t)
+	(if (provided? 'linux) (test (>= __GLIBC__ 2) #t))
+	(test (c-null? (c-pointer 0)) #t)
+	(test (fnmatch "*.c" "s7.c" FNM_PATHNAME) 0)
+	(test (string? (realpath "s7.c" ".")) #t)
+	(test (passwd.pw_name (getpwnam (getlogin))) (getlogin))
+	(test (string? (passwd.pw_shell (getpwnam (getlogin)))) #t)
+	(reader-cond ((not (provided? 'openbsd)) 
+		      (test (string? (car (let ((w (wordexp.make))) (wordexp "~/cl/snd-gdraw" w 0) (wordexp.we_wordv w)))) #t)))
+	(test (pair? (system-limits)) #t)
+	(test (> (file-length "s7test.scm") 4000000) #t)
+	(test (string? (home-directory)) #t)
+	(test (directory? (home-directory)) #t)
+	(test (string? (file-write-date->string "s7test.scm")) #t)
+	(if (provided? 'linux) (test (string? (car (command-line))) #t))
+	(test (string? (daytime)) #t)
+	(reader-cond ((and (not (provided? 'openbsd)) (not (provided? 'solaris)))
+		      (test (not (member (word-size) '(32 64))) #f)))
+	(reader-cond ((provided? 'linux) (test (os-type) "Linux"))
+		     ((provided? 'osx) (test (os-type) "Darwin"))
+		     ((provided? 'freebsd) (test (os-type) "FreeBSD"))
+		     ((provided? 'netbsd) (test (os-type) "NetBSD"))
+		     ((provided? 'openbsd) (test (os-type) "OpenBSD"))
+		     ((provided? 'solaris) (test (os-type) "SunOS"))
+		     (#t (test (os-type) "Unknown")))
+	(test (integer? (memory-usage)) #t)
+	(test (file-exists? "s7test.scm") #t)
+	(test (atoi "123") 123)
+	(test (llabs -1234) 1234)
+	(test (strtod "1.5") 1.5)
+	(test CLOCKS_PER_SEC 1000000)
+	(test (group.gr_name (getgrnam "wheel")) "wheel")
+	(test (let ((g (glob.make))) (glob "s7t*.scm" 0 g) (let ((res (glob.gl_pathv g))) (globfree g) res)) '("s7test.scm"))
+	))))
 
 
 ;;; --------------------------------------------------------------------------------
 ;;; libgsl
 
-(if (or (provided? 'linux)
-	(provided? 'osx))
-    (let ()
-      (require libgsl.scm)
-      (when (and (defined? '*libgsl*)
-		 (procedure? (*libgsl* 'gsl_vector_equal)))
-        (with-let (sublet *libgsl*)
-
-	  (define (eigenvalues M)
-	    (with-let (sublet *libgsl* (inlet 'M M))
-	      (let* ((len (sqrt (length M)))
-		     (gm (gsl_matrix_alloc len len))
-		     (m (float-vector->gsl_matrix M gm))
-		     (evl (gsl_vector_complex_alloc len))
-		     (evc (gsl_matrix_complex_alloc len len))
-		     (w (gsl_eigen_nonsymmv_alloc len)))
-		
-		(gsl_eigen_nonsymmv m evl evc w)
-		(gsl_eigen_nonsymmv_free w)
-		(gsl_eigen_nonsymmv_sort evl evc GSL_EIGEN_SORT_ABS_DESC)
-		
-		(let ((vals (make-vector len)))
-		  (do ((i 0 (+ i 1)))
-		      ((= i len))
-		    (set! (vals i) (gsl_vector_complex_get evl i)))
-		  (gsl_matrix_free gm)
-		  (gsl_vector_complex_free evl)
-		  (gsl_matrix_complex_free evc)
-		  vals))))
-	  
-	  (test (eigenvalues (float-vector 3 1 1 3)) #(4.0 2.0))
-	  (test (eigenvalues (float-vector 1 2 4 3)) #(5.0 -1.0))
-	  
-	  (num-test GSL_CONST_CGS_LIGHT_YEAR 9.460536207070001e+17)
-	  (num-test (GSL_SIGN -123) -1)
-	  (test (GSL_IS_ODD 4) #f)
-	  (test (integer? GSL_SF_FACT_NMAX) #t)
-	  
-	  (num-test (gsl_sf_airy_Ai -500.0 GSL_MODE_DEFAULT) 0.07259012010418163)
-	  (num-test (gsl_sf_airy_Bi -500.0 GSL_MODE_DEFAULT) -0.0946885701328829)
-	  (num-test (gsl_sf_airy_Ai_scaled -5.0 GSL_MODE_DEFAULT) 0.3507610090241141)
-	  (num-test (gsl_sf_airy_Bi_scaled -5.0 GSL_MODE_DEFAULT) -0.1383691349016009)
-	  (num-test (gsl_sf_airy_Ai_deriv -5.0 GSL_MODE_DEFAULT) 0.3271928185544435)
-	  (num-test (gsl_sf_airy_Bi_deriv -5.0 GSL_MODE_DEFAULT) 0.778411773001899)
-	  (num-test (gsl_sf_airy_Ai_deriv_scaled -5.0 GSL_MODE_DEFAULT) 0.3271928185544435)
-	  (num-test (gsl_sf_airy_Bi_deriv_scaled -5.0 GSL_MODE_DEFAULT) 0.778411773001899)
-	  (num-test (gsl_sf_airy_zero_Ai_deriv 2) -3.248197582179837)
-	  (num-test (gsl_sf_airy_zero_Bi_deriv 2) -4.073155089071828)
-	  (num-test (gsl_sf_bessel_J0 1.0) 0.7651976865579666)
-	  (num-test (let ((sfr (gsl_sf_result.make))) (gsl_sf_bessel_J0_e 1.0 sfr) (gsl_sf_result.val sfr)) 0.7651976865579666)
-	  (num-test (let ((sfr (gsl_sf_result.make))) (gsl_sf_bessel_J0_e 1.0 sfr) (gsl_sf_result.err sfr)) 6.72613016567227e-16)
-	  (num-test (gsl_sf_bessel_J0 .1) 0.9975015620660401)
-	  (num-test (gsl_sf_bessel_J1 .1) 0.049937526036242)
-	  (num-test (gsl_sf_bessel_Jn 45 900.0) 0.02562434700634277)
-	  (num-test (gsl_sf_bessel_Y0 .1) -1.534238651350367)
-	  (num-test (gsl_sf_bessel_Y1 .1) -6.458951094702027)
-	  (num-test (gsl_sf_bessel_Yn 4 .1) -305832.2979335312)
-	  (num-test (gsl_sf_bessel_I0_scaled .1) 0.9071009257823011)
-	  (num-test (gsl_sf_bessel_I1_scaled .1) 0.04529844680880932)
-	  (num-test (gsl_sf_bessel_In_scaled 4 .1) 2.35752586200546e-07)
-	  (num-test (gsl_sf_bessel_I0 .1) 1.002501562934096)
-	  (num-test (gsl_sf_bessel_I1 .1) 0.05006252604709269)
-	  (num-test (gsl_sf_bessel_In 4 .1) 2.605469021299657e-07)
-	  (num-test (gsl_sf_bessel_K0_scaled .1) 2.682326102262894)
-	  (num-test (gsl_sf_bessel_K1_scaled .1) 10.8901826830497)
-	  (num-test (gsl_sf_bessel_Kn_scaled 4 .1) 530040.2483725621)
-	  (num-test (gsl_sf_bessel_K0 .1) 2.427069024702016)
-	  (num-test (gsl_sf_bessel_K1 .1) 9.853844780870606)
-	  (num-test (gsl_sf_bessel_Kn 4 .1) 479600.2497925678)
-	  (num-test (gsl_sf_bessel_j0 1.0) 0.8414709848078965)
-	  (num-test (gsl_sf_bessel_j1 1.0) 0.3011686789397567)
-	  (num-test (gsl_sf_bessel_j2 1.0) 0.06203505201137386)
-	  (num-test (gsl_sf_bessel_jl 5 1.0) 9.256115861125814e-05)
-	  (num-test (gsl_sf_bessel_zero_J0 1) 2.404825557695771)
-	  (num-test (gsl_sf_bessel_zero_Jnu 5 5) 22.21779994656127)
-	  (num-test (gsl_sf_hydrogenicR_1 3 2) 0.02575994825614847)
-	  (num-test (gsl_sf_dilog -3.0) -1.939375420766708)
-	  (let ((s1 (gsl_sf_result.make)) 
-		(s2 (gsl_sf_result.make))) 
-	    (gsl_sf_complex_dilog_e 0.99999 (/ pi 2) s1 s2) 
-	    (num-test (gsl_sf_result.val s1) -0.2056132926277968)
-	    (num-test (gsl_sf_result.val s2) 0.9159577401813151))
-	  (let ((s1 (gsl_sf_result.make)) 
-		(s2 (gsl_sf_result.make))) 
-	    (gsl_sf_complex_spence_xy_e 0.5 0.0 s1 s2) 
-	    (num-test (gsl_sf_result.val s1) 0.5822405264650126)
-	    (num-test (gsl_sf_result.val s2) 0.0))
-	  (num-test (gsl_sf_lngamma -0.1) 2.368961332728787)
-	  (num-test (gsl_sf_gamma 9.0) 40320.0)
-	  (num-test (gsl_sf_gammastar 9.0) 1.009298426421819)
-	  (num-test (gsl_sf_gammainv -1.0) 0.0)
-	  (let ((s1 (gsl_sf_result.make)) 
-		(s2 (gsl_sf_result.make))) 
-	    (gsl_sf_lngamma_complex_e 5.0 2.0 s1 s2) 
-	    (num-test (gsl_sf_result.val s1) 2.748701756133804)
-	    (num-test (gsl_sf_result.val s2) 3.073843410049702))
-	  (num-test (gsl_sf_taylorcoeff 10 5) 2.691144455467373)
-	  (num-test (gsl_sf_choose 7 3) 35.0)
-	  (num-test (gsl_sf_poch 7 3) 504.0000000000001)
-	  (num-test (gsl_sf_gamma_inc_P 1.0 10.0) 0.9999546000702381)
-	  (num-test (gsl_sf_lnbeta 0.1 1.0) 2.302585092994044)
-	  (num-test (gsl_sf_beta 100.1 -1.2) 1203.895236907804)
-	  (num-test (gsl_sf_hyperg_0F1 1 0.5) 1.56608292975635)
-	  (num-test (gsl_sf_hyperg_1F1 1 1.5 1) 2.030078469278705)
-	  (num-test (gsl_sf_hyperg_U_int 100 100 1) 0.009998990209084679)
-	  (num-test (gsl_sf_hyperg_2F1 1 1 1 0.5) 2.0)
-	  (num-test (gsl_sf_legendre_P1 -0.5) -0.5)
-	  (num-test (gsl_sf_legendre_sphPlm 10 0 -0.5) -0.2433270236930014)
-	  (num-test (gsl_sf_legendre_Q0 -0.5) -0.5493061443340549)
-	  (num-test (gsl_sf_clausen (+ (* 2 pi) (/ pi 3))) 1.014941606409653)
-	  (num-test (gsl_sf_coupling_3j 0 1 1 0 1 -1) 0.7071067811865476)
-	  (num-test (gsl_sf_dawson 0.5) 0.4244363835020223)
-	  (num-test (gsl_sf_multiply -3 2) -6.0)
-	  (num-test (gsl_sf_ellint_E (/ pi 2) 0.5 GSL_MODE_DEFAULT) 1.467462209339427)
-	  (num-test (gsl_sf_erfc -10) 2.0)
-	  (num-test (gsl_sf_exp_mult 10 -2) -44052.93158961344)
-	  (num-test (gsl_sf_expm1 -.001) -0.0009995001666250082)
-	  (num-test (gsl_sf_Shi -1) -1.057250875375728)
-	  (num-test (gsl_sf_fermi_dirac_0 -1) 0.3132616875182229)
-	  (num-test (gsl_sf_gegenpoly_1 1.0 1.0) 2.0)
-	  
-	  (let ((p (float-vector 1.0 -2.0 1.0)) (res (vector 0.0 0.0)))
-	    (gsl_poly_complex_solve (double* p) 3 res)
-	    (test res #(1.0 1.0)))
-	  (let ((p (float-vector 1 -1 1 -1 1 -1 1 -1 1 -1 1)))
-	    (num-test (gsl_poly_eval (double* p) 11 1.0) 1.0))
-	  (let ((p (float-vector 2.1 -1.34 0.76 0.45)))
-	    (num-test (gsl_poly_complex_eval (double* p) 4 0.49+0.95i) 0.3959142999999998-0.6433305000000001i))
-	  (let ((res (float-vector 0.0 0.0)))
-	    (let ((err (gsl_poly_solve_quadratic 4.0 -20.0 26.0 (double* res))))
-	      (test err 0)))
-	  (let ((res (float-vector 0.0 0.0)))
-	    (let ((err (gsl_poly_solve_quadratic 4.0 -20.0 21.0 (double* res))))
-	      (test res (float-vector 1.5 3.5))))
-	  (let ((res (float-vector 0.0 0.0 0.0)))
-	    (let ((err (gsl_poly_solve_cubic -51 867 -4913 (double* res))))
-	      (test res (float-vector 17.0 17.0 17.0))))
-	  (let ((res (vector 0.0 0.0)))
-	    (let ((err (gsl_poly_complex_solve_quadratic 4.0 -20.0 26.0 res)))
-	      (test res #(2.5-0.5i 2.5+0.5i))))
-	  (let ((res (vector 0.0 0.0 0.0))) ; workspace handling is internal
-	    (let ((err (gsl_poly_complex_solve_cubic -51 867 -4913 res)))
-	      (test res #(17.0 17.0 17.0))))
-	  
-	  (num-test (gsl_hypot3 1.0 1.0 1.0) (sqrt 3))
-	  (num-test (gsl_hypot 1.0 1.0) (sqrt 2))
-	  (test (nan? (gsl_nan)) #t)
-	  (test (infinite? (gsl_posinf)) #t)
-	  (test (gsl_frexp 2.0) '(0.5 2))
-	  (num-test (gsl_pow_2 4) 16.0)
-	  
-	  (num-test (gsl_cdf_ugaussian_P 0.0) 0.5)
-	  (num-test (gsl_cdf_ugaussian_P 0.5) 0.691462461274013)
-	  (num-test (gsl_cdf_ugaussian_Q 0.5) 0.3085375387259869)
-	  (num-test (gsl_cdf_ugaussian_Pinv 0.5) 0.0)
-	  (num-test (gsl_cdf_ugaussian_Qinv 0.5) 0.0)
-	  (num-test (gsl_cdf_exponential_P 0.1 0.7) 0.1331221002498184)
-	  (num-test (gsl_cdf_exponential_Q 0.1 0.7) 0.8668778997501816)
-	  (num-test (gsl_cdf_exponential_Pinv 0.13 0.7) 0.09748344713345537)
-	  (num-test (gsl_cdf_exponential_Qinv 0.86 0.7) 0.1055760228142086)
-	  (num-test (gsl_cdf_exppow_P -0.1 0.7 1.8) 0.4205349082867516)
-	  (num-test (gsl_cdf_exppow_Q -0.1 0.7 1.8) 0.5794650917132484)
-	  (num-test (gsl_cdf_tdist_P 0.0 1.0) 0.5)
-	  (num-test (gsl_cdf_tdist_Q 0.0 1.0) 0.5)
-	  (num-test (gsl_cdf_fdist_P 0.0 1.0 1.3) 0.0)
-	  (num-test (gsl_cdf_fdist_Q 0.0 1.0 1.3) 1.0)
-	  (num-test (gsl_cdf_fdist_Pinv 0.0 1.0 1.3) 0.0)
-	  (num-test (gsl_cdf_fdist_Qinv 1.0 1.0 1.3) 0.0)
-	  (num-test (gsl_cdf_gamma_P 0 1 1) 0.0)
-	  (num-test (gsl_cdf_gamma_Q 0 1 1) 1.0)
-	  (num-test (gsl_cdf_chisq_P 0 13) 0.0)
-	  (num-test (gsl_cdf_chisq_Q 0 13) 1.0)
-	  (num-test (gsl_cdf_beta_P 0 1.2 1.3) 0.0)
-	  (num-test (gsl_cdf_beta_Q 0 1.2 1.3) 1.0)
-#|
-	  ;; this is *very* slow!
-	  (let ((d (gsl_dht_new 128 1.0 1.0))
-		(f_in (make-float-vector 128 0.0))
-		(f_out (make-float-vector 128 0.0)))
+(when (or (provided? 'linux)
+	  (provided? 'osx))
+  (let ()
+    (require libgsl.scm)
+    (when (and (defined? '*libgsl*)
+	       (procedure? (*libgsl* 'gsl_vector_equal)))
+      (with-let (sublet *libgsl*)
+	
+	(define (eigenvalues M)
+	  (with-let (sublet *libgsl* (inlet 'M M))
+	    (let* ((len (sqrt (length M)))
+		   (gm (gsl_matrix_alloc len len))
+		   (m (float-vector->gsl_matrix M gm))
+		   (evl (gsl_vector_complex_alloc len))
+		   (evc (gsl_matrix_complex_alloc len len))
+		   (w (gsl_eigen_nonsymmv_alloc len)))
+	      
+	      (gsl_eigen_nonsymmv m evl evc w)
+	      (gsl_eigen_nonsymmv_free w)
+	      (gsl_eigen_nonsymmv_sort evl evc GSL_EIGEN_SORT_ABS_DESC)
+	      
+	      (let ((vals (make-vector len)))
+		(do ((i 0 (+ i 1)))
+		    ((= i len))
+		  (set! (vals i) (gsl_vector_complex_get evl i)))
+		(gsl_matrix_free gm)
+		(gsl_vector_complex_free evl)
+		(gsl_matrix_complex_free evc)
+		vals))))
+	
+	(test (eigenvalues (float-vector 3 1 1 3)) #(4.0 2.0))
+	(test (eigenvalues (float-vector 1 2 4 3)) #(5.0 -1.0))
+	
+	(num-test GSL_CONST_CGS_LIGHT_YEAR 9.460536207070001e+17)
+	(num-test (GSL_SIGN -123) -1)
+	(test (GSL_IS_ODD 4) #f)
+	(test (integer? GSL_SF_FACT_NMAX) #t)
+	
+	(num-test (gsl_sf_airy_Ai -500.0 GSL_MODE_DEFAULT) 0.07259012010418163)
+	(num-test (gsl_sf_airy_Bi -500.0 GSL_MODE_DEFAULT) -0.0946885701328829)
+	(num-test (gsl_sf_airy_Ai_scaled -5.0 GSL_MODE_DEFAULT) 0.3507610090241141)
+	(num-test (gsl_sf_airy_Bi_scaled -5.0 GSL_MODE_DEFAULT) -0.1383691349016009)
+	(num-test (gsl_sf_airy_Ai_deriv -5.0 GSL_MODE_DEFAULT) 0.3271928185544435)
+	(num-test (gsl_sf_airy_Bi_deriv -5.0 GSL_MODE_DEFAULT) 0.778411773001899)
+	(num-test (gsl_sf_airy_Ai_deriv_scaled -5.0 GSL_MODE_DEFAULT) 0.3271928185544435)
+	(num-test (gsl_sf_airy_Bi_deriv_scaled -5.0 GSL_MODE_DEFAULT) 0.778411773001899)
+	(num-test (gsl_sf_airy_zero_Ai_deriv 2) -3.248197582179837)
+	(num-test (gsl_sf_airy_zero_Bi_deriv 2) -4.073155089071828)
+	(num-test (gsl_sf_bessel_J0 1.0) 0.7651976865579666)
+	(num-test (let ((sfr (gsl_sf_result.make))) (gsl_sf_bessel_J0_e 1.0 sfr) (gsl_sf_result.val sfr)) 0.7651976865579666)
+	(num-test (let ((sfr (gsl_sf_result.make))) (gsl_sf_bessel_J0_e 1.0 sfr) (gsl_sf_result.err sfr)) 6.72613016567227e-16)
+	(num-test (gsl_sf_bessel_J0 .1) 0.9975015620660401)
+	(num-test (gsl_sf_bessel_J1 .1) 0.049937526036242)
+	(num-test (gsl_sf_bessel_Jn 45 900.0) 0.02562434700634277)
+	(num-test (gsl_sf_bessel_Y0 .1) -1.534238651350367)
+	(num-test (gsl_sf_bessel_Y1 .1) -6.458951094702027)
+	(num-test (gsl_sf_bessel_Yn 4 .1) -305832.2979335312)
+	(num-test (gsl_sf_bessel_I0_scaled .1) 0.9071009257823011)
+	(num-test (gsl_sf_bessel_I1_scaled .1) 0.04529844680880932)
+	(num-test (gsl_sf_bessel_In_scaled 4 .1) 2.35752586200546e-07)
+	(num-test (gsl_sf_bessel_I0 .1) 1.002501562934096)
+	(num-test (gsl_sf_bessel_I1 .1) 0.05006252604709269)
+	(num-test (gsl_sf_bessel_In 4 .1) 2.605469021299657e-07)
+	(num-test (gsl_sf_bessel_K0_scaled .1) 2.682326102262894)
+	(num-test (gsl_sf_bessel_K1_scaled .1) 10.8901826830497)
+	(num-test (gsl_sf_bessel_Kn_scaled 4 .1) 530040.2483725621)
+	(num-test (gsl_sf_bessel_K0 .1) 2.427069024702016)
+	(num-test (gsl_sf_bessel_K1 .1) 9.853844780870606)
+	(num-test (gsl_sf_bessel_Kn 4 .1) 479600.2497925678)
+	(num-test (gsl_sf_bessel_j0 1.0) 0.8414709848078965)
+	(num-test (gsl_sf_bessel_j1 1.0) 0.3011686789397567)
+	(num-test (gsl_sf_bessel_j2 1.0) 0.06203505201137386)
+	(num-test (gsl_sf_bessel_jl 5 1.0) 9.256115861125814e-05)
+	(num-test (gsl_sf_bessel_zero_J0 1) 2.404825557695771)
+	(num-test (gsl_sf_bessel_zero_Jnu 5 5) 22.21779994656127)
+	(num-test (gsl_sf_hydrogenicR_1 3 2) 0.02575994825614847)
+	(num-test (gsl_sf_dilog -3.0) -1.939375420766708)
+	(let ((s1 (gsl_sf_result.make)) 
+	      (s2 (gsl_sf_result.make))) 
+	  (gsl_sf_complex_dilog_e 0.99999 (/ pi 2) s1 s2) 
+	  (num-test (gsl_sf_result.val s1) -0.2056132926277968)
+	  (num-test (gsl_sf_result.val s2) 0.9159577401813151))
+	(let ((s1 (gsl_sf_result.make)) 
+	      (s2 (gsl_sf_result.make))) 
+	  (gsl_sf_complex_spence_xy_e 0.5 0.0 s1 s2) 
+	  (num-test (gsl_sf_result.val s1) 0.5822405264650126)
+	  (num-test (gsl_sf_result.val s2) 0.0))
+	(num-test (gsl_sf_lngamma -0.1) 2.368961332728787)
+	(num-test (gsl_sf_gamma 9.0) 40320.0)
+	(num-test (gsl_sf_gammastar 9.0) 1.009298426421819)
+	(num-test (gsl_sf_gammainv -1.0) 0.0)
+	(let ((s1 (gsl_sf_result.make)) 
+	      (s2 (gsl_sf_result.make))) 
+	  (gsl_sf_lngamma_complex_e 5.0 2.0 s1 s2) 
+	  (num-test (gsl_sf_result.val s1) 2.748701756133804)
+	  (num-test (gsl_sf_result.val s2) 3.073843410049702))
+	(num-test (gsl_sf_taylorcoeff 10 5) 2.691144455467373)
+	(num-test (gsl_sf_choose 7 3) 35.0)
+	(num-test (gsl_sf_poch 7 3) 504.0000000000001)
+	(num-test (gsl_sf_gamma_inc_P 1.0 10.0) 0.9999546000702381)
+	(num-test (gsl_sf_lnbeta 0.1 1.0) 2.302585092994044)
+	(num-test (gsl_sf_beta 100.1 -1.2) 1203.895236907804)
+	(num-test (gsl_sf_hyperg_0F1 1 0.5) 1.56608292975635)
+	(num-test (gsl_sf_hyperg_1F1 1 1.5 1) 2.030078469278705)
+	(num-test (gsl_sf_hyperg_U_int 100 100 1) 0.009998990209084679)
+	(num-test (gsl_sf_hyperg_2F1 1 1 1 0.5) 2.0)
+	(num-test (gsl_sf_legendre_P1 -0.5) -0.5)
+	(num-test (gsl_sf_legendre_sphPlm 10 0 -0.5) -0.2433270236930014)
+	(num-test (gsl_sf_legendre_Q0 -0.5) -0.5493061443340549)
+	(num-test (gsl_sf_clausen (+ (* 2 pi) (/ pi 3))) 1.014941606409653)
+	(num-test (gsl_sf_coupling_3j 0 1 1 0 1 -1) 0.7071067811865476)
+	(num-test (gsl_sf_dawson 0.5) 0.4244363835020223)
+	(num-test (gsl_sf_multiply -3 2) -6.0)
+	(num-test (gsl_sf_ellint_E (/ pi 2) 0.5 GSL_MODE_DEFAULT) 1.467462209339427)
+	(num-test (gsl_sf_erfc -10) 2.0)
+	(num-test (gsl_sf_exp_mult 10 -2) -44052.93158961344)
+	(num-test (gsl_sf_expm1 -.001) -0.0009995001666250082)
+	(num-test (gsl_sf_Shi -1) -1.057250875375728)
+	(num-test (gsl_sf_fermi_dirac_0 -1) 0.3132616875182229)
+	(num-test (gsl_sf_gegenpoly_1 1.0 1.0) 2.0)
+	
+	(let ((p (float-vector 1.0 -2.0 1.0)) (res (vector 0.0 0.0)))
+	  (gsl_poly_complex_solve (double* p) 3 res)
+	  (test res #(1.0 1.0)))
+	(let ((p (float-vector 1 -1 1 -1 1 -1 1 -1 1 -1 1)))
+	  (num-test (gsl_poly_eval (double* p) 11 1.0) 1.0))
+	(let ((p (float-vector 2.1 -1.34 0.76 0.45)))
+	  (num-test (gsl_poly_complex_eval (double* p) 4 0.49+0.95i) 0.3959142999999998-0.6433305000000001i))
+	(let ((res (float-vector 0.0 0.0)))
+	  (let ((err (gsl_poly_solve_quadratic 4.0 -20.0 26.0 (double* res))))
+	    (test err 0)))
+	(let ((res (float-vector 0.0 0.0)))
+	  (let ((err (gsl_poly_solve_quadratic 4.0 -20.0 21.0 (double* res))))
+	    (test res (float-vector 1.5 3.5))))
+	(let ((res (float-vector 0.0 0.0 0.0)))
+	  (let ((err (gsl_poly_solve_cubic -51 867 -4913 (double* res))))
+	    (test res (float-vector 17.0 17.0 17.0))))
+	(let ((res (vector 0.0 0.0)))
+	  (let ((err (gsl_poly_complex_solve_quadratic 4.0 -20.0 26.0 res)))
+	    (test res #(2.5-0.5i 2.5+0.5i))))
+	(let ((res (vector 0.0 0.0 0.0))) ; workspace handling is internal
+	  (let ((err (gsl_poly_complex_solve_cubic -51 867 -4913 res)))
+	    (test res #(17.0 17.0 17.0))))
+	
+	(num-test (gsl_hypot3 1.0 1.0 1.0) (sqrt 3))
+	(num-test (gsl_hypot 1.0 1.0) (sqrt 2))
+	(test (nan? (gsl_nan)) #t)
+	(test (infinite? (gsl_posinf)) #t)
+	(test (gsl_frexp 2.0) '(0.5 2))
+	(num-test (gsl_pow_2 4) 16.0)
+	
+	(num-test (gsl_cdf_ugaussian_P 0.0) 0.5)
+	(num-test (gsl_cdf_ugaussian_P 0.5) 0.691462461274013)
+	(num-test (gsl_cdf_ugaussian_Q 0.5) 0.3085375387259869)
+	(num-test (gsl_cdf_ugaussian_Pinv 0.5) 0.0)
+	(num-test (gsl_cdf_ugaussian_Qinv 0.5) 0.0)
+	(num-test (gsl_cdf_exponential_P 0.1 0.7) 0.1331221002498184)
+	(num-test (gsl_cdf_exponential_Q 0.1 0.7) 0.8668778997501816)
+	(num-test (gsl_cdf_exponential_Pinv 0.13 0.7) 0.09748344713345537)
+	(num-test (gsl_cdf_exponential_Qinv 0.86 0.7) 0.1055760228142086)
+	(num-test (gsl_cdf_exppow_P -0.1 0.7 1.8) 0.4205349082867516)
+	(num-test (gsl_cdf_exppow_Q -0.1 0.7 1.8) 0.5794650917132484)
+	(num-test (gsl_cdf_tdist_P 0.0 1.0) 0.5)
+	(num-test (gsl_cdf_tdist_Q 0.0 1.0) 0.5)
+	(num-test (gsl_cdf_fdist_P 0.0 1.0 1.3) 0.0)
+	(num-test (gsl_cdf_fdist_Q 0.0 1.0 1.3) 1.0)
+	(num-test (gsl_cdf_fdist_Pinv 0.0 1.0 1.3) 0.0)
+	(num-test (gsl_cdf_fdist_Qinv 1.0 1.0 1.3) 0.0)
+	(num-test (gsl_cdf_gamma_P 0 1 1) 0.0)
+	(num-test (gsl_cdf_gamma_Q 0 1 1) 1.0)
+	(num-test (gsl_cdf_chisq_P 0 13) 0.0)
+	(num-test (gsl_cdf_chisq_Q 0 13) 1.0)
+	(num-test (gsl_cdf_beta_P 0 1.2 1.3) 0.0)
+	(num-test (gsl_cdf_beta_Q 0 1.2 1.3) 1.0)
+	#|
+	;; this is *very* slow!
+	(let ((d (gsl_dht_new 128 1.0 1.0))
+	(f_in (make-float-vector 128 0.0))
+	(f_out (make-float-vector 128 0.0)))
+	(do ((i 0 (+ i 1)))
+	((= i 128))
+	(let ((x (gsl_dht_x_sample d i)))
+	(set! (f_in i) (* x (- 1.0 (* x x))))))
+	(gsl_dht_apply d (double* f_in) (double* f_out))
+	(let ((res (list (f_out 0) (f_out 5))))
+	(gsl_dht_free d)
+	(num-test (res 0) 0.05727421417071144)
+	(num-test (res 1) -0.0001908501261051786)))
+	|#	  
+	(num-test (gsl_stats_mean (double* (float-vector 1.0 2.0 3.0 4.0)) 1 4) 2.5)
+	(num-test (gsl_stats_skew (double* (float-vector 1.0 2.0 3.0 4.0)) 1 4) 0.0)
+	(num-test (gsl_stats_max (double* (float-vector 1.0 2.0 3.0 4.0)) 1 4) 4.0)
+	
+	(let ((rng (gsl_rng_alloc gsl_rng_default)))
+	  (test (real? (gsl_ran_exponential rng 1.0)) #t)
+	  (gsl_rng_free rng))
+	
+	(num-test (gsl_complex_log 1+i) (log 1+i))
+	(num-test (gsl_complex_abs 1+i) (magnitude 1+i))
+	(num-test (gsl_complex_sin 1+i) (sin 1+i))
+	
+	(let ((gs (gsl_cheb_alloc 40)))
+	  (gsl_cheb_init gs (lambda (x) x) -1.0 1.0)
+	  (num-test (gsl_cheb_eval gs -1.0) -1.0)
+	  (num-test (gsl_cheb_eval gs 0.0) 0.0)
+	  (num-test (gsl_cheb_eval gs 1.0) 1.0)
+	  (gsl_cheb_free gs))
+	
+	(let ((x (float-vector 0.0)) 
+	      (y (float-vector 0.0))) 
+	  (gsl_deriv_central (lambda (x) (expt x 1.5)) 2.0 1e-8 (double* x) (double* y))
+	  (num-test (x 0) (* 1.5 (sqrt 2)))
+	  (gsl_deriv_forward (lambda (x) (expt x 1.5)) 0.0 1e-8 (double* x) (double* y))
+	  (num-test (x 0) 0.0))
+	
+	(let ((f (float-vector -1 3 0 4 2 6)))
+	  (gsl_sort (double* f) 1 6)
+	  (test f (float-vector -1 0 2 3 4 6)))
+	
+	(let ((g1 (gsl_vector_alloc 3))
+	      (g2 (gsl_vector_alloc 3))
+	      (f1 (make-float-vector 3)))
+	  (gsl_vector_add (float-vector->gsl_vector (float-vector 0 1 2) g1)
+			  (float-vector->gsl_vector (float-vector 3 4 5) g2))
+	  (gsl_vector->float-vector g1 f1)
+	  (gsl_vector_free g1)
+	  (gsl_vector_free g2)
+	  (test f1 (float-vector 3 5 7)))
+	
+	(let ((f (make-float-vector '(3 3))))
+	  (let ((g (gsl_matrix_alloc 3 3)))
+	    (gsl_matrix_set_identity g) 
 	    (do ((i 0 (+ i 1)))
-		((= i 128))
-	      (let ((x (gsl_dht_x_sample d i)))
-		(set! (f_in i) (* x (- 1.0 (* x x))))))
-	    (gsl_dht_apply d (double* f_in) (double* f_out))
-	    (let ((res (list (f_out 0) (f_out 5))))
-	      (gsl_dht_free d)
-	      (num-test (res 0) 0.05727421417071144)
-	      (num-test (res 1) -0.0001908501261051786)))
-|#	  
-	  (num-test (gsl_stats_mean (double* (float-vector 1.0 2.0 3.0 4.0)) 1 4) 2.5)
-	  (num-test (gsl_stats_skew (double* (float-vector 1.0 2.0 3.0 4.0)) 1 4) 0.0)
-	  (num-test (gsl_stats_max (double* (float-vector 1.0 2.0 3.0 4.0)) 1 4) 4.0)
-	  
-	  (let ((rng (gsl_rng_alloc gsl_rng_default)))
-	    (test (real? (gsl_ran_exponential rng 1.0)) #t)
-	    (gsl_rng_free rng))
-	  
-	  (num-test (gsl_complex_log 1+i) (log 1+i))
-	  (num-test (gsl_complex_abs 1+i) (magnitude 1+i))
-	  (num-test (gsl_complex_sin 1+i) (sin 1+i))
-	  
-	  (let ((gs (gsl_cheb_alloc 40)))
-	    (gsl_cheb_init gs (lambda (x) x) -1.0 1.0)
-	    (num-test (gsl_cheb_eval gs -1.0) -1.0)
-	    (num-test (gsl_cheb_eval gs 0.0) 0.0)
-	    (num-test (gsl_cheb_eval gs 1.0) 1.0)
-	    (gsl_cheb_free gs))
-	  
-	  (let ((x (float-vector 0.0)) 
-		(y (float-vector 0.0))) 
-	    (gsl_deriv_central (lambda (x) (expt x 1.5)) 2.0 1e-8 (double* x) (double* y))
-	    (num-test (x 0) (* 1.5 (sqrt 2)))
-	    (gsl_deriv_forward (lambda (x) (expt x 1.5)) 0.0 1e-8 (double* x) (double* y))
-	    (num-test (x 0) 0.0))
-
-	  (let ((f (float-vector -1 3 0 4 2 6)))
-	    (gsl_sort (double* f) 1 6)
-	    (test f (float-vector -1 0 2 3 4 6)))
-	  
-	  (let ((g1 (gsl_vector_alloc 3))
-		(g2 (gsl_vector_alloc 3))
-		(f1 (make-float-vector 3)))
-	    (gsl_vector_add (float-vector->gsl_vector (float-vector 0 1 2) g1)
-			    (float-vector->gsl_vector (float-vector 3 4 5) g2))
-	    (gsl_vector->float-vector g1 f1)
-	    (gsl_vector_free g1)
-	    (gsl_vector_free g2)
-	    (test f1 (float-vector 3 5 7)))
-	  
-	  (let ((f (make-float-vector '(3 3))))
-	    (let ((g (gsl_matrix_alloc 3 3)))
-	      (gsl_matrix_set_identity g) 
+		((= i 3) 
+		 (gsl_matrix_free g))
+	      (do ((j 0 (+ j 1)))
+		  ((= j 3))
+		(set! (f i j) (gsl_matrix_get g i j)))))
+	  (test (morally-equal? f #2D((1.0 0.0 0.0) (0.0 1.0 0.0) (0.0 0.0 1.0))) #t))
+	
+	(let ((f (make-vector '(3 3))))
+	  (let ((g (gsl_matrix_complex_alloc 3 3)))
+	    (gsl_matrix_complex_set_identity g)
+	    (gsl_matrix_complex_scale g 1+i)
+	    (do ((i 0 (+ i 1)))
+		((= i 3) 
+		 (gsl_matrix_complex_free g))
+	      (do ((j 0 (+ j 1)))
+		  ((= j 3))
+		(set! (f i j) (gsl_matrix_complex_get g i j)))))
+	  (test (morally-equal? f #2D((1+i 0.0 0.0) (0.0 1+i 0.0) (0.0 0.0 1+i))) #t))
+	
+	(let ((Y (float-vector 0.554))
+	      (A (float-vector -0.047))
+	      (X (float-vector 0.672)))
+	  (cblas_dgemv 101 111 1 1 -0.3 (double* A) 1 (double* X) -1 -1 (double* Y) -1)
+	  (num-test (Y 0) -0.5445248))
+	
+	(let ((Y (float-vector 0.348 0.07))
+	      (A (float-vector 0.932 -0.724))
+	      (X (float-vector 0.334 -0.317)) 
+	      (alpha (float-vector 0 .1)) 
+	      (beta (float-vector 1 0)))
+	  (cblas_zgemv 101 111 1 1 (double* alpha) (double* A) 1 (double* X) -1 (double* beta) (double* Y) -1)
+	  (num-test (Y 0) 0.401726)
+	  (num-test (Y 1) 0.078178))
+	
+	(test (let ((f (float-vector 0 1 2 3 4))) (gsl_interp_bsearch (double* f) 1.5 0 4)) 1)
+	
+	(let ((x (make-float-vector 10))
+	      (y (make-float-vector 10)))
+	  (do ((i 0 (+ i 1)))
+	      ((= i 10))
+	    (set! (x i) (+ i (* 0.5 (sin i))))
+	    (set! (y i) (+ i (cos (* i i)))))
+	  (let ((acc (gsl_interp_accel_alloc))
+		(spline (gsl_spline_alloc gsl_interp_cspline 10)))
+	    (gsl_spline_init spline (double* x) (double* y) 10)
+	    (let ((res (gsl_spline_eval spline (x 5) acc)))
+	      (gsl_spline_free spline)
+	      (gsl_interp_accel_free acc)
+	      (num-test res 5.991202811863474))))
+	
+	(let ((c (gsl_combination_alloc 6 3))
+	      (data #2d((0 1 2) (0 1 3) (0 1 4) (0 1 5)
+			(0 2 3) (0 2 4) (0 2 5) (0 3 4)
+			(0 3 5) (0 4 5) (1 2 3) (1 2 4)
+			(1 2 5) (1 3 4) (1 3 5) (1 4 5)
+			(2 3 4) (2 3 5) (2 4 5) (3 4 5)))
+	      (iv (make-int-vector 3 0)))
+	  (gsl_combination_init_first c)
+	  (do ((i 0 (+ i 1)))
+	      ((= i 20))
+	    ((*libgsl* 'gsl_combination->int-vector) c iv)
+	    (if (not (morally-equal? iv (data i)))
+		(format *stderr* ";gsl_combination: ~A ~A~%" iv (data i)))
+	    (gsl_combination_next c))
+	  (gsl_combination_free c))
+	
+	(let ((p (gsl_permutation_alloc 3)) 
+	      (data (make-int-vector 18 0)))
+	  (gsl_permutation_init p)
+	  (do ((pp GSL_SUCCESS (gsl_permutation_next p)) 
+	       (i 0 (+ i 3)))
+	      ((not (= pp GSL_SUCCESS)))
+	    (set! (data i) (gsl_permutation_get p 0))
+	    (set! (data (+ i 1)) (gsl_permutation_get p 1))
+	    (set! (data (+ i 2)) (gsl_permutation_get p 2)))
+	  (gsl_permutation_free p)
+	  (test (morally-equal? data #(0 1 2 0 2 1 1 0 2 1 2 0 2 0 1 2 1 0)) #t))
+	
+	(let ((N 50))
+	  (let ((t (make-float-vector N 0.0)))
+	    (do ((i 0 (+ i 1)))
+		((= i N))
+	      (set! (t i) (/ 1.0 (* (+ i 1) (+ i 1)))))
+	    (let ((zeta_2 (/ (* pi pi) 6.0)))
+	      (let ((accel (float-vector 0.0))
+		    (err (float-vector 0.0))
+		    (w (gsl_sum_levin_u_alloc N)))
+		(gsl_sum_levin_u_accel (double* t) N w (double* accel) (double* err))
+		(num-test zeta_2 (accel 0))
+		(gsl_sum_levin_u_free w)))))
+	
+	(let ((data (float-vector 0 0  1 0  1 1  0 -1)) ; complex data as rl+im coming and going
+	      (output (make-float-vector 8 0.0)))
+	  (gsl_dft_complex_forward (double* data) 1 4 (double* output)) 
+	  ;; = -1 in snd terminology: (cfft! (vector 0 1 1+i 0-i) 4 -1): #(2.0 0-2i 0+2i -2.0)
+	  (test (morally-equal? output (float-vector 2.0 0.0  0.0 -2.0  0.0 2.0  -2.0 0.0)) #t))
+	(let ((data (float-vector 0 0  1 0  1 1  0 -1))) ; complex data as rl+im coming and going
+	  (gsl_fft_complex_radix2_forward (double* data) 1 4)
+	  (test (morally-equal? data (float-vector 2.0 0.0  0.0 -2.0  0.0 2.0  -2.0 0.0)) #t))
+	
+	(let ((data (make-float-vector 256))
+	      (w (gsl_wavelet_alloc gsl_wavelet_daubechies 4))
+	      (work (gsl_wavelet_workspace_alloc 256)))
+	  (do ((i 0 (+ i 1)))
+	      ((= i 256))
+	    (set! (data i) (sin (* i (/ pi 128)))))
+	  (gsl_wavelet_transform_forward w (double* data) 1 256 work)
+	  (gsl_wavelet_transform_inverse w (double* data) 1 256 work)
+	  (gsl_wavelet_free w)
+	  (gsl_wavelet_workspace_free work)
+	  data)
+	
+	(let ((h (gsl_histogram_alloc 10))
+	      (data (make-int-vector 10)))
+	  (gsl_histogram_set_ranges_uniform h 0.0 1.0)
+	  (do ((i 0 (+ i 1)))
+	      ((= i 50))
+	    (gsl_histogram_increment h (random 1.0)))
+	  (do ((i 0 (+ i 1)))
+	      ((= i 10))
+	    (set! (data i) (round (gsl_histogram_get h i))))
+	  (gsl_histogram_free h)
+	  data)
+	
+	(let ((a_data (float-vector 0.18 0.60 0.57 0.96  0.41 0.24 0.99 0.58  0.14 0.30 0.97 0.66  0.51 0.13 0.19 0.85))
+	      (b_data (float-vector 1 2 3 4)))
+	  (let ((m (gsl_matrix_alloc 4 4))
+		(b (gsl_vector_alloc 4)))
+	    (let ((x (gsl_vector_alloc 4))
+		  (p (gsl_permutation_alloc 4)))
 	      (do ((i 0 (+ i 1)))
-		  ((= i 3) 
-		   (gsl_matrix_free g))
+		  ((= i 4))
 		(do ((j 0 (+ j 1)))
-		    ((= j 3))
-		  (set! (f i j) (gsl_matrix_get g i j)))))
-	    (test (morally-equal? f #2D((1.0 0.0 0.0) (0.0 1.0 0.0) (0.0 0.0 1.0))) #t))
-	  
-	  (let ((f (make-vector '(3 3))))
-	    (let ((g (gsl_matrix_complex_alloc 3 3)))
-	      (gsl_matrix_complex_set_identity g)
-	      (gsl_matrix_complex_scale g 1+i)
+		    ((= j 4))
+		  (gsl_matrix_set m i j (a_data (+ j (* i 4))))))
 	      (do ((i 0 (+ i 1)))
-		  ((= i 3) 
-		   (gsl_matrix_complex_free g))
-		(do ((j 0 (+ j 1)))
-		    ((= j 3))
-		  (set! (f i j) (gsl_matrix_complex_get g i j)))))
-	    (test (morally-equal? f #2D((1+i 0.0 0.0) (0.0 1+i 0.0) (0.0 0.0 1+i))) #t))
-	  
-	  (let ((Y (float-vector 0.554))
-		(A (float-vector -0.047))
-		(X (float-vector 0.672)))
-	    (cblas_dgemv 101 111 1 1 -0.3 (double* A) 1 (double* X) -1 -1 (double* Y) -1)
-	    (num-test (Y 0) -0.5445248))
-	  
-	  (let ((Y (float-vector 0.348 0.07))
-		(A (float-vector 0.932 -0.724))
-		(X (float-vector 0.334 -0.317)) 
-		(alpha (float-vector 0 .1)) 
-		(beta (float-vector 1 0)))
-	    (cblas_zgemv 101 111 1 1 (double* alpha) (double* A) 1 (double* X) -1 (double* beta) (double* Y) -1)
-	    (num-test (Y 0) 0.401726)
-	    (num-test (Y 1) 0.078178))
-	  
-	  (test (let ((f (float-vector 0 1 2 3 4))) (gsl_interp_bsearch (double* f) 1.5 0 4)) 1)
-
-	  (let ((x (make-float-vector 10))
-		(y (make-float-vector 10)))
-	    (do ((i 0 (+ i 1)))
-		((= i 10))
-	      (set! (x i) (+ i (* 0.5 (sin i))))
-	      (set! (y i) (+ i (cos (* i i)))))
-	    (let ((acc (gsl_interp_accel_alloc))
-		  (spline (gsl_spline_alloc gsl_interp_cspline 10)))
-	      (gsl_spline_init spline (double* x) (double* y) 10)
-	      (let ((res (gsl_spline_eval spline (x 5) acc)))
-		(gsl_spline_free spline)
-		(gsl_interp_accel_free acc)
-		(num-test res 5.991202811863474))))
-
-	  (let ((c (gsl_combination_alloc 6 3))
-		(data #2d((0 1 2) (0 1 3) (0 1 4) (0 1 5)
-			  (0 2 3) (0 2 4) (0 2 5) (0 3 4)
-			  (0 3 5) (0 4 5) (1 2 3) (1 2 4)
-			  (1 2 5) (1 3 4) (1 3 5) (1 4 5)
-			  (2 3 4) (2 3 5) (2 4 5) (3 4 5)))
-		(iv (make-int-vector 3 0)))
-	    (gsl_combination_init_first c)
-	    (do ((i 0 (+ i 1)))
-		((= i 20))
-	      ((*libgsl* 'gsl_combination->int-vector) c iv)
-	      (if (not (morally-equal? iv (data i)))
-		  (format *stderr* ";gsl_combination: ~A ~A~%" iv (data i)))
-	      (gsl_combination_next c))
-	    (gsl_combination_free c))
-
-	  (let ((p (gsl_permutation_alloc 3)) 
-		(data (make-int-vector 18 0)))
-	    (gsl_permutation_init p)
-	    (do ((pp GSL_SUCCESS (gsl_permutation_next p)) 
-		 (i 0 (+ i 3)))
-		((not (= pp GSL_SUCCESS)))
-	      (set! (data i) (gsl_permutation_get p 0))
-	      (set! (data (+ i 1)) (gsl_permutation_get p 1))
-	      (set! (data (+ i 2)) (gsl_permutation_get p 2)))
-	    (gsl_permutation_free p)
-	    (test (morally-equal? data #(0 1 2 0 2 1 1 0 2 1 2 0 2 0 1 2 1 0)) #t))
-	  
-	  (let ((N 50))
-	    (let ((t (make-float-vector N 0.0)))
+		  ((= i 4))
+		(gsl_vector_set b i (b_data i)))
+	      (gsl_linalg_LU_decomp m p) ; int-by-ref is internal
+	      (gsl_linalg_LU_solve m p b x)
 	      (do ((i 0 (+ i 1)))
-		  ((= i N))
-		(set! (t i) (/ 1.0 (* (+ i 1) (+ i 1)))))
-	      (let ((zeta_2 (/ (* pi pi) 6.0)))
-		(let ((accel (float-vector 0.0))
-		      (err (float-vector 0.0))
-		      (w (gsl_sum_levin_u_alloc N)))
-		  (gsl_sum_levin_u_accel (double* t) N w (double* accel) (double* err))
-		  (num-test zeta_2 (accel 0))
-		  (gsl_sum_levin_u_free w)))))
-
-	  (let ((data (float-vector 0 0  1 0  1 1  0 -1)) ; complex data as rl+im coming and going
-		(output (make-float-vector 8 0.0)))
-	    (gsl_dft_complex_forward (double* data) 1 4 (double* output)) 
-	    ;; = -1 in snd terminology: (cfft! (vector 0 1 1+i 0-i) 4 -1): #(2.0 0-2i 0+2i -2.0)
-	    (test (morally-equal? output (float-vector 2.0 0.0  0.0 -2.0  0.0 2.0  -2.0 0.0)) #t))
-	  (let ((data (float-vector 0 0  1 0  1 1  0 -1))) ; complex data as rl+im coming and going
-	    (gsl_fft_complex_radix2_forward (double* data) 1 4)
-	    (test (morally-equal? data (float-vector 2.0 0.0  0.0 -2.0  0.0 2.0  -2.0 0.0)) #t))
-
-	  (let ((data (make-float-vector 256))
-		(w (gsl_wavelet_alloc gsl_wavelet_daubechies 4))
-		(work (gsl_wavelet_workspace_alloc 256)))
-	    (do ((i 0 (+ i 1)))
-		((= i 256))
-	      (set! (data i) (sin (* i (/ pi 128)))))
-	    (gsl_wavelet_transform_forward w (double* data) 1 256 work)
-	    (gsl_wavelet_transform_inverse w (double* data) 1 256 work)
-	    (gsl_wavelet_free w)
-	    (gsl_wavelet_workspace_free work)
-	    data)
-
-	  (let ((h (gsl_histogram_alloc 10))
-		(data (make-int-vector 10)))
-	    (gsl_histogram_set_ranges_uniform h 0.0 1.0)
-	    (do ((i 0 (+ i 1)))
-		((= i 50))
-	      (gsl_histogram_increment h (random 1.0)))
-	    (do ((i 0 (+ i 1)))
-		((= i 10))
-	      (set! (data i) (round (gsl_histogram_get h i))))
-	    (gsl_histogram_free h)
-	    data)
-
-	  (let ((a_data (float-vector 0.18 0.60 0.57 0.96  0.41 0.24 0.99 0.58  0.14 0.30 0.97 0.66  0.51 0.13 0.19 0.85))
-		(b_data (float-vector 1 2 3 4)))
-	    (let ((m (gsl_matrix_alloc 4 4))
-		  (b (gsl_vector_alloc 4)))
-	      (let ((x (gsl_vector_alloc 4))
-		    (p (gsl_permutation_alloc 4)))
-		(do ((i 0 (+ i 1)))
-		    ((= i 4))
-		  (do ((j 0 (+ j 1)))
-		      ((= j 4))
-		    (gsl_matrix_set m i j (a_data (+ j (* i 4))))))
-		(do ((i 0 (+ i 1)))
-		    ((= i 4))
-		  (gsl_vector_set b i (b_data i)))
-		(gsl_linalg_LU_decomp m p) ; int-by-ref is internal
-		(gsl_linalg_LU_solve m p b x)
-		(do ((i 0 (+ i 1)))
-		    ((= i 4))
-		  (set! (b_data i) (gsl_vector_get x i)))
-		(gsl_permutation_free p)
-		(gsl_vector_free x)
-		b_data)))
-	  
-	  (if (>= gsl-version 1.16)
-	      (let ()
-		(define (dofit T X y c cov)
-		  (let ((work (gsl_multifit_robust_alloc T (car (gsl_matrix_size X)) (cdr (gsl_matrix_size X)))))
-		    (let ((s (gsl_multifit_robust X y c cov work)))
-		      (gsl_multifit_robust_free work)
-		      s)))
-		(let* ((n 30)
-		       (p 2)
-		       (a 1.45)
-		       (b 3.88)
-		       (X (gsl_matrix_alloc n p))
-		       (x (gsl_vector_alloc n))
-		       (y (gsl_vector_alloc n))
-		       (c (gsl_vector_alloc p))
-		       (c_ols (gsl_vector_alloc p))
-		       (cov (gsl_matrix_alloc p p))
-		       (gv (gsl_vector_alloc p))
-		       (r (gsl_rng_alloc gsl_rng_default)))
-		  (do ((i 0 (+ i 1)))
-		      ((= i (- n 3)))
-		    (let* ((dx (/ 10.0 (- n 1.0)))
-			   (ei (gsl_rng_uniform r))
-			   (xi (+ -5.0 (* i dx)))
-			   (yi (+ b (* a xi))))
-		      (gsl_vector_set x i xi)
-		      (gsl_vector_set y i (+ yi ei))))
-		  (gsl_vector_set x (- n 3) 4.7)
-		  (gsl_vector_set y (- n 3) -8.3)
-		  (gsl_vector_set x (- n 2) 3.5)
-		  (gsl_vector_set y (- n 2) -6.7)
-		  (gsl_vector_set x (- n 1) 4.1)
-		  (gsl_vector_set y (- n 1) -6.0)
-		  (do ((i 0 (+ i 1)))
-		      ((= i n))
-		    (let ((xi (gsl_vector_get x i)))
-		      (gsl_matrix_set X i 0 1.0)
-		      (gsl_matrix_set X i 1 xi)))
-		  (dofit gsl_multifit_robust_ols X y c_ols cov)
-		  (dofit gsl_multifit_robust_bisquare X y c cov)
-		  (do ((i 0 (+ i 1)))
-		      ((= i n))
-		    (let ((xi (gsl_vector_get x i))
-			  (yi (gsl_vector_get y i))
-			  (y_ols (float-vector 0.0))
-			  (y_rob (float-vector 0.0))
-			  (y_err (float-vector 0.0)))
-		      (gsl_vector_set gv 0 (gsl_matrix_get X i 0))
-		      (gsl_vector_set gv 1 (gsl_matrix_get X i 1))
-		      (gsl_multifit_robust_est gv c cov (double* y_rob) (double* y_err))
-		      (gsl_multifit_robust_est gv c_ols cov (double* y_ols) (double* y_err))))
-		  (gsl_matrix_free X)
-		  (gsl_matrix_free cov)
-		  (gsl_vector_free x)
-		  (gsl_vector_free y)
-		  (gsl_vector_free c)
-		  (gsl_vector_free gv)
-		  (gsl_rng_free r))))
-		  
+		  ((= i 4))
+		(set! (b_data i) (gsl_vector_get x i)))
+	      (gsl_permutation_free p)
+	      (gsl_vector_free x)
+	      b_data)))
+	
+	(when (>= gsl-version 1.16)
 	  (let ()
-	    (gsl_rng_env_setup)
-	    (let* ((T gsl_rng_default)
-		  (r (gsl_rng_alloc T))
-		  (x 0)
-		  (y 0)
-		  (dx (float-vector 0.0))
-		  (dy (float-vector 0.0)))
+	    (define (dofit T X y c cov)
+	      (let ((work (gsl_multifit_robust_alloc T (car (gsl_matrix_size X)) (cdr (gsl_matrix_size X)))))
+		(let ((s (gsl_multifit_robust X y c cov work)))
+		  (gsl_multifit_robust_free work)
+		  s)))
+	    (let* ((n 30)
+		   (p 2)
+		   (a 1.45)
+		   (b 3.88)
+		   (X (gsl_matrix_alloc n p))
+		   (x (gsl_vector_alloc n))
+		   (y (gsl_vector_alloc n))
+		   (c (gsl_vector_alloc p))
+		   (c_ols (gsl_vector_alloc p))
+		   (cov (gsl_matrix_alloc p p))
+		   (gv (gsl_vector_alloc p))
+		   (r (gsl_rng_alloc gsl_rng_default)))
 	      (do ((i 0 (+ i 1)))
-		  ((= i 10))
-		(gsl_ran_dir_2d r (double* dx) (double* dy))
-		(set! x (+ x (dx 0)))
-		(set! y (+ y (dy 0))))
-	      (gsl_rng_free r)))
-
-	  (let ((f_size 2)
-		(T gsl_multimin_fminimizer_nmsimplex))
-	    (define (simple-abs x)
-	      (let ((u (gsl_vector_get x 0))
-		    (v (gsl_vector_get x 1)))
-		(let ((a (- u 1))
-		      (b (- v 2)))
-		  (+ (abs a) (abs b)))))
-	    (let ((x (gsl_vector_alloc f_size))
-		  (step_size (gsl_vector_alloc f_size))
-		  (s (gsl_multimin_fminimizer_alloc T 2)))
-	      (gsl_vector_set x 0 1.0)
-	      (gsl_vector_set x 1 2.0)
-	      (gsl_vector_set step_size 0 1)
-	      (gsl_vector_set step_size 1 1)
-	      (gsl_multimin_fminimizer_set s simple-abs x step_size)
+		  ((= i (- n 3)))
+		(let* ((dx (/ 10.0 (- n 1.0)))
+		       (ei (gsl_rng_uniform r))
+		       (xi (+ -5.0 (* i dx)))
+		       (yi (+ b (* a xi))))
+		  (gsl_vector_set x i xi)
+		  (gsl_vector_set y i (+ yi ei))))
+	      (gsl_vector_set x (- n 3) 4.7)
+	      (gsl_vector_set y (- n 3) -8.3)
+	      (gsl_vector_set x (- n 2) 3.5)
+	      (gsl_vector_set y (- n 2) -6.7)
+	      (gsl_vector_set x (- n 1) 4.1)
+	      (gsl_vector_set y (- n 1) -6.0)
 	      (do ((i 0 (+ i 1)))
-		  ((= i 10))
-		(gsl_multimin_fminimizer_iterate s))
-	      (let ((result (abs (gsl_multimin_fminimizer_fval s))))
-		(gsl_multimin_fminimizer_free s)
-		(gsl_vector_free x)
-		(gsl_vector_free step_size)
-		(num-test result 0.0))))
-	      
-	  (let ((n 4)
-		(x (float-vector 1970 1980 1990 2000))
-		(y (float-vector 12 11 14 13))
-		(w (float-vector 0.1 0.2 0.3 0.4))
-		(c0 (float-vector 0.0))
-		(c1 (float-vector 0.0))
-		(cov00 (float-vector 0.0))
-		(cov01 (float-vector 0.0))
-		(cov11 (float-vector 0.0))
-		(chisq (float-vector 0.0)))
-	    (gsl_fit_wlinear (double* x) 1 (double* w) 1 (double* y) 1 n
-			     (double* c0) (double* c1) (double* cov00) (double* cov01) (double* cov11) (double* chisq))
-	    (num-test (+ (c0 0) (c1 0)) -106.54))
-
-	  (let ((c (gsl_multiset_calloc 4 2)))
-	    (test (list (gsl_multiset_n c) (gsl_multiset_k c)) '(4 2)))
-
-	  (let ((x (gsl_vector_alloc 2))
-		(factor 1.0)
-		(T gsl_multiroot_fsolver_dnewton))
-	    (define (rosenb x f)
-	      (let ((x0 (gsl_vector_get x 0))
-		    (x1 (gsl_vector_get x 1)))
-		(let ((y0 (- 1 x0))
-		      (y1 (* 10 (- x1 (* x0 x0)))))
-		  (gsl_vector_set f 0 y0)
-		  (gsl_vector_set f 1 y1)
-		  GSL_SUCCESS)))
-	    (gsl_vector_set x 0 -1.2)
-	    (gsl_vector_set x 1 1.0)
-	    (let ((s (gsl_multiroot_fsolver_alloc T 2)))
-	      (gsl_multiroot_fsolver_set s rosenb x)
+		  ((= i n))
+		(let ((xi (gsl_vector_get x i)))
+		  (gsl_matrix_set X i 0 1.0)
+		  (gsl_matrix_set X i 1 xi)))
+	      (dofit gsl_multifit_robust_ols X y c_ols cov)
+	      (dofit gsl_multifit_robust_bisquare X y c cov)
 	      (do ((i 0 (+ i 1)))
-		  ((= i 10))
-		(gsl_multiroot_fsolver_iterate s))
-	      (let ((residual (abs (gsl_vector_get (gsl_multiroot_fsolver_f s) 0))))
-		(gsl_multiroot_fsolver_free s)
-		(gsl_vector_free x)
-		(test residual 0.0))))
-	    
-	  ))))
+		  ((= i n))
+		(let ((xi (gsl_vector_get x i))
+		      (yi (gsl_vector_get y i))
+		      (y_ols (float-vector 0.0))
+		      (y_rob (float-vector 0.0))
+		      (y_err (float-vector 0.0)))
+		  (gsl_vector_set gv 0 (gsl_matrix_get X i 0))
+		  (gsl_vector_set gv 1 (gsl_matrix_get X i 1))
+		  (gsl_multifit_robust_est gv c cov (double* y_rob) (double* y_err))
+		  (gsl_multifit_robust_est gv c_ols cov (double* y_ols) (double* y_err))))
+	      (gsl_matrix_free X)
+	      (gsl_matrix_free cov)
+	      (gsl_vector_free x)
+	      (gsl_vector_free y)
+	      (gsl_vector_free c)
+	      (gsl_vector_free gv)
+	      (gsl_rng_free r))))
+	
+	(let ()
+	  (gsl_rng_env_setup)
+	  (let* ((T gsl_rng_default)
+		 (r (gsl_rng_alloc T))
+		 (x 0)
+		 (y 0)
+		 (dx (float-vector 0.0))
+		 (dy (float-vector 0.0)))
+	    (do ((i 0 (+ i 1)))
+		((= i 10))
+	      (gsl_ran_dir_2d r (double* dx) (double* dy))
+	      (set! x (+ x (dx 0)))
+	      (set! y (+ y (dy 0))))
+	    (gsl_rng_free r)))
+	
+	(let ((f_size 2)
+	      (T gsl_multimin_fminimizer_nmsimplex))
+	  (define (simple-abs x)
+	    (let ((u (gsl_vector_get x 0))
+		  (v (gsl_vector_get x 1)))
+	      (let ((a (- u 1))
+		    (b (- v 2)))
+		(+ (abs a) (abs b)))))
+	  (let ((x (gsl_vector_alloc f_size))
+		(step_size (gsl_vector_alloc f_size))
+		(s (gsl_multimin_fminimizer_alloc T 2)))
+	    (gsl_vector_set x 0 1.0)
+	    (gsl_vector_set x 1 2.0)
+	    (gsl_vector_set step_size 0 1)
+	    (gsl_vector_set step_size 1 1)
+	    (gsl_multimin_fminimizer_set s simple-abs x step_size)
+	    (do ((i 0 (+ i 1)))
+		((= i 10))
+	      (gsl_multimin_fminimizer_iterate s))
+	    (let ((result (abs (gsl_multimin_fminimizer_fval s))))
+	      (gsl_multimin_fminimizer_free s)
+	      (gsl_vector_free x)
+	      (gsl_vector_free step_size)
+	      (num-test result 0.0))))
+	
+	(let ((n 4)
+	      (x (float-vector 1970 1980 1990 2000))
+	      (y (float-vector 12 11 14 13))
+	      (w (float-vector 0.1 0.2 0.3 0.4))
+	      (c0 (float-vector 0.0))
+	      (c1 (float-vector 0.0))
+	      (cov00 (float-vector 0.0))
+	      (cov01 (float-vector 0.0))
+	      (cov11 (float-vector 0.0))
+	      (chisq (float-vector 0.0)))
+	  (gsl_fit_wlinear (double* x) 1 (double* w) 1 (double* y) 1 n
+			   (double* c0) (double* c1) (double* cov00) (double* cov01) (double* cov11) (double* chisq))
+	  (num-test (+ (c0 0) (c1 0)) -106.54))
+	
+	(let ((c (gsl_multiset_calloc 4 2)))
+	  (test (list (gsl_multiset_n c) (gsl_multiset_k c)) '(4 2)))
+	
+	(let ((x (gsl_vector_alloc 2))
+	      (factor 1.0)
+	      (T gsl_multiroot_fsolver_dnewton))
+	  (define (rosenb x f)
+	    (let ((x0 (gsl_vector_get x 0))
+		  (x1 (gsl_vector_get x 1)))
+	      (let ((y0 (- 1 x0))
+		    (y1 (* 10 (- x1 (* x0 x0)))))
+		(gsl_vector_set f 0 y0)
+		(gsl_vector_set f 1 y1)
+		GSL_SUCCESS)))
+	  (gsl_vector_set x 0 -1.2)
+	  (gsl_vector_set x 1 1.0)
+	  (let ((s (gsl_multiroot_fsolver_alloc T 2)))
+	    (gsl_multiroot_fsolver_set s rosenb x)
+	    (do ((i 0 (+ i 1)))
+		((= i 10))
+	      (gsl_multiroot_fsolver_iterate s))
+	    (let ((residual (abs (gsl_vector_get (gsl_multiroot_fsolver_f s) 0))))
+	      (gsl_multiroot_fsolver_free s)
+	      (gsl_vector_free x)
+	      (test residual 0.0))))
+	))))
 
 (test (defined? 'CLOCKS_PER_SEC (rootlet)) #f) ; autoloader can cause endless confusion here!
 
@@ -85281,64 +85003,65 @@ etc
 ;;; --------------------------------------------------------------------------------
 ;;; libgdbm
 
-(if (and (provided? 'linux)
-	 (provided? 'system-extras)
-	 (file-exists? "/usr/local/lib/libgdbm.a"))
-    (let ()
-      (require libgdbm.scm)
-      (when (and (defined? '*libgdbm*)
-		 (procedure? (*libgdbm* 'gdbm_store)))
-        (with-let (sublet *libgdbm*)
-	  (let ((gfile (gdbm_open "test.gdbm" 1024 GDBM_NEWDB #o664 (lambda (str) (format *stderr* "str: ~S~%" str)))))
-	    (gdbm_store gfile "1" "1234" GDBM_REPLACE)
-	    (gdbm_fetch gfile "1")
-	    (gdbm_close gfile))
-
-	  (define *db* 
-	    (openlet 
-	     (inlet :file (gdbm_open "test.gdbm" 1024 GDBM_NEWDB #o664 
-				     (lambda (str) (format *stderr* "gdbm error: ~S~%" str)))
-		    
-		    :let-ref-fallback (lambda (obj sym)
-					(with-input-from-string
-					    (gdbm_fetch (obj 'file) (symbol->string sym))
-					  (lambda () (eval (read)))))
-		    
-		    :let-set!-fallback (lambda (obj sym val)
-					 (gdbm_store (obj 'file)
-						     (symbol->string sym)
-						     (object->string val :readable)
-						     GDBM_REPLACE)
-					 val)
-		    
-		    :make-iterator (lambda (obj)
-				     (let ((key #f)
-					   (length (lambda (obj) (expt 2 20))))
-				       (#_make-iterator
-					(openlet 
-					 (let ((iterator? #t))
-					   (lambda ()
-					     (if key
-						 (set! key (gdbm_nextkey (obj 'file) (cdr key)))
-						 (set! key (gdbm_firstkey (obj 'file))))
-					     (if (pair? key)
-						 (cons (string->symbol (car key))
-						       (with-input-from-string
-							   (gdbm_fetch (obj 'file) (car key))
-							 (lambda () (eval (read)))))
-						 key))))))))))
-	  
-	  (set! (*db* 'str) "123") ; add a variable named 'hi with the value "123"
-	  (test (*db* 'str) "123")
-	  (set! (*db* 'int) 432)
-	  (test (*db* 'int) 432)
-	  (test (with-let *db* (+ int (length str))) 435)
-	  (test (let ((lst (map values *db*)))
-		  (or (equal? lst '((str . "123") (int . 432)))
-		      (equal? lst '((int . 432) (str . "123")))))
-		#t)
-	  
-	  (gdbm_close (*db* 'file))))))
+(when (and (provided? 'linux)
+	   (provided? 'system-extras)
+	   (file-exists? "/usr/local/lib/libgdbm.a"))
+  (let ()
+    (require libgdbm.scm)
+    (when (and (defined? '*libgdbm*)
+	       (procedure? (*libgdbm* 'gdbm_store)))
+      (with-let (sublet *libgdbm*)
+	(let ((gfile (gdbm_open "test.gdbm" 1024 GDBM_NEWDB #o664 (lambda (str) (format *stderr* "str: ~S~%" str)))))
+	  (gdbm_store gfile "1" "1234" GDBM_REPLACE)
+	  (gdbm_fetch gfile "1")
+	  (gdbm_close gfile))
+	
+	(define *db* 
+	  (openlet 
+	   (inlet :file (gdbm_open "test.gdbm" 1024 GDBM_NEWDB #o664 
+				   (lambda (str) (format *stderr* "gdbm error: ~S~%" str)))
+		  
+		  :let-ref-fallback (lambda (obj sym)
+				      (with-input-from-string
+					  (gdbm_fetch (obj 'file) (symbol->string sym))
+					(lambda () (eval (read)))))
+		  
+		  :let-set!-fallback (lambda (obj sym val)
+				       (gdbm_store (obj 'file)
+						   (symbol->string sym)
+						   (object->string val :readable)
+						   GDBM_REPLACE)
+				       val)
+		  
+		  :make-iterator (lambda (obj)
+				   (let ((key #f)
+					 (length (lambda (obj) (expt 2 20))))
+				     (#_make-iterator
+				      (openlet 
+				       (let ((iterator? #t))
+					 (lambda ()
+					   (if key
+					       (set! key (gdbm_nextkey (obj 'file) (cdr key)))
+					       (set! key (gdbm_firstkey (obj 'file))))
+					   (if (pair? key)
+					       (cons (string->symbol (car key))
+						     (with-input-from-string
+							 (gdbm_fetch (obj 'file) (car key))
+						       (lambda () (eval (read)))))
+					       key))))))))))
+	
+	(set! (*db* 'str) "123") ; add a variable named 'hi with the value "123"
+	(test (*db* 'str) "123")
+	(set! (*db* 'int) 432)
+	(test (*db* 'int) 432)
+	(test (with-let *db* (+ int (length str))) 435)
+	(test (let ((lst (map values *db*)))
+		(or (equal? lst '((str . "123") (int . 432)))
+		    (equal? lst '((int . 432) (str . "123")))))
+	      #t)
+	
+	(gdbm_close (*db* 'file))))))
+
 
 ;;; --------------------------------------------------------------------------------
 ;;; libutf8proc
@@ -85552,7 +85275,7 @@ etc
   (lint-test "(* 2.0 (inexact x))"      " *: perhaps (* 2.0 (inexact x)) -> (* 2.0 x)")
   (lint-test "(* (inexact x) 2.0)"      " *: perhaps (* (inexact x) 2.0) -> (* x 2.0)")
   (lint-test "(* (exp a) (exp b))"      " *: perhaps (* (exp a) (exp b)) -> (exp (+ a b))")
-  (lint-test "(* (sqrt x) (sqrt y))"    " *: perhaps (* (sqrt x) (sqrt y)) -> (sqrt (* x y))")
+  (lint-test "(* (sqrt x) (sqrt y))"    "") ; here we need to know that x and y are not negative
   (lint-test "(* (expt x z) (expt y z))" " *: perhaps (* (expt x z) (expt y z)) -> (expt (* x y) z)")
   (lint-test "(* (expt x z) (expt x y))" " *: perhaps (* (expt x z) (expt x y)) -> (expt x (+ z y))")
   (lint-test "(* 2.0 (random 1.0))"     " *: perhaps (* 2.0 (random 1.0)) -> (random 2.0)")
@@ -86546,6 +86269,8 @@ etc
   (lint-test "(cond (x (if x y z) (+ x 1)) (z 2))"             " cond: this could be omitted: (if x y z)")
   (lint-test "(cond ((g x) `(c ,x) `(c ,y)))"                  
 	     " cond: this could be omitted: ({list} 'c x)
+               cond: perhaps ({list} 'c x) -> (list 'c x)
+               cond: perhaps ({list} 'c y) -> (list 'c y)
                cond: perhaps (cond ((g x) ({list} 'c x) ({list} 'c y))) -> (when (g x) ({list} 'c x) ({list} 'c y))")
   (lint-test "(cond ((= x 1) 2) ((= x 2) 3))" " cond: perhaps use case instead of cond: (cond ((= x 1) 2) ((= x 2) 3)) -> (case x ((1) 2) ((2) 3))")
   (lint-test "(cond ((= x y) (begin (display x) y)) (else x))" " cond: redundant begin: (begin (display x) y)")
@@ -86837,6 +86562,10 @@ etc
   (lint-test "(cond ((f x) (display y) z) ((h x) (f x) (display y) z) (else z))" 
 	     " cond: perhaps (cond ((f x) (display y) z) ((h x) (f x) (display y) z) (else z)) ->
                 (begin (cond ((f x) (display y)) ((h x) (f x) (display y))) z)")
+  (lint-test "(let ((x 2)) (cond (A B) (C => (let ((y 4)) (lambda (n) (lambda (m) (+ n m x y)))))))" 
+	     " let: perhaps move the let into the '(C => (let ((y 4)) (lambda (n) (lambda (m) (+ n m x y))))) branch: 
+                (let ((x 2)) (cond (A B) (C => (let ((y 4)) (lambda (n) (lambda (m) (+ n m... ->
+                (cond ... (C => (let ((x 2)) (let ((y 4)) (lambda (n) (lambda (m) (+ n m x y)))))) ...)")
 	
   (lint-test "(when (and (< x 1) y) (if z (display z)))" 
 	     " when: perhaps (when (and (< x 1) y) (if z (display z))) -> (when (and (< x 1) y z) (display z))")
@@ -87152,6 +86881,15 @@ etc
   (lint-test "(define (g x) `(,e ,@(map f x)))" " g: perhaps ({list} e ({apply_values} (map f x))) -> (cons e (map f x))")
   (lint-test "(define (g x) `(f , at x , at y))" " g: perhaps ({list} 'f ({apply_values} x) ({apply_values} y)) -> (cons 'f (append x y))")
   (lint-test "(define (g x) `(display ,(map f x)))" " g: perhaps ({list} 'display (map f x)) -> (list 'display (map f x))")
+  (lint-test "(define-macro (g x) `(f ,x))" 
+	     " define-macro: perhaps (define-macro (g x) ({list} 'f x)) -> (define g f)
+               g: perhaps ({list} 'f x) -> (list 'f x)")
+  (lint-test "(define-macro (g x) `(, at x ,y))" " g: perhaps ({list} ({apply_values} x) y) -> (append x (list y))")
+  (lint-test "(define-macro (g x) `(, at x z))"  " g: perhaps ({list} ({apply_values} x) 'z) -> (append x (list 'z))")
+  (lint-test "(define-macro (g x) `(, at x ,(f y)))" " g: perhaps ({list} ({apply_values} x) (f y)) -> (append x (list (f y)))")
+  (lint-test "(define-macro (g x) `(+ ,y ,@(map f x)))" " g: perhaps ({list} '+ y ({apply_values} (map f x))) -> (cons '+ (cons y (map f x)))")
+  (lint-test "(define-macro (g x) `(, at x ,y , at z))" " g: perhaps ({list} ({apply_values} x) y ({apply_values} z)) -> (append x (cons y z))")
+  (lint-test "(define-macro (g x) `(, at x , at y ,z))" " g: perhaps ({list} ({apply_values} x) ({apply_values} y) z) -> (append x y (list z))")
 
   (lint-test "(sort! x abs)"		" sort!: abs is a questionable sort! function")
   (lint-test "(sort! x (lambda (a b) (< a b)))" " sort!: perhaps (lambda (a b) (< a b)) -> <")
@@ -87394,6 +87132,11 @@ etc
 	     " letrec: perhaps (letrec ((f0 (lambda () (if (> i 0) (f0))))) (f0)) -> (let f0 () (if (> i 0) (f0)))")
   (lint-test "(let ((a 0)) (display x) (set! a 2) (+ a 1))" 
 	     " let: perhaps change a's initial value to 2, and remove (set! a 2) in (let ((a 0)) (display x) (set! a 2) (+ a 1))")
+  (lint-test "(let ((x (string->number z))) (if (number? x) (g x)))" 
+	     " let: perhaps (let ((x (string->number z))) (if (number? x) (g x))) -> (cond ((string->number z) => g))")
+  (lint-test "(let ((x (memq a z))) (if (list? x) (g x)))" 
+	     " let: in (if (list? x) (g x)), x can't be null so pair? might be better
+               let: perhaps (let ((x (memq a z))) (if (list? x) (g x))) -> (cond ((memq a z) => g))")
 
   (lint-test "(let () (error 'oops \"an error\") #t)" 
 	     " let: let could be begin: (let () (error 'oops \"an error\") #t) -> (begin (error 'oops \"an error\") #t)
@@ -87834,6 +87577,10 @@ etc
   (lint-test "(begin (if (eq? x 'a) (display y)) (if (eqv? x 2) (f y)) (if (char=? x #\\3) (display z)) (f x))"
 	     " begin: perhaps (... (if (eq? x 'a) (display y)) (if (eqv? x 2) (f y)) ...) ->
                  (case x ((a) (display y)) ((2) (f y)) ((#\\3) (display z)))")
+  (lint-test "(let ((x 2)) (case y ((A) B) ((C D) => (lambda (m) (+ m x)))))" 
+	     " let: perhaps move the let into the '((C D) => (lambda (m) (+ m x))) branch: 
+                 (let ((x 2)) (case y ((A) B) ((C D) => (lambda (m) (+ m x))))) ->
+                 (case y ... ((C D) => (let ((x 2)) (lambda (m) (+ m x)))) ...)")
 
   (lint-test "(do ())"			" do: do is messed up:  (do ())")
   (lint-test "(do () ())"		" do: this do-loop could be replaced by (): (do () ())")
@@ -88920,10 +88667,10 @@ etc
   (lint-test "(list-ref (list-ref (list-ref (cadr x) (+ y 1)) (+ y 2)) (+ y 3))" 
 	     " list-ref: perhaps (list-ref (list-ref (list-ref (cadr x) (+ y 1)) (+ y 2)) (+ y 3)) ->  ((cadr x) (+ y 1) (+ y 2) (+ y 3))")
   (if (not pure-s7) (lint-test "(current-output-port 123)" " current-output-port: too many arguments: (current-output-port 123)"))
-  (lint-test "(copy (owlet))"		" copy: (copy (owlet)) could be (owlet): owlet is copied internally")
-  (lint-test "(gcd x '(asd))"		" gcd: in (gcd x '(asd)), gcd's argument 2 should be rational, but '(asd) is a list?")
+  (lint-test "(copy (owlet))" " copy: (copy (owlet)) could be (owlet): owlet is copied internally")
+  (lint-test "(gcd x '(asd))" " gcd: in (gcd x '(asd)), gcd's argument 2 should be rational, but '(asd) is a list?")
 
-  (lint-test "(string #\\null)"		"")
+  (lint-test "(string #\\null)"	"")
   (lint-test "(string (char->integer x))" " string: in (string (char->integer x)), string's argument should be a char, but (char->integer x) is an integer?")
   (lint-test "(string (string-ref x 0))" " string: perhaps (string (string-ref x 0)) -> (substring x 0 1)")
   (lint-test "(string (string-ref x 0) #\\a)" "")
@@ -89289,7 +89036,9 @@ etc
   (lint-test "(define-macro (m3) ''a)" 
 	     " define-macro: perhaps (define-macro (m3) ''a) -> (define m3 'a) or (define (m3) 'a)
                m3: returns a list constant: ''a")
-  (lint-test "(define-macro (m4 a) `(abs ,a))"   " define-macro: perhaps (define-macro (m4 a) ({list} 'abs a)) -> (define m4 abs)")
+  (lint-test "(define-macro (m4 a) `(abs ,a))"   
+	     " define-macro: perhaps (define-macro (m4 a) ({list} 'abs a)) -> (define m4 abs)
+               m4: perhaps ({list} 'abs a) -> (list 'abs a)")
   (lint-test "(define-macro (m5 a) `(log ,a 2))" " define-macro: perhaps (define-macro (m5 a) ({list} 'log a 2)) -> (define (m5 a) (log a 2))")
   (lint-test "(define-macro (m6 a) `(+ ,a ,a))" "")  ; here a might be (display 32) -- should happen twice
   (lint-test "(define-macro (m7 a b) `(set! ,a ,b))" " define-macro: perhaps (define-macro (m7 a b) ({list} 'set! a b)) -> (define m7 set!)")
@@ -90520,6 +90269,9 @@ etc
 
   (lint-test "(error 'error \"ERROR SOMEWHERE UP TO HERE\")" " error: There's no need to shout: (error 'error \"ERROR SOMEWHERE UP TO HERE\")")
   (lint-test "(display \"ERROR: oops\" port)" " display: There's no need to shout: (display \"ERROR: oops\" port)")
+  (lint-test "(throw 'oops \"throw: ~A~%\" x)" "")
+  (lint-test "(throw 'oops \"throw: ~A~%\" x y)" " throw: throw has too many arguments: (throw 'oops \"throw: ~A~%\" x y)")
+  (lint-test "(error 'oops \"error: ~A ~A~%\" x)" " error: error has too few arguments: (error 'oops \"error: ~A ~A~%\" x)")
 
   (lint-test "(define (f75) \"a string\")" " f75: returns a string constant: \"a string\"")
   (lint-test "(define (f75) #(0 1 2 3))"   " f75: returns a vector constant: #(0 1 2 3)")
@@ -90668,6 +90420,13 @@ etc
   (lint-test "(let ((x '(1 2 3))) (display (car x)) (display (x y)) (x 1))" " let: x could be a vector, rather than a list")
   (lint-test "(define (func x) (if (or x 1/0+i) 3))" " func: perhaps (or x nan+1i) -> (or x nan+1i)") ; infinite loop 
   (lint-test "(if (and x 1/0) 3)" " if: perhaps (and x nan.0) -> (and x nan.0)")
+  (lint-test "(cond ((number? x) 4) ((integer? x) 3) ((list? x) 0) ((pair? x) 1))"
+	     " cond: (number? x) makes (integer? x) pointless in (cond ((number? x) 4) ((integer? x) 3) ((list? x) 0) ((pair? x) 1))
+               cond: (list? x) makes (pair? x) pointless in (cond ((number? x) 4) ((integer? x) 3) ((list? x) 0) ((pair? x) 1))
+                  (r5rs list? is proper-list? in s7)")
+  (lint-test "(set! (symbol-access 'x) (lambda () 21))" " set!: symbol-access function should take 2 arguments: (set! (symbol-access 'x) (lambda () 21))")
+
+  ;; mainly aimed at lint internal checks
   (lint-test "(define (func x) (if (*  (call/cc (lambda (go) (go 9) 0))  '((1 (2)) (((3) 4)))  1(/  )) (iterator-sequence 1-)))" 
 	     " func: if test is never false: (if (* (call/cc (lambda (go) (go 9) 0)) '((1 (2)) (((3) 4))) 1 (/))...
                func: in (* (call/cc (lambda (go) (go 9) 0)) '((1 (2)) (((3) 4))) 1 (/)), *'s argument 2 should be a number, but '((1 (2)) (((3) 4))) is a list?
@@ -90675,6 +90434,161 @@ etc
                func: perhaps call/cc could be call-with-exit: (call/cc (lambda (go) (go 9) 0))
                func: (go 9) makes this pointless: 0
                func: / needs at least 1 argument: (/)")
+  (lint-test "(define (func x) (if (string-position -) (begin . 0) (hash-table* //(round))))" 
+	     " func: string-position needs at least 2 arguments: (string-position -)
+               func: in (string-position -), string-position's argument should be a string, but - is a procedure?
+               func: stray dot in begin? (begin . 0)
+               func: round needs 1 argument: (round)")
+  (lint-test "(define (func x) (if (string->symbol) (cond . 3/4)))" 
+	     " func: if test is never false: (if (string->symbol) (cond . 3/4))
+               func: string->symbol needs 1 argument: (string->symbol)
+               func: cond is messed up: (cond . 3/4)")
+  (lint-test "(define (func x) (if (expt 2) (cond 0 1/1.2 when . and)))" 
+	     " func: if test is never false: (if (expt 2) (cond 0 1/1.2 when . and))
+               func: expt needs 2 arguments: (expt 2)
+               func: cond is messed up: (cond 0 1/1.2 when . and)")
+  (lint-test "(define (func x) (if (imag-part (define-macro  `(((+ x 1))) '((x . 1) . 2) 1.2.3)) (cond (list 1 2) `(1) . =>)))" 
+	     " func: if test is never false: (if (imag-part (define-macro '(((+ x 1))) '((x . 1) . 2) 1.2.3)) (cond...
+               func: either a stray quote, or a real bad idea: (define-macro '(((+ x 1))) '((x . 1) . 2) 1.2.3)
+               quote: strange parameter for define-macro: (((+ x 1)))
+               quote: this could be omitted: '((x . 1) . 2)
+               func: cond is messed up: (cond (list 1 2) '(1) . =>)")
+  (lint-test "(define (func x) (if (inexact->exact /i-) (defined? +--) (cond . else)))" 
+	     " func: if test is never false: (if (inexact->exact /i-) (defined? +--) (cond . else))
+               func: cond is messed up: (cond . else)")
+  (lint-test "(define (func x) (if (let-set! /+0) (begin .(cdddar . and)) (port-line-number 2(exp 1))))" 
+	     " func: let-set! needs 3 arguments: (let-set! /+0)
+               func: stray dot in begin? (begin cdddar . and)
+               func: in (port-line-number 2 (exp 1)), port-line-number's argument 1 should be an input-port or null, but 2 is an integer?")
+  (lint-test "(define (func x) (if (char<? (vector (defined?))) (define-constant +(random-state->list -)) (hash-table? (define-macro* + (list ()) `(x 1) :hi 1+0/0i))))"
+	     " func: char<? needs at least 2 arguments: (char<? (vector (defined?)))
+               func: in (char<? (vector (defined?))), char<?'s argument should be a char, but (vector (defined?)) is a vector?
+               func: defined? needs at least 1 argument: (defined?)
+               +: in (random-state->list -),  random-state->list's argument should be a random-state, but - is a procedure?
+               func: + in (define-macro* + (list ()) '(x 1) :hi 1nani) is already a constant, defined (random-state->list -)
+               func: (define-macro* + (list ()) '(x 1) :hi 1nani) is messed up
+               func: + not used, initially: (random-state->list -) from define-constant")
+  (lint-test "(define (func x) (if (arity (apply +)) (caaadr /) (begin .. when `((x . 1)) . 0/0+0/0i)))" 
+	     " func: perhaps (apply +) -> (+)
+               func: in (caaadr /), caaadr's argument should be a pair, but / is a procedure?
+               func: stray dot in begin? (begin .. when ({list} ({append} ({list} 'x) 1)) . nannani)")
+  (lint-test "(define (func x) (if (even? (asinh .0)) (when (real?))))" 
+	     " func: perhaps (if (even? (asinh 0.0)) (when (real?))) -> (when (and (even? (asinh 0.0)) (real?)))
+               func: in (even? (asinh 0.0)), even?'s argument should be an integer, but (asinh 0.0) is a number?
+               func: perhaps (asinh 0.0) -> 0.0
+               func: when is messed up: (when (real?))")
+  (lint-test "(define (func x) (if (boolean?) (unless /)))" 
+	     " func: perhaps (if (boolean?) (unless /)) -> (when (and (boolean?) (not /)))
+               func: boolean? needs 1 argument: (boolean?)
+               func: unless is messed up: (unless /)")
+  (lint-test "(define (func x) (cond ((output-port? i) (char-numeric? /i(denominator))) (else (if +/ 1 . #f))))" 
+	     " func: char-numeric? has too many arguments: (char-numeric? /i (denominator))
+               func: denominator needs 1 argument: (denominator)
+               func: if has too few clauses: (if +/ 1 . #f)")
+  (lint-test "(define (func x) (do . unless))"  " func: do is messed up: (do . unless)")
+  (lint-test "(define (func x) (lambda* (lambda args args) . -1))"  " func: lambda* is messed up in (lambda* (lambda args args) . -1)")
+  (lint-test "(define (func x) (if (or . set!) (sublet 2)))" 
+	     " func: perhaps (if (or . set!) (sublet 2)) -> #<unspecified>
+               func: in (sublet 2), sublet's argument should be a let or null, but 2 is an integer?")
+  (lint-test "(define (func x) (if (or . 1+0/0i) (caaddr (caaadr /)))) (define (hi) (func (make-hook '(0 0 #f))))" 
+	     " func: perhaps (if (or . 1nani) (caaddr (caaadr /))) -> #<unspecified>
+               func: in (caaadr /), caaadr's argument should be a pair, but / is a procedure?
+               hi: func's parameter 1 is not used, but a value is passed: (make-hook '(0 0 #f))")
+  (lint-test "(define (func x) (case x ((else) (char>? 11/(symbol-access))) ((-1) (load - -1 3/4)) (else (positive? (format 0(inlet (make-list)))))))" 
+	     " func: symbol-access needs at least 1 argument: (symbol-access)
+               func: load has too many arguments: (load - -1 3/4)
+               func: in (load - -1 3/4), load's argument 1 should be a string, but - is a procedure?
+               func: in (load - -1 3/4), load's argument 2 should be a let, but -1 is an integer?
+               func: perhaps (- -1 3/4) -> -7/4
+               func: in (positive? (format 0 (inlet (make-list)))),
+                 positive?'s argument should be real, but (format 0 (inlet (make-list))) is a string or a boolean?
+               func: make-list needs at least 1 argument: (make-list)")
+  (lint-test "(define (func x) (if (- 2(+)) (lambda 1.)))" 
+	     " func: if test is never false: (if (- 2 (+)) (lambda 1.0))
+               func: perhaps (- 2 (+)) -> 2
+               func: lambda is messed up in (lambda 1.0)")
+  (lint-test "(define (func x) (when 0 1+0/0i `((+ x 1)) => . with-let))" " func: when is messed up: (when 0 1nani '((+ x 1)) => . with-let)")
+  (lint-test "(define (func x) (if (string-ci>=?) (dilambda? (char-numeric? 20+)) (* 1 enver quasiquote 0+0/0i /0/01(/))))" 
+	     " func: string-ci>=? needs at least 2 arguments: (string-ci>=?)
+               func: perhaps (string-ci>=?) -> (char-ci>=?)
+               func: (dilambda? (char-numeric? 20+)) is always #f
+               func: perhaps (* 1 enver quasiquote 0nani /0/01 (/)) -> (* enver quasiquote 0nani /0/01 (/))
+               func: / needs at least 1 argument: (/)")
+  (lint-test "(define (func x) (if (continuation?) (when (continuation? 0-2))))" 
+	     " func: perhaps (if (continuation?) (when (continuation? 0-2))) -> (when (and (continuation?) (continuation? 0-2)))
+               func: continuation? needs 1 argument: (continuation?)
+               func: when is messed up: (when (continuation? 0-2))")
+  (lint-test "(define (func x) (if (close-input-port) (caaddr /) (with-input-from-file 0(let (make-dilambda (lambda () 1) (lambda (a) a)) (set! i01+)))))" 
+	     " func: if test is never false: (if (close-input-port) (caaddr /) (with-input-from-file 0 (let...
+               func: close-input-port needs 1 argument: (close-input-port)
+               func: in (caaddr /), caaddr's argument should be a pair, but / is a procedure?
+               func: in (with-input-from-file 0 (let (make-dilambda (lambda () 1) (lambda (a) a))...,
+                   with-input-from-file's argument 1 should be a string, but 0 is an integer?
+               func: let binding is not a list? make-dilambda
+               func: let binding is messed up: (lambda () 1)
+               func: let binding is messed up: (lambda (a) a)
+               func: set! has too few arguments: (set! i01+)")
+  (lint-test "(define (func x) (cond ((byte-vector-ref) (iterator? 12.)) (else (unless .+2 '((x 1) y . 2) 1 - or case quote . __asdf__))))" 
+	     " func: cond test (byte-vector-ref) is never false: (cond ((byte-vector-ref) (iterator? 12.0)) (else (unless .+2 '((x 1) y ....
+               func: byte-vector-ref needs 2 arguments: (byte-vector-ref)
+               func: unless is messed up: (unless .+2 '((x 1) y . 2) 1 - or case quote . __asdf__)")
+  (lint-test "(define (func x) (lambda* .(lcm . do)))" " func: lambda* is messed up in (lambda* lcm . do)")
+  (lint-test "(define (func x) (let . `(((x 1))) ))" 
+	     " func: in (let quote (((x 1)))), lambda parameter '(x 1) is a pair (perhaps you want define* or lambda*?)
+               func: let variable is not a symbol? ((x 1))
+               func: let variable named quote is asking for trouble
+               func: quote not used, value: (let quote (((x 1))))")
+  (lint-test "(define (func x) (do . 1))" " func: do is messed up: (do . 1)")
+  (lint-test "(define (func x) (unless 1 (let ((x 3)) (lambda (y) (+ x y))) let* `(+ x 1) . \"\"))" 
+	     " func: unless is messed up: (unless 1 (let ((x 3)) (lambda (y) (+ x y))) let* '(+ x 1) . \"\")")
+  (lint-test "(define (func x) (when `((x)) when '((())) and . case))" " func: when is messed up: (when '((x)) when '((())) and . case)")
+  (lint-test "(define (func x) (do . 0)) (define (hi) (func (define-macro (_m1_ a) `(+ ,a 1)))) (hi)" 
+	     " func: do is messed up: (do . 0)
+               hi: func's parameter 1 is not used, but a value is passed: (define-macro (_m1_ a) ({list} '+ a 1))
+               hi: perhaps (define-macro (_m1_ a) ({list} '+ a 1)) -> (define (_m1_ a) (+ a 1))")
+  (lint-test "(define (func x) (unless .(atan . __asdf__)))" " func: unless is messed up: (unless atan . __asdf__)")
+  (lint-test "(define (func x) (floor (* +.(inexact->exact))))" " func: inexact->exact needs 1 argument: (inexact->exact)")
+  (lint-test "(define (func x) (if (proper-list? ) (and / when '((())) () begin) (call-with-input-string (stacktrace +0 -1 1 20100))))"
+	     " func: proper-list? needs 1 argument: (proper-list?)
+               func: call-with-input-string needs 2 arguments: (call-with-input-string (stacktrace 0 -1 1 20100))")
+  (lint-test "(define (func x) (if (ceiling (denominator)) (with-let .0+) (cdaadr (floor (random 0/0+0i inf.0)))))" 
+	     " func: if test is never false: (if (ceiling (denominator)) (with-let .0+) (cdaadr (floor (random nan.0...
+               func: denominator needs 1 argument: (denominator)
+               with-let: func is messed up: (with-let .0+)
+               func: in (cdaadr (floor (random nan.0 inf.0))), cdaadr's argument should be a pair, but (floor (random nan.0 inf.0)) is an integer?
+               func: in (random nan.0 inf.0), random's argument 2 should be a random-state, but inf.0 is real?")
+  (lint-test "(define (func x) (if (begin 2(caaar 2)) (make-list (unless +)) (char-upper-case? 0i2 0+1/0i `(((x 1))) (cons 1 2) (string (or / (let ((x 3)) (lambda (y) (+ x y))) . =>)))))" 
+	     " func: this could be omitted: 2
+               func: in (caaar 2), caaar's argument should be a pair, but 2 is an integer?
+               func: unless is messed up: (unless +)
+               func: char-upper-case? has too many arguments: (char-upper-case? 0i2 0nani '(((x 1))) (cons 1 2) (string (or / (let ((x...
+               func: missing quote? (or / (let ((x 3)) (lambda (y) (+ x y))) . =>) in (string (or / (let ((x 3)) (lambda (y) (+ x y))) . =>))")
+  (lint-test "(define (func x) (if (lambda*  +i  . begin  ) (symbol->value i-/)))" " func: lambda* is messed up in (lambda* +i . begin)")
+  (lint-test "(define (func x) (let . '((()))  ))"
+	     " func: in (let quote ((()))), lambda parameter '() is a constant
+               func: let variable is not a symbol? (())
+               func: let variable named quote is asking for trouble
+               func: quote not used, value: (let quote ((())))")
+  (lint-test "(define (func x) (if (defined? +) (when (string=?  +))))" 
+	     " func: perhaps (if (defined? +) (when (string=? +))) -> (when (and (defined? +) (string=? +)))
+               func: in (defined? +), defined?'s argument should be a symbol, but + is a procedure?
+               func: when is messed up: (when (string=? +))")
+  (lint-test "(define (func x) (if (asinh /(inexact?  1)) (cos (string-ci>? 1)) (int-vector 1(set! .--(cond .(char-alphabetic? .+))))))"
+	     " func: if test is never false: (if (asinh / (inexact? 1)) (cos (string-ci>? 1)) (int-vector 1 (set! .--...
+               func: asinh has too many arguments: (asinh / (inexact? 1))
+               func: in (asinh / (inexact? 1)), asinh's argument 1 should be a number, but / is a procedure?
+               func: in (cos (string-ci>? 1)), cos's argument should be a number, but (string-ci>? 1) is a boolean?
+               func: string-ci>? needs at least 2 arguments: (string-ci>? 1)
+               func: in (string-ci>? 1), string-ci>?'s argument should be a string, but 1 is an integer?
+               func: cond clause char-alphabetic? in (cond char-alphabetic? .+) is not a pair?
+               func: cond clause .+ in (cond char-alphabetic? .+) is not a pair?")
+  (lint-test "(define (func x) (if (help 11) (make-iterator (letrec* 2)) (byte-vector (case -(dilambda i let +i (list (list 1)) let . cons  )))))" 
+	     " func: perhaps (if (help 11) (make-iterator (letrec* 2)) (byte-vector (case - (dilambda i... ->
+               (byte-vector (case - (dilambda i let +i (list (list 1)) let . cons)))
+               func: in (make-iterator (letrec* 2)), make-iterator's argument should be a sequence, but 2 is an integer?
+               func: letrec* is messed up: (letrec* 2)
+               func: bad case key dilambda in (dilambda i let +i (list (list 1)) let . cons)
+               func: stray dot? (i let +i (list (list 1)) let . cons)")
 
   (when (provided? 'snd)
     (lint-test "(begin (cond ((find-sound \"test.snd\") => close-sound)) (display x))" "")
diff --git a/snd-fft.c b/snd-fft.c
index 90ce009..87021c7 100644
--- a/snd-fft.c
+++ b/snd-fft.c
@@ -2246,12 +2246,8 @@ static void init_xen_transform(void)
 static Xen g_integer_to_transform(Xen n)
 {
   #define H_integer_to_transform "(" S_integer_to_transform " n) returns a transform object corresponding to the given integer"
-  int type;
   Xen_check_type(Xen_is_integer(n), n, 1, S_integer_to_transform, "an integer");
-  type = Xen_integer_to_C_int(n);
-  if (is_transform(type))
-    return(new_xen_transform(type));
-  return(Xen_false);
+  return(new_xen_transform(Xen_integer_to_C_int(n)));
 }
 
 
diff --git a/snd-glistener.c b/snd-glistener.c
index 09359e5..bc35e59 100644
--- a/snd-glistener.c
+++ b/snd-glistener.c
@@ -828,7 +828,7 @@ leaves the lisp listener pane"
   mouse_enter_listener_hook = Xen_define_hook(S_mouse_enter_listener_hook, "(make-hook 'widget)", 1, H_mouse_enter_listener_hook);
   mouse_leave_listener_hook = Xen_define_hook(S_mouse_leave_listener_hook, "(make-hook 'widget)", 1, H_mouse_leave_listener_hook);
 
-  Xen_define_typed_procedure(S_listener_selection, g_listener_selection_w,       0, 0, 0, H_listener_selection,    s7_make_signature(s7, 1, s));
+  Xen_define_typed_procedure(S_listener_selection, g_listener_selection_w,       0, 0, 0, H_listener_selection,    s7_make_signature(s7, 1, s7_make_signature(s7, 2, s, b)));
   Xen_define_typed_procedure(S_reset_listener_cursor, g_reset_listener_cursor_w, 0, 0, 0, H_reset_listener_cursor, s7_make_signature(s7, 1, b));
   Xen_define_typed_procedure(S_goto_listener_end, g_goto_listener_end_w,         0, 0, 0, H_goto_listener_end,     s7_make_signature(s7, 1, b));
 
diff --git a/snd-gmenu.c b/snd-gmenu.c
index 79c4c22..4467088 100644
--- a/snd-gmenu.c
+++ b/snd-gmenu.c
@@ -973,7 +973,11 @@ void post_basic_popup_menu(void *e)
   if ((!sp) || (sp->nchans == 1))
     gtk_widget_hide(popup_play);
   else gtk_widget_show(popup_play);
+#if GTK_CHECK_VERSION(3, 22, 0)
+  gtk_menu_popup_at_pointer(GTK_MENU(basic_popup_menu), (const GdkEvent *)ev);
+#else
   gtk_menu_popup(GTK_MENU(basic_popup_menu), NULL, NULL, NULL, NULL, POPUP_BUTTON, EVENT_TIME(ev));
+#endif
 }
 
 
@@ -1140,7 +1144,11 @@ void post_selection_popup_menu(void *e)
       add_menu_item(selection_popup_menu, "Info",           NULL, (GCallback)popup_selection_info_callback);
     }
 
+#if GTK_CHECK_VERSION(3, 22, 0)
+  gtk_menu_popup_at_pointer(GTK_MENU(selection_popup_menu), (const GdkEvent *)ev);
+#else
   gtk_menu_popup(GTK_MENU(selection_popup_menu), NULL, NULL, NULL, NULL, POPUP_BUTTON, EVENT_TIME(ev));
+#endif
 }
 
 
@@ -1322,7 +1330,11 @@ void post_fft_popup_menu(void *e)
       add_menu_item(fft_popup_menu, "Peaks->fft.txt", NULL, (GCallback)popup_peaks_callback);
     }
 
+#if GTK_CHECK_VERSION(3, 22, 0)
+  gtk_menu_popup_at_pointer(GTK_MENU(fft_popup_menu), (const GdkEvent *)ev);
+#else
   gtk_menu_popup(GTK_MENU(fft_popup_menu), NULL, NULL, NULL, NULL, POPUP_BUTTON, EVENT_TIME(ev));
+#endif
 }
 
 
diff --git a/snd-gprefs.c b/snd-gprefs.c
index 3cbaa78..dad1dc4 100644
--- a/snd-gprefs.c
+++ b/snd-gprefs.c
@@ -1649,8 +1649,10 @@ widget_t make_preferences_dialog(void)
   /* gtk_container_set_border_width (GTK_CONTAINER(preferences_dialog), 10); */
   gtk_widget_realize(preferences_dialog);
 
+#if (!GTK_CHECK_VERSION(3, 22, 0))
   if ((STARTUP_WIDTH < gdk_screen_width()) &&
       (STARTUP_HEIGHT < gdk_screen_height()))
+#endif
     gtk_window_resize(GTK_WINDOW(preferences_dialog), STARTUP_WIDTH, STARTUP_HEIGHT);
 
   help_button = gtk_dialog_add_button(GTK_DIALOG(preferences_dialog), "Help", GTK_RESPONSE_NONE);
diff --git a/snd-gsnd.c b/snd-gsnd.c
index fe0f746..c82a8b5 100644
--- a/snd-gsnd.c
+++ b/snd-gsnd.c
@@ -1587,7 +1587,7 @@ snd_info *add_sound_window(char *filename, read_only_t read_only, file_info *hdr
 	}
 
       PANE_BOX(sp) = gtk_vbox_new(false, 0);
-      gtk_paned_add1(GTK_PANED(SND_PANE(sp)), PANE_BOX(sp));
+      gtk_paned_pack1(GTK_PANED(SND_PANE(sp)), PANE_BOX(sp), false, false); /* not add1 as of gtk 3.18.9 (Tito Latini) */
       gtk_widget_show(PANE_BOX(sp));
 
       NAME_HBOX(sp) = gtk_hbox_new(false, 0);
diff --git a/snd-main.c b/snd-main.c
index be17b68..aff00c5 100644
--- a/snd-main.c
+++ b/snd-main.c
@@ -1705,7 +1705,7 @@ static int snd_screen_height(void)
 #if USE_MOTIF
   return(HeightOfScreen(ScreenOfDisplay(MAIN_DISPLAY(ss), 0)));
 #else
-#if USE_GTK
+#if (USE_GTK) && (!GTK_CHECK_VERSION(3, 22, 0))
   return(gdk_screen_height());
 #else
   return(4000);
@@ -1719,7 +1719,7 @@ static int snd_screen_width(void)
 #if USE_MOTIF
   return(WidthOfScreen(ScreenOfDisplay(MAIN_DISPLAY(ss), 0)));
 #else
-#if USE_GTK
+#if (USE_GTK) && (!GTK_CHECK_VERSION(3, 22, 0))
   return(gdk_screen_width());
 #else
   return(4000);
diff --git a/snd-test.scm b/snd-test.scm
index b6e13ec..3aeea7d 100644
--- a/snd-test.scm
+++ b/snd-test.scm
@@ -71,7 +71,7 @@
 (define test-number -1)
 
 (define-expansion (snd-display . args)
-  `(format *stderr* "~%~A: ~8T~A" ,(port-line-number) (format #f , at args)))
+  `(format *stderr* "~%~A: ~8T;~A" ,(port-line-number) (format #f , at args)))
 
 (define-expansion (check-edit-tree tree vals name)
   `(check-edit-tree-1 ,tree ,vals ,name ,(port-line-number)))
@@ -80,7 +80,7 @@
 (define big-file-name "/home/bil/zap/sounds/bigger.snd")
 (when with-big-file 
   (set! with-big-file (file-exists? big-file-name))
-  (if (not with-big-file) (snd-display ";no big file")))
+  (if (not with-big-file) (snd-display "no big file")))
 (define big-file-framples 0)
 
 (define original-save-dir (or *save-dir* "~/zap/snd"))
@@ -119,7 +119,7 @@
   (set! sf-dir "/sf")
   (set! sf-dir1 (string-append home-dir sf-dir "/"))
   (unless (file-exists? (string-append sf-dir1 "alaw.wav"))
-    (snd-display ";;;can't find sf directory!")
+    (snd-display "can't find sf directory!")
     (set! sf-dir1 #f)))
 (set! sf-dir sf-dir1)
 
@@ -254,12 +254,12 @@
     (lambda* (snd chn edpos)
       (catch #t
 	(lambda () (display-edits snd chn edpos))
-	(lambda args (snd-display ";display-edits error: ~A" args))))))
+	(lambda args (snd-display "display-edits error: ~A" args))))))
 
 (define timings (make-vector (+ total-tests 1) 0))
 (define default-srate *clm-srate*)
 
-(snd-display ";;~A" (snd-version))
+(snd-display "~A" (snd-version))
 (if (not (defined? 'before-test-hook)) (define before-test-hook (make-hook 'n)))
 (if (not (defined? 'after-test-hook)) (define after-test-hook (make-hook 'n)))
 (set! (hook-functions before-test-hook) ())
@@ -272,7 +272,7 @@
 				(set! test-number n)
 				(if (> (length timings) n)
 				    (set! (timings n) (real-time)))
-				(snd-display ";test ~D" n))))
+				(snd-display "test ~D" n))))
 
 (define (clear-save-state-files)
   (for-each forget-region (regions))
@@ -291,16 +291,16 @@
 	       (clear-listener)
 	       (set! *ask-about-unsaved-edits* #f)
 	       (when (pair? (sounds))
-		 (snd-display ";end test ~D: open sounds: ~A" n (map short-file-name (sounds)))
+		 (snd-display "end test ~D: open sounds: ~A" n (map short-file-name (sounds)))
 		 (for-each close-sound (sounds)))
 	       (if (number? (vector-ref timings n))
 		   (set! (timings n) (hundred (- (real-time) (vector-ref timings n))))))))
 
 (define overall-start-time (real-time))
-(snd-display ";~A~%" (strftime "%d-%b %H:%M %Z" (localtime (current-time))))
+(snd-display "~A~%" (strftime "%d-%b %H:%M %Z" (localtime (current-time))))
 
 (define (log-mem tst) 
-  (if (> tests 1) (snd-display ";test ~D:~D " test-number (+ 1 tst))))
+  (if (> tests 1) (snd-display "test ~D:~D " test-number (+ 1 tst))))
 
 (define-macro (without-errors . func)
   `(catch #t ; but this also squelches syntax errors!
@@ -347,9 +347,9 @@
   (let ((arg (script-arg))
 	(args (script-args)))
     (if (not (string=? (args (- arg 1)) "-l")) 
-	(snd-display ";script-args[~A]: ~A (~A)?" (- arg 1) (args (- arg 1)) args))
+	(snd-display "script-args[~A]: ~A (~A)?" (- arg 1) (args (- arg 1)) args))
     (if (not (string=? (args arg) "snd-test")) 
-	(snd-display ";script-args[~A]: ~A (~A)?" arg (args arg) args))
+	(snd-display "script-args[~A]: ~A (~A)?" arg (args arg) args))
     (when (> (length args) (+ 1 arg))
       ;; test-number tests
       (set! snd-test (string->number (args (+ 1 arg))))
@@ -380,7 +380,7 @@
 	    (lambda (lst)
 	      (when (pair? lst)
 		(if (not (= (cadr lst) (caddr lst)))
-		    (snd-display ";~A is not ~A (~A)~%"
+		    (snd-display "~A is not ~A (~A)~%"
 				 (car lst) (cadr lst) (caddr lst)))
 		(test-constants (cdddr lst))))))
     
@@ -388,7 +388,7 @@
 	    (pair? (mixes))
 	    (pair? (marks))
 	    (pair? (regions)))
-	(snd-display ";start up: ~A ~A ~A ~A" (sounds) (mixes) (marks) (regions)))
+	(snd-display "start up: ~A ~A ~A ~A" (sounds) (mixes) (marks) (regions)))
     (test-constants
      (list
       'enved-amplitude enved-amplitude 0 
@@ -543,473 +543,473 @@
       ))
     
     (if (not (equal? *region-graph-style* graph-lines))
-	(snd-display ";region-graph-style set default: ~A" *region-graph-style*))
+	(snd-display "region-graph-style set default: ~A" *region-graph-style*))
     (if *ask-about-unsaved-edits*
-	(snd-display ";ask-about-unsaved-edits set default: ~A" *ask-about-unsaved-edits*))
+	(snd-display "ask-about-unsaved-edits set default: ~A" *ask-about-unsaved-edits*))
     (if (not (boolean? *show-full-duration*))
-	(snd-display ";show-full-duration set default: ~A" *show-full-duration*))
+	(snd-display "show-full-duration set default: ~A" *show-full-duration*))
     (if *show-full-range*
-	(snd-display ";show-full-range set default: ~A" *show-full-range*))
+	(snd-display "show-full-range set default: ~A" *show-full-range*))
     (if (fneq *initial-beg* 0.0)
-	(snd-display ";initial-beg set default: ~A" *initial-beg*))
+	(snd-display "initial-beg set default: ~A" *initial-beg*))
     (if (fneq *initial-dur* 0.1)
-	(snd-display ";initial-dur set default: ~A" *initial-dur*))
+	(snd-display "initial-dur set default: ~A" *initial-dur*))
     (if *ask-before-overwrite*
-	(snd-display ";ask-before-overwrite set default: ~A" *ask-before-overwrite*))
+	(snd-display "ask-before-overwrite set default: ~A" *ask-before-overwrite*))
     (if (not *auto-resize*)
-	(snd-display ";auto-resize set default: ~A" *auto-resize*))
+	(snd-display "auto-resize set default: ~A" *auto-resize*))
     (if *auto-update*
-	(snd-display ";auto-update set default: ~A" *auto-update*))
+	(snd-display "auto-update set default: ~A" *auto-update*))
     (if (not (eqv? *channel-style* 1)) 
-	(snd-display ";channel-style set default: ~A" *channel-style*))
+	(snd-display "channel-style set default: ~A" *channel-style*))
     (if (and (fneq *color-cutoff* 0.003) (fneq *color-cutoff* 0.001))
-	(snd-display ";color-cutoff set default: ~A" *color-cutoff*))
+	(snd-display "color-cutoff set default: ~A" *color-cutoff*))
     (if (not *color-inverted*)
-	(snd-display ";color-inverted set default: ~A" *color-inverted*))
+	(snd-display "color-inverted set default: ~A" *color-inverted*))
     (if (fneq *color-scale* 1.0)
-	(snd-display ";color-scale set default: ~A" *color-scale*))
+	(snd-display "color-scale set default: ~A" *color-scale*))
     (if (fneq *auto-update-interval* 60.0)
-	(snd-display ";auto-update-interval set default: ~A" *auto-update-interval*))
+	(snd-display "auto-update-interval set default: ~A" *auto-update-interval*))
     (if (fneq *cursor-update-interval* 0.05)
-	(snd-display ";cursor-update-interval set default: ~A" *cursor-update-interval*))
+	(snd-display "cursor-update-interval set default: ~A" *cursor-update-interval*))
     (if (not (= *cursor-location-offset* 0))
-	(snd-display ";cursor-location-offset set default: ~A" *cursor-location-offset*))
+	(snd-display "cursor-location-offset set default: ~A" *cursor-location-offset*))
     (if (not *dac-combines-channels*)
-	(snd-display ";dac-combines-channels set default: ~A" *dac-combines-channels*))
+	(snd-display "dac-combines-channels set default: ~A" *dac-combines-channels*))
     (if (not (eqv? *dac-size* 256)) 
-	(snd-display ";dac-size set default: ~A" *dac-size*))
+	(snd-display "dac-size set default: ~A" *dac-size*))
     (if *clipping*
-	(snd-display ";clipping set default: ~A" *clipping*))
+	(snd-display "clipping set default: ~A" *clipping*))
     (if (not (eqv? *default-output-chans* 1)) 
-	(snd-display ";default-output-chans set default: ~A" *default-output-chans*))
+	(snd-display "default-output-chans set default: ~A" *default-output-chans*))
     (if (not (or (equal? *default-output-sample-type* mus-bdouble)
 		 (equal? *default-output-sample-type* mus-ldouble)))
-	(snd-display ";default-output-sample-type set default: ~A" *default-output-sample-type*))
+	(snd-display "default-output-sample-type set default: ~A" *default-output-sample-type*))
     (if (not (eqv? *default-output-srate* 44100)) 
-	(snd-display ";default-output-srate set default: ~A" *default-output-srate*))
+	(snd-display "default-output-srate set default: ~A" *default-output-srate*))
     (if (not (equal? *default-output-header-type* mus-next)) 
-	(snd-display ";default-output-header-type set default: ~A" *default-output-header-type*))
+	(snd-display "default-output-header-type set default: ~A" *default-output-header-type*))
     (if (not (eqv? *dot-size* 1)) 
-	(snd-display ";dot-size set default: ~A" *dot-size*))
+	(snd-display "dot-size set default: ~A" *dot-size*))
     (if (not (eqv? *cursor-size* 15)) 
-	(snd-display ";cursor-size set default: ~A" *cursor-size*))
+	(snd-display "cursor-size set default: ~A" *cursor-size*))
     (if (not (equal? *cursor-style* cursor-cross)) 
-	(snd-display ";cursor-style set default: ~A" *cursor-style*))
+	(snd-display "cursor-style set default: ~A" *cursor-style*))
     (if (not (equal? *tracking-cursor-style* cursor-line)) 
-	(snd-display ";tracking-cursor-style set default: ~A" *tracking-cursor-style*))
+	(snd-display "tracking-cursor-style set default: ~A" *tracking-cursor-style*))
     (if (fneq *enved-base* 1.0)
-	(snd-display ";enved-base set default: ~A" *enved-base*))
+	(snd-display "enved-base set default: ~A" *enved-base*))
     (if (not (enved-clip?))
-	(snd-display ";enved-clip? set default: ~A" (enved-clip?)))
+	(snd-display "enved-clip? set default: ~A" (enved-clip?)))
     (if (not (enved-filter))
-	(snd-display ";enved-filter set default: ~A" (enved-filter)))
+	(snd-display "enved-filter set default: ~A" (enved-filter)))
     (if (not (eqv? *enved-filter-order* 40)) 
-	(snd-display ";enved-filter-order set default: ~A" *enved-filter-order*))
+	(snd-display "enved-filter-order set default: ~A" *enved-filter-order*))
     (if (enved-in-dB)
-	(snd-display ";enved-in-dB set default: ~A" (enved-in-dB)))
+	(snd-display "enved-in-dB set default: ~A" (enved-in-dB)))
     (if (not (equal? *enved-style* envelope-linear)) 
-	(snd-display ";enved-style set default: ~A" *enved-style*))
+	(snd-display "enved-style set default: ~A" *enved-style*))
     (if (fneq *enved-power* 3.0)
-	(snd-display ";enved-power set default: ~A" *enved-power*))
+	(snd-display "enved-power set default: ~A" *enved-power*))
     (if (not (eqv? *enved-target* 0)) 
-	(snd-display ";enved-target set default: ~A" *enved-target*))
+	(snd-display "enved-target set default: ~A" *enved-target*))
     (if *enved-wave?*
-	(snd-display ";enved-wave? set default: ~A" *enved-wave?*))
+	(snd-display "enved-wave? set default: ~A" *enved-wave?*))
     (if (and with-gui
 	     (pair? (enved-envelope)))
-	(snd-display ";enved-envelope set default: ~A" (enved-envelope)))
+	(snd-display "enved-envelope set default: ~A" (enved-envelope)))
     (if (not (equal? *eps-file* "snd.eps")) 
-	(snd-display ";eps-file set default: ~A" *eps-file*))
+	(snd-display "eps-file set default: ~A" *eps-file*))
     (if (fneq *eps-bottom-margin* 0.0)
-	(snd-display ";eps-bottom-margin set default: ~A" *eps-bottom-margin*))
+	(snd-display "eps-bottom-margin set default: ~A" *eps-bottom-margin*))
     (if (fneq *eps-left-margin* 0.0)
-	(snd-display ";eps-left-margin set default: ~A" *eps-left-margin*))
+	(snd-display "eps-left-margin set default: ~A" *eps-left-margin*))
     (if (fneq *eps-size* 1.0)
-	(snd-display ";eps-size set default: ~A" *eps-size*))
+	(snd-display "eps-size set default: ~A" *eps-size*))
     (if (fneq *fft-window-alpha* 0.0)
-	(snd-display ";fft-window-alpha set default: ~A" *fft-window-alpha*))
+	(snd-display "fft-window-alpha set default: ~A" *fft-window-alpha*))
     (if (fneq *fft-window-beta* 0.0)
-	(snd-display ";fft-window-beta set default: ~A" *fft-window-beta*))
+	(snd-display "fft-window-beta set default: ~A" *fft-window-beta*))
     (if *fft-log-frequency*
-	(snd-display ";fft-log-frequency set default: ~A" *fft-log-frequency*))
+	(snd-display "fft-log-frequency set default: ~A" *fft-log-frequency*))
     (if *fft-log-magnitude*
-	(snd-display ";fft-log-magnitude set default: ~A" *fft-log-magnitude*))
+	(snd-display "fft-log-magnitude set default: ~A" *fft-log-magnitude*))
     (if *fft-with-phases*
-	(snd-display ";fft-with-phases set default: ~A" *fft-with-phases*))
+	(snd-display "fft-with-phases set default: ~A" *fft-with-phases*))
     (if (not (memv *transform-size* '(1024 4096)))
-	(snd-display ";transform-size set default: ~A" *transform-size*))
+	(snd-display "transform-size set default: ~A" *transform-size*))
     (if (not (equal? *transform-graph-type* graph-once))
-	(snd-display ";transform-graph-type set default: ~A" *transform-graph-type*))
+	(snd-display "transform-graph-type set default: ~A" *transform-graph-type*))
     (if (not (eqv? *fft-window* 6)) 
-	(snd-display ";fft-window set default: ~A" *fft-window*))
+	(snd-display "fft-window set default: ~A" *fft-window*))
     (if (not (eqv? *graph-cursor* 34)) 
-	(snd-display ";graph-cursor set default: ~A" *graph-cursor*))
+	(snd-display "graph-cursor set default: ~A" *graph-cursor*))
     (if (not (equal? *graph-style* graph-lines)) 
-	(snd-display ";graph-style set default: ~A" *graph-style*))
+	(snd-display "graph-style set default: ~A" *graph-style*))
     (if (not *graphs-horizontal*)
-	(snd-display ";graphs-horizontal set default: ~A" *graphs-horizontal*))
+	(snd-display "graphs-horizontal set default: ~A" *graphs-horizontal*))
     (if (not (equal? *html-dir* ".")) 
-	(snd-display ";html-dir set default: ~A" *html-dir*))
+	(snd-display "html-dir set default: ~A" *html-dir*))
     (if (not (equal? *html-program* "firefox")) 
-	(snd-display ";html-program set default: ~A" *html-program*))
+	(snd-display "html-program set default: ~A" *html-program*))
     (if (not *just-sounds*) 
-	(snd-display ";just-sounds set default: ~A" *just-sounds*))
+	(snd-display "just-sounds set default: ~A" *just-sounds*))
     (if (not (string? *listener-prompt*)) 
-	(snd-display ";listener-prompt set default: ~A" *listener-prompt*))
+	(snd-display "listener-prompt set default: ~A" *listener-prompt*))
     (if (not (string? *stdin-prompt*)) 
-	(snd-display ";stdin-prompt set default: ~A" *stdin-prompt*))
+	(snd-display "stdin-prompt set default: ~A" *stdin-prompt*))
     (unless (eqv? *max-transform-peaks* 100)
-      (snd-display ";max-transform-peaks set default: ~A" *max-transform-peaks*))
+      (snd-display "max-transform-peaks set default: ~A" *max-transform-peaks*))
     (if (not (eqv? *max-regions* 16)) 
-	(snd-display ";max-regions set default: ~A" *max-regions*))
+	(snd-display "max-regions set default: ~A" *max-regions*))
     (if (fneq *min-dB* -60.0)
-	(snd-display ";min-dB set default: ~A" *min-dB*))
+	(snd-display "min-dB set default: ~A" *min-dB*))
     (if (fneq *log-freq-start* 32.0)
-	(snd-display ";log-freq-start set default: ~A" *log-freq-start*))
+	(snd-display "log-freq-start set default: ~A" *log-freq-start*))
     (if (not *selection-creates-region*) 
-	(snd-display ";selection-creates-region set default: ~A" *selection-creates-region*))
+	(snd-display "selection-creates-region set default: ~A" *selection-creates-region*))
     (if (not (equal? *transform-normalization* normalize-by-channel)) 
-	(snd-display ";transform-normalization set default: ~A" *transform-normalization*))
+	(snd-display "transform-normalization set default: ~A" *transform-normalization*))
 
     (if (and with-motif 
 	     (not (eqv? (view-files-sort) 0))) 
-	(snd-display ";view-files-sort set default: ~A" (view-files-sort)))
+	(snd-display "view-files-sort set default: ~A" (view-files-sort)))
 
     (if (not (memv *print-length* '(12 32)))
-	(snd-display ";print-length set default: ~A" *print-length*))
+	(snd-display "print-length set default: ~A" *print-length*))
     (if (not (eqv? *play-arrow-size* 10)) 
-	(snd-display ";play-arrow-size set default: ~A" *play-arrow-size*))
+	(snd-display "play-arrow-size set default: ~A" *play-arrow-size*))
     (if (not (equal? *save-state-file* "saved-snd.scm")) 
-	(snd-display ";save-state-file set default: ~A" *save-state-file*))
+	(snd-display "save-state-file set default: ~A" *save-state-file*))
     (if (not (eqv? *show-axes* 1)) 
-	(snd-display ";show-axes set default: ~A" *show-axes*))
+	(snd-display "show-axes set default: ~A" *show-axes*))
     (if (not (boolean? *show-transform-peaks*)) 
-	(snd-display ";show-transform-peaks set default: ~A" *show-transform-peaks*))
+	(snd-display "show-transform-peaks set default: ~A" *show-transform-peaks*))
     (if (not (boolean? *show-indices*)) 
-	(snd-display ";show-indices set default: ~A" *show-indices*))
+	(snd-display "show-indices set default: ~A" *show-indices*))
     (if (not *show-marks*)
-	(snd-display ";show-marks set default: ~A" *show-marks*))
+	(snd-display "show-marks set default: ~A" *show-marks*))
     (if (not *show-mix-waveforms*) 
-	(snd-display ";show-mix-waveforms set default: ~A" *show-mix-waveforms*))
+	(snd-display "show-mix-waveforms set default: ~A" *show-mix-waveforms*))
     (if *show-selection-transform*
-	(snd-display ";show-selection-transform set default: ~A" *show-selection-transform*))
+	(snd-display "show-selection-transform set default: ~A" *show-selection-transform*))
     (if *show-y-zero*
-	(snd-display ";show-y-zero set default: ~A" *show-y-zero*))
+	(snd-display "show-y-zero set default: ~A" *show-y-zero*))
     (if *show-grid*
-	(snd-display ";show-grid set default: ~A" *show-grid*))
+	(snd-display "show-grid set default: ~A" *show-grid*))
     (if (fneq *grid-density* 1.0)
-	(snd-display ";grid-density set default: ~A" *grid-density*))
+	(snd-display "grid-density set default: ~A" *grid-density*))
     (if *show-sonogram-cursor* 
-	(snd-display ";show-sonogram-cursor set default: ~A" *show-sonogram-cursor*))
+	(snd-display "show-sonogram-cursor set default: ~A" *show-sonogram-cursor*))
     (if (not (eqv? *sinc-width* 10)) 
-	(snd-display ";sinc-width set default: ~A" *sinc-width*))
+	(snd-display "sinc-width set default: ~A" *sinc-width*))
     (if (fneq *spectrum-end* 1.0)
-	(snd-display ";spectrum-end set default: ~A" *spectrum-end*))
+	(snd-display "spectrum-end set default: ~A" *spectrum-end*))
     (if (not (eqv? *spectro-hop* 4)) 
-	(snd-display ";spectro-hop set default: ~A" *spectro-hop*))
+	(snd-display "spectro-hop set default: ~A" *spectro-hop*))
     (if (fneq *spectrum-start* 0.0)
-	(snd-display ";spectrum-start set default: ~A" *spectrum-start*))
+	(snd-display "spectrum-start set default: ~A" *spectrum-start*))
     (if (fneq *spectro-x-angle* (if (provided? 'gl) 300.0 90.0))
-	(snd-display ";spectro-x-angle set default: ~A" *spectro-x-angle*))
+	(snd-display "spectro-x-angle set default: ~A" *spectro-x-angle*))
     (if (fneq *spectro-x-scale* (if (provided? 'gl) 1.5 1.0))
-	(snd-display ";spectro-x-scale set default: ~A" *spectro-x-scale*))
+	(snd-display "spectro-x-scale set default: ~A" *spectro-x-scale*))
     (if (fneq *spectro-y-angle* (if (provided? 'gl) 320.0 0.0))
-	(snd-display ";spectro-y-angle set default: ~A" *spectro-y-angle*))
+	(snd-display "spectro-y-angle set default: ~A" *spectro-y-angle*))
     (if (fneq *spectro-y-scale* 1.0)
-	(snd-display ";spectro-y-scale set default: ~A" *spectro-y-scale*))
+	(snd-display "spectro-y-scale set default: ~A" *spectro-y-scale*))
     (if (fneq *spectro-z-angle* (if (provided? 'gl) 0.0 358.0))
-	(snd-display ";spectro-z-angle set default: ~A" *spectro-z-angle*))
+	(snd-display "spectro-z-angle set default: ~A" *spectro-z-angle*))
     (if (fneq *spectro-z-scale* (if (provided? 'gl) 1.0 0.1))
-	(snd-display ";spectro-z-scale set default: ~A" *spectro-z-scale*))
+	(snd-display "spectro-z-scale set default: ~A" *spectro-z-scale*))
     (if (and *temp-dir* (not (equal? *temp-dir* "/home/bil/zap/tmp")))
-	(snd-display ";temp-dir set default: ~A" *temp-dir*))
+	(snd-display "temp-dir set default: ~A" *temp-dir*))
     (if (not (equal? *ladspa-dir* "")) 
-	(snd-display ";ladspa-dir set default: ~A" *ladspa-dir*))
+	(snd-display "ladspa-dir set default: ~A" *ladspa-dir*))
     (if (and *peak-env-dir* (not (equal? *peak-env-dir* "/home/bil/peaks")))
-	(snd-display ";peak-env-dir set default: ~A" *peak-env-dir*))
+	(snd-display "peak-env-dir set default: ~A" *peak-env-dir*))
     (if (not (member *tiny-font* '("6x12" "Sans 8")))
-	(snd-display ";tiny-font set default: ~A" *tiny-font*))
+	(snd-display "tiny-font set default: ~A" *tiny-font*))
     (if (not (equal? *transform-type* fourier-transform)) 
-	(snd-display ";transform-type set default: ~A" *transform-type*))
+	(snd-display "transform-type set default: ~A" *transform-type*))
     (if (not (eq? *with-file-monitor* #t)) 
-	(snd-display ";with-file-monitor set default: ~A" *with-file-monitor*))
+	(snd-display "with-file-monitor set default: ~A" *with-file-monitor*))
     (if (not (eqv? *clm-table-size* 512)) 
-	(snd-display ";clm-table-size set default: ~A" *clm-table-size*))
+	(snd-display "clm-table-size set default: ~A" *clm-table-size*))
     (if (fneq *clm-default-frequency* 0.0)
-	(snd-display ";clm-default-frequency set default: ~A" *clm-default-frequency*))
+	(snd-display "clm-default-frequency set default: ~A" *clm-default-frequency*))
     (if (not (boolean? *with-verbose-cursor*)) 
-	(snd-display ";with-verbose-cursor set default: ~A" *with-verbose-cursor*))
+	(snd-display "with-verbose-cursor set default: ~A" *with-verbose-cursor*))
     (if (not (boolean? *with-inset-graph*))
-	(snd-display ";with-inset-graph set default: ~A" *with-inset-graph*))
+	(snd-display "with-inset-graph set default: ~A" *with-inset-graph*))
     (if (not *with-interrupts*)
-	(snd-display ";with-interrupts set default: ~A" *with-interrupts*))
+	(snd-display "with-interrupts set default: ~A" *with-interrupts*))
     (if *remember-sound-state*
-	(snd-display ";remember-sound-state set default: ~A" *remember-sound-state*))
+	(snd-display "remember-sound-state set default: ~A" *remember-sound-state*))
     (if *with-smpte-label*
-	(snd-display ";with-smpte-label set default: ~A" *with-smpte-label*))
+	(snd-display "with-smpte-label set default: ~A" *with-smpte-label*))
     (if (not (eq? *with-toolbar* (provided? 'snd-gtk)))
-	(snd-display ";with-toolbar set default: ~A" *with-toolbar*))
+	(snd-display "with-toolbar set default: ~A" *with-toolbar*))
     (if (not *with-tooltips*)
-	(snd-display ";with-tooltips set default: ~A" *with-tooltips*))
+	(snd-display "with-tooltips set default: ~A" *with-tooltips*))
     (if (not (boolean? *with-menu-icons*))
-	(snd-display ";with-menu-icons set default: ~A" *with-menu-icons*))
+	(snd-display "with-menu-icons set default: ~A" *with-menu-icons*))
     (if *save-as-dialog-src*
-	(snd-display ";save-as-dialog-src set default: ~A" *save-as-dialog-src*))
+	(snd-display "save-as-dialog-src set default: ~A" *save-as-dialog-src*))
     (if *save-as-dialog-auto-comment*
-	(snd-display ";save-as-dialog-auto-comment set default: ~A" *save-as-dialog-auto-comment*))
+	(snd-display "save-as-dialog-auto-comment set default: ~A" *save-as-dialog-auto-comment*))
     (if (not (boolean? *with-pointer-focus*)) 
-	(snd-display ";with-pointer-focus set default: ~A" *with-pointer-focus*))
+	(snd-display "with-pointer-focus set default: ~A" *with-pointer-focus*))
     (if (not (eqv? *wavelet-type* 0)) 
-	(snd-display ";wavelet-type set default: ~A" *wavelet-type*))
+	(snd-display "wavelet-type set default: ~A" *wavelet-type*))
     (if (not (equal? *time-graph-type* graph-once)) 
-	(snd-display ";time-graph-type set default: ~A" *time-graph-type*))
+	(snd-display "time-graph-type set default: ~A" *time-graph-type*))
     (if (not (eqv? *wavo-hop* 3)) 
-	(snd-display ";wavo-hop set default: ~A" *wavo-hop*))
+	(snd-display "wavo-hop set default: ~A" *wavo-hop*))
     (if (not (eqv? *wavo-trace* 64)) 
-	(snd-display ";wavo-trace set default: ~A" *wavo-trace*))
+	(snd-display "wavo-trace set default: ~A" *wavo-trace*))
     (if (not (eqv? *x-axis-style* 0)) 
-	(snd-display ";x-axis-style set default: ~A" *x-axis-style*))
+	(snd-display "x-axis-style set default: ~A" *x-axis-style*))
     (if (fneq *beats-per-minute* 60.0)
-	(snd-display ";beats-per-minute set default: ~A" *beats-per-minute*))
+	(snd-display "beats-per-minute set default: ~A" *beats-per-minute*))
     (if (not (= *beats-per-measure* 4))
-	(snd-display ";beats-per-measure set default: ~A" *beats-per-measure*))
+	(snd-display "beats-per-measure set default: ~A" *beats-per-measure*))
     (if (not (eqv? *zero-pad* 0)) 
-	(snd-display ";zero-pad set default: ~A" *zero-pad*))
+	(snd-display "zero-pad set default: ~A" *zero-pad*))
     (if (not (null? (zero-pad #t #t)))
-	(snd-display ";zero-pad #t: ~A" (zero-pad #t #t)))
+	(snd-display "zero-pad #t: ~A" (zero-pad #t #t)))
     (if (not (eqv? *zoom-focus-style* 2)) 
-	(snd-display ";zoom-focus-style set default: ~A" *zoom-focus-style*))
+	(snd-display "zoom-focus-style set default: ~A" *zoom-focus-style*))
     (if (not (equal? *sync-style* sync-by-sound)) 
-	(snd-display ";sync-style set default: ~A" *sync-style*))    
+	(snd-display "sync-style set default: ~A" *sync-style*))    
     (if (not (eqv? *mix-waveform-height* 20)) 
-	(snd-display ";mix-waveform-height set default: ~A" *mix-waveform-height*))
+	(snd-display "mix-waveform-height set default: ~A" *mix-waveform-height*))
     (if (not (eqv? *mix-tag-width* 6)) 
-	(snd-display ";mix-tag-width set default: ~A" *mix-tag-width*))
+	(snd-display "mix-tag-width set default: ~A" *mix-tag-width*))
     (if (not (eqv? *mix-tag-height* 14)) 
-	(snd-display ";mix-tag-height set default: ~A" *mix-tag-height*))
+	(snd-display "mix-tag-height set default: ~A" *mix-tag-height*))
     (if (not (eqv? *mark-tag-width* 10)) 
-	(snd-display ";mark-tag-width set default: ~A" *mark-tag-width*))
+	(snd-display "mark-tag-width set default: ~A" *mark-tag-width*))
     (if (not (eqv? *mark-tag-height* 4)) 
-	(snd-display ";mark-tag-height set default: ~A" *mark-tag-height*))
+	(snd-display "mark-tag-height set default: ~A" *mark-tag-height*))
 
     (if (not (equal? *region-graph-style* graph-lines))
-	(snd-display ";* region-graph-style set default: ~A" *region-graph-style*))
+	(snd-display "* region-graph-style set default: ~A" *region-graph-style*))
     (if *ask-about-unsaved-edits*
-	(snd-display ";* ask-about-unsaved-edits set default: ~A" *ask-about-unsaved-edits*))
+	(snd-display "* ask-about-unsaved-edits set default: ~A" *ask-about-unsaved-edits*))
     (if *show-full-range*
-	(snd-display ";* show-full-range set default: ~A" *show-full-range*))
+	(snd-display "* show-full-range set default: ~A" *show-full-range*))
     (if (fneq *initial-beg* 0.0)
-	(snd-display ";* initial-beg set default: ~A" *initial-beg*))
+	(snd-display "* initial-beg set default: ~A" *initial-beg*))
     (if (fneq *initial-dur* 0.1)
-	(snd-display ";* initial-dur set default: ~A" *initial-dur*))
+	(snd-display "* initial-dur set default: ~A" *initial-dur*))
     (if *ask-before-overwrite*
-	(snd-display ";* ask-before-overwrite set default: ~A" *ask-before-overwrite*))
+	(snd-display "* ask-before-overwrite set default: ~A" *ask-before-overwrite*))
     (if (not *auto-resize*) 
-	(snd-display ";* auto-resize set default: ~A" *auto-resize*))
+	(snd-display "* auto-resize set default: ~A" *auto-resize*))
     (if *auto-update*
-	(snd-display ";* auto-update set default: ~A" *auto-update*))
+	(snd-display "* auto-update set default: ~A" *auto-update*))
     (if (not (eqv? *channel-style* 1)) 
-	(snd-display ";* channel-style set default: ~A" *channel-style*))
+	(snd-display "* channel-style set default: ~A" *channel-style*))
     (if (and (fneq *color-cutoff* 0.003) (fneq *color-cutoff* 0.001))
-	(snd-display ";* color-cutoff set default: ~A" *color-cutoff*))
+	(snd-display "* color-cutoff set default: ~A" *color-cutoff*))
     (if (not (eq? *color-inverted* #t)) 
-	(snd-display ";* color-inverted set default: ~A" *color-inverted*))
+	(snd-display "* color-inverted set default: ~A" *color-inverted*))
     (if (fneq *color-scale* 1.0)
-	(snd-display ";* color-scale set default: ~A" *color-scale*))
+	(snd-display "* color-scale set default: ~A" *color-scale*))
     (if (fneq *auto-update-interval* 60.0)
-	(snd-display ";* auto-update-interval set default: ~A" *auto-update-interval*))
+	(snd-display "* auto-update-interval set default: ~A" *auto-update-interval*))
     (if (fneq *cursor-update-interval* 0.05)
-	(snd-display ";* cursor-update-interval set default: ~A" *cursor-update-interval*))
+	(snd-display "* cursor-update-interval set default: ~A" *cursor-update-interval*))
     (if (not (= *cursor-location-offset* 0))
-	(snd-display ";* cursor-location-offset set default: ~A" *cursor-location-offset*))
+	(snd-display "* cursor-location-offset set default: ~A" *cursor-location-offset*))
     (if (not (eq? *dac-combines-channels* #t)) 
-	(snd-display ";* dac-combines-channels set default: ~A" *dac-combines-channels*))
+	(snd-display "* dac-combines-channels set default: ~A" *dac-combines-channels*))
     (if (not (eqv? *dac-size* 256)) 
-	(snd-display ";* dac-size set default: ~A" *dac-size*))
+	(snd-display "* dac-size set default: ~A" *dac-size*))
     (if *clipping*
-	(snd-display ";* clipping set default: ~A" *clipping*))
+	(snd-display "* clipping set default: ~A" *clipping*))
     (if (not (eqv? *default-output-chans* 1)) 
-	(snd-display ";* default-output-chans set default: ~A" *default-output-chans*))
+	(snd-display "* default-output-chans set default: ~A" *default-output-chans*))
     (if (not (or (equal? *default-output-sample-type* mus-bdouble)
 		 (equal? *default-output-sample-type* mus-ldouble)))
-	(snd-display ";* default-output-sample-type set default: ~A" *default-output-sample-type*))
+	(snd-display "* default-output-sample-type set default: ~A" *default-output-sample-type*))
     (if (not (eqv? *default-output-srate* 44100)) 
-	(snd-display ";* default-output-srate set default: ~A" *default-output-srate*))
+	(snd-display "* default-output-srate set default: ~A" *default-output-srate*))
     (if (not (equal? *default-output-header-type* mus-next)) 
-	(snd-display ";* default-output-header-type set default: ~A" *default-output-header-type*))
+	(snd-display "* default-output-header-type set default: ~A" *default-output-header-type*))
     (if (not (eqv? *dot-size* 1)) 
-	(snd-display ";* dot-size set default: ~A" *dot-size*))
+	(snd-display "* dot-size set default: ~A" *dot-size*))
     (if (not (eqv? *cursor-size* 15)) 
-	(snd-display ";* cursor-size set default: ~A" *cursor-size*))
+	(snd-display "* cursor-size set default: ~A" *cursor-size*))
     (if (not (equal? *cursor-style* cursor-cross)) 
-	(snd-display ";* cursor-style set default: ~A" *cursor-style*))
+	(snd-display "* cursor-style set default: ~A" *cursor-style*))
     (if (not (equal? *tracking-cursor-style* cursor-line)) 
-	(snd-display ";* tracking-cursor-style set default: ~A" *tracking-cursor-style*))
+	(snd-display "* tracking-cursor-style set default: ~A" *tracking-cursor-style*))
     (if (fneq *enved-base* 1.0)
-	(snd-display ";* enved-base set default: ~A" *enved-base*))
+	(snd-display "* enved-base set default: ~A" *enved-base*))
     (if (not (eqv? *enved-filter-order* 40)) 
-	(snd-display ";* enved-filter-order set default: ~A" *enved-filter-order*))
+	(snd-display "* enved-filter-order set default: ~A" *enved-filter-order*))
     (if (not (equal? *enved-style* envelope-linear)) 
-	(snd-display ";* enved-style set default: ~A" *enved-style*))
+	(snd-display "* enved-style set default: ~A" *enved-style*))
     (if (fneq *enved-power* 3.0)
-	(snd-display ";* enved-power set default: ~A" *enved-power*))
+	(snd-display "* enved-power set default: ~A" *enved-power*))
     (if (not (eqv? *enved-target* 0)) 
-	(snd-display ";* enved-target set default: ~A" *enved-target*))
+	(snd-display "* enved-target set default: ~A" *enved-target*))
     (if *enved-wave?*
-	(snd-display ";* enved-wave? set default: ~A" *enved-wave?*))
+	(snd-display "* enved-wave? set default: ~A" *enved-wave?*))
     (if (not (equal? *eps-file* "snd.eps")) 
-	(snd-display ";* eps-file set default: ~A" *eps-file*))
+	(snd-display "* eps-file set default: ~A" *eps-file*))
     (if (fneq *eps-bottom-margin* 0.0)
-	(snd-display ";* eps-bottom-margin set default: ~A" *eps-bottom-margin*))
+	(snd-display "* eps-bottom-margin set default: ~A" *eps-bottom-margin*))
     (if (fneq *eps-left-margin* 0.0)
-	(snd-display ";* eps-left-margin set default: ~A" *eps-left-margin*))
+	(snd-display "* eps-left-margin set default: ~A" *eps-left-margin*))
     (if (fneq *eps-size* 1.0)
-	(snd-display ";* eps-size set default: ~A" *eps-size*))
+	(snd-display "* eps-size set default: ~A" *eps-size*))
     (if (fneq *fft-window-alpha* 0.0)
-	(snd-display ";* fft-window-alpha set default: ~A" *fft-window-alpha*))
+	(snd-display "* fft-window-alpha set default: ~A" *fft-window-alpha*))
     (if (fneq *fft-window-beta* 0.0)
-	(snd-display ";* fft-window-beta set default: ~A" *fft-window-beta*))
+	(snd-display "* fft-window-beta set default: ~A" *fft-window-beta*))
     (if *fft-log-frequency*
-	(snd-display ";* fft-log-frequency set default: ~A" *fft-log-frequency*))
+	(snd-display "* fft-log-frequency set default: ~A" *fft-log-frequency*))
     (if *fft-log-magnitude*
-	(snd-display ";* fft-log-magnitude set default: ~A" *fft-log-magnitude*))
+	(snd-display "* fft-log-magnitude set default: ~A" *fft-log-magnitude*))
     (if *fft-with-phases*
-	(snd-display ";* fft-with-phases set default: ~A" *fft-with-phases*))
+	(snd-display "* fft-with-phases set default: ~A" *fft-with-phases*))
     (if (not (memv *transform-size* '(1024 4096)))
-	(snd-display ";* transform-size set default: ~A" *transform-size*))
+	(snd-display "* transform-size set default: ~A" *transform-size*))
     (if (not (equal? *transform-graph-type* graph-once))
-	(snd-display ";* transform-graph-type set default: ~A" *transform-graph-type*))
+	(snd-display "* transform-graph-type set default: ~A" *transform-graph-type*))
     (if (not (eqv? *fft-window* 6)) 
-	(snd-display ";* fft-window set default: ~A" *fft-window*))
+	(snd-display "* fft-window set default: ~A" *fft-window*))
     (if (not (eqv? *graph-cursor* 34)) 
-	(snd-display ";* graph-cursor set default: ~A" *graph-cursor*))
+	(snd-display "* graph-cursor set default: ~A" *graph-cursor*))
     (if (not (equal? *graph-style* graph-lines)) 
-	(snd-display ";* graph-style set default: ~A" *graph-style*))
+	(snd-display "* graph-style set default: ~A" *graph-style*))
     (if (not *graphs-horizontal*) 
-	(snd-display ";* graphs-horizontal set default: ~A" *graphs-horizontal*))
+	(snd-display "* graphs-horizontal set default: ~A" *graphs-horizontal*))
     (if (not (equal? *html-dir* ".")) 
-	(snd-display ";* html-dir set default: ~A" *html-dir*))
+	(snd-display "* html-dir set default: ~A" *html-dir*))
     (if (not (equal? *html-program* "firefox")) 
-	(snd-display ";* html-program set default: ~A" *html-program*))
+	(snd-display "* html-program set default: ~A" *html-program*))
     (if (not *just-sounds*) 
-	(snd-display ";* just-sounds set default: ~A" *just-sounds*))
+	(snd-display "* just-sounds set default: ~A" *just-sounds*))
     (if (not (eqv? *max-transform-peaks* 100)) 
-	(snd-display ";* max-transform-peaks set default: ~A" *max-transform-peaks*))
+	(snd-display "* max-transform-peaks set default: ~A" *max-transform-peaks*))
     (if (not (eqv? *max-regions* 16)) 
-	(snd-display ";* max-regions set default: ~A" *max-regions*))
+	(snd-display "* max-regions set default: ~A" *max-regions*))
     (if (fneq *min-dB* -60.0)
-	(snd-display ";* min-dB set default: ~A" *min-dB*))
+	(snd-display "* min-dB set default: ~A" *min-dB*))
     (if (fneq *log-freq-start* 32.0)
-	(snd-display ";* log-freq-start set default: ~A" *log-freq-start*))
+	(snd-display "* log-freq-start set default: ~A" *log-freq-start*))
     (if (not (eq? *selection-creates-region* #t)) 
-	(snd-display ";* selection-creates-region set default: ~A" *selection-creates-region*))
+	(snd-display "* selection-creates-region set default: ~A" *selection-creates-region*))
     (if (not (equal? *transform-normalization* normalize-by-channel)) 
-	(snd-display ";* transform-normalization set default: ~A" *transform-normalization*))
+	(snd-display "* transform-normalization set default: ~A" *transform-normalization*))
 
     (if (and with-motif 
 	     (not (eqv? *view-files-sort* 0)))
-	(snd-display ";* view-files-sort set default: ~A" *view-files-sort*))
+	(snd-display "* view-files-sort set default: ~A" *view-files-sort*))
 
     (if (not (eqv? *play-arrow-size* 10)) 
-	(snd-display ";* play-arrow-size set default: ~A" *play-arrow-size*))
+	(snd-display "* play-arrow-size set default: ~A" *play-arrow-size*))
     (if (not (equal? *save-state-file* "saved-snd.scm")) 
-	(snd-display ";* save-state-file set default: ~A" *save-state-file*))
+	(snd-display "* save-state-file set default: ~A" *save-state-file*))
     (if (not (eqv? *show-axes* 1)) 
-	(snd-display ";* show-axes set default: ~A" *show-axes*))
+	(snd-display "* show-axes set default: ~A" *show-axes*))
     (if (not *show-marks*) 
-	(snd-display ";* show-marks set default: ~A" *show-marks*))
+	(snd-display "* show-marks set default: ~A" *show-marks*))
     (if (not *show-mix-waveforms*) 
-	(snd-display ";* show-mix-waveforms set default: ~A" *show-mix-waveforms*))
+	(snd-display "* show-mix-waveforms set default: ~A" *show-mix-waveforms*))
     (if *show-selection-transform*
-	(snd-display ";* show-selection-transform set default: ~A" *show-selection-transform*))
+	(snd-display "* show-selection-transform set default: ~A" *show-selection-transform*))
     (if *show-y-zero*
-	(snd-display ";* show-y-zero set default: ~A" *show-y-zero*))
+	(snd-display "* show-y-zero set default: ~A" *show-y-zero*))
     (if *show-grid*
-	(snd-display ";* show-grid set default: ~A" *show-grid*))
+	(snd-display "* show-grid set default: ~A" *show-grid*))
     (if (fneq *grid-density* 1.0)
-	(snd-display ";* grid-density set default: ~A" *grid-density*))
+	(snd-display "* grid-density set default: ~A" *grid-density*))
     (if *show-sonogram-cursor*
-	(snd-display ";* show-sonogram-cursor set default: ~A" *show-sonogram-cursor*))
+	(snd-display "* show-sonogram-cursor set default: ~A" *show-sonogram-cursor*))
     (if (not (eqv? *sinc-width* 10)) 
-	(snd-display ";* sinc-width set default: ~A" *sinc-width*))
+	(snd-display "* sinc-width set default: ~A" *sinc-width*))
     (if (fneq *spectrum-end* 1.0)
-	(snd-display ";* spectrum-end set default: ~A" *spectrum-end*))
+	(snd-display "* spectrum-end set default: ~A" *spectrum-end*))
     (if (not (eqv? *spectro-hop* 4)) 
-	(snd-display ";* spectro-hop set default: ~A" *spectro-hop*))
+	(snd-display "* spectro-hop set default: ~A" *spectro-hop*))
     (if (fneq *spectrum-start* 0.0)
-	(snd-display ";* spectrum-start set default: ~A" *spectrum-start*))
+	(snd-display "* spectrum-start set default: ~A" *spectrum-start*))
     (if (fneq *spectro-x-angle* (if (provided? 'gl) 300.0 90.0))
-	(snd-display ";* spectro-x-angle set default: ~A" *spectro-x-angle*))
+	(snd-display "* spectro-x-angle set default: ~A" *spectro-x-angle*))
     (if (fneq *spectro-x-scale* (if (provided? 'gl) 1.5 1.0))
-	(snd-display ";* spectro-x-scale set default: ~A" *spectro-x-scale*))
+	(snd-display "* spectro-x-scale set default: ~A" *spectro-x-scale*))
     (if (fneq *spectro-y-angle* (if (provided? 'gl) 320.0 0.0))
-	(snd-display ";* spectro-y-angle set default: ~A" *spectro-y-angle*))
+	(snd-display "* spectro-y-angle set default: ~A" *spectro-y-angle*))
     (if (fneq *spectro-y-scale* 1.0)
-	(snd-display ";* spectro-y-scale set default: ~A" *spectro-y-scale*))
+	(snd-display "* spectro-y-scale set default: ~A" *spectro-y-scale*))
     (if (fneq *spectro-z-angle* (if (provided? 'gl) 0.0 358.0))
-	(snd-display ";* spectro-z-angle set default: ~A" *spectro-z-angle*))
+	(snd-display "* spectro-z-angle set default: ~A" *spectro-z-angle*))
     (if (fneq *spectro-z-scale* (if (provided? 'gl) 1.0 0.1))
-	(snd-display ";* spectro-z-scale set default: ~A" *spectro-z-scale*))
+	(snd-display "* spectro-z-scale set default: ~A" *spectro-z-scale*))
     (if (not (member *tiny-font* '("6x12" "Sans 8")))
-	(snd-display ";* tiny-font set default: ~A" *tiny-font*))
+	(snd-display "* tiny-font set default: ~A" *tiny-font*))
     (if (not *with-file-monitor*) 
-	(snd-display ";* with-file-monitor set default: ~A" *with-file-monitor*))
+	(snd-display "* with-file-monitor set default: ~A" *with-file-monitor*))
     (if (not *with-interrupts*)
-	(snd-display ";* with-interrupts set default: ~A" *with-interrupts*))
+	(snd-display "* with-interrupts set default: ~A" *with-interrupts*))
     (if *remember-sound-state*
-	(snd-display ";* remember-sound-state set default: ~A" *remember-sound-state*))
+	(snd-display "* remember-sound-state set default: ~A" *remember-sound-state*))
     (if *with-smpte-label*
-	(snd-display ";* with-smpte-label set default: ~A" *with-smpte-label*))
+	(snd-display "* with-smpte-label set default: ~A" *with-smpte-label*))
     (if (not (eq? *with-toolbar* (provided? 'snd-gtk)))
-	(snd-display ";* with-toolbar set default: ~A" *with-toolbar*))
+	(snd-display "* with-toolbar set default: ~A" *with-toolbar*))
     (if (not *with-tooltips*)
-	(snd-display ";* with-tooltips set default: ~A" *with-tooltips*))
+	(snd-display "* with-tooltips set default: ~A" *with-tooltips*))
     (if *save-as-dialog-src*
-	(snd-display ";* save-as-dialog-src set default: ~A" *save-as-dialog-src*))
+	(snd-display "* save-as-dialog-src set default: ~A" *save-as-dialog-src*))
     (if *save-as-dialog-auto-comment*
-	(snd-display ";* save-as-dialog-auto-comment set default: ~A" *save-as-dialog-auto-comment*))
+	(snd-display "* save-as-dialog-auto-comment set default: ~A" *save-as-dialog-auto-comment*))
     (if (not (eqv? *wavelet-type* 0)) 
-	(snd-display ";* wavelet-type set default: ~A" *wavelet-type*))
+	(snd-display "* wavelet-type set default: ~A" *wavelet-type*))
     (if (not (equal? *time-graph-type* graph-once)) 
-	(snd-display ";* time-graph-type set default: ~A" *time-graph-type*))
+	(snd-display "* time-graph-type set default: ~A" *time-graph-type*))
     (if (not (eqv? *wavo-hop* 3)) 
-	(snd-display ";* wavo-hop set default: ~A" *wavo-hop*))
+	(snd-display "* wavo-hop set default: ~A" *wavo-hop*))
     (if (not (eqv? *wavo-trace* 64)) 
-	(snd-display ";* wavo-trace set default: ~A" *wavo-trace*))
+	(snd-display "* wavo-trace set default: ~A" *wavo-trace*))
     (if (not (eqv? *x-axis-style* 0)) 
-	(snd-display ";* x-axis-style set default: ~A" *x-axis-style*))
+	(snd-display "* x-axis-style set default: ~A" *x-axis-style*))
     (if (fneq *beats-per-minute* 60.0)
-	(snd-display ";* beats-per-minute set default: ~A" *beats-per-minute*))
+	(snd-display "* beats-per-minute set default: ~A" *beats-per-minute*))
     (if (not (= *beats-per-measure* 4))
-	(snd-display ";* beats-per-measure set default: ~A" *beats-per-measure*))
+	(snd-display "* beats-per-measure set default: ~A" *beats-per-measure*))
     (if (not (eqv? *zero-pad* 0)) 
-	(snd-display ";* zero-pad set default: ~A" *zero-pad*))
+	(snd-display "* zero-pad set default: ~A" *zero-pad*))
     (if (not (eqv? *zoom-focus-style* 2)) 
-	(snd-display ";* zoom-focus-style set default: ~A" *zoom-focus-style*))
+	(snd-display "* zoom-focus-style set default: ~A" *zoom-focus-style*))
     (if (not (equal? *sync-style* sync-by-sound)) 
-	(snd-display ";* sync-style set default: ~A" *sync-style*))    
+	(snd-display "* sync-style set default: ~A" *sync-style*))    
     (if (not (eqv? *mix-waveform-height* 20)) 
-	(snd-display ";* mix-waveform-height set default: ~A" *mix-waveform-height*))
+	(snd-display "* mix-waveform-height set default: ~A" *mix-waveform-height*))
     (if (not (eqv? *mix-tag-width* 6)) 
-	(snd-display ";* mix-tag-width set default: ~A" *mix-tag-width*))
+	(snd-display "* mix-tag-width set default: ~A" *mix-tag-width*))
     (if (not (eqv? *mix-tag-height* 14)) 
-	(snd-display ";* mix-tag-height set default: ~A" *mix-tag-height*))
+	(snd-display "* mix-tag-height set default: ~A" *mix-tag-height*))
     (if (not (eqv? *mark-tag-width* 10)) 
-	(snd-display ";* mark-tag-width set default: ~A" *mark-tag-width*))
+	(snd-display "* mark-tag-width set default: ~A" *mark-tag-width*))
     (if (not (eqv? *mark-tag-height* 4)) 
-	(snd-display ";* mark-tag-height set default: ~A" *mark-tag-height*))
+	(snd-display "* mark-tag-height set default: ~A" *mark-tag-height*))
 
     (if (and with-motif
 	     (not (= (view-files-sort) 0)))
-	(snd-display ";view-files-sort def: ~A" (view-files-sort)))
+	(snd-display "view-files-sort def: ~A" (view-files-sort)))
     
     (let-temporarily ((*mus-max-malloc* (expt 2 36)))
       (if (not (= *mus-max-malloc* (expt 2 36)))
-	  (snd-display ";mus-max-malloc as bignum: ~A" *mus-max-malloc*)))
+	  (snd-display "mus-max-malloc as bignum: ~A" *mus-max-malloc*)))
     
     (let-temporarily ((*mus-max-table-size* (expt 2 36)))
       (if (not (= *mus-max-table-size* (expt 2 36)))
-	  (snd-display ";mus-max-table-size as bignum: ~A" *mus-max-table-size*)))
+	  (snd-display "mus-max-table-size as bignum: ~A" *mus-max-table-size*)))
     
     (if (not (provided? 'snd-gtk))
 	(for-each
@@ -1018,7 +1018,7 @@
 	     (set! (func) "8x123")
 	     (if (not (and (string? (func))
 			   (string=? val (func))))
-		 (snd-display ";set ~A to bogus value: ~A ~A" name val (func)))))
+		 (snd-display "set ~A to bogus value: ~A ~A" name val (func)))))
 	 (list axis-label-font axis-numbers-font tiny-font peaks-font bold-peaks-font)
 	 '(axis-label-font axis-numbers-font tiny-font peaks-font bold-peaks-font)))
 
@@ -1062,7 +1062,7 @@
 			   (or (not (number? (caddr lst)))
 			       (rational? (caddr lst))
 			       (fneq (cadr lst) (caddr lst)))) ; right! not my fault!
-		      (snd-display ";~A is not ~A (~A)" (car lst) (caddr lst) (cadr lst)))
+		      (snd-display "~A is not ~A (~A)" (car lst) (caddr lst) (cadr lst)))
 		  (test-defaults (cdddr lst))))))
       
       (for-each close-sound (sounds)) ; in case others opened elsewhere
@@ -1230,7 +1230,7 @@
 	'x-axis-style *x-axis-style* 0 
 	'zero-pad *zero-pad* 0
 	'zoom-focus-style *zoom-focus-style* 2))
-      (if *snd-opened-sound* (snd-display ";*snd-opened-sound*: ~A" *snd-opened-sound*))
+      (if *snd-opened-sound* (snd-display "*snd-opened-sound*: ~A" *snd-opened-sound*))
 
       (let ((s (open-sound "oboe.snd")))
 	(letrec ((test-vars
@@ -1251,10 +1251,10 @@
 				   (or (not (number? newval))
 				       (rational? newval)
 				       (> (abs (- newval nowval)) 0.01)))
-			      (snd-display ";~A is not ~A (~A)" star-name newval nowval))
+			      (snd-display "~A is not ~A (~A)" star-name newval nowval))
 			  (eval `(set! ,star-name ,initval))
 			  (if (not (morally-equal? (getfnc) initval))
-			      (snd-display ";* ~A is not ~A" name initval))
+			      (snd-display "* ~A is not ~A" name initval))
 			  (eval `(set! ,star-name ,newval))
 			  (let ((nowval (getfnc)))
 			    (if (and (not (or (equal? newval nowval)
@@ -1263,7 +1263,7 @@
 				     (or (not (number? newval))
 					 (rational? newval)
 					 (> (abs (- newval nowval)) 0.01)))
-				(snd-display ";set! ~A is not ~A (~A)" star-name newval nowval))
+				(snd-display "set! ~A is not ~A (~A)" star-name newval nowval))
 			    (setfnc initval))
 			  (test-vars (cdr lst))))))))
 	  (test-vars 
@@ -1404,20 +1404,20 @@
 		  (let* ((testf (car base-files))
 			 (file (string-append sf-dir (testf 0))))
 		    (if (not (file-exists? file))
-			(snd-display ";~A missing?" file)
+			(snd-display "~A missing?" file)
 			(begin
 			  (if (not (eqv? (mus-sound-chans file) (testf 1)))
-			      (snd-display ";~A: chans ~A is not ~A" 
+			      (snd-display "~A: chans ~A is not ~A" 
 					   (testf 0) 
 					   (mus-sound-chans file) 
 					   (testf 1)))
 			  (if (not (eqv? (mus-sound-srate file) (testf 2)))
-			      (snd-display ";~A: srate ~A is not ~A" 
+			      (snd-display "~A: srate ~A is not ~A" 
 					   (testf 0) 
 					   (mus-sound-srate file) 
 					   (testf 2)))
 			  (if (fneq (mus-sound-duration file) (testf 3))
-			      (snd-display ";~A: duration ~A is not ~A" 
+			      (snd-display "~A: duration ~A is not ~A" 
 					   (testf 0)
 					   (mus-sound-duration file) 
 					   (testf 3)))
@@ -1426,26 +1426,26 @@
 				       (>= (+ (mus-sound-length file) 1)
 					   (* (mus-sound-datum-size file) (mus-sound-duration file) (mus-sound-srate file)
 					      (mus-sound-chans file)))))
-			      (snd-display ";mus-sound-length ~A: ~A (~A)" file
+			      (snd-display "mus-sound-length ~A: ~A (~A)" file
 					   (mus-sound-length file)
 					   (* (mus-sound-duration file) (mus-sound-srate file) 
 					      (mus-sound-chans file) (mus-sound-datum-size file))))
 			  (if (fneq (/ (mus-sound-framples file) (mus-sound-srate file)) (mus-sound-duration file))
-			      (snd-display ";mus-sound-framples ~A: ~A (~A ~A)" file
+			      (snd-display "mus-sound-framples ~A: ~A (~A ~A)" file
 					   (mus-sound-framples file)
 					   (mus-sound-duration file)
 					   (/ (mus-sound-framples file) (mus-sound-srate file))))
 			  (if (> (abs (- (mus-sound-framples file) (/ (mus-sound-samples file) (mus-sound-chans file)))) 1)
-			      (snd-display ";mus-sound-samples ~A: ~A ~A" file
+			      (snd-display "mus-sound-samples ~A: ~A ~A" file
 					   (mus-sound-samples file)
 					   (* (mus-sound-framples file) (mus-sound-chans file))))
 			  (if (not (equal? (mus-header-type-name (mus-sound-header-type file)) (testf 4)))
-			      (snd-display ";~A: type ~A is not ~A" 
+			      (snd-display "~A: type ~A is not ~A" 
 					   (testf 0) 
 					   (mus-header-type-name (mus-sound-header-type file))
 					   (testf 4)))
 			  (if (not (equal? (mus-sample-type-name (mus-sound-sample-type file)) (testf 5)))
-			      (snd-display ";~A: type ~A is not ~A"
+			      (snd-display "~A: type ~A is not ~A"
 					   (testf 0) 
 					   (mus-sample-type-name (mus-sound-sample-type file)) 
 					   (testf 5)))
@@ -1453,11 +1453,11 @@
 			    (if (> (length testf) 6)
 				(begin
 				  (if (not (equal? (car lst) (testf 6))) 
-				      (snd-display ";~A: loop start: ~A" (car lst) (testf 6)))
+				      (snd-display "~A: loop start: ~A" (car lst) (testf 6)))
 				  (if (not (equal? (cadr lst) (testf 7))) 
-				      (snd-display ";~A: loop end: ~A" (cadr lst) (testf 7))))
+				      (snd-display "~A: loop end: ~A" (cadr lst) (testf 7))))
 				(if (pair? lst)
-				    (snd-display ";~A thinks it has loop info: ~A" file lst))))
+				    (snd-display "~A thinks it has loop info: ~A" file lst))))
 			  (mus-sound-forget file)))
 		    (test-headers (cdr base-files)))))))
       
@@ -1466,7 +1466,7 @@
 	(if (sound? ind) (close-sound ind)))
       (catch #t
 	(lambda ()
-	  (if (not (= (mus-sound-header-type (string-append sf-dir "midi60.mid")) -1)) (snd-display ";midi60?")))
+	  (if (not (= (mus-sound-header-type (string-append sf-dir "midi60.mid")) -1)) (snd-display "midi60?")))
 	(lambda args args))
       (test-headers
        (list
@@ -1688,24 +1688,24 @@
       
       (for-each (lambda (in-name real-name)
 		  (if (not (string=? (mus-expand-filename in-name) real-name))
-		      (snd-display ";mus-expand-filename ~A -> ~A" in-name (mus-expand-filename in-name)))
+		      (snd-display "mus-expand-filename ~A -> ~A" in-name (mus-expand-filename in-name)))
 		  (if (file-exists? "/home/bil/./sf1/o2.voc")
 		      (let ((ind (open-sound in-name)))
 			(if (not (sound? ind))
-			    (snd-display ";can't open ~A" in-name)
+			    (snd-display "can't open ~A" in-name)
 			    (begin
 			      (if (not (string=? (file-name ind) real-name))
-				  (snd-display ";expand file name ~A: ~A" in-name (file-name ind)))
+				  (snd-display "expand file name ~A: ~A" in-name (file-name ind)))
 			      (close-sound ind))))))
 		'("/home/bil/./sf1/o2.voc" "~/./sf1/o2.voc" "~/cl/../sf1/o2.voc" "/home/bil/cl/../sf1/o2.voc")
 		'("/home/bil/sf1/o2.voc" "/home/bil/sf1/o2.voc" "/home/bil/sf1/o2.voc" "/home/bil/sf1/o2.voc"))
       
       (let ((lst (mus-sound-mark-info (string-append sf-dir "forest.aiff"))))
 	(if (not (equal? lst '((4 0) (3 0) (2 144332) (1 24981))))
-	    (snd-display ";mus-sound-mark-info forest: ~A" lst)))
+	    (snd-display "mus-sound-mark-info forest: ~A" lst)))
       (let ((lst (mus-sound-mark-info (string-append sf-dir "traffic.aiff"))))
 	(if (not (equal? lst '((4 1) (3 0) (2 171931) (1 99461))))
-	    (snd-display ";mus-sound-mark-info traffic: ~A" lst))))))
+	    (snd-display "mus-sound-mark-info traffic: ~A" lst))))))
 
 
 
@@ -1721,21 +1721,21 @@
 	     (lambda ()
 	       (set! *temp-dir* (string-append home-dir "/test"))
 	       (if (not (string=? *temp-dir* (string-append home-dir "/test")))
-		   (snd-display ";set temp-dir: ~A?" *temp-dir*)))
+		   (snd-display "set temp-dir: ~A?" *temp-dir*)))
 	     (lambda args args))
 	  (set! *temp-dir* (or td "")))
-    (if (fneq (sample 1000) 0.0328) (snd-display ";sample: ~A?" (sample 1000)))
+    (if (fneq (sample 1000) 0.0328) (snd-display "sample: ~A?" (sample 1000)))
     
     (when with-gui
       (set! *show-controls* #t)
       
       (let ((wid (enved-dialog) ))
 	(if (not (equal? wid ((dialog-widgets) 1)))
-	    (snd-display ";enved-dialog -> ~A ~A" wid ((dialog-widgets) 1))))
-					;(if (not ((dialog-widgets) 1)) (snd-display ";enved-dialog?"))
+	    (snd-display "enved-dialog -> ~A ~A" wid ((dialog-widgets) 1))))
+					;(if (not ((dialog-widgets) 1)) (snd-display "enved-dialog?"))
       (set! (enved-envelope) '(0.0 0.0 1.0 1.0 2.0 0.0))
       (if (not (equal? (enved-envelope) '(0.0 0.0 1.0 1.0 2.0 0.0)))
-	  (snd-display ";set enved-envelope to self: ~A?" (enved-envelope)))
+	  (snd-display "set enved-envelope to self: ~A?" (enved-envelope)))
       
       (letrec ((test-vars
 		(lambda (lst)
@@ -1754,7 +1754,7 @@
 				 (or (not (number? newval))
 				     (rational? newval)
 				     (> (abs (- newval nowval)) 0.01)))
-			    (snd-display ";~A is not ~A (~A)" name newval nowval))
+			    (snd-display "~A is not ~A (~A)" name newval nowval))
 			(setfnc initval)
 			(set! (getfnc) newval)
 			(let ((nowval (getfnc)))
@@ -1764,7 +1764,7 @@
 				   (or (not (number? newval))
 				       (rational? newval)
 				       (> (abs (- newval nowval)) 0.01)))
-			      (snd-display ";set! ~A is not ~A (~A)" name newval nowval))
+			      (snd-display "set! ~A is not ~A (~A)" name newval nowval))
 			  (setfnc initval))
 			(test-vars (cdr lst))))))))
 	(test-vars 
@@ -1927,7 +1927,7 @@
 			     (lambda args (car args)))
 			   (let ((nowval (getfnc)))
 			     (if (equal? n nowval)
-				 (snd-display ";(bad set) ~A = ~A (~A)" name n initval))
+				 (snd-display "(bad set) ~A = ~A (~A)" name n initval))
 			     (setfnc initval)))
 			 newvals)
 			(test-bad-args (cdr lst)))))))
@@ -1986,38 +1986,38 @@
       (set! (window-width) 300)
       (set! (window-height) 300)
       (if (<= (window-width) 30)
-	  (snd-display ";window width: ~A is not 300?" (window-width)))
+	  (snd-display "window width: ~A is not 300?" (window-width)))
       (if (<= (window-height) 30)
-	  (snd-display ";window height: ~A is not 300?" (window-height)))
+	  (snd-display "window height: ~A is not 300?" (window-height)))
       (set! *color-scale* 100.0)
-      (if (fneq *color-scale* 100.0) (snd-display ";color-scale to 100: ~A" *color-scale*))
+      (if (fneq *color-scale* 100.0) (snd-display "color-scale to 100: ~A" *color-scale*))
       
       (if (procedure? (search-procedure))
-	  (snd-display ";global search procedure: ~A?" (search-procedure)))
+	  (snd-display "global search procedure: ~A?" (search-procedure)))
       (set! (search-procedure) (lambda (y) (> y .1)))
       (if (not (procedure? (search-procedure)))
-	  (snd-display ";set global search procedure: ~A?" (search-procedure)))
+	  (snd-display "set global search procedure: ~A?" (search-procedure)))
       (if (not ((search-procedure) .2))
-	  (snd-display ";search > .1 .2"))
+	  (snd-display "search > .1 .2"))
       (if ((search-procedure) .02)
-	  (snd-display ";search > .1 .02"))
+	  (snd-display "search > .1 .02"))
       (set! (search-procedure) (lambda (y) (< y 0.0)))
       (if ((search-procedure) .02)
-	  (snd-display ";search < 0.0 .02"))
+	  (snd-display "search < 0.0 .02"))
       (set! (search-procedure) #f)
       (if (procedure? (search-procedure))
-	  (snd-display ";global search procedure after reset: ~A?" (search-procedure)))
+	  (snd-display "global search procedure after reset: ~A?" (search-procedure)))
       (set! (search-procedure) (lambda (y) (> y .1)))
       (if (not (procedure? (search-procedure)))
-	  (snd-display ";set global search procedure: ~A?" (search-procedure)))
+	  (snd-display "set global search procedure: ~A?" (search-procedure)))
       
       (set! *enved-filter-order* 5)
-      (if (not (= *enved-filter-order* 6)) (snd-display ";set enved-filter-order 5: ~A" *enved-filter-order*))
+      (if (not (= *enved-filter-order* 6)) (snd-display "set enved-filter-order 5: ~A" *enved-filter-order*))
       (when with-gui
 	(set! (enved-envelope) 'zero_to_one) ; funcs.scm above
-	(if (not (feql (enved-envelope) zero_to_one)) (snd-display ";set symbol enved-envelope: ~A ~A" (enved-envelope) zero_to_one))
+	(if (not (feql (enved-envelope) zero_to_one)) (snd-display "set symbol enved-envelope: ~A ~A" (enved-envelope) zero_to_one))
 	(set! (enved-envelope) "mod_down")
-	(if (not (feql (enved-envelope) mod_down)) (snd-display ";set string enved-envelope: ~A ~A" (enved-envelope) mod_down)))
+	(if (not (feql (enved-envelope) mod_down)) (snd-display "set string enved-envelope: ~A ~A" (enved-envelope) mod_down)))
       (dismiss-all-dialogs))
     (close-sound ind) 
       
@@ -2259,7 +2259,7 @@
 	     (set! undef (cons n undef))))
        names)
       (if (pair? undef)
-	  (snd-display ";undefined: ~A" undef)))))
+	  (snd-display "undefined: ~A" undef)))))
 
 
 ;;; ---------------- test 4: sndlib ----------------
@@ -2281,7 +2281,7 @@
     (let ((mz (mus-sound-maxamp "z.snd")))
       (if (or (not (= (car mz) 0))
 	      (fneq (cadr mz) 0.0))
-	  (snd-display ";mus-sound-maxamp z.snd: ~A (~A ~A)" mz (not (= (car mz) 0)) (fneq (cadr mz) 0.0))))
+	  (snd-display "mus-sound-maxamp z.snd: ~A (~A ~A)" mz (not (= (car mz) 0)) (fneq (cadr mz) 0.0))))
     (let ((formats (list mus-bshort mus-lshort mus-mulaw mus-alaw mus-byte mus-ubyte mus-bfloat mus-lfloat
 			 mus-bint mus-lint mus-bintn mus-lintn mus-b24int mus-l24int mus-bdouble mus-ldouble
 			 mus-ubshort mus-ulshort mus-bdouble-unscaled mus-ldouble-unscaled mus-bfloat-unscaled 
@@ -2293,75 +2293,75 @@
       (for-each
        (lambda (frm siz)
 	 (if (not (= (mus-bytes-per-sample frm) siz))
-	     (snd-display ";mus-bytes-per-sample ~A: ~A" (mus-sample-type-name frm) siz)))
+	     (snd-display "mus-bytes-per-sample ~A: ~A" (mus-sample-type-name frm) siz)))
        formats
        sizes))
     (if (not (string=? (mus-sample-type->string mus-bshort) "mus-bshort"))
-	(snd-display ";mus-sample-type->string: ~A" (mus-sample-type->string mus-bshort)))
+	(snd-display "mus-sample-type->string: ~A" (mus-sample-type->string mus-bshort)))
     (if (not (string=? (mus-header-type->string mus-aifc) "mus-aifc"))
-	(snd-display ";mus-header-type->string: ~A" (mus-header-type->string mus-aifc)))
+	(snd-display "mus-header-type->string: ~A" (mus-header-type->string mus-aifc)))
     (mus-sound-report-cache "hiho.tmp")
     (let* ((p (open-input-file "hiho.tmp"))
 	   (line (read-line p)))
       (if (not (member line '("sound table:" "sound table:\n")))
-	  (snd-display ";print-cache 1: ~A?" line))
+	  (snd-display "print-cache 1: ~A?" line))
       (close-input-port p)
       (delete-file "hiho.tmp"))
     (let ((chns (mus-sound-chans "oboe.snd")))
-      (if (not (= chns 1)) (snd-display ";oboe: mus-sound-chans ~D?" chns)))
+      (if (not (= chns 1)) (snd-display "oboe: mus-sound-chans ~D?" chns)))
     (if (= clmtest 0)
 	(let ((m1 (mus-sound-maxamp-exists? "oboe.snd")))
-	  (if (and m1 (= clmtest 0)) (snd-display ";oboe: mus-sound-maxamp-exists before maxamp: ~A" m1))
+	  (if (and m1 (= clmtest 0)) (snd-display "oboe: mus-sound-maxamp-exists before maxamp: ~A" m1))
 	  (let ((mal (mus-sound-maxamp "oboe.snd")))
-	    (if (fneq (cadr mal) .14724) (snd-display ";oboe: mus-sound-maxamp ~F?" (cadr mal)))
-	    (if (not (= (car mal) 24971)) (snd-display ";oboe: mus-sound-maxamp at ~D?" (car mal))))
+	    (if (fneq (cadr mal) .14724) (snd-display "oboe: mus-sound-maxamp ~F?" (cadr mal)))
+	    (if (not (= (car mal) 24971)) (snd-display "oboe: mus-sound-maxamp at ~D?" (car mal))))
 	  (if (not (mus-sound-maxamp-exists? "oboe.snd")) 
-	      (snd-display ";oboe: not mus-sound-maxamp-exists after maxamp: ~A" (mus-sound-maxamp-exists? "oboe.snd")))))
+	      (snd-display "oboe: not mus-sound-maxamp-exists after maxamp: ~A" (mus-sound-maxamp-exists? "oboe.snd")))))
     (let ((dl (mus-sound-data-location "oboe.snd")))
-      (if (not (= dl 28)) (snd-display ";oboe: mus-sound-data-location ~D (~A)?" dl (= dl 28))))
+      (if (not (= dl 28)) (snd-display "oboe: mus-sound-data-location ~D (~A)?" dl (= dl 28))))
     (let ((fr (mus-sound-framples "oboe.snd")))
-      (if (not (= fr 50828)) (snd-display ";oboe: mus-sound-framples ~D?" fr)))
+      (if (not (= fr 50828)) (snd-display "oboe: mus-sound-framples ~D?" fr)))
     (let ((smps (mus-sound-samples "oboe.snd")))
-      (if (not (= smps 50828)) (snd-display ";oboe: mus-sound-samples ~D?" smps)))
+      (if (not (= smps 50828)) (snd-display "oboe: mus-sound-samples ~D?" smps)))
     (let ((len (mus-sound-length "oboe.snd")))
-      (if (not (= len 101684)) (snd-display ";oboe: mus-sound-length ~D?" len)))
+      (if (not (= len 101684)) (snd-display "oboe: mus-sound-length ~D?" len)))
     (let ((size (mus-sound-datum-size "oboe.snd")))
-      (if (not (= size 2)) (snd-display ";oboe: mus-sound-datum-size ~D?" size)))
+      (if (not (= size 2)) (snd-display "oboe: mus-sound-datum-size ~D?" size)))
     (let ((bytes (mus-bytes-per-sample (mus-sound-sample-type "oboe.snd"))))
-      (if (not (= bytes 2)) (snd-display ";oboe: sound-bytes ~D?" bytes)))
+      (if (not (= bytes 2)) (snd-display "oboe: sound-bytes ~D?" bytes)))
     (let ((sr (mus-sound-srate "oboe.snd")))
-      (if (not (= sr 22050)) (snd-display ";oboe: mus-sound-srate ~D?" sr)))
+      (if (not (= sr 22050)) (snd-display "oboe: mus-sound-srate ~D?" sr)))
     
     (if (= clmtest 0)
 	(let ((vals (mus-header-raw-defaults)))
 	  (if (not (and (pair? vals)
 			(= (length vals) 3)))
-	      (snd-display ";mus-header-raw-defaults: ~A" vals)
+	      (snd-display "mus-header-raw-defaults: ~A" vals)
 	      (let ((sr (car vals))
 		    (chns (cadr vals))
 		    (frm (caddr vals)))
-		(if (not (= sr 44100)) (snd-display ";mus-header-raw-defaults srate: ~A" sr))
-		(if (not (= chns 2)) (snd-display ";mus-header-raw-defaults chns: ~A" chns))
-		(if (not (= frm mus-bshort)) (snd-display ";mus-header-raw-defaults format: ~A: ~A" frm (mus-sample-type-name frm)))))))
+		(if (not (= sr 44100)) (snd-display "mus-header-raw-defaults srate: ~A" sr))
+		(if (not (= chns 2)) (snd-display "mus-header-raw-defaults chns: ~A" chns))
+		(if (not (= frm mus-bshort)) (snd-display "mus-header-raw-defaults format: ~A: ~A" frm (mus-sample-type-name frm)))))))
     (set! (mus-header-raw-defaults) (list 12345 3 mus-bdouble-unscaled))
     (let ((vals (mus-header-raw-defaults)))
       (if (not (and (pair? vals)
 		    (= (length vals) 3)))
-	  (snd-display ";set mus-header-raw-defaults: ~A" vals)
+	  (snd-display "set mus-header-raw-defaults: ~A" vals)
 	  (let ((sr (car vals))
 		(chns (cadr vals))
 		(frm (caddr vals)))
-	    (if (not (= sr 12345)) (snd-display ";set mus-header-raw-defaults srate: ~A" sr))
-	    (if (not (= chns 3)) (snd-display ";set mus-header-raw-defaults chns: ~A" chns))
-	    (if (not (= frm mus-bdouble-unscaled)) (snd-display ";set mus-header-raw-defaults format: ~A: ~A" frm (mus-sample-type-name frm))))))
+	    (if (not (= sr 12345)) (snd-display "set mus-header-raw-defaults srate: ~A" sr))
+	    (if (not (= chns 3)) (snd-display "set mus-header-raw-defaults chns: ~A" chns))
+	    (if (not (= frm mus-bdouble-unscaled)) (snd-display "set mus-header-raw-defaults format: ~A: ~A" frm (mus-sample-type-name frm))))))
     (set! (mus-header-raw-defaults) (list 44100 2 mus-bshort))
     
     (let ((str (strftime "%d-%b %H:%M %Z" (localtime (mus-sound-write-date "oboe.snd")))))
       (if (not (string=? str "23-Nov 06:56 PST"))
-	  (snd-display ";mus-sound-write-date oboe.snd: ~A?" str)))
+	  (snd-display "mus-sound-write-date oboe.snd: ~A?" str)))
     (let ((str (strftime "%d-%b %H:%M %Z" (localtime (mus-sound-write-date "pistol.snd")))))
       (if (not (string=? str "23-Nov 06:56 PST"))
-	  (snd-display ";mus-sound-write-date pistol.snd: ~A?" str)))
+	  (snd-display "mus-sound-write-date pistol.snd: ~A?" str)))
     
     (let ((long-file-name (do ((name "test")
 			       (i 0 (+ i 1)))
@@ -2369,18 +2369,18 @@
 			       (string-append name ".snd"))
 			    (set! name (string-append name "-test")))))
       (let ((index (open-sound "oboe.snd")))
-	(if (variable-graph? index) (snd-display ";variable-graph thinks anything is a graph..."))
-	(if (player? index) (snd-display ";player? thinks anything is a player..."))
-	(if (not (sound? index)) (snd-display ";~A is not a sound?" index))
-	(if (sound? #f) (snd-display ";sound? #f -> #t?"))
-	(if (sound? #t) (snd-display ";sound? #t -> #t?"))
+	(if (variable-graph? index) (snd-display "variable-graph thinks anything is a graph..."))
+	(if (player? index) (snd-display "player? thinks anything is a player..."))
+	(if (not (sound? index)) (snd-display "~A is not a sound?" index))
+	(if (sound? #f) (snd-display "sound? #f -> #t?"))
+	(if (sound? #t) (snd-display "sound? #t -> #t?"))
 	(save-sound-as long-file-name index)
 	(close-sound index))
       (let ((index (open-sound long-file-name)))
-	(if (not (sound? index)) (snd-display ";can't find test...snd"))
+	(if (not (sound? index)) (snd-display "can't find test...snd"))
 	(if (or (< (length (file-name index)) (length long-file-name))
 		(< (length (short-file-name index)) (length long-file-name)))
-	    (snd-display ";file-name lengths: ~A ~A ~A"
+	    (snd-display "file-name lengths: ~A ~A ~A"
 			 (length (file-name index))
 			 (length (short-file-name index))
 			 (length long-file-name)))
@@ -2392,56 +2392,56 @@
       (let-temporarily ((*mus-sound-path* (list new-path)))
 	(let ((ind (catch #t (lambda () (open-sound "o2.bicsf")) (lambda args #f))))
 	  (if (not (sound? ind))
-	      (snd-display ";*mus-sound-path*: ~A~%" ind)
+	      (snd-display "*mus-sound-path*: ~A~%" ind)
 	      (begin
 		(close-sound ind)
 		(set! (mus-sound-path) (list new-path))
 		(set! ind (catch #t (lambda () (open-sound "o2.bicsf")) (lambda args #f)))
 		(if (sound? ind)
 		    (close-sound ind)
-		    (snd-display ";(mus-sound-path): ~A~%" ind)))))))
+		    (snd-display "(mus-sound-path): ~A~%" ind)))))))
     
     (let ((fsnd (string-append sf-dir "forest.aiff")))
       (when (file-exists? fsnd)
 	(system (format #f "cp ~A fmv.snd" fsnd))
 	(let ((index (open-sound "fmv.snd")))
 	  (if (not (equal? (sound-loop-info index) (mus-sound-loop-info fsnd)))
-	      (snd-display ";loop-info: ~A ~A" (sound-loop-info index) (mus-sound-loop-info fsnd)))
+	      (snd-display "loop-info: ~A ~A" (sound-loop-info index) (mus-sound-loop-info fsnd)))
 	  (set! (sound-loop-info index) (list 12000 14000 1 2 3 4))
 	  (if (not (equal? (sound-loop-info index) '(12000 14000 1 2 3 4 1 1)))
-	      (snd-display ";set loop-info: ~A" (sound-loop-info index)))
+	      (snd-display "set loop-info: ~A" (sound-loop-info index)))
 	  (save-sound-as "fmv1.snd" index :header-type mus-aifc)
 	  (close-sound index)
 	  (if (not (equal? (mus-sound-loop-info "fmv1.snd") '(12000 14000 1 2 3 4 1 1)))
-	      (snd-display ";saved loop-info: ~A" (mus-sound-loop-info "fmv1.snd"))))))
+	      (snd-display "saved loop-info: ~A" (mus-sound-loop-info "fmv1.snd"))))))
     (let ((index (open-sound "oboe.snd")))
       (save-sound-as "fmv.snd" index :header-type mus-aifc)
       (close-sound index))
     (let ((index (open-sound "fmv.snd")))
       (if (not (null? (sound-loop-info index)))
-	  (snd-display ";null loop-info: ~A" (sound-loop-info index)))
+	  (snd-display "null loop-info: ~A" (sound-loop-info index)))
       (set! (sound-loop-info index) (list 1200 1400 4 3 2 1))
       (if (not (equal? (sound-loop-info index) '(1200 1400 4 3 2 1 1 1)))
-	  (snd-display ";set null loop-info: ~A" (sound-loop-info index)))
+	  (snd-display "set null loop-info: ~A" (sound-loop-info index)))
       (save-sound-as "fmv1.snd" :sound index :header-type mus-aifc)
       (close-sound index)
       (if (not (equal? (mus-sound-loop-info "fmv1.snd") '(1200 1400 4 3 2 1 1 1)))
-	  (snd-display ";saved null loop-info: ~A" (mus-sound-loop-info "fmv1.snd"))))
+	  (snd-display "saved null loop-info: ~A" (mus-sound-loop-info "fmv1.snd"))))
     (let ((index (open-sound "fmv.snd")))
       (set! (sound-loop-info) (list 1200 1400 4 3 2 1 1 0))
       (if (not (equal? (sound-loop-info index) '(1200 1400 0 0 2 1 1 0)))
-	  (snd-display ";set null loop-info (no mode1): ~A" (sound-loop-info index)))
+	  (snd-display "set null loop-info (no mode1): ~A" (sound-loop-info index)))
       (save-sound-as "fmv1.snd" index :header-type mus-aifc)
       (close-sound index)
       (if (not (equal? (mus-sound-loop-info "fmv1.snd") '(1200 1400 0 0 2 1 1 0)))
-	  (snd-display ";saved null loop-info (no mode1): ~A" (mus-sound-loop-info "fmv1.snd"))))
+	  (snd-display "saved null loop-info (no mode1): ~A" (mus-sound-loop-info "fmv1.snd"))))
     
     (define (check-comment file comment)
       (let ((fsnd (string-append sf-dir file)))
 	(when (file-exists? fsnd)
 	  (let ((com (mus-sound-comment fsnd)))
 	    (if (not (equal? com comment))
-		(snd-display ";mus-sound-comment ~S -> ~A?" file com))))))
+		(snd-display "mus-sound-comment ~S -> ~A?" file com))))))
     
     (check-comment "oboe.snd" "")
     (check-comment "nasahal8.wav" "ICRD: 1997-02-22\nIENG: Paul R. Roger\nISFT: Sound Forge 4.0\n")
@@ -2461,71 +2461,71 @@
     (check-comment "telephone.wav" "sample_byte_format -s2 01\nchannel_count -i 1\nsample_count -i 36461\nsample_rate -i 16000\nsample_n_bytes -i 2\nsample_sig_bits -i 16\n")
     
     (if (not (string? (mus-sound-comment (string-append sf-dir "traffic.aiff"))))
-	(snd-display ";mus-sound-comment traffic: ~A" (mus-sound-comment (string-append sf-dir "traffic.aiff"))))
+	(snd-display "mus-sound-comment traffic: ~A" (mus-sound-comment (string-append sf-dir "traffic.aiff"))))
     
     (if (not (member (mus-sound-type-specifier "oboe.snd") '(#x646e732e #x2e736e64) =))
-	(snd-display ";oboe: mus-sound-type-specifier: ~X?" (mus-sound-type-specifier "oboe.snd")))
+	(snd-display "oboe: mus-sound-type-specifier: ~X?" (mus-sound-type-specifier "oboe.snd")))
     (if (not (string=? (strftime "%d-%b-%Y %H:%M" (localtime (file-write-date "oboe.snd"))) "23-Nov-2012 06:56"))
-	(snd-display ";oboe: file-write-date: ~A?" (strftime "%d-%b-%Y %H:%M" (localtime (file-write-date "oboe.snd")))))
+	(snd-display "oboe: file-write-date: ~A?" (strftime "%d-%b-%Y %H:%M" (localtime (file-write-date "oboe.snd")))))
     
     (let ((lasth (do ((i 1 (+ i 1)))
 		     ((string=? (mus-header-type-name i) "unknown") i))))
-      (if (< lasth 50) (snd-display ";header-type[~A] = ~A" lasth (mus-header-type-name lasth))))
+      (if (< lasth 50) (snd-display "header-type[~A] = ~A" lasth (mus-header-type-name lasth))))
     (let ((lasth (do ((i 1 (+ i 1)))
 		     ((string=? (mus-sample-type-name i) "unknown") i))))
-      (if (< lasth 10) (snd-display ";sample-type[~A] = ~A" lasth (mus-sample-type-name lasth))))
+      (if (< lasth 10) (snd-display "sample-type[~A] = ~A" lasth (mus-sample-type-name lasth))))
     
     (when with-gui
       (set! *transform-normalization* dont-normalize)
       (if (not (= *transform-normalization* dont-normalize))
-	  (snd-display ";set-transform-normalization none -> ~A" *transform-normalization*))
+	  (snd-display "set-transform-normalization none -> ~A" *transform-normalization*))
       (set! *transform-normalization* normalize-globally)
       (if (not (= *transform-normalization* normalize-globally))
-	  (snd-display ";set-transform-normalization globally -> ~A" *transform-normalization*))
+	  (snd-display "set-transform-normalization globally -> ~A" *transform-normalization*))
       (set! *transform-normalization* normalize-by-channel)
       (if (not (= *transform-normalization* normalize-by-channel))
-	  (snd-display ";set-transform-normalization channel -> ~A" *transform-normalization*)))
+	  (snd-display "set-transform-normalization channel -> ~A" *transform-normalization*)))
     
     (let ((ind (new-sound "fmv.snd" 1 22050 mus-ldouble mus-next "set-samples test" 100)))
       (set! (samples 10 3) (make-float-vector 3 .1))
       (if (not (mus-arrays-equal? (channel->float-vector 0 20 ind 0) (float-vector 0 0 0 0 0 0 0 0 0 0 .1 .1 .1 0 0 0 0 0 0 0)))
-	  (snd-display ";1 set samples 0 for .1: ~A" (channel->float-vector 0 20 ind 0)))
+	  (snd-display "1 set samples 0 for .1: ~A" (channel->float-vector 0 20 ind 0)))
       (set! (samples 20 3 ind 0) (make-float-vector 3 .1))
       (if (not (mus-arrays-equal? (channel->float-vector 10 20 ind 0) (float-vector .1 .1 .1 0 0 0 0 0 0 0 .1 .1 .1 0 0 0 0 0 0 0)))
-	  (snd-display ";2 set samples 10 for .1: ~A" (channel->float-vector 10 20 ind 0)))
+	  (snd-display "2 set samples 10 for .1: ~A" (channel->float-vector 10 20 ind 0)))
       (set! (samples 30 3 ind 0 #f "a name") (make-float-vector 3 .1))
       (if (not (mus-arrays-equal? (channel->float-vector 20 20 ind 0) (float-vector .1 .1 .1 0 0 0 0 0 0 0 .1 .1 .1 0 0 0 0 0 0 0)))
-	  (snd-display ";3 set samples 20 for .1: ~A" (channel->float-vector 20 20 ind 0)))
+	  (snd-display "3 set samples 20 for .1: ~A" (channel->float-vector 20 20 ind 0)))
       (set! (samples 0 3 ind 0 #f "a name" 0 1) (make-float-vector 3 .2))
       (if (not (mus-arrays-equal? (channel->float-vector 0 20 ind 0) (float-vector .2 .2 .2 0 0 0 0 0 0 0 .1 .1 .1 0 0 0 0 0 0 0)))
-	  (snd-display ";4 set samples 0 at 1 for .1: ~A" (channel->float-vector 0 20 ind 0)))
+	  (snd-display "4 set samples 0 at 1 for .1: ~A" (channel->float-vector 0 20 ind 0)))
       (if (not (mus-arrays-equal? (channel->float-vector 20 20 ind 0) (make-float-vector 20)))
-	  (snd-display ";5 set samples 20 at 1 for .1: ~A" (channel->float-vector 0 20 ind 0)))
+	  (snd-display "5 set samples 20 at 1 for .1: ~A" (channel->float-vector 0 20 ind 0)))
       (let ((nd (new-sound "fmv1.snd" :channels 2)))
 	(float-vector->channel (make-float-vector 10 .5) 0 10 nd 0)
 	(float-vector->channel (make-float-vector 10 .3) 0 10 nd 1)
 	(save-sound-as "fmv1.snd" nd)
 	(close-sound nd))
-      (if (not (file-exists? "fmv1.snd")) (snd-display ";fmv1 not saved??"))
+      (if (not (file-exists? "fmv1.snd")) (snd-display "fmv1 not saved??"))
       (set! (samples 0 10 ind 0 #f "another name" 1) "fmv1.snd")
       (if (not (mus-arrays-equal? (channel->float-vector 0 20 ind 0) (float-vector .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 .1 .1 .1 0 0 0 0 0 0 0)))
-	  (snd-display ";6 set samples 0 at 1 for .1: ~A" (channel->float-vector 0 20 ind 0)))
+	  (snd-display "6 set samples 0 at 1 for .1: ~A" (channel->float-vector 0 20 ind 0)))
       (set! (samples 5 6 ind 0 #f "another name 7" 0) "fmv1.snd")
       (if (not (mus-arrays-equal? (channel->float-vector 0 20 ind 0) (float-vector .3 .3 .3 .3 .3 .5 .5 .5 .5 .5 .5 .1 .1 0 0 0 0 0 0 0)))
-	  (snd-display ";7 set samples 0 at 1 for .1: ~A" (channel->float-vector 0 20 ind 0)))
+	  (snd-display "7 set samples 0 at 1 for .1: ~A" (channel->float-vector 0 20 ind 0)))
       (revert-sound ind)
       (set! (samples 0 10 ind 0 #f "another name 8" 1 0 #f) "fmv1.snd")
       (if (not (mus-arrays-equal? (channel->float-vector 0 20 ind 0) (float-vector .3 .3 .3 .3 .3 .3 .3 .3 .3 .3 0 0 0 0 0 0 0 0 0 0)))
-	  (snd-display ";8 set samples 0 at 1 for .1: ~A" (channel->float-vector 0 20 ind 0)))
+	  (snd-display "8 set samples 0 at 1 for .1: ~A" (channel->float-vector 0 20 ind 0)))
       (set! (samples 10 10 ind 0 #f "another name 9" 0 0) "fmv1.snd")
       (if (not (mus-arrays-equal? (channel->float-vector 0 20 ind 0) (float-vector 0 0 0 0 0 0 0 0 0 0 .5 .5 .5 .5 .5 .5 .5 .5 .5 .5)))
-	  (snd-display ";9 set samples 0 at 1 for .1: ~A" (channel->float-vector 0 20 ind 0)))
+	  (snd-display "9 set samples 0 at 1 for .1: ~A" (channel->float-vector 0 20 ind 0)))
       (set! (samples 20 10) "fmv1.snd")
       (if (not (mus-arrays-equal? (channel->float-vector 10 20 ind 0) (make-float-vector 20 .5)))
-	  (snd-display ";10 set samples 0 at 1 for .1: ~A" (channel->float-vector 10 20 ind 0)))
+	  (snd-display "10 set samples 0 at 1 for .1: ~A" (channel->float-vector 10 20 ind 0)))
       (revert-sound ind)
       (set! (samples 0 10 ind 0 #t "another name" 1 0 #f) "fmv1.snd")
-      (if (not (= (framples ind 0) 10)) (snd-display ";11 set-samples truncate to ~A" (framples ind 0)))
+      (if (not (= (framples ind 0) 10)) (snd-display "11 set-samples truncate to ~A" (framples ind 0)))
       (revert-sound ind)
       (delete-file "fmv1.snd")
       
@@ -2533,7 +2533,7 @@
       (let ((tag (catch #t 
 		   (lambda () (set! (samples 0 10 ind 0) "fmv1.snd"))
 		   (lambda args (car args)))))
-	(if (not (eq? tag 'no-such-file)) (snd-display ";set-samples, no such file: ~A" tag)))
+	(if (not (eq? tag 'no-such-file)) (snd-display "set-samples, no such file: ~A" tag)))
       (let ((nd (new-sound "fmv1.snd" :channels 1)))
 	(float-vector->channel (make-float-vector 10 .5) 0 10 nd 0)
 	(save-sound-as "fmv1.snd" nd)
@@ -2541,19 +2541,19 @@
       (let ((tag (catch #t
 		   (lambda () (set! (samples 0 10 ind 0 #f "another name" 1) "fmv1.snd")) ; chan 1 does not exist
 		   (lambda args (car args)))))
-	(if (not (eq? tag 'no-such-channel)) (snd-display ";set-samples no such channel: ~A" tag)))
+	(if (not (eq? tag 'no-such-channel)) (snd-display "set-samples no such channel: ~A" tag)))
       (let ((tag (catch #t
 		   (lambda () (set! (samples 0 10 ind 0 #f "another name" -1) "fmv1.snd"))
 		   (lambda args (car args)))))
-	(if (not (eq? tag 'no-such-channel)) (snd-display ";set-samples no such channel (-1): ~A" tag)))
+	(if (not (eq? tag 'no-such-channel)) (snd-display "set-samples no such channel (-1): ~A" tag)))
       (let ((tag (catch #t
 		   (lambda () (set! (samples 0 -10) "fmv1.snd"))
 		   (lambda args (car args)))))
-	(if (not (eq? tag 'wrong-type-arg)) (snd-display ";set-samples (-10): ~A" tag)))
+	(if (not (eq? tag 'wrong-type-arg)) (snd-display "set-samples (-10): ~A" tag)))
       (let ((tag (catch #t
 		   (lambda () (set! (samples -10 10) "fmv1.snd"))
 		   (lambda args (car args)))))
-	(if (not (eq? tag 'no-such-sample)) (snd-display ";set-samples (beg -10): ~A" tag)))
+	(if (not (eq? tag 'no-such-sample)) (snd-display "set-samples (beg -10): ~A" tag)))
       (close-sound ind))
     
     (let ((len 100))
@@ -2565,7 +2565,7 @@
 	       ((= i len))
 	     (let ((val (random 1.9999)))
 	       (if (not (>= 2.0 val 0.0))
-		   (snd-display ";random 2.0 -> ~A?" val))
+		   (snd-display "random 2.0 -> ~A?" val))
 	       (set! (v i) (- 1.0 val))))
 	   (let ((ind (new-sound "test.snd" 1 22050 mus-ldouble mus-next)))
 	     (float-vector->channel v 0 len ind 0)
@@ -2578,7 +2578,7 @@
 		  (i 0 (+ i 1)))
 		 ((= i len)
 		  (if (> maxdiff allowed-diff)
-		      (snd-display ";[line 2841] ~A: ~A at ~A (~A ~A)" 
+		      (snd-display "[line 2841] ~A: ~A at ~A (~A ~A)" 
 				   (mus-sample-type-name type) 
 				   maxdiff maxpos 
 				   (v maxpos) (v1 maxpos))))
@@ -2607,41 +2607,41 @@
 		       (lambda ()
 			 (save-sound-as "test.snd" ob :header-type mus-aifc :sample-type mus-bdouble))
 		       (lambda args (car args)))))
-	    (if (eq? tag 'cannot-save) (snd-display ";save-sound-as test.snd write trouble")))
+	    (if (eq? tag 'cannot-save) (snd-display "save-sound-as test.snd write trouble")))
 	  (set! *filter-control-in-hz* #t)
 	  (let ((ab (open-sound "test.snd")))
 	    (if (not (= (header-type ab) mus-aifc)) 
-		(snd-display ";save-as aifc -> ~A?" (mus-header-type-name (header-type ab))))
+		(snd-display "save-as aifc -> ~A?" (mus-header-type-name (header-type ab))))
 	    (if (not (= (mus-sound-header-type "test.snd") mus-aifc)) 
-		(snd-display ";saved-as aifc -> ~A?" (mus-header-type-name (mus-sound-header-type "test.snd"))))
-	    (if (fneq (sample 1000 ab) samp) (snd-display ";aifc[1000] = ~A?" (sample 1000 ab)))
+		(snd-display "saved-as aifc -> ~A?" (mus-header-type-name (mus-sound-header-type "test.snd"))))
+	    (if (fneq (sample 1000 ab) samp) (snd-display "aifc[1000] = ~A?" (sample 1000 ab)))
 	    (if (not (equal? (mus-sound-comment "test.snd") str))
-		(snd-display ";output-comment: ~A ~A" (mus-sound-comment "test.snd") str))
+		(snd-display "output-comment: ~A ~A" (mus-sound-comment "test.snd") str))
 	    (if (not (equal? (comment ab) str))
-		(snd-display ";output-comment (comment): ~A ~A" (comment ab) str))
+		(snd-display "output-comment (comment): ~A ~A" (comment ab) str))
 	    (close-sound ab)))
 	(if (not (equal? old-comment (mus-sound-comment "oboe.snd")))
-	    (snd-display ";set-comment overwrote current ~A ~A" old-comment (mus-sound-comment "oboe.snd"))))
+	    (snd-display "set-comment overwrote current ~A ~A" old-comment (mus-sound-comment "oboe.snd"))))
       (set! *filter-control-in-hz* #f)
       (save-sound-as "test.snd" ob :header-type mus-raw)
       (let ((ab (open-raw-sound "test.snd" 1 22050 mus-bshort)))
 	(if (not (= (header-type ab) mus-raw)) 
-	    (snd-display ";save-as raw -> ~A?" (mus-header-type-name (header-type ab))))
+	    (snd-display "save-as raw -> ~A?" (mus-header-type-name (header-type ab))))
 	(if (not (= (mus-sound-header-type "test.snd") mus-raw)) 
-	    (snd-display ";saved-as raw -> ~A?" (mus-header-type-name (mus-sound-header-type "test.snd"))))
-	(if (fneq (sample 1000 ab) samp) (snd-display ";raw[1000] = ~A?" (sample 1000 ab)))
+	    (snd-display "saved-as raw -> ~A?" (mus-header-type-name (mus-sound-header-type "test.snd"))))
+	(if (fneq (sample 1000 ab) samp) (snd-display "raw[1000] = ~A?" (sample 1000 ab)))
 	(close-sound ab))
       (save-sound-as "test.snd" ob :header-type mus-nist :sample-type mus-bint)
       (let ((ab (open-sound "test.snd")))
 	(if (not (= (header-type ab) mus-nist)) 
-	    (snd-display ";save-as nist -> ~A?" (mus-header-type-name (header-type ab))))
+	    (snd-display "save-as nist -> ~A?" (mus-header-type-name (header-type ab))))
 	(if (not (= (mus-sound-header-type "test.snd") mus-nist)) 
-	    (snd-display ";saved-as nist -> ~A?" (mus-header-type-name (mus-sound-header-type "test.snd"))))
+	    (snd-display "saved-as nist -> ~A?" (mus-header-type-name (mus-sound-header-type "test.snd"))))
 	(if (not (= (sample-type ab) mus-bint)) 
-	    (snd-display ";save-as int -> ~A?" (mus-sample-type-name (sample-type ab))))
+	    (snd-display "save-as int -> ~A?" (mus-sample-type-name (sample-type ab))))
 	(if (not (= (mus-sound-sample-type "test.snd") mus-bint)) 
-	    (snd-display ";saved-as int -> ~A?" (mus-sample-type-name (mus-sound-sample-type "test.snd"))))
-	(if (fneq (sample 1000 ab) samp) (snd-display ";nist[1000] = ~A?" (sample 1000 ab)))
+	    (snd-display "saved-as int -> ~A?" (mus-sample-type-name (mus-sound-sample-type "test.snd"))))
+	(if (fneq (sample 1000 ab) samp) (snd-display "nist[1000] = ~A?" (sample 1000 ab)))
 	(close-sound ab))
       (set! (hook-functions output-comment-hook) ())
       (hook-push output-comment-hook
@@ -2651,216 +2651,216 @@
       (set! (hook-functions output-comment-hook) ())
       (let ((ab (open-sound "test.snd")))
 	(if (not (= (header-type ab) mus-riff)) 
-	    (snd-display ";save-as riff -> ~A?" (mus-header-type-name (header-type ab))))
+	    (snd-display "save-as riff -> ~A?" (mus-header-type-name (header-type ab))))
 	(if (not (= (mus-sound-header-type "test.snd") mus-riff)) 
-	    (snd-display ";saved-as riff -> ~A?" (mus-header-type-name (mus-sound-header-type "test.snd"))))
+	    (snd-display "saved-as riff -> ~A?" (mus-header-type-name (mus-sound-header-type "test.snd"))))
 	(if (not (= (sample-type ab) mus-lfloat)) 
-	    (snd-display ";save-as float -> ~A?" (mus-sample-type-name (sample-type ab))))
+	    (snd-display "save-as float -> ~A?" (mus-sample-type-name (sample-type ab))))
 	(if (not (= (mus-sound-sample-type "test.snd") mus-lfloat)) 
-	    (snd-display ";saved-as float -> ~A?" (mus-sample-type-name (mus-sound-sample-type "test.snd"))))
-	(if (fneq (sample 1000 ab) samp) (snd-display ";riff[1000] = ~A?" (sample 1000 ab)))
+	    (snd-display "saved-as float -> ~A?" (mus-sample-type-name (mus-sound-sample-type "test.snd"))))
+	(if (fneq (sample 1000 ab) samp) (snd-display "riff[1000] = ~A?" (sample 1000 ab)))
 	(if (not (equal? (comment ab) 
 			 (string-append "written " 
 					(strftime "%a %d-%b-%Y %H:%M %Z" (localtime (current-time)))
 					" [written by me]")))
-	    (snd-display ";output-comment-hook: ~A~%(~A)" (comment ab) (mus-sound-comment "test.snd")))
+	    (snd-display "output-comment-hook: ~A~%(~A)" (comment ab) (mus-sound-comment "test.snd")))
 	(close-sound ab))
       (save-sound-as "test.snd" ob :header-type mus-aiff :sample-type mus-b24int)
       (let ((ab (open-sound "test.snd")))
 	(if (not (= (header-type ab) mus-aiff)) 
-	    (snd-display ";save-as aiff -> ~A?" (mus-header-type-name (header-type ab))))
+	    (snd-display "save-as aiff -> ~A?" (mus-header-type-name (header-type ab))))
 	(if (not (= (mus-sound-header-type "test.snd") mus-aiff)) 
-	    (snd-display ";saved-as aiff -> ~A?" (mus-header-type-name (mus-sound-header-type "test.snd"))))
+	    (snd-display "saved-as aiff -> ~A?" (mus-header-type-name (mus-sound-header-type "test.snd"))))
 	(if (not (= (sample-type ab) mus-b24int))
-	    (snd-display ";save-as 24-bit -> ~A?" (mus-sample-type-name (sample-type ab))))
+	    (snd-display "save-as 24-bit -> ~A?" (mus-sample-type-name (sample-type ab))))
 	(if (not (= (mus-sound-sample-type "test.snd") mus-b24int))
-	    (snd-display ";saved-as 24-bit -> ~A?" (mus-sample-type-name (mus-sound-sample-type "test.snd"))))
-	(if (fneq (sample 1000 ab) samp) (snd-display ";aiff[1000] = ~A?" (sample 1000 ab)))
+	    (snd-display "saved-as 24-bit -> ~A?" (mus-sample-type-name (mus-sound-sample-type "test.snd"))))
+	(if (fneq (sample 1000 ab) samp) (snd-display "aiff[1000] = ~A?" (sample 1000 ab)))
 	(close-sound ab))
       (save-sound-as "test.snd" ob :header-type mus-ircam :sample-type mus-mulaw)
       (let ((ab (open-sound "test.snd")))
 	(if (not (= (header-type ab) mus-ircam)) 
-	    (snd-display ";save-as ircam -> ~A?" (mus-header-type-name (header-type ab))))
+	    (snd-display "save-as ircam -> ~A?" (mus-header-type-name (header-type ab))))
 	(if (not (= (mus-sound-header-type "test.snd") mus-ircam)) 
-	    (snd-display ";saved-as ircam -> ~A?" (mus-header-type-name (mus-sound-header-type "test.snd"))))
+	    (snd-display "saved-as ircam -> ~A?" (mus-header-type-name (mus-sound-header-type "test.snd"))))
 	(if (not (= (sample-type ab) mus-mulaw))
-	    (snd-display ";save-as mulaw -> ~A?" (mus-sample-type-name (sample-type ab))))
+	    (snd-display "save-as mulaw -> ~A?" (mus-sample-type-name (sample-type ab))))
 	(if (not (= (mus-sound-sample-type "test.snd") mus-mulaw))
-	    (snd-display ";saved-as mulaw -> ~A?" (mus-sample-type-name (mus-sound-sample-type "test.snd"))))
-	(if (fneq (sample 1000 ab) samp) (snd-display ";ircam[1000] = ~A?" (sample 1000 ab)))
+	    (snd-display "saved-as mulaw -> ~A?" (mus-sample-type-name (mus-sound-sample-type "test.snd"))))
+	(if (fneq (sample 1000 ab) samp) (snd-display "ircam[1000] = ~A?" (sample 1000 ab)))
 	(close-sound ab))
       (save-sound-as "test.snd" ob :header-type mus-next :sample-type mus-alaw)
       (let ((ab (open-sound "test.snd")))
 	(if (not (= (header-type ab) mus-next)) 
-	    (snd-display ";save-as next -> ~A?" (mus-header-type-name (header-type ab))))
+	    (snd-display "save-as next -> ~A?" (mus-header-type-name (header-type ab))))
 	(if (not (= (mus-sound-header-type "test.snd") mus-next)) 
-	    (snd-display ";saved-as next -> ~A?" (mus-header-type-name (mus-sound-header-type "test.snd"))))
+	    (snd-display "saved-as next -> ~A?" (mus-header-type-name (mus-sound-header-type "test.snd"))))
 	(if (not (= (sample-type ab) mus-alaw)) 
-	    (snd-display ";save-as alaw -> ~A?" (mus-sample-type-name (sample-type ab))))
+	    (snd-display "save-as alaw -> ~A?" (mus-sample-type-name (sample-type ab))))
 	(if (not (= (mus-sound-sample-type "test.snd") mus-alaw)) 
-	    (snd-display ";saved-as alaw -> ~A?" (mus-sample-type-name (mus-sound-sample-type "test.snd"))))
-	(if (fneq (sample 1000 ab) samp) (snd-display ";next (alaw)[1000] = ~A?" (sample 1000 ab)))
+	    (snd-display "saved-as alaw -> ~A?" (mus-sample-type-name (mus-sound-sample-type "test.snd"))))
+	(if (fneq (sample 1000 ab) samp) (snd-display "next (alaw)[1000] = ~A?" (sample 1000 ab)))
 	(close-sound ab))
       (save-sound-as "test.snd" ob :header-type mus-next :sample-type mus-ldouble)
       (let ((ab (open-sound "test.snd")))
 	(if (not (= (header-type ab) mus-next)) 
-	    (snd-display ";save-as dbl next -> ~A?" (mus-header-type-name (header-type ab))))
+	    (snd-display "save-as dbl next -> ~A?" (mus-header-type-name (header-type ab))))
 	(if (not (= (sample-type ab) mus-ldouble)) 
-	    (snd-display ";save-as dbl -> ~A?" (mus-sample-type-name (sample-type ab))))
-	(if (fneq (sample 1000 ab) samp) (snd-display ";next (dbl)[1000] = ~A?" (sample 1000 ab)))
+	    (snd-display "save-as dbl -> ~A?" (mus-sample-type-name (sample-type ab))))
+	(if (fneq (sample 1000 ab) samp) (snd-display "next (dbl)[1000] = ~A?" (sample 1000 ab)))
 	(close-sound ab))
       (save-sound-as "test.snd" ob :header-type mus-next :sample-type mus-bshort)
       (let ((ab (open-sound "test.snd")))
 	(if (not (= (header-type ab) mus-next)) 
-	    (snd-display ";save-as next -> ~A?" (mus-header-type-name (header-type ab))))
+	    (snd-display "save-as next -> ~A?" (mus-header-type-name (header-type ab))))
 	(if (not (= (mus-sound-header-type "test.snd") mus-next)) 
-	    (snd-display ";saved-as next -> ~A?" (mus-header-type-name (mus-sound-header-type "test.snd"))))
+	    (snd-display "saved-as next -> ~A?" (mus-header-type-name (mus-sound-header-type "test.snd"))))
 	(if (not (= (sample-type ab) mus-bshort)) 
-	    (snd-display ";save-as short -> ~A?" (mus-sample-type-name (sample-type ab))))
+	    (snd-display "save-as short -> ~A?" (mus-sample-type-name (sample-type ab))))
 	(if (not (= (mus-sound-sample-type "test.snd") mus-bshort)) 
-	    (snd-display ";saved-as short -> ~A?" (mus-sample-type-name (mus-sound-sample-type "test.snd"))))
-	(if (fneq (sample 1000 ab) samp) (snd-display ";next (short)[1000] = ~A?" (sample 1000 ab)))
+	    (snd-display "saved-as short -> ~A?" (mus-sample-type-name (mus-sound-sample-type "test.snd"))))
+	(if (fneq (sample 1000 ab) samp) (snd-display "next (short)[1000] = ~A?" (sample 1000 ab)))
 	(set! (hook-functions update-hook) ())
 	(set! (y-bounds ab 0) (list -3.0 3.0))
 	(set! (sample-type ab) mus-lshort)
 	(if (not (equal? ab (find-sound "test.snd"))) (set! ab (find-sound "test.snd"))) ; these set!'s can change the index via update-sound
-	(if (not (= (sample-type ab) mus-lshort)) (snd-display ";set sample-type: ~A?" (mus-sample-type-name (sample-type ab))))
+	(if (not (= (sample-type ab) mus-lshort)) (snd-display "set sample-type: ~A?" (mus-sample-type-name (sample-type ab))))
 	(when (and with-gui
 		   (not (equal? (y-bounds ab 0) '(-3.0 3.0))))
-	  (snd-display ";set sample type y-bounds: ~A?" (y-bounds ab 0)))
+	  (snd-display "set sample type y-bounds: ~A?" (y-bounds ab 0)))
 	(set! (y-bounds ab 0) (list 2.0))
 	(when (and with-gui
 		   (not (equal? (y-bounds ab 0) '(-2.0 2.0))))
-	  (snd-display ";set sample type y-bounds 1: ~A?" (y-bounds ab 0)))
+	  (snd-display "set sample type y-bounds 1: ~A?" (y-bounds ab 0)))
 	(set! (y-bounds ab 0) (list -2.0))
 	(when (and with-gui
 		   (not (equal? (y-bounds ab 0) '(-2.0 2.0))))
-	  (snd-display ";set sample type y-bounds -2: ~A?" (y-bounds ab 0)))
+	  (snd-display "set sample type y-bounds -2: ~A?" (y-bounds ab 0)))
 	(set! (header-type ab) mus-aifc)
 	(if (not (equal? ab (find-sound "test.snd"))) (set! ab (find-sound "test.snd")))
-	(if (not (= (header-type ab) mus-aifc)) (snd-display ";set header-type: ~A?" (mus-header-type-name (header-type ab))))
+	(if (not (= (header-type ab) mus-aifc)) (snd-display "set header-type: ~A?" (mus-header-type-name (header-type ab))))
 	(set! (channels ab) 3)
 	(if (not (equal? ab (find-sound "test.snd"))) (set! ab (find-sound "test.snd")))
-	(if (not (= (channels ab) 3)) (snd-display ";set chans: ~A?" (channels ab)))
+	(if (not (= (channels ab) 3)) (snd-display "set chans: ~A?" (channels ab)))
 	(set! (data-location ab) 1234)
 	(if (not (equal? ab (find-sound "test.snd"))) (set! ab (find-sound "test.snd")))
-	(if (not (= (data-location ab) 1234)) (snd-display ";set data-location: ~A?" (data-location ab)))
+	(if (not (= (data-location ab) 1234)) (snd-display "set data-location: ~A?" (data-location ab)))
 	(let-temporarily (((data-size ab) 1234))
 	  (if (not (equal? ab (find-sound "test.snd"))) (set! ab (find-sound "test.snd")))
-	  (if (not (= (data-size ab) 1234)) (snd-display ";set data-size: ~A?" (data-size ab))))
+	  (if (not (= (data-size ab) 1234)) (snd-display "set data-size: ~A?" (data-size ab))))
 	(set! (srate ab) 12345)
 	(if (not (equal? ab (find-sound "test.snd"))) (set! ab (find-sound "test.snd")))
-	(if (not (= (srate ab) 12345)) (snd-display ";set srate: ~A?" (srate ab)))
+	(if (not (= (srate ab) 12345)) (snd-display "set srate: ~A?" (srate ab)))
 	(close-sound ab))
       (save-sound-as "test.snd" ob :header-type mus-next :sample-type mus-bfloat)
       (let ((ab (open-sound "test.snd")))
 	(if (not (= (header-type ab) mus-next)) 
-	    (snd-display ";save-as next -> ~A?" (mus-header-type-name (header-type ab))))
+	    (snd-display "save-as next -> ~A?" (mus-header-type-name (header-type ab))))
 	(if (not (= (mus-sound-header-type "test.snd") mus-next)) 
-	    (snd-display ";saved-as next -> ~A?" (mus-header-type-name (mus-sound-header-type "test.snd"))))
+	    (snd-display "saved-as next -> ~A?" (mus-header-type-name (mus-sound-header-type "test.snd"))))
 	(if (not (= (sample-type ab) mus-bfloat)) 
-	    (snd-display ";save-as float -> ~A?" (mus-sample-type-name (sample-type ab))))
+	    (snd-display "save-as float -> ~A?" (mus-sample-type-name (sample-type ab))))
 	(if (not (= (mus-sound-sample-type "test.snd") mus-bfloat)) 
-	    (snd-display ";saved-as float -> ~A?" (mus-sample-type-name (mus-sound-sample-type "test.snd"))))
-	(if (fneq (sample 1000 ab) samp) (snd-display ";next (float)[1000] = ~A?" (sample 1000 ab)))
+	    (snd-display "saved-as float -> ~A?" (mus-sample-type-name (mus-sound-sample-type "test.snd"))))
+	(if (fneq (sample 1000 ab) samp) (snd-display "next (float)[1000] = ~A?" (sample 1000 ab)))
 	(close-sound ab))
       (save-sound-as "test.snd" ob :header-type mus-next :sample-type mus-ldouble)
       (close-sound ob)
       (let ((ab (open-sound "test.snd")))
 	(set! (sample-type) mus-lshort)
 	(if (not (equal? ab (find-sound "test.snd"))) (set! ab (find-sound "test.snd")))
-	(if (not (= (sample-type) mus-lshort)) (snd-display ";set sample-type: ~A?" (mus-sample-type-name (sample-type))))
+	(if (not (= (sample-type) mus-lshort)) (snd-display "set sample-type: ~A?" (mus-sample-type-name (sample-type))))
 	(set! (header-type) mus-aifc)
 	(if (not (equal? ab (find-sound "test.snd"))) (set! ab (find-sound "test.snd")))
-	(if (not (= (header-type) mus-aifc)) (snd-display ";set header-type: ~A?" (mus-header-type-name (header-type))))
+	(if (not (= (header-type) mus-aifc)) (snd-display "set header-type: ~A?" (mus-header-type-name (header-type))))
 	(set! (channels) 3)
 	(if (not (equal? ab (find-sound "test.snd"))) (set! ab (find-sound "test.snd")))
-	(if (not (= (channels) 3)) (snd-display ";set chans: ~A?" (channels)))
+	(if (not (= (channels) 3)) (snd-display "set chans: ~A?" (channels)))
 	(set! (data-location) 1234)
 	(if (not (equal? ab (find-sound "test.snd"))) (set! ab (find-sound "test.snd")))
-	(if (not (= (data-location) 1234)) (snd-display ";set data-location: ~A?" (data-location)))
+	(if (not (= (data-location) 1234)) (snd-display "set data-location: ~A?" (data-location)))
 	(set! (srate) 12345)
 	(if (not (equal? ab (find-sound "test.snd"))) (set! ab (find-sound "test.snd")))
-	(if (not (= (srate) 12345)) (snd-display ";set srate: ~A?" (srate)))
+	(if (not (= (srate) 12345)) (snd-display "set srate: ~A?" (srate)))
 	(close-sound ab)))
     
     (let ((ind (open-sound "2a.snd")))
       (save-sound-as "test.snd" :sample-type mus-l24int :header-type mus-riff :channel 0)
       (let ((ind0 (open-sound "test.snd")))
 	(if (not (= (channels ind0) 1)) 
-	    (snd-display ";save-sound-as :channel 0 chans: ~A" (channels ind0)))
+	    (snd-display "save-sound-as :channel 0 chans: ~A" (channels ind0)))
 	(if (not (= (sample-type ind0) mus-l24int)) 
-	    (snd-display ";save-sound-as :channel 0 sample-type: ~A ~A" (sample-type ind0) (mus-sample-type-name (sample-type ind0))))
+	    (snd-display "save-sound-as :channel 0 sample-type: ~A ~A" (sample-type ind0) (mus-sample-type-name (sample-type ind0))))
 	(if (not (= (header-type ind0) mus-riff))
-	    (snd-display ";save-sound-as :channel 0 header-type: ~A ~A" (header-type ind0) (mus-header-type-name (header-type ind0))))
+	    (snd-display "save-sound-as :channel 0 header-type: ~A ~A" (header-type ind0) (mus-header-type-name (header-type ind0))))
 	(if (not (= (srate ind0) (srate ind)))
-	    (snd-display ";save-sound-as :channel 0 srates: ~A ~A" (srate ind0) (srate ind)))    
+	    (snd-display "save-sound-as :channel 0 srates: ~A ~A" (srate ind0) (srate ind)))    
 	(if (not (= (framples ind0) (framples ind 0)))
-	    (snd-display ";save-sound-as :channel 0 framples: ~A ~A" (framples ind0) (framples ind 0)))
+	    (snd-display "save-sound-as :channel 0 framples: ~A ~A" (framples ind0) (framples ind 0)))
 	(if (fneq (maxamp ind0 0) (maxamp ind 0))
-	    (snd-display ";save-sound-as :channel 0 maxamps: ~A ~A" (maxamp ind0 0) (maxamp ind 0)))
+	    (snd-display "save-sound-as :channel 0 maxamps: ~A ~A" (maxamp ind0 0) (maxamp ind 0)))
 	(close-sound ind0))
       (save-sound-as "test.snd" :sample-type mus-l24int :header-type mus-riff)
       (let ((ind0 (open-sound "test.snd")))
 	(if (not (= (channels ind0) 2)) 
-	    (snd-display ";save-sound-as chans: ~A" (channels ind0)))
+	    (snd-display "save-sound-as chans: ~A" (channels ind0)))
 	(if (not (= (sample-type ind0) mus-l24int)) 
-	    (snd-display ";save-sound-as sample-type: ~A ~A" (sample-type ind0) (mus-sample-type-name (sample-type ind0))))
+	    (snd-display "save-sound-as sample-type: ~A ~A" (sample-type ind0) (mus-sample-type-name (sample-type ind0))))
 	(if (not (= (header-type ind0) mus-riff))
-	    (snd-display ";save-sound-as header-type: ~A ~A" (header-type ind0) (mus-header-type-name (header-type ind0))))
+	    (snd-display "save-sound-as header-type: ~A ~A" (header-type ind0) (mus-header-type-name (header-type ind0))))
 	(if (not (= (srate ind0) (srate ind)))
-	    (snd-display ";save-sound-as srates: ~A ~A" (srate ind0) (srate ind)))    
+	    (snd-display "save-sound-as srates: ~A ~A" (srate ind0) (srate ind)))    
 	(if (not (= (framples ind0) (framples ind 0)))
-	    (snd-display ";save-sound-as framples: ~A ~A" (framples ind0) (framples ind 0)))
+	    (snd-display "save-sound-as framples: ~A ~A" (framples ind0) (framples ind 0)))
 	(if (fneq (maxamp ind0 0) (maxamp ind 0))
-	    (snd-display ";save-sound-as maxamps: ~A ~A" (maxamp ind0 0) (maxamp ind 0)))
+	    (snd-display "save-sound-as maxamps: ~A ~A" (maxamp ind0 0) (maxamp ind 0)))
 	(close-sound ind0))
       (save-sound-as "test.snd" :sample-type mus-b24int :header-type mus-aiff)
       (let ((ind0 (open-sound "test.snd")))
 	(if (not (= (channels ind0) 2)) 
-	    (snd-display ";save-sound-as chans: ~A" (channels ind0)))
+	    (snd-display "save-sound-as chans: ~A" (channels ind0)))
 	(if (not (= (sample-type ind0) mus-b24int)) 
-	    (snd-display ";save-sound-as sample-type: ~A ~A" (sample-type ind0) (mus-sample-type-name (sample-type ind0))))
+	    (snd-display "save-sound-as sample-type: ~A ~A" (sample-type ind0) (mus-sample-type-name (sample-type ind0))))
 	(if (not (= (header-type ind0) mus-aiff))
-	    (snd-display ";save-sound-as header-type: ~A ~A" (header-type ind0) (mus-header-type-name (header-type ind0))))
+	    (snd-display "save-sound-as header-type: ~A ~A" (header-type ind0) (mus-header-type-name (header-type ind0))))
 	(if (not (= (srate ind0) (srate ind)))
-	    (snd-display ";save-sound-as srates: ~A ~A" (srate ind0) (srate ind)))    
+	    (snd-display "save-sound-as srates: ~A ~A" (srate ind0) (srate ind)))    
 	(if (not (= (framples ind0) (framples ind 0)))
-	    (snd-display ";save-sound-as framples: ~A ~A" (framples ind0) (framples ind 0)))
+	    (snd-display "save-sound-as framples: ~A ~A" (framples ind0) (framples ind 0)))
 	(if (fneq (maxamp ind0 0) (maxamp ind 0))
-	    (snd-display ";save-sound-as maxamps: ~A ~A" (maxamp ind0 0) (maxamp ind 0)))
+	    (snd-display "save-sound-as maxamps: ~A ~A" (maxamp ind0 0) (maxamp ind 0)))
 	(close-sound ind0))
       (save-sound-as "test.snd" :sample-type mus-bfloat :header-type mus-aifc :channel 1 :srate 12345)
       (let ((ind0 (open-sound "test.snd")))
 	(if (not (= (channels ind0) 1)) 
-	    (snd-display ";save-sound-as :channel 1 chans: ~A" (channels ind0)))
+	    (snd-display "save-sound-as :channel 1 chans: ~A" (channels ind0)))
 	(if (not (= (sample-type ind0) mus-bfloat)) 
-	    (snd-display ";save-sound-as :channel 1 sample-type: ~A ~A" (sample-type ind0) (mus-sample-type-name (sample-type ind0))))
+	    (snd-display "save-sound-as :channel 1 sample-type: ~A ~A" (sample-type ind0) (mus-sample-type-name (sample-type ind0))))
 	(if (not (= (header-type ind0) mus-aifc))
-	    (snd-display ";save-sound-as :channel 1 header-type: ~A ~A" (header-type ind0) (mus-header-type-name (header-type ind0))))
+	    (snd-display "save-sound-as :channel 1 header-type: ~A ~A" (header-type ind0) (mus-header-type-name (header-type ind0))))
 	(if (not (= (srate ind0) 12345))
-	    (snd-display ";save-sound-as :channel 1 srates: ~A ~A" (srate ind0) (srate ind)))    
+	    (snd-display "save-sound-as :channel 1 srates: ~A ~A" (srate ind0) (srate ind)))    
 	(if (not (= (framples ind0) (framples ind 1)))
-	    (snd-display ";save-sound-as :channel 1 framples: ~A ~A" (framples ind0) (framples ind 1)))
+	    (snd-display "save-sound-as :channel 1 framples: ~A ~A" (framples ind0) (framples ind 1)))
 	(if (fneq (maxamp ind0 0) (maxamp ind 1))
-	    (snd-display ";save-sound-as :channel 1 maxamps: ~A ~A" (maxamp ind0 0) (maxamp ind 1)))
+	    (snd-display "save-sound-as :channel 1 maxamps: ~A ~A" (maxamp ind0 0) (maxamp ind 1)))
 	(close-sound ind0))
       (save-sound-as "test.snd" :channel 1 :comment "this is a test")
       (let ((ind0 (open-sound "test.snd")))
 	(if (not (= (channels ind0) 1)) 
-	    (snd-display ";save-sound-as :channel 1 (1) chans: ~A" (channels ind0)))
+	    (snd-display "save-sound-as :channel 1 (1) chans: ~A" (channels ind0)))
 	(if (not (= (sample-type ind0) (sample-type ind)))
-	    (snd-display ";save-sound-as :channel 1 (1) sample-type: ~A ~A" (sample-type ind0) (mus-sample-type-name (sample-type ind0))))
+	    (snd-display "save-sound-as :channel 1 (1) sample-type: ~A ~A" (sample-type ind0) (mus-sample-type-name (sample-type ind0))))
 	(if (not (= (header-type ind0) (header-type ind)))
-	    (snd-display ";save-sound-as :channel 1 (1) header-type: ~A ~A" (header-type ind0) (mus-header-type-name (header-type ind0))))
+	    (snd-display "save-sound-as :channel 1 (1) header-type: ~A ~A" (header-type ind0) (mus-header-type-name (header-type ind0))))
 	(if (not (= (srate ind0) (srate ind)))
-	    (snd-display ";save-sound-as :channel 1 (1) srates: ~A ~A" (srate ind0) (srate ind)))    
+	    (snd-display "save-sound-as :channel 1 (1) srates: ~A ~A" (srate ind0) (srate ind)))    
 	(if (not (= (framples ind0) (framples ind 1)))
-	    (snd-display ";save-sound-as :channel 1 (1) framples: ~A ~A" (framples ind0) (framples ind 1)))
+	    (snd-display "save-sound-as :channel 1 (1) framples: ~A ~A" (framples ind0) (framples ind 1)))
 	(if (fneq (maxamp ind0 0) (maxamp ind 1))
-	    (snd-display ";save-sound-as :channel 1 (1) maxamps: ~A ~A" (maxamp ind0 0) (maxamp ind 1)))
+	    (snd-display "save-sound-as :channel 1 (1) maxamps: ~A ~A" (maxamp ind0 0) (maxamp ind 1)))
 	(if (not (string=? (comment ind0) "this is a test"))
-	    (snd-display ";save-sound-as :channel 0 (1) comment: ~A" (comment ind0)))
+	    (snd-display "save-sound-as :channel 0 (1) comment: ~A" (comment ind0)))
 	(close-sound ind0))
       (close-sound ind))
     
@@ -2869,14 +2869,14 @@
 	  (let ((ind (open-sound fsnd)))
 	    (if (or (fneq (sample 132300 ind 0) .148)
 		    (fneq (sample 132300 ind 1) .126))
-		(snd-display ";aifc sowt trouble: ~A ~A" (sample 132300 ind 0) (sample 132300 ind 1)))
+		(snd-display "aifc sowt trouble: ~A ~A" (sample 132300 ind 0) (sample 132300 ind 1)))
 	    (close-sound ind))))
     (let ((fsnd (string-append sf-dir "M1F1-float64C-AFsp.aif")))
       (if (file-exists? fsnd)
 	  (let ((ind (open-sound fsnd)))
 	    (if (or (fneq (sample 8000 ind 0) -0.024)
 		    (fneq (sample 8000 ind 1) 0.021))
-		(snd-display ";aifc fl64 trouble: ~A ~A" (sample 8000 ind 0) (sample 8000 ind 1)))
+		(snd-display "aifc fl64 trouble: ~A ~A" (sample 8000 ind 0) (sample 8000 ind 1)))
 	    (close-sound ind))))
     
     (for-each (lambda (n vals)
@@ -2887,7 +2887,7 @@
 				  (lambda args (car args)))))
 		  (if (not (or (equal? val vals)
 			       (eq? val 'mus-error)))
-		      (snd-display ";~A: ~A ~A" n val vals))))
+		      (snd-display "~A: ~A ~A" n val vals))))
 	      (list (string-append sf-dir "bad_chans.snd")
 		    (string-append sf-dir "bad_srate.snd")
 		    (string-append sf-dir "bad_data_format.snd")
@@ -2914,7 +2914,7 @@
     (let ((ind (open-sound (string-append "/usr/include/sys/" home-dir "/cl/oboe.snd"))))
       (if (not (and (sound? ind)
 		    (string=? (short-file-name ind) "oboe.snd")))
-	  (snd-display ";open-sound with slashes: ~A ~A" ind (and (sound? ind) (short-file-name ind))))
+	  (snd-display "open-sound with slashes: ~A ~A" ind (and (sound? ind) (short-file-name ind))))
       (hook-push bad-header-hook (lambda (hook) (set! (hook 'result) #t)))
       (for-each (lambda (n)
 		  (catch #t (lambda () 
@@ -2949,7 +2949,7 @@
     (for-each close-sound (sounds))
     
     (if (selected-sound)
-	(snd-display ";selected-sound ~A ~A" (selected-sound) (sounds)))
+	(snd-display "selected-sound ~A ~A" (selected-sound) (sounds)))
     
     (if (file-exists? (string-append (or sf-dir "") "a.sf2"))
 	(let ((fil (open-sound (string-append (or sf-dir "") "a.sf2"))))
@@ -2958,7 +2958,7 @@
 		(if (or (null? loops)
 			(not (= (caddar loops) 65390))
 			(not (= (cadadr loops) 65490)))
-		    (snd-display ";soundfont-info: ~A?" loops))
+		    (snd-display "soundfont-info: ~A?" loops))
 		(close-sound fil)))))
     
     (if (file-exists? "fmv5.snd") (delete-file "fmv5.snd"))
@@ -2970,7 +2970,7 @@
 		    (lambda () (open-sound (string-append sf-dir file)))
 		    (lambda args args))))
 	 (if (not (eq? (car tag) 'mus-error))
-	     (snd-display ";open-sound ~A: ~A" file tag))))
+	     (snd-display "open-sound ~A: ~A" file tag))))
      '("trunc.snd" "trunc.aiff" "trunc.wav" "trunc.sf" "trunc.voc" "trunc.nist" "bad.wav" 
        "trunc1.aiff" "badform.aiff"))
     
@@ -2981,28 +2981,28 @@
 		    (= (srate ind) 22050)
 		    (= (data-location ind) 0)
 		    (= (framples ind) 0)))
-	  (snd-display ";open raw: ~A ~A ~A ~A ~A" (sample-type ind) (chans ind) (srate ind) (data-location ind) (framples ind)))
+	  (snd-display "open raw: ~A ~A ~A ~A ~A" (sample-type ind) (chans ind) (srate ind) (data-location ind) (framples ind)))
       (set! (hook-functions open-raw-sound-hook) ())
       (close-sound ind))
     
     (let ((sd (make-float-vector '(1 1))))
-      (if (fneq (sd 0 0) 0.0) (snd-display ";vector2 ref: ~A" (sd 0 0)))
+      (if (fneq (sd 0 0) 0.0) (snd-display "vector2 ref: ~A" (sd 0 0)))
       (set! (sd 0 0) 1.0)
-      (if (fneq (sd 0 0) 1.0) (snd-display ";vector2 set: ~A" (sd 0 0)))
+      (if (fneq (sd 0 0) 1.0) (snd-display "vector2 set: ~A" (sd 0 0)))
       (if (not (equal? sd (let ((sd1 (make-float-vector '(1 1)))) (float-vector-set! sd1 0 0 1.0) sd1)))
-	  (snd-display ";vector2 set not equal: ~A" sd)))
+	  (snd-display "vector2 set not equal: ~A" sd)))
     
     (let ((sd (make-float-vector '(2 3))))
-      (if (fneq (sd 0 0) 0.0) (snd-display ";vector2 ref (1): ~A" (sd 0 0)))
+      (if (fneq (sd 0 0) 0.0) (snd-display "vector2 ref (1): ~A" (sd 0 0)))
       (set! (sd 1 0) 1.0)
-      (if (fneq (sd 1 0) 1.0) (snd-display ";vector2 set (1 0): ~A" (sd 1 0)))
+      (if (fneq (sd 1 0) 1.0) (snd-display "vector2 set (1 0): ~A" (sd 1 0)))
       (set! (sd 1 2) 2.0)
-      (if (fneq (sd 1 2) 2.0) (snd-display ";vector2 set (1 2): ~A" (sd 1 2)))
+      (if (fneq (sd 1 2) 2.0) (snd-display "vector2 set (1 2): ~A" (sd 1 2)))
       (if (not (equal? sd (let ((sd1 (make-float-vector '(2 3))))
 			    (float-vector-set! sd1 1 0 1.0)
 			    (float-vector-set! sd1 1 2 2.0)
 			    sd1)))
-	  (snd-display ";vector2 set (3) not equal: ~A" sd)))
+	  (snd-display "vector2 set (3) not equal: ~A" sd)))
     
     ;; check clipping choices
     (let ((ind (view-sound "oboe.snd")))
@@ -3012,7 +3012,7 @@
       (undo 1 ind 0)
       (let ((ind1 (open-sound "test.snd")))
 	(if (fneq (maxamp ind1 0) (* 10 (maxamp ind 0)))
-	    (snd-display ";clipping 0: ~A ~A" (maxamp ind1 0) (maxamp ind 0)))
+	    (snd-display "clipping 0: ~A ~A" (maxamp ind1 0) (maxamp ind 0)))
 	(close-sound ind1))
       (delete-file "test.snd")
       (set! *clipping* #t)
@@ -3021,7 +3021,7 @@
       (undo 1 ind 0)
       (let ((ind1 (open-sound "test.snd")))
 	(if (fneq (maxamp ind1 0) 1.0)
-	    (snd-display ";clipping 1: ~A ~A" (maxamp ind1 0) (maxamp ind 0)))
+	    (snd-display "clipping 1: ~A ~A" (maxamp ind1 0) (maxamp ind 0)))
 	(close-sound ind1))
       (delete-file "test.snd")
       (set! *clipping* #f)
@@ -3031,7 +3031,7 @@
       (let ((ind1 (open-sound "test.snd"))
 	    (baddy (scan-channel (lambda (y) (< y 0.0)))))
 	(if baddy
-	    (snd-display ";clipping 2: ~A" baddy))
+	    (snd-display "clipping 2: ~A" baddy))
 	(close-sound ind1))
       (delete-file "test.snd")
       (set! *clipping* #t)
@@ -3039,7 +3039,7 @@
       (let ((ind1 (open-sound "test.snd"))
 	    (baddy (scan-channel (lambda (y) (< y 0.0)))))
 	(if baddy
-	    (snd-display ";clipping 3: ~A ~A" baddy (sample baddy)))
+	    (snd-display "clipping 3: ~A ~A" baddy (sample baddy)))
 	(close-sound ind1))
       (delete-file "test.snd")
       (set! *clipping* #f)
@@ -3063,7 +3063,7 @@
     (let ((snd (open-sound "test.snd")))
       (let ((data (channel->float-vector 0 10)))
 	(if (not (mus-arrays-equal? data (float-vector 0.000 1.000 -1.000 1.000 0.000 0.000 -0.700 0.700 -0.200 0.200)))
-	    (snd-display ";unclipped 1: ~A" data)))
+	    (snd-display "unclipped 1: ~A" data)))
       (close-sound snd))
     (mus-sound-forget "test.snd")
     
@@ -3084,7 +3084,7 @@
     (let ((snd (open-sound "test.snd")))
       (let ((data (channel->float-vector 0 10)))
 	(if (not (mus-arrays-equal? data (float-vector 0.000 1.000 -1.000 1.000 1.000 -1.000 1.000 -1.000 1.000 -1.000)))
-	    (snd-display ";clipped: ~A" data)))
+	    (snd-display "clipped: ~A" data)))
       (close-sound snd))
     (set! *clipping* #f)
     
@@ -3094,7 +3094,7 @@
 			   (let* ((ind (open-sound file))
 				  (ndata (channel->float-vector beg dur ind 0)))
 			     (if (not (mus-arrays-equal? data ndata))
-				 (snd-display ";~A: ~A != ~A" file data ndata))
+				 (snd-display "~A: ~A != ~A" file data ndata))
 			     (close-sound ind)))
 			 (lambda args args)))))
       (test-data (string-append sf-dir "next-dbl.snd") 10 10 (float-vector 0.475 0.491 0.499 0.499 0.492 0.476 0.453 0.423 0.387 0.344))
@@ -3161,7 +3161,7 @@
 	    ((or (= i len)
 		 (not (string=? (errs i) (mus-error-type->string i))))
 	     (if (not (= i len))
-		 (snd-display ";mus-error-type->string ~D: ~A ~A" i (errs i) (mus-error-type->string i))))))
+		 (snd-display "mus-error-type->string ~D: ~A ~A" i (errs i) (mus-error-type->string i))))))
 
     (let ((cur-srate (mus-sound-srate "oboe.snd"))
 	  (cur-chans (mus-sound-chans "oboe.snd"))
@@ -3171,22 +3171,22 @@
 	  (cur-samps (mus-sound-samples "oboe.snd")))
       (set! (mus-sound-srate "oboe.snd") (* cur-srate 2))
       (if (not (= (* cur-srate 2) (mus-sound-srate "oboe.snd"))) 
-	  (snd-display ";set mus-sound-srate: ~A -> ~A" cur-srate (mus-sound-srate "oboe.snd")))
+	  (snd-display "set mus-sound-srate: ~A -> ~A" cur-srate (mus-sound-srate "oboe.snd")))
       (set! (mus-sound-samples "oboe.snd") (* cur-samps 2))
       (if (not (= (* cur-samps 2) (mus-sound-samples "oboe.snd"))) 
-	  (snd-display ";set mus-sound-samples: ~A -> ~A" cur-samps (mus-sound-samples "oboe.snd")))
+	  (snd-display "set mus-sound-samples: ~A -> ~A" cur-samps (mus-sound-samples "oboe.snd")))
       (set! (mus-sound-chans "oboe.snd") (* cur-chans 2))
       (if (not (= (* cur-chans 2) (mus-sound-chans "oboe.snd"))) 
-	  (snd-display ";set mus-sound-chans: ~A -> ~A" cur-chans (mus-sound-chans "oboe.snd")))
+	  (snd-display "set mus-sound-chans: ~A -> ~A" cur-chans (mus-sound-chans "oboe.snd")))
       (set! (mus-sound-data-location "oboe.snd") (* cur-loc 2))
       (if (not (= (* cur-loc 2) (mus-sound-data-location "oboe.snd"))) 
-	  (snd-display ";set mus-sound-data-location: ~A -> ~A" cur-loc (mus-sound-data-location "oboe.snd")))
+	  (snd-display "set mus-sound-data-location: ~A -> ~A" cur-loc (mus-sound-data-location "oboe.snd")))
       (set! (mus-sound-header-type "oboe.snd") mus-nist)
       (if (not (= mus-nist (mus-sound-header-type "oboe.snd"))) 
-	  (snd-display ";set mus-sound-header-type: ~A -> ~A" cur-type (mus-sound-header-type "oboe.snd")))
+	  (snd-display "set mus-sound-header-type: ~A -> ~A" cur-type (mus-sound-header-type "oboe.snd")))
       (set! (mus-sound-sample-type "oboe.snd") mus-lintn)
       (if (not (= mus-lintn (mus-sound-sample-type "oboe.snd"))) 
-	  (snd-display ";set mus-sound-sample-type: ~A -> ~A" cur-format (mus-sound-sample-type "oboe.snd")))
+	  (snd-display "set mus-sound-sample-type: ~A -> ~A" cur-format (mus-sound-sample-type "oboe.snd")))
       (set! (mus-sound-srate "oboe.snd") cur-srate)
       (set! (mus-sound-samples "oboe.snd") cur-samps)
       (set! (mus-sound-chans "oboe.snd") cur-chans)
@@ -3210,22 +3210,22 @@
 	       (cur-samps (mus-sound-samples file)))
 	   (set! (mus-sound-srate file) (* cur-srate 2))
 	   (if (not (= (* cur-srate 2) (mus-sound-srate file))) 
-	       (snd-display ";~A: set mus-sound-srate: ~A -> ~A" file cur-srate (mus-sound-srate file)))
+	       (snd-display "~A: set mus-sound-srate: ~A -> ~A" file cur-srate (mus-sound-srate file)))
 	   (set! (mus-sound-samples file) (* cur-samps 2))
 	   (if (not (= (* cur-samps 2) (mus-sound-samples file))) 
-	       (snd-display ";~A: set mus-sound-samples: ~A -> ~A" file cur-samps (mus-sound-samples file)))
+	       (snd-display "~A: set mus-sound-samples: ~A -> ~A" file cur-samps (mus-sound-samples file)))
 	   (set! (mus-sound-chans file) (* cur-chans 2))
 	   (if (not (= (* cur-chans 2) (mus-sound-chans file))) 
-	       (snd-display ";~A: set mus-sound-chans: ~A -> ~A" file cur-chans (mus-sound-chans file)))
+	       (snd-display "~A: set mus-sound-chans: ~A -> ~A" file cur-chans (mus-sound-chans file)))
 	   (set! (mus-sound-data-location file) (* cur-loc 2))
 	   (if (not (= (* cur-loc 2) (mus-sound-data-location file))) 
-	       (snd-display ";~A: set mus-sound-data-location: ~A -> ~A" file cur-loc (mus-sound-data-location file)))
+	       (snd-display "~A: set mus-sound-data-location: ~A -> ~A" file cur-loc (mus-sound-data-location file)))
 	   (set! (mus-sound-header-type file) mus-nist)
 	   (if (not (= mus-nist (mus-sound-header-type file))) 
-	       (snd-display ";~A: set mus-sound-header-type: ~A -> ~A" file cur-type (mus-sound-header-type file)))
+	       (snd-display "~A: set mus-sound-header-type: ~A -> ~A" file cur-type (mus-sound-header-type file)))
 	   (set! (mus-sound-sample-type file) mus-lintn)
 	   (if (not (= mus-lintn (mus-sound-sample-type file))) 
-	       (snd-display ";~A: set mus-sound-sample-type: ~A -> ~A" file cur-format (mus-sound-sample-type file)))
+	       (snd-display "~A: set mus-sound-sample-type: ~A -> ~A" file cur-format (mus-sound-sample-type file)))
 	   (set! (mus-sound-srate file) cur-srate)
 	   (set! (mus-sound-samples file) cur-samps)
 	   (set! (mus-sound-chans file) cur-chans)
@@ -3245,25 +3245,25 @@
 		 (cur-samps (framples ind)))
 	     (set! (srate ind) (* cur-srate 2))
 	     (if (not (= (* cur-srate 2) (srate ind))) 
-		 (snd-display ";~A: set srate: ~A -> ~A" file cur-srate (srate ind)))
+		 (snd-display "~A: set srate: ~A -> ~A" file cur-srate (srate ind)))
 	     (set! (framples ind) (* cur-samps 2))
 	     (if (not (= (* cur-samps 2) (framples ind))) 
-		 (snd-display ";~A: set framples: ~A -> ~A" file cur-samps (framples ind)))
+		 (snd-display "~A: set framples: ~A -> ~A" file cur-samps (framples ind)))
 	     (set! (chans ind) (* cur-chans 2)) ; this can change the index
 	     (let ((xind (find-sound file)))
 	       (if (not (equal? ind xind))
 		   (set! ind xind)))
 	     (if (not (= (* cur-chans 2) (chans ind))) 
-		 (snd-display ";~A: set chans: ~A -> ~A" file cur-chans (chans ind)))
+		 (snd-display "~A: set chans: ~A -> ~A" file cur-chans (chans ind)))
 	     (set! (data-location ind) (* cur-loc 2))
 	     (if (not (= (* cur-loc 2) (data-location ind))) 
-		 (snd-display ";~A: set data-location: ~A -> ~A" file cur-loc (data-location ind)))
+		 (snd-display "~A: set data-location: ~A -> ~A" file cur-loc (data-location ind)))
 	     (set! (header-type ind) mus-nist)
 	     (if (not (= mus-nist (header-type ind))) 
-		 (snd-display ";~A: set header-type: ~A -> ~A" file cur-type (header-type ind)))
+		 (snd-display "~A: set header-type: ~A -> ~A" file cur-type (header-type ind)))
 	     (set! (sample-type ind) mus-lintn)
 	     (if (not (= mus-lintn (sample-type ind))) 
-		 (snd-display ";~A: set sample-type: ~A -> ~A" file cur-format (sample-type ind)))
+		 (snd-display "~A: set sample-type: ~A -> ~A" file cur-format (sample-type ind)))
 	     (set! (srate ind) cur-srate)
 	     (set! (framples ind) cur-samps)
 	     (set! (chans ind) cur-chans)
@@ -3282,57 +3282,57 @@
     (when with-big-file
       (let ((probable-framples (floor (* (floor *clm-srate*) 71999.1)))) ; silence as last .9 secs, so it probably wasn't written
 	(if (not (= (mus-sound-samples big-file-name) 3175160310))
-	    (snd-display ";bigger samples: ~A" (mus-sound-samples big-file-name)))
+	    (snd-display "bigger samples: ~A" (mus-sound-samples big-file-name)))
 	(if (not (= (mus-sound-framples big-file-name) 3175160310))
-	    (snd-display ";bigger framples: ~A" (mus-sound-framples big-file-name)))
+	    (snd-display "bigger framples: ~A" (mus-sound-framples big-file-name)))
 	(if (not (= (mus-sound-framples big-file-name) probable-framples))
-	    (snd-display ";bigger framples: ~A (probable: ~A)" (mus-sound-framples big-file-name) probable-framples))
+	    (snd-display "bigger framples: ~A (probable: ~A)" (mus-sound-framples big-file-name) probable-framples))
 	(if (not (= (mus-sound-length big-file-name) 6350320648))
-	    (snd-display ";bigger bytes: ~A" (mus-sound-length big-file-name)))
+	    (snd-display "bigger bytes: ~A" (mus-sound-length big-file-name)))
 	(if (fneq (mus-sound-duration big-file-name) 71999.1015)
-	    (snd-display ";bigger dur: ~A" (mus-sound-duration big-file-name)))
+	    (snd-display "bigger dur: ~A" (mus-sound-duration big-file-name)))
 	(let ((ind (open-sound big-file-name)))
-	  (if (not (= (framples ind) 3175160310)) (snd-display ";bigger framples: ~A" (framples ind)))
+	  (if (not (= (framples ind) 3175160310)) (snd-display "bigger framples: ~A" (framples ind)))
 	  (set! big-file-framples (framples ind))
-	  (if (not (= (framples ind) probable-framples)) (snd-display ";bigger framples: ~A (probable: ~A)" (framples ind) probable-framples))
-	  (if (not (= (framples ind 0 0) big-file-framples)) (snd-display ";bigger edpos-framples: ~A" (framples ind)))
+	  (if (not (= (framples ind) probable-framples)) (snd-display "bigger framples: ~A (probable: ~A)" (framples ind) probable-framples))
+	  (if (not (= (framples ind 0 0) big-file-framples)) (snd-display "bigger edpos-framples: ~A" (framples ind)))
 	  (let ((m1 (add-mark (* (floor *clm-srate*) 50000) ind)))
-	    (if (not (= (mark-sample m1) (* (floor *clm-srate*) 50000))) (snd-display ";bigger mark at: ~A" (mark-sample m1)))
+	    (if (not (= (mark-sample m1) (* (floor *clm-srate*) 50000))) (snd-display "bigger mark at: ~A" (mark-sample m1)))
 	    (set! (mark-sample m1) (* (floor *clm-srate*) 66000))
-	    (if (not (= (mark-sample m1) (* (floor *clm-srate*) 66000))) (snd-display ";bigger mark to: ~A" (mark-sample m1))))
+	    (if (not (= (mark-sample m1) (* (floor *clm-srate*) 66000))) (snd-display "bigger mark to: ~A" (mark-sample m1))))
 	  (let ((mx (mix-sound "oboe.snd" (* (floor *clm-srate*) 60000))))
 	    (if (not (mix? mx))
-		(snd-display ";no mix tag from mix-sound")
+		(snd-display "no mix tag from mix-sound")
 		(begin
-		  (if (not (= (mix-position mx) (* (floor *clm-srate*) 60000))) (snd-display ";bigger mix at: ~A" (mix-position mx)))
+		  (if (not (= (mix-position mx) (* (floor *clm-srate*) 60000))) (snd-display "bigger mix at: ~A" (mix-position mx)))
 		  (set! (mix-position mx) (* (floor *clm-srate*) 61000))
-		  (if (not (= (mix-position mx) (* (floor *clm-srate*) 61000))) (snd-display ";bigger mix to: ~A" (mix-position mx)))))
+		  (if (not (= (mix-position mx) (* (floor *clm-srate*) 61000))) (snd-display "bigger mix to: ~A" (mix-position mx)))))
 	    (undo 2))
 	  (let ((res (scan-channel (lambda (y) (> (abs y) 0.0)))))
 	    (if (or (not (pair? res))
 		    (> (cadr res) 100))
-		(snd-display ";bigger find not 0.0: ~A" res)))
+		(snd-display "bigger find not 0.0: ~A" res)))
 	  (let-temporarily ((*selection-creates-region* #f))
 	    (select-all ind)
-	    (if (not (= (selection-framples) (framples ind))) (snd-display ";bigger select all: ~A ~A" (selection-framples) (framples)))
+	    (if (not (= (selection-framples) (framples ind))) (snd-display "bigger select all: ~A ~A" (selection-framples) (framples)))
 	    (set! (selection-position) (* (floor *clm-srate*) 50000))
-	    (if (not (= (selection-position) (* (floor *clm-srate*) 50000))) (snd-display ";bigger select pos: ~A" (selection-position)))
+	    (if (not (= (selection-position) (* (floor *clm-srate*) 50000))) (snd-display "bigger select pos: ~A" (selection-position)))
 	    (set! (selection-position) 0)
 	    (set! (selection-framples) (* (floor *clm-srate*) 65000))
-	    (if (not (= (selection-framples) (* (floor *clm-srate*) 65000))) (snd-display ";bigger select len: ~A" (selection-framples))))
+	    (if (not (= (selection-framples) (* (floor *clm-srate*) 65000))) (snd-display "bigger select len: ~A" (selection-framples))))
 	  (let ((size 2260597782))   ;(* 44123 51234))
 	    (set! (cursor ind) (* (floor *clm-srate*) 50000))
-	    (if (not (= (cursor ind) (* (floor *clm-srate*) 50000))) (snd-display ";bigger cursor: ~A" (cursor ind)))
+	    (if (not (= (cursor ind) (* (floor *clm-srate*) 50000))) (snd-display "bigger cursor: ~A" (cursor ind)))
 	    (let ((m1 (add-mark size ind)))
-	      (if (not (= (mark-sample m1) size)) (snd-display ";bigger mark at: ~A" (mark-sample m1)))
+	      (if (not (= (mark-sample m1) size)) (snd-display "bigger mark at: ~A" (mark-sample m1)))
 	      (let ((mid (find-mark size)))
-		(if (not (and (number? mid) (= mid m1))) (snd-display ";bigger mark seach: ~A ~A" mid m1))))
+		(if (not (and (number? mid) (= mid m1))) (snd-display "bigger mark seach: ~A ~A" mid m1))))
 	    (let* ((msize 2701827782) ;(* 44123 61234)
 		   (mx (mix-sound "oboe.snd" msize))
 		   (mxd (find-mix msize)))
-	      (if (not (and (number? mxd) (= mxd mx))) (snd-display ";bigger find-mix ~A ~A" mxd mx)))
+	      (if (not (and (number? mxd) (= mxd mx))) (snd-display "bigger find-mix ~A ~A" mxd mx)))
 	    (set! (cursor ind) size)
-	    (if (not (= (cursor ind) size)) (snd-display ";bigger cursor 123: ~A" (cursor ind))))
+	    (if (not (= (cursor ind) size)) (snd-display "bigger cursor 123: ~A" (cursor ind))))
 	  (close-sound ind))))
     
     (let ((ind (new-sound "tmp.snd" 1 22050 mus-l24int mus-riff :size 100000)))
@@ -3353,21 +3353,21 @@
 	    (outa->fv v1 (- (* i incr) 0.5))
 	    (let ((v0 (samples 0 100000 ind1 0)))
 	      (if (not (mus-arrays-equal? v0 v1))
-		  (snd-display ";l24 (next) selection not saved correctly? ~A" v0))))
+		  (snd-display "l24 (next) selection not saved correctly? ~A" v0))))
 	  (close-sound ind1))
 	  
 	(save-selection "tmp1.snd" 22050 mus-l24int mus-aifc)
 	(let ((ind1 (open-sound "tmp1.snd")))
 	  (let ((v0 (samples 0 100000 ind1 0)))
 	    (if (not (mus-arrays-equal? v0 v1))
-		(snd-display ";l24 (aifc) selection not saved correctly? ~A" v0)))
+		(snd-display "l24 (aifc) selection not saved correctly? ~A" v0)))
 	  (close-sound ind1))
 	
 	(save-region reg "tmp1.snd" mus-l24int mus-next)
 	(let ((ind1 (open-sound "tmp1.snd")))
 	  (let ((v0 (samples 0 100000 ind1 0)))
 	    (if (not (mus-arrays-equal? v0 v1))
-		(snd-display ";l24 (next) region not saved correctly? ~A" v0)))
+		(snd-display "l24 (next) region not saved correctly? ~A" v0)))
 	  (close-sound ind1))
 	(delete-file "tmp1.snd")
 	(close-sound ind)
@@ -3377,15 +3377,15 @@
       (map-channel (lambda (y) 1.0))
       (env-channel '(0 0 .1 .1 .2 .2 .3 .3 .4 .4 .5 .5 .6 .6 .7 .7 .8 .8 .9  .9))
       (if (not (mus-arrays-equal? (channel->float-vector) (float-vector 0.000 0.100 0.200 0.300 0.400 0.500 0.600 0.700 0.800 0.900)))
-	  (snd-display ";ramp env by .1: ~A" (channel->float-vector)))
+	  (snd-display "ramp env by .1: ~A" (channel->float-vector)))
       (close-sound ind)))
   
   (set! (hook-functions open-raw-sound-hook) ())
   (hook-push open-raw-sound-hook (lambda (hook) (set! (hook 'result) #t)))
   (set! (hook-functions bad-header-hook) ())
   (hook-push bad-header-hook (lambda (hook) (set! (hook 'result) #t)))
-  (if (null? (hook-functions open-raw-sound-hook)) (snd-display ";add hook open-raw-sound-hook failed??"))
-  (if (null? (hook-functions bad-header-hook)) (snd-display ";add hook bad-header-hook failed??"))
+  (if (null? (hook-functions open-raw-sound-hook)) (snd-display "add hook open-raw-sound-hook failed??"))
+  (if (null? (hook-functions bad-header-hook)) (snd-display "add hook bad-header-hook failed??"))
   (let ((magic-words (list ".snd" "FORM" "AIFF" "AIFC" "COMM" "COMT" "INFO" "INST" "inst" "MARK" "SSND"
 			    "FVER" "NONE" "ULAW" "ulaw" "ima4" "raw " "sowt" "in32" "in24" "ni23" "fl32"
 			    "FL32" "fl64" "twos" "ALAW" "alaw" "APPL" "CLM " "RIFF" "RIFX" "WAVE" "fmt "
@@ -3401,8 +3401,8 @@
 	  (ctr 0))
       (for-each
        (lambda (magic)
-	 (if (null? (hook-functions open-raw-sound-hook)) (snd-display ";open-raw-sound-hook cleared??"))
-	 (if (null? (hook-functions bad-header-hook)) (snd-display ";bad-header-hook cleared??"))
+	 (if (null? (hook-functions open-raw-sound-hook)) (snd-display "open-raw-sound-hook cleared??"))
+	 (if (null? (hook-functions bad-header-hook)) (snd-display "bad-header-hook cleared??"))
 	 (if (file-exists? "test.snd")
 	     (delete-file "test.snd"))
 	 (mus-sound-forget "test.snd")
@@ -3419,7 +3419,7 @@
 		      (lambda args (car args)))))
 	   (when (and (number? tag)
 		      (sound? tag))
-	     (snd-display ";open-sound garbage ~A: ~A -> ~A?" magic tag (file->string "test.snd"))
+	     (snd-display "open-sound garbage ~A: ~A -> ~A?" magic tag (file->string "test.snd"))
 	     (if (sound? tag) (close-sound tag))))
 	 (delete-file "test.snd")
 	 (mus-sound-forget "test.snd")
@@ -3436,7 +3436,7 @@
 		      (lambda args (car args)))))
 	   (when (and (number? tag)
 		      (sound? tag))
-	     (snd-display ";open-sound plausible garbage ~A: ~A?" magic tag)
+	     (snd-display "open-sound plausible garbage ~A: ~A?" magic tag)
 	     (if (sound? tag) (close-sound tag))))
 	 (delete-file "test.snd")
 	 (mus-sound-forget "test.snd")
@@ -3453,7 +3453,7 @@
 		      (lambda args (car args)))))
 	   (when (and (number? tag)
 		      (sound? tag))
-	     (snd-display ";open-sound very plausible garbage ~A: ~A?" magic tag)
+	     (snd-display "open-sound very plausible garbage ~A: ~A?" magic tag)
 	     (if (sound? tag) (close-sound tag))))
 	 (set! ctr (+ ctr 1)))
        magic-words)))
@@ -3465,7 +3465,7 @@
       (display ".snd")
       (for-each write-byte '(0 0 0 28 0 1 141 24 0 0 0 18 0 0 86 34 0 0 0 1 0 0 0 0 0 1))))
   (if (not (= (mus-sound-sample-type "test.snd") mus-bshort))
-      (snd-display ";next 18: ~A" (mus-sound-sample-type "test.snd")))
+      (snd-display "next 18: ~A" (mus-sound-sample-type "test.snd")))
   (delete-file "test.snd")
   (mus-sound-forget "test.snd")
   (with-output-to-file "test.snd"
@@ -3478,7 +3478,7 @@
 	       (lambda args (car args)))))
     (when (and (number? tag)
 	       (sound? tag))
-      (snd-display ";open-sound next bad location ~A: ~A?" (data-location tag) tag)
+      (snd-display "open-sound next bad location ~A: ~A?" (data-location tag) tag)
       (close-sound tag)))
   (delete-file "test.snd")
   (mus-sound-forget "test.snd")
@@ -3512,9 +3512,9 @@
     (catch #t
       (lambda ()
 	(let ((ind (open-sound "test.aif")))
-	  (if (not (= (framples ind) 2)) (snd-display ";bad framples in header: ~A" (framples ind)))
+	  (if (not (= (framples ind) 2)) (snd-display "bad framples in header: ~A" (framples ind)))
 	  (close-sound ind)))
-      (lambda args (snd-display ";~S" args)))
+      (lambda args (snd-display "~S" args)))
     (delete-file "test.aif")
     (mus-sound-forget "test.aif")
     (make-aifc-file #o002 #o150 #o020)
@@ -3524,7 +3524,7 @@
 		 (lambda args (car args)))))
       (when (and (number? tag)
 		 (sound? tag))
-	(snd-display ";open-sound aifc no ssnd chunk ~A: ~A?" (data-location tag) tag)
+	(snd-display "open-sound aifc no ssnd chunk ~A: ~A?" (data-location tag) tag)
 	(close-sound tag)))
     (delete-file "test.aif")
     (mus-sound-forget "test.aif")
@@ -3536,7 +3536,7 @@
 		 (lambda args (car args)))))
       (when (and (number? tag)
 		 (sound? tag))
-	(snd-display ";open-sound aifc 0-len auth chunk ~A: ~A?" (data-location tag) tag)
+	(snd-display "open-sound aifc 0-len auth chunk ~A: ~A?" (data-location tag) tag)
 	(close-sound tag)))
     (delete-file "test.aif")
     (mus-sound-forget "test.aif")
@@ -3547,7 +3547,7 @@
 		 (lambda args (car args)))))
       (when (and (number? tag)
 		 (sound? tag))
-	(snd-display ";open-sound bits 80 ~A: ~A?" (sample-type tag) tag)
+	(snd-display "open-sound bits 80 ~A: ~A?" (sample-type tag) tag)
 	(close-sound tag)))
     (delete-file "test.aif")
     (mus-sound-forget "test.aif"))
@@ -3581,8 +3581,8 @@
   (catch #t
     (lambda ()
       (if (not (= (length (mus-sound-comment "test.aif")) 15))
-	  (snd-display ";aifc 3 aux comments: ~A?" (mus-sound-comment "test.aif"))))
-    (lambda args (snd-display ";~S" args)))
+	  (snd-display "aifc 3 aux comments: ~A?" (mus-sound-comment "test.aif"))))
+    (lambda args (snd-display "~S" args)))
   (delete-file "test.aif")
   (mus-sound-forget "test.aif")
   (with-output-to-file "test.aif"
@@ -3606,10 +3606,10 @@
   (catch #t
     (lambda ()
       (if (not (string=? (substring (mus-sound-comment "test.aif") 0 3) "bil"))
-	  (snd-display ";aifc trailing comt comment: ~A?" (mus-sound-comment "test.aif"))))
-    (lambda args (snd-display ";~S" args)))
+	  (snd-display "aifc trailing comt comment: ~A?" (mus-sound-comment "test.aif"))))
+    (lambda args (snd-display "~S" args)))
   (if (not (= (mus-sound-framples "test.aif") 2))
-      (snd-display ";aifc trailing comt framples: ~A?" (mus-sound-framples "test.aif")))
+      (snd-display "aifc trailing comt framples: ~A?" (mus-sound-framples "test.aif")))
   (catch #t
     (lambda ()
       (let ((ind (open-sound "test.aif")))
@@ -3617,9 +3617,9 @@
 		(fneq (sample 1) 0.00195)
 		(fneq (sample 2) 0.0)
 		(fneq (sample 3) 0.0))
-	    (snd-display ";aifc trailing comt samps: ~A ~A ~A ~A" (sample 0) (sample 1) (sample 2) (sample 3)))
+	    (snd-display "aifc trailing comt samps: ~A ~A ~A ~A" (sample 0) (sample 1) (sample 2) (sample 3)))
 	(close-sound ind)))
-    (lambda args (snd-display ";~S" args)))
+    (lambda args (snd-display "~S" args)))
   (delete-file "test.aif")
   (mus-sound-forget "test.aif")
   (with-output-to-file "test.aif"
@@ -3641,9 +3641,9 @@
       (write-byte #o000)))
   (if (not (and (string? (mus-sound-comment "test.aif"))
 		(string=? (substring (mus-sound-comment "test.aif") 0 3) "bil")))
-      (snd-display ";aifc trailing comt comment: ~A?" (mus-sound-comment "test.aif")))
+      (snd-display "aifc trailing comt comment: ~A?" (mus-sound-comment "test.aif")))
   (if (not (= (mus-sound-framples "test.aif") 2))
-      (snd-display ";aifc trailing comt (bogus) framples: ~A?" (mus-sound-framples "test.aif")))
+      (snd-display "aifc trailing comt (bogus) framples: ~A?" (mus-sound-framples "test.aif")))
   (catch #t
     (lambda ()
       (let ((ind (open-sound "test.aif")))
@@ -3651,9 +3651,9 @@
 		(fneq (sample 1) 0.00195)
 		(fneq (sample 2) 0.0)
 		(fneq (sample 3) 0.0))
-	    (snd-display ";aifc trailing comt samps (bogus frame setting): ~A ~A ~A ~A" (sample 0) (sample 1) (sample 2) (sample 3)))
+	    (snd-display "aifc trailing comt samps (bogus frame setting): ~A ~A ~A ~A" (sample 0) (sample 1) (sample 2) (sample 3)))
 	(close-sound ind)))
-    (lambda args (snd-display ";~S" args)))
+    (lambda args (snd-display "~S" args)))
   (delete-file "test.aif")
   (mus-sound-forget "test.aif")
   (with-output-to-file "test.aif"
@@ -3678,7 +3678,7 @@
 	       (lambda args (car args)))))
     (when (and (number? tag)
 	       (sound? tag))
-      (snd-display ";open-sound aifc 2 ssnd chunks ~A: ~A?" (data-location tag) tag)
+      (snd-display "open-sound aifc 2 ssnd chunks ~A: ~A?" (data-location tag) tag)
       (close-sound tag)))
   (delete-file "test.aif")
   (mus-sound-forget "test.aif")
@@ -3695,7 +3695,7 @@
 		 (open-sound "test.aif"))
 	       (lambda args (car args)))))
     (unless (eq? tag 'mus-error)
-      (snd-display ";open-sound aifc no comm chunk ~A?" tag)
+      (snd-display "open-sound aifc no comm chunk ~A?" tag)
       (if (and (number? tag)
 	       (sound? tag))
 	  (close-sound tag))))
@@ -3732,22 +3732,22 @@
   (catch #t
     (lambda ()
       (let ((gen (make-file->sample "test.aif")))
-	(if (fneq (gen 0) 0.93948) (snd-display ";file->sample chunked 0: ~A" (gen 0)))
-	(if (fneq (gen 1) 0.50195) (snd-display ";file->sample chunked 1: ~A" (gen 1)))
-	(if (fneq (gen 2) 0.0) (snd-display ";file->sample chunked eof: ~A" (gen 2)))
-	(if (fneq (gen 3) 0.0) (snd-display ";file->sample chunked eof+1: ~A" (gen 3))))
+	(if (fneq (gen 0) 0.93948) (snd-display "file->sample chunked 0: ~A" (gen 0)))
+	(if (fneq (gen 1) 0.50195) (snd-display "file->sample chunked 1: ~A" (gen 1)))
+	(if (fneq (gen 2) 0.0) (snd-display "file->sample chunked eof: ~A" (gen 2)))
+	(if (fneq (gen 3) 0.0) (snd-display "file->sample chunked eof+1: ~A" (gen 3))))
       (let ((file (open-sound "test.aif")))
-	(if (not (= (framples file) 2)) (snd-display ";chunked framples: ~A" (framples file)))
-	(if (fneq (sample 0) 0.93948) (snd-display ";file chunked 0: ~A" (sample 0)))
-	(if (fneq (sample 1) 0.50195) (snd-display ";file chunked 1: ~A" (sample 1)))
-	(if (fneq (sample 2) 0.0) (snd-display ";file chunked eof: ~A" (sample 2)))
-	(if (fneq (sample 3) 0.0) (snd-display ";file chunked eof+1: ~A" (sample 3)))
+	(if (not (= (framples file) 2)) (snd-display "chunked framples: ~A" (framples file)))
+	(if (fneq (sample 0) 0.93948) (snd-display "file chunked 0: ~A" (sample 0)))
+	(if (fneq (sample 1) 0.50195) (snd-display "file chunked 1: ~A" (sample 1)))
+	(if (fneq (sample 2) 0.0) (snd-display "file chunked eof: ~A" (sample 2)))
+	(if (fneq (sample 3) 0.0) (snd-display "file chunked eof+1: ~A" (sample 3)))
 	(close-sound file)))
-    (lambda args (snd-display ";~S" args)))
+    (lambda args (snd-display "~S" args)))
   (catch #t
     (lambda ()
-      (if (not (= (mus-sound-framples "test.aif") 2)) (snd-display ";chunked mus-sound-framples: ~A" (mus-sound-framples "test.aif"))))
-    (lambda args (snd-display ";~S" args)))
+      (if (not (= (mus-sound-framples "test.aif") 2)) (snd-display "chunked mus-sound-framples: ~A" (mus-sound-framples "test.aif"))))
+    (lambda args (snd-display "~S" args)))
   (delete-file "test.aif")
   (mus-sound-forget "test.aif")
   
@@ -3773,20 +3773,20 @@
   (catch #t
     (lambda ()
       (let ((gen (make-file->sample "test.aif")))
-	(if (fneq (gen 0) 0.93948) (snd-display ";file->sample chunked 0: ~A" (gen 0)))
-	(if (fneq (gen 1) 0.50195) (snd-display ";file->sample chunked 1: ~A" (gen 1)))
-	(if (fneq (gen 2) 0.0) (snd-display ";file->sample chunked eof: ~A" (gen 2)))
-	(if (fneq (gen 3) 0.0) (snd-display ";file->sample chunked eof+1: ~A" (gen 3))))
+	(if (fneq (gen 0) 0.93948) (snd-display "file->sample chunked 0: ~A" (gen 0)))
+	(if (fneq (gen 1) 0.50195) (snd-display "file->sample chunked 1: ~A" (gen 1)))
+	(if (fneq (gen 2) 0.0) (snd-display "file->sample chunked eof: ~A" (gen 2)))
+	(if (fneq (gen 3) 0.0) (snd-display "file->sample chunked eof+1: ~A" (gen 3))))
       (let ((file (open-sound "test.aif")))
-	(if (not (= (framples file) 2)) (snd-display ";chunked framples: ~A" (framples file)))
-	(if (fneq (sample 0) 0.93948) (snd-display ";file chunked 0: ~A" (sample 0)))
-	(if (fneq (sample 1) 0.50195) (snd-display ";file chunked 1: ~A" (sample 1)))
-	(if (fneq (sample 2) 0.0) (snd-display ";file chunked eof: ~A" (sample 2)))
-	(if (fneq (sample 3) 0.0) (snd-display ";file chunked eof+1: ~A" (sample 3)))
+	(if (not (= (framples file) 2)) (snd-display "chunked framples: ~A" (framples file)))
+	(if (fneq (sample 0) 0.93948) (snd-display "file chunked 0: ~A" (sample 0)))
+	(if (fneq (sample 1) 0.50195) (snd-display "file chunked 1: ~A" (sample 1)))
+	(if (fneq (sample 2) 0.0) (snd-display "file chunked eof: ~A" (sample 2)))
+	(if (fneq (sample 3) 0.0) (snd-display "file chunked eof+1: ~A" (sample 3)))
 	(if (not (equal? (comment) ";Written Mon 02-Nov-98 01:44 CST by root at ockeghem (Linux/X86) using Allegro CL, clm of 20-Oct-98"))
-	    (snd-display ";chunked appl comment: ~A" (comment)))
+	    (snd-display "chunked appl comment: ~A" (comment)))
 	(close-sound file)))
-    (lambda args (snd-display ";~S" args)))
+    (lambda args (snd-display "~S" args)))
   (delete-file "test.aif")
   (mus-sound-forget "test.aif")
   
@@ -3812,20 +3812,20 @@
   (catch #t
     (lambda ()
       (let ((gen (make-file->sample "test.aif")))
-	(if (fneq (gen 0 0) 0.93948) (snd-display ";file->sample chunked 0 0: ~A" (gen 0 0)))
-	(if (fneq (gen 0 1) 0.50195) (snd-display ";file->sample chunked 0 1: ~A" (gen 0 1)))
-	(if (fneq (gen 1 0) 0.0) (snd-display ";file->sample chunked eof(stereo): ~A" (gen 1 0)))
-	(if (fneq (gen 1 1) 0.0) (snd-display ";file->sample chunked eof+1 (stereo): ~A" (gen 1 1))))
+	(if (fneq (gen 0 0) 0.93948) (snd-display "file->sample chunked 0 0: ~A" (gen 0 0)))
+	(if (fneq (gen 0 1) 0.50195) (snd-display "file->sample chunked 0 1: ~A" (gen 0 1)))
+	(if (fneq (gen 1 0) 0.0) (snd-display "file->sample chunked eof(stereo): ~A" (gen 1 0)))
+	(if (fneq (gen 1 1) 0.0) (snd-display "file->sample chunked eof+1 (stereo): ~A" (gen 1 1))))
       (let ((file (open-sound "test.aif")))
-	(if (not (= (framples file) 1)) (snd-display ";chunked framples (1): ~A" (framples file)))
-	(if (fneq (sample 0 file 0) 0.93948) (snd-display ";file chunked 0 0: ~A" (sample 0 file 0)))
-	(if (fneq (sample 0 file 1) 0.50195) (snd-display ";file chunked 0 1: ~A" (sample 0 file 1)))
-	(if (fneq (sample 1 file 0) 0.0) (snd-display ";file chunked eof (stereo): ~A" (sample 1 file 0)))
-	(if (fneq (sample 1 file 1) 0.0) (snd-display ";file chunked eof+1 (stereo): ~A" (sample 1 file 1)))
+	(if (not (= (framples file) 1)) (snd-display "chunked framples (1): ~A" (framples file)))
+	(if (fneq (sample 0 file 0) 0.93948) (snd-display "file chunked 0 0: ~A" (sample 0 file 0)))
+	(if (fneq (sample 0 file 1) 0.50195) (snd-display "file chunked 0 1: ~A" (sample 0 file 1)))
+	(if (fneq (sample 1 file 0) 0.0) (snd-display "file chunked eof (stereo): ~A" (sample 1 file 0)))
+	(if (fneq (sample 1 file 1) 0.0) (snd-display "file chunked eof+1 (stereo): ~A" (sample 1 file 1)))
 	(if (not (equal? (comment) ";Written Mon 02-Nov-98 01:44 CST by root at ockeghem (Linux/X86) using Allegro CL, clm of 20-Oct-98"))
-	    (snd-display ";chunked appl comment (stereo): ~A" (comment)))
+	    (snd-display "chunked appl comment (stereo): ~A" (comment)))
 	(close-sound file)))
-    (lambda args (snd-display ";~S" args)))
+    (lambda args (snd-display "~S" args)))
   (delete-file "test.aif")
   (mus-sound-forget "test.aif")
   
@@ -3841,44 +3841,44 @@
 	   (if (not (member f a)) (set! diffs (cons f diffs))))
 	 b)
 	diffs))
-    (if (null? files) (snd-display ";no sound files in ~A?" cwd))
+    (if (null? files) (snd-display "no sound files in ~A?" cwd))
     (let ((files1 (sound-files-in-directory)))
-      (if (not (equal? files files1)) (snd-display ";different sound files in ~A and default?~%    ~A~%    ~A~%" cwd files files1))
+      (if (not (equal? files files1)) (snd-display "different sound files in ~A and default?~%    ~A~%    ~A~%" cwd files files1))
       (let ((files2 (sound-files-in-directory ".")))
 	(if (not (and (equal? files1 files2)
 		      (equal? files files2)))
-	    (snd-display ";sound-files-in-directory dot: ~A~%    ~A~% but ~A" (difference files2 files) files2 files)))))
+	    (snd-display "sound-files-in-directory dot: ~A~%    ~A~% but ~A" (difference files2 files) files2 files)))))
   
   (set! (hook-functions bad-header-hook) ())
   (set! (hook-functions open-raw-sound-hook) ())
   (if (pair? (sounds)) (for-each close-sound (sounds)))
   
   (let ((ind (new-sound :size 0)))
-    (if (not (= (framples ind) 0)) (snd-display ";new-sound :size 0 -> ~A framples" (framples ind)))
-    (if (fneq (sample 0) 0.0) (snd-display ";new-sound :size 0 sample 0: ~A" (sample 0)))
+    (if (not (= (framples ind) 0)) (snd-display "new-sound :size 0 -> ~A framples" (framples ind)))
+    (if (fneq (sample 0) 0.0) (snd-display "new-sound :size 0 sample 0: ~A" (sample 0)))
     (clean-up-sound ind))
   (let ((ind (new-sound :size 1)))
-    (if (not (= (framples ind) 1)) (snd-display ";new-sound :size 1 -> ~A framples" (framples ind)))
-    (if (fneq (sample 0) 0.0) (snd-display ";new-sound :size 1 sample 0: ~A" (sample 0)))
+    (if (not (= (framples ind) 1)) (snd-display "new-sound :size 1 -> ~A framples" (framples ind)))
+    (if (fneq (sample 0) 0.0) (snd-display "new-sound :size 1 sample 0: ~A" (sample 0)))
     (clean-up-sound ind))
   (let ((tag (catch #t
 	       (lambda () (new-sound :size -1))
 	       (lambda args (car args)))))
     (unless (eq? tag 'out-of-range)
-      (snd-display ";new-sound :size -1: ~A" tag)
+      (snd-display "new-sound :size -1: ~A" tag)
       (if (pair? (sounds)) (for-each close-sound (sounds)))))
   
   (let ((ind (read-ascii (string-append sf-dir "caruso.asc"))))
     (if (not (sound? ind)) 
-	(snd-display ";read-ascii can't find ~A (~A)" (string-append sf-dir "caruso.asc") (map file-name (sounds)))
+	(snd-display "read-ascii can't find ~A (~A)" (string-append sf-dir "caruso.asc") (map file-name (sounds)))
 	(begin
-	  (if (fneq (maxamp ind 0) 0.723) (snd-display ";read-ascii maxamp: ~A" (maxamp ind 0)))
-	  (if (not (= (framples ind 0) 50000)) (snd-display ";read-ascii framples: ~A" (framples ind 0)))
-	  (if (not (= (srate ind) 44100)) (snd-display ";read-ascii srate: ~A" (srate ind)))
+	  (if (fneq (maxamp ind 0) 0.723) (snd-display "read-ascii maxamp: ~A" (maxamp ind 0)))
+	  (if (not (= (framples ind 0) 50000)) (snd-display "read-ascii framples: ~A" (framples ind 0)))
+	  (if (not (= (srate ind) 44100)) (snd-display "read-ascii srate: ~A" (srate ind)))
 	  (set! (srate ind) 8000)
 	  (if (or (not (= (framples ind 0) 50000))
 		  (fneq (maxamp ind 0) .723))
-	      (snd-display ";set srate clobbered new sound: ~A ~A (~A)" (framples ind 0) (maxamp ind 0) (srate ind)))
+	      (snd-display "set srate clobbered new sound: ~A ~A (~A)" (framples ind 0) (maxamp ind 0) (srate ind)))
 	  
 	  (close-sound ind))))
   
@@ -3887,30 +3887,30 @@
     (close-sound ind)
     (set! ind (open-sound "test space.snd"))
     (if (not (string=? (short-file-name ind) "test space.snd"))
-	(snd-display ";file name with space: ~A" (short-file-name ind)))
+	(snd-display "file name with space: ~A" (short-file-name ind)))
     (let ((len (framples ind))
 	  (slen (mus-sound-framples "test space.snd")))
-      (if (not (= len slen)) (snd-display ";spaced filename framples: ~A ~A" len slen)))
+      (if (not (= len slen)) (snd-display "spaced filename framples: ~A ~A" len slen)))
     (add-mark 1234 ind 0)
     (save-marks ind) ; should write "test space.marks"
     (close-sound ind))
   (let ((ind (open-sound "test space.snd")))
     (load (string-append cwd "test space.marks"))
     (if (not (find-mark 1234 ind))
-	(snd-display ";space file name save marks: ~A" (marks ind)))
+	(snd-display "space file name save marks: ~A" (marks ind)))
     (let ((rdf (mus-file-name (make-readin :file "test space.snd"))))
       (if (not (string=? rdf "test space.snd"))
-	  (snd-display ";file name with space readin: ~A" rdf)))
+	  (snd-display "file name with space readin: ~A" rdf)))
     (close-sound ind))
   (if (file-exists? "test space.snd")
       (delete-file "test space.snd"))
   (if (file-exists? "test space.marks")
       (delete-file "test space.marks"))
   
-  (if (directory? "oboe.snd") (snd-display ";directory? oboe.snd!"))
-  (if (not (directory? ".")) (snd-display ";directory? . #f!"))
-  (if (string=? "" (getenv "PATH")) (snd-display ";getenv: no PATH?"))
-  (if (not (number? (getpid))) (snd-display ";getpid: ~A" (getpid)))
+  (if (directory? "oboe.snd") (snd-display "directory? oboe.snd!"))
+  (if (not (directory? ".")) (snd-display "directory? . #f!"))
+  (if (string=? "" (getenv "PATH")) (snd-display "getenv: no PATH?"))
+  (if (not (number? (getpid))) (snd-display "getpid: ~A" (getpid)))
   
   (unless (provided? 'gmp)
     (let ((LONG_MAX 2147483647)
@@ -3959,9 +3959,9 @@
 	    (define (testf val1 val2 name)
 	      (if (not (= val1 val2))
 		  (if (not (memq name '(lfloat32 bfloat32)))
-		      (snd-display ";testf ~A: ~A != ~A~%" name val1 val2)
+		      (snd-display "testf ~A: ~A != ~A~%" name val1 val2)
 		      (if (> (abs (- val1 val2)) 1.0e-6)
-			  (snd-display ";testf ~A: ~A != ~A (~A)~%" name val1 val2 (abs (- val1 val2)))))))
+			  (snd-display "testf ~A: ~A != ~A (~A)~%" name val1 val2 (abs (- val1 val2)))))))
 	    
 	    (testf (read-lint32) 123 'lint32)
 	    (testf (read-bint32) 321 'bint32)
@@ -4011,13 +4011,13 @@
 	  (fr2 (test-func ind1 0 0))
 	  (fr3 (test-func ind1 0 current-edit-position)))
       (if (not (= fr1 fr2 fr3))
-	  (snd-display ";initial ~A: ~A ~A ~A?" func-name fr1 fr2 fr3))
+	  (snd-display "initial ~A: ~A ~A ~A?" func-name fr1 fr2 fr3))
       (change-thunk)
       (let ((fr5 (test-func ind1 0))
 	    (fr6 (test-func ind1 0 1))
 	    (fr7 (test-func ind1 0 current-edit-position)))
 	(if (not (= fr5 fr6 fr7))
-	    (snd-display ";~A (edpos 1): ~A ~A ~A?" func-name fr5 fr6 fr7))))
+	    (snd-display "~A (edpos 1): ~A ~A ~A?" func-name fr5 fr6 fr7))))
     (revert-sound ind1))
   
   (define (test-edpos-1 test-func func-name ind1)
@@ -4025,11 +4025,11 @@
       (test-func ind1 0)
       (let ((v1 (channel->float-vector 12000 10 ind1 0)))
 	(if (mus-arrays-equal? v0 v1)
-	    (snd-display ";~A (0) no change! ~A ~A" func-name v0 v1))
+	    (snd-display "~A (0) no change! ~A ~A" func-name v0 v1))
 	(test-func ind1 0)
 	(let ((v2 (channel->float-vector 12000 10 ind1 0)))
 	  (if (not (mus-arrays-equal? v1 v2))
-	      (snd-display ";~A (1) ~A ~A" func-name v1 v2)))))
+	      (snd-display "~A (1) ~A ~A" func-name v1 v2)))))
     (revert-sound ind1))
   
   (define (test-orig func0 func1 func-name ind1)
@@ -4037,11 +4037,11 @@
       (func0 ind1)
       (let ((v1 (channel->float-vector 12000 10 ind1 0)))
 	(if (mus-arrays-equal?1 v0 v1)
-	    (snd-display ";~A (orig: 0) no change! ~A ~A" func-name v0 v1))
+	    (snd-display "~A (orig: 0) no change! ~A ~A" func-name v0 v1))
 	(func1 ind1)
 	(let ((v2 (channel->float-vector 12000 10 ind1 0)))
 	  (if (not (mus-arrays-equal?1 v0 v2))
-	      (snd-display ";~A (orig: 1) ~A ~A" func-name v0 v2))))
+	      (snd-display "~A (orig: 1) ~A ~A" func-name v0 v2))))
       (revert-sound ind1)))
   
   (define* (make-bandpass-2 flo1 fhi1 flo2 fhi2 (len 30))
@@ -4051,20 +4051,20 @@
       f1))
   
   (define (check-maxamp-1 caller-line ind val name)
-    (if (fneq (maxamp ind 0) val) (snd-display ";maxamp amp-env ~A: ~A should be ~A" name (maxamp ind) val))
+    (if (fneq (maxamp ind 0) val) (snd-display "maxamp amp-env ~A: ~A should be ~A" name (maxamp ind) val))
     (let ((pos (scan-channel (lambda (y) (>= (abs y) (- val .0001)))))
 	  (maxpos (maxamp-position ind 0)))
       (if (not pos) 
-	  (snd-display ";actual maxamp ~A vals not right" name)
+	  (snd-display "actual maxamp ~A vals not right" name)
 	  (if (not (= maxpos pos))
-	      (snd-display ";~A: find and maxamp-position disagree: ~A (~A) ~A (~A)" 
+	      (snd-display "~A: find and maxamp-position disagree: ~A (~A) ~A (~A)" 
 			   name pos (sample pos ind 0) maxpos (sample maxpos ind 0))))
       (let ((info (float-vector-peak-and-location (samples 0 (framples ind) ind))))
 	(let ((mpos (cadr info))
 	      (mx (car info)))
 	  (if (not (= mpos maxpos))
-	      (snd-display ";(~D) scan and maxamp-position disagree: ~A ~A" caller-line mpos maxpos))
-	  (if (fneq mx val) (snd-display ";(~D) actual ~A max: ~A (correct: ~A)" caller-line name mx val))))))
+	      (snd-display "(~D) scan and maxamp-position disagree: ~A ~A" caller-line mpos maxpos))
+	  (if (fneq mx val) (snd-display "(~D) actual ~A max: ~A (correct: ~A)" caller-line name mx val))))))
   
   (define (check-env-vals name gen)
     (let ((len (framples))
@@ -4094,7 +4094,7 @@
   (define (region2float-vector r c len)
     (region->float-vector r 0 len c))
   
-  (if (playing) (snd-display ";dac is running??"))
+  (if (playing) (snd-display "dac is running??"))
   (do ((clmtest 0 (+ 1 clmtest))) 
       ((= clmtest tests)) 
     (log-mem clmtest)
@@ -4106,7 +4106,7 @@
 	(lambda ()
 	  (set! (y-axis-label ind 0 1) "hiho"))
 	(lambda args
-	  (snd-display ";no fft axis: ~A" args)))
+	  (snd-display "no fft axis: ~A" args)))
       (set! (fft-log-frequency ind 0) #t) ; segfault here originally
       (update-transform-graph ind 0)
       (close-sound ind))
@@ -4116,17 +4116,17 @@
       (env-channel '(0 0 1 1 2 0))
       (let ((data (channel->float-vector)))
 	(if (not (mus-arrays-equal? data (float-vector 0.000 0.200 0.400 0.600 0.800 1.000 0.750 0.500 0.250 0.000)))
-	    (snd-display ";pyr 10: ~A" data)))
+	    (snd-display "pyr 10: ~A" data)))
       (undo)
       (env-channel '((0 0) (1 1) (2 0)))
       (let ((data (channel->float-vector)))
 	(if (not (mus-arrays-equal? data (float-vector 0.000 0.200 0.400 0.600 0.800 1.000 0.750 0.500 0.250 0.000)))
-	    (snd-display ";pyr 10: ~A" data)))
+	    (snd-display "pyr 10: ~A" data)))
       (undo)
       (env-channel (make-env '(0 0 1 1 2 0) :length 10))
       (let ((data (channel->float-vector)))
 	(if (not (mus-arrays-equal? data (float-vector 0.000 0.200 0.400 0.600 0.800 1.000 0.750 0.500 0.250 0.000)))
-	    (snd-display ";pyr 10: ~A" data)))
+	    (snd-display "pyr 10: ~A" data)))
       (undo)
       (close-sound ind))
     
@@ -4173,62 +4173,62 @@
 	 (let ((data (channel->float-vector)))
 	   (if (or (fneq (data 0) 0.0)
 		   (fneq (data (- size 1)) 1.0))
-	       (snd-display ";ramp-channel ~A end points: ~A ~A" size (data 0) (data (- size 1))))
+	       (snd-display "ramp-channel ~A end points: ~A ~A" size (data 0) (data (- size 1))))
 	   (do ((i 0 (+ i 1)))
 	       ((= i size))
 	     (let ((val (envelope-interp (* i incr) '(0.0 0.0 1.0 1.0)))
 		   (segval (env e)))
 	       (if (or (fneq segval val)
 		       (fneq (data i) val))
-		   (snd-display ";ramp-channel ~A of ~A: ramp: ~A, interp: ~A, env: ~A" i size (data i) val segval)))))
+		   (snd-display "ramp-channel ~A of ~A: ramp: ~A, interp: ~A, env: ~A" i size (data i) val segval)))))
 	 (undo)
 	 (xramp-channel 0.0 1.0 32.0)
 	 (let* ((e (make-env '(0 0 1 1) :length size :base 32.0))
 		(data (channel->float-vector)))
 	   (if (or (fneq (data 0) 0.0)
 		   (fneq (data (- size 1)) 1.0))
-	       (snd-display ";xramp-channel 32 ~A end points: ~A ~A" size (data 0) (data (- size 1))))
+	       (snd-display "xramp-channel 32 ~A end points: ~A ~A" size (data 0) (data (- size 1))))
 	   (do ((i 0 (+ i 1)))
 	       ((= i size))
 	     (let ((val (envelope-interp (* i incr) '(0.0 0.0 1.0 1.0) 32.0))
 		   (segval (env e)))
 	       (if (or (fneq segval val)
 		       (fneq (data i) val))
-		   (snd-display ";xramp-channel 32 ~A of ~A: ramp: ~A, interp: ~A, env: ~A" i size (data i) val segval)))))
+		   (snd-display "xramp-channel 32 ~A of ~A: ramp: ~A, interp: ~A, env: ~A" i size (data i) val segval)))))
 	 (undo)
 	 (xramp-channel 0.0 1.0 0.4)
 	 (let* ((e (make-env '(0 0 1 1) :length size :base 0.4))
 		(data (channel->float-vector)))
 	   (if (or (fneq (data 0) 0.0)
 		   (fneq (data (- size 1)) 1.0))
-	       (snd-display ";xramp-channel .4 ~A end points: ~A ~A" size (data 0) (data (- size 1))))
+	       (snd-display "xramp-channel .4 ~A end points: ~A ~A" size (data 0) (data (- size 1))))
 	   (do ((i 0 (+ i 1)))
 	       ((= i size))
 	     (let ((val (envelope-interp (* i incr) '(0.0 0.0 1.0 1.0) 0.4))
 		   (segval (env e)))
 	       (if (or (fneq segval val)
 		       (fneq (data i) val))
-		   (snd-display ";xramp-channel .4 ~A of ~A: ramp: ~A, interp: ~A, env: ~A" i size (data i) val segval)))))
+		   (snd-display "xramp-channel .4 ~A of ~A: ramp: ~A, interp: ~A, env: ~A" i size (data i) val segval)))))
 	 (undo)
 	 (xramp-channel 1.0 -1.0 8.0)
 	 (let* ((e (make-env '(0 1 1 -1) :length size :base 8.0))
 		(data (channel->float-vector)))
 	   (if (or (fneq (data 0) 1.0)
 		   (fneq (data (- size 1)) -1.0))
-	       (snd-display ";xramp-channel 1 -1 8 ~A end points: ~A ~A" size (data 0) (data (- size 1))))
+	       (snd-display "xramp-channel 1 -1 8 ~A end points: ~A ~A" size (data 0) (data (- size 1))))
 	   (do ((i 0 (+ i 1)))
 	       ((= i size))
 	     (let ((segval (env e)))
 	       (if (fneq segval (data i))
-		   (snd-display ";xramp-channel 1 -1 8 ~A of ~A: ramp: ~A, env: ~A" i size (data i) segval)))))
+		   (snd-display "xramp-channel 1 -1 8 ~A of ~A: ramp: ~A, env: ~A" i size (data i) segval)))))
 	 (undo)
 	 (close-sound ind)))
      '(10 100 1000))
     
     ;; basic edit tree cases
     (let ((ind (new-sound "test.snd")))
-      (if (not (= (redo) 0)) (snd-display ";redo with no ops: ~A" (redo)))
-      (if (not (= (undo) 0)) (snd-display ";undo with no ops: ~A" (undo)))
+      (if (not (= (redo) 0)) (snd-display "redo with no ops: ~A" (redo)))
+      (if (not (= (undo) 0)) (snd-display "undo with no ops: ~A" (undo)))
       
       (if (not (string-=? (display-edits) (string-append "
 EDITS: 0
@@ -4237,9 +4237,9 @@ EDITS: 0
    (at 0, cp->sounds[0][0:0, 0.000]) [file: " cwd "test.snd[0]]
    (at 1, end_mark)
 ")))
-	  (snd-display ";new 0: ~A" (display-edits)))
+	  (snd-display "new 0: ~A" (display-edits)))
       (insert-samples 10 10 (make-float-vector 10))
-      (if (not (= (framples) 20)) (snd-display ";new 1 framples: ~A" (framples)))
+      (if (not (= (framples) 20)) (snd-display "new 1 framples: ~A" (framples)))
       (if (not (string-=? (display-edits) (string-append "
 EDITS: 1
 
@@ -4253,10 +4253,10 @@ EDITS: 1
    (at 10, cp->sounds[1][0:9, 1.000]) [buf: 10] 
    (at 20, end_mark)
 ")))
-	  (snd-display ";new 1: ~A" (display-edits)))
+	  (snd-display "new 1: ~A" (display-edits)))
       (undo)
       (insert-samples 0 10 (make-float-vector 10))
-      (if (not (= (framples) 11)) (snd-display ";new 2 framples: ~A" (framples))) ; 11 because there was 1 sample when new-sound created 
+      (if (not (= (framples) 11)) (snd-display "new 2 framples: ~A" (framples))) ; 11 because there was 1 sample when new-sound created 
       (if (not (string-=? (display-edits) (string-append "
 EDITS: 1
 
@@ -4269,11 +4269,11 @@ EDITS: 1
    (at 10, cp->sounds[0][0:0, 0.000]) [file: " cwd "test.snd[0]]
    (at 11, end_mark)
 ")))
-	  (snd-display ";new 2: ~A" (display-edits)))
+	  (snd-display "new 2: ~A" (display-edits)))
       (let ((eds (undo 2)))
-	(if (not (= eds 2)) (snd-display ";new 3 undo: ~A" eds)))
+	(if (not (= eds 2)) (snd-display "new 3 undo: ~A" eds)))
       (insert-samples 0 10 (make-float-vector 10))
-      (if (not (= (framples) 11)) (snd-display ";new 3 framples: ~A" (framples)))
+      (if (not (= (framples) 11)) (snd-display "new 3 framples: ~A" (framples)))
       (if (not (string-=? (display-edits) (string-append "
 EDITS: 1
 
@@ -4286,10 +4286,10 @@ EDITS: 1
    (at 10, cp->sounds[0][0:0, 0.000]) [file: " cwd "test.snd[0]]
    (at 11, end_mark)
 ")))
-	  (snd-display ";new 3: ~A" (display-edits)))
+	  (snd-display "new 3: ~A" (display-edits)))
       (undo)
       (set! (sample 0) .5)
-      (if (not (= (framples) 1)) (snd-display ";new 4 framples: ~A" (framples)))
+      (if (not (= (framples) 1)) (snd-display "new 4 framples: ~A" (framples)))
       (if (not (string-=? (display-edits) (string-append "
 EDITS: 1
 
@@ -4301,11 +4301,11 @@ EDITS: 1
    (at 0, cp->sounds[1][0:0, 1.000]) [buf: 1] 
    (at 1, end_mark)
 ")))
-	  (snd-display ";new 4: ~A" (display-edits)))      
+	  (snd-display "new 4: ~A" (display-edits)))      
       (undo)
       
       (set! (samples 0 10) (make-float-vector 10))
-      (if (not (= (framples) 10)) (snd-display ";new 5 framples: ~A" (framples)))
+      (if (not (= (framples) 10)) (snd-display "new 5 framples: ~A" (framples)))
       (if (not (string-=? (display-edits) (string-append "
 EDITS: 1
 
@@ -4317,20 +4317,20 @@ EDITS: 1
    (at 0, cp->sounds[1][0:9, 1.000]) [buf: 10] 
    (at 10, end_mark)
 ")))
-	  (snd-display ";new 5: ~A" (display-edits)))
+	  (snd-display "new 5: ~A" (display-edits)))
       
       (delete-samples 3 4)
-      (if (not (= (framples) 6)) (snd-display ";new 6 framples: ~A" (framples)))
+      (if (not (= (framples) 6)) (snd-display "new 6 framples: ~A" (framples)))
       (if (not (string-=? (safe-display-edits ind 0 2) "
  (delete 3 4) ; delete-samples 3 4 [2:3]:
    (at 0, cp->sounds[1][0:2, 1.000]) [buf: 10] 
    (at 3, cp->sounds[1][7:9, 1.000]) [buf: 10] 
    (at 6, end_mark)
 "))
-	  (snd-display ";new 6: ~A" (safe-display-edits ind 0 2)))
+	  (snd-display "new 6: ~A" (safe-display-edits ind 0 2)))
       
       (set! (samples 1 4) (make-float-vector 4))
-      (if (not (= (framples) 6)) (snd-display ";new 7 framples: ~A" (framples)))
+      (if (not (= (framples) 6)) (snd-display "new 7 framples: ~A" (framples)))
       (if (not (string-=? (safe-display-edits ind 0 3) "
  (set 1 4) ; set-samples [3:4]:
    (at 0, cp->sounds[1][0:0, 1.000]) [buf: 10] 
@@ -4338,13 +4338,13 @@ EDITS: 1
    (at 5, cp->sounds[1][9:9, 1.000]) [buf: 10] 
    (at 6, end_mark)
 "))
-	  (snd-display ";new 7: ~A" (safe-display-edits ind 0 3)))
+	  (snd-display "new 7: ~A" (safe-display-edits ind 0 3)))
       (undo 2)
       (insert-samples 2 3 (make-float-vector 3))
       (insert-samples 2 1 (make-float-vector 1))
       (insert-samples 4 1 (make-float-vector 1))
       (insert-samples 15 1 (make-float-vector 1))
-      (if (not (= (framples) 16)) (snd-display ";new 8 framples: ~A" (framples)))
+      (if (not (= (framples) 16)) (snd-display "new 8 framples: ~A" (framples)))
       (if (not (string-=? (display-edits) (string-append "
 EDITS: 5
 
@@ -4388,7 +4388,7 @@ EDITS: 5
    (at 15, cp->sounds[5][0:0, 1.000]) [buf: 1] 
    (at 16, end_mark)
 ")))
-	  (snd-display ";new 8: ~A" (display-edits)))
+	  (snd-display "new 8: ~A" (display-edits)))
       (delete-samples 2 1)
       (if (not (string-=? (safe-display-edits ind 0 6) "
  (delete 2 1) ; delete-samples 2 1 [6:7]:
@@ -4400,7 +4400,7 @@ EDITS: 5
    (at 14, cp->sounds[5][0:0, 1.000]) [buf: 1] 
    (at 15, end_mark)
 "))
-	  (snd-display ";new 9: ~A" (safe-display-edits ind 0 6)))
+	  (snd-display "new 9: ~A" (safe-display-edits ind 0 6)))
       (delete-samples 0 5)
       (if (not (string-=? (safe-display-edits ind 0 7) "
  (delete 0 5) ; delete-samples 0 5 [7:4]:
@@ -4409,7 +4409,7 @@ EDITS: 5
    (at 9, cp->sounds[5][0:0, 1.000]) [buf: 1] 
    (at 10, end_mark)
 "))
-	  (snd-display ";new 10: ~A" (safe-display-edits ind 0 7)))
+	  (snd-display "new 10: ~A" (safe-display-edits ind 0 7)))
       (delete-samples 6 4)
       (if (not (string-=? (safe-display-edits ind 0 8) "
  (delete 6 4) ; delete-samples 6 4 [8:3]:
@@ -4417,38 +4417,38 @@ EDITS: 5
    (at 1, cp->sounds[1][2:6, 1.000]) [buf: 10] 
    (at 6, end_mark)
 "))
-	  (snd-display ";new 11: ~A" (safe-display-edits ind 0 8)))
+	  (snd-display "new 11: ~A" (safe-display-edits ind 0 8)))
       (delete-samples 0 1)
       (if (not (string-=? (safe-display-edits ind 0 9) "
  (delete 0 1) ; delete-samples 0 1 [9:2]:
    (at 0, cp->sounds[1][2:6, 1.000]) [buf: 10] 
    (at 5, end_mark)
 "))
-	  (snd-display ";new 12: ~A" (safe-display-edits ind 0 9)))
+	  (snd-display "new 12: ~A" (safe-display-edits ind 0 9)))
       
       (delete-samples 0 5)
       (if (not (string-=? (safe-display-edits ind 0 10) "
  (delete 0 5) ; delete-samples 0 5 [10:1]:
    (at 0, end_mark)
 "))
-	  (snd-display ";new 13: ~A" (safe-display-edits ind 0 10)))
+	  (snd-display "new 13: ~A" (safe-display-edits ind 0 10)))
       (delete-samples 0 10)
       (if (not (= (edit-position) 10))
-	  (snd-display ";no-op delete deleted something! ~A" (display-edits)))
+	  (snd-display "no-op delete deleted something! ~A" (display-edits)))
       (insert-samples 0 3 (make-float-vector 3))
       (if (not (string-=? (safe-display-edits ind 0 11) "
  (insert 0 3) ; insert-samples [11:2]:
    (at 0, cp->sounds[6][0:2, 1.000]) [buf: 3] 
    (at 3, end_mark)
 "))
-	  (snd-display ";new 14: ~A" (safe-display-edits ind 0 11)))
+	  (snd-display "new 14: ~A" (safe-display-edits ind 0 11)))
       (delete-samples 2 1)
       (if (not (string-=? (safe-display-edits ind 0 12) "
  (delete 2 1) ; delete-samples 2 1 [12:2]:
    (at 0, cp->sounds[6][0:1, 1.000]) [buf: 3] 
    (at 2, end_mark)
 "))
-	  (snd-display ";new 15: ~A" (safe-display-edits ind 0 12)))
+	  (snd-display "new 15: ~A" (safe-display-edits ind 0 12)))
       (set! (sample 0) .5)
       (if (not (string-=? (safe-display-edits ind 0 13) "
  (set 0 1) ; set-sample 0 0.5000 [13:3]:
@@ -4456,7 +4456,7 @@ EDITS: 5
    (at 1, cp->sounds[6][1:1, 1.000]) [buf: 3] 
    (at 2, end_mark)
 "))
-	  (snd-display ";new 16: ~A" (safe-display-edits ind 0 13)))
+	  (snd-display "new 16: ~A" (safe-display-edits ind 0 13)))
       (set! (sample 1) .5)
       (if (not (string-=? (safe-display-edits ind 0 14) "
  (set 1 1) ; set-sample 1 0.5000 [14:3]:
@@ -4464,14 +4464,14 @@ EDITS: 5
    (at 1, cp->sounds[8][0:0, 1.000]) [buf: 1] 
    (at 2, end_mark)
 "))
-	  (snd-display ";new 17: ~A" (safe-display-edits ind 0 14)))  
+	  (snd-display "new 17: ~A" (safe-display-edits ind 0 14)))  
       (map-channel (lambda (y) 1.0) 0 10)
       (if (not (string-=? (safe-display-edits ind 0 15) "
  (set 0 10) ; map-channel [15:2]:
    (at 0, cp->sounds[9][0:9, 1.000]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";new 18: ~A" (safe-display-edits ind 0 15)))  
+	  (snd-display "new 18: ~A" (safe-display-edits ind 0 15)))  
       (insert-samples 0 10 (make-float-vector 10))
       (if (not (string-=? (safe-display-edits ind 0 16) "
  (insert 0 10) ; insert-samples [16:3]:
@@ -4479,7 +4479,7 @@ EDITS: 5
    (at 10, cp->sounds[9][0:9, 1.000]) [buf: 10] 
    (at 20, end_mark)
 "))
-	  (snd-display ";new 19: ~A" (safe-display-edits ind 0 16)))
+	  (snd-display "new 19: ~A" (safe-display-edits ind 0 16)))
       (set! (samples 2 3) (make-float-vector 3))
       (if (not (string-=? (safe-display-edits ind 0 17) "
  (set 2 3) ; set-samples [17:5]:
@@ -4489,7 +4489,7 @@ EDITS: 5
    (at 10, cp->sounds[9][0:9, 1.000]) [buf: 10] 
    (at 20, end_mark)
 "))
-	  (snd-display ";new 20: ~A" (safe-display-edits ind 0 17)))
+	  (snd-display "new 20: ~A" (safe-display-edits ind 0 17)))
       (set! (samples 0 12) (make-float-vector 12))
       (if (not (string-=? (safe-display-edits ind 0 18) "
  (set 0 12) ; set-samples [18:3]:
@@ -4497,7 +4497,7 @@ EDITS: 5
    (at 12, cp->sounds[9][2:9, 1.000]) [buf: 10] 
    (at 20, end_mark)
 "))
-	  (snd-display ";new 21: ~A" (safe-display-edits ind 0 18)))
+	  (snd-display "new 21: ~A" (safe-display-edits ind 0 18)))
       (set! (samples 30 10) (make-float-vector 10))
       (if (not (string-=? (safe-display-edits ind 0 19) "
  (set 20 21) ; set-samples [19:5]:
@@ -4507,7 +4507,7 @@ EDITS: 5
    (at 30, cp->sounds[13][0:9, 1.000]) [buf: 10] 
    (at 40, end_mark)
 "))
-	  (snd-display ";new 21: ~A" (safe-display-edits ind 0 19)))
+	  (snd-display "new 21: ~A" (safe-display-edits ind 0 19)))
       (close-sound ind))
     
     ;; scale/ramp
@@ -4519,7 +4519,7 @@ EDITS: 5
    (at 0, cp->sounds[1][0:9, 0.500]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";scl 0: ~A" (safe-display-edits ind 0 2)))
+	  (snd-display "scl 0: ~A" (safe-display-edits ind 0 2)))
       (undo)
       (scale-channel 0.5 0 3)
       (if (not (string-=? (safe-display-edits ind 0 2) "
@@ -4528,7 +4528,7 @@ EDITS: 5
    (at 3, cp->sounds[1][3:9, 1.000]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";scl 1: ~A" (safe-display-edits ind 0 2)))
+	  (snd-display "scl 1: ~A" (safe-display-edits ind 0 2)))
       (undo)
       (scale-channel 0.5 5 5)
       (if (not (string-=? (safe-display-edits ind 0 2) "
@@ -4537,7 +4537,7 @@ EDITS: 5
    (at 5, cp->sounds[1][5:9, 0.500]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";scl 2: ~A" (safe-display-edits ind 0 2)))
+	  (snd-display "scl 2: ~A" (safe-display-edits ind 0 2)))
       (undo)
       (scale-channel 0.5 2 4)
       (if (not (string-=? (safe-display-edits ind 0 2) "
@@ -4547,14 +4547,14 @@ EDITS: 5
    (at 6, cp->sounds[1][6:9, 1.000]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";scl 2a: ~A" (safe-display-edits ind 0 2)))
+	  (snd-display "scl 2a: ~A" (safe-display-edits ind 0 2)))
       (undo)
       (scale-channel 0.5 10 10)
       (if (not (= (edit-position) 1))
-	  (snd-display ";scale beyond end edited? ~A" (display-edits)))
+	  (snd-display "scale beyond end edited? ~A" (display-edits)))
       (scale-channel 0.5 100 10)
       (if (not (= (edit-position) 1))
-	  (snd-display ";scale way beyond end edited? ~A" (display-edits)))
+	  (snd-display "scale way beyond end edited? ~A" (display-edits)))
       (scale-channel 0.5 5 10)
       (if (not (string-=? (safe-display-edits ind 0 2) "
  (scale 5 5) ; scale-channel 0.500 5 5 [2:3]:
@@ -4562,7 +4562,7 @@ EDITS: 5
    (at 5, cp->sounds[1][5:9, 0.500]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";scl 3: ~A" (safe-display-edits ind 0 2)))
+	  (snd-display "scl 3: ~A" (safe-display-edits ind 0 2)))
       (undo)
       (set! (sample 4) .5)
       (if (not (string-=? (safe-display-edits ind 0 2) "
@@ -4572,7 +4572,7 @@ EDITS: 5
    (at 5, cp->sounds[1][5:9, 1.000]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";scl 4: ~A" (safe-display-edits ind 0 2)))
+	  (snd-display "scl 4: ~A" (safe-display-edits ind 0 2)))
       (scale-channel 0.5 0 4)
       (if (not (string-=? (safe-display-edits ind 0 3) "
  (scale 0 4) ; scale-channel 0.500 0 4 [3:4]:
@@ -4581,7 +4581,7 @@ EDITS: 5
    (at 5, cp->sounds[1][5:9, 1.000]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";scl 5: ~A" (safe-display-edits ind 0 3)))
+	  (snd-display "scl 5: ~A" (safe-display-edits ind 0 3)))
       (scale-channel 0.5 4 1)
       (if (not (string-=? (safe-display-edits ind 0 4) "
  (scale 4 1) ; scale-channel 0.500 4 1 [4:4]:
@@ -4590,7 +4590,7 @@ EDITS: 5
    (at 5, cp->sounds[1][5:9, 1.000]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";scl 6: ~A" (safe-display-edits ind 0 4)))
+	  (snd-display "scl 6: ~A" (safe-display-edits ind 0 4)))
       (scale-channel 0.5 0 7)
       (if (not (string-=? (safe-display-edits ind 0 5) "
  (scale 0 7) ; scale-channel 0.500 0 7 [5:5]:
@@ -4600,7 +4600,7 @@ EDITS: 5
    (at 7, cp->sounds[1][7:9, 1.000]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";scl 7: ~A" (safe-display-edits ind 0 5)))
+	  (snd-display "scl 7: ~A" (safe-display-edits ind 0 5)))
       (scale-channel 0.5 1 4)
       (if (not (string-=? (safe-display-edits ind 0 6) "
  (scale 1 4) ; scale-channel 0.500 1 4 [6:6]:
@@ -4611,7 +4611,7 @@ EDITS: 5
    (at 7, cp->sounds[1][7:9, 1.000]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";scl 8: ~A" (safe-display-edits ind 0 6)))
+	  (snd-display "scl 8: ~A" (safe-display-edits ind 0 6)))
       (undo 4)
       (scale-channel 0.5 1 8)
       (if (not (string-=? (safe-display-edits ind 0 3) "
@@ -4623,7 +4623,7 @@ EDITS: 5
    (at 9, cp->sounds[1][9:9, 1.000]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";scl 9: ~A" (safe-display-edits ind 0 3)))
+	  (snd-display "scl 9: ~A" (safe-display-edits ind 0 3)))
       (undo 2)
       
       (ramp-channel 0.0 1.0)
@@ -4632,14 +4632,14 @@ EDITS: 5
    (at 0, cp->sounds[1][0:9, 1.000, [1]-0.000 -> 1.000]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";ramp 0: ~A" (safe-display-edits ind 0 2)))
+	  (snd-display "ramp 0: ~A" (safe-display-edits ind 0 2)))
       (scale-channel 0.5)
       (if (not (string-=? (safe-display-edits ind 0 3) "
  (scale 0 10) ; scale-channel 0.500 0 #f [3:2]:
    (at 0, cp->sounds[1][0:9, 0.500, [1]-0.000 -> 1.000]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";ramp 1: ~A" (safe-display-edits ind 0 3)))
+	  (snd-display "ramp 1: ~A" (safe-display-edits ind 0 3)))
       (undo)
       (scale-channel 0.5 0 5)
       (if (not (string-=? (safe-display-edits ind 0 3) "
@@ -4648,7 +4648,7 @@ EDITS: 5
    (at 5, cp->sounds[1][5:9, 1.000, [1]0.556 -> 1.000]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";ramp 2: ~A" (safe-display-edits ind 0 3)))
+	  (snd-display "ramp 2: ~A" (safe-display-edits ind 0 3)))
       (undo)
       (scale-channel 0.5 2 4)
       (if (not (string-=? (safe-display-edits ind 0 3) "
@@ -4658,7 +4658,7 @@ EDITS: 5
    (at 6, cp->sounds[1][6:9, 1.000, [1]0.667 -> 1.000]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";ramp 3: ~A" (safe-display-edits ind 0 3)))
+	  (snd-display "ramp 3: ~A" (safe-display-edits ind 0 3)))
       (undo)
       (scale-channel 0.5 5 5)
       (if (not (string-=? (safe-display-edits ind 0 3) "
@@ -4667,7 +4667,7 @@ EDITS: 5
    (at 5, cp->sounds[1][5:9, 0.500, [1]0.556 -> 1.000]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";ramp 4: ~A" (safe-display-edits ind 0 3)))
+	  (snd-display "ramp 4: ~A" (safe-display-edits ind 0 3)))
       (undo 2)
       (ramp-channel .2 .6 2 6)
       (if (not (string-=? (safe-display-edits ind 0 2) "
@@ -4677,7 +4677,7 @@ EDITS: 5
    (at 8, cp->sounds[1][8:9, 1.000]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";ramp 5: ~A" (safe-display-edits ind 0 2)))
+	  (snd-display "ramp 5: ~A" (safe-display-edits ind 0 2)))
       (scale-channel 0.5 0 5)
       (if (not (string-=? (safe-display-edits ind 0 3) "
  (scale 0 5) ; scale-channel 0.500 0 5 [3:5]:
@@ -4687,7 +4687,7 @@ EDITS: 5
    (at 8, cp->sounds[1][8:9, 1.000]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";ramp 6: ~A" (safe-display-edits ind 0 3)))
+	  (snd-display "ramp 6: ~A" (safe-display-edits ind 0 3)))
       (undo)
       (scale-channel 0.5 2 6)
       (if (not (string-=? (safe-display-edits ind 0 3) "
@@ -4697,7 +4697,7 @@ EDITS: 5
    (at 8, cp->sounds[1][8:9, 1.000]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";ramp 7: ~A" (safe-display-edits ind 0 3)))
+	  (snd-display "ramp 7: ~A" (safe-display-edits ind 0 3)))
       (undo)
       (scale-channel 0.5 5 4)
       (if (not (string-=? (safe-display-edits ind 0 3) "
@@ -4709,7 +4709,7 @@ EDITS: 5
    (at 9, cp->sounds[1][9:9, 1.000]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";ramp 8: ~A" (safe-display-edits ind 0 3)))
+	  (snd-display "ramp 8: ~A" (safe-display-edits ind 0 3)))
       (undo)
       (set! (sample 4) .5)
       (if (not (string-=? (safe-display-edits ind 0 3) "
@@ -4721,7 +4721,7 @@ EDITS: 5
    (at 8, cp->sounds[1][8:9, 1.000]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";ramp 9: ~A" (safe-display-edits ind 0 3)))
+	  (snd-display "ramp 9: ~A" (safe-display-edits ind 0 3)))
       (undo)
       (scale-channel 0.5 4 1)
       (if (not (string-=? (safe-display-edits ind 0 3) "
@@ -4733,7 +4733,7 @@ EDITS: 5
    (at 8, cp->sounds[1][8:9, 1.000]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";ramp 10: ~A" (safe-display-edits ind 0 3)))
+	  (snd-display "ramp 10: ~A" (safe-display-edits ind 0 3)))
       (undo)
       (delete-sample 4)
       (if (not (string-=? (safe-display-edits ind 0 3) "
@@ -4744,7 +4744,7 @@ EDITS: 5
    (at 7, cp->sounds[1][8:9, 1.000]) [buf: 10] 
    (at 9, end_mark)
 "))
-	  (snd-display ";ramp 11: ~A" (safe-display-edits ind 0 3)))
+	  (snd-display "ramp 11: ~A" (safe-display-edits ind 0 3)))
       (undo)
       (delete-samples 4 2)
       (if (not (string-=? (safe-display-edits ind 0 3) "
@@ -4755,7 +4755,7 @@ EDITS: 5
    (at 6, cp->sounds[1][8:9, 1.000]) [buf: 10] 
    (at 8, end_mark)
 "))
-	  (snd-display ";ramp 12: ~A" (safe-display-edits ind 0 3)))
+	  (snd-display "ramp 12: ~A" (safe-display-edits ind 0 3)))
       (undo)
       (delete-samples 4 3)
       (if (not (string-=? (safe-display-edits ind 0 3) "
@@ -4766,7 +4766,7 @@ EDITS: 5
    (at 5, cp->sounds[1][8:9, 1.000]) [buf: 10] 
    (at 7, end_mark)
 "))
-	  (snd-display ";ramp 13: ~A" (safe-display-edits ind 0 3)))
+	  (snd-display "ramp 13: ~A" (safe-display-edits ind 0 3)))
       (undo)
       (delete-samples 4 4)
       (if (not (string-=? (safe-display-edits ind 0 3) "
@@ -4776,7 +4776,7 @@ EDITS: 5
    (at 4, cp->sounds[1][8:9, 1.000]) [buf: 10] 
    (at 6, end_mark)
 "))
-	  (snd-display ";ramp 14: ~A" (safe-display-edits ind 0 3)))
+	  (snd-display "ramp 14: ~A" (safe-display-edits ind 0 3)))
       (undo)
       (delete-samples 4 5)
       (if (not (string-=? (safe-display-edits ind 0 3) "
@@ -4786,7 +4786,7 @@ EDITS: 5
    (at 4, cp->sounds[1][9:9, 1.000]) [buf: 10] 
    (at 5, end_mark)
 "))
-	  (snd-display ";ramp 15: ~A" (safe-display-edits ind 0 3)))
+	  (snd-display "ramp 15: ~A" (safe-display-edits ind 0 3)))
       (undo)
       (scale-channel 0.5 4 2)
       (if (not (string-=? (safe-display-edits ind 0 3) "
@@ -4798,7 +4798,7 @@ EDITS: 5
    (at 8, cp->sounds[1][8:9, 1.000]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";ramp 16: ~A" (safe-display-edits ind 0 3)))
+	  (snd-display "ramp 16: ~A" (safe-display-edits ind 0 3)))
       (undo)
       (pad-channel 4 1)
       (if (not (string-=? (safe-display-edits ind 0 3) "
@@ -4810,7 +4810,7 @@ EDITS: 5
    (at 9, cp->sounds[1][8:9, 1.000]) [buf: 10] 
    (at 11, end_mark)
 "))
-	  (snd-display ";ramp 17: ~A" (safe-display-edits ind 0 3)))
+	  (snd-display "ramp 17: ~A" (safe-display-edits ind 0 3)))
       (close-sound ind))
     
     ;; xramp
@@ -4822,7 +4822,7 @@ EDITS: 5
    (at 0, cp->sounds[1][0:9, 1.000, [1]0.000 -> 1.000, off: -0.032, scl: 0.032]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";xramp 1: ~A" (safe-display-edits ind 0 2)))
+	  (snd-display "xramp 1: ~A" (safe-display-edits ind 0 2)))
       (undo)
       (xramp-channel 0.0 1.0 0.325)
       (if (not (string-=? (safe-display-edits ind 0 2) "
@@ -4830,7 +4830,7 @@ EDITS: 5
    (at 0, cp->sounds[1][0:9, 1.000, [1]0.000 -> 1.000, off: 1.481, scl: -1.481]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";xramp 2: ~A" (safe-display-edits ind 0 2)))
+	  (snd-display "xramp 2: ~A" (safe-display-edits ind 0 2)))
       (undo)
       (xramp-channel 0.0 1.0 0.0)
       (if (not (string-=? (safe-display-edits ind 0 2) (string-append "
@@ -4838,7 +4838,7 @@ EDITS: 5
    (at 0, cp->sounds[0][0:9, 0.000]) [file: " (getcwd) "/test.snd[0]]
    (at 10, end_mark)
 ")))
-	  (snd-display ";xramp 3: ~A" (safe-display-edits ind 0 2)))
+	  (snd-display "xramp 3: ~A" (safe-display-edits ind 0 2)))
       (undo)
       (xramp-channel 0.0 1.0 1.0)
       (if (not (string-=? (safe-display-edits ind 0 2) "
@@ -4846,7 +4846,7 @@ EDITS: 5
    (at 0, cp->sounds[1][0:9, 1.000, [1]-0.000 -> 1.000]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";xramp 4: ~A" (safe-display-edits ind 0 2)))
+	  (snd-display "xramp 4: ~A" (safe-display-edits ind 0 2)))
       (undo)
       (xramp-channel 0.5 1.5 32.0)
       (if (not (string-=? (safe-display-edits ind 0 2) "
@@ -4854,9 +4854,9 @@ EDITS: 5
    (at 0, cp->sounds[1][0:9, 1.000, [1]0.500 -> 1.500, off: 0.468, scl: 0.032]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";xramp 5: ~A" (safe-display-edits ind 0 2)))
+	  (snd-display "xramp 5: ~A" (safe-display-edits ind 0 2)))
       (if (or (fneq (maxamp) 1.5) (fneq (sample 0) 0.5))
-	  (snd-display ";xramp 5 vals: ~A ~A" (maxamp) (sample 0)))
+	  (snd-display "xramp 5 vals: ~A ~A" (maxamp) (sample 0)))
       (undo)
       (xramp-channel -0.5 1.5 32.0)
       (if (not (string-=? (safe-display-edits ind 0 2) "
@@ -4864,9 +4864,9 @@ EDITS: 5
    (at 0, cp->sounds[1][0:9, 1.000, [1]-0.500 -> 1.500, off: -0.565, scl: 0.065]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";xramp 6: ~A" (safe-display-edits ind 0 2)))
+	  (snd-display "xramp 6: ~A" (safe-display-edits ind 0 2)))
       (if (or (fneq (maxamp) 1.5) (fneq (sample 0) -0.5))
-	  (snd-display ";xramp 6 vals: ~A ~A" (maxamp) (sample 0)))
+	  (snd-display "xramp 6 vals: ~A ~A" (maxamp) (sample 0)))
       (undo)
       (xramp-channel 0.0 1.0 32.0)
       (let ((vals (channel->float-vector)))
@@ -4876,11 +4876,11 @@ EDITS: 5
    (at 0, cp->sounds[1][0:9, 0.500, [1]0.000 -> 1.000, off: -0.032, scl: 0.032]) [buf: 10] 
    (at 10, end_mark)
 "))
-	    (snd-display ";xramp 7: ~A" (safe-display-edits ind 0 3)))
+	    (snd-display "xramp 7: ~A" (safe-display-edits ind 0 3)))
 	(let ((baddy (scan-channel (let ((p (make-one-pole 1.0 -1.0)))
 				     (lambda (y) 
 				       (fneq y (* 0.5 (float-vector-ref vals (floor (- (one-pole p 1.0) 1.0))))))))))
-	  (if baddy (snd-display ";trouble in xramp 7: ~A" baddy)))
+	  (if baddy (snd-display "trouble in xramp 7: ~A" baddy)))
 	(undo)
 	(delete-sample 0)
 	(if (not (string-=? (safe-display-edits ind 0 3) "
@@ -4888,11 +4888,11 @@ EDITS: 5
    (at 0, cp->sounds[1][1:9, 1.000, [1]0.015 -> 1.000, off: -0.032, scl: 0.032]) [buf: 10] 
    (at 9, end_mark)
 "))
-	    (snd-display ";xramp 8: ~A" (safe-display-edits ind 0 3)))
+	    (snd-display "xramp 8: ~A" (safe-display-edits ind 0 3)))
 	(let ((baddy (scan-channel (let ((p (make-one-pole 1.0 -1.0)))
 				     (lambda (y) 
 				       (fneq y (float-vector-ref vals (floor (one-pole p 1.0)))))))))
-	  (if baddy (snd-display ";trouble in xramp 8: ~A" baddy)))
+	  (if baddy (snd-display "trouble in xramp 8: ~A" baddy)))
 	(undo)
 	(delete-samples 0 2)
 	(if (not (string-=? (safe-display-edits ind 0 3) "
@@ -4900,11 +4900,11 @@ EDITS: 5
    (at 0, cp->sounds[1][2:9, 1.000, [1]0.037 -> 1.000, off: -0.032, scl: 0.032]) [buf: 10] 
    (at 8, end_mark)
 "))
-	    (snd-display ";xramp 9: ~A" (safe-display-edits ind 0 3)))
+	    (snd-display "xramp 9: ~A" (safe-display-edits ind 0 3)))
 	(let ((p (make-one-pole 1.0 -1.0)))
 	  (one-pole p 1.0)
 	  (let ((baddy (scan-channel (lambda (y) (fneq y (float-vector-ref vals (floor (one-pole p 1.0))))))))
-	    (if baddy (snd-display ";trouble in xramp 9: ~A" baddy)))))
+	    (if baddy (snd-display "trouble in xramp 9: ~A" baddy)))))
       (undo)
       (delete-sample 0)
       (delete-sample 0)
@@ -4913,7 +4913,7 @@ EDITS: 5
    (at 0, cp->sounds[1][2:9, 1.000, [1]0.037 -> 1.000, off: -0.032, scl: 0.032]) [buf: 10] 
    (at 8, end_mark)
 "))
-	  (snd-display ";xramp 10: ~A" (safe-display-edits ind 0 4)))
+	  (snd-display "xramp 10: ~A" (safe-display-edits ind 0 4)))
       (undo 2)
       (delete-sample 4)
       (if (not (string-=? (safe-display-edits ind 0 3) "
@@ -4922,7 +4922,7 @@ EDITS: 5
    (at 4, cp->sounds[1][5:9, 1.000, [1]0.189 -> 1.000, off: -0.032, scl: 0.032]) [buf: 10] 
    (at 9, end_mark)
 "))
-	  (snd-display ";xramp 11: ~A" (safe-display-edits ind 0 3)))
+	  (snd-display "xramp 11: ~A" (safe-display-edits ind 0 3)))
       (undo)
       (delete-samples 4 2)
       (if (not (string-=? (safe-display-edits ind 0 3) "
@@ -4931,7 +4931,7 @@ EDITS: 5
    (at 4, cp->sounds[1][6:9, 1.000, [1]0.293 -> 1.000, off: -0.032, scl: 0.032]) [buf: 10] 
    (at 8, end_mark)
 "))
-	  (snd-display ";xramp 12: ~A" (safe-display-edits ind 0 3)))
+	  (snd-display "xramp 12: ~A" (safe-display-edits ind 0 3)))
       (undo)
       (scale-channel 0.5 4 2)
       (if (not (string-=? (safe-display-edits ind 0 3) "
@@ -4941,7 +4941,7 @@ EDITS: 5
    (at 6, cp->sounds[1][6:9, 1.000, [1]0.293 -> 1.000, off: -0.032, scl: 0.032]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";xramp 13: ~A" (safe-display-edits ind 0 3)))
+	  (snd-display "xramp 13: ~A" (safe-display-edits ind 0 3)))
       (undo)
       (scale-channel 0.5 0 2)
       (if (not (string-=? (safe-display-edits ind 0 3) "
@@ -4950,7 +4950,7 @@ EDITS: 5
    (at 2, cp->sounds[1][2:9, 1.000, [1]0.037 -> 1.000, off: -0.032, scl: 0.032]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";xramp 14: ~A" (safe-display-edits ind 0 3)))
+	  (snd-display "xramp 14: ~A" (safe-display-edits ind 0 3)))
       (undo)
       (pad-channel 4 2)
       (if (not (string-=? (safe-display-edits ind 0 3) "
@@ -4960,7 +4960,7 @@ EDITS: 5
    (at 6, cp->sounds[1][4:9, 1.000, [1]0.118 -> 1.000, off: -0.032, scl: 0.032]) [buf: 10] 
    (at 12, end_mark)
 "))
-	  (snd-display ";xramp 15: ~A" (safe-display-edits ind 0 3)))
+	  (snd-display "xramp 15: ~A" (safe-display-edits ind 0 3)))
       (undo)
       (set! (sample 4) 1.0)
       (if (not (string-=? (safe-display-edits ind 0 3) "
@@ -4970,7 +4970,7 @@ EDITS: 5
    (at 5, cp->sounds[1][5:9, 1.000, [1]0.189 -> 1.000, off: -0.032, scl: 0.032]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";xramp 16: ~A" (safe-display-edits ind 0 3)))
+	  (snd-display "xramp 16: ~A" (safe-display-edits ind 0 3)))
       (undo)
       (set! (samples 4 2) (make-float-vector 2))
       (if (not (string-=? (safe-display-edits ind 0 3) "
@@ -4980,7 +4980,7 @@ EDITS: 5
    (at 6, cp->sounds[1][6:9, 1.000, [1]0.293 -> 1.000, off: -0.032, scl: 0.032]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";xramp 17: ~A" (safe-display-edits ind 0 3)))
+	  (snd-display "xramp 17: ~A" (safe-display-edits ind 0 3)))
       (undo)
       (scale-channel 0.5)
       (set! (samples 4 2) (make-float-vector 2))
@@ -4991,7 +4991,7 @@ EDITS: 5
    (at 6, cp->sounds[1][6:9, 0.500, [1]0.293 -> 1.000, off: -0.032, scl: 0.032]) [buf: 10] 
    (at 10, end_mark)
 "))
-	  (snd-display ";xramp 18: ~A" (safe-display-edits ind 0 4)))
+	  (snd-display "xramp 18: ~A" (safe-display-edits ind 0 4)))
       (close-sound ind))
 
     (let ((ind (new-sound "test.snd"))) ; third
@@ -5014,8 +5014,8 @@ EDITS: 5
    (at 90, cp->sounds[1][90:99, 0.500, [1]0.909 -> 1.000]) [buf: 100] 
    (at 100, end_mark)
 "))
-	  (snd-display ";multi-ramp 1: ~A" (safe-display-edits ind 0 12)))
-      (if (fneq (maxamp) 0.5) (snd-display ";multi ramp 1 maxamp: ~A" (maxamp)))
+	  (snd-display "multi-ramp 1: ~A" (safe-display-edits ind 0 12)))
+      (if (fneq (maxamp) 0.5) (snd-display "multi ramp 1 maxamp: ~A" (maxamp)))
       (undo)
       (ramp-channel 0.1 1.0 10 90)
       (if (not (string=? (safe-display-edits ind 0 12) "
@@ -5032,8 +5032,8 @@ EDITS: 5
    (at 90, cp->sounds[1][90:99, 0.500, [1]0.909 -> 1.000]) [buf: 100] 
    (at 100, end_mark)
 "))
-	  (snd-display ";multi-ramp 2: ~A" (safe-display-edits ind 0 12)))
-      (if (fneq (maxamp) 0.5) (snd-display ";multi ramp 2 maxamp: ~A" (maxamp)))
+	  (snd-display "multi-ramp 2: ~A" (safe-display-edits ind 0 12)))
+      (if (fneq (maxamp) 0.5) (snd-display "multi ramp 2 maxamp: ~A" (maxamp)))
       (undo)
       (ramp-channel 0.0 0.9 0 90)
       (if (not (string=? (safe-display-edits ind 0 12) "
@@ -5050,10 +5050,10 @@ EDITS: 5
    (at 90, cp->sounds[1][90:99, 0.500]) [buf: 100] 
    (at 100, end_mark)
 "))
-	  (snd-display ";multi-ramp 3: ~A" (safe-display-edits ind 0 12)))
-      (if (fneq (maxamp) 0.5) (snd-display ";multi ramp 3 maxamp: ~A" (maxamp)))
-      (if (fneq (sample 89) 0.45) (snd-display ";multi ramp 3 sample 89: ~A" (sample 89)))
-      (if (fneq (sample 90) 0.5) (snd-display ";multi ramp 3 sample 90: ~A" (sample 90)))
+	  (snd-display "multi-ramp 3: ~A" (safe-display-edits ind 0 12)))
+      (if (fneq (maxamp) 0.5) (snd-display "multi ramp 3 maxamp: ~A" (maxamp)))
+      (if (fneq (sample 89) 0.45) (snd-display "multi ramp 3 sample 89: ~A" (sample 89)))
+      (if (fneq (sample 90) 0.5) (snd-display "multi ramp 3 sample 90: ~A" (sample 90)))
       (undo)
       (ramp-channel 0.1 0.9 10 80)
       (if (not (string=? (safe-display-edits ind 0 12) "
@@ -5070,7 +5070,7 @@ EDITS: 5
    (at 90, cp->sounds[1][90:99, 0.500]) [buf: 100] 
    (at 100, end_mark)
 "))
-	  (snd-display ";multi-ramp 4: ~A" (safe-display-edits ind 0 12)))
+	  (snd-display "multi-ramp 4: ~A" (safe-display-edits ind 0 12)))
       (revert-sound)
       (map-channel (lambda (y) 1.0) 0 100)
       (ramp-channel 0.0 1.0)
@@ -5091,38 +5091,38 @@ EDITS: 5
    (at 90, cp->sounds[1][90:99, 0.500, [1]0.909 -> 1.000]) [buf: 100] 
    (at 100, end_mark)
 "))
-	  (snd-display ";multi-ramp 5: ~A" (safe-display-edits ind 0 12)))
+	  (snd-display "multi-ramp 5: ~A" (safe-display-edits ind 0 12)))
       (close-sound ind))
     
     (let ((ind (open-sound "oboe.snd")))
-      (if (not (= (redo 1 ind 0) 0)) (snd-display ";open redo with no ops: ~A" (redo)))
-      (if (not (= (undo 1 ind 0) 0)) (snd-display ";open undo with no ops: ~A" (undo)))
+      (if (not (= (redo 1 ind 0) 0)) (snd-display "open redo with no ops: ~A" (redo)))
+      (if (not (= (undo 1 ind 0) 0)) (snd-display "open undo with no ops: ~A" (undo)))
       (set! (cursor) 1000)
       (delete-sample 321)
-      (if (not (= (cursor) 999)) (snd-display ";delete-sample before cursor: ~A" (cursor)))
-      (if (not (= (cursor ind 0 0) 1000)) (snd-display ";delete-sample before cursor (0): ~A" (cursor ind 0 0)))
+      (if (not (= (cursor) 999)) (snd-display "delete-sample before cursor: ~A" (cursor)))
+      (if (not (= (cursor ind 0 0) 1000)) (snd-display "delete-sample before cursor (0): ~A" (cursor ind 0 0)))
       (undo)
-      (if (not (= (cursor) 1000)) (snd-display ";delete-sample after cursor undo: ~A" (cursor)))
+      (if (not (= (cursor) 1000)) (snd-display "delete-sample after cursor undo: ~A" (cursor)))
       (undo -1)
-      (if (not (= (cursor) 999)) (snd-display ";delete-sample before cursor redo: ~A" (cursor)))
+      (if (not (= (cursor) 999)) (snd-display "delete-sample before cursor redo: ~A" (cursor)))
       (redo -1)
       (delete-sample 1321)
-      (if (not (= (cursor) 1000)) (snd-display ";delete-sample after cursor: ~A" (cursor)))
+      (if (not (= (cursor) 1000)) (snd-display "delete-sample after cursor: ~A" (cursor)))
       (undo)
       (delete-samples 0 100)
-      (if (not (= (cursor) 900)) (snd-display ";delete-samples before cursor: ~A" (cursor)))
+      (if (not (= (cursor) 900)) (snd-display "delete-samples before cursor: ~A" (cursor)))
       (undo)
       (delete-samples 1100 100)
-      (if (not (= (cursor) 1000)) (snd-display ";delete-samples after cursor: ~A" (cursor)))
+      (if (not (= (cursor) 1000)) (snd-display "delete-samples after cursor: ~A" (cursor)))
       (undo)
       (insert-samples 100 100 (make-float-vector 100))
-      (if (not (= (cursor) 1100)) (snd-display ";insert-samples before cursor: ~A" (cursor)))
+      (if (not (= (cursor) 1100)) (snd-display "insert-samples before cursor: ~A" (cursor)))
       (undo)
       (insert-samples 1100 100 (make-float-vector 100))
-      (if (not (= (cursor) 1000)) (snd-display ";insert-samples after cursor: ~A" (cursor)))
+      (if (not (= (cursor) 1000)) (snd-display "insert-samples after cursor: ~A" (cursor)))
       (undo)
       (set! (samples 0 100) (make-float-vector 100))
-      (if (not (= (cursor) 1000)) (snd-display ";set-samples cursor: ~A" (cursor)))
+      (if (not (= (cursor) 1000)) (snd-display "set-samples cursor: ~A" (cursor)))
       (set! (show-axes ind 0) show-x-axis-unlabelled)
       (update-time-graph)
       (set! (show-axes ind 0) show-all-axes-unlabelled)
@@ -5132,33 +5132,33 @@ EDITS: 5
     (let ((ind (new-sound "test.snd" :size 100)))
       (float-vector->channel (make-float-vector 3 1.0) 10 8)
       (if (fneq (maxamp ind 0) 1.0)
-	  (snd-display ";float-vector->channel size mismatch maxamp: ~A" (maxamp ind 0)))
+	  (snd-display "float-vector->channel size mismatch maxamp: ~A" (maxamp ind 0)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 20 ind 0)
 				  (float-vector 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0)))
-	  (snd-display ";float-vector->channel size mismatch: ~A" (channel->float-vector 0 20 ind 0)))
+	  (snd-display "float-vector->channel size mismatch: ~A" (channel->float-vector 0 20 ind 0)))
       (revert-sound ind)
       (set! (samples 10 5) (make-float-vector 3 1.0))
       (if (fneq (maxamp ind 0) 1.0)
-	  (snd-display ";set samples size mismatch maxamp: ~A" (maxamp ind 0)))
+	  (snd-display "set samples size mismatch maxamp: ~A" (maxamp ind 0)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 20 ind 0)
 				  (float-vector 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0)))
-	  (snd-display ";set samples size mismatch: ~A" (channel->float-vector 0 20 ind 0)))
+	  (snd-display "set samples size mismatch: ~A" (channel->float-vector 0 20 ind 0)))
       (revert-sound ind)
       (insert-samples 10 8 (make-float-vector 3 1.0) ind 0)
       (if (fneq (maxamp ind 0) 1.0)
-	  (snd-display ";insert samples size mismatch maxamp: ~A" (maxamp ind 0)))
+	  (snd-display "insert samples size mismatch maxamp: ~A" (maxamp ind 0)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 20 ind 0)
 				  (float-vector 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0)))
-	  (snd-display ";insert samples size mismatch: ~A" (channel->float-vector 0 20 ind 0)))
+	  (snd-display "insert samples size mismatch: ~A" (channel->float-vector 0 20 ind 0)))
       (close-sound ind))
     
     (let ((index (open-sound "oboe.snd")))
       (if (not (string=? (snd-completion " open-so") " open-sound"))
-	  (snd-display ";completion: ~A" (snd-completion " open-so")))
+	  (snd-display "completion: ~A" (snd-completion " open-so")))
 					;	(if (not (string=? (snd-completion " open-sound") " open-sound"))
-					;	    (snd-display ";completion: ~A" (snd-completion " open-so")))
+					;	    (snd-display "completion: ~A" (snd-completion " open-so")))
       (if (not (string=? (snd-completion " zoom-focus-r") " zoom-focus-right"))
-	  (snd-display ";completion: ~A" (snd-completion " zoom-focus-r")))
+	  (snd-display "completion: ~A" (snd-completion " zoom-focus-r")))
       (play "oboe.snd" :wait #t)
       (play "oboe.snd" :start 12000 :wait #t)
       (play "oboe.snd" :start 12000 :end 15000 :wait #t)
@@ -5172,11 +5172,11 @@ EDITS: 5
 	(set! (speed-control index) 0.25))
       (let ((k (disk-kspace "oboe.snd")))
 	(if (<= k 0)
-	    (snd-display ";disk-kspace = ~A" (disk-kspace "oboe.snd")))
+	    (snd-display "disk-kspace = ~A" (disk-kspace "oboe.snd")))
 	(set! k (disk-kspace "/baddy/hiho"))
 	(if (not (= k -1))
-	    (snd-display ";disk-kspace of bogus file = ~A" (disk-kspace "/baddy/hiho"))))
-      (if (not (= (transform-framples) 0)) (snd-display ";transform-framples ~A?" (transform-framples)))
+	    (snd-display "disk-kspace of bogus file = ~A" (disk-kspace "/baddy/hiho"))))
+      (if (not (= (transform-framples) 0)) (snd-display "transform-framples ~A?" (transform-framples)))
       (set! *transform-size* 512)
       
       (set! (transform-graph?) #t)
@@ -5186,40 +5186,40 @@ EDITS: 5
 	(catch #t
 	  (lambda ()
 	    (if (not (string=? (x-axis-label) "time")) 
-		(snd-display ";def time x-axis-label: ~A" (x-axis-label)))
+		(snd-display "def time x-axis-label: ~A" (x-axis-label)))
 	    (set! (x-axis-label index 0 time-graph) "no time")
 	    (if (not (string=? (x-axis-label) "no time")) 
-		(snd-display ";time x-axis-label: ~A" (x-axis-label index 0 time-graph)))
+		(snd-display "time x-axis-label: ~A" (x-axis-label index 0 time-graph)))
 	    
 	    (update-transform-graph)
 	    (if (not (string=? (x-axis-label index 0 transform-graph) "frequency")) 
-		(snd-display ";get fft x-axis-label: ~A" (x-axis-label index 0 transform-graph)))
+		(snd-display "get fft x-axis-label: ~A" (x-axis-label index 0 transform-graph)))
 	    (set! (x-axis-label index 0 transform-graph) "hiho")
 	    (update-transform-graph)
 	    (if (not (string=? (x-axis-label index 0 transform-graph) "hiho")) 
-		(snd-display ";set fft x-axis-label: ~A" (x-axis-label index 0 transform-graph)))
+		(snd-display "set fft x-axis-label: ~A" (x-axis-label index 0 transform-graph)))
 	    (set! (x-axis-label index 0 transform-graph) "frequency") ; for later test
 	    
 	    (graph '(0 0 1 1 2 0) "lisp")
 	    (update-lisp-graph)
 	    (if (not (string=? (x-axis-label index 0 lisp-graph) "lisp")) 
-		(snd-display ";def lisp x-axis-label: ~A" (x-axis-label index 0 lisp-graph)))
+		(snd-display "def lisp x-axis-label: ~A" (x-axis-label index 0 lisp-graph)))
 	    (set! (x-axis-label index 0 lisp-graph) "no lisp")
 	    (if (not (string=? (x-axis-label index 0 lisp-graph) "no lisp")) 
-		(snd-display ";lisp x-axis-label: ~A" (x-axis-label index 0 lisp-graph)))
+		(snd-display "lisp x-axis-label: ~A" (x-axis-label index 0 lisp-graph)))
 	    
 	    (set! (y-axis-label index 0 time-graph) "no amp")
 	    (if (not (string=? (y-axis-label) "no amp"))
-		(snd-display ";time y-axis-label: ~A" (y-axis-label index 0 time-graph)))
+		(snd-display "time y-axis-label: ~A" (y-axis-label index 0 time-graph)))
 	    (set! (y-axis-label index 0 lisp-graph) "no lamp")
 	    (if (not (string=? (y-axis-label index 0 lisp-graph) "no lamp")) 
-		(snd-display ";lisp y-axis-label: ~A" (y-axis-label index 0 lisp-graph)))
+		(snd-display "lisp y-axis-label: ~A" (y-axis-label index 0 lisp-graph)))
 	    (set! (y-axis-label) #f)
 	    (set! (y-axis-label index 0) "no amp")
 	    (if (not (string=? (y-axis-label) "no amp")) 
-		(snd-display ";time y-axis-label (time): ~A" (y-axis-label index 0 time-graph)))
+		(snd-display "time y-axis-label (time): ~A" (y-axis-label index 0 time-graph)))
 	    (set! (y-axis-label index) #f))
-	  (lambda args (snd-display ";axis label error: ~A" args)))
+	  (lambda args (snd-display "axis label error: ~A" args)))
 	
 	(let ((cr (make-cairo (car (channel-widgets index 0)))))
 	  (graph-data (make-float-vector 4) index 0 copy-context #f #f graph-lines cr)
@@ -5236,57 +5236,57 @@ EDITS: 5
 	  (if (float-vector? data)
 	      (let ((mid (round (* .5 (length data)))))
 		(if (not (= (length data) (- (+ (right-sample) 1) (left-sample))))
-		    (snd-display ";make-graph-data bounds: ~A ~A -> ~A" (left-sample) (right-sample) (length data)))
+		    (snd-display "make-graph-data bounds: ~A ~A -> ~A" (left-sample) (right-sample) (length data)))
 		(if (fneq (data mid)
 			  (sample (+ (left-sample) mid)))
-		    (snd-display ";make-graph-data[~D]: ~A ~A" mid (data mid) (sample (+ (left-sample) mid)))))))
+		    (snd-display "make-graph-data[~D]: ~A ~A" mid (data mid) (sample (+ (left-sample) mid)))))))
 	(let ((data (make-graph-data index 0 0 100 199)))
 	  (when (float-vector? data)
 	    (if (not (= (length data) 100))
-		(snd-display ";make-graph-data 100:199: ~A" (length data)))
+		(snd-display "make-graph-data 100:199: ~A" (length data)))
 	    (if (fneq (data 50) (sample 50))
-		(snd-display ";make-graph-data 50: ~A ~A" (data 50) (sample 50)))))
+		(snd-display "make-graph-data 50: ~A ~A" (data 50) (sample 50)))))
 	(set! (x-bounds) (list 0.0 0.1))
 	(update-transform-graph)
 	(catch 'no-such-axis
 	  (lambda ()
 	    (if (not (string=? (x-axis-label index 0 transform-graph) "frequency")) 
-		(snd-display ";def fft x-axis-label: ~A" (x-axis-label index 0 transform-graph)))
+		(snd-display "def fft x-axis-label: ~A" (x-axis-label index 0 transform-graph)))
 	    (set! (x-axis-label index 0 transform-graph) "fourier")
 	    (if (not (string=? (x-axis-label index 0 transform-graph) "fourier")) 
-		(snd-display ";fft x-axis-label: ~A" (x-axis-label index 0 transform-graph)))
+		(snd-display "fft x-axis-label: ~A" (x-axis-label index 0 transform-graph)))
 	    (set! (x-axis-label) "hiho")
 	    
 	    (set! (y-axis-label index 0 transform-graph) "spectra")
 	    (let ((val (y-axis-label index 0 transform-graph)))
 	      (if (not (equal? val "spectra"))
-		  (snd-display ";fft y-axis-label: ~A" val)))
+		  (snd-display "fft y-axis-label: ~A" val)))
 	    (set! (y-axis-label) "hiho"))
-	  (lambda args (snd-display ";transform axis not displayed?"))))
+	  (lambda args (snd-display "transform axis not displayed?"))))
       
       (if (and (number? (transform-framples))
 	       (= (transform-framples) 0))
-	  (snd-display ";transform-graph? transform-framples ~A?" (transform-framples)))
+	  (snd-display "transform-graph? transform-framples ~A?" (transform-framples)))
       (update-transform-graph)
       (let ((tag (catch #t (lambda () (peaks "/baddy/hiho")) (lambda args (car args)))))
-	(if (not (eq? tag 'cant-open-file)) (snd-display ";peaks bad file: ~A" tag)))
+	(if (not (eq? tag 'cant-open-file)) (snd-display "peaks bad file: ~A" tag)))
       (peaks "tmp.peaks")
       (let* ((p (open-input-file "tmp.peaks"))
 	     (line (read-line p)))
 	(if (not (string=? "Snd: fft peaks" (substring line 0 14)))
-	    (snd-display ";peaks 1: ~A?" line))
+	    (snd-display "peaks 1: ~A?" line))
 	(read-line p)
 	(set! line (read-line p))
 	(if (not (member line '(#<eof> "oboe.snd, fft 512 points beginning at sample 0 (0.000 secs), Blackman2"
 				       "oboe.snd, fft 512 points beginning at sample 0 (0.000 secs), Blackman2\n")))
-	    (snd-display ";peaks 2: ~A?" line))
+	    (snd-display "peaks 2: ~A?" line))
 	(close-input-port p))
       (delete-file "tmp.peaks")
       (peaks)
       (if (and (provided? 'xm) 
 	       (not (and ((dialog-widgets) 15)
 			 ((*motif* 'XtIsManaged) ((dialog-widgets) 15)))))
-	  (snd-display ";peaks but no help?"))
+	  (snd-display "peaks but no help?"))
       (dismiss-all-dialogs)
       (let ((num-transforms 6)
 	    (num-transform-graph-types 3))
@@ -5295,26 +5295,26 @@ EDITS: 5
 	(do ((i 0 (+ i 1)))
 	    ((= i num-transforms))
 	  (set! *transform-type* (integer->transform i))
-	  (if (not (transform? (integer->transform i))) (snd-display ";transform? ~A?" i))
+	  (if (not (transform? (integer->transform i))) (snd-display "transform? ~A?" i))
 	  (do ((j 0 (+ j 1)))
 	      ((= j num-transform-graph-types))
 	    (set! (transform-graph-type index 0) j)
 	    (update-transform-graph index 0))))
       (set! *transform-type* fourier-transform)
-      (if (not (transform? *transform-type*)) (snd-display ";transform? ~A ~A?" *transform-type* fourier-transform))
-      (if (not (transform? autocorrelation)) (snd-display ";transform? autocorrelation"))
+      (if (not (transform? *transform-type*)) (snd-display "transform? ~A ~A?" *transform-type* fourier-transform))
+      (if (not (transform? autocorrelation)) (snd-display "transform? autocorrelation"))
       
-      (if (read-only index) (snd-display ";read-only open-sound: ~A?" (read-only index)))
+      (if (read-only index) (snd-display "read-only open-sound: ~A?" (read-only index)))
       (set! (read-only index) #t)
-      (if (not (read-only index)) (snd-display ";set-read-only: ~A?" (read-only index)))
+      (if (not (read-only index)) (snd-display "set-read-only: ~A?" (read-only index)))
       (when with-gui
 	(let ((a-ctr 0))
 	  (bind-key #\a 0 (lambda () (set! a-ctr 3)))
 	  (key (char->integer #\a) 0)
-	  (if (not (= a-ctr 3)) (snd-display ";bind-key: ~A?" a-ctr))
+	  (if (not (= a-ctr 3)) (snd-display "bind-key: ~A?" a-ctr))
 	  (let ((str (object->string (procedure-source (key-binding (char->integer #\a) 0)) #f)))
 	    (if (not (string=? str "(lambda () (set! a-ctr 3))"))
-		(snd-display ";key-binding: ~A?" str)))
+		(snd-display "key-binding: ~A?" str)))
 	  (unbind-key (char->integer #\a) 0))
 	(key (char->integer #\a) 0))
       (do ((i 0 (+ i 1)))
@@ -5326,23 +5326,23 @@ EDITS: 5
 	  (graph->ps)
 	  (if (file-exists? *eps-file*)
 	      (delete-file *eps-file*)
-	      (snd-display ";graph->ps: ~A?" *eps-file*))))
+	      (snd-display "graph->ps: ~A?" *eps-file*))))
       (let ((err (catch 'cannot-print 
 		   (lambda () 
 		     (graph->ps "/bad/bad.eps"))
 		   (lambda args 12345))))
-	(if (not (= err 12345)) (snd-display ";graph->ps err: ~A?" err)))
+	(if (not (= err 12345)) (snd-display "graph->ps err: ~A?" err)))
       (when with-gui
 	(let ((n2 (or (open-sound "2.snd") (open-sound "4.aiff"))))
 	  (set! (transform-graph? n2) #t)
 	  (set! (channel-style n2) channels-superimposed)
-	  (if (not (= (channel-style n2) channels-superimposed)) (snd-display ";channel-style->~D: ~A?" channels-superimposed (channel-style n2)))
+	  (if (not (= (channel-style n2) channels-superimposed)) (snd-display "channel-style->~D: ~A?" channels-superimposed (channel-style n2)))
 	  (graph->ps "aaa.eps")
 	  (set! (channel-style n2) channels-combined)
-	  (if (not (= (channel-style n2) channels-combined)) (snd-display ";channel-style->~D: ~A?" channels-combined (channel-style n2)))
+	  (if (not (= (channel-style n2) channels-combined)) (snd-display "channel-style->~D: ~A?" channels-combined (channel-style n2)))
 	  (graph->ps "aaa.eps")
 	  (set! (channel-style n2) channels-separate)
-	  (if (not (= (channel-style n2) channels-separate)) (snd-display ";channel-style->~D: ~A?" channels-separate (channel-style n2)))
+	  (if (not (= (channel-style n2) channels-separate)) (snd-display "channel-style->~D: ~A?" channels-separate (channel-style n2)))
 	  (graph->ps "aaa.eps")
 	  (close-sound n2)))
       
@@ -5353,155 +5353,155 @@ EDITS: 5
 	    (bnds (x-bounds index)))
 	(when (= (channels index) 1)
 	  (set! (channel-style index) channels-superimposed)
-	  (if (not (= (channel-style index) channels-separate)) (snd-display ";channel-style[0]->~D: ~A?" channels-separate (channel-style index))))
+	  (if (not (= (channel-style index) channels-separate)) (snd-display "channel-style[0]->~D: ~A?" channels-separate (channel-style index))))
 	(set! (sync index) 32)
-	(if (not (= (sync index) 32)) (snd-display ";sync->32: ~A?" (sync index)))
-	(if (< (sync-max) 32) (snd-display ";sync-max 32: ~A" (sync-max)))
+	(if (not (= (sync index) 32)) (snd-display "sync->32: ~A?" (sync index)))
+	(if (< (sync-max) 32) (snd-display "sync-max 32: ~A" (sync-max)))
 	(set! (sync index) 0)
 	(set! (channel-sync index 0) 12)
-	(if (not (= (channel-sync index 0) 12)) (snd-display ";sync-chn->12: ~A?" (channel-sync index 0)))
+	(if (not (= (channel-sync index 0) 12)) (snd-display "sync-chn->12: ~A?" (channel-sync index 0)))
 	(set! (channel-sync index 0) 0)
-	(if (fneq xp 0.0) (snd-display ";x-position-slider: ~A?" xp))
-	(if (fneq yp 0.0) (snd-display ";y-position-slider: ~A?" yp))
-	(if (and (fneq xz 0.04338) (fneq xz 1.0)) (snd-display ";x-zoom-slider: ~A?" xz))
-	(if (fneq yz 1.0) (snd-display ";y-zoom-slider: ~A?" yz))
+	(if (fneq xp 0.0) (snd-display "x-position-slider: ~A?" xp))
+	(if (fneq yp 0.0) (snd-display "y-position-slider: ~A?" yp))
+	(if (and (fneq xz 0.04338) (fneq xz 1.0)) (snd-display "x-zoom-slider: ~A?" xz))
+	(if (fneq yz 1.0) (snd-display "y-zoom-slider: ~A?" yz))
 	(if (or (fneq (car bnds) 0.0) (and (fneq (cadr bnds) 0.1) (fneq (cadr bnds) 2.305)))
-	    (snd-display ";x-bounds: ~A?" bnds)))
-      
-      (if (not (equal? (find-sound "oboe.snd") index)) (snd-display ";oboe: index ~D is not ~D?" (find-sound "oboe.snd") index))
-      (if (not (sound? index)) (snd-display ";oboe: ~D not ok?" index))
-      (if (not (= (chans index) 1)) (snd-display ";oboe: chans ~D?" (chans index)))
-      (if (not (= (channels index) 1)) (snd-display ";oboe: channels ~D?" (channels index)))
-      (if (not (= (framples index) 50828)) (snd-display ";oboe: framples ~D?" (framples index)))
-      (if (not (= (srate index) 22050)) (snd-display ";oboe: srate ~D?" (srate index)))
-      (if (not (= (data-location index) 28)) (snd-display ";oboe: location ~D?" (data-location index)))
-      (if (not (= (data-size index) 101656)) (snd-display ";oboe: size ~D?" (data-size index)))
-      (if (not (= (sample-type index) mus-bshort)) (snd-display ";oboe: format ~A?" (sample-type index)))
-      (if (fneq (maxamp index) .14724) (snd-display ";oboe: maxamp ~F?" (maxamp index)))
-      (if (not (= (maxamp-position index) 24971)) (snd-display ";oboe: maxamp-position ~A?" (maxamp-position index)))
-      (if (> (length (comment index)) 0) (snd-display ";oboe: comment ~A?" (comment index)))
-      (if (not (string=? (short-file-name index) "oboe.snd")) (snd-display ";oboe short name: ~S?" (short-file-name index)))
+	    (snd-display "x-bounds: ~A?" bnds)))
+      
+      (if (not (equal? (find-sound "oboe.snd") index)) (snd-display "oboe: index ~D is not ~D?" (find-sound "oboe.snd") index))
+      (if (not (sound? index)) (snd-display "oboe: ~D not ok?" index))
+      (if (not (= (chans index) 1)) (snd-display "oboe: chans ~D?" (chans index)))
+      (if (not (= (channels index) 1)) (snd-display "oboe: channels ~D?" (channels index)))
+      (if (not (= (framples index) 50828)) (snd-display "oboe: framples ~D?" (framples index)))
+      (if (not (= (srate index) 22050)) (snd-display "oboe: srate ~D?" (srate index)))
+      (if (not (= (data-location index) 28)) (snd-display "oboe: location ~D?" (data-location index)))
+      (if (not (= (data-size index) 101656)) (snd-display "oboe: size ~D?" (data-size index)))
+      (if (not (= (sample-type index) mus-bshort)) (snd-display "oboe: format ~A?" (sample-type index)))
+      (if (fneq (maxamp index) .14724) (snd-display "oboe: maxamp ~F?" (maxamp index)))
+      (if (not (= (maxamp-position index) 24971)) (snd-display "oboe: maxamp-position ~A?" (maxamp-position index)))
+      (if (> (length (comment index)) 0) (snd-display "oboe: comment ~A?" (comment index)))
+      (if (not (string=? (short-file-name index) "oboe.snd")) (snd-display "oboe short name: ~S?" (short-file-name index)))
       (let ((matches (count-matches (lambda (a) (> a .125)))))
-	(if (not (= matches 1313)) (snd-display ";count-matches: ~A?" matches)))
+	(if (not (= matches 1313)) (snd-display "count-matches: ~A?" matches)))
       (let ((spot (scan-channel (lambda (a) (> a .13)))))
-	(if (not (eqv? spot 8862)) (snd-display ";find: ~A?" spot)))
+	(if (not (eqv? spot 8862)) (snd-display "find: ~A?" spot)))
       (set! (right-sample) 3000) 
       (let ((samp (right-sample)))
-	(if (> (abs (- samp 3000)) 1) (snd-display ";right-sample: ~A?" samp)))
+	(if (> (abs (- samp 3000)) 1) (snd-display "right-sample: ~A?" samp)))
       (set! (left-sample) 1000) 
       (let ((samp (left-sample)))
-	(if (> (abs (- samp 1000)) 1) (snd-display ";left-sample: ~A?" samp)))
+	(if (> (abs (- samp 1000)) 1) (snd-display "left-sample: ~A?" samp)))
       (let ((eds (edits)))
 	(if (not (= (car eds) 0 (cadr eds)))
-	    (snd-display ";edits: ~A?" eds))
+	    (snd-display "edits: ~A?" eds))
 	(if (not (= (edit-position) (car eds)))
-	    (snd-display ";edit-position: ~A ~A?" (edit-position) eds)))
+	    (snd-display "edit-position: ~A ~A?" (edit-position) eds)))
       (play index :channel 0 :wait #t)
       
       (if (not *selection-creates-region*) (set! *selection-creates-region* #t))
       (select-all index 0) 
       (let ((r0 (car (regions)))
 	    (sel (selection)))
-	(if (not (selection?)) (snd-display ";selection?"))
-	(if (not (selection? sel)) (snd-display ";selection? sel"))
-	(if (not (region? r0)) (snd-display ";region?"))
-	(if (not (= (selection-chans) 1)) (snd-display ";selection-chans(1): ~A" (selection-chans)))
-	(if (not (= (channels sel) 1)) (snd-display ";generic selection-chans(1): ~A" (channels sel)))
-	(if (not (= (selection-srate) (srate index))) (snd-display ";selection-srate: ~A ~A" (selection-srate) (srate index)))
-	(if (not (= (srate sel) (srate index))) (snd-display ";generic selection-srate: ~A ~A" (srate sel) (srate index)))
-	(if (fneq (region-maxamp r0) (maxamp index)) (snd-display ";region-maxamp (1): ~A?" (region-maxamp r0)))
+	(if (not (selection?)) (snd-display "selection?"))
+	(if (not (selection? sel)) (snd-display "selection? sel"))
+	(if (not (region? r0)) (snd-display "region?"))
+	(if (not (= (selection-chans) 1)) (snd-display "selection-chans(1): ~A" (selection-chans)))
+	(if (not (= (channels sel) 1)) (snd-display "generic selection-chans(1): ~A" (channels sel)))
+	(if (not (= (selection-srate) (srate index))) (snd-display "selection-srate: ~A ~A" (selection-srate) (srate index)))
+	(if (not (= (srate sel) (srate index))) (snd-display "generic selection-srate: ~A ~A" (srate sel) (srate index)))
+	(if (fneq (region-maxamp r0) (maxamp index)) (snd-display "region-maxamp (1): ~A?" (region-maxamp r0)))
 	(if (not (= (region-maxamp-position r0) (maxamp-position index)))
-	    (snd-display ";region-maxamp-position (1): ~A ~A?" (region-maxamp-position r0) (maxamp-position index)))
-	(if (fneq (selection-maxamp index 0) (maxamp index)) (snd-display ";selection-maxamp (1): ~A?" (selection-maxamp index 0)))
-	(if (fneq (maxamp sel index 0) (maxamp index)) (snd-display ";generic selection-maxamp (1): ~A?" (maxamp sel index 0)))
+	    (snd-display "region-maxamp-position (1): ~A ~A?" (region-maxamp-position r0) (maxamp-position index)))
+	(if (fneq (selection-maxamp index 0) (maxamp index)) (snd-display "selection-maxamp (1): ~A?" (selection-maxamp index 0)))
+	(if (fneq (maxamp sel index 0) (maxamp index)) (snd-display "generic selection-maxamp (1): ~A?" (maxamp sel index 0)))
 	(if (not (= (selection-maxamp-position index 0) (maxamp-position index)))
-	    (snd-display ";selection-maxamp-position (1): ~A ~A?" (selection-maxamp-position index 0) (maxamp-position index)))
+	    (snd-display "selection-maxamp-position (1): ~A ~A?" (selection-maxamp-position index 0) (maxamp-position index)))
 	(save-region r0 "temp.dat")
 	(if (file-exists? "temp.dat")
 	    (delete-file "temp.dat")
-	    (snd-display ";save-region file disappeared?"))
+	    (snd-display "save-region file disappeared?"))
 	(play r0 :wait #t) ;needs to be #t here or it never gets run
-	(if (not (= (length (regions)) 1)) (snd-display ";regions: ~A?" (regions)))
-	(if (not (selection-member? index)) (snd-display ";selection-member?: ~A" (selection-member? index)))
-	(if (not (= (region-srate r0) 22050)) (snd-display ";region-srate: ~A?" (region-srate r0)))
-	(if (not (= (region-chans r0) 1)) (snd-display ";region-chans: ~A?" (region-chans r0)))
-	(if (not (equal? (region-home r0) '("oboe.snd" 0 50827))) (snd-display ";region-home: ~A" (region-home r0)))
-	(if (not (= (region-framples r0) 50828)) (snd-display ";region-framples: ~A?" (region-framples r0)))
-	(if (not (= (selection-framples) 50828)) (snd-display ";selection-framples: ~A?" (selection-framples 0)))
-	(if (not (= (framples sel) 50828)) (snd-display ";generic selection-framples: ~A?" (framples sel)))
-	(if (not (= (length sel) 50828)) (snd-display ";generic length selection-framples: ~A?" (length sel)))
-	(if (not (= (selection-position) 0)) (snd-display ";selection-position: ~A?" (selection-position)))
-	(if (not (= (region-position r0 0) 0)) (snd-display ";region-position: ~A?" (region-position r0 0)))
-	(if (fneq (region-maxamp r0) (maxamp index)) (snd-display ";region-maxamp: ~A?" (region-maxamp r0)))
-	(if (fneq (selection-maxamp index 0) (maxamp index)) (snd-display ";selection-maxamp: ~A?" (selection-maxamp index 0)))
+	(if (not (= (length (regions)) 1)) (snd-display "regions: ~A?" (regions)))
+	(if (not (selection-member? index)) (snd-display "selection-member?: ~A" (selection-member? index)))
+	(if (not (= (region-srate r0) 22050)) (snd-display "region-srate: ~A?" (region-srate r0)))
+	(if (not (= (region-chans r0) 1)) (snd-display "region-chans: ~A?" (region-chans r0)))
+	(if (not (equal? (region-home r0) '("oboe.snd" 0 50827))) (snd-display "region-home: ~A" (region-home r0)))
+	(if (not (= (region-framples r0) 50828)) (snd-display "region-framples: ~A?" (region-framples r0)))
+	(if (not (= (selection-framples) 50828)) (snd-display "selection-framples: ~A?" (selection-framples 0)))
+	(if (not (= (framples sel) 50828)) (snd-display "generic selection-framples: ~A?" (framples sel)))
+	(if (not (= (length sel) 50828)) (snd-display "generic length selection-framples: ~A?" (length sel)))
+	(if (not (= (selection-position) 0)) (snd-display "selection-position: ~A?" (selection-position)))
+	(if (not (= (region-position r0 0) 0)) (snd-display "region-position: ~A?" (region-position r0 0)))
+	(if (fneq (region-maxamp r0) (maxamp index)) (snd-display "region-maxamp: ~A?" (region-maxamp r0)))
+	(if (fneq (selection-maxamp index 0) (maxamp index)) (snd-display "selection-maxamp: ~A?" (selection-maxamp index 0)))
 	(let ((samps1 (channel->float-vector 0 50827 index 0))
 	      (samps2 (region->float-vector r0 0 50828 0))
 	      (vr (make-sampler 0 index 0 1)))
-	  (if (not (sampler? vr)) (snd-display ";~A not sampler?" vr))
-	  (if (not (= (sampler-position vr) 0)) (snd-display ";initial sampler-position: ~A" (sampler-position vr)))
+	  (if (not (sampler? vr)) (snd-display "~A not sampler?" vr))
+	  (if (not (= (sampler-position vr) 0)) (snd-display "initial sampler-position: ~A" (sampler-position vr)))
 	  (if (not (equal? (sampler-home vr) (list index 0))) 
-	      (snd-display ";sampler-home: ~A ~A?" (sampler-home vr) (list index 0)))
-	  (if (sampler-at-end? vr) (snd-display ";~A init at end?" vr))
+	      (snd-display "sampler-home: ~A ~A?" (sampler-home vr) (list index 0)))
+	  (if (sampler-at-end? vr) (snd-display "~A init at end?" vr))
 	  (let ((err (catch #t
 		       (lambda ()
 			 (region->float-vector r0 -1 1233))
 		       (lambda args (car args)))))
-	    (if (not (eq? err 'no-such-sample)) (snd-display ";region->float-vector -1: ~A" err)))
+	    (if (not (eq? err 'no-such-sample)) (snd-display "region->float-vector -1: ~A" err)))
 	  (let ((err (catch #t
 		       (lambda ()
 			 (region->float-vector r0 12345678 1))
 		       (lambda args (car args)))))
 	    ;; should this return 'no-such-sample?
-	    (if err (snd-display ";region->float-vector 12345678: ~A" err)))
+	    (if err (snd-display "region->float-vector 12345678: ~A" err)))
 	  (let ((reader-string (object->string vr #f)))
 	    (if (not (string=? reader-string "#<sampler: oboe.snd[0: 0] from 0, at 0, forward>"))
-		(snd-display ";sampler actually got: [~S]" reader-string)))
+		(snd-display "sampler actually got: [~S]" reader-string)))
 	  (catch 'break
 	    (lambda ()
 	      (do ((i 0 (+ i 1)))
 		  ((= i 50827))
 		(unless (= ((if (odd? i) next-sample read-sample) vr) (samps1 i) (samps2 i))
-		  (snd-display ";readers disagree at ~D" i)
+		  (snd-display "readers disagree at ~D" i)
 		  (throw 'break))))
 	    (lambda args (car args)))
 	  (free-sampler vr)))
       (let ((var (catch #t (lambda () (make-sampler 0 index -1)) (lambda args args))))
 	(if (not (eq? (car var) 'no-such-channel))
-	    (snd-display ";make-sampler bad chan (-1): ~A" var)))
+	    (snd-display "make-sampler bad chan (-1): ~A" var)))
       (let ((var (catch #t (lambda () (make-sampler 0 index 1)) (lambda args args))))
 	(if (not (eq? (car var) 'no-such-channel))
-	    (snd-display ";make-sampler bad chan (1): ~A, ~A" var index)))
+	    (snd-display "make-sampler bad chan (1): ~A, ~A" var index)))
       (let ((fd (make-sampler 0)))
-	(if (mix-sampler? fd) (snd-display ";sampler: mix ~A" fd))
-	(if (region-sampler? fd) (snd-display ";sampler: region ~A" fd))
-	(if (not (sampler? fd)) (snd-display ";sampler: normal ~A" fd))
-	(if (not (= (sampler-position fd) 0)) (snd-display ";sampler: position: ~A" fd))
+	(if (mix-sampler? fd) (snd-display "sampler: mix ~A" fd))
+	(if (region-sampler? fd) (snd-display "sampler: region ~A" fd))
+	(if (not (sampler? fd)) (snd-display "sampler: normal ~A" fd))
+	(if (not (= (sampler-position fd) 0)) (snd-display "sampler: position: ~A" fd))
 	(free-sampler fd)
 	(let ((str (object->string fd #f)))
 	  (if (not (string=? (substring str (- (length str) 16)) "at eof or freed>"))
-	      (snd-display ";freed sampler: ~A [~A]?" str (substring str (- (length str) 16))))))
+	      (snd-display "freed sampler: ~A [~A]?" str (substring str (- (length str) 16))))))
       (let* ((reg (car (regions)))
 	     (var (catch #t (lambda () (make-region-sampler reg 0 (+ (region-chans reg) 1))) (lambda args args))))
 	(if (not (eq? (car var) 'no-such-channel))
-	    (snd-display ";make-region-sampler bad chan (2): ~A ~A" var (regions)))
+	    (snd-display "make-region-sampler bad chan (2): ~A ~A" var (regions)))
 	(let ((tag (catch #t (lambda () (make-region-sampler reg 0 0 -2)) (lambda args args))))
 	  (if (not (eq? (car tag) 'no-such-direction))
-	      (snd-display ";make-region-sampler bad dir (-2): ~A" tag))))
+	      (snd-display "make-region-sampler bad dir (-2): ~A" tag))))
       
       (revert-sound index)
       (insert-sample 100 .5 index) 
       (let ((var (catch #t (lambda () (insert-sound "oboe.snd" 0 1)) (lambda args args))))
 	(if (not (eq? (car var) 'no-such-channel))
-	    (snd-display ";insert-sound bad chan (1): ~A" var)))
+	    (snd-display "insert-sound bad chan (1): ~A" var)))
       (let ((var (catch #t (lambda () (insert-sample -12 1.0)) (lambda args args))))
 	(if (not (eq? (car var) 'no-such-sample))
-	    (snd-display ";insert-sample bad pos: ~A" var)))
+	    (snd-display "insert-sample bad pos: ~A" var)))
       (set! (show-axes index 0) show-no-axes)
       (update-transform-graph index) 
       (update-time-graph index) 
       (if (or (fneq (sample 100) .5)
 	      (not (= (framples index) 50829)))
-	  (snd-display ";insert-sample: ~A ~A?" (sample 100) (framples index)))
+	  (snd-display "insert-sample: ~A ~A?" (sample 100) (framples index)))
       (let ((v0 (make-vector 3 .25))
 	    (v1 (make-float-vector 3 .75)))
 	(insert-samples 200 3 v0 index) 
@@ -5509,93 +5509,93 @@ EDITS: 5
 	(if (or (fneq (sample 201) .25)
 		(fneq (sample 301) .75)
 		(not (= (framples index) 50835)))
-	    (snd-display ";insert-samples: ~A ~A ~A?" (sample 201) (sample 301) (framples index))))
+	    (snd-display "insert-samples: ~A ~A ~A?" (sample 201) (sample 301) (framples index))))
       (save-sound-as "hiho.snd" index 22050 mus-ldouble mus-next)
       (let ((nindex (view-sound "hiho.snd")))
 	(if (fneq (sample 101 nindex) (sample 101 index))
-	    (snd-display ";save-sound-as: ~A ~A?" (sample 101 nindex) (sample 101 index)))
-	(if (not (read-only nindex)) (snd-display ";read-only view-sound: ~A?" (read-only nindex)))
+	    (snd-display "save-sound-as: ~A ~A?" (sample 101 nindex) (sample 101 index)))
+	(if (not (read-only nindex)) (snd-display "read-only view-sound: ~A?" (read-only nindex)))
 	
 	(set! (speed-control-style nindex) speed-control-as-semitone)
 	(if (not (= (speed-control-style nindex) speed-control-as-semitone))
-	    (snd-display ";speed-control-style set semi: ~A" (speed-control-style nindex)))
+	    (snd-display "speed-control-style set semi: ~A" (speed-control-style nindex)))
 	(set! (speed-control-tones nindex) -8)
 	(if (not (= (speed-control-tones nindex) 12))
-	    (snd-display ";speed-control-tones -8: ~A" (speed-control-tones nindex)))
+	    (snd-display "speed-control-tones -8: ~A" (speed-control-tones nindex)))
 	(set! (speed-control-tones nindex) 18)
 	(if (not (= (speed-control-tones nindex) 18))
-	    (snd-display ";speed-control-tones 18: ~A" (speed-control-tones nindex)))
+	    (snd-display "speed-control-tones 18: ~A" (speed-control-tones nindex)))
 	(graph->ps "aaa.eps")
 	(close-sound nindex))
       (revert-sound index)
       (set! (sample 50 index) .5) 
-      (if (fneq (sample 50) .5) (snd-display ";set-sample: ~A?" (sample 50)))
+      (if (fneq (sample 50) .5) (snd-display "set-sample: ~A?" (sample 50)))
       (let ((v0 (make-vector 3 0.25)))
 	(set! (samples 60 3 index) v0) 
 	(if (or (fneq (sample 60) .25) (fneq (sample 61) .25))
-	    (snd-display ";set-samples: ~A ~A ~A?" (sample 60) (sample 61) (sample 62))))
+	    (snd-display "set-samples: ~A ~A ~A?" (sample 60) (sample 61) (sample 62))))
       (set! (samples 10 3 index) (list 0.1 0.2 0.3))
       (if (not (mus-arrays-equal? (channel->float-vector 10 3 index) (float-vector 0.1 0.2 0.3)))
-	  (snd-display ";set-samples via list: ~A" (channel->float-vector 10 3 index)))
+	  (snd-display "set-samples via list: ~A" (channel->float-vector 10 3 index)))
       (revert-sound index)
       (save-sound-as "temporary.snd" index)
       (set! (samples 100000 20000 index) "temporary.snd")
       (if (not (mus-arrays-equal? (channel->float-vector 110000 10) (channel->float-vector 10000 10)))
-	  (snd-display ";set samples to self: ~A ~A" (channel->float-vector 110000 10) (channel->float-vector 10000 10)))
+	  (snd-display "set samples to self: ~A ~A" (channel->float-vector 110000 10) (channel->float-vector 10000 10)))
       (revert-sound index)
       (delete-sample 100 index) 
       (if (not (file-exists? "temporary.snd"))
-	  (snd-display ";set-samples temp deleted?"))
+	  (snd-display "set-samples temp deleted?"))
       (delete-file "temporary.snd")
-      (if (not (= (framples index) 50827)) (snd-display ";delete-sample: ~A?" (framples index)))
+      (if (not (= (framples index) 50827)) (snd-display "delete-sample: ~A?" (framples index)))
       (delete-samples 0 100 index) 
-      (if (not (= (framples index) 50727)) (snd-display ";delete-samples: ~A?" (framples index)))
+      (if (not (= (framples index) 50727)) (snd-display "delete-samples: ~A?" (framples index)))
       (revert-sound index)
       (let ((maxa (* 2.0 (maxamp index))))
 	(scale-to .5 index) 
 	(let ((newmaxa (maxamp index)))
-	  (if (fneq newmaxa .5) (snd-display ";scale-to: ~A?" newmaxa))
+	  (if (fneq newmaxa .5) (snd-display "scale-to: ~A?" newmaxa))
 	  (undo 1 index) 
 	  (scale-by 2.0 index))
 	(let ((newmaxa (maxamp index)))
-	  (if (fneq newmaxa maxa) (snd-display ";scale-by: ~A?" newmaxa)))
+	  (if (fneq newmaxa maxa) (snd-display "scale-by: ~A?" newmaxa)))
 	(revert-sound index)
 	(scale-by -1 index)
 	(mix "oboe.snd")
-	(if (fneq (maxamp index 0) 0.0) (snd-display ";invert+mix->~A" (maxamp)))
+	(if (fneq (maxamp index 0) 0.0) (snd-display "invert+mix->~A" (maxamp)))
 	(revert-sound index)
 	(select-all index) 
-	(if (not (= (length (regions)) 2)) (snd-display ";regions(2): ~A?" (regions)))
+	(if (not (= (length (regions)) 2)) (snd-display "regions(2): ~A?" (regions)))
 	(scale-selection-to .5)
 	(let ((newmaxa (maxamp index)))
-	  (if (fneq newmaxa .5) (snd-display ";scale-selection-to: ~A?" newmaxa)))
+	  (if (fneq newmaxa .5) (snd-display "scale-selection-to: ~A?" newmaxa)))
 	(revert-sound index)
 	(select-all index) 
 	(scale-selection-by 2.0)
 	(let ((newmaxa (maxamp index)))
-	  (if (fneq newmaxa maxa) (snd-display ";scale-selection-by: ~A?" newmaxa))
+	  (if (fneq newmaxa maxa) (snd-display "scale-selection-by: ~A?" newmaxa))
 	  (revert-sound index)
 	  (with-temporary-selection (lambda () (scale-selection-by 2.0)) 0 (framples) index 0))
 	(let ((newmaxa (maxamp index)))
-	  (if (fneq newmaxa maxa) (snd-display ";with-temporary-selection: ~A?" newmaxa))))
+	  (if (fneq newmaxa maxa) (snd-display "with-temporary-selection: ~A?" newmaxa))))
       (revert-sound index)
       (let ((samp999 (sample 999 index 0))
 	    (samp1001 (sample 1001 index 0)))
 	(with-temporary-selection (lambda () (scale-selection-to 2.0)) 1000 1 index 0)
-	(if (fneq (sample 1000 index 0) 2.0) (snd-display ";with-temporary-selection 1000: ~A" (sample 1000 index 0)))
-	(if (fneq (sample 999 index 0) samp999) (snd-display ";with-temporary-selection 999: ~A from ~A" (sample 999 index 0) samp999))
-	(if (fneq (sample 1001 index 0) samp1001) (snd-display ";with-temporary-selection 1001: ~A from ~A" (sample 1001 index 0) samp1001)))
+	(if (fneq (sample 1000 index 0) 2.0) (snd-display "with-temporary-selection 1000: ~A" (sample 1000 index 0)))
+	(if (fneq (sample 999 index 0) samp999) (snd-display "with-temporary-selection 999: ~A from ~A" (sample 999 index 0) samp999))
+	(if (fneq (sample 1001 index 0) samp1001) (snd-display "with-temporary-selection 1001: ~A from ~A" (sample 1001 index 0) samp1001)))
       (revert-sound index)
       (make-selection 100 199 index 0)
       (let ((old-start (selection-position index 0))
 	    (old-len (selection-framples index 0)))
 	(with-temporary-selection (lambda () (scale-selection-to 2.0)) 1000 1 index 0)
-	(if (not (selection?)) (snd-display ";with-temporary-selection restore?"))
-	(if (not (selection-member? index 0)) (snd-display ";with-temporary-selection not member?"))
-	(if (not (= (selection-position index 0) old-start)) (snd-display ";with-temporary-selection start: ~A" (selection-position index 0)))
-	(if (not (= (selection-framples index 0) old-len)) (snd-display ";with-temporary-selection len: ~A" (selection-framples index 0))))
+	(if (not (selection?)) (snd-display "with-temporary-selection restore?"))
+	(if (not (selection-member? index 0)) (snd-display "with-temporary-selection not member?"))
+	(if (not (= (selection-position index 0) old-start)) (snd-display "with-temporary-selection start: ~A" (selection-position index 0)))
+	(if (not (= (selection-framples index 0) old-len)) (snd-display "with-temporary-selection len: ~A" (selection-framples index 0))))
       (unselect-all)
-      (if (selection-member? index 0) (snd-display ";unselect all ~D 0?" index))
+      (if (selection-member? index 0) (snd-display "unselect all ~D 0?" index))
       (revert-sound index)
       (select-all index) 
       (let ((rread (make-region-sampler (car (regions)) 0))
@@ -5603,20 +5603,20 @@ EDITS: 5
 	(let ((rvect (region->float-vector (car (regions)) 0 100))
 	      (svect (samples 0 100 index)))
 	  (if (fneq (rvect 1) (region-sample (car (regions)) 1))
-	      (snd-display ";region-sample: ~A ~A?" (region-sample (car (regions)) 1) (rvect 1)))
+	      (snd-display "region-sample: ~A ~A?" (region-sample (car (regions)) 1) (rvect 1)))
 	  (do ((i 0 (+ i 1)))
 	      ((= i 100))
 	    (let ((rval (next-sample rread))
 		  (sval (next-sample sread)))
-	      (if (fneq rval sval) (snd-display ";sample-read: ~A ~A?" rval sval))
-	      (if (fneq rval (rvect i)) (snd-display ";region-samples: ~A ~A?" rval (rvect i)))
-	      (if (fneq sval (svect i)) (snd-display ";samples: ~A ~A?" sval (svect i))))))
+	      (if (fneq rval sval) (snd-display "sample-read: ~A ~A?" rval sval))
+	      (if (fneq rval (rvect i)) (snd-display "region-samples: ~A ~A?" rval (rvect i)))
+	      (if (fneq sval (svect i)) (snd-display "samples: ~A ~A?" sval (svect i))))))
 	(free-sampler rread) 
 	(let ((val0 (next-sample sread)))
-	  (if (sampler-at-end? sread) (snd-display ";premature end?"))
+	  (if (sampler-at-end? sread) (snd-display "premature end?"))
 	  (previous-sample sread)
 	  (let ((val1 (previous-sample sread)))
-	    (if (fneq val0 val1) (snd-display ";previous-sample: ~A ~A?" val0 val1))))
+	    (if (fneq val0 val1) (snd-display "previous-sample: ~A ~A?" val0 val1))))
 	(free-sampler sread))
       (revert-sound index)
       (let ((s100 (sample 100))
@@ -5627,9 +5627,9 @@ EDITS: 5
 	(set! *cursor-size* 25)
 	(set! (cursor index) 50) 
 	(if (not (= *cursor-style* cursor-line))
-	    (snd-display ";cursor-style: ~A? " *cursor-style*))
+	    (snd-display "cursor-style: ~A? " *cursor-style*))
 	(if (not (= *cursor-size* 25))
-	    (snd-display ";cursor-size: ~A? " *cursor-size*))
+	    (snd-display "cursor-size: ~A? " *cursor-size*))
 	(set! *cursor-style* cursor-cross)
 	(set! *cursor-size* 15)
 	(set! (cursor index 0) 30) 
@@ -5646,97 +5646,97 @@ EDITS: 5
 		      (draw-line (- x size) (- y size) (+ x size) (+ y size) snd chn cursor-context cr)    
 		      (draw-line (- x size) (+ y size) (+ x size) (- y size) snd chn cursor-context cr)
 		      (free-cairo cr)))))
-	  (if (not (procedure? (cursor-style index 0))) (snd-display ";set cursor-style to proc: ~A" (cursor-style index 0))))
+	  (if (not (procedure? (cursor-style index 0))) (snd-display "set cursor-style to proc: ~A" (cursor-style index 0))))
 	(set! (cursor index) 50)
 	(insert-sound "fyow.snd" (cursor) 0 index 0) 
 	(if (or (fneq (sample 40) s40) (not (fneq (sample 100) s100)) (fneq (sample 100) 0.001831))
-	    (snd-display ";insert-sound: ~A?" (sample 100)))
-	(if (not (= (framples) (+ len addlen))) (snd-display ";insert-sound len: ~A?" (framples)))
+	    (snd-display "insert-sound: ~A?" (sample 100)))
+	(if (not (= (framples) (+ len addlen))) (snd-display "insert-sound len: ~A?" (framples)))
 	(save-sound-as "not-temporary.snd")
 	(insert-samples 0 100 "not-temporary.snd")
 	(set! (cursor index 0 0) (- (framples index 0 0) 2))
 	(revert-sound)
 	(if (not (= (cursor index 0) (- (framples index 0) 2)))
-	    (snd-display ";set edpos cursor: ~A ~A ~A" (cursor) (cursor index 0 0) (- (framples index 0 0) 2)))
+	    (snd-display "set edpos cursor: ~A ~A ~A" (cursor) (cursor index 0 0) (- (framples index 0 0) 2)))
 	(if (file-exists? "not-temporary.snd")
 	    (delete-file "not-temporary.snd")
-	    (snd-display ";insert-samples deleted its file?"))
+	    (snd-display "insert-samples deleted its file?"))
 	(let ((id (make-region 0 99)))
 	  (insert-region id 60 index) 
-	  (if (not (= (framples) (+ len 100))) (snd-display ";insert-region len: ~A?" (framples)))
-	  (if (fneq (sample 100) s40) (snd-display ";insert-region: ~A ~A?" (sample 100) s40))
+	  (if (not (= (framples) (+ len 100))) (snd-display "insert-region len: ~A?" (framples)))
+	  (if (fneq (sample 100) s40) (snd-display "insert-region: ~A ~A?" (sample 100) s40))
 	  (save-region id "fmv.snd")
 	  (if (not (= (mus-sound-header-type "fmv.snd") mus-next))
-	      (snd-display ";save-region header: ~A?" (mus-header-type-name (mus-sound-header-type "fmv.snd"))))
+	      (snd-display "save-region header: ~A?" (mus-header-type-name (mus-sound-header-type "fmv.snd"))))
 	  (if (not (= (mus-sound-sample-type "fmv.snd") mus-out-format))
-	      (snd-display ";save-region format: ~A?" (mus-sample-type-name (mus-sound-sample-type "fmv.snd"))))
+	      (snd-display "save-region format: ~A?" (mus-sample-type-name (mus-sound-sample-type "fmv.snd"))))
 	  (if (not (= (mus-sound-srate "fmv.snd") (region-srate id)))
-	      (snd-display ";save-region srate: ~A (~A)" (mus-sound-srate "fmv.snd") (region-srate id)))
+	      (snd-display "save-region srate: ~A (~A)" (mus-sound-srate "fmv.snd") (region-srate id)))
 	  (if (not (= (mus-sound-chans "fmv.snd") (region-chans id)))
-	      (snd-display ";save-region chans: ~A (~A)" (mus-sound-chans "fmv.snd") (region-chans id)))
+	      (snd-display "save-region chans: ~A (~A)" (mus-sound-chans "fmv.snd") (region-chans id)))
 	  (if (not (= (mus-sound-framples "fmv.snd") (region-framples id)))
-	      (snd-display ";save-region length: ~A (~A)" (mus-sound-framples "fmv.snd") (region-framples id)))
+	      (snd-display "save-region length: ~A (~A)" (mus-sound-framples "fmv.snd") (region-framples id)))
 	  (if (not (= (region-position id 0) 0))
-	      (snd-display ";save-region position: ~A" (region-position id 0)))
+	      (snd-display "save-region position: ~A" (region-position id 0)))
 	  (delete-file "fmv.snd")
 	  (save-region id "fmv.snd" mus-lshort mus-riff "this is a comment")
 	  (if (not (= (mus-sound-header-type "fmv.snd") mus-riff))
-	      (snd-display ";save-region riff header: ~A?" (mus-header-type-name (mus-sound-header-type "fmv.snd"))))
+	      (snd-display "save-region riff header: ~A?" (mus-header-type-name (mus-sound-header-type "fmv.snd"))))
 	  (if (not (= (mus-sound-sample-type "fmv.snd") mus-lshort))
-	      (snd-display ";save-region lshort format: ~A?" (mus-sample-type-name (mus-sound-sample-type "fmv.snd"))))
+	      (snd-display "save-region lshort format: ~A?" (mus-sample-type-name (mus-sound-sample-type "fmv.snd"))))
 	  (if (not (= (mus-sound-framples "fmv.snd") (region-framples id)))
-	      (snd-display ";save-region length: ~A (~A)" (mus-sound-framples "fmv.snd") (region-framples id)))
+	      (snd-display "save-region length: ~A (~A)" (mus-sound-framples "fmv.snd") (region-framples id)))
 	  (if (not (string=? (mus-sound-comment "fmv.snd") "this is a comment"))
-	      (snd-display ";save-region comment: ~A" (mus-sound-comment "fmv.snd")))
+	      (snd-display "save-region comment: ~A" (mus-sound-comment "fmv.snd")))
 	  (delete-file "fmv.snd")
 	  (save-region id :file "fmv.snd" :header-type mus-riff :sample-type mus-lshort :comment "this is a comment")
 	  (if (not (= (mus-sound-header-type "fmv.snd") mus-riff))
-	      (snd-display ";save-region opt riff header: ~A?" (mus-header-type-name (mus-sound-header-type "fmv.snd"))))
+	      (snd-display "save-region opt riff header: ~A?" (mus-header-type-name (mus-sound-header-type "fmv.snd"))))
 	  (if (not (= (mus-sound-sample-type "fmv.snd") mus-lshort))
-	      (snd-display ";save-region opt lshort format: ~A?" (mus-sample-type-name (mus-sound-sample-type "fmv.snd"))))
+	      (snd-display "save-region opt lshort format: ~A?" (mus-sample-type-name (mus-sound-sample-type "fmv.snd"))))
 	  (if (not (= (mus-sound-framples "fmv.snd") (region-framples id)))
-	      (snd-display ";save-region opt length: ~A (~A)" (mus-sound-framples "fmv.snd") (region-framples id)))
+	      (snd-display "save-region opt length: ~A (~A)" (mus-sound-framples "fmv.snd") (region-framples id)))
 	  (if (not (string=? (mus-sound-comment "fmv.snd") "this is a comment"))
-	      (snd-display ";save-region opt comment: ~A" (mus-sound-comment "fmv.snd")))
+	      (snd-display "save-region opt comment: ~A" (mus-sound-comment "fmv.snd")))
 	  (delete-file "fmv.snd")
 	  (save-region id :comment "this is a comment" :file "fmv.snd" :sample-type mus-lshort :header-type mus-riff)
 	  (if (not (= (mus-sound-header-type "fmv.snd") mus-riff))
-	      (snd-display ";save-region opt1 riff header: ~A?" (mus-header-type-name (mus-sound-header-type "fmv.snd"))))
+	      (snd-display "save-region opt1 riff header: ~A?" (mus-header-type-name (mus-sound-header-type "fmv.snd"))))
 	  (if (not (= (mus-sound-sample-type "fmv.snd") mus-lshort))
-	      (snd-display ";save-region opt1 lshort format: ~A?" (mus-sample-type-name (mus-sound-sample-type "fmv.snd"))))
+	      (snd-display "save-region opt1 lshort format: ~A?" (mus-sample-type-name (mus-sound-sample-type "fmv.snd"))))
 	  (if (not (= (mus-sound-framples "fmv.snd") (region-framples id)))
-	      (snd-display ";save-region opt1 length: ~A (~A)" (mus-sound-framples "fmv.snd") (region-framples id)))
+	      (snd-display "save-region opt1 length: ~A (~A)" (mus-sound-framples "fmv.snd") (region-framples id)))
 	  (if (not (string=? (mus-sound-comment "fmv.snd") "this is a comment"))
-	      (snd-display ";save-region opt1 comment: ~A" (mus-sound-comment "fmv.snd")))
+	      (snd-display "save-region opt1 comment: ~A" (mus-sound-comment "fmv.snd")))
 	  (delete-file "fmv.snd")
 	  (save-region id "fmv.snd" :sample-type mus-bshort)
 	  (if (not (= (mus-sound-header-type "fmv.snd") mus-next))
-	      (snd-display ";save-region opt2 next header: ~A?" (mus-header-type-name (mus-sound-header-type "fmv.snd"))))
+	      (snd-display "save-region opt2 next header: ~A?" (mus-header-type-name (mus-sound-header-type "fmv.snd"))))
 	  (if (not (= (mus-sound-sample-type "fmv.snd") mus-bshort))
-	      (snd-display ";save-region opt2 bshort format: ~A?" (mus-sample-type-name (mus-sound-sample-type "fmv.snd"))))
+	      (snd-display "save-region opt2 bshort format: ~A?" (mus-sample-type-name (mus-sound-sample-type "fmv.snd"))))
 	  (delete-file "fmv.snd")))
       (close-sound index))
     (let ((var (catch #t (lambda () (new-sound "hi.snd" :channels 0)) (lambda args args))))
       (if (not (and (pair? var)
 		    (eq? (car var) 'out-of-range)))
-	  (snd-display ";new-sound bad chan: ~A" var)))
+	  (snd-display "new-sound bad chan: ~A" var)))
     (let ((index (new-sound "fmv.snd" 2 22050 mus-ldouble mus-next "unequal lens")))
       (set! (sync index) 0) ; might be set by choice of graphs
       (insert-silence 0 1000 index 1)
       (if (not (and (= (framples index 0) 1)
 		    (= (framples index 1) 1001)))
-	  (snd-display ";silence 1: ~A ~A" (framples index 0) (framples index 1)))
+	  (snd-display "silence 1: ~A ~A" (framples index 0) (framples index 1)))
       (save-sound index)
       (if (not (= (framples index 0) 1001 (framples index 1)))
-	  (snd-display ";saved silence 1: ~A ~A" (framples index 0) (framples index 1)))
+	  (snd-display "saved silence 1: ~A ~A" (framples index 0) (framples index 1)))
       (if (not (= (mus-sound-framples "fmv.snd") 1001))
-	  (snd-display ";saved framers silence 1: ~A" (mus-sound-framples "fmv.snd")))
+	  (snd-display "saved framers silence 1: ~A" (mus-sound-framples "fmv.snd")))
       (let ((v0 (float-vector-peak (channel->float-vector 0 1000 index 0)))
 	    (v1 (float-vector-peak (channel->float-vector 0 1000 index 1))))
 	(if (fneq v0 0.0)
-	    (snd-display ";auto-pad 0: ~A" v0))
+	    (snd-display "auto-pad 0: ~A" v0))
 	(if (fneq v1 0.0)
-	    (snd-display ";silence 0: ~A" v1)))
+	    (snd-display "silence 0: ~A" v1)))
       (close-sound index))
     (delete-file "fmv.snd")
     
@@ -5744,18 +5744,18 @@ EDITS: 5
       (pad-channel 0 1000 index 1)
       (if (not (and (= (framples index 0) 1)
 		    (= (framples index 1) 1001)))
-	  (snd-display ";pad-channel 1: ~A ~A" (framples index 0) (framples index 1)))
+	  (snd-display "pad-channel 1: ~A ~A" (framples index 0) (framples index 1)))
       (let ((v0 (float-vector-peak (channel->float-vector 0 1000 index 0)))
 	    (v1 (float-vector-peak (channel->float-vector 0 1000 index 1))))
 	(if (fneq v0 0.0)
-	    (snd-display ";pad 0: ~A" v0))
+	    (snd-display "pad 0: ~A" v0))
 	(if (fneq v1 0.0)
-	    (snd-display ";pad 1: ~A" v1)))
+	    (snd-display "pad 1: ~A" v1)))
       (map-channel (lambda (n) 1.0) 0 2 index 0)
       (map-channel (lambda (n) 1.0) 0 1002 index 1)
       (pad-channel 0 1000 index 0 1)
       (if (not (= (framples index 1) 1002))
-	  (snd-display ";pad-channel ed 1: ~A ~A" (framples index 0) (framples index 1)))
+	  (snd-display "pad-channel ed 1: ~A ~A" (framples index 0) (framples index 1)))
       (close-sound index)
       (delete-file "fmv.snd")
       
@@ -5776,7 +5776,7 @@ EDITS: 5
       
       (let ((v0 (channel->float-vector 0 128 index 0)))
 	(if (or (fneq (sample 127) .5) (fneq (sample 120) .4962) (fneq (sample 32) 0.07431) (fneq (sample 64) 0.25308))
-	    (snd-display ";smooth-selection: ~A?" v0))
+	    (snd-display "smooth-selection: ~A?" v0))
 	(revert-sound index)
 	(fill! v0 0.0)
 	(set! (v0 10) .5)
@@ -5787,9 +5787,9 @@ EDITS: 5
       
       (let ((v0 (channel->float-vector 0 128 index 0)))
 	(if (or (fneq (sample 20) .5) (fneq (sample 30) 0.0) (fneq (sample 17) -.1057) )
-	    (snd-display ";src-selection: ~A?" v0))
+	    (snd-display "src-selection: ~A?" v0))
 	(unselect-all)
-	(if (selection-member?) (snd-display ";unselect-all but still a selection?"))
+	(if (selection-member?) (snd-display "unselect-all but still a selection?"))
 	(unselect-all)
 	(revert-sound index)
 	(fill! v0 0.0)
@@ -5800,7 +5800,7 @@ EDITS: 5
       
       (let ((v0 (channel->float-vector 0 128 index 0)))
 	(if (or (fneq (sample 29) .1945) (fneq (sample 39) -.0137) (fneq (sample 24) -0.01986))
-	    (snd-display ";filter-selection: ~A?" v0))
+	    (snd-display "filter-selection: ~A?" v0))
 	(revert-sound index)
 	(fill! v0 1.0)
 	(float-vector->channel v0 0 128 index 0) 
@@ -5809,7 +5809,7 @@ EDITS: 5
       
       (let ((v0 (channel->float-vector 0 128 index 0)))
 	(if (or (fneq (sample 29) .5) (fneq (sample 39) .5) (fneq (sample 24) 0.5))
-	    (snd-display ";filter-selection one-zero: ~A?" v0))
+	    (snd-display "filter-selection one-zero: ~A?" v0))
 	(revert-sound index)
 	(fill! v0 1.0)
 	(float-vector->channel v0 0 128 index 0) 
@@ -5819,22 +5819,22 @@ EDITS: 5
       
       (let ((v0 (channel->float-vector 0 128 index 0)))
 	(if (or (fneq (sample 64) 1.0) (fneq (sample 20) .3125) (fneq (sample 119) 0.127))
-	    (snd-display ";env-selection [len: ~A]: ~A ~A ~A ~A?" (selection-framples) (sample 64) (sample 20) (sample 119) v0))
+	    (snd-display "env-selection [len: ~A]: ~A ~A ~A ~A?" (selection-framples) (sample 64) (sample 20) (sample 119) v0))
 	(save-selection "fmv5.snd" 22050 mus-bint mus-next "") ;1.0->-1.0 if short
 	(revert-sound index)
 	(let ((tag (catch #t (lambda () (file->array "/baddy/hiho" 0 0 128 v0)) (lambda args (car args)))))
-	  (if (not (eq? tag 'no-such-file)) (snd-display ";file->array w/o file: ~A" tag)))
+	  (if (not (eq? tag 'no-such-file)) (snd-display "file->array w/o file: ~A" tag)))
 	(let ((tag (catch #t (lambda () (file->array "fmv5.snd" 123 0 128 v0)) (lambda args (car args)))))
-	  (if (not (eq? tag 'no-such-channel)) (snd-display ";file->array w/o channel: ~A" tag)))
+	  (if (not (eq? tag 'no-such-channel)) (snd-display "file->array w/o channel: ~A" tag)))
 	(file->array "fmv5.snd" 0 0 128 v0) 
 	(if (or (fneq (v0 64) 1.0) (fneq (v0 20) .3125) (fneq (v0 119) 0.127))
-	    (snd-display ";save-selection: ~A ~A ~A ~A?" (v0 64) (v0 20) (v0 119) v0))
+	    (snd-display "save-selection: ~A ~A ~A ~A?" (v0 64) (v0 20) (v0 119) v0))
 	(if (not (= (mus-sound-header-type "fmv5.snd") mus-next))
-	    (snd-display ";save-selection type: ~A?" (mus-header-type-name (mus-sound-header-type "fmv5.snd"))))
+	    (snd-display "save-selection type: ~A?" (mus-header-type-name (mus-sound-header-type "fmv5.snd"))))
 	(if (not (= (mus-sound-sample-type "fmv5.snd") mus-bint))
-	    (snd-display ";save-selection format: ~A?" (mus-sample-type-name (mus-sound-sample-type "fmv5.snd"))))
+	    (snd-display "save-selection format: ~A?" (mus-sample-type-name (mus-sound-sample-type "fmv5.snd"))))
 	(if (not (= (mus-sound-srate "fmv5.snd") 22050))
-	    (snd-display ";save-selection srate: ~A?" (mus-sound-srate "fmv5.snd")))
+	    (snd-display "save-selection srate: ~A?" (mus-sound-srate "fmv5.snd")))
 	(fill! v0 0.0)
 	(set! (v0 100) .5)
 	(set! (v0 2) -.5)
@@ -5845,37 +5845,37 @@ EDITS: 5
       
       (let ((v0 (channel->float-vector 0 128 index 0)))
 	(if (or (fneq (sample 27) 0.5) (fneq (sample 125) -.5))
-	    (snd-display ";reverse-selection: ~A?" v0))
+	    (snd-display "reverse-selection: ~A?" v0))
 	(file->array "fmv4.snd" 0 0 128 v0) 
 	(if (or (fneq (sample 27) 0.5) (fneq (sample 125) -.5))
-	    (snd-display ";save reverse-selection: ~A?" v0))
+	    (snd-display "save reverse-selection: ~A?" v0))
 	(if (not (= (mus-sound-header-type "fmv4.snd") mus-riff))
-	    (snd-display ";save-selection type 1: ~A?" (mus-header-type-name (mus-sound-header-type "fmv4.snd"))))
+	    (snd-display "save-selection type 1: ~A?" (mus-header-type-name (mus-sound-header-type "fmv4.snd"))))
 	(if (not (= (mus-sound-sample-type "fmv4.snd") mus-lfloat))
-	    (snd-display ";save-selection format 1: ~A?" (mus-sample-type-name (mus-sound-sample-type "fmv4.snd"))))
+	    (snd-display "save-selection format 1: ~A?" (mus-sample-type-name (mus-sound-sample-type "fmv4.snd"))))
 	(if (not (= (mus-sound-srate "fmv4.snd") 44100))
-	    (snd-display ";save-selection srate 1: ~A?" (mus-sound-srate "fmv4.snd")))
+	    (snd-display "save-selection srate 1: ~A?" (mus-sound-srate "fmv4.snd")))
 	(if (not (string=? (mus-sound-comment "fmv4.snd") "this is a comment"))
-	    (snd-display ";save-selection comment: ~A?" (mus-sound-comment "fmv4.snd")))
+	    (snd-display "save-selection comment: ~A?" (mus-sound-comment "fmv4.snd")))
 	(delete-file "fmv4.snd")
 	(save-selection :file "fmv4.snd" :header-type mus-riff :sample-type mus-lfloat :srate 44100 :comment "this is a comment")
 	(if (not (= (mus-sound-header-type "fmv4.snd") mus-riff))
-	    (snd-display ";save-selection opt type 1: ~A?" (mus-header-type-name (mus-sound-header-type "fmv4.snd"))))
+	    (snd-display "save-selection opt type 1: ~A?" (mus-header-type-name (mus-sound-header-type "fmv4.snd"))))
 	(if (not (= (mus-sound-sample-type "fmv4.snd") mus-lfloat))
-	    (snd-display ";save-selection opt format 1: ~A?" (mus-sample-type-name (mus-sound-sample-type "fmv4.snd"))))
+	    (snd-display "save-selection opt format 1: ~A?" (mus-sample-type-name (mus-sound-sample-type "fmv4.snd"))))
 	(if (not (= (mus-sound-srate "fmv4.snd") 44100))
-	    (snd-display ";save-selection opt srate 1: ~A?" (mus-sound-srate "fmv4.snd")))
+	    (snd-display "save-selection opt srate 1: ~A?" (mus-sound-srate "fmv4.snd")))
 	(if (not (string=? (mus-sound-comment "fmv4.snd") "this is a comment"))
-	    (snd-display ";save-selection opt comment: ~A?" (mus-sound-comment "fmv4.snd")))
+	    (snd-display "save-selection opt comment: ~A?" (mus-sound-comment "fmv4.snd")))
 	(delete-file "fmv4.snd")
 	(save-selection :file "fmv4.snd" :sample-type mus-bfloat :channel 0)
 	(if (not (or (= (mus-sound-header-type "fmv4.snd") mus-next)
 		     (= (mus-sound-header-type "fmv4.snd") mus-ircam)))
-	    (snd-display ";save-selection opt1 type 1: ~A?" (mus-header-type-name (mus-sound-header-type "fmv4.snd"))))
+	    (snd-display "save-selection opt1 type 1: ~A?" (mus-header-type-name (mus-sound-header-type "fmv4.snd"))))
 	(if (not (= (mus-sound-sample-type "fmv4.snd") mus-bfloat))
-	    (snd-display ";save-selection opt1 format 1: ~A?" (mus-sample-type-name (mus-sound-sample-type "fmv4.snd"))))
+	    (snd-display "save-selection opt1 format 1: ~A?" (mus-sample-type-name (mus-sound-sample-type "fmv4.snd"))))
 	(if (not (= (mus-sound-chans "fmv4.snd") 1))
-	    (snd-display ";save-selection opt1 chans: ~A?" (mus-sound-chans "fmv4.snd")))
+	    (snd-display "save-selection opt1 chans: ~A?" (mus-sound-chans "fmv4.snd")))
 	(delete-file "fmv4.snd")
 	(revert-sound index)
 	(fill! v0 0.0)
@@ -5889,7 +5889,7 @@ EDITS: 5
 	(convolve-selection-with "fmv5.snd" .5))
       
       (let ((v0 (channel->float-vector 0 128 index 0)))
-	(if (fneq (sample 66) -.5) (snd-display ";convolve-selection-with: ~A ~A ~A?" (v0 66) (sample 66) v0))
+	(if (fneq (sample 66) -.5) (snd-display "convolve-selection-with: ~A ~A ~A?" (v0 66) (sample 66) v0))
 	(close-sound index))
       
       (let ((obind (open-sound "oboe.snd")))
@@ -5897,65 +5897,65 @@ EDITS: 5
 	  (let ((vol (maxamp obind))
 		(dur (framples)))
 	    (set! (amp-control obind) 2.0)
-	    (if (fffneq (amp-control obind) 2.0) (snd-display ";set amp-control ~A" (amp-control obind)))
+	    (if (fffneq (amp-control obind) 2.0) (snd-display "set amp-control ~A" (amp-control obind)))
 	    (reset-controls obind)
-	    (if (ffneq (amp-control obind) 1.0) (snd-display ";reset amp-control ~A" (amp-control obind)))
+	    (if (ffneq (amp-control obind) 1.0) (snd-display "reset amp-control ~A" (amp-control obind)))
 	    (set! (amp-control-bounds obind) (list 0.0 4.0))
-	    (if (not (equal? (amp-control-bounds obind) '(0.0 4.0))) (snd-display ";amp-control-bounds: ~A" (amp-control-bounds)))
+	    (if (not (equal? (amp-control-bounds obind) '(0.0 4.0))) (snd-display "amp-control-bounds: ~A" (amp-control-bounds)))
 	    (set! (amp-control obind) 2.0)
-	    (if (eq? (without-errors (apply-controls obind)) 'no-such-sound) (snd-display ";apply-controls can't find oboe.snd?"))
+	    (if (eq? (without-errors (apply-controls obind)) 'no-such-sound) (snd-display "apply-controls can't find oboe.snd?"))
 	    (let ((newamp (maxamp obind)))
-	      (if (> (abs (- (* 2.0 vol) newamp)) .05) (snd-display ";apply amp: ~A -> ~A?" vol newamp)))
+	      (if (> (abs (- (* 2.0 vol) newamp)) .05) (snd-display "apply amp: ~A -> ~A?" vol newamp)))
 	    (set! (amp-control-bounds obind) (list 0.0 8.0))
 	    (set! (speed-control-bounds obind) (list 1.0 5.0))
-	    (if (not (equal? (speed-control-bounds obind) '(1.0 5.0))) (snd-display ";speed-control-bounds: ~A" (speed-control-bounds)))
+	    (if (not (equal? (speed-control-bounds obind) '(1.0 5.0))) (snd-display "speed-control-bounds: ~A" (speed-control-bounds)))
 	    (set! (speed-control obind) 0.5)
 	    (set! (speed-control-bounds obind) (list .05 20.0))
 	    (add-mark 1234)
 	    (apply-controls obind)
 	    (let ((newdur (framples obind)))
 	      (set! (speed-control obind) 1.0)
-	      (if (>= (- newdur (* 2.0 dur)) 256) (snd-display ";apply speed: ~A -> ~A?" dur newdur))
+	      (if (>= (- newdur (* 2.0 dur)) 256) (snd-display "apply speed: ~A -> ~A?" dur newdur))
 	      ;; within 256 which is apply's buffer size (it always flushes full buffers) 
 	      (set! (contrast-control? obind) #t)
 	      (set! (contrast-control-bounds obind) (list 0.5 2.5))
-	      (if (not (equal? (contrast-control-bounds obind) '(0.5 2.5))) (snd-display ";contrast-control-bounds: ~A" (contrast-control-bounds)))
+	      (if (not (equal? (contrast-control-bounds obind) '(0.5 2.5))) (snd-display "contrast-control-bounds: ~A" (contrast-control-bounds)))
 	      (set! (contrast-control obind) 1.0)
 	      (apply-controls obind)
 	      (set! (contrast-control-bounds obind) (list 0.0 10.0))
-	      (if (not (equal? (contrast-control-bounds obind) '(0.0 10.0))) (snd-display ";contrast-control-bounds (2): ~A" (contrast-control-bounds)))
+	      (if (not (equal? (contrast-control-bounds obind) '(0.0 10.0))) (snd-display "contrast-control-bounds (2): ~A" (contrast-control-bounds)))
 	      (let ((secamp (maxamp obind))
 		    (secdur (framples obind)))
-		(if (fneq secamp .989) (snd-display ";apply contrast: ~A?" secamp))
-		(if (not (= secdur newdur)) (snd-display ";apply contrast length: ~A -> ~A?" newdur secdur)))))
+		(if (fneq secamp .989) (snd-display "apply contrast: ~A?" secamp))
+		(if (not (= secdur newdur)) (snd-display "apply contrast length: ~A -> ~A?" newdur secdur)))))
 	  (undo 3 obind)
 	  (set! (reverb-control? obind) #t)
 	  (set! (reverb-control-scale-bounds obind) (list 0.0 1.0))
 	  (if (not (equal? (reverb-control-scale-bounds obind) '(0.0 1.0))) 
-	      (snd-display ";reverb-control-scale-bounds: ~A" (reverb-control-scale-bounds)))
+	      (snd-display "reverb-control-scale-bounds: ~A" (reverb-control-scale-bounds)))
 	  (set! (reverb-control-length-bounds obind) (list 0.0 2.0))
 	  (if (not (equal? (reverb-control-length-bounds obind) '(0.0 2.0))) 
-	      (snd-display ";reverb-control-length-bounds: ~A" (reverb-control-length-bounds)))
+	      (snd-display "reverb-control-length-bounds: ~A" (reverb-control-length-bounds)))
 	  (set! (reverb-control-scale obind) .2)
 	  (let ((nowamp (maxamp obind)))
 	    (apply-controls obind)
 	    (let ((revamp (maxamp obind))
 		  (revdur (framples obind)))
 	      (if (ffneq revamp .214) 
-		  (snd-display ";apply reverb scale: ~A at ~A, scale: ~A previous max: ~A?" 
+		  (snd-display "apply reverb scale: ~A at ~A, scale: ~A previous max: ~A?" 
 			       revamp (maxamp-position obind) (reverb-control-scale obind) nowamp))
 	      (if (>= (- revdur 50828 (round (* *reverb-control-decay* 22050))) 256) 
-		  (snd-display ";apply reverb length: ~A?" revdur))))
+		  (snd-display "apply reverb length: ~A?" revdur))))
 	  (undo 1 obind)
 	  (set! (expand-control? obind) #t)
 	  (set! (expand-control-bounds obind) (list 1.0 3.0))
-	  (if (not (equal? (expand-control-bounds obind) '(1.0 3.0))) (snd-display ";expand-control-bounds: ~A" (expand-control-bounds)))
+	  (if (not (equal? (expand-control-bounds obind) '(1.0 3.0))) (snd-display "expand-control-bounds: ~A" (expand-control-bounds)))
 	  (set! (expand-control obind) 1.5)
 	  (apply-controls obind)
 	  (let ((expamp (maxamp obind))
 		(expdur (framples obind)))
-	    (if (> (abs (- expamp .152)) .05) (snd-display ";apply expand-control scale: ~A?" expamp))
-	    (if (<= expdur (* 1.25 50828)) (snd-display ";apply expand-control length: ~A?" expdur))
+	    (if (> (abs (- expamp .152)) .05) (snd-display "apply expand-control scale: ~A?" expamp))
+	    (if (<= expdur (* 1.25 50828)) (snd-display "apply expand-control length: ~A?" expdur))
 	    (set! (expand-control-bounds obind) (list 0.001 20.0)))
 	  (undo 1 obind)
 	  (set! (filter-control? obind) #t)
@@ -5964,8 +5964,8 @@ EDITS: 5
 	  (apply-controls obind)
 	  (let ((fltamp (maxamp obind))
 		(fltdur (framples obind)))
-	    (if (> (abs (- fltamp .02)) .005) (snd-display ";apply filter scale: ~A?" fltamp))
-	    (if (> fltdur 51124) (snd-display ";apply filter length: ~A?" fltdur))
+	    (if (> (abs (- fltamp .02)) .005) (snd-display "apply filter scale: ~A?" fltamp))
+	    (if (> fltdur 51124) (snd-display "apply filter length: ~A?" fltdur))
 	    (undo 1 obind)))
 	
 	(revert-sound obind)
@@ -5999,7 +5999,7 @@ EDITS: 5
 			   (2003 0 2003 50827 1.0 0.0 0.0 0) 
 			   (50828 -2 0 0 0.0 0.0 0.0 0))))
 	  (if (not (= (length tree) (length true-tree)))
-	      (snd-display ";edit trees are not same length: ~A ~A?" (length tree) (length true-tree))
+	      (snd-display "edit trees are not same length: ~A ~A?" (length tree) (length true-tree))
 	      (do ((len (length tree))
 		   (i 0 (+ i 1)))
 		  ((= i len))
@@ -6010,7 +6010,7 @@ EDITS: 5
 				(= (caddr branch) (caddr true-branch))
 				(= (cadddr branch) (cadddr true-branch))
 				(<= (magnitude (- (branch 4) (true-branch 4))) .001)))
-		      (snd-display ";edit trees disagree at ~D: ~A ~A" i branch true-branch))))))
+		      (snd-display "edit trees disagree at ~D: ~A ~A" i branch true-branch))))))
 	(insert-silence 1001 8)
 	(insert-silence 900 50)
 	(insert-silence 2005 1)
@@ -6034,7 +6034,7 @@ EDITS: 5
 			   (2064 0 2003 50827 1.0 0.0 0.0 0) 
 			   (50889 -2 0 0 0.0 0.0 0.0 0))))
 	  (if (not (= (length tree) (length true-tree)))
-	      (snd-display ";silenced edit trees are not same length: ~A ~A?" (length tree) (length true-tree))
+	      (snd-display "silenced edit trees are not same length: ~A ~A?" (length tree) (length true-tree))
 	      (do ((len (length tree))
 		   (i 0 (+ i 1)))
 		  ((= i len))
@@ -6045,29 +6045,29 @@ EDITS: 5
 				(= (caddr branch) (caddr true-branch))
 				(= (cadddr branch) (cadddr true-branch))
 				(<= (magnitude (- (branch 4) (true-branch 4))) .001)))
-		      (snd-display ";silenced edit trees disagree at ~D: ~A ~A" i branch true-branch))))))
+		      (snd-display "silenced edit trees disagree at ~D: ~A ~A" i branch true-branch))))))
 	(if (or (fneq (sample 998) -.03)
 		(fneq (sample 999) 0.0)
 		(fneq (sample 1000) 0.0)
 		(fneq (sample 1001) -.03))
-	    (snd-display ";insert-silence [999 for 2]: ~A ~A ~A ~A?" (sample 998) (sample 999) (sample 1000) (sample 1001) ))
+	    (snd-display "insert-silence [999 for 2]: ~A ~A ~A ~A?" (sample 998) (sample 999) (sample 1000) (sample 1001) ))
 	(if (or (fneq (sample 2006) -.033)
 		(fneq (sample 2007) 0.0)
 		(fneq (sample 2008) -.033))
-	    (snd-display ";insert-silence [2007 for 1]: ~A ~A ~A?" (sample 2006) (sample 2007) (sample 2008)))
+	    (snd-display "insert-silence [2007 for 1]: ~A ~A ~A?" (sample 2006) (sample 2007) (sample 2008)))
 	(revert-sound obind)
 	(add-mark 1200 obind 0)
 	(let ((mark-num (length (marks obind 0))))
 	  (scale-by 2.0 obind 0)
 	  (let ((mark-now (length (marks obind 0))))
 	    (if (not (= mark-num mark-now))
-		(snd-display ";mark lost after scaling?"))
+		(snd-display "mark lost after scaling?"))
 	    (set! (selection-position) 0)
 	    (set! (selection-framples) 100)
 	    (scale-selection-to .5)
 	    (set! mark-now (length (marks obind 0)))
 	    (if (not (= mark-num mark-now))
-		(snd-display ";mark lost after selection scaling?"))))
+		(snd-display "mark lost after selection scaling?"))))
 	(let ((m1 (add-mark 1000)))
 	  (set! (cursor obind 0) 100)
 	  (key (char->integer #\u) 4 obind)
@@ -6076,47 +6076,47 @@ EDITS: 5
 	  (key (char->integer #\0) 0 obind)
 	  (key (char->integer #\o) 4 obind)
 	  (if (and with-gui (not (= (mark-sample m1) 1100)))
-	      (snd-display ";mark after zeros: ~D (1100)? " (mark-sample m1))))
+	      (snd-display "mark after zeros: ~D (1100)? " (mark-sample m1))))
 	(set! (cursor obind) 0)
 	(key (char->integer #\j) 4 obind)
-	(if (and with-gui (not (= (cursor obind) 1100))) (snd-display ";c-j to ~A" (cursor obind)))
+	(if (and with-gui (not (= (cursor obind) 1100))) (snd-display "c-j to ~A" (cursor obind)))
 	(add-mark 100)
 	(set! (cursor obind) 0)
 	(key (char->integer #\u) 4 obind)
 	(key (char->integer #\2) 0 obind)
 	(key (char->integer #\j) 4 obind)
-	(if (and with-gui (not (= (cursor obind) 1100))) (snd-display ";c-u 2 c-j ~A" (cursor obind)))
+	(if (and with-gui (not (= (cursor obind) 1100))) (snd-display "c-u 2 c-j ~A" (cursor obind)))
 	(key (char->integer #\-) 4 obind)
 	(key (char->integer #\j) 4 obind)
-	(if (and with-gui (not (= (cursor obind) 100))) (snd-display ";c-- c-j ~A" (cursor obind)))
+	(if (and with-gui (not (= (cursor obind) 100))) (snd-display "c-- c-j ~A" (cursor obind)))
 	(revert-sound obind)
 	(let ((frs (framples obind)))
 	  (make-region 0 999 obind 0)
-	  (if (not (selection?)) (snd-display ";make-region but no selection? ~A" (selection?)))
+	  (if (not (selection?)) (snd-display "make-region but no selection? ~A" (selection?)))
 	  (delete-selection)
 	  (if (not (= (framples obind) (- frs 1000)))
-	      (snd-display ";delete-selection: ~A?" (framples obind)))
+	      (snd-display "delete-selection: ~A?" (framples obind)))
 	  (let ((val (sample 0 obind 0)))
 	    (undo)
 	    (if (fneq (sample 1000) val)
-		(snd-display ";delete-selection val: ~A ~A" val (sample 1000)))
+		(snd-display "delete-selection val: ~A ~A" val (sample 1000)))
 	    (insert-selection)
 	    (let ((var (catch #t (lambda () (insert-selection 0 obind 123)) (lambda args args))))
 	      (if (not (eq? (car var) 'no-such-channel))
-		  (snd-display ";insert-selection bad chan: ~A" var)))
+		  (snd-display "insert-selection bad chan: ~A" var)))
 	    (let ((var (catch #t (lambda () (mix-selection 0 obind 123)) (lambda args args))))
 	      (if (not (eq? (car var) 'no-such-channel))
-		  (snd-display ";mix-selection bad chan: ~A" var)))
+		  (snd-display "mix-selection bad chan: ~A" var)))
 	    (if (not (= (framples obind) (+ frs 1000)))
-		(snd-display ";insert-selection: ~A?" (framples obind)))
+		(snd-display "insert-selection: ~A?" (framples obind)))
 	    (if (fneq (sample 2000) val)
-		(snd-display ";insert-selection val: ~A ~A" val (sample 2000))))
+		(snd-display "insert-selection val: ~A ~A" val (sample 2000))))
 	  (let ((val (* 2 (sample 900))))
 	    (mix-selection)
 	    (if (fneq (sample 900) val)
-		(snd-display ";mix-selection val: ~A ~A" val (sample 900)))
+		(snd-display "mix-selection val: ~A ~A" val (sample 900)))
 	    (if (not (= (framples obind) (+ frs 1000)))
-		(snd-display ";mix-selection len: ~A?" (framples obind)))))
+		(snd-display "mix-selection len: ~A?" (framples obind)))))
 	(close-sound obind))
       
       (let ((ind (open-sound "2.snd")))
@@ -6127,12 +6127,12 @@ EDITS: 5
 	  (set! (speed-control ind) .5)
 	  (apply-controls ind apply-to-sound) ; temp 1
 	  (if (> (abs (- (framples) (* 2 len))) 256)
-	      (snd-display ";apply srate .5: ~A ~A" (framples) (* 2 len)))
+	      (snd-display "apply srate .5: ~A ~A" (framples) (* 2 len)))
 	  (make-selection 0 (framples))
 	  (set! (speed-control ind) .5)
 	  (apply-controls ind apply-to-selection) ; temp 2
 	  (if (> (abs (- (framples) (* 4 len))) 256)
-	      (snd-display ";apply srate .5 to selection: ~A ~A" (framples) (* 4 len)))
+	      (snd-display "apply srate .5 to selection: ~A ~A" (framples) (* 4 len)))
 	  (env-sound '(0 0 1 1) 0 (framples) 32.0) ; temp 3
 	  (let ((reg (select-all))) ; make multi-channel region
 	    (insert-region reg 0) ; temp 4
@@ -6143,16 +6143,16 @@ EDITS: 5
 	  (set! (selected-channel ind) 1)
 	  (apply-controls ind 1)  ; 1=apply-to-channel
 	  (if (> (abs (- (framples ind 1) (* 2 len))) 256)
-	      (snd-display ";apply srate .5 to chan 1: ~A ~A" (framples ind 1) (* 2 len)))
+	      (snd-display "apply srate .5 to chan 1: ~A ~A" (framples ind 1) (* 2 len)))
 	  (if (not (= (framples ind 0) len))
-	      (snd-display ";apply srate .5 but chan 0: ~A ~A" (framples ind 0) len))
+	      (snd-display "apply srate .5 but chan 0: ~A ~A" (framples ind 0) len))
 	  (set! (speed-control ind) .5)
 	  (apply-controls ind apply-to-sound 1000)
 	  (make-selection 2000 4000)
 	  (set! (speed-control ind) .5)
 	  (apply-controls ind apply-to-selection)
 	  (set! (selected-channel ind) #f)
-	  (if (selected-channel ind) (snd-display ";selected-channel #f: ~A" (selected-channel ind)))
+	  (if (selected-channel ind) (snd-display "selected-channel #f: ~A" (selected-channel ind)))
 	  (close-sound ind))
 	
 	(let ((ind1 (open-sound "oboe.snd"))
@@ -6163,21 +6163,21 @@ EDITS: 5
 	    (select-sound ind1)
 	    (scale-sound-by 2.0)
 	    (let ((nmx (maxamp ind1 0)))
-	      (if (fneq (* 2 mx1) nmx) (snd-display ";scale-sound-by 2.0: ~A ~A?" mx1 nmx))
+	      (if (fneq (* 2 mx1) nmx) (snd-display "scale-sound-by 2.0: ~A ~A?" mx1 nmx))
 	      (if (not (equal? (edit-fragment 1 ind1 0) '("scale-channel 2.000 0 #f" "scale" 0 50828)))
-		  (snd-display ";scale-sound-by: ~A?" (edit-fragment 1 ind1 0))))
+		  (snd-display "scale-sound-by: ~A?" (edit-fragment 1 ind1 0))))
 	    (scale-sound-to 0.5)
 	    (let ((nmx (maxamp ind1 0)))
-	      (if (fneq nmx 0.5) (snd-display ";scale-sound-to 0.5: ~A?" nmx))
+	      (if (fneq nmx 0.5) (snd-display "scale-sound-to 0.5: ~A?" nmx))
 	      (if (not (equal? (edit-fragment 2 ind1 0) '("scale-channel 1.698 0 #f" "scale" 0 50828)))
-		  (snd-display ";scale-sound-to: ~A?" (edit-fragment 2 ind1 0))))
+		  (snd-display "scale-sound-to: ~A?" (edit-fragment 2 ind1 0))))
 	    (scale-sound-by 0.0 0 1000 ind1 0)
 	    (let ((nmx (maxamp ind1 0)))
-	      (if (fneq 0.5 nmx) (snd-display ";scale-sound-by 0.0: ~A ~A?" mx1 nmx))
+	      (if (fneq 0.5 nmx) (snd-display "scale-sound-by 0.0: ~A ~A?" mx1 nmx))
 	      (if (not (equal? (edit-fragment 3 ind1 0) '("scale-channel 0.000 0 1000" "scale" 0 1000)))
-		  (snd-display ";scale-sound-by 0.0: ~A?" (edit-fragment 3 ind1 0))))
+		  (snd-display "scale-sound-by 0.0: ~A?" (edit-fragment 3 ind1 0))))
 	    (let ((pk (float-vector-peak (channel->float-vector 0 1000 ind1 0))))
-	      (if (fneq pk 0.0) (snd-display ";scale-sound-by 0.0 [0:1000]: ~A?" pk)))
+	      (if (fneq pk 0.0) (snd-display "scale-sound-by 0.0 [0:1000]: ~A?" pk)))
 	    (revert-sound ind1)
 	    (let ((oldv (channel->float-vector 12000 10 ind1 0)))
 	      (scale-sound-by 2.0 12000 10 ind1 0)
@@ -6185,24 +6185,24 @@ EDITS: 5
 		(do ((i 0 (+ i 1)))
 		    ((= i 10))
 		  (if (fneq (* 2.0 (oldv i)) (newv i))
-		      (snd-display ";scale ~D: ~A ~A?" i (oldv i) (newv i)))))
+		      (snd-display "scale ~D: ~A ~A?" i (oldv i) (newv i)))))
 	      (if (not (equal? (edit-fragment 1 ind1 0) '("scale-channel 2.000 12000 10" "scale" 12000 10)))
-		  (snd-display ";scale-sound-by 2.0 [12000:10]: ~A?" (edit-fragment 1 ind1 0))))
+		  (snd-display "scale-sound-by 2.0 [12000:10]: ~A?" (edit-fragment 1 ind1 0))))
 	    (revert-sound ind1)
 	    (select-sound ind2)
 	    (scale-sound-by 2.0)
 	    (let ((nmx (maxamp ind2 0)))
-	      (if (fneq (* 2 mx20) nmx) (snd-display ";2:0 scale-sound-by 2.0: ~A ~A?" mx20 nmx)))
+	      (if (fneq (* 2 mx20) nmx) (snd-display "2:0 scale-sound-by 2.0: ~A ~A?" mx20 nmx)))
 	    (let ((nmx (maxamp ind2 1)))
-	      (if (fneq (* 2 mx21) nmx) (snd-display ";2:1 scale-sound-by 2.0: ~A ~A?" mx21 nmx)))
+	      (if (fneq (* 2 mx21) nmx) (snd-display "2:1 scale-sound-by 2.0: ~A ~A?" mx21 nmx)))
 	    (scale-sound-to 0.5)
 	    (let ((nmx (max (maxamp ind2 0) (maxamp ind2 1))))
-	      (if (fneq nmx 0.5) (snd-display ";2 scale-sound-to 0.5: ~A (~A)?" nmx (maxamp ind2))))
+	      (if (fneq nmx 0.5) (snd-display "2 scale-sound-to 0.5: ~A (~A)?" nmx (maxamp ind2))))
 	    (scale-sound-by 0.0 0 1000 ind2 1)
 	    (if (not (equal? (edit-fragment 3 ind2 1) '("scale-channel 0.000 0 1000" "scale" 0 1000)))
-		(snd-display ";2:1 scale-sound-by 0.0: ~A?" (edit-fragment 3 ind2 1)))
+		(snd-display "2:1 scale-sound-by 0.0: ~A?" (edit-fragment 3 ind2 1)))
 	    (let ((pk (float-vector-peak (channel->float-vector 0 1000 ind2 1))))
-	      (if (fneq pk 0.0) (snd-display ";2:1 scale-sound-by 0.0 [0:1000]: ~A?" pk)))
+	      (if (fneq pk 0.0) (snd-display "2:1 scale-sound-by 0.0 [0:1000]: ~A?" pk)))
 	    (revert-sound ind2)
 	    (let ((oldv (channel->float-vector 12000 10 ind2 0)))
 	      (scale-sound-by 2.0 12000 10 ind2 0)
@@ -6210,37 +6210,37 @@ EDITS: 5
 		(do ((i 0 (+ i 1)))
 		    ((= i 10))
 		  (if (fneq (* 2.0 (oldv i)) (newv i))
-		      (snd-display ";2 scale ~D: ~A ~A?" i (oldv i) (newv i))))))
+		      (snd-display "2 scale ~D: ~A ~A?" i (oldv i) (newv i))))))
 	    (revert-sound ind2)
 	    (set! (sync ind2) 3)
 	    (set! (sync ind1) 3)
 	    (scale-sound-by 2.0)
 	    (let ((nmx (maxamp ind1 0)))
-	      (if (fneq mx1 nmx) (snd-display ";sync scale-sound-by 2.0: ~A ~A?" mx1 nmx)))
+	      (if (fneq mx1 nmx) (snd-display "sync scale-sound-by 2.0: ~A ~A?" mx1 nmx)))
 	    (let ((nmx (maxamp ind2 0)))
-	      (if (fneq (* 2 mx20) nmx) (snd-display ";2:0 sync scale-sound-by 2.0: ~A ~A?" mx20 nmx)))
+	      (if (fneq (* 2 mx20) nmx) (snd-display "2:0 sync scale-sound-by 2.0: ~A ~A?" mx20 nmx)))
 	    (let ((nmx (maxamp ind2 1)))
-	      (if (fneq (* 2 mx21) nmx) (snd-display ";2:1 sync scale-sound-by 2.0: ~A ~A?" mx21 nmx)))
+	      (if (fneq (* 2 mx21) nmx) (snd-display "2:1 sync scale-sound-by 2.0: ~A ~A?" mx21 nmx)))
 	    (scale-sound-to 1.0 20000 40000 ind2 1)
 	    (let ((nmx (maxamp ind1 0)))
-	      (if (fneq mx1 nmx) (snd-display ";sync scale-sound-to 1.0: ~A ~A?" mx1 nmx)))
+	      (if (fneq mx1 nmx) (snd-display "sync scale-sound-to 1.0: ~A ~A?" mx1 nmx)))
 	    (let ((nmx (maxamp ind2 0)))
-	      (if (fneq (* 2 mx20) nmx) (snd-display ";2:0 sync scale-sound-to 1.0: ~A ~A?" mx20 nmx)))
+	      (if (fneq (* 2 mx20) nmx) (snd-display "2:0 sync scale-sound-to 1.0: ~A ~A?" mx20 nmx)))
 	    (let ((nmx (maxamp ind2 1)))
-	      (if (fneq nmx 1.0) (snd-display ";2:1 sync scale-sound-to 1.0: ~A?" nmx)))
+	      (if (fneq nmx 1.0) (snd-display "2:1 sync scale-sound-to 1.0: ~A?" nmx)))
 	    
 	    (close-sound ind1)
 	    (close-sound ind2))))
       
       (let ((ind (open-sound "now.snd")))
 	(set! (amp-control ind) .5)
-	(if (ffneq (amp-control ind) .5) (snd-display ";amp-control (.5): ~A?" (amp-control ind)))
+	(if (ffneq (amp-control ind) .5) (snd-display "amp-control (.5): ~A?" (amp-control ind)))
 	(set! (amp-control ind 0) .25)
-	(if (ffneq (amp-control ind) .5) (snd-display ";amp-control after local set (.5): ~A?" (amp-control ind)))
-	(if (ffneq (amp-control ind 0) .25) (snd-display ";amp-control 0 (.25): ~A?" (amp-control ind 0)))
+	(if (ffneq (amp-control ind) .5) (snd-display "amp-control after local set (.5): ~A?" (amp-control ind)))
+	(if (ffneq (amp-control ind 0) .25) (snd-display "amp-control 0 (.25): ~A?" (amp-control ind 0)))
 	(set! (amp-control ind) 1.0)
-	(if (ffneq (amp-control ind) 1.0) (snd-display ";amp-control (1.0): ~A?" (amp-control ind)))
-	(if (ffneq (amp-control ind 0) .25) (snd-display ";amp-control 0 after set (.25): ~A?" (amp-control ind 0)))
+	(if (ffneq (amp-control ind) 1.0) (snd-display "amp-control (1.0): ~A?" (amp-control ind)))
+	(if (ffneq (amp-control ind 0) .25) (snd-display "amp-control 0 after set (.25): ~A?" (amp-control ind 0)))
 	(set! (transform-graph? ind 0) #t)
 	(set! (transform-graph-type ind 0) graph-as-sonogram)
 	(update-transform-graph ind 0)
@@ -6249,22 +6249,22 @@ EDITS: 5
 	    (if (or (not (pair? val))
 		    (fneq (car val) 1.0)
 		    (not (= (caddr val) 256)))
-		(snd-display ";transform-framples: ~A (~A)" val (transform-size ind 0)))))
+		(snd-display "transform-framples: ~A (~A)" val (transform-size ind 0)))))
 	(close-sound ind))
       
       (let ((ind (open-sound "4.aiff")))
-	(if (ffneq (amp-control ind) 1.0) (snd-display ";amp-control upon open (1.0): ~A?" (amp-control ind)))
-	(if (ffneq (amp-control ind 2) 1.0) (snd-display ";amp-control 2 upon open (1.0): ~A?" (amp-control ind 2)))
+	(if (ffneq (amp-control ind) 1.0) (snd-display "amp-control upon open (1.0): ~A?" (amp-control ind)))
+	(if (ffneq (amp-control ind 2) 1.0) (snd-display "amp-control 2 upon open (1.0): ~A?" (amp-control ind 2)))
 	(set! (amp-control ind) .5)
-	(if (ffneq (amp-control ind 2) .5) (snd-display ";amp-control 2 after global set (.5): ~A?" (amp-control ind 2)))
+	(if (ffneq (amp-control ind 2) .5) (snd-display "amp-control 2 after global set (.5): ~A?" (amp-control ind 2)))
 	(set! (amp-control ind 2) .25)
-	(if (ffneq (amp-control ind 2) .25) (snd-display ";amp-control 2 (.25): ~A?" (amp-control ind 2)))
-	(if (ffneq (amp-control ind 1) .5) (snd-display ";amp-control 1 after local set (.5): ~A?" (amp-control ind 1)))
+	(if (ffneq (amp-control ind 2) .25) (snd-display "amp-control 2 (.25): ~A?" (amp-control ind 2)))
+	(if (ffneq (amp-control ind 1) .5) (snd-display "amp-control 1 after local set (.5): ~A?" (amp-control ind 1)))
 	(let ((after-ran #f))
 	  (set! (hook-functions after-apply-controls-hook) ())
 	  (hook-push after-apply-controls-hook (lambda (hook) (set! after-ran (hook 'snd))))
 	  (apply-controls ind)
-	  (if (not (equal? ind after-ran)) (snd-display ";after-apply-controls-hook: ~A?" after-ran))
+	  (if (not (equal? ind after-ran)) (snd-display "after-apply-controls-hook: ~A?" after-ran))
 	  (set! (hook-functions after-apply-controls-hook) ()))
 	(revert-sound ind)
 	(set! (sync ind) 1)
@@ -6274,27 +6274,27 @@ EDITS: 5
 		  (fneq (mx 1) .2)
 		  (fneq (mx 2) .2)
 		  (fneq (mx 3) .2))
-	      (snd-display ";scale to with vector: ~A" mx)))
+	      (snd-display "scale to with vector: ~A" mx)))
 	(set! (filter-control-envelope ind) '(0 0 1 1))
 	(if (not (feql '(0.0 0.0 1.0 1.0) (filter-control-envelope ind))) 
-	    (snd-display ";set filter-control-envelope: ~A?" (filter-control-envelope ind)))
+	    (snd-display "set filter-control-envelope: ~A?" (filter-control-envelope ind)))
 	(set! (filter-control-order ind) 20)
 	(if (not (mus-arrays-equal? (filter-control-coeffs ind)
 				    (float-vector -0.007 0.010 -0.025 0.029 -0.050 0.055 -0.096 0.109 -0.268 0.241 
 						  0.241 -0.268 0.109 -0.096 0.055 -0.050 0.029 -0.025 0.010 -0.007)))
-	    (snd-display ";highpass coeffs: ~A" (filter-control-coeffs ind)))
+	    (snd-display "highpass coeffs: ~A" (filter-control-coeffs ind)))
 	(set! (filter-control-envelope ind) '(0 1 1 0))
 	(if (not (mus-arrays-equal? (filter-control-coeffs ind)
 				    (float-vector 0.003 0.002 0.004 0.002 0.007 0.003 0.014 0.012 0.059 0.394 
 						  0.394 0.059 0.012 0.014 0.003 0.007 0.002 0.004 0.002 0.003)))
-	    (snd-display ";lowpass coeffs: ~A" (filter-control-coeffs ind)))
+	    (snd-display "lowpass coeffs: ~A" (filter-control-coeffs ind)))
 	(close-sound ind))
       
       (let ((obind (open-sound "4.aiff")))
 	(let ((amps (maxamp obind #t))
 	      (times (maxamp-position obind #t)))
 	  (if (not (equal? times '(810071 810071 810071 810071)))
-	      (snd-display ";4.aiff times: ~A" times))
+	      (snd-display "4.aiff times: ~A" times))
 	  (set! (window-width) (max (window-width) 600))
 	  (set! (window-height) (max (window-height) 600))
 	  (set! (x-bounds obind 0) (list 0.0 0.1))
@@ -6302,13 +6302,13 @@ EDITS: 5
 	  (update-time-graph)
 	  (set! (amp-control obind) 0.1)
 	  (select-channel 2)
-	  (if (eq? (without-errors (apply-controls obind 1)) 'no-such-sound) (snd-display ";apply-controls can't find 4.aiff?"))
+	  (if (eq? (without-errors (apply-controls obind 1)) 'no-such-sound) (snd-display "apply-controls can't find 4.aiff?"))
 	  (let ((newamps (maxamp obind #t)))
 	    (if (or (fneq (car amps) (car newamps))
 		    (fneq (cadr amps) (cadr newamps))
 		    (> (abs (- (* 0.1 (caddr amps)) (caddr newamps))) .05)
 		    (fneq (cadddr amps) (cadddr newamps)))
-		(snd-display ";apply amps:~%  ~A ->~%  ~A?" amps newamps))
+		(snd-display "apply amps:~%  ~A ->~%  ~A?" amps newamps))
 	    (undo 1 obind 2)
 	    (set! (amp-control obind) 0.1)
 	    (make-region 0 (framples obind) obind 1)
@@ -6318,7 +6318,7 @@ EDITS: 5
 		    (> (abs (- (* 0.1 (cadr amps)) (cadr newamps))) .05)
 		    (fneq (caddr amps) (caddr newamps))
 		    (fneq (cadddr amps) (cadddr newamps)))
-		(snd-display ";apply selection amp:~%  ~A ->~%  ~A?" amps newamps))
+		(snd-display "apply selection amp:~%  ~A ->~%  ~A?" amps newamps))
 	    (when with-gui
 	      (let ((axinfo (axis-info obind 0 time-graph)))
 		(let ((losamp (car axinfo))
@@ -6339,32 +6339,32 @@ EDITS: 5
 		    (set! (cursor obind) 100)
 		    (let ((xy (car (cursor-position obind))))
 		      (if (fneq (position->x xy) (/ (cursor obind) (srate obind)))
-			  (snd-display ";cursor-position: ~A ~A ~A?" xy (position->x xy) (/ (cursor obind) (srate obind)))))
+			  (snd-display "cursor-position: ~A ~A ~A?" xy (position->x xy) (/ (cursor obind) (srate obind)))))
 		    (if (fneq (position->x (x->position xpos)) xpos)
-			(snd-display ";x<->position: ~A ~A?" (position->x (x->position xpos)) xpos))
+			(snd-display "x<->position: ~A ~A?" (position->x (x->position xpos)) xpos))
 		    (if (> (abs (- (position->y (y->position ypos)) ypos)) .5)
-			(snd-display ";y<->position: ~A ~A?" (position->y (y->position ypos)) ypos))
+			(snd-display "y<->position: ~A ~A?" (position->y (y->position ypos)) ypos))
 		    (if (not (= losamp (left-sample obind 0)))
-			(snd-display ";axis-info[0 losamp]: ~A ~A?" losamp (left-sample obind 0)))
+			(snd-display "axis-info[0 losamp]: ~A ~A?" losamp (left-sample obind 0)))
 		    (if (not (= hisamp (right-sample obind 0)))
-			(snd-display ";axis-info[1 hisamp]: ~A ~A?" hisamp (right-sample obind 0)))
+			(snd-display "axis-info[1 hisamp]: ~A ~A?" hisamp (right-sample obind 0)))
 		    (if (fneq (axinfo 6) 0.0)
-			(snd-display ";axis-info[6 xmin]: ~A?" (axinfo 6)))
+			(snd-display "axis-info[6 xmin]: ~A?" (axinfo 6)))
 		    (if (fneq (axinfo 7) -1.0)
-			(snd-display ";axis-info[7 ymin]: ~A?" (axinfo 7)))
+			(snd-display "axis-info[7 ymin]: ~A?" (axinfo 7)))
 		    (if (fneq (axinfo 9) 1.0)
-			(snd-display ";axis-info[9 ymax]: ~A?" (axinfo 9)))
+			(snd-display "axis-info[9 ymax]: ~A?" (axinfo 9)))
 		    (if (> (abs (apply - (our-x->position obind x0))) 1) 
-			(snd-display ";x0->position: ~A?" (our-x->position obind x0)))
+			(snd-display "x0->position: ~A?" (our-x->position obind x0)))
 		    (if (> (abs (apply - (our-x->position obind x1))) 1) 
-			(snd-display ";x1->position: ~A?" (our-x->position obind x1)))
+			(snd-display "x1->position: ~A?" (our-x->position obind x1)))
 		    (if (> (abs (apply - (our-x->position obind (* 0.5 (+ x0 x1))))) 1)
-			(snd-display ";xmid->position: ~A?" (our-x->position obind (* 0.5 (+ x0 x1)))))
+			(snd-display "xmid->position: ~A?" (our-x->position obind (* 0.5 (+ x0 x1)))))
 		    (unless full-test
 		      (if (> (abs (- (x->position xpos) (cp-x xpos))) 1)
-			  (snd-display ";cp-x .5: ~A ~A?" (x->position xpos) (cp-x xpos)))
+			  (snd-display "cp-x .5: ~A ~A?" (x->position xpos) (cp-x xpos)))
 		      (if (> (abs (- (y->position ypos) (cp-y ypos))) 1)
-			  (snd-display ";cp-y .75: ~A ~A?" (y->position ypos) (cp-y ypos)))
+			  (snd-display "cp-y .75: ~A ~A?" (y->position ypos) (cp-y ypos)))
 		      (do ((xrange (- x1 x0))
 			   (yrange (- y1 y0))
 			   (i 0 (+ i 1)))
@@ -6372,32 +6372,32 @@ EDITS: 5
 			(let ((xpos (+ x0 (random xrange)))
 			      (ypos (+ y0 (random yrange))))
 			  (if (> (abs (- (x->position xpos) (cp-x xpos))) 1)
-			      (snd-display ";cp-x[~A] ~A: ~A ~A?" i xpos (x->position xpos) (cp-x xpos)))
+			      (snd-display "cp-x[~A] ~A: ~A ~A?" i xpos (x->position xpos) (cp-x xpos)))
 			  (if (> (abs (- (y->position ypos) (cp-y ypos))) 1)
-			      (snd-display ";cp-y[~A] ~A: ~A ~A?" i ypos (y->position ypos) (cp-y ypos)))
+			      (snd-display "cp-y[~A] ~A: ~A ~A?" i ypos (y->position ypos) (cp-y ypos)))
 			  (if (fneq (position->x (cp-x xpos)) xpos)
-			      (snd-display ";x->position cp-x ~A ~A" xpos (position->x (cp-x xpos))))
+			      (snd-display "x->position cp-x ~A ~A" xpos (position->x (cp-x xpos))))
 			  (if (fffneq (position->y (cp-y ypos)) ypos)
-			      (snd-display ";y->position cp-y ~A ~A" ypos (position->y (cp-y ypos)))))))
+			      (snd-display "y->position cp-y ~A ~A" ypos (position->y (cp-y ypos)))))))
 		    (set! (left-sample obind 0) 1234)
 		    (let ((axob (axis-info obind 0)))
 		      (if (not (= 1234 (car axob)))
-			  (snd-display ";axis-info[0 losamp at 1234]: ~A ~A?" (car axob) (left-sample obind 0)))
+			  (snd-display "axis-info[0 losamp at 1234]: ~A ~A?" (car axob) (left-sample obind 0)))
 		      (set! axinfo axob))
 		    (set! x0 (axinfo 2))
 		    (set! x1 (axinfo 4))
 		    (if (> (abs (apply - (our-x->position obind x0))) 1) 
-			(snd-display ";x0a->position: ~A?" (our-x->position obind x0)))
+			(snd-display "x0a->position: ~A?" (our-x->position obind x0)))
 		    (if (> (abs (apply - (our-x->position obind x1))) 1) 
-			(snd-display ";x1a->position: ~A?" (our-x->position obind x1)))
+			(snd-display "x1a->position: ~A?" (our-x->position obind x1)))
 		    (if (> (abs (apply - (our-x->position obind (* 0.5 (+ x0 x1))))) 1)
-			(snd-display ";xmida->position: ~A?" (our-x->position obind (* 0.5 (+ x0 x1)))))
+			(snd-display "xmida->position: ~A?" (our-x->position obind (* 0.5 (+ x0 x1)))))
 		    (set! (y-bounds obind 0) (list -2.0 3.0))
 		    (let ((axob (axis-info obind 0)))
 		      (if (fneq (axob 7) -2.0)
-			  (snd-display ";axis-info[7 ymin -2.0]: ~A?" (axob 7)))
+			  (snd-display "axis-info[7 ymin -2.0]: ~A?" (axob 7)))
 		      (if (fneq (axob 9) 3.0)
-			  (snd-display ";axis-info[9 ymax 3.0]: ~A?" (axob 9)))))))
+			  (snd-display "axis-info[9 ymax 3.0]: ~A?" (axob 9)))))))
 	      (close-sound obind)))))
       
       (let ((ind1 (open-sound "oboe.snd")))
@@ -6441,10 +6441,10 @@ EDITS: 5
 	
 	(let ((var (catch #t (lambda () (src-sound '(0 0 1 1))) (lambda args args))))
 	  (if (not (eq? (car var) 'out-of-range))
-	      (snd-display ";src-sound env at 0: ~A" var)))
+	      (snd-display "src-sound env at 0: ~A" var)))
 	(let ((var (catch #t (lambda () (src-sound '(0 1 1 -1))) (lambda args args))))
 	  (if (not (eq? (car var) 'out-of-range))
-	      (snd-display ";src-sound env through 0: ~A" var)))
+	      (snd-display "src-sound env through 0: ~A" var)))
 	
 	(scale-to 1.0 ind1)
 	(let ((v1 (channel->float-vector 12000 10 ind1 0)))
@@ -6456,21 +6456,21 @@ EDITS: 5
 	  (convolve-files "fmv4.snd" "fmv3.snd" 1.0 "fmv5.snd")
 	  (let ((v2 (channel->float-vector 12000 10 ind1 0)))
 	    (if (not (mus-arrays-equal?1 v1 v2))
-		(snd-display ";~A (orig: 0) ~A ~A" 'convolve-with v1 v2))
+		(snd-display "~A (orig: 0) ~A ~A" 'convolve-with v1 v2))
 	    (file->array "fmv5.snd" 0 12000 10 v2)
 	    (if (not (mus-arrays-equal?1 v1 v2))
-		(snd-display ";convolve-files: (orig: 0) ~A ~A" v1 v2)))
+		(snd-display "convolve-files: (orig: 0) ~A ~A" v1 v2)))
 	  (delete-file "fmv3.snd")
 	  (delete-file "fmv5.snd"))
 	(convolve-files "2.snd" "oboe.snd" 0.5 "fmv5.snd")
 	(if (or (fneq (cadr (mus-sound-maxamp "fmv5.snd")) 0.25)
 		(fneq (cadddr (mus-sound-maxamp "fmv5.snd")) 0.5))
-	    (snd-display ";convolve-files stereo: ~A" (mus-sound-maxamp "fmv5.snd")))
+	    (snd-display "convolve-files stereo: ~A" (mus-sound-maxamp "fmv5.snd")))
 	(delete-file "fmv5.snd")
 	(scale-to .25 ind1)
 	(set! (y-bounds ind1) ())
 	(if (and with-gui (not (equal? (y-bounds ind1) '(-.25 .25))))
-	    (snd-display ";y-bounds (): ~A?" (y-bounds ind1)))
+	    (snd-display "y-bounds (): ~A?" (y-bounds ind1)))
 	(revert-sound ind1)
 	
 	(scale-to 1.0 ind1)
@@ -6482,10 +6482,10 @@ EDITS: 5
 	  (convolve-files "fmv4.snd" "fmv3.snd" 1.0 "fmv5.snd")
 	  (let ((v2 (channel->float-vector 12005 10 ind1 0)))
 	    (if (not (mus-arrays-equal?1 v1 v2))
-		(snd-display ";~A (orig: 2) ~A ~A" 'convolve-with v1 v2))
+		(snd-display "~A (orig: 2) ~A ~A" 'convolve-with v1 v2))
 	    (file->array "fmv5.snd" 0 12005 10 v2)
 	    (if (not (mus-arrays-equal?1 v1 v2))
-		(snd-display ";convolve-files: (orig: 2) ~A ~A" v1 v2)))
+		(snd-display "convolve-files: (orig: 2) ~A ~A" v1 v2)))
 	  (delete-file "fmv3.snd")
 	  (delete-file "fmv4.snd")
 	  (delete-file "fmv5.snd"))
@@ -6495,33 +6495,33 @@ EDITS: 5
 	  (let ((old-regions (regions)))
 	    (select-all ind1)
 	    (if (not (equal? old-regions (regions)))
-		(snd-display ";selection-create-region: ~A -> ~A?" old-regions (regions)))))
+		(snd-display "selection-create-region: ~A -> ~A?" old-regions (regions)))))
 	(convolve-selection-with "pistol.snd" (maxamp))
 	(let ((data (channel->float-vector 12000 10 ind1 0)))
 	  (convolve-with "pistol.snd" (maxamp ind1 0 0) ind1 0 0)
 	  (let ((new-data (channel->float-vector 12000 10 ind1 0)))
 	    (if (not (mus-arrays-equal?1 data new-data))
-		(snd-display ";convolve-selection-with: ~A ~A?" data new-data))))
+		(snd-display "convolve-selection-with: ~A ~A?" data new-data))))
 	(revert-sound ind1)
 	(make-selection 1000 2000 ind1)
 	(let ((ma (maxamp ind1)))
 	  (convolve-selection-with "pistol.snd" ma)
-	  (if (fneq (maxamp ind1) ma) (snd-display ";convolve-selection-with 1000: ~A ~A?" ma (maxamp ind1))))
+	  (if (fneq (maxamp ind1) ma) (snd-display "convolve-selection-with 1000: ~A ~A?" ma (maxamp ind1))))
 	(make-selection 1000 2000 ind1)
 	(let ((id (make-region)))
 	  (if (not (region? id))
-	      (snd-display ";make-region argless: ~A" id))
+	      (snd-display "make-region argless: ~A" id))
 	  (if (not (= (region-framples id 0) (selection-framples)))
-	      (snd-display ";region/selection-framples: ~A ~A (~A)?" (region-framples id 0) (selection-framples) (region-framples id)))
+	      (snd-display "region/selection-framples: ~A ~A (~A)?" (region-framples id 0) (selection-framples) (region-framples id)))
 	  (if (fneq (region-sample id 0) (sample 1000 ind1))
-	      (snd-display ";region-sample from make-region: ~A ~A?" (region-sample id 0) (sample 1000 ind1))))
+	      (snd-display "region-sample from make-region: ~A ~A?" (region-sample id 0) (sample 1000 ind1))))
 	(close-sound ind1))
       (let* ((ind (open-sound "2.snd"))
 	     (reg (make-region 0 100 ind #t)))
 	(if (not (equal? (region-home reg) '("2.snd" 0 100))) 
-	    (snd-display ";make + region-home: ~A" (region-home reg)))
+	    (snd-display "make + region-home: ~A" (region-home reg)))
 	(if (not (= (region-chans reg) 2))
-	    (snd-display ";make-region chan #t: ~A" (region-chans reg)))
+	    (snd-display "make-region chan #t: ~A" (region-chans reg)))
 	(close-sound ind))
       
       (let ((ind1 (open-sound "2.snd")))
@@ -6532,20 +6532,20 @@ EDITS: 5
 		(v3 (channel->float-vector 12000 10 ind1 1)))
 	    (if (or (mus-arrays-equal? v0 v2)
 		    (mus-arrays-equal? v1 v3))
-		(snd-display ";swap-channels 0: no change! ~A ~A ~A ~A" v0 v2 v1 v3)))
+		(snd-display "swap-channels 0: no change! ~A ~A ~A ~A" v0 v2 v1 v3)))
 	  (swap-channels ind1)
 	  (let ((v2 (channel->float-vector 12000 10 ind1 0))
 		(v3 (channel->float-vector 12000 10 ind1 1)))
 	    (if (not (and (mus-arrays-equal? v0 v2)
 			  (mus-arrays-equal? v1 v3)))
-		(snd-display ";swap-channels 1: ~A ~A ~A ~A" v0 v2 v1 v3))))
+		(snd-display "swap-channels 1: ~A ~A ~A ~A" v0 v2 v1 v3))))
 	;; as long as we're here...
 	(set! (sync ind1) 0)
 	(set! (cursor ind1 0) 100)
 	(set! (cursor ind1 1) 200)
 	(if (not (and (= (cursor ind1 0) 100)
 		      (= (cursor ind1 1) 200)))
-	    (snd-display ";cursor: ~A ~A?" (cursor ind1 0) (cursor ind1 1)))
+	    (snd-display "cursor: ~A ~A?" (cursor ind1 0) (cursor ind1 1)))
 	(set! (sync ind1) 1)
 	(scale-by '(.5 .25) ind1)
 	(scale-by (float-vector 2.0 4.0) ind1)
@@ -6555,12 +6555,12 @@ EDITS: 5
 	  (let ((newamps (maxamp ind1 #t)))
 	    (if (or (fneq (car amps) (cadr newamps))
 		    (fneq (cadr amps) (car newamps)))
-		(snd-display ";swap-channels with cp def: ~A ~A" amps newamps)))
+		(snd-display "swap-channels with cp def: ~A ~A" amps newamps)))
 	  (swap-channels ind1 1)
 	  (let ((newamps (maxamp ind1 #t)))
 	    (if (or (fneq (car amps) (car newamps))
 		    (fneq (cadr amps) (cadr newamps)))
-		(snd-display ";swap-channels with cp def 0: ~A ~A" amps newamps))))
+		(snd-display "swap-channels with cp def 0: ~A ~A" amps newamps))))
 	(close-sound ind1))
       
       (let ((ind1 (open-sound "oboe.snd"))
@@ -6574,7 +6574,7 @@ EDITS: 5
 			(if (> (next-sample reader) .1)
 			    (set! count (+ count 1)))))))
 	  (if (not (= ups1 ups2))
-	      (snd-display ";scan-chan: ~A ~A?" ups1 ups2))
+	      (snd-display "scan-chan: ~A ~A?" ups1 ups2))
 	  (set! ups1 (count-matches (lambda (n) (> n .03)) 0 ind2 0))
 	  (set! ups2 (count-matches (lambda (n) (> n .03)) 0 ind2 1))
 	  (let ((ups3 (let ((count 0)
@@ -6592,9 +6592,9 @@ EDITS: 5
 			  (if (> (next-sample reader) .03)
 			      (set! count (+ count 1)))))))
 	    (if (not (= ups1 ups3))
-		(snd-display ";2[0] scan-chan: ~A ~A?" ups1 ups3))
+		(snd-display "2[0] scan-chan: ~A ~A?" ups1 ups3))
 	    (if (not (= ups2 ups4))
-		(snd-display ";2[1] scan-chan: ~A ~A?" ups2 ups4))))
+		(snd-display "2[1] scan-chan: ~A ~A?" ups2 ups4))))
 	(close-sound ind1)
 	(close-sound ind2))
       
@@ -6605,13 +6605,13 @@ EDITS: 5
 			   (and (set! ctr (not ctr))
 				(* n 2.0))))
 	    (if (> (framples ind1) (+ (/ len 2) 1))
-		(snd-display ";map-channel cut: ~A ~A?" len (framples ind1)))
+		(snd-display "map-channel cut: ~A ~A?" len (framples ind1)))
 	    (revert-sound ind1)
 	    (set! ctr 0)
 	    (map-channel (lambda (n)
 			   (or (> (set! ctr (+ ctr 1)) 3) n)))
 	    (if (> ctr 4)
-		(snd-display ";map-channel no-edit count: ~A?" ctr)))
+		(snd-display "map-channel no-edit count: ~A?" ctr)))
 	  (revert-sound ind1)
 	  (let ((v1 (make-float-vector 2)))
 	    (map-channel (lambda (n)
@@ -6619,35 +6619,35 @@ EDITS: 5
 			   (set! (v1 1) (* n 3))
 			   v1)))
 	  (if (> (abs (- (framples ind1) (* len 2))) 3)
-	      (snd-display ";map-channel double: ~A ~A?" len (framples ind1))))
+	      (snd-display "map-channel double: ~A ~A?" len (framples ind1))))
 	(revert-sound ind1)
 	(let ((otime (maxamp-position ind1)))
 	  (set! (sample 1234) .9)
 	  (let ((ntime (maxamp-position ind1))
 		(nval (maxamp ind1))
 		(npos (edit-position ind1 0)))
-	    (if (not (= ntime 1234)) (snd-display ";maxamp-position 1234: ~A" ntime))
+	    (if (not (= ntime 1234)) (snd-display "maxamp-position 1234: ~A" ntime))
 	    (let ((ootime (maxamp-position ind1 0 0)))
-	      (if (not (= ootime otime)) (snd-display ";maxamp-position edpos 0: ~A ~A" otime ootime)))
+	      (if (not (= ootime otime)) (snd-display "maxamp-position edpos 0: ~A ~A" otime ootime)))
 	    (let ((nntime (maxamp-position ind1 0 npos)))
-	      (if (not (= nntime ntime)) (snd-display ";maxamp-position edpos ~D: ~A ~A" npos ntime nntime)))
-	    (if (fneq nval .9) (snd-display ";maxamp .9: ~A" nval)))
+	      (if (not (= nntime ntime)) (snd-display "maxamp-position edpos ~D: ~A ~A" npos ntime nntime)))
+	    (if (fneq nval .9) (snd-display "maxamp .9: ~A" nval)))
 	  (set! (sample 1234) 0.0)
 	  (env-channel '(0 0 1 1))
-	  (if (not (= (maxamp-position) 35062)) (snd-display ";env-channel maxamp-position: ~A" (maxamp-position)))
+	  (if (not (= (maxamp-position) 35062)) (snd-display "env-channel maxamp-position: ~A" (maxamp-position)))
 	  (let ((ootime (maxamp-position ind1 0 0)))
-	    (if (not (= ootime otime)) (snd-display ";maxamp-position edpos 0(1): ~A ~A" otime ootime)))
+	    (if (not (= ootime otime)) (snd-display "maxamp-position edpos 0(1): ~A ~A" otime ootime)))
 	  (let ((nntime (maxamp-position ind1 0 1)))
-	    (if (not (= nntime 1234)) (snd-display ";maxamp-position edpos 1(1): ~A ~A" 1234 nntime)))
+	    (if (not (= nntime 1234)) (snd-display "maxamp-position edpos 1(1): ~A ~A" 1234 nntime)))
 	  (let ((nntime (maxamp-position ind1 0 current-edit-position)))
-	    (if (not (= nntime 35062)) (snd-display ";maxamp-position edpos current: ~A ~A" 35062 nntime))))
+	    (if (not (= nntime 35062)) (snd-display "maxamp-position edpos current: ~A ~A" 35062 nntime))))
 	(revert-sound ind1)
 	(make-selection 24000 25000)
 	(if (not (= (selection-maxamp-position) 971))
-	    (snd-display ";selection maxamp position: ~A" (selection-maxamp-position)))
+	    (snd-display "selection maxamp position: ~A" (selection-maxamp-position)))
 	(let ((regp (region-maxamp-position (make-region 24000 25000))))
 	  (if (not (= regp 971))
-	      (snd-display ";region maxamp position: ~A" regp)))
+	      (snd-display "region maxamp position: ~A" regp)))
 	(close-sound ind1))
       (let ((ind1 (open-sound "oboe.snd")))
 	(test-edpos maxamp 'maxamp (lambda () (scale-by 2.0 ind1 0)) ind1)
@@ -6674,24 +6674,24 @@ EDITS: 5
 	(save-sound-as "fmv1.snd" ind1 :edit-position 1)
 	(let ((var (catch #t (lambda () (save-sound-as "fmv2.snd" ind1 :channel 1234)) (lambda args args))))
 	  (if (not (eq? (car var) 'no-such-channel))
-	      (snd-display ";save-sound-as bad chan: ~A" var)))
+	      (snd-display "save-sound-as bad chan: ~A" var)))
 	(if (not (= (mus-sound-framples "fmv.snd") (framples ind1 0 0)))
-	    (snd-display ";save-sound-as (edpos): ~A ~A?" (mus-sound-framples "fmv.snd") (framples ind1 0 0)))
+	    (snd-display "save-sound-as (edpos): ~A ~A?" (mus-sound-framples "fmv.snd") (framples ind1 0 0)))
 	(if (not (= (mus-sound-framples "fmv1.snd") (framples ind1 0 1)))
-	    (snd-display ";save-sound-as (edpos 1): ~A ~A?" (mus-sound-framples "fmv.snd") (framples ind1 0 1)))
+	    (snd-display "save-sound-as (edpos 1): ~A ~A?" (mus-sound-framples "fmv.snd") (framples ind1 0 1)))
 	(if (= (mus-sound-framples "fmv.snd") (framples ind1 0 1))
-	    (snd-display ";save-sound-as (edpos 1)(2): ~A ~A?" (mus-sound-framples "fmv.snd") (framples ind1 0 1)))
+	    (snd-display "save-sound-as (edpos 1)(2): ~A ~A?" (mus-sound-framples "fmv.snd") (framples ind1 0 1)))
 	(let ((ind2 (open-sound "fmv.snd"))
 	      (ind3 (open-sound "fmv1.snd")))
 	  (if (not (mus-arrays-equal? (channel->float-vector 12000 10 ind1 0 0) (channel->float-vector 12000 10 ind2 0)))
-	      (snd-display ";save-sound-as (edpos 3): ~A ~A?" (channel->float-vector 12000 10 ind1 0 0) (channel->float-vector 12000 10 ind2 0)))
+	      (snd-display "save-sound-as (edpos 3): ~A ~A?" (channel->float-vector 12000 10 ind1 0 0) (channel->float-vector 12000 10 ind2 0)))
 	  (if (not (mus-arrays-equal? (channel->float-vector 12000 10 ind1 0 1) (channel->float-vector 12000 10 ind3 0)))
-	      (snd-display ";save-sound-as (edpos 4): ~A ~A?" (channel->float-vector 12000 10 ind1 0 1) (channel->float-vector 12000 10 ind3 0)))
+	      (snd-display "save-sound-as (edpos 4): ~A ~A?" (channel->float-vector 12000 10 ind1 0 1) (channel->float-vector 12000 10 ind3 0)))
 	  (if (mus-arrays-equal? (channel->float-vector 12000 10 ind2 0) (channel->float-vector 12000 10 ind3 0))
-	      (snd-display ";save-sound-as (edpos 5): ~A ~A?" (channel->float-vector 12000 10 ind2 0) (channel->float-vector 12000 10 ind3 0)))
+	      (snd-display "save-sound-as (edpos 5): ~A ~A?" (channel->float-vector 12000 10 ind2 0) (channel->float-vector 12000 10 ind3 0)))
 	  (select-sound ind3)
 	  (set! (comment) "hiho")
-	  (if (not (string=? (comment) "hiho")) (snd-display ";set! comment no index: ~A" (comment)))
+	  (if (not (string=? (comment) "hiho")) (snd-display "set! comment no index: ~A" (comment)))
 	  (close-sound ind2)
 	  (close-sound ind3))
 	(delete-file "fmv.snd")
@@ -6709,17 +6709,17 @@ EDITS: 5
 	    (fill-float-vector v (sin (env e)))
 	    (float-vector->channel v 0 2000 ind 0))
 	  (filter-sound '(0 0 .09 0 .1 1 .11 0 1 0) 1024)
-	  (if (> (maxamp) .025) (snd-display ";filter-sound maxamp 1: ~A" (maxamp)))
+	  (if (> (maxamp) .025) (snd-display "filter-sound maxamp 1: ~A" (maxamp)))
 	  (undo)
 	  (filter-sound '(0 0 .19 0 .2 1 .21 0 1 0) 1024)  
-	  (if (< (maxamp) .9) (snd-display ";filter-sound maxamp 2: ~A" (maxamp)))
+	  (if (< (maxamp) .9) (snd-display "filter-sound maxamp 2: ~A" (maxamp)))
 	  (undo)
 	  (filter-sound '(0 0 .29 0 .3 1 .31 0 1 0) 1024)  
-	  (if (> (maxamp) .02) (snd-display ";filter-sound maxamp 3: ~A" (maxamp)))
+	  (if (> (maxamp) .02) (snd-display "filter-sound maxamp 3: ~A" (maxamp)))
 	  
 	  (set! *show-sonogram-cursor* #t) 
 	  (set! *with-tracking-cursor* #t) 
-	  (if (not *with-tracking-cursor*) (snd-display ";with-tracking-cursor set to #t: ~A" *with-tracking-cursor*))
+	  (if (not *with-tracking-cursor*) (snd-display "with-tracking-cursor set to #t: ~A" *with-tracking-cursor*))
 	  
 	  (set! *transform-graph-type* graph-as-sonogram) 
 	  (play :wait #t)
@@ -6734,19 +6734,19 @@ EDITS: 5
 	(let ((here (cursor))) 
 	  (play :start (cursor)) 
 	  (if (not (= here 2000 (cursor)))
-	      (snd-display ";with-tracking-cursor set to :track-and-return: start: ~A, end: ~A" here (cursor))))
+	      (snd-display "with-tracking-cursor set to :track-and-return: start: ~A, end: ~A" here (cursor))))
 	
 	(set! (zoom-focus-style) zoom-focus-middle) 
 	(when with-motif
 	  (set! (x-zoom-slider) .5)
-	  (if (fneq (x-position-slider) 0.25) (snd-display ";zoom focus middle .5: ~A" (x-position-slider)))
+	  (if (fneq (x-position-slider) 0.25) (snd-display "zoom focus middle .5: ~A" (x-position-slider)))
 	  (set! (x-zoom-slider) .1)
-	  (if (fneq (x-position-slider) 0.45) (snd-display ";zoom focus middle .1: ~A" (x-position-slider)))
+	  (if (fneq (x-position-slider) 0.45) (snd-display "zoom focus middle .1: ~A" (x-position-slider)))
 	  (set! (x-zoom-slider) .9)
-	  (if (fneq (x-position-slider) 0.05) (snd-display ";zoom focus middle .9: ~A" (x-position-slider)))
+	  (if (fneq (x-position-slider) 0.05) (snd-display "zoom focus middle .9: ~A" (x-position-slider)))
 	  (set! (zoom-focus-style) zoom-focus-left) 
 	  (set! (x-zoom-slider) .1)
-	  (if (fneq (x-position-slider) 0.05) (snd-display ";zoom focus left .1: ~A" (x-position-slider))))
+	  (if (fneq (x-position-slider) 0.05) (snd-display "zoom focus left .1: ~A" (x-position-slider))))
 	
 	(close-sound ind))
       
@@ -6774,7 +6774,7 @@ EDITS: 5
 			(mndiff (abs (- mn (mins e-bin)))))
 		    (when (or (> mxdiff diff)
 			      (> mndiff diff))
-		      (snd-display ";~A: peak-env-equal? [bin ~D of ~D]: (~,4F to ~,4F), diff: ~,5F" 
+		      (snd-display "~A: peak-env-equal? [bin ~D of ~D]: (~,4F to ~,4F), diff: ~,5F" 
 				   name
 				   e-bin e-size
 				   mn mx
@@ -6784,11 +6784,11 @@ EDITS: 5
 	(let ((mx (maxamp ind 0))
 	      (e0 (channel-amp-envs ind 0)))
 	  (if (null? e0)
-	      (snd-display ";no amp env data")
+	      (snd-display "no amp env data")
 	      (let ((mx1 (float-vector-peak (car e0)))
 		    (mx2 (float-vector-peak (cadr e0))))
 		(if (fneq mx (max mx1 mx2))
-		    (snd-display ";amp env max: ~A ~A ~A" mx mx1 mx2))
+		    (snd-display "amp env max: ~A ~A ~A" mx mx1 mx2))
 		(peak-env-equal? "straight peak" ind e0 .0001)
 		(scale-by 3.0)
 		(let ((e1 (channel-amp-envs ind 0 1)))
@@ -6796,10 +6796,10 @@ EDITS: 5
 			(mx4 (float-vector-peak (cadr e1))))
 		    (if (or (fneq (* 3.0 mx1) mx3)
 			    (fneq (* 3.0 mx2) mx4))
-			(snd-display ";3.0 amp env max: ~A ~A ~A ~A" mx1 mx2 mx3 mx4)))
+			(snd-display "3.0 amp env max: ~A ~A ~A ~A" mx1 mx2 mx3 mx4)))
 		  (peak-env-equal? "scaled peak" ind e1 .0001))
 		(if (fneq (maxamp ind 0) (* 3 mx)) 
-		    (snd-display ";maxamp after scale: ~A ~A" mx (maxamp ind 0)))
+		    (snd-display "maxamp after scale: ~A ~A" mx (maxamp ind 0)))
 		(undo)
 		(set! (selection-member? #t) #f)
 		(set! (selection-member? ind 0) #t)
@@ -6811,39 +6811,39 @@ EDITS: 5
 			(mx4 (float-vector-peak (cadr e1))))
 		    (if (or (fneq (* 3.0 mx1) mx3)
 			    (fneq (* 3.0 mx2) mx4))
-			(snd-display ";selection 3.0 amp env max: ~A ~A ~A ~A" mx1 mx2 mx3 mx4))
+			(snd-display "selection 3.0 amp env max: ~A ~A ~A ~A" mx1 mx2 mx3 mx4))
 		    (if (fneq (maxamp ind 0) (* 3 mx)) 
-			(snd-display ";maxamp after selection scale: ~A ~A" mx (maxamp ind 0))))
+			(snd-display "maxamp after selection scale: ~A ~A" mx (maxamp ind 0))))
 		  (peak-env-equal? "selection peak" ind e1 .0001))
 		(map-channel abs)
 		(let ((e1 (channel-amp-envs ind 0 2)))
 		  (let ((mx3 (float-vector-peak (car e1)))
 			(mx4 (float-vector-peak (cadr e1))))
 		    (if (fneq (* 3.0 mx2) mx4)
-			(snd-display ";abs selection 3.0 amp env max: ~A ~A ~A ~A" mx1 mx2 mx3 mx4))
+			(snd-display "abs selection 3.0 amp env max: ~A ~A ~A ~A" mx1 mx2 mx3 mx4))
 		    (if (fneq (maxamp ind 0) (* 3 mx)) 
-			(snd-display ";maxamp after abs selection scale: ~A ~A" mx (maxamp ind 0)))
+			(snd-display "maxamp after abs selection scale: ~A ~A" mx (maxamp ind 0)))
 		    (if (ffneq mx3 0.03)
-			(snd-display ";abs max: ~A ~A" mx3 mx4)))
+			(snd-display "abs max: ~A ~A" mx3 mx4)))
 		  (peak-env-equal? "map-channel peak" ind e1 .0001))
 		(delete-samples 10000 5000)
 		(let ((e1 (channel-amp-envs ind 0)))
 		  (let ((mx3 (float-vector-peak (car e1)))
 			(mx4 (float-vector-peak (cadr e1))))
 		    (if (fneq (* 3.0 mx2) mx4)
-			(snd-display ";abs selection 3.0 amp env max: ~A ~A ~A ~A" mx1 mx2 mx3 mx4))
+			(snd-display "abs selection 3.0 amp env max: ~A ~A ~A ~A" mx1 mx2 mx3 mx4))
 		    (if (fneq (maxamp ind 0) (* 3 mx)) 
-			(snd-display ";maxamp after abs selection scale: ~A ~A" mx (maxamp ind 0)))
+			(snd-display "maxamp after abs selection scale: ~A ~A" mx (maxamp ind 0)))
 		    (if (ffneq mx3 0.03)
-			(snd-display ";abs max: ~A ~A" mx3 mx4)))
+			(snd-display "abs max: ~A ~A" mx3 mx4)))
 		  (peak-env-equal? "delete peak" ind e1 .0001))
 		(scale-selection-by -.333)
 		(let ((e1 (channel-amp-envs ind 0 4)))
 		  (let ((mx3 (float-vector-peak (car e1))))
 		    (if (fneq (maxamp ind 0) mx)
-			(snd-display ";maxamp after minus abs selection scale: ~A ~A" mx (maxamp ind 0)))
+			(snd-display "maxamp after minus abs selection scale: ~A ~A" mx (maxamp ind 0)))
 		    (if (fneq (maxamp ind 0) mx3)
-			(snd-display ";mx3 maxamp after minus abs selection scale: ~A ~A" mx mx3)))
+			(snd-display "mx3 maxamp after minus abs selection scale: ~A ~A" mx mx3)))
 		  (peak-env-equal? "scale-selection peak" ind e1 .0001)))))
 	
 	(revert-sound ind)
@@ -6942,8 +6942,8 @@ EDITS: 5
 	       (do ((ln (- (length mn) 4))
 		    (i 0 (+ i 1)))
 		   ((= i ln))
-		 (when (< (mn i) 0.5) (snd-display ";peak min: ~A ~A" (mn i) i) (break #f))
-		 (when (< (mx i) 0.5) (snd-display ";peak max: ~A ~A" (mx i) i) (break #f)))))))
+		 (when (< (mn i) 0.5) (snd-display "peak min: ~A ~A" (mn i) i) (break #f))
+		 (when (< (mx i) 0.5) (snd-display "peak max: ~A ~A" (mx i) i) (break #f)))))))
 	(undo 2)
 	(map-channel (lambda (y) -1.0) 0 50001)
 	(ramp-channel 0.5 1.0 1000 4000)
@@ -6955,8 +6955,8 @@ EDITS: 5
 		 (i 0 (+ i 1)))
 		((or (not happy) 
 		     (= i ln)))
-	      (when (> (mn i) -0.5) (snd-display ";1 peak min: ~A ~A" (mn i) i) (set! happy #f))
-	      (when (> (mx i) -0.5) (snd-display ";1 peak max: ~A ~A" (mx i) i) (set! happy #f)))))
+	      (when (> (mn i) -0.5) (snd-display "1 peak min: ~A ~A" (mn i) i) (set! happy #f))
+	      (when (> (mx i) -0.5) (snd-display "1 peak max: ~A ~A" (mx i) i) (set! happy #f)))))
 	(close-sound ind))
       
       (let ((index (new-sound "fmv.snd" 2 22050 mus-ldouble mus-next "channel tests")))
@@ -6973,7 +6973,7 @@ EDITS: 5
 		((= i chns))
 	      (map-channel (lambda (n) 0.0) 0 len index i)
 	      (if (scan-channel (lambda (n) (> (abs n) .001)) 0 len index i)
-		  (snd-display ";init scan: ~A?" (scan-channel (lambda (n) (> (abs n) 0.001))))))
+		  (snd-display "init scan: ~A?" (scan-channel (lambda (n) (> (abs n) 0.001))))))
 	    ;; now it's cleared
 	    (do ((i 0 (+ i 1)))
 		((= i chns))
@@ -6984,9 +6984,9 @@ EDITS: 5
 		(let ((vi (channel->float-vector 0 len index j)))
 		  (if (= j i)
 		      (if (not (mus-arrays-equal? vi val))
-			  (snd-display ";chan func: ~A ~A" vi val))
+			  (snd-display "chan func: ~A ~A" vi val))
 		      (if (scan-channel (lambda (n) (> (abs n) .001)) 0 len index j)
-			  (snd-display ";chan func leaks? ~A ~A: ~A" i j (scan-channel (lambda (n) (> (abs n) 0.001)) 0 len index j))))))
+			  (snd-display "chan func leaks? ~A ~A: ~A" i j (scan-channel (lambda (n) (> (abs n) 0.001)) 0 len index j))))))
 	      (map-channel (lambda (n) 0.0) 0 len index i))
 	    (do ((i 0 (+ i 1)))
 		((= i chns))
@@ -6999,9 +6999,9 @@ EDITS: 5
 		  (let ((vi (channel->float-vector 0 len index j)))
 		    (if (= j i)
 			(if (not (mus-arrays-equal? vi val))
-			    (snd-display ";ed chan func: ~A ~A" vi val))
+			    (snd-display "ed chan func: ~A ~A" vi val))
 			(if (scan-channel (lambda (n) (> (abs n) 0.001)) 0 len index j)
-			    (snd-display ";ed chan func leaks? ~A ~A ~A: ~A" i j ed (scan-channel (lambda (n) (> (abs n) 0.001)) 0 len index j))))))
+			    (snd-display "ed chan func leaks? ~A ~A ~A: ~A" i j ed (scan-channel (lambda (n) (> (abs n) 0.001)) 0 len index j))))))
 		(map-channel (lambda (n) 0.0) 0 len index i)))
 	    (let* ((beg (floor (/ len 3)))
 		   (dur beg)
@@ -7021,9 +7021,9 @@ EDITS: 5
 		  (let ((vi (channel->float-vector 0 len index j)))
 		    (if (= j i)
 			(if (not (mus-arrays-equal? vi val))
-			    (snd-display ";chan func n: ~A ~A" vi val))
+			    (snd-display "chan func n: ~A ~A" vi val))
 			(if (scan-channel (lambda (n) (> (abs n) 0.001)) 0 len index j)
-			    (snd-display ";dur chan func leaks? ~A ~A: ~A" i j (scan-channel (lambda (n) (> (abs n) 0.001)) 0 len index j))))))
+			    (snd-display "dur chan func leaks? ~A ~A: ~A" i j (scan-channel (lambda (n) (> (abs n) 0.001)) 0 len index j))))))
 		(map-channel (lambda (n) 0.0) 0 len index i)))))
 	
 	(insert-silence 0 10 index 0)
@@ -7140,20 +7140,20 @@ EDITS: 5
 	  (for-each forget-region (regions))
 	  (load (string-append cwd "s61.scm"))
 	  (if (not (equal? old-reglen (map region-framples (regions))))
-	      (snd-display ";region-framples after save: ~A ~A" old-reglen (map region-framples (regions))))
+	      (snd-display "region-framples after save: ~A ~A" old-reglen (map region-framples (regions))))
 	  (catch #t
 	    (lambda ()
 	      (for-each (lambda (n data)
 			  (if (not (mus-arrays-equal? data (region->float-vector n 0 10)))
-			      (snd-display ";region after save ~A: ~A ~A" n data (region->float-vector n 0 10))))
+			      (snd-display "region after save ~A: ~A ~A" n data (region->float-vector n 0 10))))
 			(regions)
 			regdata))
-	    (lambda args (snd-display ";region->float-vector: ~A" args)))
+	    (lambda args (snd-display "region->float-vector: ~A" args)))
 	  (set! index (find-sound "fmv.snd"))
 	  (if (not (equal? (maxamp index #t) old-max))
-	      (snd-display ";maxes: ~A ~A" (maxamp index #t) old-max))
+	      (snd-display "maxes: ~A ~A" (maxamp index #t) old-max))
 	  (if (not (member (edits index) '((275 0) (276 0))))
-	      (snd-display ";saved channel edits: ~A" (edits index)))
+	      (snd-display "saved channel edits: ~A" (edits index)))
 	  
 	  (do ((i 0 (+ i 1)))
 	      ((= i 10))
@@ -7184,29 +7184,29 @@ EDITS: 5
 		((= i 10))
 	      (set! (v i) (src s)))
 	    (if (not (mus-arrays-equal? v (channel->float-vector 0 10 index 0)))
-		(snd-display ";src-channel: ~A ~A" v (channel->float-vector 0 10 index 0)))
+		(snd-display "src-channel: ~A ~A" v (channel->float-vector 0 10 index 0)))
 	    (if (not (mus-arrays-equal? (make-float-vector 10) (channel->float-vector 0 10 index 1)))
-		(snd-display ";src-channel leaks: ~A" (channel->float-vector 0 10 index 1))))
+		(snd-display "src-channel leaks: ~A" (channel->float-vector 0 10 index 1))))
 	  (let ((tag (catch #t (lambda () (src-channel 120000.0)) (lambda args args))))
-	    (if (not (eq? (car tag) 'mus-error)) (snd-display ";src-channel crazy srate: ~A" tag)))
+	    (if (not (eq? (car tag) 'mus-error)) (snd-display "src-channel crazy srate: ~A" tag)))
 	  (let ((tag (catch #t (lambda () (filter-sound (make-snd->sample))) (lambda args args))))
-	    (if (not (eq? (car tag) 'mus-error)) (snd-display ";filter-sound + un-run gen: ~A" tag)))
+	    (if (not (eq? (car tag) 'mus-error)) (snd-display "filter-sound + un-run gen: ~A" tag)))
 	  (revert-sound index)
 	  (float-vector->channel v 0 10 index 1)
 	  (float-vector->channel v 10 10 index 1)
 	  (src-channel (make-env :envelope '(1 1 2 2) :length 21) 0 20 index 1)
 	  (if (not (mus-arrays-equal? (channel->float-vector 0 10 index 1) (float-vector 1.000 -0.000 -0.048 0.068 -0.059 0.022 0.030 -0.100 0.273 0.606)))
-	      (snd-display ";src-channel env: ~A" (channel->float-vector 0 10 index 1)))
+	      (snd-display "src-channel env: ~A" (channel->float-vector 0 10 index 1)))
 	  (if (not (mus-arrays-equal? (make-float-vector 10) (channel->float-vector 0 10 index 0)))
-	      (snd-display ";src-channel env leaks: ~A" (channel->float-vector 0 10 index 0)))
+	      (snd-display "src-channel env leaks: ~A" (channel->float-vector 0 10 index 0)))
 	  (revert-sound index)
 	  (float-vector->channel v 0 10 index 1)
 	  (float-vector->channel v 10 10 index 1)
 	  (src-channel '(1 1 2 2) 0 20 index 1) ; end is off above -- should be 19 I think
 	  (if (not (mus-arrays-equal? (channel->float-vector 0 10 index 1) (float-vector 1.000 -0.000 -0.051 0.069 -0.056 0.015 0.042 -0.117 0.320 0.568)))
-	      (snd-display ";src-channel lst: ~A" (channel->float-vector 0 10 index 1)))
+	      (snd-display "src-channel lst: ~A" (channel->float-vector 0 10 index 1)))
 	  (if (not (mus-arrays-equal? (make-float-vector 10) (channel->float-vector 0 10 index 0)))
-	      (snd-display ";src-channel lst leaks: ~A" (channel->float-vector 0 10 index 0)))
+	      (snd-display "src-channel lst leaks: ~A" (channel->float-vector 0 10 index 0)))
 	  (close-sound index)))
       
       (let ((ind (new-sound :size 100)))
@@ -7230,7 +7230,7 @@ EDITS: 5
 		   ((= i len)
 		    (if (or (> sum .01) ; depends on sinc-width I think
 			    (> mx .002))
-			(snd-display ";src-channel ~A: diff: ~A ~A~%" sr sum mx)))
+			(snd-display "src-channel ~A: diff: ~A ~A~%" sr sum mx)))
 		 (set! sum (+ sum (float-vector-ref v1 i)))))))
 	 '(0.5 0.75 1.0 1.5 2.0))
 	(close-sound ind))
@@ -7242,28 +7242,28 @@ EDITS: 5
 	(scale-sound-by 2.0)
 	(play rid0 :wait #t)
 	(let ((nv (region2float-vector rid0 0 20)))
-	  (if (not (mus-arrays-equal? rid0-data nv)) (snd-display ";deferred region after scaling:~%  ~A~%  ~A" rid0-data nv)))
+	  (if (not (mus-arrays-equal? rid0-data nv)) (snd-display "deferred region after scaling:~%  ~A~%  ~A" rid0-data nv)))
 	(let ((nv (region-to-float-vector rid0 0 20)))
-	  (if (not (mus-arrays-equal? rid0-data nv)) (snd-display ";deferred region after scaling (rs):~%  ~A~%  ~A" rid0-data nv)))
+	  (if (not (mus-arrays-equal? rid0-data nv)) (snd-display "deferred region after scaling (rs):~%  ~A~%  ~A" rid0-data nv)))
 	(undo)
 	(scale-by 4.0)
 	(play rid0 :wait #t)
 	(let ((nv (region2float-vector rid0 0 20)))
-	  (if (not (mus-arrays-equal? rid0-data nv)) (snd-display ";file region after scaling:~%  ~A~%  ~A" rid0-data nv)))
+	  (if (not (mus-arrays-equal? rid0-data nv)) (snd-display "file region after scaling:~%  ~A~%  ~A" rid0-data nv)))
 	(let ((nv (region-to-float-vector rid0 0 20)))
-	  (if (not (mus-arrays-equal? rid0-data nv)) (snd-display ";file region after scaling (rs):~%  ~A~%  ~A" rid0-data nv)))
+	  (if (not (mus-arrays-equal? rid0-data nv)) (snd-display "file region after scaling (rs):~%  ~A~%  ~A" rid0-data nv)))
 	(let* ((rid1 (make-region 2000 2020 ind 0))
 	       (rid1-data (region2float-vector rid1 0 20)))
 	  (scale-to .5)
 	  (let ((nv (region2float-vector rid1 0 20)))
-	    (if (not (mus-arrays-equal? rid1-data nv)) (snd-display ";deferred region after scale-to:~%  ~A~%  ~A" rid1-data nv)))
+	    (if (not (mus-arrays-equal? rid1-data nv)) (snd-display "deferred region after scale-to:~%  ~A~%  ~A" rid1-data nv)))
 	  (close-sound ind)
 	  (play rid0 :wait #t)
 	  (play rid1 :wait #t)
 	  (let ((nv (region2float-vector rid1 0 20)))
-	    (if (not (mus-arrays-equal? rid1-data nv)) (snd-display ";deferred region after close:~%  ~A~%  ~A" rid1-data nv)))
+	    (if (not (mus-arrays-equal? rid1-data nv)) (snd-display "deferred region after close:~%  ~A~%  ~A" rid1-data nv)))
 	  (let ((nv (region2float-vector rid0 0 20)))
-	    (if (not (mus-arrays-equal? rid0-data nv)) (snd-display ";file region after close:~%  ~A~%  ~A" rid0-data nv))))
+	    (if (not (mus-arrays-equal? rid0-data nv)) (snd-display "file region after close:~%  ~A~%  ~A" rid0-data nv))))
 	
 	(for-each
 	 (lambda (s1 L1 s2 L2)
@@ -7278,25 +7278,25 @@ EDITS: 5
 	   (let* ((rid2 (make-region))
 		  (rid20-data (region2float-vector rid2 0 L1))
 		  (rid21-data (region2float-vector rid2 1 L2)))
-	     (if (not (= (region-chans rid2) 2)) (snd-display ";region-chans of sync'd sound: ~A?" (region-chans rid2)))
+	     (if (not (= (region-chans rid2) 2)) (snd-display "region-chans of sync'd sound: ~A?" (region-chans rid2)))
 	     (swap-channels ind 0 ind 1)
 	     (let ((nv (region2float-vector rid2 0 L1)))
-	       (if (not (mus-arrays-equal? rid20-data nv)) (snd-display ";deferred region after scaling (20):~%  ~A~%  ~A" rid20-data nv)))
+	       (if (not (mus-arrays-equal? rid20-data nv)) (snd-display "deferred region after scaling (20):~%  ~A~%  ~A" rid20-data nv)))
 	     (let ((nv (region-to-float-vector rid2 0 L1)))
-	       (if (not (mus-arrays-equal? rid20-data nv)) (snd-display ";deferred region after scaling (20 rs):~%  ~A~%  ~A" rid20-data nv)))
+	       (if (not (mus-arrays-equal? rid20-data nv)) (snd-display "deferred region after scaling (20 rs):~%  ~A~%  ~A" rid20-data nv)))
 	     (let ((nv (region2float-vector rid2 1 L2)))
-	       (if (not (mus-arrays-equal? rid21-data nv)) (snd-display ";deferred region after scaling (21):~%  ~A~%  ~A" rid21-data nv)))
+	       (if (not (mus-arrays-equal? rid21-data nv)) (snd-display "deferred region after scaling (21):~%  ~A~%  ~A" rid21-data nv)))
 	     (let ((nv (region-to-float-vector rid2 1 L2)))
-	       (if (not (mus-arrays-equal? rid21-data nv)) (snd-display ";deferred region after scaling (21 rs):~%  ~A~%  ~A" rid21-data nv)))
+	       (if (not (mus-arrays-equal? rid21-data nv)) (snd-display "deferred region after scaling (21 rs):~%  ~A~%  ~A" rid21-data nv)))
 	     (close-sound ind)
 	     (let ((nv (region2float-vector rid2 0 L1)))
-	       (if (not (mus-arrays-equal? rid20-data nv)) (snd-display ";deferred region after scaling (20):~%  ~A~%  ~A" rid20-data nv)))
+	       (if (not (mus-arrays-equal? rid20-data nv)) (snd-display "deferred region after scaling (20):~%  ~A~%  ~A" rid20-data nv)))
 	     (let ((nv (region-to-float-vector rid2 0 L1)))
-	       (if (not (mus-arrays-equal? rid20-data nv)) (snd-display ";deferred region after scaling (20 rs):~%  ~A~%  ~A" rid20-data nv)))
+	       (if (not (mus-arrays-equal? rid20-data nv)) (snd-display "deferred region after scaling (20 rs):~%  ~A~%  ~A" rid20-data nv)))
 	     (let ((nv (region2float-vector rid2 1 L2)))
-	       (if (not (mus-arrays-equal? rid21-data nv)) (snd-display ";deferred region after scaling (21):~%  ~A~%  ~A" rid21-data nv)))
+	       (if (not (mus-arrays-equal? rid21-data nv)) (snd-display "deferred region after scaling (21):~%  ~A~%  ~A" rid21-data nv)))
 	     (let ((nv (region-to-float-vector rid2 1 L2)))
-	       (if (not (mus-arrays-equal? rid21-data nv)) (snd-display ";deferred region after scaling (21 rs):~%  ~A~%  ~A" rid21-data nv)))
+	       (if (not (mus-arrays-equal? rid21-data nv)) (snd-display "deferred region after scaling (21 rs):~%  ~A~%  ~A" rid21-data nv)))
 	     ))
 	 '(2000 2000 2000 0 2000 0 2000)
 	 '(20 10 20 20 20 10 20)
@@ -7310,14 +7310,14 @@ EDITS: 5
 		     (lambda ()
 		       (save-sound ind))
 		     (lambda args args))))
-	  (if (sound? val) (snd-display ";save-sound read-only: ~A" val))
-	  (if (not (equal? (edits ind) '(1 0))) (snd-display ";read-only ignored? ~A" (edits ind))))
+	  (if (sound? val) (snd-display "save-sound read-only: ~A" val))
+	  (if (not (equal? (edits ind) '(1 0))) (snd-display "read-only ignored? ~A" (edits ind))))
 	(set! (read-only ind) #f)
 	(revert-sound ind)
 	(let ((tag (catch #t
 		     (lambda () (save-sound ind))
 		     (lambda args args))))
-	  (if (not (sound? tag)) (snd-display ";save-sound read-write: ~A" tag)))
+	  (if (not (sound? tag)) (snd-display "save-sound read-write: ~A" tag)))
 	(for-each (lambda (arg) (key arg 4)) (vector (char->integer #\j) (char->integer #\-) (char->integer #\j) 
 						     (char->integer #\j) (char->integer #\x)))
 	(key (char->integer #\c) 0)
@@ -7340,13 +7340,13 @@ EDITS: 5
 	(set! (selection-framples ns 0) 300)
 	(delete-selection-and-smooth)
 	(if (not (= (framples ns 0) 700))
-	    (snd-display ";delete-selection-and-smooth framples: ~A" (framples ns 0)))
+	    (snd-display "delete-selection-and-smooth framples: ~A" (framples ns 0)))
 	(if (fneq (sample 167 ns 0) 0.167) 
-	    (snd-display ";delete-selection-and-smooth 167: ~A" (sample 167 ns 0)))
+	    (snd-display "delete-selection-and-smooth 167: ~A" (sample 167 ns 0)))
 	(if (fneq (sample 234 ns 0) 0.534) 
-	    (snd-display ";delete-selection-and-smooth 234: ~A" (sample 234 ns 0)))
+	    (snd-display "delete-selection-and-smooth 234: ~A" (sample 234 ns 0)))
 	(if (fneq (sample 210 ns 0) 0.406) 
-	    (snd-display ";delete-selection-and-smooth 210: ~A" (sample 210 ns 0)))
+	    (snd-display "delete-selection-and-smooth 210: ~A" (sample 210 ns 0)))
 	(let ((v1 (channel->float-vector)))
 	  (let ((maxdiff 0.0)
 		(mindiff 10.0)
@@ -7358,9 +7358,9 @@ EDITS: 5
 		(set! maxdiff (max maxdiff diff))
 		(set! mindiff (min mindiff diff))))
 	    (if (< mindiff .0009)
-		(snd-display ";delete-selection-and-smooth min diff: ~A" mindiff))
+		(snd-display "delete-selection-and-smooth min diff: ~A" mindiff))
 	    (if (> maxdiff .007)
-		(snd-display ";delete-selection-and-smooth max diff: ~A" maxdiff))))
+		(snd-display "delete-selection-and-smooth max diff: ~A" maxdiff))))
 	(close-sound ns))
       
       (let ((ns (new-sound)))
@@ -7372,13 +7372,13 @@ EDITS: 5
 	  (set! (v i) x))
 	(delete-samples-and-smooth 200 300 ns 0)
 	(if (not (= (framples ns 0) 700))
-	    (snd-display ";delete-samples-and-smooth framples: ~A" (framples ns 0)))
+	    (snd-display "delete-samples-and-smooth framples: ~A" (framples ns 0)))
 	(if (fneq (sample 167 ns 0) 0.167) 
-	    (snd-display ";delete-samples-and-smooth 167: ~A" (sample 167 ns 0)))
+	    (snd-display "delete-samples-and-smooth 167: ~A" (sample 167 ns 0)))
 	(if (fneq (sample 234 ns 0) 0.534) 
-	    (snd-display ";delete-samples-and-smooth 234: ~A" (sample 234 ns 0)))
+	    (snd-display "delete-samples-and-smooth 234: ~A" (sample 234 ns 0)))
 	(if (fneq (sample 210 ns 0) 0.406) 
-	    (snd-display ";delete-samples-and-smooth 210: ~A" (sample 210 ns 0)))
+	    (snd-display "delete-samples-and-smooth 210: ~A" (sample 210 ns 0)))
 	(let ((v1 (channel->float-vector)))
 	  (let ((maxdiff 0.0)
 		(mindiff 10.0)
@@ -7390,9 +7390,9 @@ EDITS: 5
 		(set! maxdiff (max maxdiff diff))
 		(set! mindiff (min mindiff diff))))
 	    (if (< mindiff .0009)
-		(snd-display ";delete-samples-and-smooth min diff: ~A" mindiff))
+		(snd-display "delete-samples-and-smooth min diff: ~A" mindiff))
 	    (if (> maxdiff .007)
-		(snd-display ";delete-samples-and-smooth max diff: ~A" maxdiff))))
+		(snd-display "delete-samples-and-smooth max diff: ~A" maxdiff))))
 	(close-sound ns))
       
       (let ((old-hook (hook-functions initial-graph-hook)))
@@ -7404,7 +7404,7 @@ EDITS: 5
 		  (fr (framples ns 0)))
 	      (when (and with-gui
 			 (not (equal? (list fr ls rs) '(220501 0 220501))))
-		(snd-display ";show-full-duration 1: ~A" (list fr ls rs)))
+		(snd-display "show-full-duration 1: ~A" (list fr ls rs)))
 	      (close-sound ns)))
 	  (set! *show-full-duration* #t)
 	  (let-temporarily ((*initial-beg* 0.0)
@@ -7415,7 +7415,7 @@ EDITS: 5
 		    (fr (framples ns 0)))
 		(when (and with-gui
 			   (not (equal? (list fr ls rs) '(220501 0 220501))))
-		  (snd-display ";show-full-duration 2: ~A" (list fr ls rs)))
+		  (snd-display "show-full-duration 2: ~A" (list fr ls rs)))
 		(close-sound ns)))
 	    (set! *show-full-duration* #f)
 	    (set! *initial-beg* 0.0)
@@ -7425,7 +7425,7 @@ EDITS: 5
 		    (rs (right-sample ns 0))
 		    (fr (framples ns 0)))
 		(if (not (equal? (list fr ls rs) '(220501 0 4410)))
-		    (snd-display ";show-full-duration 3: ~A" (list fr ls rs)))
+		    (snd-display "show-full-duration 3: ~A" (list fr ls rs)))
 		(close-sound ns)))
 	    (set! *initial-beg* 2.0)
 	    (set! *initial-dur* 1.0)
@@ -7434,7 +7434,7 @@ EDITS: 5
 		    (rs (right-sample ns 0))
 		    (fr (framples ns 0)))
 		(if (not (equal? (list fr ls rs) '(220501 44100 66150)))
-		    (snd-display ";show-full-duration 4: ~A" (list fr ls rs)))	  
+		    (snd-display "show-full-duration 4: ~A" (list fr ls rs)))	  
 		(close-sound ns))))
 	  (set! (hook-functions initial-graph-hook) old-hook)))
       
@@ -7442,7 +7442,7 @@ EDITS: 5
       (let ((ns (open-sound "1a.snd")))
 	(if (or (fneq (car (y-bounds ns 0)) -1.0)
 		(fneq (cadr (y-bounds ns 0)) 1.0))
-	    (snd-display ";show-full-range 1a: ~A" (y-bounds ns 0)))
+	    (snd-display "show-full-range 1a: ~A" (y-bounds ns 0)))
 	(close-sound ns))
       (with-sound ("test.snd" :clipped #f :to-snd #f)
 	(fm-violin 0 1 440 3.5))
@@ -7450,28 +7450,28 @@ EDITS: 5
 	(when (and with-gui
 		   (or (fneq (car (y-bounds ns 0)) -3.5)
 		       (fneq (cadr (y-bounds ns 0)) 3.5)))
-	  (snd-display ";show-full-range 3.5 test: ~A" (y-bounds ns 0)))
+	  (snd-display "show-full-range 3.5 test: ~A" (y-bounds ns 0)))
 	(with-sound ("test.snd" :clipped #f :to-snd #f)
 	  (fm-violin 0 1 440 1.5))
 	(update-sound ns)
 	(when (and with-gui
 		   (or (fneq (car (y-bounds ns 0)) -1.5)
 		       (fneq (cadr (y-bounds ns 0)) 1.5)))
-	  (snd-display ";show-full-range 1.5 test: ~A" (y-bounds ns 0)))
+	  (snd-display "show-full-range 1.5 test: ~A" (y-bounds ns 0)))
 	(close-sound ns))
       (set! *show-full-range* #f)
       
       (let-temporarily ((*sync-style* sync-none))
 	(let ((ns (open-sound "2.snd")))
 	  (if (not (= (sync ns) 0))
-	      (snd-display ";sync-none open: ~A" (sync ns)))
+	      (snd-display "sync-none open: ~A" (sync ns)))
 	  (set! (sync ns) 1)
 	  (set! *sync-style* sync-by-sound)
 	  (let ((ns1 (open-sound "1a.snd")))
 	    (if (or ;(= (sync ns1) 0) ; this default changed 12.9
 		 (= (sync ns1) 1)
 		 (not (= (sync ns) 1)))
-		(snd-display ";sync-by-sound open: ~A" (list (sync ns) (sync ns1))))
+		(snd-display "sync-by-sound open: ~A" (list (sync ns) (sync ns1))))
 	    (close-sound ns1))
 	  (close-sound ns)))
       
@@ -7480,8 +7480,8 @@ EDITS: 5
 	(let ((tag (catch #t
 		     (lambda () (save-sound ind))
 		     (lambda args args))))
-	  (if (integer? tag) (snd-display ";save-viewed-sound: ~A" tag))
-	  (if (not (equal? (edits ind) '(1 0))) (snd-display ";view read-only ignored? ~A" (edits ind))))
+	  (if (integer? tag) (snd-display "save-viewed-sound: ~A" tag))
+	  (if (not (equal? (edits ind) '(1 0))) (snd-display "view read-only ignored? ~A" (edits ind))))
 	(close-sound ind))
       
       (let ((ind (new-sound "test.snd" 1 22050 mus-ldouble mus-next)))
@@ -7499,7 +7499,7 @@ EDITS: 5
 	   (map-channel (lambda (y) 1.0))
 	   (env-sound '(0 0 1 1 2 0))
 	   (let ((reader (make-sampler (- (framples) 1) ind 0 -1)))
-	     (if (not (= (sampler-position reader) (- (framples) 1))) (snd-display ";sampler-position: ~A" (sampler-position reader)))
+	     (if (not (= (sampler-position reader) (- (framples) 1))) (snd-display "sampler-position: ~A" (sampler-position reader)))
 	     (map-channel (lambda (y) (read-sample reader))))
 	   (let ((e (make-env '(0 0 1 1 2 0) :length (+ 1 dur)))
 		 (len (framples)))
@@ -7578,17 +7578,17 @@ EDITS: 5
 	  (let ((samp (sample 1000)))
 	    (set! (cursor ind 0) 1000)
 	    (if (fneq (sample) samp)
-		(snd-display ";sample no args: ~A ~A" (sample) samp)))
+		(snd-display "sample no args: ~A ~A" (sample) samp)))
 	  (set! val (my-scan-channel (lambda (y) (> y .1))))
 	  (if (not (equal? val '(#t 4423)))
-	      (snd-display ";my-scan-chan: ~A" val))
+	      (snd-display "my-scan-chan: ~A" val))
 	  (set! val (scan-again))
 	  (if (not (equal? val '(#t 4463)))
-	      (snd-display ";scan-again: ~A" val))
+	      (snd-display "scan-again: ~A" val))
 	  (set! (cursor) 1000)
 	  (set! (sample) .5)
 	  (if (fneq (sample 1000) .5)
-	      (snd-display ";set sample no arg: ~A ~A" (sample 1000) (sample 0)))
+	      (snd-display "set sample no arg: ~A ~A" (sample 1000) (sample 0)))
 	  (close-sound ind)))
       
       ;; edit-menu.scm tests
@@ -7596,20 +7596,20 @@ EDITS: 5
 	(let ((ind (view-sound "oboe.snd")))
 	  (make-selection 1000 1999 ind 0)
 	  (let ((newsnd (selection->new)))
-	    (if (not (sound? newsnd)) (snd-display ";selection->new -> ~A" newsnd))
-	    (if (not (= (framples newsnd 0) 1000)) (snd-display ";selection->new framples: ~A" (framples newsnd 0)))
-	    (if (not (equal? (edits ind 0) '(0 0))) (snd-display ";selection->new edited original? ~A" (edits ind 0)))
+	    (if (not (sound? newsnd)) (snd-display "selection->new -> ~A" newsnd))
+	    (if (not (= (framples newsnd 0) 1000)) (snd-display "selection->new framples: ~A" (framples newsnd 0)))
+	    (if (not (equal? (edits ind 0) '(0 0))) (snd-display "selection->new edited original? ~A" (edits ind 0)))
 	    (let ((newfile (file-name newsnd)))
 	      (close-sound newsnd)
 	      (delete-file newfile)
 	      (mus-sound-forget newfile)))
 	  (make-selection 1000 1999 ind 0)
 	  (let ((newsnd (cut-selection->new)))
-	    (if (not (sound? newsnd)) (snd-display ";cut-selection->new -> ~A" newsnd))
-	    (if (not (= (framples newsnd 0) 1000)) (snd-display ";cut-selection->new framples: ~A" (framples newsnd 0)))
-	    (if (not (equal? (edits ind 0) '(1 0))) (snd-display ";cut-selection->new did not edit original? ~A" (edits ind 0)))
+	    (if (not (sound? newsnd)) (snd-display "cut-selection->new -> ~A" newsnd))
+	    (if (not (= (framples newsnd 0) 1000)) (snd-display "cut-selection->new framples: ~A" (framples newsnd 0)))
+	    (if (not (equal? (edits ind 0) '(1 0))) (snd-display "cut-selection->new did not edit original? ~A" (edits ind 0)))
 	    (if (not (= (framples ind 0) (- (framples ind 0 0) 1000))) 
-		(snd-display ";cut-selection->new cut: ~A ~A" (framples ind 0) (- (framples ind 0 0) 1000)))
+		(snd-display "cut-selection->new cut: ~A ~A" (framples ind 0) (- (framples ind 0 0) 1000)))
 	    (undo 1 ind 0)
 	    (let ((newfile (file-name newsnd)))
 	      (close-sound newsnd)
@@ -7618,28 +7618,28 @@ EDITS: 5
 	  (make-selection 1000 1999 ind 0)
 	  (append-selection)
 	  (if (not (= (framples ind 0) (+ (framples ind 0 0) 1000)))
-	      (snd-display ";append-selection: ~A ~A" (framples ind 0) (framples ind 0 0)))
+	      (snd-display "append-selection: ~A ~A" (framples ind 0) (framples ind 0 0)))
 	  (append-sound "oboe.snd")
 	  (if (not (= (framples ind 0) (+ (* 2 (framples ind 0 0)) 1000)))
-	      (snd-display ";append-sound: ~A ~A" (framples ind 0) (framples ind 0 0)))
+	      (snd-display "append-sound: ~A ~A" (framples ind 0) (framples ind 0 0)))
 	  (revert-sound ind)
 	  (let ((m1 (add-mark 1000))
 		(m2 (add-mark 12000)))
 	    (trim-front)
-	    (if (not (equal? (edits ind 0) '(1 0))) (snd-display ";time-front did not edit original? ~A" (edits ind 0)))
+	    (if (not (equal? (edits ind 0) '(1 0))) (snd-display "time-front did not edit original? ~A" (edits ind 0)))
 	    (if (not (= (framples ind 0) (- (framples ind 0 0) 1000))) 
-		(snd-display ";trim-front: ~A ~A" (framples ind 0) (- (framples ind 0 0) 1000)))
-	    (if (not (= (mark-sample m2) 11000)) (snd-display ";trim-front m2: ~A" (mark-sample m2)))
+		(snd-display "trim-front: ~A ~A" (framples ind 0) (- (framples ind 0 0) 1000)))
+	    (if (not (= (mark-sample m2) 11000)) (snd-display "trim-front m2: ~A" (mark-sample m2)))
 	    (undo 1 ind 0)
 	    (trim-back)
-	    (if (not (equal? (edits ind 0) '(1 0))) (snd-display ";time-back did not edit original? ~A" (edits ind 0)))
-	    (if (not (= (framples ind 0) 12001)) (snd-display ";trim-back: ~A" (framples ind 0)))
-	    (if (not (= (mark-sample m1) 1000)) (snd-display ";trim-back m1: ~A" (mark-sample m1))))
+	    (if (not (equal? (edits ind 0) '(1 0))) (snd-display "time-back did not edit original? ~A" (edits ind 0)))
+	    (if (not (= (framples ind 0) 12001)) (snd-display "trim-back: ~A" (framples ind 0)))
+	    (if (not (= (mark-sample m1) 1000)) (snd-display "trim-back m1: ~A" (mark-sample m1))))
 	  (undo 1 ind 0)
 	  (add-mark 22000)
 	  (crop)
-	  (if (not (equal? (edits ind 0) '(1 0))) (snd-display ";crop did not edit original? ~A" (edits ind 0)))
-	  (if (not (= (framples ind 0) 21001)) (snd-display ";crop: ~A" (framples ind 0)))
+	  (if (not (equal? (edits ind 0) '(1 0))) (snd-display "crop did not edit original? ~A" (edits ind 0)))
+	  (if (not (= (framples ind 0) 21001)) (snd-display "crop: ~A" (framples ind 0)))
 	  (undo 1 ind 0)
 	  (close-sound ind)))
       
@@ -7650,13 +7650,13 @@ EDITS: 5
 	(check-env-vals "simple scaler" (make-env '(0 1 1 1) :scaler .5 :length 1001))
 	(if (= (edit-position) 2)
 	    (undo)
-	    (snd-display ";env+scl was no-op"))
+	    (snd-display "env+scl was no-op"))
 	(env-channel (make-env '(0 1 1 1) :offset .5 :length 1001))
 	(check-maxamp ind 1.5 "simple offset")
 	(check-env-vals "simple offset" (make-env '(0 1 1 1) :offset .5 :length 1001))
 	(if (= (edit-position) 2)
 	    (undo)
-	    (snd-display ";env+offset was no-op"))
+	    (snd-display "env+offset was no-op"))
 	(env-channel (make-env '(0 0 1 1 2 0) :offset .5 :scaler 2.0 :length 1001))
 	(check-maxamp ind 2.5 "off+scl")
 	(check-env-vals "off+scl" (make-env '(0 0 1 1 2 0) :offset .5 :scaler 2.0 :length 1001))
@@ -7665,7 +7665,7 @@ EDITS: 5
 	(check-maxamp ind 1.5 "off+scl #2")
 	(let ((mx -12.0))
 	  (scan-channel (lambda (y) (not (set! mx (max mx y)))))
-	  (if (fneq mx 0.5) (snd-display ";non abs max: ~A (correct: 0.5)" mx)))
+	  (if (fneq mx 0.5) (snd-display "non abs max: ~A (correct: 0.5)" mx)))
 	(check-env-vals "off+scl #2" (make-env '(0 -0.5 1 0 2 -1) :offset .5 :scaler 2.0 :length 1001))
 	(undo)
 	(env-sound '(0 .5 1 .75 2 .25) 0 (framples) 32.0)
@@ -7684,7 +7684,7 @@ EDITS: 5
 	    ((= i 20))
 	  (set! (data i) (hilbert-transform hlb (if (= i 0) 1.0 0.0))))
 	(if (not (mus-arrays-equal? data (float-vector 0.0 -0.010 0.0 -0.046 0.0 -0.152 0.0 -0.614 0.0 0.614 0.0 0.152 0.0 0.046 0.0 0.010 0.0 0.0 0.0 0.0)))
-	    (snd-display ";hilbert-transform 8 impulse response: ~A" data)))
+	    (snd-display "hilbert-transform 8 impulse response: ~A" data)))
       
       (let ((hlb (make-hilbert-transform 7))
 	    (data (make-float-vector 20)))
@@ -7692,7 +7692,7 @@ EDITS: 5
 	    ((= i 20))
 	  (set! (data i) (hilbert-transform hlb (if (= i 0) 1.0 0.0))))
 	(if (not (mus-arrays-equal? data (float-vector -0.007 0.0 -0.032 0.0 -0.136 0.0 -0.608 0.0 0.608 0.0 0.136 0.0 0.032 0.0 0.007 0.0 0.0 0.0 0.0 0.0)))
-	    (snd-display ";hilbert-transform 7 impulse response: ~A" data)))
+	    (snd-display "hilbert-transform 7 impulse response: ~A" data)))
       
       (let ((ind (new-sound "test.snd")))
 	(pad-channel 0 1000)
@@ -7702,20 +7702,20 @@ EDITS: 5
 	  (do ((i 0 (+ i 1))) ((= i 4)) (map-channel (lambda (y) (hilbert-transform h y)))))
 	;; now ideally we'd be back to an impulse
 	(if (> (abs (- (sample 500) .98)) .01)
-	    (snd-display ";hilbert impulse: ~A" (sample 500)))
+	    (snd-display "hilbert impulse: ~A" (sample 500)))
 	(set! (sample 500) 0.0)
 	(if (> (maxamp ind 0) .02)
-	    (snd-display ";hilbert sidelobes: ~A" (maxamp ind 0)))
+	    (snd-display "hilbert sidelobes: ~A" (maxamp ind 0)))
 	(scale-channel 0.0)
 	(set! (sample 100) 1.0)
 	
 	(let ((h (make-hilbert-transform 101)))
 	  (do ((i 0 (+ i 1))) ((= i 4)) (map-channel (lambda (y) (hilbert-transform h y)))))
 	(if (> (abs (- (sample 504) .98)) .01)
-	    (snd-display ";hilbert 101 impulse: ~A: ~A" (sample 504) (channel->float-vector 498 10)))
+	    (snd-display "hilbert 101 impulse: ~A: ~A" (sample 504) (channel->float-vector 498 10)))
 	(set! (sample 504) 0.0)
 	(if (> (maxamp ind 0) .02)
-	    (snd-display ";hilbert 101 sidelobes: ~A" (maxamp ind 0)))
+	    (snd-display "hilbert 101 sidelobes: ~A" (maxamp ind 0)))
 	(revert-sound)
 	
 	(pad-channel 0 1000)
@@ -7724,19 +7724,19 @@ EDITS: 5
 	      (hi (make-highpass (* .1 pi) 20)))
 	  (map-channel (lambda (y) (+ (lowpass lo y) (highpass hi y)))))
 	(if (fneq (sample 120) 1.0)
-	    (snd-display ";lowpass+highpass impulse: ~A" (sample 120)))
+	    (snd-display "lowpass+highpass impulse: ~A" (sample 120)))
 	(set! (sample 120) 0.0)
 	(if (fneq (maxamp ind 0) 0.0)
-	    (snd-display ";lowpass+highpass sidelobes: ~A" (maxamp ind 0)))
+	    (snd-display "lowpass+highpass sidelobes: ~A" (maxamp ind 0)))
 	(undo 2)
 	(let ((lo (make-bandpass (* .1 pi) (* .2 pi) 20))
 	      (hi (make-bandstop (* .1 pi) (* .2 pi) 20)))
 	  (map-channel (lambda (y) (+ (bandpass lo y) (bandstop hi y)))))
 	(if (fneq (sample 120) 1.0)
-	    (snd-display ";bandpass+bandstop impulse: ~A" (sample 120)))
+	    (snd-display "bandpass+bandstop impulse: ~A" (sample 120)))
 	(set! (sample 120) 0.0)
 	(if (fneq (maxamp ind 0) 0.0)
-	    (snd-display ";bandpass+bandstop sidelobes: ~A" (maxamp ind 0)))
+	    (snd-display "bandpass+bandstop sidelobes: ~A" (maxamp ind 0)))
 	(close-sound ind))
       
       (let ((ind (new-sound "test.snd")))
@@ -7751,7 +7751,7 @@ EDITS: 5
 	      (let ((data1 (channel->float-vector)))
 		(float-vector-subtract! data data1)
 		(if (> (float-vector-peak data) .00001)
-		    (snd-display ";fir-filter 2: ~A" (float-vector-peak data))))
+		    (snd-display "fir-filter 2: ~A" (float-vector-peak data))))
 	      (undo))))
 	(close-sound ind))
       
@@ -7772,7 +7772,7 @@ EDITS: 5
 	       (f2)
 	       (let ((v2 (channel->float-vector 0 100 ind 0)))
 		 (if (not (mus-arrays-equal? v1 v2))
-		     (snd-display ";env reordering test ~A:~%; ~A~%; ~A" name v1 v2))
+		     (snd-display "env reordering test ~A:~%; ~A~%; ~A" name v1 v2))
 		 (set! (edit-position ind 0) edpos)))
 	     (if try-scale
 		 (begin
@@ -7784,7 +7784,7 @@ EDITS: 5
 		     (scale-by 2.0)
 		     (let ((v2 (channel->float-vector 0 100 ind 0)))
 		       (if (not (mus-arrays-equal? v1 v2))
-			   (snd-display ";scaled (2) env reordering test ~A:~%; ~A~%; ~A" name v1 v2))
+			   (snd-display "scaled (2) env reordering test ~A:~%; ~A~%; ~A" name v1 v2))
 		       (set! (edit-position ind 0) edpos)))
 		   (f1)
 		   (scale-by .5)
@@ -7794,7 +7794,7 @@ EDITS: 5
 		     (f2)
 		     (let ((v2 (channel->float-vector 0 100 ind 0)))
 		       (if (not (mus-arrays-equal? v1 v2))
-			   (snd-display ";scaled (.5) env reordering test ~A:~%; ~A~%; ~A" name v1 v2))
+			   (snd-display "scaled (.5) env reordering test ~A:~%; ~A~%; ~A" name v1 v2))
 		       (set! (edit-position ind 0) edpos)))))))
 	 
 	 (list (list "ramp-xramp" #t
@@ -7850,27 +7850,27 @@ EDITS: 5
     (as-one-edit
      (lambda ()
        (set! (sample 10) 1.0)))
-    (if (fneq (sample 10) 1.0) (snd-display ";as-one-edit 1: ~A" (sample 10)))
+    (if (fneq (sample 10) 1.0) (snd-display "as-one-edit 1: ~A" (sample 10)))
     (if (not (= (edit-position ind 0) 1)) 
-	(snd-display ";as-one-edit 1 edpos: ~A" (edit-position ind 0))
+	(snd-display "as-one-edit 1 edpos: ~A" (edit-position ind 0))
 	(begin
 	  (if (not (equal? (edit-fragment 1 ind 0) '("set-sample 10 1.0000" "set" 10 1)))
-	      (snd-display ";as-one-edit 1 edlist: ~A" (edit-fragment 1 ind 0)))
+	      (snd-display "as-one-edit 1 edlist: ~A" (edit-fragment 1 ind 0)))
 	  (if (not (equal? (edit-fragment 0 ind 0) '("" "init" 0 50828)))
-	      (snd-display ";as-one-edit 1 original edlist: ~A" (edit-fragment 0 ind 0)))))
+	      (snd-display "as-one-edit 1 original edlist: ~A" (edit-fragment 0 ind 0)))))
     
     (revert-sound ind)
     (as-one-edit
      (lambda ()
        (set! (sample 10) 1.0)
        (map-channel (lambda (y) (* y 2.0)) 0 20 ind 0 #f "map-channel as-one-edit")
-       (if (not (= (edit-position ind 0) 2)) (snd-display ";as-one-edit 2 edpos internal: ~A" (edit-position ind 0))))
+       (if (not (= (edit-position ind 0) 2)) (snd-display "as-one-edit 2 edpos internal: ~A" (edit-position ind 0))))
      "as-one-edit test-2")
-    (if (fneq (sample 10) 2.0) (snd-display ";as-one-edit 2: ~A" (sample 10)))
+    (if (fneq (sample 10) 2.0) (snd-display "as-one-edit 2: ~A" (sample 10)))
     (if (not (= (edit-position ind 0) 1)) 
-	(snd-display ";as-one-edit 2 edpos: ~A" (edit-position ind 0))
+	(snd-display "as-one-edit 2 edpos: ~A" (edit-position ind 0))
 	(if (not (equal? (edit-fragment 0 ind 0) '("" "init" 0 50828)))
-	    (snd-display ";as-one-edit 2 original edlist: ~A" (edit-fragment 0 ind 0))))
+	    (snd-display "as-one-edit 2 original edlist: ~A" (edit-fragment 0 ind 0))))
     
     (revert-sound ind)
     (let ((ind2 (open-sound "2a.snd")))
@@ -7881,16 +7881,16 @@ EDITS: 5
       (as-one-edit
        (lambda ()
 	 (set! (sample 10 ind 0) 1.0)))
-      (if (fneq (sample 10 ind 0) 1.0) (snd-display ";as-one-edit 3: ~A" (sample 10 ind 0)))
-      (if (not (= (edit-position ind 0) 1)) (snd-display ";as-one-edit 3 edpos: ~A" (edit-position ind 0)))
-      (if (not (= (edit-position ind2 0) 1)) (snd-display ";as-one-edit 3 2 edpos: ~A" (edit-position ind2 0)))
-      (if (not (= (edit-position ind2 1) 1)) (snd-display ";as-one-edit 3 2 1 edpos: ~A" (edit-position ind2 1)))
+      (if (fneq (sample 10 ind 0) 1.0) (snd-display "as-one-edit 3: ~A" (sample 10 ind 0)))
+      (if (not (= (edit-position ind 0) 1)) (snd-display "as-one-edit 3 edpos: ~A" (edit-position ind 0)))
+      (if (not (= (edit-position ind2 0) 1)) (snd-display "as-one-edit 3 2 edpos: ~A" (edit-position ind2 0)))
+      (if (not (= (edit-position ind2 1) 1)) (snd-display "as-one-edit 3 2 1 edpos: ~A" (edit-position ind2 1)))
       (if (not (equal? (edit-fragment 1 ind 0) '("set-sample 10 1.0000" "set" 10 1)))
-	  (snd-display ";as-one-edit 3 edlist: ~A" (edit-fragment 1 ind 0)))
+	  (snd-display "as-one-edit 3 edlist: ~A" (edit-fragment 1 ind 0)))
       (if (not (equal? (edit-fragment 1 ind2 0) '("set-sample 1 1.0000" "set" 1 1)))
-	  (snd-display ";as-one-edit 3 2 edlist: ~A" (edit-fragment 1 ind2 0)))
+	  (snd-display "as-one-edit 3 2 edlist: ~A" (edit-fragment 1 ind2 0)))
       (if (not (equal? (edit-fragment 1 ind2 1) '("set-sample 2 0.5000" "set" 2 1)))
-	  (snd-display ";as-one-edit 3 2 1 edlist: ~A" (edit-fragment 1 ind2 1)))
+	  (snd-display "as-one-edit 3 2 1 edlist: ~A" (edit-fragment 1 ind2 1)))
       
       (revert-sound ind)
       
@@ -7898,15 +7898,15 @@ EDITS: 5
        (lambda ()
 	 (set! (sample 10 ind 0) 1.0)
 	 (map-channel (lambda (y) (* y 2.0)) 0 20 ind 0 #f "map-channel as-one-edit 2")
-	 (if (not (= (edit-position ind 0) 2)) (snd-display ";as-one-edit 4 edpos internal: ~A" (edit-position ind 0))))
+	 (if (not (= (edit-position ind 0) 2)) (snd-display "as-one-edit 4 edpos internal: ~A" (edit-position ind 0))))
        "as-one-edit test-4")
-      (if (fneq (sample 10) 2.0) (snd-display ";as-one-edit 4: ~A" (sample 10 ind 0)))
+      (if (fneq (sample 10) 2.0) (snd-display "as-one-edit 4: ~A" (sample 10 ind 0)))
       (if (not (= (edit-position ind 0) 1)) 
-	  (snd-display ";as-one-edit 4 edpos: ~A" (edit-position ind 0)))
+	  (snd-display "as-one-edit 4 edpos: ~A" (edit-position ind 0)))
       (if (not (equal? (edit-fragment 1 ind2 0) '("set-sample 1 1.0000" "set" 1 1)))
-	  (snd-display ";as-one-edit 3 2 edlist: ~A" (edit-fragment 1 ind2 0)))
+	  (snd-display "as-one-edit 3 2 edlist: ~A" (edit-fragment 1 ind2 0)))
       (if (not (equal? (edit-fragment 1 ind2 1) '("set-sample 2 0.5000" "set" 2 1)))
-	  (snd-display ";as-one-edit 3 2 1 edlist: ~A" (edit-fragment 1 ind2 1)))
+	  (snd-display "as-one-edit 3 2 1 edlist: ~A" (edit-fragment 1 ind2 1)))
       
       (revert-sound ind)
       (set! (sample 3 ind 0) 1.0)
@@ -7916,22 +7916,22 @@ EDITS: 5
 	 (set! (sample 10 ind 0) 1.0)
 	 (set! (sample 10 ind2 0) 0.5)
 	 (set! (sample 10 ind2 1) 0.4)))
-      (if (fneq (sample 3 ind 0) 1.0) (snd-display ";as-one-edit 5 (3): ~A" (sample 3 ind 0)))
-      (if (fneq (sample 10 ind 0) 1.0) (snd-display ";as-one-edit 5 (10): ~A" (sample 10 ind 0)))
-      (if (fneq (sample 10 ind2 0) 0.5) (snd-display ";as-one-edit 5 (2 10): ~A" (sample 10 ind2 0)))
-      (if (fneq (sample 10 ind2 1) 0.4) (snd-display ";as-one-edit 5 (2 1 10): ~A" (sample 10 ind2 1)))
-      (if (not (= (edit-position ind 0) 2)) (snd-display ";as-one-edit 5 edpos: ~A" (edit-position ind 0)))
-      (if (not (= (edit-position ind2 0) 2)) (snd-display ";as-one-edit 5 2 edpos: ~A" (edit-position ind2 0)))
-      (if (not (= (edit-position ind2 1) 2)) (snd-display ";as-one-edit 5 2 1 edpos: ~A" (edit-position ind2 1)))
+      (if (fneq (sample 3 ind 0) 1.0) (snd-display "as-one-edit 5 (3): ~A" (sample 3 ind 0)))
+      (if (fneq (sample 10 ind 0) 1.0) (snd-display "as-one-edit 5 (10): ~A" (sample 10 ind 0)))
+      (if (fneq (sample 10 ind2 0) 0.5) (snd-display "as-one-edit 5 (2 10): ~A" (sample 10 ind2 0)))
+      (if (fneq (sample 10 ind2 1) 0.4) (snd-display "as-one-edit 5 (2 1 10): ~A" (sample 10 ind2 1)))
+      (if (not (= (edit-position ind 0) 2)) (snd-display "as-one-edit 5 edpos: ~A" (edit-position ind 0)))
+      (if (not (= (edit-position ind2 0) 2)) (snd-display "as-one-edit 5 2 edpos: ~A" (edit-position ind2 0)))
+      (if (not (= (edit-position ind2 1) 2)) (snd-display "as-one-edit 5 2 1 edpos: ~A" (edit-position ind2 1)))
       
       (if (not (equal? (edit-fragment 2 ind 0) '("set-sample 10 1.0000" "set" 10 1)))
-	  (snd-display ";as-one-edit 5 edlist 2: ~A" (edit-fragment 1 ind 0)))
+	  (snd-display "as-one-edit 5 edlist 2: ~A" (edit-fragment 1 ind 0)))
       (if (not (equal? (edit-fragment 1 ind 0) '("set-sample 3 1.0000" "set" 3 1)))
-	  (snd-display ";as-one-edit 5 edlist 1: ~A" (edit-fragment 1 ind 0)))
+	  (snd-display "as-one-edit 5 edlist 1: ~A" (edit-fragment 1 ind 0)))
       (if (not (equal? (edit-fragment 0 ind 0) '("" "init" 0 50828)))
-	  (snd-display ";as-one-edit 5 original edlist: ~A" (edit-fragment 0 ind 0)))
+	  (snd-display "as-one-edit 5 original edlist: ~A" (edit-fragment 0 ind 0)))
       (if (not (equal? (edit-fragment 2 ind2 0) '("set-sample 10 0.5000" "set" 10 1)))
-	  (snd-display ";as-one-edit 5 edlist 2 1: ~A" (edit-fragment 1 ind2 0)))
+	  (snd-display "as-one-edit 5 edlist 2 1: ~A" (edit-fragment 1 ind2 0)))
       
       (as-one-edit
        (lambda ()
@@ -7940,18 +7940,18 @@ EDITS: 5
        "as-one-edit test-6")
       
       
-      (if (fneq (sample 3 ind 0) 2.0) (snd-display ";as-one-edit 6 (3): ~A" (sample 3 ind 0)))
-      (if (fneq (sample 10 ind 0) 2.0) (snd-display ";as-one-edit 6 (10): ~A" (sample 10 ind 0)))
-      (if (fneq (sample 10 ind2 0) 0.5) (snd-display ";as-one-edit 6 (2 10): ~A" (sample 10 ind2 0)))
-      (if (fneq (sample 10 ind2 1) 0.8) (snd-display ";as-one-edit 6 (2 1 10): ~A" (sample 10 ind2 1)))
-      (if (not (= (edit-position ind 0) 3)) (snd-display ";as-one-edit 6 edpos: ~A" (edit-position ind 0)))
-      (if (not (= (edit-position ind2 0) 2)) (snd-display ";as-one-edit 6 2 edpos: ~A" (edit-position ind2 0)))
-      (if (not (= (edit-position ind2 1) 3)) (snd-display ";as-one-edit 6 2 1 edpos: ~A" (edit-position ind2 1)))
+      (if (fneq (sample 3 ind 0) 2.0) (snd-display "as-one-edit 6 (3): ~A" (sample 3 ind 0)))
+      (if (fneq (sample 10 ind 0) 2.0) (snd-display "as-one-edit 6 (10): ~A" (sample 10 ind 0)))
+      (if (fneq (sample 10 ind2 0) 0.5) (snd-display "as-one-edit 6 (2 10): ~A" (sample 10 ind2 0)))
+      (if (fneq (sample 10 ind2 1) 0.8) (snd-display "as-one-edit 6 (2 1 10): ~A" (sample 10 ind2 1)))
+      (if (not (= (edit-position ind 0) 3)) (snd-display "as-one-edit 6 edpos: ~A" (edit-position ind 0)))
+      (if (not (= (edit-position ind2 0) 2)) (snd-display "as-one-edit 6 2 edpos: ~A" (edit-position ind2 0)))
+      (if (not (= (edit-position ind2 1) 3)) (snd-display "as-one-edit 6 2 1 edpos: ~A" (edit-position ind2 1)))
       
       (if (not (equal? (edit-fragment 2 ind 0) '("set-sample 10 1.0000" "set" 10 1)))
-	  (snd-display ";as-one-edit 5 edlist 2: ~A" (edit-fragment 1 ind 0)))
+	  (snd-display "as-one-edit 5 edlist 2: ~A" (edit-fragment 1 ind 0)))
       (if (not (equal? (edit-fragment 2 ind2 0) '("set-sample 10 0.5000" "set" 10 1)))
-	  (snd-display ";as-one-edit 5 edlist 2 1: ~A" (edit-fragment 1 ind2 0)))
+	  (snd-display "as-one-edit 5 edlist 2 1: ~A" (edit-fragment 1 ind2 0)))
       (close-sound ind2))
     
     ;; nested cases
@@ -7968,14 +7968,14 @@ EDITS: 5
     (if (or (fneq (sample 100) .9)
 	    (fneq (sample 200) .8)
 	    (fneq (sample 300) .6))
-	(snd-display ";nested as-one-edit 7: ~A ~A ~A" (sample 100) (sample 200) (sample 300)))
+	(snd-display "nested as-one-edit 7: ~A ~A ~A" (sample 100) (sample 200) (sample 300)))
     (if (not (= (edit-position ind 0) 1))
-	(snd-display ";nested as-one-edit 7 edpos: ~A" (edit-position ind 0)))
+	(snd-display "nested as-one-edit 7 edpos: ~A" (edit-position ind 0)))
     (when (squelch-update ind 0)
-      (snd-display ";nested as-one-edit 7 squelch is on")
+      (snd-display "nested as-one-edit 7 squelch is on")
       (set! (squelch-update) #f))
     (if (not (equal? (edit-fragment 1 ind 0) '("set-sample 300 0.6000" "set" 100 204)))
-	(snd-display ";as-one-edit 7 edlist: ~A" (edit-fragment 1 ind 0)))
+	(snd-display "as-one-edit 7 edlist: ~A" (edit-fragment 1 ind 0)))
     
     (revert-sound ind)
     (as-one-edit
@@ -7990,11 +7990,11 @@ EDITS: 5
     (if (or (fneq (sample 100) .9)
 	    (fneq (sample 200) .8)
 	    (fneq (sample 300) .6))
-	(snd-display ";nested as-one-edit 8: ~A ~A ~A" (sample 100) (sample 200) (sample 300)))
+	(snd-display "nested as-one-edit 8: ~A ~A ~A" (sample 100) (sample 200) (sample 300)))
     (if (not (= (edit-position ind 0) 1))
-	(snd-display ";nested as-one-edit 8 edpos: ~A" (edit-position ind 0)))
+	(snd-display "nested as-one-edit 8 edpos: ~A" (edit-position ind 0)))
     (if (not (equal? (edit-fragment 1 ind 0) '("as-one-edit test-8" "set" 100 204)))
-	(snd-display ";as-one-edit 8 edlist: ~A" (edit-fragment 1 ind 0)))
+	(snd-display "as-one-edit 8 edlist: ~A" (edit-fragment 1 ind 0)))
     
     (revert-sound ind)
     (as-one-edit
@@ -8010,11 +8010,11 @@ EDITS: 5
     (if (or (fneq (sample 100) .9)
 	    (fneq (sample 200) .8)
 	    (fneq (sample 300) .6))
-	(snd-display ";nested as-one-edit 9: ~A ~A ~A" (sample 100) (sample 200) (sample 300)))
+	(snd-display "nested as-one-edit 9: ~A ~A ~A" (sample 100) (sample 200) (sample 300)))
     (if (not (= (edit-position ind 0) 1))
-	(snd-display ";nested as-one-edit 9 edpos: ~A" (edit-position ind 0)))
+	(snd-display "nested as-one-edit 9 edpos: ~A" (edit-position ind 0)))
     (if (not (equal? (edit-fragment 1 ind 0) '("as-one-edit test-9" "set" 100 204)))
-	(snd-display ";as-one-edit 9 edlist: ~A" (edit-fragment 1 ind 0)))
+	(snd-display "as-one-edit 9 edlist: ~A" (edit-fragment 1 ind 0)))
     
     (revert-sound ind)
     (as-one-edit
@@ -8035,28 +8035,28 @@ EDITS: 5
 	    (fneq (sample 200) .8)
 	    (fneq (sample 300) .6)
 	    (fneq (sample 400) .3))
-	(snd-display ";nested as-one-edit 10: ~A ~A ~A ~A" (sample 100) (sample 200) (sample 300) (sample 400)))
+	(snd-display "nested as-one-edit 10: ~A ~A ~A ~A" (sample 100) (sample 200) (sample 300) (sample 400)))
     (if (not (= (edit-position ind 0) 1))
-	(snd-display ";nested as-one-edit 10 edpos: ~A" (edit-position ind 0)))
+	(snd-display "nested as-one-edit 10 edpos: ~A" (edit-position ind 0)))
     (if (not (equal? (edit-fragment 1 ind 0) '("as-one-edit test-10" "set" 100 305)))
-	(snd-display ";as-one-edit 10 edlist: ~A" (edit-fragment 1 ind 0)))
+	(snd-display "as-one-edit 10 edlist: ~A" (edit-fragment 1 ind 0)))
     
     ;; try implicit as-one-edits nested
     (revert-sound ind)
     (env-channel-with-base '(0 0 1 1 2 .5 3 .25 4 0) 0.0 0 #f ind 0)
-    (if (not (= (edit-position ind 0) 1)) (snd-display ";as-one-edit 11 edpos: ~A" (edit-position ind 0)))
+    (if (not (= (edit-position ind 0) 1)) (snd-display "as-one-edit 11 edpos: ~A" (edit-position ind 0)))
     (if (not (equal? (edit-fragment 1 ind 0) 
 		     '("env-channel-with-base '(0.000 0.000 1.000 1.000 2.000 0.500 3.000 0.250 4.000 0.000) 0.0000 0 #f" "scale" 0 50830)))
-	(snd-display ";as-one-edit 11: ~A" (edit-fragment 1 ind 0)))
+	(snd-display "as-one-edit 11: ~A" (edit-fragment 1 ind 0)))
     
     (revert-sound ind)
     (as-one-edit
      (lambda ()
        (env-channel-with-base '(0 0 1 1 2 .5 3 .25 4 0) 0.0 0 #f ind 0))
      "as-one-edit 12")
-    (if (not (= (edit-position ind 0) 1)) (snd-display ";as-one-edit 12 edpos: ~A" (edit-position ind 0)))
+    (if (not (= (edit-position ind 0) 1)) (snd-display "as-one-edit 12 edpos: ~A" (edit-position ind 0)))
     (if (not (equal? (edit-fragment 1 ind 0) '("as-one-edit 12" "scale" 0 50830)))
-	(snd-display ";as-one-edit 12: ~A" (edit-fragment 1 ind 0)))
+	(snd-display "as-one-edit 12: ~A" (edit-fragment 1 ind 0)))
     
     (revert-sound ind)
     (let ((m1 #f)
@@ -8072,8 +8072,8 @@ EDITS: 5
 	    (set! (sample 123 ind 0) .3)
 	    (set! m2 (add-mark 1235 ind 0)))
 	  "as-one-edit inner 1")
-	 (if (not (mark? m1)) (snd-display ";as-one-edit stepped on m1: ~A" m1))
-	 (if (not (mark? m2)) (snd-display ";as-one-edit stepped on m2: ~A" m2))
+	 (if (not (mark? m1)) (snd-display "as-one-edit stepped on m1: ~A" m1))
+	 (if (not (mark? m2)) (snd-display "as-one-edit stepped on m2: ~A" m2))
 	 (as-one-edit
 	  (lambda ()
 	    (set! m3 (add-mark 1238 ind 0))
@@ -8082,14 +8082,14 @@ EDITS: 5
 	 (set! (sample 1239 ind 0) .9)
 	 (set! m4 (add-mark 1237 ind 0)))
        "outer as-one-edit")
-      (if (not (mark? m1)) (snd-display ";second as-one-edit stepped on m1: ~A" m1))
-      (if (not (mark? m2)) (snd-display ";second as-one-edit stepped on m2: ~A" m2))
-      (if (not (mark? m3)) (snd-display ";second as-one-edit stepped on m3: ~A" m3))
-      (if (not (mark? m4)) (snd-display ";second as-one-edit stepped on m4: ~A" m4))
-      (if (not (= (mark-sample m1) 1234)) (snd-display ";as-one-edit m1 sample: ~A (1234)" (mark-sample m1)))
-      (if (not (= (mark-sample m2) 1235)) (snd-display ";as-one-edit m2 sample: ~A (1235)" (mark-sample m2)))
-      (if (not (= (mark-sample m3) 1238)) (snd-display ";as-one-edit m3 sample: ~A (1238)" (mark-sample m3)))
-      (if (not (= (mark-sample m4) 1237)) (snd-display ";as-one-edit m4 sample: ~A (1237)" (mark-sample m4))))
+      (if (not (mark? m1)) (snd-display "second as-one-edit stepped on m1: ~A" m1))
+      (if (not (mark? m2)) (snd-display "second as-one-edit stepped on m2: ~A" m2))
+      (if (not (mark? m3)) (snd-display "second as-one-edit stepped on m3: ~A" m3))
+      (if (not (mark? m4)) (snd-display "second as-one-edit stepped on m4: ~A" m4))
+      (if (not (= (mark-sample m1) 1234)) (snd-display "as-one-edit m1 sample: ~A (1234)" (mark-sample m1)))
+      (if (not (= (mark-sample m2) 1235)) (snd-display "as-one-edit m2 sample: ~A (1235)" (mark-sample m2)))
+      (if (not (= (mark-sample m3) 1238)) (snd-display "as-one-edit m3 sample: ~A (1238)" (mark-sample m3)))
+      (if (not (= (mark-sample m4) 1237)) (snd-display "as-one-edit m4 sample: ~A (1237)" (mark-sample m4))))
     (if (not (string=? (display-edits ind 0) (string-append "
 EDITS: 1
 
@@ -8108,7 +8108,7 @@ EDITS: 1
    (at 1240, cp->sounds[0][1240:50827, 1.000]) [file: " cwd "oboe.snd[0]]
    (at 50828, end_mark)
 ")))
-	(snd-display ";as-one-edit edits: ~A" (display-edits ind 0)))
+	(snd-display "as-one-edit edits: ~A" (display-edits ind 0)))
     (revert-sound ind)
     
     (let ((m4 #f))
@@ -8124,8 +8124,8 @@ EDITS: 1
 		  (set! (sample 123 ind 0) .3)
 		  (set! m2 (mix-float-vector (float-vector .1 .2 .3) 1235 ind 0)))
 		"as-one-edit inner 1")
-	       (if (not (mix? m1)) (snd-display ";as-one-edit stepped on m1: ~A" m1))
-	       (if (not (mix? m2)) (snd-display ";as-one-edit stepped on m2: ~A" m2))
+	       (if (not (mix? m1)) (snd-display "as-one-edit stepped on m1: ~A" m1))
+	       (if (not (mix? m2)) (snd-display "as-one-edit stepped on m2: ~A" m2))
 	       (as-one-edit
 		(lambda ()
 		  (set! m3 (mix-float-vector (float-vector .1 .2 .3) 1238 ind 0))
@@ -8134,10 +8134,10 @@ EDITS: 1
 	       (set! (sample 1239 ind 0) .9)
 	       (set! m4 (mix-float-vector (float-vector .1 .2 .3) 1237 ind 0)))
 	     "outer as-one-edit")
-	    (if (not (mix? m1)) (snd-display ";second as-one-edit stepped on mx1: ~A" m1)))
-	  (if (not (mix? m2)) (snd-display ";second as-one-edit stepped on mx2: ~A" m2)))
-	(if (not (mix? m3)) (snd-display ";second as-one-edit stepped on mx3: ~A" m3)))
-      (if (not (mix? m4)) (snd-display ";second as-one-edit stepped on mx4: ~A" m4))
+	    (if (not (mix? m1)) (snd-display "second as-one-edit stepped on mx1: ~A" m1)))
+	  (if (not (mix? m2)) (snd-display "second as-one-edit stepped on mx2: ~A" m2)))
+	(if (not (mix? m3)) (snd-display "second as-one-edit stepped on mx3: ~A" m3)))
+      (if (not (mix? m4)) (snd-display "second as-one-edit stepped on mx4: ~A" m4))
       (revert-sound ind))
     
     (let ((ind2 #f))
@@ -8147,13 +8147,13 @@ EDITS: 1
 	 (set! (sample 100 ind 0) .5)
 	 (set! (sample 200 ind2 0) .6))
        "as-one-edit+open")
-      (if (not (sound? ind2)) (snd-display ";as-one-edit didn't open sound? ~A ~A" ind2 (sounds)))
-      (if (not (= (edit-position ind2 0) 1)) (snd-display ";edpos as-one-edit opened sound: ~A" (edit-position ind2 0)))
-      (if (not (= (edit-position ind 0) 1)) (snd-display ";edpos as-one-edit original sound: ~A" (edit-position ind 0)))
+      (if (not (sound? ind2)) (snd-display "as-one-edit didn't open sound? ~A ~A" ind2 (sounds)))
+      (if (not (= (edit-position ind2 0) 1)) (snd-display "edpos as-one-edit opened sound: ~A" (edit-position ind2 0)))
+      (if (not (= (edit-position ind 0) 1)) (snd-display "edpos as-one-edit original sound: ~A" (edit-position ind 0)))
       (if (not (equal? (edit-fragment 1 ind 0) '("as-one-edit+open" "set" 100 1)))
-	  (snd-display ";as-one-edit open sound edlist orig: ~A" (edit-fragment 1 ind 0)))
+	  (snd-display "as-one-edit open sound edlist orig: ~A" (edit-fragment 1 ind 0)))
       (if (not (equal? (edit-fragment 1 ind2 0) '("set-sample 200 0.6000" "set" 200 1)))
-	  (snd-display ";as-one-edit open sound edlist new: ~A" (edit-fragment 1 ind2 0)))
+	  (snd-display "as-one-edit open sound edlist new: ~A" (edit-fragment 1 ind2 0)))
       
       (as-one-edit
        (lambda ()
@@ -8161,9 +8161,9 @@ EDITS: 1
 	 (close-sound ind2))
        "as-one-edit+close")
       (when (sound? ind2) 
-	(snd-display ";as-one-edit didn't close sound? ~A ~A" ind2 (sounds))
+	(snd-display "as-one-edit didn't close sound? ~A ~A" ind2 (sounds))
 	(close-sound ind2))
-      (if (not (= (edit-position ind 0) 2)) (snd-display ";edpos as-one-edit close original sound: ~A" (edit-position ind 0)))
+      (if (not (= (edit-position ind 0) 2)) (snd-display "edpos as-one-edit close original sound: ~A" (edit-position ind 0)))
       (if (not (string=? (display-edits ind 0) (string-append "
 EDITS: 2
 
@@ -8185,7 +8185,7 @@ EDITS: 2
    (at 201, cp->sounds[0][201:50827, 1.000]) [file: " cwd "oboe.snd[0]]
    (at 50828, end_mark)
 ")))
-	  (snd-display ";as-one-edit open+close: ~A" (display-edits ind 0))))
+	  (snd-display "as-one-edit open+close: ~A" (display-edits ind 0))))
     
     (close-sound ind))  
   
@@ -8202,8 +8202,8 @@ EDITS: 2
 	"inner edit")
        (set! (sample 300 ind2 0) .6))
      "outer edit")
-    (if (sound? ind1) (snd-display ";as-one-edit close inner: ~A ~A" ind1 (sounds)))
-    (if (not (sound? ind2)) (snd-display ";as-one-edit open inner: ~A ~A" ind2 (sounds)))
+    (if (sound? ind1) (snd-display "as-one-edit close inner: ~A ~A" ind1 (sounds)))
+    (if (not (sound? ind2)) (snd-display "as-one-edit open inner: ~A ~A" ind2 (sounds)))
     
     (revert-sound ind2)
     (as-one-edit
@@ -8223,54 +8223,54 @@ EDITS: 2
 		 (lambda () (as-one-edit (lambda (oops) #f)))
 		 (lambda args (car args)))))
       (if (not (eq? tag 'bad-arity))
-	  (snd-display ";as-one-edit arg? ~A" tag)))
+	  (snd-display "as-one-edit arg? ~A" tag)))
     (let ((tag (catch #t
 		 (lambda () (as-one-edit (lambda* (oops) #f)))
 		 (lambda args (car args)))))
       (if (not (eq? tag 'bad-arity))
-	  (snd-display ";as-one-edit arg? ~A" tag)))
+	  (snd-display "as-one-edit arg? ~A" tag)))
     (close-sound ind))
   (let ((ind (new-sound  "test.snd" 1 22050 mus-ldouble mus-next "more tests" 10)))
     ;; offset-channel
     (offset-channel .1)
     (if (not (mus-arrays-equal? (channel->float-vector 0 10) (make-float-vector 10 .1)))
-	(snd-display ";offset-channel (.1): ~A" (channel->float-vector 0 10)))
+	(snd-display "offset-channel (.1): ~A" (channel->float-vector 0 10)))
     (offset-channel -.2 5 5)
     (if (not (mus-arrays-equal? (channel->float-vector 0 10) (float-vector .1 .1 .1 .1 .1 -.1 -.1 -.1 -.1 -.1)))
-	(snd-display ";offset-channel (-.1): ~A" (channel->float-vector 0 10)))
+	(snd-display "offset-channel (-.1): ~A" (channel->float-vector 0 10)))
     (undo)
     (offset-channel .9 0 10 ind 0)
     (if (not (mus-arrays-equal? (channel->float-vector 0 10) (make-float-vector 10 1.0)))
-	(snd-display ";offset-channel (1): ~A" (channel->float-vector 0 10)))
+	(snd-display "offset-channel (1): ~A" (channel->float-vector 0 10)))
     ;; sine-env and sine-ramp...
     (revert-sound ind)
     (map-channel (lambda (y) 1.0))
     (sine-ramp 0.0 1.0)
     (if (not (mus-arrays-equal? (channel->float-vector) (float-vector 0.000 0.024 0.095 0.206 0.345 0.500 0.655 0.794 0.905 0.976)))
-	(snd-display ";sine-ramp 0 1: ~A" (channel->float-vector)))
+	(snd-display "sine-ramp 0 1: ~A" (channel->float-vector)))
     (revert-sound ind)
     (offset-channel 1.0)
     (sine-ramp 1.0 0.0)
     (if (not (mus-arrays-equal? (channel->float-vector) (float-vector 1.000 0.976 0.905 0.794 0.655 0.500 0.345 0.206 0.095 0.024)))
-	(snd-display ";sine-ramp 1 0: ~A" (channel->float-vector)))
+	(snd-display "sine-ramp 1 0: ~A" (channel->float-vector)))
     (close-sound ind))
   (let ((ind (new-sound  "test.snd" 1 22050 mus-ldouble mus-next "sine-env tests" 100)))
     (map-channel (lambda (y) 1.0))
     (sine-env-channel '(0 0 1 1 2 -.5 3 1))
-    (if (not (= (edit-position ind 0) 2)) (snd-display ";as-one-edit sine-env-channel: ~A" (edit-position ind 0)))
+    (if (not (= (edit-position ind 0) 2)) (snd-display "as-one-edit sine-env-channel: ~A" (edit-position ind 0)))
     (revert-sound ind)
     (offset-channel -1.0)
     (sine-env-channel '(0 0 1 1 2 1 3 0) 40 20)
     (if (not (and (mus-arrays-equal? (channel->float-vector 40 20) (float-vector -0.000 -0.050 -0.188 -0.389 -0.611 -0.812 -0.950 -1.000 -1.000 -1.000
 								      -1.000 -1.000 -1.000 -1.000 -1.000 -0.950 -0.812 -0.611 -0.389 -0.188))
 		  (mus-arrays-equal? (channel->float-vector 30 10) (make-float-vector 10 -1.0))))
-	(snd-display ";off+sine-env: ~A ~A" (channel->float-vector 40 20) (channel->float-vector 30 10)))
+	(snd-display "off+sine-env: ~A ~A" (channel->float-vector 40 20) (channel->float-vector 30 10)))
     (revert-sound ind)
     (scale-by 0.0)
     (dither-channel)
     (let ((mx (maxamp)))
       (if (not (<= 3e-05 mx 0.0001))
-	  (snd-display ";dithering: ~A" mx)))
+	  (snd-display "dithering: ~A" mx)))
     (revert-sound ind)
     (map-channel (ring-mod 10 (list 0 0 1 (hz->radians 100))))
     (osc-formants .99 (float-vector 400.0 800.0 1200.0) (float-vector 400.0 800.0 1200.0) (float-vector 4.0 2.0 3.0))
@@ -8283,9 +8283,9 @@ EDITS: 2
     (map-channel (notch-filter .8 32))
     (let ((ind1 (open-sound "now.snd")))
       (select-sound ind1)
-      (if (fneq (maxamp) .309) (snd-display ";squelch-vowels init: ~A" (maxamp)))
+      (if (fneq (maxamp) .309) (snd-display "squelch-vowels init: ~A" (maxamp)))
       (squelch-vowels)
-      (if (fneq (maxamp) .047) (snd-display ";squelch-vowels maxamp: ~A" (maxamp)))
+      (if (fneq (maxamp) .047) (snd-display "squelch-vowels maxamp: ~A" (maxamp)))
       (select-sound ind)
       (map-channel (cross-synthesis ind1 .5 128 6.0))
       (revert-sound ind1)
@@ -8306,7 +8306,7 @@ EDITS: 2
       (blackman4-env-channel '(0 0 1 1))
       (let ((new-vals (channel->float-vector)))
 	(if (not (mus-arrays-equal? vals new-vals))
-	    (snd-display ";blackman4-env-channel/ramp: ~A ~A" vals new-vals))))
+	    (snd-display "blackman4-env-channel/ramp: ~A ~A" vals new-vals))))
     (undo)
     (blackman4-ramp 0.0 1.0 0 50)
     (let ((vals (channel->float-vector)))
@@ -8314,11 +8314,11 @@ EDITS: 2
       (blackman4-env-channel '(0 0 1 1 2 1))
       (let ((new-vals (channel->float-vector)))
 	(if (not (mus-arrays-equal? vals new-vals))
-	    (snd-display ";blackman4-env-channel/ramp 1: ~A ~A" vals new-vals))))
+	    (snd-display "blackman4-env-channel/ramp 1: ~A ~A" vals new-vals))))
     (undo)
     (blackman4-env-channel '(0 0 1 1 2 -.5 3 0))
     (if (not (mus-arrays-equal? (channel->float-vector 60 10) (float-vector -0.109 -0.217 -0.313 -0.392 -0.451 -0.488 -0.499 -0.499 -0.499 -0.499)))
-	(snd-display ";blackman4 to -.5: ~A" (channel->float-vector 60 10)))
+	(snd-display "blackman4 to -.5: ~A" (channel->float-vector 60 10)))
     (undo)
       
     (ramp-squared 0.0 1.0)
@@ -8327,7 +8327,7 @@ EDITS: 2
       (env-squared-channel '(0 0 1 1))
       (let ((new-vals (channel->float-vector)))
 	(if (not (mus-arrays-equal? vals new-vals))
-	    (snd-display ";env-squared/ramp: ~A ~A" vals new-vals))))
+	    (snd-display "env-squared/ramp: ~A ~A" vals new-vals))))
     (undo)
     (ramp-squared 0.0 1.0 #t 0 50)
     (let ((vals (channel->float-vector)))
@@ -8335,15 +8335,15 @@ EDITS: 2
       (env-squared-channel '(0 0 1 1 2 1))
       (let ((new-vals (channel->float-vector)))
 	(if (not (mus-arrays-equal? vals new-vals))
-	    (snd-display ";env-squared/ramp 1: ~A ~A" vals new-vals))))
+	    (snd-display "env-squared/ramp 1: ~A ~A" vals new-vals))))
     (undo)
     (env-squared-channel '(0 0 1 1 2 -.5 3 0))
     (if (not (mus-arrays-equal? (channel->float-vector 60 10) (float-vector -0.450 -0.466 -0.478 -0.488 -0.494 -0.499 -0.500 -0.500 -0.498 -0.496)))
-	(snd-display ";env-squared to -.5: ~A" (channel->float-vector 60 10)))
+	(snd-display "env-squared to -.5: ~A" (channel->float-vector 60 10)))
     (undo)
     (env-squared-channel '(0 0 1 1 2 -.5 3 0) #f)
     (if (not (mus-arrays-equal? (channel->float-vector 60 10) (float-vector -0.004 -0.080 -0.158 -0.240 -0.324 -0.410 -0.500 -0.500 -0.498 -0.496)))
-	(snd-display ";env-squared unsymmetric to -.5: ~A" (channel->float-vector 60 10)))
+	(snd-display "env-squared unsymmetric to -.5: ~A" (channel->float-vector 60 10)))
     (undo)
       
     (ramp-squared 0.0 1.0)
@@ -8352,7 +8352,7 @@ EDITS: 2
       (env-expt-channel '(0 0 1 1) 2)
       (let ((new-vals (channel->float-vector)))
 	(if (not (mus-arrays-equal? vals new-vals))
-	    (snd-display ";env-expt2/ramp: ~A ~A" vals new-vals))))
+	    (snd-display "env-expt2/ramp: ~A ~A" vals new-vals))))
     (undo)
     (env-squared-channel '(0 0 1 1 2 -.5 3 0))
     (let ((vals (channel->float-vector)))
@@ -8360,7 +8360,7 @@ EDITS: 2
       (env-expt-channel '(0 0 1 1 2 -.5 3 0) 2.0)
       (let ((new-vals (channel->float-vector)))
 	(if (not (mus-arrays-equal? vals new-vals))
-	    (snd-display ";env-expt2/env-squared: ~A ~A" vals new-vals))))
+	    (snd-display "env-expt2/env-squared: ~A ~A" vals new-vals))))
     (undo)
     (env-squared-channel '(0 0 1 1 2 -.5 3 0) #f)
     (let ((vals (channel->float-vector)))
@@ -8368,7 +8368,7 @@ EDITS: 2
       (env-expt-channel '(0 0 1 1 2 -.5 3 0) 2.0 #f)
       (let ((new-vals (channel->float-vector)))
 	(if (not (mus-arrays-equal? vals new-vals))
-	    (snd-display ";env-expt2/env-squared unsymmetric: ~A ~A" vals new-vals))))
+	    (snd-display "env-expt2/env-squared unsymmetric: ~A ~A" vals new-vals))))
     (undo)
       
     (ramp-expt 0.0 1.0 32.0)
@@ -8377,7 +8377,7 @@ EDITS: 2
       (env-expt-channel '(0 0 1 1) 32.0)
       (let ((new-vals (channel->float-vector)))
 	(if (not (mus-arrays-equal? vals new-vals))
-	    (snd-display ";env-expt/ramp 32: ~A ~A" vals new-vals))))
+	    (snd-display "env-expt/ramp 32: ~A ~A" vals new-vals))))
     (undo)
     (ramp-expt 0.0 1.0 32.0 #f 0 50)
     (let ((vals (channel->float-vector)))
@@ -8385,7 +8385,7 @@ EDITS: 2
       (env-expt-channel '(0 0 1 1 2 1) 32.0)
       (let ((new-vals (channel->float-vector)))
 	(if (not (mus-arrays-equal? vals new-vals))
-	    (snd-display ";env-expt/ramp 1 32: ~A ~A" vals new-vals))))
+	    (snd-display "env-expt/ramp 1 32: ~A ~A" vals new-vals))))
     (undo)
     (ramp-expt 0.0 1.0 .1)
     (let ((vals (channel->float-vector)))
@@ -8393,16 +8393,16 @@ EDITS: 2
       (env-expt-channel '(0 0 1 1) .1)
       (let ((new-vals (channel->float-vector)))
 	(if (not (mus-arrays-equal? vals new-vals))
-	    (snd-display ";env-expt/ramp .1: ~A ~A" vals new-vals))))
+	    (snd-display "env-expt/ramp .1: ~A ~A" vals new-vals))))
     (undo)
       
     (env-expt-channel '(0 0 1 1 2 -.5 3 0) 12.0)
     (if (not (mus-arrays-equal? (channel->float-vector 30 10) (float-vector 0.319 0.472 0.691 1.000 0.537 0.208 -0.022 -0.182 -0.291 -0.365)))
-	(snd-display ";env-expt to -.5 12.0: ~A" (channel->float-vector 30 10)))
+	(snd-display "env-expt to -.5 12.0: ~A" (channel->float-vector 30 10)))
     (undo)
     (env-expt-channel '(0 0 1 1 2 -.5 3 0) 12.0 #f)
     (if (not (mus-arrays-equal? (channel->float-vector 30 10) (float-vector 0.319 0.472 0.691 1.000 1.000 1.000 1.000 1.000 1.000 1.000)))
-	(snd-display ";env-expt to -.5 12.0 unsymmetric: ~A" (channel->float-vector 30 10)))
+	(snd-display "env-expt to -.5 12.0 unsymmetric: ~A" (channel->float-vector 30 10)))
     (undo)
     (close-sound ind))
   
@@ -8417,7 +8417,7 @@ EDITS: 2
 	       (let ((y (reader))
 		     (ny (sin (+ (* val 0.5 pi) (* 1.0 (sin (* val 2.0 pi)))))))
 		 (and (fneq y ny)
-		      (or (snd-display ";contrast-channel: ~A ~A ~A" val y ny)
+		      (or (snd-display "contrast-channel: ~A ~A ~A" val y ny)
 			  #t)))))))
     (close-sound ind))
   
@@ -8425,10 +8425,10 @@ EDITS: 2
 	(ind1 (open-sound "pistol.snd")))
     
     (let ((clip (channel-clipped? ind0 0)))
-      (if clip (snd-display ";channel-clipped? oboe.snd -> ~A" clip)))
+      (if clip (snd-display "channel-clipped? oboe.snd -> ~A" clip)))
     (scale-to 1.5 ind0 0)
     (let ((clip (channel-clipped? ind0 0)))
-      (if (not (memv clip '(4502 4503))) (snd-display ";channel-clipped after scale: ~A" clip)))
+      (if (not (memv clip '(4502 4503))) (snd-display "channel-clipped after scale: ~A" clip)))
     (revert-sound ind0)
     
     (do ((i 0 (+ i 1))) ((= i 4)) (ramp-channel 0.0 1.0 0 #f ind1 0))
@@ -8438,11 +8438,11 @@ EDITS: 2
     (env-selection '(0 0 1 1))
     (if (not (and (= (edit-position ind0 0) 0)
 		  (= (edit-position ind1 0) 5)))
-	(snd-display ";selection override of sync field: ~A ~A" (edit-position ind0 0) (edit-position ind1 0)))
+	(snd-display "selection override of sync field: ~A ~A" (edit-position ind0 0) (edit-position ind1 0)))
     (env-sound '(0 0 1 1 2 0))
     (if (not (and (= (edit-position ind0 0) 1)
 		  (= (edit-position ind1 0) 5)))
-	(snd-display ";sync field over selection: ~A ~A" (edit-position ind0 0) (edit-position ind1 0)))
+	(snd-display "sync field over selection: ~A ~A" (edit-position ind0 0) (edit-position ind1 0)))
     
     (close-sound ind1)
     (revert-sound ind0)
@@ -8451,87 +8451,87 @@ EDITS: 2
   (let ((s1 (open-sound "oboe.snd")))
     (let ((s2 (copy s1)))
       (if (not (sound? s2))
-	  (snd-display ";copy sound oboe -> ~A" s2)
+	  (snd-display "copy sound oboe -> ~A" s2)
 	  (begin
-	    (if (not (= (srate s1) (srate s2))) (snd-display ";copy sounds srates: ~A ~A" (srate s1) (srate s2)))
-	    (if (not (= (framples s1) (framples s2))) (snd-display ";copy sounds framples: ~A ~A" (framples s1) (framples s2)))
-	    (if (not (= (chans s1) (chans s2) 1)) (snd-display ";copy sounds chans: ~A ~A" (chans s1) (chans s2)))
+	    (if (not (= (srate s1) (srate s2))) (snd-display "copy sounds srates: ~A ~A" (srate s1) (srate s2)))
+	    (if (not (= (framples s1) (framples s2))) (snd-display "copy sounds framples: ~A ~A" (framples s1) (framples s2)))
+	    (if (not (= (chans s1) (chans s2) 1)) (snd-display "copy sounds chans: ~A ~A" (chans s1) (chans s2)))
 	    (let ((d1 (channel->float-vector 0 #f s1))
 		  (d2 (channel->float-vector 0 #f s2)))
 	      (if (not (mus-arrays-equal? d1 d2))
-		  (snd-display ";copied sound not equal? ~A?" (float-vector-peak (float-vector-subtract! d0 d1)))))
+		  (snd-display "copied sound not equal? ~A?" (float-vector-peak (float-vector-subtract! d0 d1)))))
 	    (close-sound s2))))
     (fill! s1 0.0)
-    (if (fneq (maxamp s1) 0.0) (snd-display ";fill 1 with 0: ~A" (maxamp s1)))
+    (if (fneq (maxamp s1) 0.0) (snd-display "fill 1 with 0: ~A" (maxamp s1)))
     (fill! s1 0.3)
-    (if (fneq (maxamp s1) 0.3) (snd-display ";fill 1 with 0.3: ~A" (maxamp s1)))
+    (if (fneq (maxamp s1) 0.3) (snd-display "fill 1 with 0.3: ~A" (maxamp s1)))
     (close-sound s1))
   
   (let ((s1 (open-sound "2a.snd")))
     (let ((s2 (copy s1)))
       (if (not (sound? s2))
-	  (snd-display ";copy sound 2a -> ~A" s2)
+	  (snd-display "copy sound 2a -> ~A" s2)
 	  (begin
-	    (if (not (= (srate s1) (srate s2))) (snd-display ";copy sounds srates 2: ~A ~A" (srate s1) (srate s2)))
-	    (if (not (= (framples s1) (framples s2))) (snd-display ";copy sounds framples 2: ~A ~A" (framples s1) (framples s2)))
-	    (if (not (= (chans s1) (chans s2) 2)) (snd-display ";copy sounds chans 2: ~A ~A" (chans s1) (chans s2)))
+	    (if (not (= (srate s1) (srate s2))) (snd-display "copy sounds srates 2: ~A ~A" (srate s1) (srate s2)))
+	    (if (not (= (framples s1) (framples s2))) (snd-display "copy sounds framples 2: ~A ~A" (framples s1) (framples s2)))
+	    (if (not (= (chans s1) (chans s2) 2)) (snd-display "copy sounds chans 2: ~A ~A" (chans s1) (chans s2)))
 	    (let ((d10 (channel->float-vector 0 #f s1 0))
 		  (d11 (channel->float-vector 0 #f s1 1))
 		  (d20 (channel->float-vector 0 #f s2 0))
 		  (d21 (channel->float-vector 0 #f s2 1)))
 	      (if (not (mus-arrays-equal? d10 d20))
-		  (snd-display ";copied sound 2 (0) not equal? ~A?" (float-vector-peak (float-vector-subtract! d10 d20))))
+		  (snd-display "copied sound 2 (0) not equal? ~A?" (float-vector-peak (float-vector-subtract! d10 d20))))
 	      (if (not (mus-arrays-equal? d11 d21))
-		  (snd-display ";copied sound 2 (1) not equal? ~A?" (float-vector-peak (float-vector-subtract! d11 d21)))))
+		  (snd-display "copied sound 2 (1) not equal? ~A?" (float-vector-peak (float-vector-subtract! d11 d21)))))
 	    (close-sound s2))))
     (fill! s1 0.0)
-    (if (fneq (maxamp s1) 0.0) (snd-display ";fill 2 with 0: ~A" (maxamp s1)))
+    (if (fneq (maxamp s1) 0.0) (snd-display "fill 2 with 0: ~A" (maxamp s1)))
     (fill! s1 0.3)
-    (if (fneq (maxamp s1) 0.3) (snd-display ";fill 2 with 0.3: ~A" (maxamp s1)))
+    (if (fneq (maxamp s1) 0.3) (snd-display "fill 2 with 0.3: ~A" (maxamp s1)))
     (close-sound s1))
   
   (for-each close-sound (sounds))
   (unselect-all)
   (let ((snd (open-sound "oboe.snd")))
     (make-selection 1000 2000 snd 0)
-    (if (not (selection?)) (snd-display ";make-selection for copy failed?"))
+    (if (not (selection?)) (snd-display "make-selection for copy failed?"))
     (copy (selection))
     (let ((r1 (channel->float-vector 1000 1000 snd 0)))
       (let* ((snds (sounds))
 	     (sel ((if (equal? (car snds) snd) cadr car) snds))
 	     (r2 (channel->float-vector 0 1000 sel 0)))
 	(if (equal? sel snd)
-	    (snd-display ";very weird: ~A equal? ~A from ~A (~A ~A ~A)" sel snd snds (car snds) (cadr snds) (equal? (car snds) snd)))
+	    (snd-display "very weird: ~A equal? ~A from ~A (~A ~A ~A)" sel snd snds (car snds) (cadr snds) (equal? (car snds) snd)))
 	(if (not (mus-arrays-equal? r1 r2))
-	    (snd-display ";copied selection not equal? ~A?" (float-vector-peak (float-vector-subtract! r1 r2))))
+	    (snd-display "copied selection not equal? ~A?" (float-vector-peak (float-vector-subtract! r1 r2))))
 	(close-sound sel))
       (if (not (selection?))
-	  (snd-display ";copy selection unselected? ~A" (sounds))
+	  (snd-display "copy selection unselected? ~A" (sounds))
 	  (begin
 	    (fill! (selection) 0.0)
 	    (let ((r1 (float-vector-peak (channel->float-vector 1000 1000 snd 0))))
 	      (if (> r1 0.0)
-		  (snd-display ";fill! selection not 0.0? ~A" r1)))
+		  (snd-display "fill! selection not 0.0? ~A" r1)))
 	    (revert-sound snd)
 	    (if (not (selection?))
-		(snd-display ";revert-sound selection unselected?")
+		(snd-display "revert-sound selection unselected?")
 		(begin
 		  (fill! (selection) 0.3)
 		  (let ((r1 (channel->float-vector 1000 1000 snd 0)))
 		    (if (not (and (morally-equal? (float-vector-max r1) 0.3)
 				  (morally-equal? (float-vector-min r1) 0.3)))
-			(snd-display ";fill! selection not 0.3? ~A ~A" (float-vector-min r1) (float-vector-max r1)))))))))
+			(snd-display "fill! selection not 0.3? ~A ~A" (float-vector-min r1) (float-vector-max r1)))))))))
     (for-each close-sound (sounds)))
   
   (let ((snd (open-sound "oboe.snd")))
     (make-selection 1000 2000 snd 0)
     (if (not (selection?)) 
-	(snd-display ";make-selection failed?")
+	(snd-display "make-selection failed?")
 	(let ((sel-max (maxamp (selection)))
 	      (sel-len (length (selection))))
 	  (let ((mx (car (selection->mix))))
 	    (if (not (mix? mx))
-		(snd-display ";selection->mix: ~A" mx)
+		(snd-display "selection->mix: ~A" mx)
 		(let ((mx-rd (make-mix-sampler mx 0))
 		      (snd-rd (make-sampler 1000 snd 0))
 		      (orig-rd (make-sampler 1000 snd 0 1 0)))
@@ -8545,9 +8545,9 @@ EDITS: 2
 		      (when (or (fneq mx-val snd-val)
 				(fneq snd-val orig-val))
 			(set! happy #f)
-			(snd-display ";selection->mix at ~A: ~A ~A ~A" (+ i 1000) mx-val snd-val orig-val))))
-		  (if (not (= (length mx) sel-len 1001)) (snd-display ";selection->mix mix length: ~A (~A)" (length mx) sel-len))
-		  (if (fneq (maxamp mx) sel-max) (snd-display ";selection->mix maxamps: ~A ~A" (maxamp mx) sel-max)))))))
+			(snd-display "selection->mix at ~A: ~A ~A ~A" (+ i 1000) mx-val snd-val orig-val))))
+		  (if (not (= (length mx) sel-len 1001)) (snd-display "selection->mix mix length: ~A (~A)" (length mx) sel-len))
+		  (if (fneq (maxamp mx) sel-max) (snd-display "selection->mix maxamps: ~A ~A" (maxamp mx) sel-max)))))))
     (for-each close-sound (sounds)))
   
   (let ((snd (open-sound "2.snd")))
@@ -8555,18 +8555,18 @@ EDITS: 2
     ;; make-selection claims it follows the sync field
     (make-selection 2000 3000 snd)
     (if (not (selection?)) 
-	(snd-display ";make-selection (2) failed?")
+	(snd-display "make-selection (2) failed?")
 	(let ((sel-max (maxamp (selection)))
 	      (sel-len (length (selection)))
 	      (sel-chns (channels (selection))))
-	  (if (not (= sel-chns 2)) (snd-display ";make-selection stereo syncd chans: ~A" sel-chns))
-	  (if (not (= sel-len 1001)) (snd-display ";make-selection stereo length: ~A" sel-len))
+	  (if (not (= sel-chns 2)) (snd-display "make-selection stereo syncd chans: ~A" sel-chns))
+	  (if (not (= sel-len 1001)) (snd-display "make-selection stereo length: ~A" sel-len))
 	  (let ((mx-list (selection->mix)))
 	    (let ((mx0 (car mx-list))
 		  (mx1 (cadr mx-list)))
 	      (if (not (and (mix? mx0)
 			    (mix? mx1)))
-		  (snd-display ";selection->mix stereo: ~A ~A" mx0 mx1)
+		  (snd-display "selection->mix stereo: ~A ~A" mx0 mx1)
 		  (let ((mx0-rd (make-mix-sampler mx0 0))
 			(mx1-rd (make-mix-sampler mx1 0))
 			(snd0-rd (make-sampler 2000 snd 0))
@@ -8586,15 +8586,15 @@ EDITS: 2
 			(when (or (fneq mx0-val snd0-val)
 				  (fneq snd0-val orig0-val))
 			  (set! happy #f)
-			  (snd-display ";selection->mix stereo 0 at ~A: ~A ~A ~A" (+ i 2000) mx0-val snd0-val orig0-val))
+			  (snd-display "selection->mix stereo 0 at ~A: ~A ~A ~A" (+ i 2000) mx0-val snd0-val orig0-val))
 			(when (or (fneq mx1-val snd1-val)
 				  (fneq snd1-val orig1-val))
 			  (set! happy #f)
-			  (snd-display ";selection->mix stereo 1 at ~A: ~A ~A ~A" (+ i 2000) mx1-val snd1-val orig1-val))))))
+			  (snd-display "selection->mix stereo 1 at ~A: ~A ~A ~A" (+ i 2000) mx1-val snd1-val orig1-val))))))
 	      (if (not (= (length mx0) (length mx1) sel-len 1001))
-		  (snd-display ";selection->mix stereo mix length: ~A ~A (~A)" (length mx0) (length mx1) sel-len))
+		  (snd-display "selection->mix stereo mix length: ~A ~A (~A)" (length mx0) (length mx1) sel-len))
 	      (if (fneq (max (maxamp mx0) (maxamp mx1)) sel-max) 
-		  (snd-display ";selection->mix stereo maxamps: ~A ~A ~A" (maxamp mx0) (maxamp mx1) sel-max))))))
+		  (snd-display "selection->mix stereo maxamps: ~A ~A ~A" (maxamp mx0) (maxamp mx1) sel-max))))))
     (for-each close-sound (sounds)))
   
   (let ((ind (new-sound :size 10)))
@@ -8603,12 +8603,12 @@ EDITS: 2
       (set! (sample i ind 0) (* .1 i)))
     (let* ((rd (make-sampler 3 ind 0))
 	   (val (read-sample-with-direction rd 1)))
-      (if (fneq val .3) (snd-display ";read-sample-with-direction 3: ~A" val))
+      (if (fneq val .3) (snd-display "read-sample-with-direction 3: ~A" val))
       (read-sample-with-direction rd -1)
       (set! val (read-sample-with-direction rd -1))
-      (if (fneq val .2) (snd-display ";read-sample-with-direction 2: ~A" val))
+      (if (fneq val .2) (snd-display "read-sample-with-direction 2: ~A" val))
       (set! val (read-sample-with-direction rd -1))
-      (if (fneq val .1) (snd-display ";read-sample-with-direction 1: ~A" val))
+      (if (fneq val .1) (snd-display "read-sample-with-direction 1: ~A" val))
       (close-sound ind)))
   
   (clear-save-state-files))
@@ -8621,105 +8621,105 @@ EDITS: 2
     (log-mem clmtest)
     (let ((v0 (make-float-vector 10))
 	  (v1 (make-float-vector 10)))
-      (if (not (= (length v0) 10)) (snd-display ";v0 length = ~D?" (length v0)))
+      (if (not (= (length v0) 10)) (snd-display "v0 length = ~D?" (length v0)))
       (fill! v0 1.0)
       (fill! v1 0.5)
-      (if (equal? v0 v1) (snd-display ";float-vector equal? ~A ~A" v0 v1))
-      (if (eq? v0 v1) (snd-display ";float-vector eq? ~A ~A" v0 v1))
-      (if (fneq (float-vector-max v0) 1.0) (snd-display ";float-vector max ~A" (float-vector-max v0)))
-      (if (fneq (float-vector-min v0) 1.0) (snd-display ";float-vector min ~A" (float-vector-min v0)))
+      (if (equal? v0 v1) (snd-display "float-vector equal? ~A ~A" v0 v1))
+      (if (eq? v0 v1) (snd-display "float-vector eq? ~A ~A" v0 v1))
+      (if (fneq (float-vector-max v0) 1.0) (snd-display "float-vector max ~A" (float-vector-max v0)))
+      (if (fneq (float-vector-min v0) 1.0) (snd-display "float-vector min ~A" (float-vector-min v0)))
       (let ((v3 (make-float-vector 10 0.5))
 	    (v4 (make-float-vector 3)))
-	(if (not (equal? v3 v1)) (snd-display ";float-vector not equal? ~A ~A" v3 v1))
-	(if (equal? v4 v1) (snd-display ";len diff float-vector equal? ~A ~A" v4 v1))
+	(if (not (equal? v3 v1)) (snd-display "float-vector not equal? ~A ~A" v3 v1))
+	(if (equal? v4 v1) (snd-display "len diff float-vector equal? ~A ~A" v4 v1))
 	(set! (v3 0) 1.0)
-	(if (fneq (v3 0) 1.0) (snd-display ";set! float-vector-ref: ~A" (v3 0))))
+	(if (fneq (v3 0) 1.0) (snd-display "set! float-vector-ref: ~A" (v3 0))))
       (let ((vlst (make-float-vector 3)))
 	(set! (vlst 1) .1)
-	(if (not (feql (map values vlst) '(0.0 0.1 0.0))) (snd-display ";vector->list: ~A?" (map values vlst))))
+	(if (not (feql (map values vlst) '(0.0 0.1 0.0))) (snd-display "vector->list: ~A?" (map values vlst))))
       (let ((v2 (make-float-vector 4)))
 	(do ((i 0 (+ i 1)))
 	    ((= i 4))
 	  (set! (v2 i) i))
 	(float-vector-move! v2 3 2 #t)
 	(if (or (fneq (v2 3) 2.0) (fneq (v2 2) 1.0))
-	    (snd-display ";float-vector-move! back: ~A?" v2)))
+	    (snd-display "float-vector-move! back: ~A?" v2)))
       
       (if (not (string=? (float-vector->string (float-vector 1.0 2.0)) "(float-vector 1.000 2.000)")) 
-	  (snd-display ";float-vector->string: ~A" (float-vector->string (float-vector 1.0 2.0))))
+	  (snd-display "float-vector->string: ~A" (float-vector->string (float-vector 1.0 2.0))))
       
-      (if (not (mus-arrays-equal? (float-vector 4 3 2 1) (reverse! (float-vector 1 2 3 4)))) (snd-display ";float-vector-reverse: ~A" (reverse! (float-vector 1 2 3 4))))
-      (if (not (mus-arrays-equal? (float-vector 3 2 1) (reverse! (float-vector 1 2 3)))) (snd-display ";float-vector-reverse: ~A" (reverse! (float-vector 1 2 3))))
-      (if (not (mus-arrays-equal? (float-vector 2 1) (reverse! (float-vector 1 2)))) (snd-display ";float-vector-reverse: ~A" (reverse! (float-vector 1 2))))
-      (if (not (mus-arrays-equal? (float-vector 1) (reverse! (float-vector 1)))) (snd-display ";float-vector-reverse: ~A" (reverse! (float-vector 1))))
-      (if (not (mus-arrays-equal? (float-vector 3 2 1) (reverse (float-vector 1 2 3)))) (snd-display ";reverse(float-vector): ~A" (reverse (float-vector 1 2 3))))
+      (if (not (mus-arrays-equal? (float-vector 4 3 2 1) (reverse! (float-vector 1 2 3 4)))) (snd-display "float-vector-reverse: ~A" (reverse! (float-vector 1 2 3 4))))
+      (if (not (mus-arrays-equal? (float-vector 3 2 1) (reverse! (float-vector 1 2 3)))) (snd-display "float-vector-reverse: ~A" (reverse! (float-vector 1 2 3))))
+      (if (not (mus-arrays-equal? (float-vector 2 1) (reverse! (float-vector 1 2)))) (snd-display "float-vector-reverse: ~A" (reverse! (float-vector 1 2))))
+      (if (not (mus-arrays-equal? (float-vector 1) (reverse! (float-vector 1)))) (snd-display "float-vector-reverse: ~A" (reverse! (float-vector 1))))
+      (if (not (mus-arrays-equal? (float-vector 3 2 1) (reverse (float-vector 1 2 3)))) (snd-display "reverse(float-vector): ~A" (reverse (float-vector 1 2 3))))
       (let* ((v (float-vector 3 2 1))
 	     (rv (reverse v)))
 	(if (not (mus-arrays-equal? rv (float-vector 1 2 3)))
-	    (snd-display ";reverse(float-vector) -> ~A ~A" v rv)))
+	    (snd-display "reverse(float-vector) -> ~A ~A" v rv)))
       
       (let ((v0 (make-float-vector 3)))
 	(let ((var (catch #t (lambda () (v0 10)) (lambda args args))))
 	  (if (not (eq? (car var) 'out-of-range))
-	      (snd-display ";float-vector-ref high index: ~A" var)))
+	      (snd-display "float-vector-ref high index: ~A" var)))
 	(let ((var (catch #t (lambda () (set! (v0 10) 1.0)) (lambda args args))))
 	  (if (not (eq? (car var) 'out-of-range))
-	      (snd-display ";float-vector-set! high index: ~A" var)))
+	      (snd-display "float-vector-set! high index: ~A" var)))
 	(let ((var (catch #t (lambda () (float-vector-move! v0 10 0 #t)) (lambda args args))))
 	  (if (not (eq? (car var) 'out-of-range))
-	      (snd-display ";float-vector-move! high index: ~A" var)))
+	      (snd-display "float-vector-move! high index: ~A" var)))
 	(let ((var (catch #t (lambda () (float-vector-move! v0 0 10 #t)) (lambda args args))))
 	  (if (not (eq? (car var) 'out-of-range))
-	      (snd-display ";float-vector-move! high 2 index: ~A" var)))
+	      (snd-display "float-vector-move! high 2 index: ~A" var)))
 	(let ((var (catch #t (lambda () (float-vector-move! v0 -10 0 #f)) (lambda args args))))
 	  (if (not (eq? (car var) 'out-of-range))
-	      (snd-display ";float-vector-move! back high index: ~A" var)))
+	      (snd-display "float-vector-move! back high index: ~A" var)))
 	(let ((var (catch #t (lambda () (float-vector-move! v0 0 -10 #f)) (lambda args args))))
 	  (if (not (eq? (car var) 'out-of-range))
-	      (snd-display ";float-vector-move! back high 2 index: ~A" var))))
+	      (snd-display "float-vector-move! back high 2 index: ~A" var))))
       
       (let ((v (float-vector 0.0 1.0 -2.0 -3.0)))
 	(if (not (mus-arrays-equal? (float-vector-abs! v) (float-vector 0.0 1.0 2.0 3.0)))
-	    (snd-display ";float-vector-abs! ~A" v)))
+	    (snd-display "float-vector-abs! ~A" v)))
 
       ;; float-vector-add! + shared-vector:
       (let* ((fv (float-vector 1 2 3 4 5))
 	     (sv (make-shared-vector fv '(4) 1)))
 	(float-vector-add! sv fv)
 	(if (not (mus-arrays-equal? fv (float-vector 1.0 3.0 6.0 10.0 15.0)))
-	    (snd-display ";float-vector+shared-vector: ~A" fv)))
+	    (snd-display "float-vector+shared-vector: ~A" fv)))
       
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
-	(if (fneq (v0 i) 1.0) (snd-display ";fill v0[~D] = ~F?" i (v0 i)))
-	(if (fneq (v1 i) 0.5) (snd-display ";preset v1[~D] = ~F?" i (v1 i))))
+	(if (fneq (v0 i) 1.0) (snd-display "fill v0[~D] = ~F?" i (v0 i)))
+	(if (fneq (v1 i) 0.5) (snd-display "preset v1[~D] = ~F?" i (v1 i))))
       (float-vector-add! v0 v1)
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
-	(if (fneq (v0 i) 1.5) (snd-display ";add v0[~D] = ~F?" i (v0 i))))
+	(if (fneq (v0 i) 1.5) (snd-display "add v0[~D] = ~F?" i (v0 i))))
       (float-vector-subtract! v0 v1)
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
-	(if (fneq (v0 i) 1.0) (snd-display ";subtract v0[~D] = ~F?" i (v0 i))))
+	(if (fneq (v0 i) 1.0) (snd-display "subtract v0[~D] = ~F?" i (v0 i))))
       (let ((v2 (copy v0)))
 	(do ((i 0 (+ i 1)))
 	    ((= i 10))
-	  (if (fneq (v2 i) 1.0) (snd-display ";copy v0[~D] = ~F?" i (v2 i))))
+	  (if (fneq (v2 i) 1.0) (snd-display "copy v0[~D] = ~F?" i (v2 i))))
 	(float-vector-scale! v2 5.0)
 	(do ((i 0 (+ i 1)))
 	    ((= i 10))
-	  (if (fneq (v2 i) 5.0) (snd-display ";scale v2[~D] = ~F?" i (v2 i))))
+	  (if (fneq (v2 i) 5.0) (snd-display "scale v2[~D] = ~F?" i (v2 i))))
 	(float-vector-offset! v0 -1.0)
 	(do ((i 0 (+ i 1)))
 	    ((= i 10))
-	  (if (fneq (v0 i) 0.0) (snd-display ";offset v0[~D] = ~F?" i (v0 i))))
+	  (if (fneq (v0 i) 0.0) (snd-display "offset v0[~D] = ~F?" i (v0 i))))
 	(float-vector-multiply! v2 v1)
 	(do ((i 0 (+ i 1)))
 	    ((= i 10))
-	  (if (fneq (v2 i) 2.5) (snd-display ";multiply v2[~D] = ~F?" i (v2 i))))
-	(if (fneq (float-vector-peak v2) 2.5) (snd-display ";v2's peak is ~F?" (float-vector-peak v2)))
+	  (if (fneq (v2 i) 2.5) (snd-display "multiply v2[~D] = ~F?" i (v2 i))))
+	(if (fneq (float-vector-peak v2) 2.5) (snd-display "v2's peak is ~F?" (float-vector-peak v2)))
 	(set! (v2 5) 123.0)
-	(if (fneq (float-vector-peak v2) 123.0) (snd-display ";v2's set peak is ~F?" (float-vector-peak v2)))
+	(if (fneq (float-vector-peak v2) 123.0) (snd-display "v2's set peak is ~F?" (float-vector-peak v2)))
 	(let ((vn (make-float-vector 32))
 	      (vb (make-float-vector 64))
 	      (vs (make-float-vector 3))
@@ -8728,24 +8728,24 @@ EDITS: 2
 	      ((= i 32))
 	    (set! (vn i) i))
 	  (let ((vnew (float-vector-subseq vn 3)))
-	    (if (fneq (vnew 0) 3.0) (snd-display ";float-vector-subseq[3:] ~A?" (vnew 0)))
-	    (if (not (= (length vnew) 29)) (snd-display ";float-vector-subseq[3:] length: ~A?" (length vnew))))
+	    (if (fneq (vnew 0) 3.0) (snd-display "float-vector-subseq[3:] ~A?" (vnew 0)))
+	    (if (not (= (length vnew) 29)) (snd-display "float-vector-subseq[3:] length: ~A?" (length vnew))))
 	  (let ((vnew (float-vector-subseq vn 3 8)))
-	    (if (fneq (vnew 0) 3.0) (snd-display ";float-vector-subseq[3:8] ~A?" (vnew 0)))
-	    (if (not (= (length vnew) 6)) (snd-display ";float-vector-subseq[3:8] length: ~A?" (length vnew))))
+	    (if (fneq (vnew 0) 3.0) (snd-display "float-vector-subseq[3:8] ~A?" (vnew 0)))
+	    (if (not (= (length vnew) 6)) (snd-display "float-vector-subseq[3:8] length: ~A?" (length vnew))))
 	  (float-vector-subseq vn 3 3 vs)
 	  (if (or (fneq (vs 0) 3.0)
 		  (fneq (vs 1) 0.0)
 		  (fneq (vs 2) 0.0))
-	      (snd-display ";float-vector-subseq[3:3->vs] ~A?" vs))
+	      (snd-display "float-vector-subseq[3:3->vs] ~A?" vs))
 	  (float-vector-subseq vn 0 32 vs)
-	  (if (not (= (length vs) 3)) (snd-display ";float-vector-subseq[0:32->vs] length: ~A?" (length vs)))
+	  (if (not (= (length vs) 3)) (snd-display "float-vector-subseq[0:32->vs] length: ~A?" (length vs)))
 	  (float-vector-subseq vn 2 3 vss)
-	  (if (fneq (vss 0) 2.0) (snd-display ";float-vector-subseq[2:3->vss] ~A?" (vss 0)))
+	  (if (fneq (vss 0) 2.0) (snd-display "float-vector-subseq[2:3->vss] ~A?" (vss 0)))
 	  (set! (vb 8) 123.0)
 	  (float-vector-subseq vn 1 8 vb)
-	  (if (fneq (vb 0) 1.0) (snd-display ";float-vector-subseq[1:8->vb] ~A?" (vb 0)))
-	  (if (fneq (vb 8) 123.0) (snd-display ";float-vector-subseq[1:8->vb][8] ~A?" (vb 8))))
+	  (if (fneq (vb 0) 1.0) (snd-display "float-vector-subseq[1:8->vb] ~A?" (vb 0)))
+	  (if (fneq (vb 8) 123.0) (snd-display "float-vector-subseq[1:8->vb][8] ~A?" (vb 8))))
 	
 	(let ((v (make-float-vector 20))
 	      (mn 1.0)
@@ -8756,38 +8756,38 @@ EDITS: 2
 	      (set! (v i) val)
 	      (set! mn (min mn val))
 	      (set! mx (max mx val))))
-	  (if (fneq (float-vector-min v) mn) (snd-display ";float-vector-min ran: ~A ~A" (float-vector-min v) mn))
-	  (if (fneq (float-vector-max v) mx) (snd-display ";float-vector-max ran: ~A ~A" (float-vector-max v) mx))
-	  (if (fneq (float-vector-peak v) (max (abs mn) (abs mx))) (snd-display ";float-vector-peak ran: ~A ~A ~A" (float-vector-peak v) mn mx)))
+	  (if (fneq (float-vector-min v) mn) (snd-display "float-vector-min ran: ~A ~A" (float-vector-min v) mn))
+	  (if (fneq (float-vector-max v) mx) (snd-display "float-vector-max ran: ~A ~A" (float-vector-max v) mx))
+	  (if (fneq (float-vector-peak v) (max (abs mn) (abs mx))) (snd-display "float-vector-peak ran: ~A ~A ~A" (float-vector-peak v) mn mx)))
 	
 	(let ((v1 (make-float-vector 3 .1))
 	      (v2 (make-float-vector 4 .2)))
 	  (let ((val (float-vector+ (copy v1) v2)))
-	    (if (not (mus-arrays-equal? val (float-vector .3 .3 .3))) (snd-display ";float-vector+ .1 .2: ~A" val)))
+	    (if (not (mus-arrays-equal? val (float-vector .3 .3 .3))) (snd-display "float-vector+ .1 .2: ~A" val)))
 	  (set! (v1 1) .3)
 	  (let ((val (float-vector+ (copy v1) v2)))
-	    (if (not (mus-arrays-equal? val (float-vector .3 .5 .3))) (snd-display ";float-vector+ .1 .2 (1): ~A" val)))
+	    (if (not (mus-arrays-equal? val (float-vector .3 .5 .3))) (snd-display "float-vector+ .1 .2 (1): ~A" val)))
 	  (let ((val (float-vector+ (copy v1) 2.0)))
-	    (if (not (mus-arrays-equal? val (float-vector 2.1 2.3 2.1))) (snd-display ";float-vector+ .1 2.0: ~A" val)))
+	    (if (not (mus-arrays-equal? val (float-vector 2.1 2.3 2.1))) (snd-display "float-vector+ .1 2.0: ~A" val)))
 	  (let ((val (float-vector+ 2.0 (copy v1))))
-	    (if (not (mus-arrays-equal? val (float-vector 2.1 2.3 2.1))) (snd-display ";float-vector+ .1 2.0 (1): ~A" val)))
+	    (if (not (mus-arrays-equal? val (float-vector 2.1 2.3 2.1))) (snd-display "float-vector+ .1 2.0 (1): ~A" val)))
 	  (let ((val (float-vector* 2.0 (copy v1))))
-	    (if (not (mus-arrays-equal? val (float-vector .2 .6 .2))) (snd-display ";float-vector* 2.0: ~A" val)))
+	    (if (not (mus-arrays-equal? val (float-vector .2 .6 .2))) (snd-display "float-vector* 2.0: ~A" val)))
 	  (let ((val (float-vector* (copy v1) 2.0)))
-	    (if (not (mus-arrays-equal? val (float-vector .2 .6 .2))) (snd-display ";float-vector* 2.0 (1): ~A" val)))
+	    (if (not (mus-arrays-equal? val (float-vector .2 .6 .2))) (snd-display "float-vector* 2.0 (1): ~A" val)))
 	  (let ((val (float-vector* (copy v1) v2)))
-	    (if (not (mus-arrays-equal? val (float-vector .02 .06 .02))) (snd-display ";float-vector* v1 v2: ~A" val))))
+	    (if (not (mus-arrays-equal? val (float-vector .02 .06 .02))) (snd-display "float-vector* v1 v2: ~A" val))))
 	
 	(fill! v0 1.0)
 	(do ((i 0 (+ i 1)))
 	    ((= i 10))
-	  (if (fneq (v0 i) 1.0) (snd-display ";map v0[~D] = ~F?" i (v0 i)))))
+	  (if (fneq (v0 i) 1.0) (snd-display "map v0[~D] = ~F?" i (v0 i)))))
       
       (if (fneq ((float-vector 1.0 2.0 3.0) 1) 2.0)
-	  (snd-display ";(float-vector...) = ~A?" ((float-vector 1.0 2.0 3.0) 1)))
+	  (snd-display "(float-vector...) = ~A?" ((float-vector 1.0 2.0 3.0) 1)))
       (let ((v1 (float-vector 1 2 3 4)))
 	(if (fneq (v1 1) 2.0)
-	    (snd-display ";(v1 1) = ~A?" (v1 1))))
+	    (snd-display "(v1 1) = ~A?" (v1 1))))
       
       (when with-gui
 	(let ((ind (open-sound "oboe.snd")))
@@ -8799,24 +8799,24 @@ EDITS: 2
 	  ;; try some special cases
 	  (apply-controls)
 	  (if (not (= (edit-position ind) 0))
-	      (snd-display ";apply-controls with no:change: ~A: ~A" (edits ind) (edit-tree ind)))
+	      (snd-display "apply-controls with no:change: ~A: ~A" (edits ind) (edit-tree ind)))
 	  (set! (speed-control ind) -1.0)
 	  (apply-controls)
 	  (if (not (= (edit-position ind) 1))
-	      (snd-display ";apply-controls with srate -1.0: ~A ~A ~A" (edit-position ind) (edits ind) (edit-tree ind)))
+	      (snd-display "apply-controls with srate -1.0: ~A ~A ~A" (edit-position ind) (edits ind) (edit-tree ind)))
 	  (if (> (abs (- (framples ind 0) (framples ind 0 0))) 2)
-	      (snd-display ";apply-controls srate -1.0 lengths: ~A ~A" (framples ind 0) (framples ind 0 0)))
+	      (snd-display "apply-controls srate -1.0 lengths: ~A ~A" (framples ind 0) (framples ind 0 0)))
 	  (if (or (fneq (maxamp) .147)
 		  (< (abs (sample 9327)) .01))
-	      (snd-display ";apply-controls srate -1.0 samples: ~A ~A" (maxamp) (sample 9327)))
-	  (if (fneq (speed-control ind) 1.0) (snd-display ";apply-controls -1.0 -> ~A?" (speed-control ind)))
+	      (snd-display "apply-controls srate -1.0 samples: ~A ~A" (maxamp) (sample 9327)))
+	  (if (fneq (speed-control ind) 1.0) (snd-display "apply-controls -1.0 -> ~A?" (speed-control ind)))
 	  
 	  (hook-push after-apply-controls-hook (lambda (hook) 
 						 (let ((tag (catch #t 
 							      apply-controls 
 							      (lambda args args))))
 						   (if (not (eq? (car tag) 'cannot-apply-controls))
-						       (snd-display ";after-apply-controls-hook: recursive attempt apply-controls: ~A" tag)))))
+						       (snd-display "after-apply-controls-hook: recursive attempt apply-controls: ~A" tag)))))
 	  (apply-controls)
 	  (set! (hook-functions after-apply-controls-hook) ())
 	  (revert-sound)
@@ -8826,40 +8826,40 @@ EDITS: 2
 		   (lambda () (float-vector-subseq (make-float-vector 3) 1 0))
 		   (lambda args (car args)))))
 	(if (not (eq? tag 'out-of-range))
-	    (snd-display ";float-vector-subseq 1 0: ~A" tag)))
+	    (snd-display "float-vector-subseq 1 0: ~A" tag)))
       (let ((v0 (make-float-vector 5 .1))
 	    (v1 (make-float-vector 6 .2)))
 	(float-vector-add! v0 v1 2)
 	(if (not (mus-arrays-equal? v0 (float-vector .1 .1 .3 .3 .3)))
-	    (snd-display ";float-vector-add + offset: ~A" v0)))
+	    (snd-display "float-vector-add + offset: ~A" v0)))
       
       ;; check s7 stuff with float-vectors
       (let ((v (float-vector 1.0 2.0 3.0)))
 	(if (not (string=? (format #f "~{~A~^-~}" v) "1.0-2.0-3.0"))
-	    (snd-display ";float-vector in format {}: ~S" (format #f "~{~A~^-~}" v)))
+	    (snd-display "float-vector in format {}: ~S" (format #f "~{~A~^-~}" v)))
 	(if (not (= (length v) 3))
-	    (snd-display ";float-vector s7 len: ~A" (length v)))
+	    (snd-display "float-vector s7 len: ~A" (length v)))
 	(let ((val (map floor v)))
 	  (if (not (equal? val '(1 2 3)))
-	      (snd-display ";float-vector s7 map: ~A" val)))
+	      (snd-display "float-vector s7 map: ~A" val)))
 	(let ((val 0))
 	  (for-each
 	   (lambda (x)
 	     (set! val (+ val (floor x))))
 	   v)
 	  (if (not (eqv? val 6))
-	      (snd-display ";float-vector s7 for-each: ~A" val)))
+	      (snd-display "float-vector s7 for-each: ~A" val)))
 	(set! v (reverse v))
 	(if (not (vmus-arrays-equal? v (float-vector 3.0 2.0 1.0)))
-	    (snd-display ";float-vector s7 reverse: ~A" v))
+	    (snd-display "float-vector s7 reverse: ~A" v))
 	(fill! v 12.0)
 	(if (not (vmus-arrays-equal? v (float-vector 12.0 12.0 12.0)))
-	    (snd-display ";float-vector s7 fill: ~A" (fill! v 12.0))))
+	    (snd-display "float-vector s7 fill: ~A" (fill! v 12.0))))
       
       (let ((sum 0)) 
 	(for-each (lambda (n) (set! sum (+ sum n))) (float-vector 1 2 3))
 	(if (not (morally-equal? sum 6.0))
-	    (snd-display ";object for-each (float-vector): ~A" sum)))
+	    (snd-display "object for-each (float-vector): ~A" sum)))
       
       (do ((x (float-vector 0.0))
 	   (osc (make-oscil :frequency 440))
@@ -8869,9 +8869,9 @@ EDITS: 2
 	(float-vector-set! x 0 (* (env e1) (oscil osc (float-vector-ref x 0)))))
       
       (if (fneq (float-vector-equal? (float-vector 1.0) (float-vector 1.1) .1) .0909)
-	  (snd-display ";float-vector-equal? 0.0909: ~A" (float-vector-equal? (float-vector 1.0) (float-vector 1.1) .1)))
+	  (snd-display "float-vector-equal? 0.0909: ~A" (float-vector-equal? (float-vector 1.0) (float-vector 1.1) .1)))
       (if (float-vector-equal? (float-vector 1.0) (float-vector 1.1) .01)
-	  (snd-display ";float-vector-equal? #f: ~A" (float-vector-equal? (float-vector 1.0) (float-vector 1.1) .01))))))
+	  (snd-display "float-vector-equal? #f: ~A" (float-vector-equal? (float-vector 1.0) (float-vector 1.1) .01))))))
 
 
 ;;; ---------------- test 7: colors ----------------
@@ -8893,14 +8893,14 @@ EDITS: 2
 			     (getfnc ((car lst) 1))
 			     (setfnc (lambda (val) (set! (getfnc) val)))
 			     (initval ((car lst) 2)))
-			(if (not (color? initval)) (snd-display ";~A not color?" initval))
+			(if (not (color? initval)) (snd-display "~A not color?" initval))
 			;; we'll get warnings here if the cell chosen didn't exactly match the one requested -- not a bug
 			;; (if (not (equal? (getfnc) initval))
-			;;	  (snd-display ";~A is not ~A (~A)?" name initval (getfnc)))
+			;;	  (snd-display "~A is not ~A (~A)?" name initval (getfnc)))
 			(let ((beige (*rgb* 'beige)))
 			  (setfnc beige)
 			  (if (not (equal? (getfnc) beige))
-			      (snd-display ";set-~A is not beige (~A)?" name (getfnc))))
+			      (snd-display "set-~A is not beige (~A)?" name (getfnc))))
 			(setfnc initval)
 			(test-color (cdr lst)))))))
 	
@@ -8911,11 +8911,11 @@ EDITS: 2
 	       (c3 (catch 'no-such-color
 		     (lambda () (make-color 0 0 1))
 		     (lambda args #f))))
-	  (if (not (equal? c1 c2)) (snd-display ";color not equal? ~A ~A?" c1 c2))
-	  (if (not (eq? c1 c2)) (snd-display ";color not eq? ~A ~A?" c1 c2))
-	  (if (eq? c1 c3) (snd-display ";diff color eq? ~A ~A?" c1 c3))
+	  (if (not (equal? c1 c2)) (snd-display "color not equal? ~A ~A?" c1 c2))
+	  (if (not (eq? c1 c2)) (snd-display "color not eq? ~A ~A?" c1 c2))
+	  (if (eq? c1 c3) (snd-display "diff color eq? ~A ~A?" c1 c3))
 	  (if (not (member (color->list c1) '((0.0 0.0 1.0) (0.0 0.0 1.0 1.0))))
-	      (snd-display ";color->list: ~A ~A?" c1 (color->list c1))))
+	      (snd-display "color->list: ~A ~A?" c1 (color->list c1))))
 	
 	(if (not (provided? 'snd-motif))
 	    (let* ((c1 (catch 'no-such-color
@@ -8925,13 +8925,13 @@ EDITS: 2
 		   (c3 (catch 'no-such-color
 			 (lambda () (make-color 0 0 1 0.5))
 			 (lambda args #f))))
-	      (if (not (equal? c1 c2)) (snd-display ";alpha color not equal? ~A ~A?" c1 c2))
-	      (if (not (eq? c1 c2)) (snd-display ";alpha color not eq? ~A ~A?" c1 c2))
-	      (if (eq? c1 c3) (snd-display ";alpha diff color eq? ~A ~A?" c1 c3))
+	      (if (not (equal? c1 c2)) (snd-display "alpha color not equal? ~A ~A?" c1 c2))
+	      (if (not (eq? c1 c2)) (snd-display "alpha color not eq? ~A ~A?" c1 c2))
+	      (if (eq? c1 c3) (snd-display "alpha diff color eq? ~A ~A?" c1 c3))
 	      (let ((c4 (catch 'no-such-color
 			  (lambda () (make-color 0 0 1 0.0))
 			  (lambda args #f))))
-		(if (equal? c1 c4) (snd-display ";alpha color equal? ~A ~A?" c1 c2)))))
+		(if (equal? c1 c4) (snd-display "alpha color equal? ~A ~A?" c1 c2)))))
 	
 	(do ((i 0 (+ i 1))) 
 	    ((not (colormap? (integer->colormap i))))
@@ -8943,7 +8943,7 @@ EDITS: 2
 				 '(1.0 0.0 0.0) '(0.0 0.0 1.0))
 			   i)))
 	    (if (not (feql val true-val))
-		(snd-display ";colormap-ref ~A: ~A (~A)" i val true-val))))
+		(snd-display "colormap-ref ~A: ~A (~A)" i val true-val))))
 	(catch #t ; might be undefined var as well as no-such-color
 	  (lambda () 
 	    (test-color
@@ -8975,19 +8975,19 @@ EDITS: 2
 		(set! (foreground-color ind 0 cursor-context) red)
 		(let ((col (color->list (foreground-color ind 0 cursor-context))))
 		  (if (not (feql col (color->list red)))
-		      (snd-display ";set foreground cursor color: ~A ~A" col (color->list red))))
+		      (snd-display "set foreground cursor color: ~A ~A" col (color->list red))))
 		(set! (foreground-color) blue)
 		(let ((col (color->list (foreground-color))))
 		  (if (not (feql col (color->list blue)))
-		      (snd-display ";set foreground-color: ~A ~A" col (color->list blue))))
+		      (snd-display "set foreground-color: ~A ~A" col (color->list blue))))
 		(set! (foreground-color ind) red)
 		(let ((col (color->list (foreground-color ind))))
 		  (if (not (feql col (color->list red)))
-		      (snd-display ";set foreground-color with ind (red): ~A ~A" col (color->list red))))
+		      (snd-display "set foreground-color with ind (red): ~A ~A" col (color->list red))))
 		(set! (foreground-color ind) black)
 		(let ((col (color->list (foreground-color ind))))
 		  (if (not (feql col (color->list black)))
-		      (snd-display ";set foreground-color with ind (black): ~A ~A" col (color->list black)))))
+		      (snd-display "set foreground-color with ind (black): ~A ~A" col (color->list black)))))
 	      (set! *selected-graph-color* (make-color-with-catch 0.96 0.96 0.86))
 	      (set! *data-color* black)
 	      (set! *selected-data-color* blue)
@@ -8996,7 +8996,7 @@ EDITS: 2
 	  (lambda args args))
 	
 	(if (not (= (length jet-colormap) *colormap-size*))
-	    (snd-display ";jet-colormap length: ~A ~A" (length jet-colormap) *colormap-size*))
+	    (snd-display "jet-colormap length: ~A ~A" (length jet-colormap) *colormap-size*))
 	
 	(for-each 
 	 (lambda (n err)
@@ -9032,7 +9032,7 @@ EDITS: 2
 				(cfneq r2 r1) 
 				(cfneq g2 g1) 
 				(cfneq b2 b1)))
-		       (snd-display ";bone ~,3F (~,3F): ~{~,3F ~} ~{~,3F ~}" 
+		       (snd-display "bone ~,3F (~,3F): ~{~,3F ~} ~{~,3F ~}" 
 				    x (max (abs (- r r1)) (abs (- g g1)) (abs (- b b1))) (list r g b) (list r1 g1 b1))))))
 	     
 	     (do ((i 0 (+ i 1))) ((= i 10))
@@ -9047,7 +9047,7 @@ EDITS: 2
 		       (g1 (rgb 1))
 		       (b1 (rgb 2)))
 		   (if (and (< x inv) (or (cfneq r r1) (cfneq g g1) (cfneq b b1)))
-		       (snd-display ";copper ~,3F (~,3F): ~{~,3F ~} ~{~,3F ~}" 
+		       (snd-display "copper ~,3F (~,3F): ~{~,3F ~} ~{~,3F ~}" 
 				    x (max (abs (- r r1)) (abs (- g g1)) (abs (- b b1))) (list r g b) (list r1 g1 b1))))))
 	     
 	     (do ((i 0 (+ i 1))) ((= i 10))
@@ -9059,7 +9059,7 @@ EDITS: 2
 		       (g1 (rgb 1))
 		       (b1 (rgb 2)))
 		   (if (and (< x inv) (or (cfneq r r1) (cfneq x g1) (cfneq b b1)))
-		       (snd-display ";winter ~,3F (~,3F): ~{~,3F ~} ~{~,3F ~}" 
+		       (snd-display "winter ~,3F (~,3F): ~{~,3F ~} ~{~,3F ~}" 
 				    x (max (abs (- r r1)) (abs (- x g1)) (abs (- b b1))) (list r x b) (list r1 g1 b1))))))
 	     
 	     (do ((i 0 (+ i 1))) ((= i 10))
@@ -9071,7 +9071,7 @@ EDITS: 2
 		       (g1 (rgb 1))
 		       (b1 (rgb 2)))
 		   (if (and (< x inv) (or (cfneq r r1) (cfneq x g1) (cfneq b b1)))
-		       (snd-display ";autumn ~,3F (~,3F): ~{~,3F ~} ~{~,3F ~}" 
+		       (snd-display "autumn ~,3F (~,3F): ~{~,3F ~} ~{~,3F ~}" 
 				    x (max (abs (- r r1)) (abs (- x g1)) (abs (- b b1))) (list r x b) (list r1 g1 b1))))))
 	     
 	     (do ((i 0 (+ i 1))) ((= i 10))
@@ -9083,7 +9083,7 @@ EDITS: 2
 		       (g1 (rgb 1))
 		       (b1 (rgb 2)))
 		   (if (and (< x inv) (or (cfneq x r1) (cfneq g g1) (cfneq b b1)))
-		       (snd-display ";cool ~,3F (~,3F): ~{~,3F ~} ~{~,3F ~}" 
+		       (snd-display "cool ~,3F (~,3F): ~{~,3F ~} ~{~,3F ~}" 
 				    x (max (abs (- x r1)) (abs (- g g1)) (abs (- b b1))) (list x g b) (list r1 g1 b1))))))
 	     
 	     (do ((i 0 (+ i 1))) ((= i 10))
@@ -9104,7 +9104,7 @@ EDITS: 2
 		       (g1 (rgb 1))
 		       (b1 (rgb 2)))
 		   (if (and (< x inv) (or (cfneq r r1) (cfneq g g1) (cfneq b b1)))
-		       (snd-display ";hot ~,3F (~,3F): ~{~,3F ~} ~{~,3F ~}" 
+		       (snd-display "hot ~,3F (~,3F): ~{~,3F ~} ~{~,3F ~}" 
 				    x (max (abs (- r r1)) (abs (- g g1)) (abs (- b b1))) (list r g b) (list r1 g1 b1))))))
 	     
 	     (do ((i 0 (+ i 1))) ((= i 10))
@@ -9127,7 +9127,7 @@ EDITS: 2
 		       (g1 (rgb 1))
 		       (b1 (rgb 2)))
 		   (if (and (< x inv) (or (cfneq r r1) (cfneq g g1) (cfneq b b1)))
-		       (snd-display ";jet ~,3F (~,3F): ~{~,3F ~} ~{~,3F ~}" 
+		       (snd-display "jet ~,3F (~,3F): ~{~,3F ~} ~{~,3F ~}" 
 				    x (max (abs (- r r1)) (abs (- g g1)) (abs (- b b1))) (list r g b) (list r1 g1 b1))))))
 	     
 	     (when (colormap? pink-colormap)
@@ -9149,7 +9149,7 @@ EDITS: 2
 			 (g1 (rgb 1))
 			 (b1 (rgb 2)))
 		     (if (and (< x inv) (or (cfneq r r1) (cfneq g g1) (cfneq b b1)))
-			 (snd-display ";pink ~,3F (~,3F): ~{~,3F ~} ~{~,3F ~}" 
+			 (snd-display "pink ~,3F (~,3F): ~{~,3F ~} ~{~,3F ~}" 
 				      x (max (abs (- r r1)) (abs (- g g1)) (abs (- b b1))) (list r g b) (list r1 g1 b1)))))))
 	     
 	     (do ((i 0 (+ i 1))) ((= i 10))
@@ -9161,7 +9161,7 @@ EDITS: 2
 		       (g1 (rgb 1))
 		       (b1 (rgb 2)))
 		   (if (and (< x inv) (or (cfneq r r1) (cfneq x g1) (cfneq b b1)))
-		       (snd-display ";spring ~,3F (~,3F): ~{~,3F ~} ~{~,3F ~}" 
+		       (snd-display "spring ~,3F (~,3F): ~{~,3F ~} ~{~,3F ~}" 
 				    x (max (abs (- r r1)) (abs (- x g1)) (abs (- b b1))) (list r x b) (list r1 g1 b1))))))
 	     
 	     (do ((i 0 (+ i 1))) ((= i 10))
@@ -9171,7 +9171,7 @@ EDITS: 2
 		       (g1 (rgb 1))
 		       (b1 (rgb 2)))
 		   (if (and (< x inv) (or (cfneq x r1) (cfneq x g1) (cfneq x b1)))
-		       (snd-display ";gray ~,3F (~,3F): ~{~,3F ~} ~{~,3F ~}" 
+		       (snd-display "gray ~,3F (~,3F): ~{~,3F ~} ~{~,3F ~}" 
 				    x (max (abs (- x r1)) (abs (- x g1)) (abs (- x b1))) (list x x x) (list r1 g1 b1))))))
 	     
 	     (do ((i 0 (+ i 1))) ((= i 10))
@@ -9184,7 +9184,7 @@ EDITS: 2
 		       (g1 (rgb 1))
 		       (b1 (rgb 2)))
 		   (if (and (< x inv) (or (cfneq r r1) (cfneq g g1) (cfneq b b1)))
-		       (snd-display ";black-and-white ~,3F (~,3F): ~{~,3F ~} ~{~,3F ~}" 
+		       (snd-display "black-and-white ~,3F (~,3F): ~{~,3F ~} ~{~,3F ~}" 
 				    x (max (abs (- r r1)) (abs (- g g1)) (abs (- b b1))) (list r g b) (list r1 g1 b1))))))
 	     
 	     (do ((i 0 (+ i 1))) ((= i 10))
@@ -9196,7 +9196,7 @@ EDITS: 2
 		       (g1 (rgb 1))
 		       (b1 (rgb 2)))
 		   (if (and (< x inv) (or (cfneq x r1) (cfneq g g1) (cfneq b b1)))
-		       (snd-display ";summer ~,3F (~,3F): ~{~,3F ~} ~{~,3F ~}" 
+		       (snd-display "summer ~,3F (~,3F): ~{~,3F ~} ~{~,3F ~}" 
 				    x (max (abs (- x r1)) (abs (- g g1)) (abs (- b b1))) (list x g b) (list r1 g1 b1))))))
 	     
 	     (do ((i 0 (+ i 1))) ((= i 10))
@@ -9217,7 +9217,7 @@ EDITS: 2
 		       (g1 (rgb 1))
 		       (b1 (rgb 2)))
 		   (if (and (< x inv) (or (cfneq r r1) (cfneq g g1) (cfneq b b1)))
-		       (snd-display ";rainbow ~,3F (~,3F): ~{~,3F ~} ~{~,3F ~}" 
+		       (snd-display "rainbow ~,3F (~,3F): ~{~,3F ~} ~{~,3F ~}" 
 				    x (max (abs (- r r1)) (abs (- g g1)) (abs (- b b1))) (list r g b) (list r1 g1 b1))))))
 	     
 	     (do ((i 0 (+ i 1))) ((= i 10))
@@ -9230,7 +9230,7 @@ EDITS: 2
 			      (feql rgb '(0 1 0))
 			      (feql rgb '(0 0 1))
 			      (feql rgb '(0.66670000 0 1))))
-		     (snd-display ";prism ~A" rgb))))
+		     (snd-display "prism ~A" rgb))))
 	     
 	     (do ((i 0 (+ i 1))) ((= i 10))
 	       (let* ((x (random 1.0))
@@ -9240,34 +9240,34 @@ EDITS: 2
 			      (feql rgb '(1 1 1))
 			      (feql rgb '(0 0 1))
 			      (feql rgb '(0 0 0))))
-		     (snd-display ";flag: ~A" rgb))))
+		     (snd-display "flag: ~A" rgb))))
 	     ))
 	 '(512 64)
 	 '(0.005 0.04))
 	
 	(let ((ind (add-colormap "white" (lambda (size) (list (make-float-vector size 1.0) (make-float-vector size 1.0) (make-float-vector size 1.0))))))
 	  (if (not (colormap? ind))
-	      (snd-display ";add-colormap ~A: ~A" ind (colormap? ind)))
+	      (snd-display "add-colormap ~A: ~A" ind (colormap? ind)))
 	  (if (not (feql (colormap-ref ind 0.5) '(1.0 1.0 1.0)))
-	      (snd-display ";white colormap: ~A" (colormap-ref ind 0.5)))
+	      (snd-display "white colormap: ~A" (colormap-ref ind 0.5)))
 	  (let ((tag (catch #t (lambda () (set! *colormap* ind)) (lambda args args))))
 	    (if (or (eq? tag 'no-such-colormap)
 		    (not (equal? *colormap* ind))
 		    (not (= (colormap->integer *colormap*) (colormap->integer ind))))
-		(snd-display ";colormap white: ~A ~A ~A" tag ind *colormap*)))
+		(snd-display "colormap white: ~A ~A ~A" tag ind *colormap*)))
 	  (if (not (string=? (colormap-name ind) "white"))
-	      (snd-display ";white colormap name: ~A" (colormap-name ind))))
+	      (snd-display "white colormap name: ~A" (colormap-name ind))))
 	
 	(set! *colormap-size* old-colormap-size)
 	(if (not (= *colormap-size* old-colormap-size))
-	    (snd-display ";set colormap-size: ~A ~A" *colormap-size* old-colormap-size))
+	    (snd-display "set colormap-size: ~A ~A" *colormap-size* old-colormap-size))
 	
 	(if (not (string=? (colormap-name black-and-white-colormap) "black-and-white"))
-	    (snd-display ";black-and-white: ~A" (colormap-name black-and-white-colormap)))
+	    (snd-display "black-and-white: ~A" (colormap-name black-and-white-colormap)))
 	(if (not (string=? (colormap-name gray-colormap) "gray"))
-	    (snd-display ";gray: ~A" (colormap-name gray-colormap)))
+	    (snd-display "gray: ~A" (colormap-name gray-colormap)))
 	(if (not (string=? (colormap-name rainbow-colormap) "rainbow"))
-	    (snd-display ";rainbow: ~A" (colormap-name rainbow-colormap)))
+	    (snd-display "rainbow: ~A" (colormap-name rainbow-colormap)))
 	
 	(let ()
 	  (add-colormap "purple" 
@@ -9316,11 +9316,11 @@ EDITS: 2
 	  
 	  (delete-colormap pink-colormap)
 	  (if (colormap? pink-colormap)
-	      (snd-display ";delete-colormap ~A: ~A" pink-colormap (colormap? pink-colormap)))
+	      (snd-display "delete-colormap ~A: ~A" pink-colormap (colormap? pink-colormap)))
 	  (let ((tag (catch #t (lambda () (set! *colormap* pink-colormap)) (lambda args args))))
 	    (if (or (not (eq? (car tag) 'no-such-colormap))
 		    (equal? *colormap* pink-colormap))
-		(snd-display ";delete pink colormap: ~A ~A ~A" tag pink-colormap *colormap*)))
+		(snd-display "delete pink colormap: ~A ~A ~A" tag pink-colormap *colormap*)))
 	  
 	  (for-each
 	   (lambda (n)
@@ -9338,7 +9338,7 @@ EDITS: 2
 		       (g1 (rgb 1))
 		       (b1 (rgb 2)))
 		   (if (and n2 (< x n/n) (or (cfneq r r1) (cfneq g g1) (cfneq b b1)))
-		       (snd-display ";copper size reset ~A: ~,3F (~,3F): ~{~,3F ~} ~{~,3F ~}" 
+		       (snd-display "copper size reset ~A: ~,3F (~,3F): ~{~,3F ~} ~{~,3F ~}" 
 				    n x (max (abs (- r r1)) (abs (- g g1)) (abs (- b b1))) (list r g b) (list r1 g1 b1)))))))
 	   '(1024 256 2 512))
 	  (set! *colormap-size* 512))
@@ -9370,13 +9370,13 @@ EDITS: 2
   (define (copy-test o)
     (let ((p (copy o)))
       (if (not (equal? o p))
-	  (snd-display ";copy ~A != ~A~%" o p))
+	  (snd-display "copy ~A != ~A~%" o p))
       (mus-apply o 1.0)
       (if (equal? o p)
-	  (snd-display ";copy/run ~A == ~A~%" o p))
+	  (snd-display "copy/run ~A == ~A~%" o p))
       (set! p (mus-copy o))
       (if (not (equal? o p))
-	  (snd-display ";mus-copy ~A != ~A~%" o p))))
+	  (snd-display "mus-copy ~A != ~A~%" o p))))
   
   (define (osc-opt)
     (let ((g1 (make-oscil 1000))
@@ -9732,38 +9732,38 @@ EDITS: 2
     
     (let ((vals (lpc-predict (float-vector 0 1 2 3 4 5 6 7) 8 (lpc-coeffs (float-vector 0 1 2 3 4 5 6 7) 8 4) 4 2)))
       (if (not (mus-arrays-equal? vals (float-vector 7.906 8.557)))
-	  (snd-display ";predict ramp: ~A" vals)))
+	  (snd-display "predict ramp: ~A" vals)))
     (let ((vals (lpc-predict (float-vector 0 1 2 3 4 5 6 7) 8 (lpc-coeffs (float-vector 0 1 2 3 4 5 6 7) 8 7) 7 2)))
       (if (not (mus-arrays-equal? vals (float-vector 7.971 8.816))) 
-	  (snd-display ";predict ramp 1: ~A" vals)))
+	  (snd-display "predict ramp 1: ~A" vals)))
     (let ((vals (lpc-predict (float-vector 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14) 15 
 			     (lpc-coeffs (float-vector 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14) 15 7) 7 5)))
       (if (not (mus-arrays-equal? vals (float-vector 14.999 15.995 16.980 17.940 18.851)))
-	  (snd-display ";predict ramp 2: ~A" vals)))
+	  (snd-display "predict ramp 2: ~A" vals)))
     (let ((vals (lpc-predict (float-vector 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14) 15 
 			     (lpc-coeffs (float-vector 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14) 15 14) 14 5)))
       (if (not (mus-arrays-equal? vals (float-vector 15.000 16.000 16.998 17.991 18.971)))
-	  (snd-display ";predict ramp 3: ~A" vals)))
+	  (snd-display "predict ramp 3: ~A" vals)))
     (let ((vals (lpc-predict (make-sine) 16 (lpc-coeffs (make-sine) 16 8) 8 2)))
       (if (not (mus-arrays-equal? vals (float-vector 0.000 0.383)))
-	  (snd-display ";predict sine: ~A" vals)))
+	  (snd-display "predict sine: ~A" vals)))
     (let ((vals (lpc-predict (make-sine) 16 (lpc-coeffs (make-sine) 16 8) 8 8)))
       (if (not (mus-arrays-equal? vals (float-vector 0.000 0.383 0.707 0.924 1.000 0.924 0.707 0.383)))
-	  (snd-display ";predict sine 1: ~A" vals)))
+	  (snd-display "predict sine 1: ~A" vals)))
     (let ((vals (lpc-predict (make-sines 32) 32 (lpc-coeffs (make-sines 32) 32 8) 8 8)))
       (if (not (mus-arrays-equal? vals (float-vector 0.000 0.379 0.686 0.880 0.970 1.001 1.022 1.053)))
-	  (snd-display ";predict sines: ~A" vals)))
+	  (snd-display "predict sines: ~A" vals)))
     (let ((vals (lpc-predict (make-sines 32) 32 (lpc-coeffs (make-sines 32) 32 16) 16 8)))
       (if (not (or (mus-arrays-equal? vals (float-vector 0.000 0.379 0.684 0.876 0.961 0.987 1.006 1.046))
 		   (mus-arrays-equal? vals (float-vector 0.000 0.379 0.685 0.876 0.961 0.985 0.998 1.029))))
-	  (snd-display ";predict sines 1: ~A" vals)))
+	  (snd-display "predict sines 1: ~A" vals)))
     (let ((vals (lpc-predict (make-sines 32) 32 (lpc-coeffs (make-sines 32) 32 30) 30 4)))
       (if (not (or (mus-arrays-equal? vals (float-vector 0.000 0.379 0.685 0.878))
 		   (mus-arrays-equal? vals (float-vector 0.000 0.379 0.684 0.875)))) ; double float-vectors
-	  (snd-display ";predict sines 2: ~A" vals)))
+	  (snd-display "predict sines 2: ~A" vals)))
     (let ((vals (lpc-predict (make-sines 64) 64 (lpc-coeffs (make-sines 64) 64 32) 32 8)))
       (if (not (mus-arrays-equal? vals (float-vector 0.000 0.195 0.379 0.545 0.684 0.795 0.875 0.927)))
-	  (snd-display ";predict sines 3: ~A" vals))))
+	  (snd-display "predict sines 3: ~A" vals))))
   
   ;; ----------------
   (define (test-unclip-channel)
@@ -9781,9 +9781,9 @@ EDITS: 2
 	     (umax (vals 1))
 	     (clips (vals 3))
 	     (lmax (vals 5)))
-	(if (not (= clips 20)) (snd-display ";unclip-channel 0 oboe clips: ~A" clips))
-	(if (not (= lmax 1)) (snd-display ";unclip-channel 0 oboe max len: ~A" lmax))
-	(if (fneq umax .999) (snd-display ";unclip-channel 0 oboe maxamp: ~A" umax)))
+	(if (not (= clips 20)) (snd-display "unclip-channel 0 oboe clips: ~A" clips))
+	(if (not (= lmax 1)) (snd-display "unclip-channel 0 oboe max len: ~A" lmax))
+	(if (fneq umax .999) (snd-display "unclip-channel 0 oboe maxamp: ~A" umax)))
       
       (revert-sound ind)
       (do ((data (make-float-vector 100))
@@ -9799,9 +9799,9 @@ EDITS: 2
 	     (umax (vals 1))
 	     (clips (vals 3))
 	     (lmax (vals 5)))
-	(if (not (= clips 1)) (snd-display ";unclip-channel 1 sine clips: ~A" clips))
-	(if (not (= lmax 2)) (snd-display ";unclip-channel 1 sine max len: ~A" lmax))
-	(if (fneq umax .999) (snd-display ";unclip-channel 1 sine maxamp: ~A" umax)))
+	(if (not (= clips 1)) (snd-display "unclip-channel 1 sine clips: ~A" clips))
+	(if (not (= lmax 2)) (snd-display "unclip-channel 1 sine max len: ~A" lmax))
+	(if (fneq umax .999) (snd-display "unclip-channel 1 sine maxamp: ~A" umax)))
       
       (revert-sound ind)
       (do ((data (make-float-vector 100))
@@ -9817,9 +9817,9 @@ EDITS: 2
 	     (umax (vals 1))
 	     (clips (vals 3))
 	     (lmax (vals 5)))
-	(if (not (= clips 1)) (snd-display ";unclip-channel 2 sine clips: ~A" clips))
-	(if (not (= lmax 3)) (snd-display ";unclip-channel 2 sine max len: ~A" lmax))
-	(if (fneq umax .999) (snd-display ";unclip-channel 2 sine maxamp: ~A" umax)))
+	(if (not (= clips 1)) (snd-display "unclip-channel 2 sine clips: ~A" clips))
+	(if (not (= lmax 3)) (snd-display "unclip-channel 2 sine max len: ~A" lmax))
+	(if (fneq umax .999) (snd-display "unclip-channel 2 sine maxamp: ~A" umax)))
       
       (revert-sound ind)
       (do ((data (make-float-vector 100))
@@ -9836,9 +9836,9 @@ EDITS: 2
 	     (umax (vals 1))
 	     (clips (vals 3))
 	     (lmax (vals 5)))
-	(if (not (= clips 1)) (snd-display ";unclip-channel 3 sine clips: ~A" clips))
-	(if (not (= lmax 1)) (snd-display ";unclip-channel 3 sine max len: ~A" lmax))
-	(if (fneq umax .999) (snd-display ";unclip-channel 3 sine maxamp: ~A" umax)))
+	(if (not (= clips 1)) (snd-display "unclip-channel 3 sine clips: ~A" clips))
+	(if (not (= lmax 1)) (snd-display "unclip-channel 3 sine max len: ~A" lmax))
+	(if (fneq umax .999) (snd-display "unclip-channel 3 sine maxamp: ~A" umax)))
       
       (revert-sound ind)
       (do ((data (make-float-vector 100))
@@ -9855,9 +9855,9 @@ EDITS: 2
 	     (umax (vals 1))
 	     (clips (vals 3))
 	     (lmax (vals 5)))
-	(if (not (= clips 1)) (snd-display ";unclip-channel 4 sine clips: ~A" clips))
-	(if (not (= lmax 4)) (snd-display ";unclip-channel 4 sine max len: ~A" lmax))
-	(if (fneq umax .999) (snd-display ";unclip-channel 4 sine maxamp: ~A" umax)))
+	(if (not (= clips 1)) (snd-display "unclip-channel 4 sine clips: ~A" clips))
+	(if (not (= lmax 4)) (snd-display "unclip-channel 4 sine max len: ~A" lmax))
+	(if (fneq umax .999) (snd-display "unclip-channel 4 sine maxamp: ~A" umax)))
       
       (revert-sound ind)
       (let ((data (make-float-vector 100))
@@ -9874,9 +9874,9 @@ EDITS: 2
 		 (umax (vals 1))
 		 (clips (vals 3))
 		 (lmax (vals 5)))
-	    (if (not (= clips 1)) (snd-display ";unclip-channel 5 click clips: ~A" clips))
-	    (if (not (= lmax 1)) (snd-display ";unclip-channel 5 click max len: ~A" lmax))
-	    (if (fneq umax true-max) (snd-display ";unclip-channel 5 click maxamp: ~A ~A" umax true-max)))))
+	    (if (not (= clips 1)) (snd-display "unclip-channel 5 click clips: ~A" clips))
+	    (if (not (= lmax 1)) (snd-display "unclip-channel 5 click max len: ~A" lmax))
+	    (if (fneq umax true-max) (snd-display "unclip-channel 5 click maxamp: ~A ~A" umax true-max)))))
       
       (revert-sound ind)
       (let ((data (make-float-vector 100))
@@ -9895,9 +9895,9 @@ EDITS: 2
 		 (umax (vals 1))
 		 (clips (vals 3))
 		 (lmax (vals 5)))
-	    (if (not (= clips 1)) (snd-display ";unclip-channel 6 click clips: ~A" clips))
-	    (if (not (= lmax 2)) (snd-display ";unclip-channel 6 click max len: ~A" lmax))
-	    (if (fneq umax true-max) (snd-display ";unclip-channel 6 click maxamp: ~A ~A" umax true-max)))))
+	    (if (not (= clips 1)) (snd-display "unclip-channel 6 click clips: ~A" clips))
+	    (if (not (= lmax 2)) (snd-display "unclip-channel 6 click max len: ~A" lmax))
+	    (if (fneq umax true-max) (snd-display "unclip-channel 6 click maxamp: ~A ~A" umax true-max)))))
       
       (revert-sound ind)
       (let ((data (make-float-vector 100))
@@ -9916,9 +9916,9 @@ EDITS: 2
 		 (umax (vals 1))
 		 (clips (vals 3))
 		 (lmax (vals 5)))
-	    (if (not (= clips 1)) (snd-display ";unclip-channel 7 click clips: ~A" clips))
-	    (if (not (= lmax 10)) (snd-display ";unclip-channel 7 click max len: ~A" lmax))
-	    (if (fneq umax true-max) (snd-display ";unclip-channel 7 click maxamp: ~A ~A" umax true-max)))))
+	    (if (not (= clips 1)) (snd-display "unclip-channel 7 click clips: ~A" clips))
+	    (if (not (= lmax 10)) (snd-display "unclip-channel 7 click max len: ~A" lmax))
+	    (if (fneq umax true-max) (snd-display "unclip-channel 7 click maxamp: ~A ~A" umax true-max)))))
       
       (revert-sound ind)
       (let ((data (make-float-vector 100))
@@ -9938,9 +9938,9 @@ EDITS: 2
 		 (umax (vals 1))
 		 (clips (vals 3))
 		 (lmax (vals 5)))
-	    (if (not (= clips 1)) (snd-display ";unclip-channel 8 click clips: ~A" clips))
-	    (if (not (= lmax 10)) (snd-display ";unclip-channel 8 click max len: ~A" lmax))
-	    (if (fneq umax true-max) (snd-display ";unclip-channel 8 click maxamp: ~A ~A" umax true-max)))))
+	    (if (not (= clips 1)) (snd-display "unclip-channel 8 click clips: ~A" clips))
+	    (if (not (= lmax 10)) (snd-display "unclip-channel 8 click max len: ~A" lmax))
+	    (if (fneq umax true-max) (snd-display "unclip-channel 8 click maxamp: ~A ~A" umax true-max)))))
       
       (revert-sound ind)
       (let ((data (make-float-vector 200))
@@ -9963,9 +9963,9 @@ EDITS: 2
 		 (umax (vals 1))
 		 (clips (vals 3))
 		 (lmax (vals 5)))
-	    (if (not (= clips 2)) (snd-display ";unclip-channel 9 collision clips: ~A" clips))
-	    (if (not (= lmax 10)) (snd-display ";unclip-channel 9 collision max len: ~A" lmax))
-	    (if (fneq umax true-max) (snd-display ";unclip-channel 9 collision maxamp: ~A ~A" umax true-max)))))
+	    (if (not (= clips 2)) (snd-display "unclip-channel 9 collision clips: ~A" clips))
+	    (if (not (= lmax 10)) (snd-display "unclip-channel 9 collision max len: ~A" lmax))
+	    (if (fneq umax true-max) (snd-display "unclip-channel 9 collision maxamp: ~A ~A" umax true-max)))))
       
       (revert-sound ind)
       (mix "oboe.snd" 0 0 ind 0 #f)
@@ -9976,9 +9976,9 @@ EDITS: 2
 	     (umax (vals 1))
 	     (clips (vals 3))
 	     (lmax (vals 5)))
-	(if (not (= clips 20)) (snd-display ";unclip-channel 10 oboe clips: ~A" clips))
-	(if (not (= lmax 1)) (snd-display ";unclip-channel 10 oboe max len: ~A" lmax))
-	(if (fneq umax 0.999) (snd-display ";unclip-channel 10 oboe maxamp: ~A" umax)))
+	(if (not (= clips 20)) (snd-display "unclip-channel 10 oboe clips: ~A" clips))
+	(if (not (= lmax 1)) (snd-display "unclip-channel 10 oboe max len: ~A" lmax))
+	(if (fneq umax 0.999) (snd-display "unclip-channel 10 oboe maxamp: ~A" umax)))
       
       (revert-sound ind)
       (mix "oboe.snd" 0 0 ind 0 #f)
@@ -9989,9 +9989,9 @@ EDITS: 2
 	     (umax (vals 1))
 	     (clips (vals 3))
 	     (lmax (vals 5)))
-	(if (not (= clips 217)) (snd-display ";unclip-channel 11 oboe clips: ~A" clips))
-	(if (not (= lmax 2)) (snd-display ";unclip-channel 11 oboe max len: ~A" lmax))
-	(if (fneq umax 0.999) (snd-display ";unclip-channel 11 oboe maxamp: ~A" umax)))
+	(if (not (= clips 217)) (snd-display "unclip-channel 11 oboe clips: ~A" clips))
+	(if (not (= lmax 2)) (snd-display "unclip-channel 11 oboe max len: ~A" lmax))
+	(if (fneq umax 0.999) (snd-display "unclip-channel 11 oboe maxamp: ~A" umax)))
       
       (revert-sound ind)
       (mix "oboe.snd" 0 0 ind 0 #f)
@@ -10003,9 +10003,9 @@ EDITS: 2
 	     (umax (vals 1))
 	     (clips (vals 3))
 	     (lmax (vals 5)))
-	(if (not (= clips 28)) (snd-display ";unclip-channel 12 oboe clips: ~A" clips))
-	(if (not (= lmax 3)) (snd-display ";unclip-channel 12 oboe max len: ~A" lmax))
-	(if (fneq umax 0.999) (snd-display ";unclip-channel 12 oboe maxamp: ~A" umax)))
+	(if (not (= clips 28)) (snd-display "unclip-channel 12 oboe clips: ~A" clips))
+	(if (not (= lmax 3)) (snd-display "unclip-channel 12 oboe max len: ~A" lmax))
+	(if (fneq umax 0.999) (snd-display "unclip-channel 12 oboe maxamp: ~A" umax)))
       
       (close-sound ind)))
   
@@ -10050,12 +10050,12 @@ EDITS: 2
 	((>= i 12))
       (let ((vals (butterworth-prototype i)))
 	(if (not (mus-arrays-equal? (cadr vals) (poles k)))
-	    (snd-display ";butterworth prototype poles ~A: ~A (~A)" i (cadr vals) (poles k)))
+	    (snd-display "butterworth prototype poles ~A: ~A (~A)" i (cadr vals) (poles k)))
 	(do ((zeros (make-float-vector (* (+ k 1) 3)))
 	     (j 2 (+ j 3)))
 	    ((>= j (* (+ k 1) 3))
 	     (if (not (mus-arrays-equal? (car vals) zeros))
-		 (snd-display ";butterworth prototype zeros ~A: ~A (~A)" i (car vals) zeros)))
+		 (snd-display "butterworth prototype zeros ~A: ~A (~A)" i (car vals) zeros)))
 	  (set! (zeros j) 1.0))))
 
     (do ((cutoff .1 (+ cutoff .1))
@@ -10068,11 +10068,11 @@ EDITS: 2
 	(let ((local (make-butterworth-lowpass i cutoff))
 	      (dsp (make-butter-lp k clm-cutoff)))
 	  (if (not (filter-equal? local dsp))
-	      (snd-display ";butterworth lowpass ~A ~A ~A" cutoff local dsp)))
+	      (snd-display "butterworth lowpass ~A ~A ~A" cutoff local dsp)))
 	(let ((local (make-butterworth-highpass i cutoff))
 	      (dsp (make-butter-hp k clm-cutoff)))
 	  (if (not (filter-equal? local dsp))
-	      (snd-display ";butterworth highpass ~A ~A ~A" cutoff local dsp))))
+	      (snd-display "butterworth highpass ~A ~A ~A" cutoff local dsp))))
     
       (let ((ind (open-sound "oboe.snd")))
 	(map-channel (make-eliminate-hum 550))
@@ -10092,18 +10092,18 @@ EDITS: 2
 	(close-sound ind))
       
       (let ((vals (sweep->bins (make-butterworth-lowpass 8 .1))))
-	(if (fneq (car vals) .5) (snd-display ";butterworth lp 8 max: ~A" (car vals)))
+	(if (fneq (car vals) .5) (snd-display "butterworth lp 8 max: ~A" (car vals)))
 	(if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.500 0.500 0.359 0.014 0.001 0.000 0.000 0.000 0.000 0.000)))
-	    (snd-display ";butterworth lp 8 .1 spect: ~A" (cadr vals))))
+	    (snd-display "butterworth lp 8 .1 spect: ~A" (cadr vals))))
       (let ((vals (sweep->bins (make-butterworth-lowpass 12 .25))))
-	(if (fneq (car vals) .5) (snd-display ";butterworth lp 12 max: ~A" (car vals)))
+	(if (fneq (car vals) .5) (snd-display "butterworth lp 12 max: ~A" (car vals)))
 	(if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.500 0.500 0.500 0.500 0.499 0.358 0.010 0.000 0.000 0.000)))
-	    (snd-display ";butterworth lp 12 .25 spect: ~A" (cadr vals))))
+	    (snd-display "butterworth lp 12 .25 spect: ~A" (cadr vals))))
       (let ((vals (sweep->bins (make-butterworth-lowpass 10 .4))))
-	(if (fneq (car vals) .5) (snd-display ";butterworth lp 10 max: ~A" (car vals)))
+	(if (fneq (car vals) .5) (snd-display "butterworth lp 10 max: ~A" (car vals)))
 	(if (not (or (mus-arrays-equal?1 (cadr vals) (float-vector 0.500 0.500 0.500 0.500 0.500 0.500 0.500 0.499 0.361 0.001))
 		     (mus-arrays-equal?1 (cadr vals) (float-vector 0.500 0.500 0.500 0.500 0.500 0.500 0.500 0.499 0.360 0.002))))
-	    (snd-display ";butterworth lp 10 .4 spect: ~A" (cadr vals))))
+	    (snd-display "butterworth lp 10 .4 spect: ~A" (cadr vals))))
       
       (do ((i 2 (+ i 2)))
 	  ((= i 12))
@@ -10111,35 +10111,35 @@ EDITS: 2
 	    ((>= j .45))
 	  (let ((mx (filter-response-max (make-butterworth-lowpass i j))))
 	    (if (> mx 1.0)
-		(snd-display ";butter low max ~A ~A: ~A" i j mx)))))
+		(snd-display "butter low max ~A ~A: ~A" i j mx)))))
       
       (let ((vals (sweep->bins (make-butterworth-highpass 8 .1))))
-	(if (fneq (car vals) .5) (snd-display ";butterworth hp 8 max: ~A" (car vals)))
+	(if (fneq (car vals) .5) (snd-display "butterworth hp 8 max: ~A" (car vals)))
 	(if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.001 0.348 0.500 0.500 0.500 0.500 0.500 0.500 0.500 0.500)))
-	    (snd-display ";butterworth hp 8 .1 spect: ~A" (cadr vals))))
+	    (snd-display "butterworth hp 8 .1 spect: ~A" (cadr vals))))
       (let ((vals (sweep->bins (make-butterworth-highpass 12 .25))))
-	(if (fneq (car vals) .5) (snd-display ";butterworth hp 12 max: ~A" (car vals)))
+	(if (fneq (car vals) .5) (snd-display "butterworth hp 12 max: ~A" (car vals)))
 	(if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.000 0.000 0.000 0.011 0.348 0.500 0.500 0.500 0.500 0.500)))
-	    (snd-display ";butterworth hp 12 .25 spect: ~A" (cadr vals))))
+	    (snd-display "butterworth hp 12 .25 spect: ~A" (cadr vals))))
       (let ((vals (sweep->bins (make-butterworth-highpass 10 .4))))
-	(if (fneq (car vals) .5) (snd-display ";butterworth hp 10 max: ~A" (car vals)))
+	(if (fneq (car vals) .5) (snd-display "butterworth hp 10 max: ~A" (car vals)))
 	(if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.000 0.000 0.000 0.000 0.000 0.000 0.005 0.343 0.501 0.501)))
-	    (snd-display ";butterworth hp 10 .4 spect: ~A" (cadr vals))))
+	    (snd-display "butterworth hp 10 .4 spect: ~A" (cadr vals))))
       
       (let ((vals (sweep->bins (make-butterworth-bandpass 4 .1 .2))))
-	(if (> (abs (- (car vals) .5)) .05) (snd-display ";butterworth bp 4 max: ~A" (car vals)))
+	(if (> (abs (- (car vals) .5)) .05) (snd-display "butterworth bp 4 max: ~A" (car vals)))
 	(if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.028 0.350 0.481 0.479 0.346 0.132 0.038 0.009 0.002 0.000)))
-	    (snd-display ";butterworth bp 4 .1 .2 spect: ~A" (cadr vals))))
+	    (snd-display "butterworth bp 4 .1 .2 spect: ~A" (cadr vals))))
       (let ((vals (sweep->bins (make-butterworth-bandpass 12 .1 .2))))
-	(if (> (abs (- (car vals) .5)) .05) (snd-display ";butterworth bp 12 max: ~A" (car vals)))
+	(if (> (abs (- (car vals) .5)) .05) (snd-display "butterworth bp 12 max: ~A" (car vals)))
 	(if (not (or (mus-arrays-equal?1 (cadr vals) (float-vector 0.006 0.317 0.501 0.500 0.358 0.009 0.000 0.000 0.000 0.000))
 		     (mus-arrays-equal?1 (cadr vals) (float-vector 0.012 0.319 0.501 0.500 0.358 0.009 0.000 0.000 0.000 0.000))
 		     (mus-arrays-equal?1 (cadr vals) (float-vector 0.000 0.323 0.501 0.500 0.358 0.009 0.000 0.000 0.000 0.000))))
-	    (snd-display ";butterworth bp 12 .1 .2 spect: ~A" (cadr vals))))
+	    (snd-display "butterworth bp 12 .1 .2 spect: ~A" (cadr vals))))
       (let ((vals (sweep->bins (make-butterworth-bandpass 8 .3 .4))))
-	(if (> (abs (- (car vals) .5)) .05) (snd-display ";butterworth bp 8 max: ~A" (car vals)))
+	(if (> (abs (- (car vals) .5)) .05) (snd-display "butterworth bp 8 max: ~A" (car vals)))
 	(if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.000 0.000 0.000 0.003 0.034 0.344 0.499 0.499 0.353 0.002)))
-	    (snd-display ";butterworth bp 8 .3 .4 spect: ~A" (cadr vals))))
+	    (snd-display "butterworth bp 8 .3 .4 spect: ~A" (cadr vals))))
       
       (do ((i 2 (+ i 2)))
 	  ((= i 12))
@@ -10147,22 +10147,22 @@ EDITS: 2
 	    ((>= j .45))
 	  (let ((mx (filter-response-max (make-butterworth-highpass i j))))
 	    (if (> mx 1.0)
-		(snd-display ";butter high max ~A ~A: ~A" i j mx)))))
+		(snd-display "butter high max ~A ~A: ~A" i j mx)))))
       
       (let ((vals (sweep->bins (make-butterworth-bandstop 4 .1 .2))))
-	(if (> (abs (- (car vals) .5)) .05) (snd-display ";butterworth bs 4 max: ~A" (car vals)))
+	(if (> (abs (- (car vals) .5)) .05) (snd-display "butterworth bs 4 max: ~A" (car vals)))
 	(if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.500 0.500 0.347 0.339 0.481 0.499 0.500 0.500 0.500 0.500)))
-	    (snd-display ";butterworth bs 4 .1 .2 spect: ~A" (cadr vals))))
+	    (snd-display "butterworth bs 4 .1 .2 spect: ~A" (cadr vals))))
       (let ((vals (sweep->bins (make-butterworth-bandstop 12 .1 .2))))
-	(if (> (abs (- (car vals) .5)) .05) (snd-display ";butterworth bs 12 max: ~A" (car vals)))
+	(if (> (abs (- (car vals) .5)) .05) (snd-display "butterworth bs 12 max: ~A" (car vals)))
 	(if (not (or (mus-arrays-equal?1 (cadr vals) (float-vector 0.503 0.503 0.364 0.334 0.500 0.500 0.500 0.500 0.500 0.500))
 		     (mus-arrays-equal?1 (cadr vals) (float-vector 0.502 0.503 0.365 0.334 0.500 0.500 0.500 0.500 0.500 0.500))
 		     (mus-arrays-equal?1 (cadr vals) (float-vector 0.500 0.500 0.365 0.334 0.500 0.500 0.500 0.500 0.500 0.500))))
-	    (snd-display ";butterworth bs 12 .1 .2 spect: ~A" (cadr vals))))
+	    (snd-display "butterworth bs 12 .1 .2 spect: ~A" (cadr vals))))
       (let ((vals (sweep->bins (make-butterworth-bandstop 8 .3 .4))))
-	(if (> (abs (- (car vals) .5)) .05) (snd-display ";butterworth bs 8 max: ~A" (car vals)))
+	(if (> (abs (- (car vals) .5)) .05) (snd-display "butterworth bs 8 max: ~A" (car vals)))
 	(if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.500 0.500 0.500 0.500 0.500 0.498 0.354 0.332 0.500 0.500)))
-	    (snd-display ";butterworth bs 8 .3 .4 spect: ~A" (cadr vals))))
+	    (snd-display "butterworth bs 8 .3 .4 spect: ~A" (cadr vals))))
       
       
       ;; ---------------- Chebyshev ----------------
@@ -10194,31 +10194,31 @@ EDITS: 2
 	  ((>= i 12))
 	(let ((vals (cadr (chebyshev-prototype i .01))))
 	  (if (not (mus-arrays-equal?1 vals (poles-01 k)))
-	      (snd-display ";chebyshev prototype .01 poles ~A: ~A (~A)" i vals (poles-01 k))))
+	      (snd-display "chebyshev prototype .01 poles ~A: ~A (~A)" i vals (poles-01 k))))
 	(let ((vals (cadr (chebyshev-prototype i .1))))
 	  (if (not (mus-arrays-equal?1 vals (poles-1 k)))
-	      (snd-display ";chebyshev prototype .1 poles ~A: ~A (~A)" i vals (poles-1 k))))
+	      (snd-display "chebyshev prototype .1 poles ~A: ~A (~A)" i vals (poles-1 k))))
 	(let ((vals (chebyshev-prototype i)))
 	  (if (not (mus-arrays-equal?1 (cadr vals) (poles-10 k)))
-	      (snd-display ";chebyshev prototype 1 poles ~A: ~A (~A)" i (cadr vals) (poles-10 k)))
+	      (snd-display "chebyshev prototype 1 poles ~A: ~A (~A)" i (cadr vals) (poles-10 k)))
 	  (if (not (mus-arrays-equal? (car vals) (zeros k)))
-	      (snd-display ";chebyshev prototype .01 zeros ~A: ~A (~A)" i (car vals) (zeros k)))))
+	      (snd-display "chebyshev prototype .01 zeros ~A: ~A (~A)" i (car vals) (zeros k)))))
       
       (let ((vals (sweep->bins (make-chebyshev-lowpass 8 .1))))
-	(if (ffneq (car vals) .51) (snd-display ";chebyshev lp 8 max: ~A" (car vals)))
+	(if (ffneq (car vals) .51) (snd-display "chebyshev lp 8 max: ~A" (car vals)))
 	(if (not (or (mus-arrays-equal?1 (cadr vals) (float-vector 0.508 0.512 0.468 0.001 0.000 0.000 0.000 0.000 0.000 0.000))
 		     (mus-arrays-equal?1 (cadr vals) (float-vector 0.507 0.512 0.467 0.001 0.000 0.000 0.000 0.000 0.000 0.000))
 		     (mus-arrays-equal?1 (cadr vals) (float-vector 0.508 0.513 0.469 0.001 0.000 0.000 0.000 0.000 0.000 0.000))
 		     (mus-arrays-equal?1 (cadr vals) (float-vector 0.509 0.508 0.465 0.001 0.000 0.000 0.000 0.000 0.000 0.000))))
-	    (snd-display ";chebyshev lp 8 .1 spect: ~A" (cadr vals))))
+	    (snd-display "chebyshev lp 8 .1 spect: ~A" (cadr vals))))
       (let ((vals (sweep->bins (make-chebyshev-lowpass 12 .25))))
-	(if (ffneq (car vals) .51) (snd-display ";chebyshev lp 12 max: ~A" (car vals)))
+	(if (ffneq (car vals) .51) (snd-display "chebyshev lp 12 max: ~A" (car vals)))
 	(if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.509 0.500 0.508 0.508 0.507 0.413 0.000 0.000 0.000 0.000)))
-	    (snd-display ";chebyshev lp 12 .25 spect: ~A" (cadr vals))))
+	    (snd-display "chebyshev lp 12 .25 spect: ~A" (cadr vals))))
       (let ((vals (sweep->bins (make-chebyshev-lowpass 10 .4))))
-	(if (ffneq (car vals) .51) (snd-display ";chebyshev lp 10 max: ~A" (car vals)))
+	(if (ffneq (car vals) .51) (snd-display "chebyshev lp 10 max: ~A" (car vals)))
 	(if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.465 0.493 0.509 0.508 0.477 0.507 0.508 0.507 0.431 0.000)))
-	    (snd-display ";chebyshev lp 10 .4 spect: ~A" (cadr vals))))
+	    (snd-display "chebyshev lp 10 .4 spect: ~A" (cadr vals))))
       
       (do ((i 2 (+ i 2)))
 	  ((= i 10))
@@ -10226,50 +10226,50 @@ EDITS: 2
 	    ((>= j .45))
 	  (let ((mx (filter-response-max (make-chebyshev-lowpass i j))))
 	    (if (> mx 1.0)
-		(snd-display ";cheby low max ~A ~A: ~A" i j mx)))))
+		(snd-display "cheby low max ~A ~A: ~A" i j mx)))))
       
       (let ((vals (sweep->bins (make-chebyshev-lowpass 8 .1 .01))))
-	(if (ffneq (car vals) .49) (snd-display ";chebyshev lp 8 .1 .01 max: ~A" (car vals)))
+	(if (ffneq (car vals) .49) (snd-display "chebyshev lp 8 .1 .01 max: ~A" (car vals)))
 	(if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.492 0.491 0.483 0.006 0.000 0.000 0.000 0.000 0.000 0.000)))
-	    (snd-display ";chebyshev lp 8 .1 .01 spect: ~A" (cadr vals))))
+	    (snd-display "chebyshev lp 8 .1 .01 spect: ~A" (cadr vals))))
       (let ((vals (sweep->bins (make-chebyshev-lowpass 12 .25 .1))))
-	(if (ffneq (car vals) .49) (snd-display ";chebyshev lp 12 .1 max: ~A" (car vals)))
+	(if (ffneq (car vals) .49) (snd-display "chebyshev lp 12 .1 max: ~A" (car vals)))
 	(if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.488 0.488 0.488 0.488 0.487 0.403 0.000 0.000 0.000 0.000)))
-	    (snd-display ";chebyshev lp 12 .25 .1 spect: ~A" (cadr vals))))
+	    (snd-display "chebyshev lp 12 .25 .1 spect: ~A" (cadr vals))))
       (let ((vals (sweep->bins (make-chebyshev-lowpass 10 .4 .001))))
-	(if (ffneq (car vals) .49) (snd-display ";chebyshev lp 10 .001 max: ~A" (car vals)))
+	(if (ffneq (car vals) .49) (snd-display "chebyshev lp 10 .001 max: ~A" (car vals)))
 	(if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.497 0.497 0.497 0.497 0.497 0.497 0.497 0.497 0.488 0.000)))
-	    (snd-display ";chebyshev lp 10 .4 .001 spect: ~A" (cadr vals))))
+	    (snd-display "chebyshev lp 10 .4 .001 spect: ~A" (cadr vals))))
       
       (let ((vals (sweep->bins (make-chebyshev-highpass 8 .1))))
-	(if (ffneq (car vals) .55) (snd-display ";chebyshev hp 8 max: ~A" (car vals)))
+	(if (ffneq (car vals) .55) (snd-display "chebyshev hp 8 max: ~A" (car vals)))
 	(if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.000 0.341 0.551 0.509 0.466 0.501 0.509 0.505 0.481 0.461)))
-	    (snd-display ";chebyshev hp 8 .1 spect: ~A" (cadr vals))))
+	    (snd-display "chebyshev hp 8 .1 spect: ~A" (cadr vals))))
       (let ((vals (sweep->bins  (make-chebyshev-highpass 12 .25))))
-	(if (ffneq (car vals) .55) (snd-display ";chebyshev hp 12 max: ~A" (car vals)))
+	(if (ffneq (car vals) .55) (snd-display "chebyshev hp 12 max: ~A" (car vals)))
 	(if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.000 0.000 0.000 0.000 0.299 0.554 0.509 0.509 0.500 0.509)))
-	    (snd-display ";chebyshev hp 12 .25 spect: ~A" (cadr vals))))
+	    (snd-display "chebyshev hp 12 .25 spect: ~A" (cadr vals))))
       (let ((vals (cadr (sweep->bins (make-chebyshev-highpass 10 .4)))))
 	(if (not (or (mus-arrays-equal?1 vals (float-vector 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.297 0.786 0.677))
 		     (mus-arrays-equal?1 vals (float-vector 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.301 0.788 0.660))
 		     (mus-arrays-equal?1 vals (float-vector 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.322 0.861 0.724))
 		     (mus-arrays-equal?1 vals (float-vector 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.262 0.571 0.509))))
-	    (snd-display ";chebyshev hp 10 .4 spect: ~A" vals)))
+	    (snd-display "chebyshev hp 10 .4 spect: ~A" vals)))
       
       (let ((vals (sweep->bins (make-chebyshev-highpass 8 .1 .01))))
-	(if (ffneq (car vals) .49) (snd-display ";chebyshev hp 8 .1 .01 max: ~A" (car vals)))
+	(if (ffneq (car vals) .49) (snd-display "chebyshev hp 8 .1 .01 max: ~A" (car vals)))
 	(if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.000 0.498 0.498 0.492 0.491 0.492 0.492 0.492 0.491 0.491)))
-	    (snd-display ";chebyshev hp 8 .1 .01 spect: ~A" (cadr vals))))
+	    (snd-display "chebyshev hp 8 .1 .01 spect: ~A" (cadr vals))))
       (let ((vals (sweep->bins (make-chebyshev-highpass 12 .25 .1))))
-	(if (ffneq (car vals) .51) (snd-display ";chebyshev hp 12 .1 max: ~A" (car vals)))
+	(if (ffneq (car vals) .51) (snd-display "chebyshev hp 12 .1 max: ~A" (car vals)))
 	(if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.000 0.000 0.000 0.000 0.453 0.516 0.489 0.489 0.488 0.488)))
-	    (snd-display ";chebyshev hp 12 .25 .1 spect: ~A" (cadr vals))))
+	    (snd-display "chebyshev hp 12 .25 .1 spect: ~A" (cadr vals))))
       (let ((vals (sweep->bins (make-chebyshev-highpass 10 .4 .001))))
-	(if (ffneq (car vals) .5) (snd-display ";chebyshev hp 10 .001 max: ~A" (car vals)))
+	(if (ffneq (car vals) .5) (snd-display "chebyshev hp 10 .001 max: ~A" (car vals)))
 	(if (not (or (mus-arrays-equal?1 (cadr vals) (float-vector 0.000 0.000 0.000 0.000 0.000 0.000 0.002 0.501 0.504 0.504))
 		     (mus-arrays-equal?1 (cadr vals) (float-vector 0.000 0.000 0.000 0.000 0.000 0.000 0.002 0.503 0.505 0.504))
 		     (mus-arrays-equal?1 (cadr vals) (float-vector 0.000 0.000 0.000 0.000 0.000 0.000 0.002 0.503 0.501 0.497))))
-	    (snd-display ";chebyshev hp 10 .4 .001 spect: ~A" (cadr vals))))
+	    (snd-display "chebyshev hp 10 .4 .001 spect: ~A" (cadr vals))))
       
       (do ((i 2 (+ i 2)))
 	  ((= i 10))
@@ -10277,62 +10277,62 @@ EDITS: 2
 	    ((>= j .45))
 	  (let ((mx (filter-response-max (make-chebyshev-highpass i j))))
 	    (if (> mx 1.0)
-		(snd-display ";cheby high max ~A ~A: ~A" i j mx)))))
+		(snd-display "cheby high max ~A ~A: ~A" i j mx)))))
       
       (let ((vals (sweep->bins (make-chebyshev-bandpass 4 .1 .2))))
-	(if (> (abs (- (car vals) .5)) .05) (snd-display ";chebyshev bp 4 max: ~A" (car vals)))
+	(if (> (abs (- (car vals) .5)) .05) (snd-display "chebyshev bp 4 max: ~A" (car vals)))
 	(if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.009 0.449 0.509 0.505 0.442 0.065 0.013 0.003 0.000 0.000)))
-	    (snd-display ";chebyshev bp 4 .1 .2 spect: ~A" (cadr vals))))
+	    (snd-display "chebyshev bp 4 .1 .2 spect: ~A" (cadr vals))))
       (let ((vals (sweep->bins (make-chebyshev-bandpass 6 .1 .2))))
-	(if (> (abs (- (car vals) .5)) .05) (snd-display ";chebyshev bp 6 max: ~A" (car vals)))
+	(if (> (abs (- (car vals) .5)) .05) (snd-display "chebyshev bp 6 max: ~A" (car vals)))
 	(if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.001 0.376 0.505 0.498 0.412 0.011 0.001 0.000 0.000 0.000)))
-	    (snd-display ";chebyshev bp 6 .1 .2 spect: ~A" (cadr vals))))
+	    (snd-display "chebyshev bp 6 .1 .2 spect: ~A" (cadr vals))))
       (let ((vals (sweep->bins (make-chebyshev-bandpass 8 .3 .4))))
-	(if (> (abs (- (car vals) .5)) .05) (snd-display ";chebyshev bp 8 max: ~A" (car vals)))
+	(if (> (abs (- (car vals) .5)) .05) (snd-display "chebyshev bp 8 max: ~A" (car vals)))
 	(if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.000 0.000 0.000 0.000 0.002 0.363 0.517 0.513 0.433 0.000)))
-	    (snd-display ";chebyshev bp 8 .3 .4 spect: ~A" (cadr vals))))
+	    (snd-display "chebyshev bp 8 .3 .4 spect: ~A" (cadr vals))))
       (let ((vals (sweep->bins  (make-chebyshev-bandpass 8 .2 .2 .01))))
-	(if (> (abs (- (car vals) .5)) .05) (snd-display ";chebyshev bp 10 .2 max: ~A" (car vals)))
+	(if (> (abs (- (car vals) .5)) .05) (snd-display "chebyshev bp 10 .2 max: ~A" (car vals)))
 	(if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.000 0.000 0.015 0.483 0.482 0.021 0.001 0.000 0.000 0.000)))
-	    (snd-display ";chebyshev bp 10 .2 spect: ~A" (cadr vals))))
+	    (snd-display "chebyshev bp 10 .2 spect: ~A" (cadr vals))))
       
       (let ((vals (sweep->bins (make-chebyshev-bandstop 4 .1 .4))))
-	(if (> (abs (- (car vals) .5)) .05) (snd-display ";chebyshev bs 4 max: ~A" (car vals)))
+	(if (> (abs (- (car vals) .5)) .05) (snd-display "chebyshev bs 4 max: ~A" (car vals)))
 	(if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.509 0.505 0.447 0.033 0.006 0.006 0.033 0.445 0.512 0.509)))
-	    (snd-display ";chebyshev bs 4 .1 .4 spect: ~A" (cadr vals))))
+	    (snd-display "chebyshev bs 4 .1 .4 spect: ~A" (cadr vals))))
       (let ((vals (sweep->bins (make-chebyshev-bandstop 8 .1 .4))))
-	(if (> (abs (- (car vals) .51)) .05) (snd-display ";chebyshev bs 8 max: ~A" (car vals)))
+	(if (> (abs (- (car vals) .51)) .05) (snd-display "chebyshev bs 8 max: ~A" (car vals)))
 	(if (not (or (mus-arrays-equal?1 (cadr vals) (float-vector 0.508 0.512 0.468 0.001 0.000 0.000 0.001 0.345 0.551 0.507))
 		     (mus-arrays-equal?1 (cadr vals) (float-vector 0.507 0.512 0.467 0.001 0.000 0.000 0.001 0.344 0.549 0.508))
 		     (mus-arrays-equal?1 (cadr vals) (float-vector 0.508 0.513 0.469 0.001 0.000 0.000 0.001 0.345 0.552 0.508))
 		     (mus-arrays-equal?1 (cadr vals) (float-vector 0.509 0.508 0.465 0.001 0.000 0.000 0.001 0.343 0.548 0.508))))
-	    (snd-display ";chebyshev bs 8 .1 .4 spect: ~A" (cadr vals))))
+	    (snd-display "chebyshev bs 8 .1 .4 spect: ~A" (cadr vals))))
       (let ((vals (sweep->bins (make-chebyshev-bandstop 8 .1 .4 .01))))
-	(if (> (abs (- (car vals) .5)) .05) (snd-display ";chebyshev bs 8 .01 max: ~A" (car vals)))
+	(if (> (abs (- (car vals) .5)) .05) (snd-display "chebyshev bs 8 .01 max: ~A" (car vals)))
 	(if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.492 0.491 0.483 0.006 0.000 0.000 0.006 0.494 0.495 0.492)))
-	    (snd-display ";chebyshev bs 8 .1 .4 .01 spect: ~A" (cadr vals))))
+	    (snd-display "chebyshev bs 8 .1 .4 .01 spect: ~A" (cadr vals))))
       
       
       ;; ---------------- inverse-chebyshev ----------------
       
       (let ((vals (sweep->bins (make-inverse-chebyshev-lowpass 8 .1))))
-	(if (ffneq (car vals) .51) (snd-display ";inverse-chebyshev lp 8 max: ~A" (car vals)))
+	(if (ffneq (car vals) .51) (snd-display "inverse-chebyshev lp 8 max: ~A" (car vals)))
 	(if (not (or (mus-arrays-equal?1 (cadr vals) (float-vector 0.501 0.496 0.001 0.000 0.001 0.000 0.000 0.000 0.000 0.001))
 		     (mus-arrays-equal?1 (cadr vals) (float-vector 0.500 0.498 0.001 0.000 0.001 0.000 0.000 0.000 0.000 0.001))))
-	    (snd-display ";inverse-chebyshev lp 8 .1 spect: ~A" (cadr vals))))
+	    (snd-display "inverse-chebyshev lp 8 .1 spect: ~A" (cadr vals))))
       (let ((vals (sweep->bins (make-inverse-chebyshev-lowpass 12 .25))))
-	(if (ffneq (car vals) .51) (snd-display ";inverse-chebyshev lp 12 max: ~A" (car vals)))
+	(if (ffneq (car vals) .51) (snd-display "inverse-chebyshev lp 12 max: ~A" (car vals)))
 	(if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.500 0.500 0.500 0.500 0.496 0.001 0.001 0.001 0.001 0.001)))
-	    (snd-display ";inverse-chebyshev lp 12 .25 spect: ~A" (cadr vals))))
+	    (snd-display "inverse-chebyshev lp 12 .25 spect: ~A" (cadr vals))))
       (let ((vals (sweep->bins (make-inverse-chebyshev-lowpass 10 .4))))
-	(if (ffneq (car vals) .51) (snd-display ";inverse-chebyshev lp 10 max: ~A" (car vals)))
+	(if (ffneq (car vals) .51) (snd-display "inverse-chebyshev lp 10 max: ~A" (car vals)))
 	(if (not (or (mus-arrays-equal?1 (cadr vals) (float-vector 0.500 0.500 0.500 0.500 0.500 0.500 0.500 0.497 0.001 0.001))
 		     (mus-arrays-equal?1 (cadr vals) (float-vector 0.500 0.500 0.500 0.500 0.500 0.500 0.500 0.497 0.002 0.002))))
-	    (snd-display ";inverse-chebyshev lp 10 .4 spect: ~A" (cadr vals))))
+	    (snd-display "inverse-chebyshev lp 10 .4 spect: ~A" (cadr vals))))
       (let ((vals (sweep->bins (make-inverse-chebyshev-lowpass 10 .4 120))))
-	(if (ffneq (car vals) .51) (snd-display ";inverse-chebyshev lp 10 max: ~A" (car vals)))
+	(if (ffneq (car vals) .51) (snd-display "inverse-chebyshev lp 10 max: ~A" (car vals)))
 	(if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.501 0.501 0.501 0.501 0.501 0.500 0.345 0.007 0.000 0.000)))
-	    (snd-display ";inverse-chebyshev lp 10 .4 120 spect: ~A" (cadr vals))))
+	    (snd-display "inverse-chebyshev lp 10 .4 120 spect: ~A" (cadr vals))))
       
       (do ((i 2 (+ i 2)))
 	  ((= i 10))
@@ -10340,26 +10340,26 @@ EDITS: 2
 	    ((>= j .45))
 	  (let ((mx (filter-response-max (make-inverse-chebyshev-lowpass i j))))
 	    (if (> mx 1.0)
-		(snd-display ";inv cheby low max ~A ~A: ~A" i j mx)))))
+		(snd-display "inv cheby low max ~A ~A: ~A" i j mx)))))
       
       (let ((vals (sweep->bins (make-inverse-chebyshev-highpass 8 .1))))
-	(if (ffneq (car vals) .51) (snd-display ";inverse-chebyshev hp 8 max: ~A" (car vals)))
+	(if (ffneq (car vals) .51) (snd-display "inverse-chebyshev hp 8 max: ~A" (car vals)))
 	(if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.001 0.001 0.440 0.505 0.505 0.503 0.502 0.501 0.501 0.501)))
-	    (snd-display ";inverse-chebyshev hp 8 .1 spect: ~A" (cadr vals))))
+	    (snd-display "inverse-chebyshev hp 8 .1 spect: ~A" (cadr vals))))
       (let ((vals (sweep->bins (make-inverse-chebyshev-highpass 12 .25))))
-	(if (ffneq (car vals) .51) (snd-display ";inverse-chebyshev hp 12 max: ~A" (car vals)))
+	(if (ffneq (car vals) .51) (snd-display "inverse-chebyshev hp 12 max: ~A" (car vals)))
 	(if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.001 0.001 0.001 0.001 0.001 0.505 0.506 0.503 0.501 0.501)))
-	    (snd-display ";inverse-chebyshev hp 12 .25 spect: ~A" (cadr vals))))
+	    (snd-display "inverse-chebyshev hp 12 .25 spect: ~A" (cadr vals))))
       (let ((vals (sweep->bins (make-inverse-chebyshev-highpass 10 .4))))
-	(if (ffneq (car vals) .51) (snd-display ";inverse-chebyshev hp 10 .4 max: ~A" (car vals)))
+	(if (ffneq (car vals) .51) (snd-display "inverse-chebyshev hp 10 .4 max: ~A" (car vals)))
 	(if (not (or (mus-arrays-equal?1 (cadr vals) (float-vector 0.000 0.000 0.000 0.001 0.001 0.001 0.001 0.001 0.503 0.503))
 		     (mus-arrays-equal?1 (cadr vals) (float-vector 0.000 0.000 0.000 0.001 0.001 0.001 0.001 0.001 0.505 0.503))
 		     (mus-arrays-equal?1 (cadr vals) (float-vector 0.000 0.000 0.000 0.001 0.001 0.001 0.001 0.001 0.509 0.504))))
-	    (snd-display ";inverse-chebyshev hp 10 .4 spect: ~A" (cadr vals))))
+	    (snd-display "inverse-chebyshev hp 10 .4 spect: ~A" (cadr vals))))
       (let ((vals (sweep->bins (make-inverse-chebyshev-highpass 10 .1 120))))
-	(if (ffneq (car vals) .51) (snd-display ";inverse-chebyshev hp 10 .1 120 max: ~A" (car vals)))
+	(if (ffneq (car vals) .51) (snd-display "inverse-chebyshev hp 10 .1 120 max: ~A" (car vals)))
 	(if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.000 0.000 0.007 0.328 0.502 0.502 0.502 0.501 0.501 0.501)))
-	    (snd-display ";inverse-chebyshev hp 10 .1 120 spect: ~A" (cadr vals))))
+	    (snd-display "inverse-chebyshev hp 10 .1 120 spect: ~A" (cadr vals))))
       
       (do ((i 2 (+ i 2)))
 	  ((= i 10))
@@ -10367,43 +10367,43 @@ EDITS: 2
 	    ((>= j .45))
 	  (let ((mx (filter-response-max (make-inverse-chebyshev-highpass i j))))
 	    (if (> mx 1.0)
-		(snd-display ";inv cheby high max ~A ~A: ~A" i j mx)))))
+		(snd-display "inv cheby high max ~A ~A: ~A" i j mx)))))
       
       (let ((vals (sweep->bins (make-inverse-chebyshev-bandpass 10 .1 .2))))
-	(if (> (abs (- (car vals) .5)) .05) (snd-display ";inverse-chebyshev bp 4 max: ~A" (car vals)))
+	(if (> (abs (- (car vals) .5)) .05) (snd-display "inverse-chebyshev bp 4 max: ~A" (car vals)))
 	(if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.001 0.001 0.498 0.485 0.001 0.001 0.000 0.001 0.000 0.001)))
-	    (snd-display ";inverse-chebyshev bp 10 .1 .2 spect: ~A" (cadr vals))))
+	    (snd-display "inverse-chebyshev bp 10 .1 .2 spect: ~A" (cadr vals))))
       (let ((vals (sweep->bins (make-inverse-chebyshev-bandpass 10 .1 .2 30))))
-	(if (> (abs (- (car vals) .5)) .05) (snd-display ";inverse-chebyshev bp 6 max: ~A" (car vals)))
+	(if (> (abs (- (car vals) .5)) .05) (snd-display "inverse-chebyshev bp 6 max: ~A" (car vals)))
 	(if (not (or (mus-arrays-equal?1 (cadr vals) (float-vector 0.026 0.025 0.509 0.505 0.020 0.016 0.012 0.016 0.011 0.016))
 		     (mus-arrays-equal?1 (cadr vals) (float-vector 0.030 0.042 0.511 0.505 0.020 0.016 0.012 0.016 0.011 0.016))
 		     (mus-arrays-equal?1 (cadr vals) (float-vector 0.022 0.017 0.511 0.505 0.020 0.016 0.012 0.016 0.011 0.016))))
-	    (snd-display ";inverse-chebyshev bp 10 .1 .2 30 spect: ~A" (cadr vals))))
+	    (snd-display "inverse-chebyshev bp 10 .1 .2 30 spect: ~A" (cadr vals))))
       (let ((vals (sweep->bins (make-inverse-chebyshev-bandpass 8 .1 .4))))
-	(if (> (abs (- (car vals) .5)) .05) (snd-display ";inverse-chebyshev bp 8 max: ~A" (car vals)))
+	(if (> (abs (- (car vals) .5)) .05) (snd-display "inverse-chebyshev bp 8 max: ~A" (car vals)))
 	(if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.001 0.001 0.440 0.506 0.505 0.503 0.502 0.434 0.001 0.001)))
-	    (snd-display ";inverse-chebyshev bp 8 .1 .4 spect: ~A" (cadr vals))))
+	    (snd-display "inverse-chebyshev bp 8 .1 .4 spect: ~A" (cadr vals))))
       (let ((vals (sweep->bins (make-inverse-chebyshev-bandpass 8 .3 .4 40))))
-	(if (> (abs (- (car vals) .5)) .05) (snd-display ";inverse-chebyshev bp 10 .2 max: ~A" (car vals)))
+	(if (> (abs (- (car vals) .5)) .05) (snd-display "inverse-chebyshev bp 10 .2 max: ~A" (car vals)))
 	(if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.002 0.005 0.007 0.007 0.005 0.005 0.503 0.505 0.006 0.005)))
-	    (snd-display ";inverse-chebyshev bp 10 .2 spect: ~A" (cadr vals))))
+	    (snd-display "inverse-chebyshev bp 10 .2 spect: ~A" (cadr vals))))
       
       (let ((vals (sweep->bins (make-inverse-chebyshev-bandstop 4 .1 .4))))
-	(if (> (abs (- (car vals) .5)) .05) (snd-display ";inverse-chebyshev bs 4 max: ~A" (car vals)))
+	(if (> (abs (- (car vals) .5)) .05) (snd-display "inverse-chebyshev bs 4 max: ~A" (car vals)))
 	(if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.500 0.054 0.001 0.001 0.000 0.000 0.000 0.001 0.055 0.503)))
-	    (snd-display ";inverse-chebyshev bs 4 .1 .4 spect: ~A" (cadr vals))))
+	    (snd-display "inverse-chebyshev bs 4 .1 .4 spect: ~A" (cadr vals))))
       (let ((vals (sweep->bins (make-inverse-chebyshev-bandstop 8 .1 .4))))
-	(if (> (abs (- (car vals) .5)) .05) (snd-display ";inverse-chebyshev bs 8 max: ~A" (car vals)))
+	(if (> (abs (- (car vals) .5)) .05) (snd-display "inverse-chebyshev bs 8 max: ~A" (car vals)))
 	(if (not (or (mus-arrays-equal?1 (cadr vals) (float-vector 0.501 0.496 0.001 0.001 0.000 0.000 0.000 0.001 0.507 0.506))
 		     (mus-arrays-equal?1 (cadr vals) (float-vector 0.506 0.328 0.000 0.000 0.000 0.000 0.000 0.000 0.268 0.511))
 		     (mus-arrays-equal?1 (cadr vals) (float-vector 0.500 0.498 0.001 0.001 0.000 0.000 0.000 0.001 0.507 0.506))))
-	    (snd-display ";inverse-chebyshev bs 8 .1 .4 spect: ~A" (cadr vals))))
+	    (snd-display "inverse-chebyshev bs 8 .1 .4 spect: ~A" (cadr vals))))
       (let ((vals (sweep->bins (make-inverse-chebyshev-bandstop 8 .1 .4 90))))
-	(if (> (abs (- (car vals) .5)) .05) (snd-display ";inverse-chebyshev bs 8 90 max: ~A" (car vals)))
+	(if (> (abs (- (car vals) .5)) .05) (snd-display "inverse-chebyshev bs 8 90 max: ~A" (car vals)))
 	(if (not (or (mus-arrays-equal?1 (cadr vals) (float-vector 0.505 0.325 0.000 0.000 0.000 0.000 0.000 0.000 0.270 0.506))
 		     (mus-arrays-equal?1 (cadr vals) (float-vector 0.506 0.328 0.000 0.000 0.000 0.000 0.000 0.000 0.269 0.509))
 		     (mus-arrays-equal?1 (cadr vals) (float-vector 0.501 0.327 0.000 0.000 0.000 0.000 0.000 0.000 0.268 0.506))))
-	    (snd-display ";inverse-chebyshev bs 8 .1 .4 90 spect: ~A" (cadr vals))))
+	    (snd-display "inverse-chebyshev bs 8 .1 .4 90 spect: ~A" (cadr vals))))
       
       
       ;; ---------------- bessel ----------------
@@ -10412,22 +10412,22 @@ EDITS: 2
       
       (when (provided? 'gsl)
 	(let ((vals (sweep->bins (make-bessel-lowpass 4 .1))))
-	  (if (fneq (car vals) .5) (snd-display ";bessel lp 4 .1 max: ~A" (car vals)))
+	  (if (fneq (car vals) .5) (snd-display "bessel lp 4 .1 max: ~A" (car vals)))
 	  (if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.500 0.417 0.209 0.062 0.018 0.005 0.001 0.000 0.000 0.000)))
-	      (snd-display ";bessel lp 4 .1 spect: ~A" (cadr vals))))
+	      (snd-display "bessel lp 4 .1 spect: ~A" (cadr vals))))
 	(let ((vals (sweep->bins (make-bessel-lowpass 8 .1))))
-	  (if (fneq (car vals) .5) (snd-display ";bessel lp 8 max: ~A" (car vals)))
+	  (if (fneq (car vals) .5) (snd-display "bessel lp 8 max: ~A" (car vals)))
 	  (if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.499 0.365 0.116 0.010 0.001 0.000 0.000 0.000 0.000 0.000)))
-	      (snd-display ";bessel lp 8 .1 spect: ~A" (cadr vals))))
+	      (snd-display "bessel lp 8 .1 spect: ~A" (cadr vals))))
 	(let ((vals (sweep->bins (make-bessel-lowpass 12 .25))))
-	  (if (fneq (car vals) .5) (snd-display ";bessel lp 12 max: ~A" (car vals)))
+	  (if (fneq (car vals) .5) (snd-display "bessel lp 12 max: ~A" (car vals)))
 	  (if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.500 0.477 0.410 0.309 0.185 0.063 0.006 0.000 0.000 0.000)))
-	      (snd-display ";bessel lp 12 .25 spect: ~A" (cadr vals))))
+	      (snd-display "bessel lp 12 .25 spect: ~A" (cadr vals))))
 	(let ((vals (sweep->bins (make-bessel-lowpass 10 .4))))
-	  (if (fneq (car vals) .5) (snd-display ";bessel lp 10 max: ~A" (car vals)))
+	  (if (fneq (car vals) .5) (snd-display "bessel lp 10 max: ~A" (car vals)))
 	  (if (not (or (mus-arrays-equal?1 (cadr vals) (float-vector 0.500 0.498 0.491 0.479 0.458 0.423 0.364 0.259 0.086 0.001))
 		       (mus-arrays-equal?1 (cadr vals) (float-vector 0.500 0.498 0.491 0.479 0.458 0.423 0.364 0.259 0.086 0.002))))
-	      (snd-display ";bessel lp 10 .4 spect: ~A" (cadr vals))))
+	      (snd-display "bessel lp 10 .4 spect: ~A" (cadr vals))))
 	
 	(do ((i 2 (+ i 2)))
 	    ((= i 12))
@@ -10435,111 +10435,111 @@ EDITS: 2
 	      ((>= j .45))
 	    (let ((mx (filter-response-max (make-bessel-lowpass i j))))
 	      (if (> mx 1.0)
-		  (snd-display ";bess low max ~A ~A: ~A" i j mx)))))
+		  (snd-display "bess low max ~A ~A: ~A" i j mx)))))
 	
 	(let ((vals (sweep->bins (make-bessel-highpass 8 .1))))
-	  (if (fneq (car vals) .5) (snd-display ";bessel hp 8 max: ~A" (car vals)))
+	  (if (fneq (car vals) .5) (snd-display "bessel hp 8 max: ~A" (car vals)))
 	  (if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.001 0.115 0.290 0.386 0.435 0.465 0.483 0.493 0.498 0.500)))
-	      (snd-display ";bessel hp 8 .1 spect: ~A" (cadr vals))))
+	      (snd-display "bessel hp 8 .1 spect: ~A" (cadr vals))))
 	(let ((vals (sweep->bins (make-bessel-highpass 12 .25))))
-	  (if (fneq (car vals) .5) (snd-display ";bessel hp 12 max: ~A" (car vals)))
+	  (if (fneq (car vals) .5) (snd-display "bessel hp 12 max: ~A" (car vals)))
 	  (if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.000 0.000 0.000 0.006 0.063 0.181 0.309 0.410 0.477 0.500)))
-	      (snd-display ";bessel hp 12 .25 spect: ~A" (cadr vals))))
+	      (snd-display "bessel hp 12 .25 spect: ~A" (cadr vals))))
 	(let ((vals (sweep->bins (make-bessel-highpass 10 .4))))
-	  (if (ffneq (car vals) .5) (snd-display ";bessel hp 10 max: ~A" (car vals)))
+	  (if (ffneq (car vals) .5) (snd-display "bessel hp 10 max: ~A" (car vals)))
 	  (if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.000 0.000 0.000 0.000 0.000 0.000 0.004 0.084 0.343 0.499)))
-	      (snd-display ";bessel hp 10 .4 spect: ~A" (cadr vals))))
+	      (snd-display "bessel hp 10 .4 spect: ~A" (cadr vals))))
 	
 	(let ((vals (sweep->bins (make-bessel-bandpass 4 .1 .2))))
-	  (if (> (abs (- (car vals) .245)) .05) (snd-display ";bessel bp 4 max: ~A" (car vals)))
+	  (if (> (abs (- (car vals) .245)) .05) (snd-display "bessel bp 4 max: ~A" (car vals)))
 	  (if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.023 0.176 0.245 0.244 0.179 0.085 0.031 0.008 0.001 0.000)))
-	      (snd-display ";bessel bp 4 .1 .2 spect: ~A" (cadr vals))))
+	      (snd-display "bessel bp 4 .1 .2 spect: ~A" (cadr vals))))
 	
 	(let ((vals (sweep->bins (make-bessel-bandstop 12 .1 .2))))
-	  (if (> (abs (- (car vals) .5)) .05) (snd-display ";bessel bs 12 max: ~A" (car vals)))
+	  (if (> (abs (- (car vals) .5)) .05) (snd-display "bessel bs 12 max: ~A" (car vals)))
 	  (if (not (or (mus-arrays-equal?1 (cadr vals) (float-vector 0.498 0.325 0.065 0.066 0.177 0.297 0.389 0.452 0.488 0.500))
 		       (mus-arrays-equal?1 (cadr vals) (float-vector 0.499 0.324 0.065 0.066 0.177 0.297 0.389 0.452 0.488 0.500))))
-	      (snd-display ";bessel bs 12 .1 .2 spect: ~A" (cadr vals))))
+	      (snd-display "bessel bs 12 .1 .2 spect: ~A" (cadr vals))))
 	
 	;; ---------------- elliptic ----------------
 	
 	(let ((vals (sweep->bins (make-elliptic-lowpass 8 .1))))
-	  (if (> (abs (- (car vals) .5)) .1) (snd-display ";elliptic lp 8 max: ~A" (car vals)))
+	  (if (> (abs (- (car vals) .5)) .1) (snd-display "elliptic lp 8 max: ~A" (car vals)))
 	  (if (not (or (mus-arrays-equal?1 (cadr vals) (float-vector 0.500 0.515 0.379 0.000 0.000 0.000 0.000 0.000 0.000 0.000))
 		       (mus-arrays-equal?1 (cadr vals) (float-vector 0.500 0.509 0.385 0.000 0.000 0.000 0.000 0.000 0.000 0.000))
 		       (mus-arrays-equal?1 (cadr vals) (float-vector 0.499 0.498 0.373 0.000 0.000 0.000 0.000 0.000 0.000 0.000))))
-	      (snd-display ";elliptic lp 8 .1 spect: ~A" (cadr vals))))
+	      (snd-display "elliptic lp 8 .1 spect: ~A" (cadr vals))))
 	(let ((vals (sweep->bins (make-elliptic-lowpass 12 .25))))
-	  (if (> (abs (- (car vals) .5)) .1) (snd-display ";elliptic lp 12 max: ~A" (car vals)))
+	  (if (> (abs (- (car vals) .5)) .1) (snd-display "elliptic lp 12 max: ~A" (car vals)))
 	  (if (not (or (mus-arrays-equal?1 (cadr vals) (float-vector 0.476 0.500 0.491 0.499 0.494 0.412 0.003 0.001 0.000 0.000))
 		       (mus-arrays-equal?1 (cadr vals) (float-vector 0.476 0.500 0.491 0.499 0.494 0.561 0.004 0.000 0.000 0.000))
 		       (mus-arrays-equal?1 (cadr vals) (float-vector 0.476 0.500 0.491 0.499 0.493 0.299 0.006 0.001 0.000 0.000))))
-	      (snd-display ";elliptic lp 12 .25 spect: ~A" (cadr vals))))
+	      (snd-display "elliptic lp 12 .25 spect: ~A" (cadr vals))))
 	(let ((vals (sweep->bins (make-elliptic-lowpass 4 .4))))
-	  (if (> (abs (- (car vals) .5)) .1) (snd-display ";elliptic lp 4 max: ~A" (car vals)))
+	  (if (> (abs (- (car vals) .5)) .1) (snd-display "elliptic lp 4 max: ~A" (car vals)))
 	  (if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.447 0.453 0.462 0.477 0.494 0.500 0.497 0.496 0.445 0.003)))
-	      (snd-display ";elliptic lp 4 .4 spect: ~A" (cadr vals))))
+	      (snd-display "elliptic lp 4 .4 spect: ~A" (cadr vals))))
 	(let ((vals (sweep->bins (make-elliptic-lowpass 8 .1 .1))))
-	  (if (> (abs (- (car vals) .5)) .1) (snd-display ";elliptic lp 8 .1 max: ~A" (car vals)))
+	  (if (> (abs (- (car vals) .5)) .1) (snd-display "elliptic lp 8 .1 max: ~A" (car vals)))
 	  (if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.500 0.499 0.475 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	      (snd-display ";elliptic lp 8 .1 .1 spect: ~A" (cadr vals))))
+	      (snd-display "elliptic lp 8 .1 .1 spect: ~A" (cadr vals))))
 	(let ((vals (sweep->bins (make-elliptic-lowpass 8 .1 .1 90))))
-	  (if (> (abs (- (car vals) .5)) .1) (snd-display ";elliptic lp 8 .1 90 max: ~A" (car vals)))
+	  (if (> (abs (- (car vals) .5)) .1) (snd-display "elliptic lp 8 .1 90 max: ~A" (car vals)))
 	  (if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.500 0.499 0.475 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	      (snd-display ";elliptic lp 8 .1 .1 90 spect: ~A" (cadr vals))))
+	      (snd-display "elliptic lp 8 .1 .1 90 spect: ~A" (cadr vals))))
 	(let ((vals (sweep->bins (make-elliptic-lowpass 8 .25 .01 90))))
-	  (if (> (abs (- (car vals) .5)) .1) (snd-display ";elliptic lp 8 .25 90 max: ~A" (car vals)))
+	  (if (> (abs (- (car vals) .5)) .1) (snd-display "elliptic lp 8 .25 90 max: ~A" (car vals)))
 	  (if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.500 0.500 0.500 0.500 0.499 0.495 0.001 0.000 0.000 0.000)))
-	      (snd-display ";elliptic lp 8 .25 .1 90 spect: ~A" (cadr vals))))
+	      (snd-display "elliptic lp 8 .25 .1 90 spect: ~A" (cadr vals))))
 	
 	(let ((vals (sweep->bins (make-elliptic-highpass 4 .1))))
-	  (if (> (abs (- (car vals) .5)) .1) (snd-display ";elliptic hp 4 max: ~A" (car vals)))
+	  (if (> (abs (- (car vals) .5)) .1) (snd-display "elliptic hp 4 max: ~A" (car vals)))
 	  (if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.004 0.438 0.516 0.499 0.502 0.495 0.478 0.463 0.453 0.447)))
-	      (snd-display ";elliptic hp 4 .1 spect: ~A" (cadr vals))))
+	      (snd-display "elliptic hp 4 .1 spect: ~A" (cadr vals))))
 	(let ((vals (cadr (sweep->bins (make-elliptic-highpass 12 .25)))))
 	  (if (not (or (mus-arrays-equal?1 vals (float-vector 0.000 0.001 0.001 0.001 0.026 0.934 0.518 0.495 0.503 0.477))
 		       (mus-arrays-equal?1 vals (float-vector 0.000 0.001 0.001 0.001 0.033 1.185 0.519 0.495 0.503 0.477))
 		       (mus-arrays-equal?1 vals (float-vector 0.000 0.001 0.001 0.001 0.018 0.788 0.520 0.495 0.503 0.477))))
-	      (snd-display ";elliptic hp 12 .25 spect: ~A" vals)))
+	      (snd-display "elliptic hp 12 .25 spect: ~A" vals)))
 	(let ((vals (sweep->bins (make-elliptic-highpass 12 .25 .01 90))))
-	  (if (> (abs (- (car vals) .5)) .1) (snd-display ";elliptic hp 12 90 max: ~A" (car vals)))
+	  (if (> (abs (- (car vals) .5)) .1) (snd-display "elliptic hp 12 90 max: ~A" (car vals)))
 	  (if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.000 0.000 0.000 0.000 0.499 0.517 0.503 0.501 0.500 0.500)))
-	      (snd-display ";elliptic hp 12 .25 90 spect: ~A" (cadr vals))))
+	      (snd-display "elliptic hp 12 .25 90 spect: ~A" (cadr vals))))
 	(let ((vals (sweep->bins (make-elliptic-highpass 4 .4))))
-	  (if (> (abs (- (car vals) .5)) .1) (snd-display ";elliptic hp 4 max: ~A" (car vals)))
+	  (if (> (abs (- (car vals) .5)) .1) (snd-display "elliptic hp 4 max: ~A" (car vals)))
 	  (if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.000 0.000 0.000 0.001 0.001 0.002 0.023 0.447 0.515 0.502)))
-	      (snd-display ";elliptic hp 4 .4 spect: ~A" (cadr vals))))
+	      (snd-display "elliptic hp 4 .4 spect: ~A" (cadr vals))))
 	(let ((vals (sweep->bins (make-elliptic-highpass 8 .1 .1))))
-	  (if (> (abs (- (car vals) .5)) .1) (snd-display ";elliptic hp 8 .1 max: ~A" (car vals)))
+	  (if (> (abs (- (car vals) .5)) .1) (snd-display "elliptic hp 8 .1 max: ~A" (car vals)))
 	  (if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.000 0.478 0.553 0.506 0.499 0.501 0.501 0.499 0.497 0.495)))
-	      (snd-display ";elliptic hp 8 .1 .1 spect: ~A" (cadr vals))))
+	      (snd-display "elliptic hp 8 .1 .1 spect: ~A" (cadr vals))))
 	(let ((vals (sweep->bins (make-elliptic-highpass 8 .1 .1 90))))
-	  (if (> (abs (- (car vals) .5)) .1) (snd-display ";elliptic hp 8 .1 90 max: ~A" (car vals)))
+	  (if (> (abs (- (car vals) .5)) .1) (snd-display "elliptic hp 8 .1 90 max: ~A" (car vals)))
 	  (if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.000 0.478 0.554 0.506 0.499 0.501 0.501 0.499 0.497 0.495)))
-	      (snd-display ";elliptic hp 8 .1 .1 90 spect: ~A" (cadr vals))))
+	      (snd-display "elliptic hp 8 .1 .1 90 spect: ~A" (cadr vals))))
 	(let ((vals (sweep->bins (make-elliptic-highpass 8 .25 .01 90))))
-	  (if (> (abs (- (car vals) .5)) .1) (snd-display ";elliptic hp 8 .25 90 max: ~A" (car vals)))
+	  (if (> (abs (- (car vals) .5)) .1) (snd-display "elliptic hp 8 .25 90 max: ~A" (car vals)))
 	  (if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.000 0.000 0.000 0.001 0.516 0.517 0.507 0.503 0.501 0.500)))
-	      (snd-display ";elliptic hp 8 .25 .1 90 spect: ~A" (cadr vals))))
+	      (snd-display "elliptic hp 8 .25 .1 90 spect: ~A" (cadr vals))))
 	
 	(let ((vals (sweep->bins (make-elliptic-bandpass 4 .1 .2 .1))))
-	  (if (> (abs (- (car vals) .5)) .1) (snd-display ";elliptic bp 4 max: ~A" (car vals)))
+	  (if (> (abs (- (car vals) .5)) .1) (snd-display "elliptic bp 4 max: ~A" (car vals)))
 	  (if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.036 0.546 0.550 0.510 0.501 0.032 0.024 0.009 0.021 0.024)))
-	      (snd-display ";elliptic bp 4 .1 .2 spect: ~A" (cadr vals))))
+	      (snd-display "elliptic bp 4 .1 .2 spect: ~A" (cadr vals))))
 	(let ((vals (sweep->bins (make-elliptic-bandpass 6 .1 .2 .1 90))))
-	  (if (> (abs (- (car vals) .5)) .1) (snd-display ";elliptic bp 6 max: ~A" (car vals)))
+	  (if (> (abs (- (car vals) .5)) .1) (snd-display "elliptic bp 6 max: ~A" (car vals)))
 	  (if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.002 0.511 0.532 0.503 0.492 0.003 0.001 0.001 0.001 0.001)))
-	      (snd-display ";elliptic bp 6 .1 .2 90 spect: ~A" (cadr vals))))
+	      (snd-display "elliptic bp 6 .1 .2 90 spect: ~A" (cadr vals))))
 	
 	(let ((vals (sweep->bins (make-elliptic-bandstop 4 .1 .3 .1))))
-	  (if (> (abs (- (car vals) .5)) .1) (snd-display ";elliptic bs 4 max: ~A" (car vals)))
+	  (if (> (abs (- (car vals) .5)) .1) (snd-display "elliptic bs 4 max: ~A" (car vals)))
 	  (if (not (mus-arrays-equal?1 (cadr vals) (float-vector 0.499 0.502 0.498 0.037 0.050 0.540 0.544 0.527 0.526 0.521)))
-	      (snd-display ";elliptic bs 4 .1 .2 spect: ~A" (cadr vals))))
+	      (snd-display "elliptic bs 4 .1 .2 spect: ~A" (cadr vals))))
 	(let ((vals (sweep->bins (make-elliptic-bandstop 8 .1 .3 .1 120))))
-	  (if (> (abs (- (car vals) .5)) .1) (snd-display ";elliptic bs 8 max: ~A" (car vals)))
+	  (if (> (abs (- (car vals) .5)) .1) (snd-display "elliptic bs 8 max: ~A" (car vals)))
 	  (if (not (or (mus-arrays-equal?1 (cadr vals) (float-vector 0.500 0.499 0.476 0.000 0.000 0.495 0.526 0.505 0.501 0.501))
 		       (mus-arrays-equal?1 (cadr vals) (float-vector 0.500 0.499 0.475 0.000 0.000 0.495 0.526 0.505 0.501 0.501))))
-	      (snd-display ";elliptic bs 8 .1 .2 spect: ~A" (cadr vals))))
+	      (snd-display "elliptic bs 8 .1 .2 spect: ~A" (cadr vals))))
 	)))
   
   ;; ----------------
@@ -10554,95 +10554,95 @@ EDITS: 2
       
       ;; degree=0
       (let ((val (poly-roots (float-vector 0.0))))
-	(if (pair? val) (snd-display ";poly-roots 0.0: ~A" val)))
+	(if (pair? val) (snd-display "poly-roots 0.0: ~A" val)))
       (let ((val (poly-roots (float-vector 12.3))))
-	(if (pair? val) (snd-display ";poly-roots 12.3: ~A" val)))
+	(if (pair? val) (snd-display "poly-roots 12.3: ~A" val)))
       
       ;; degree 0 + x=0
       (let ((val (poly-roots (float-vector 0.0 1.0))))
-	(if (not (ceql val '(0.0))) (snd-display ";poly-roots 0.0 1.0: ~A" val)))
+	(if (not (ceql val '(0.0))) (snd-display "poly-roots 0.0 1.0: ~A" val)))
       (let ((val (poly-roots (float-vector 0.0 0.0 0.0 121.0))))
-	(if (not (ceql val '(0.0 0.0 0.0))) (snd-display ";poly-roots 0.0 0.0 0.0 121.0: ~A" val)))
+	(if (not (ceql val '(0.0 0.0 0.0))) (snd-display "poly-roots 0.0 0.0 0.0 121.0: ~A" val)))
       
       ;; degree=1
       (let ((val (poly-roots (float-vector -1.0 1.0))))
-	(if (not (ceql val '(1.0))) (snd-display ";poly-roots -1.0 1.0: ~A" val)))
+	(if (not (ceql val '(1.0))) (snd-display "poly-roots -1.0 1.0: ~A" val)))
       (let ((val (poly-roots (float-vector -2.0 4.0))))
-	(if (not (ceql val '(0.5))) (snd-display ";poly-roots -2.0 4.0: ~A" val)))
+	(if (not (ceql val '(0.5))) (snd-display "poly-roots -2.0 4.0: ~A" val)))
       (let ((val (poly-as-vector-roots (vector 0.0-i 1))))
-	(if (not (ceql val '(-0.0+1.0i))) (snd-display ";poly-roots: -i 1: ~A" val)))
+	(if (not (ceql val '(-0.0+1.0i))) (snd-display "poly-roots: -i 1: ~A" val)))
       
       ;; linear x^n
       (let ((val (poly-roots (float-vector -1.0 0.0 0.0 0.0 1.0))))
 	(if (not (or (ceql val '(0.0-1.0i -1.0 0.0+1.0i 1.0))
 		     (ceql val '(1.0 -1.0 0.0+1.0i -0.0-1.0i))))
-	    (snd-display ";poly-roots -1.0 0.0 0.0 0.0 1.0: ~A" val)))
+	    (snd-display "poly-roots -1.0 0.0 0.0 0.0 1.0: ~A" val)))
       (let ((val (poly-roots (float-vector -16.0 0.0 0.0 0.0 1.0))))
 	(if (not (or (ceql val '(0.0-2.0i -2.0 0.0+2.0i 2.0))
 		     (ceql val '(2.0 -2.0 0.0+2.0i -0.0-2.0i))))
-	    (snd-display ";poly-roots -16.0 0.0 0.0 0.0 1.0: ~A" val)))
+	    (snd-display "poly-roots -16.0 0.0 0.0 0.0 1.0: ~A" val)))
       (let ((val (poly-roots (float-vector -32.0 0 0 0 0 0 0.5))))
-	(if (not (ceql val '(1.0-1.7320i -1.0-1.7320i -2.0 -1.0+1.7320i 1.0+1.7320i 2.0))) (snd-display ";poly-roots 32 0 0 0 0 0 0.5: ~A" val)))
+	(if (not (ceql val '(1.0-1.7320i -1.0-1.7320i -2.0 -1.0+1.7320i 1.0+1.7320i 2.0))) (snd-display "poly-roots 32 0 0 0 0 0 0.5: ~A" val)))
       
       ;; linear + x=0
       (let ((val (poly-roots (float-vector 0.0 -2.0 4.0))))
-	(if (not (ceql val '(0.0 0.5))) (snd-display ";poly-roots 0.0 -2.0 4.0: ~A" val)))
+	(if (not (ceql val '(0.0 0.5))) (snd-display "poly-roots 0.0 -2.0 4.0: ~A" val)))
       
       ;; degree=2
       (let ((val (poly-roots (float-vector -1.0 0.0 1.0))))
-	(if (not (ceql val '(1.0 -1.0))) (snd-display ";poly-roots -1.0 0.0 1.0: ~A" val)))
+	(if (not (ceql val '(1.0 -1.0))) (snd-display "poly-roots -1.0 0.0 1.0: ~A" val)))
       (let ((val (poly-roots (float-vector 15.0 -8.0 1.0))))
-	(if (not (ceql val '(5.0 3.0))) (snd-display ";poly-roots 15.0 -8.0 1.0: ~A" val)))
+	(if (not (ceql val '(5.0 3.0))) (snd-display "poly-roots 15.0 -8.0 1.0: ~A" val)))
       (let ((val (poly-roots (float-vector 1 -2 1))))
-	(if (not (ceql val '(1.0 1.0))) (snd-display ";poly-roots 1 -2 1: ~A" val)))
+	(if (not (ceql val '(1.0 1.0))) (snd-display "poly-roots 1 -2 1: ~A" val)))
       (let ((val (poly-as-vector-roots (vector -1 0.0+2i 1))))
-	(if (not (ceql val '(0.0-1.0i 0.0-1.0i))) (snd-display ";poly-roots -1 2i 1: ~A" val)))
+	(if (not (ceql val '(0.0-1.0i 0.0-1.0i))) (snd-display "poly-roots -1 2i 1: ~A" val)))
       (let ((val (poly-roots (float-vector 1 1 5))))
-	(if (not (ceql val '(-0.1+0.43589i -0.1-0.43589i))) (snd-display ";poly-roots 1 1 5: ~A" val)))
+	(if (not (ceql val '(-0.1+0.43589i -0.1-0.43589i))) (snd-display "poly-roots 1 1 5: ~A" val)))
       
       ;; 2 + x=0
       (let ((val (poly-roots (float-vector 0.0 0.0 -1.0 0.0 1.0))))
-	(if (not (ceql val '(0.0 0.0 1.0 -1.0))) (snd-display ";poly-roots 0.0 0.0 -1.0 0.0 1.0: ~A" val)))
+	(if (not (ceql val '(0.0 0.0 1.0 -1.0))) (snd-display "poly-roots 0.0 0.0 -1.0 0.0 1.0: ~A" val)))
       
       ;; quadratic in x^(n/2)
       (let ((vals (poly-roots (float-vector 1.0 0.0 -2.0 0.0 1.0))))
 	(if (not (or (ceql vals '(-1.0 1.0 -1.0 1.0))
 		     (ceql vals '(1.0 1.0 -1.0 -1.0))))
-	    (snd-display ";poly-roots 1 0 -2 0 1: ~A" vals)))
+	    (snd-display "poly-roots 1 0 -2 0 1: ~A" vals)))
       (let ((vals (poly-roots (float-vector 64.0 0.0 0.0 -16.0 0.0 0.0 1.0))))
 	(if (not (ceql vals '(-1.0-1.73205i -1.0+1.73205i 2.0 -1.0-1.73205i -1.0+1.73205i 2.0)))
-	    (snd-display ";poly-roots 64 0 0 -16 0 0 1: ~A" vals)))
+	    (snd-display "poly-roots 64 0 0 -16 0 0 1: ~A" vals)))
       
       ;; degree=3
       (let ((val (poly-roots (float-vector -15.0 23.0 -9.0 1.0))))
-	(if (not (ceql val '(5.0 1.0 3.0))) (snd-display ";poly-roots 5 1 3: ~A" val)))
+	(if (not (ceql val '(5.0 1.0 3.0))) (snd-display "poly-roots 5 1 3: ~A" val)))
       (let ((val (poly-roots (float-vector -126 -15 0 1))))
-	(if (not (ceql val '(6.0 -3.0+3.46410i -3.0-3.46410i))) (snd-display ";poly-roots -126 -15 0 1: ~A" val)))
+	(if (not (ceql val '(6.0 -3.0+3.46410i -3.0-3.46410i))) (snd-display "poly-roots -126 -15 0 1: ~A" val)))
       
       (let ((val (poly-roots (float-vector -1 3 -3 1))))
-	(if (not (ceql val '(1.0 1.0 1.0))) (snd-display ";poly-roots -1 3 -3 1: ~A" val))) 
+	(if (not (ceql val '(1.0 1.0 1.0))) (snd-display "poly-roots -1 3 -3 1: ~A" val))) 
       (let ((val (poly-roots (float-vector 1 -1 -1 1))))
 	(if (not (or (ceql val '(1.0 -1.0 1.0))
 		     (ceql val '(-1.0 1.0 1.0))))
-	    (snd-display ";poly-roots 1 -1 1: ~A" val)))
+	    (snd-display "poly-roots 1 -1 1: ~A" val)))
       (let ((val (poly-roots (float-vector 2 -2 -2 2))))
 	(if (not (or (ceql val '(1.0 -1.0 1.0))
 		     (ceql val '(-1.0 1.0 1.0))))
-	    (snd-display ";poly-roots 2 -2 -2 2: ~A" val)))
+	    (snd-display "poly-roots 2 -2 -2 2: ~A" val)))
       
       (let ((vals (poly-roots (float-vector -64 0 0 0 0 0 1))))
 	(if (not (ceql vals '(0.999999999999999-1.73205080756888i -1.0-1.73205080756888i -2.0 -1.0+1.73205080756888i 1.0+1.73205080756888i 2.0)))
-	    (snd-display ";poly-roots 64 6: ~A" vals)))
+	    (snd-display "poly-roots 64 6: ~A" vals)))
       (let ((vals (poly-roots (float-vector 64 0 0 -16 0 0 1))))
 	(if (not (ceql vals '(-1.0-1.73205080756888i -1.0+1.73205080756888i 2.0 -1.0-1.73205080756888i -1.0+1.73205080756888i 2.0)))
-	    (snd-display ";poly-roots 64 16 6: ~A" vals)))
+	    (snd-display "poly-roots 64 16 6: ~A" vals)))
       (do ((i 0 (+ i 1))) ((= i 10)) (poly-roots (float-vector (random 1.0) (random 1.0) (random 1.0))))
       (do ((i 0 (+ i 1))) ((= i 10)) (poly-roots (float-vector (mus-random 1.0) (mus-random 1.0) (mus-random 1.0))))
       
       (let ((vals1 (convolution (float-vector 1 2 3 0 0 0 0 0) (float-vector 1 2 3 0 0 0 0 0) 8))
 	    (vals2 (poly* (float-vector 1 2 3 0) (float-vector 1 2 3 0))))
 	(if (not (mus-arrays-equal? vals1 vals2))
-	    (snd-display ";poly* convolve: ~A ~A" vals1 vals2)))
+	    (snd-display "poly* convolve: ~A ~A" vals1 vals2)))
       
       (let ((random-complex (lambda () (complex (mus-random 1.0) (mus-random 1.0)))))
 	(do ((i 0 (+ i 1))) ((= i 10)) 
@@ -10673,26 +10673,26 @@ EDITS: 2
       (let ((vals (poly-roots (float-vector 1 -1 -1 1))))
 	(if (not (or (ceql vals '(1.0 -1.0 1.0))
 		     (ceql vals '(-1.0 1.0 1.0))))
-	    (snd-display ";poly-roots 1-1-11: ~A" vals)))
+	    (snd-display "poly-roots 1-1-11: ~A" vals)))
       (let ((vals (poly-roots (float-vector 2 -1 -2 1))))
-	(if (not (ceql vals '(2.0 -1.0 1.0))) (snd-display ";poly-roots 2-1-21: ~A" vals)))
+	(if (not (ceql vals '(2.0 -1.0 1.0))) (snd-display "poly-roots 2-1-21: ~A" vals)))
       (let ((vals (poly-roots (float-vector -1 1 1 1))))
 	(if (not (ceql vals '(0.543689012692076 -0.771844506346038+1.11514250803994i -0.771844506346038-1.11514250803994i)))
-	    (snd-display ";poly-roots -1111: ~A" vals)))
+	    (snd-display "poly-roots -1111: ~A" vals)))
       (let ((vals (poly-roots (float-vector -1 3 -3 1))))
-	(if (not (ceql vals '(1.0 1.0 1.0))) (snd-display ";poly-roots -13-31: ~A" vals)))
+	(if (not (ceql vals '(1.0 1.0 1.0))) (snd-display "poly-roots -13-31: ~A" vals)))
 					;      (let ((vals (poly-roots (float-vector 1 -4 6 -4 1))))
-					;	(if (not (ceql vals '(1.0 1.0 1.0 1.0))) (snd-display ";poly-roots 1-46-41: ~A" vals)))
+					;	(if (not (ceql vals '(1.0 1.0 1.0 1.0))) (snd-display "poly-roots 1-46-41: ~A" vals)))
       (let ((vals (poly-roots (float-vector 0.5 0 0 1.0))))
 	(if (not (or (ceql vals '(0.396850262992049-0.687364818499302i -0.7937005259841 0.39685026299205+0.687364818499301i))
 		     (ceql vals '(0.39685026299205+0.687364818499301i 0.39685026299205-0.687364818499301i -0.7937005259841))
 		  (ceql vals '(-7.9370052598409979172089E-1 3.968502629920498958E-1+6.873648184993013E-1i 3.96850262992049E-1-6.873648184993E-1i))))
-	    (snd-display ";poly-roots 0..5 3: ~A" vals)))
+	    (snd-display "poly-roots 0..5 3: ~A" vals)))
       (let ((vals (poly-roots (poly* (poly* (poly* (float-vector -1 1) (float-vector 1 1))
 					    (poly* (float-vector -2 1) (float-vector 2 1)))
 				     (poly* (float-vector -3 1) (float-vector 3 1))))))
 	(if (not (ceql vals '(-3.0 3.0 -1.0 1.0 -2.0 2.0)))
-	    (snd-display ";cube in 2: ~A" vals)))))
+	    (snd-display "cube in 2: ~A" vals)))))
 
   ;; -----------------
   (define (test-fm-components)
@@ -10712,7 +10712,7 @@ EDITS: 2
 ;fm-complex-component add -0.016 from J4(1.0) = 0.002 and I-2(4.0) = 6.422
 ;fm-cascade-component add 0.512 from J0(1.5) = 0.512 and J0(1.0) = 1.000
 "))
-	  (snd-display ";fm-components are unexpected:~%~S" str)))))
+	  (snd-display "fm-components are unexpected:~%~S" str)))))
   
   ;; ----------------
   (define fltit
@@ -10788,14 +10788,14 @@ EDITS: 2
   (define* (print-and-check gen name desc (desc1 "") (desc2 ""))
     
     (if (not (string=? (mus-name gen) name))
-	(snd-display ";mus-name ~A: ~A?" name (mus-name gen)))
+	(snd-display "mus-name ~A: ~A?" name (mus-name gen)))
     (if (not (or (string=? (mus-describe gen) desc)
 		 (string=? (mus-describe gen) desc1)
 		 (string=? (mus-describe gen) desc2)))
-	(snd-display ";mus-describe ~A: ~A?" (mus-name gen) (mus-describe gen)))
+	(snd-display "mus-describe ~A: ~A?" (mus-name gen) (mus-describe gen)))
     (let ((egen gen))
       (if (not (equal? egen gen))
-	  (snd-display ";equal? ~A: ~A?" gen egen))))
+	  (snd-display "equal? ~A: ~A?" gen egen))))
   
   ;; ----------------
   (define (test-gen-equal g0 g1 g2)
@@ -10803,52 +10803,52 @@ EDITS: 2
     
     (let ((g3 g0))
       (if (not (eq? g0 g3))
-	  (snd-display ";let ~A not eq?~%    ~A~%    ~A" (mus-name g0) g0 g3))
+	  (snd-display "let ~A not eq?~%    ~A~%    ~A" (mus-name g0) g0 g3))
       (if (eq? g0 g1)
-	  (snd-display ";arg ~A eq?~%    ~A~%    ~A" (mus-name g0) g0 g1))
+	  (snd-display "arg ~A eq?~%    ~A~%    ~A" (mus-name g0) g0 g1))
       (if (not (equal? g0 g1))
-	  (snd-display ";~A not equal?~%    ~A~%    ~A" (mus-name g0) g0 g1))
+	  (snd-display "~A not equal?~%    ~A~%    ~A" (mus-name g0) g0 g1))
       (if (equal? g0 g2)
-	  (snd-display ";~A equal?~%    ~A~%    ~A" (mus-name g0) g0 g2))
+	  (snd-display "~A equal?~%    ~A~%    ~A" (mus-name g0) g0 g2))
       (g0)
       (g3)
       (g3)
       (if (not (eq? g0 g3))
-	  (snd-display ";run let ~A not eq?~%    ~A~%    ~A" (mus-name g0) g0 g3))
+	  (snd-display "run let ~A not eq?~%    ~A~%    ~A" (mus-name g0) g0 g3))
       (if (eq? g0 g1)
-	  (snd-display ";arg ~A eq?~%    ~A~%    ~A" (mus-name g0) g0 g1))
+	  (snd-display "arg ~A eq?~%    ~A~%    ~A" (mus-name g0) g0 g1))
       (if (equal? g0 g1)
-	  (snd-display ";run ~A equal?~%    ~A~%    ~A" (mus-name g0) g0 g1))
+	  (snd-display "run ~A equal?~%    ~A~%    ~A" (mus-name g0) g0 g1))
       (if (equal? g0 g2)
-	  (snd-display ";run ~A equal?~%    ~A~%    ~A" (mus-name g0) g0 g2))
+	  (snd-display "run ~A equal?~%    ~A~%    ~A" (mus-name g0) g0 g2))
       (let ((data (catch #t (lambda () (mus-data g0)) (lambda args #f))))
 	(when (float-vector? data)
 	  (let ((data4 (catch #t (lambda () (mus-data (copy g0))) (lambda args #f))))
 	    (if (not (float-vector? data4)) 
-		(snd-display ";~A copy -> mus-data ~A?" (mus-name g0) data4)))))))
+		(snd-display "~A copy -> mus-data ~A?" (mus-name g0) data4)))))))
   
   ;; ----------------
   (define (fm-test gen)
-    (if (not (mus-generator? gen)) (snd-display ";~A not a gen?" gen))
+    (if (not (mus-generator? gen)) (snd-display "~A not a gen?" gen))
     (set! (mus-frequency gen) 0.0)
     (set! (mus-phase gen) 0.0)
     (gen 0.0)
-    (if (fneq (mus-phase gen) 0.0) (snd-display ";~A phase(0): ~A" gen (mus-phase gen)))
+    (if (fneq (mus-phase gen) 0.0) (snd-display "~A phase(0): ~A" gen (mus-phase gen)))
     (gen 1.0)
-    (if (fneq (mus-phase gen) 1.0) (snd-display ";~A phase(1): ~A" gen (mus-phase gen)))
+    (if (fneq (mus-phase gen) 1.0) (snd-display "~A phase(1): ~A" gen (mus-phase gen)))
     (gen 0.0)
-    (if (fneq (mus-phase gen) 1.0) (snd-display ";~A phase(1, 0): ~A" gen (mus-phase gen)))
+    (if (fneq (mus-phase gen) 1.0) (snd-display "~A phase(1, 0): ~A" gen (mus-phase gen)))
     (set! (mus-frequency gen) (radians->hz 2.0))
-    (if (fneq (mus-increment gen) 2.0) (snd-display ";~A increment: ~A" gen (mus-increment gen)))
+    (if (fneq (mus-increment gen) 2.0) (snd-display "~A increment: ~A" gen (mus-increment gen)))
     (set! (mus-increment gen) 2.0)
-    (if (fneq (mus-frequency gen) (radians->hz 2.0)) (snd-display ";~A set increment: ~A ~A" gen (mus-increment gen) (hz->radians (mus-frequency gen))))
+    (if (fneq (mus-frequency gen) (radians->hz 2.0)) (snd-display "~A set increment: ~A ~A" gen (mus-increment gen) (hz->radians (mus-frequency gen))))
     (gen 0.0)
-    (if (fneq (mus-phase gen) 3.0) (snd-display ";~A phase(1, 2): ~A ~A" gen (mus-phase gen) (mus-frequency gen)))
+    (if (fneq (mus-phase gen) 3.0) (snd-display "~A phase(1, 2): ~A ~A" gen (mus-phase gen) (mus-frequency gen)))
     (gen 1.0)
-    (if (fneq (mus-phase gen) 6.0) (snd-display ";~A phase(3, 2, 1): ~A ~A" gen (mus-phase gen) (mus-frequency gen)))
+    (if (fneq (mus-phase gen) 6.0) (snd-display "~A phase(3, 2, 1): ~A ~A" gen (mus-phase gen) (mus-frequency gen)))
     (do ((i 0 (+ i 1))) ((= i 10)) (gen 10.0))
     (if (fneq (mus-phase gen) (- 126 (* 40 pi))) ;(+ 26 (- 100 (* 40 pi)))) ;(+ 26 (- 100 (* 2 pi 20)))
-	(snd-display ";~A phase (over): ~A ~A" gen (mus-phase gen) (mus-frequency gen)))
+	(snd-display "~A phase (over): ~A ~A" gen (mus-phase gen) (mus-frequency gen)))
     (set! (mus-frequency gen) 0.0)
     (set! (mus-phase gen) 0.0)
     (gen 1234567812345678)
@@ -10858,7 +10858,7 @@ EDITS: 2
     (gen -2.0)
     (if (and (fneq (mus-phase gen) -2.0)
 	     (fneq (mus-phase gen) (- (* 2 pi) 2.0)))
-	(snd-display ";phase: ~A freq: ~A" (mus-phase gen) (mus-frequency gen))))
+	(snd-display "phase: ~A freq: ~A" (mus-phase gen) (mus-frequency gen))))
   
   ;; ----------------
   (define* (agc (ramp-speed .001) (window-size 512))
@@ -10882,7 +10882,7 @@ EDITS: 2
 	 (i 0 (+ i 1)))
 	((= i 12)
 	 (if (> max-bad 1.0e-15)
-	     (snd-display ";acos: ~A" max-bad)))
+	     (snd-display "acos: ~A" max-bad)))
       (set! max-bad (max max-bad (abs (- (acos (vector-ref args i))
 					 (vector-ref vals i))))))
     
@@ -10894,7 +10894,7 @@ EDITS: 2
 	 (i 0 (+ i 1)))
 	((= i 15)
 	 (if (> max-bad 1.0e-15)
-	     (snd-display ";acosh: ~A" max-bad)))
+	     (snd-display "acosh: ~A" max-bad)))
       (let ((nval (acosh (vector-ref args i))))
 	(set! max-bad (max max-bad (abs (- nval (vector-ref vals i)))))))
     
@@ -10906,7 +10906,7 @@ EDITS: 2
 	 (i 0 (+ i 1)))
 	((= i 12)
 	 (if (> max-bad 1.0e-15)
-	     (snd-display ";asin: ~A" max-bad)))
+	     (snd-display "asin: ~A" max-bad)))
       (set! max-bad (max max-bad (abs (- (asin (vector-ref args i))
 					 (vector-ref vals i))))))
     
@@ -10922,7 +10922,7 @@ EDITS: 2
 	     (diff (abs (- nval (vector-ref vals i)))))
 	(set! max-bad (max max-bad diff))
 	(if (> max-bad 1.0e-14)
-	    (snd-display ";asinh(~A): ~A ~A -> ~A" (vector-ref args i) nval (vector-ref vals i) max-bad))))
+	    (snd-display "asinh(~A): ~A ~A -> ~A" (vector-ref args i) nval (vector-ref vals i) max-bad))))
     
     (do ((vals (vector 0.00000000000000000000 0.24497866312686415417 0.32175055439664219340 0.46364760900080611621 0.78539816339744830962 
 		       1.1071487177940905030 1.2490457723982544258 1.3258176636680324651 1.3734007669450158609 1.4711276743037345919 1.5208379310729538578))
@@ -10932,7 +10932,7 @@ EDITS: 2
 	 (i 0 (+ i 1)))
 	((= i 11)
 	 (if (> max-bad 1.0e-15)
-	     (snd-display ";atan: ~A" max-bad)))
+	     (snd-display "atan: ~A" max-bad)))
       (set! max-bad (max max-bad (abs (- (atan (vector-ref args i))
 					 (vector-ref vals i))))))
     
@@ -10947,7 +10947,7 @@ EDITS: 2
 	     (diff (abs (- nval (vector-ref vals i)))))
 	(set! max-bad (max max-bad diff))
 	(if (> diff 1.0e-10) ; one is > e-11
-	    (snd-display ";atanh(~A): ~A ~A -> ~A" (vector-ref args i) (vector-ref vals i) nval diff))))
+	    (snd-display "atanh(~A): ~A ~A -> ~A" (vector-ref args i) (vector-ref vals i) nval diff))))
     
     (do ((vals (vector 0.1000000000000000E+01 0.1010025027795146E+01 0.1040401782229341E+01 0.1092045364317340E+01 0.1166514922869803E+01 
 		       0.1266065877752008E+01 0.1393725584134064E+01 0.1553395099731217E+01 0.1749980639738909E+01 0.1989559356618051E+01 
@@ -10963,7 +10963,7 @@ EDITS: 2
 	     (diff (abs (- nval (vector-ref vals i)))))
 	(set! max-bad (max max-bad diff))
 	(if (> diff 1.0e-4)
-	    (snd-display ";bes-i0(~A): ~A ~A -> ~A" (vector-ref args i) (vector-ref vals i) nval diff))))
+	    (snd-display "bes-i0(~A): ~A ~A -> ~A" (vector-ref args i) (vector-ref vals i) nval diff))))
     
     (do ((vals (vector -0.1775967713143383E+00 -0.3971498098638474E+00 -0.2600519549019334E+00 0.2238907791412357E+00 0.7651976865579666E+00 
 		       0.1000000000000000E+01 0.7651976865579666E+00 0.2238907791412357E+00 -0.2600519549019334E+00 -0.3971498098638474E+00 
@@ -10978,7 +10978,7 @@ EDITS: 2
 	     (diff (abs (- nval (vector-ref vals i)))))
 	(set! max-bad (max max-bad diff))
 	(if (> diff 1.0e-15)
-	    (snd-display ";bes-j0(~A): ~A ~A -> ~A" (vector-ref args i) (vector-ref vals i) nval diff))))
+	    (snd-display "bes-j0(~A): ~A ~A -> ~A" (vector-ref args i) (vector-ref vals i) nval diff))))
     
     (do ((vals (vector 0.3275791375914652E+00 0.6604332802354914E-01 -0.3390589585259365E+00 -0.5767248077568734E+00 -0.4400505857449335E+00 
 		       0.0000000000000000E+00 0.4400505857449335E+00 0.5767248077568734E+00 0.3390589585259365E+00 -0.6604332802354914E-01 
@@ -10993,7 +10993,7 @@ EDITS: 2
 	     (diff (abs (- nval (vector-ref vals i)))))
 	(set! max-bad (max max-bad diff))
 	(if (> diff 1.0e-15)
-	    (snd-display ";bes-j1(~A): ~A ~A -> ~A" (vector-ref args i) (vector-ref vals i) nval diff))))
+	    (snd-display "bes-j1(~A): ~A ~A -> ~A" (vector-ref args i) (vector-ref vals i) nval diff))))
     
     (do ((vals (vector 0.1149034849319005E+00 0.3528340286156377E+00 0.4656511627775222E-01 0.2546303136851206E+00 -0.5971280079425882E-01 
 		       0.2497577302112344E-03 0.7039629755871685E-02 0.2611405461201701E+00 -0.2340615281867936E+00 -0.8140024769656964E-01 
@@ -11009,7 +11009,7 @@ EDITS: 2
 	     (diff (abs (- nval (vector-ref vals i)))))
 	(set! max-bad (max max-bad diff))
 	(if (> diff 1.0e-15)
-	    (snd-display ";bes-jn(~A ~A): ~A ~A -> ~A" (vector-ref ns i) (vector-ref args i) (vector-ref vals i) nval diff))))
+	    (snd-display "bes-jn(~A ~A): ~A ~A -> ~A" (vector-ref ns i) (vector-ref args i) (vector-ref vals i) nval diff))))
     
     (do ((vals (vector -0.1534238651350367E+01 0.8825696421567696E-01 0.5103756726497451E+00 0.3768500100127904E+00 -0.1694073932506499E-01 
 		       -0.3085176252490338E+00 -0.2881946839815792E+00 -0.2594974396720926E-01 0.2235214893875662E+00 0.2499366982850247E+00 
@@ -11022,7 +11022,7 @@ EDITS: 2
 	     (diff (abs (- nval (vector-ref vals i)))))
 	(set! max-bad (max max-bad diff))
 	(if (> diff 1.0e-15)
-	    (snd-display ";bes-y0(~A): ~A ~A -> ~A" (vector-ref args i) (vector-ref vals i) nval diff))))
+	    (snd-display "bes-y0(~A): ~A ~A -> ~A" (vector-ref args i) (vector-ref vals i) nval diff))))
     
     (do ((vals (vector -0.6458951094702027E+01 -0.7812128213002887E+00 -0.1070324315409375E+00 0.3246744247918000E+00 0.3979257105571000E+00 
 		       0.1478631433912268E+00 -0.1750103443003983E+00 -0.3026672370241849E+00 -0.1580604617312475E+00 0.1043145751967159E+00 
@@ -11035,7 +11035,7 @@ EDITS: 2
 	     (diff (abs (- nval (vector-ref vals i)))))
 	(set! max-bad (max max-bad diff))
 	(if (> diff 1.0e-14)
-	    (snd-display ";bes-y1(~A): ~A ~A -> ~A" (vector-ref args i) (vector-ref vals i) nval diff))))
+	    (snd-display "bes-y1(~A): ~A ~A -> ~A" (vector-ref args i) (vector-ref vals i) nval diff))))
     
     (do ((vals (vector -0.1650682606816254E+01 -0.6174081041906827E+00 0.3676628826055245E+00 -0.5868082442208615E-02 0.9579316872759649E-01 
 		       -0.2604058666258122E+03 -0.9935989128481975E+01 -0.4536948224911019E+00 0.1354030476893623E+00 -0.7854841391308165E-01 
@@ -11055,7 +11055,7 @@ EDITS: 2
 	(set! max-bad (max max-bad diff))
 	(if (and (> diff 1.0e-6)
 		 (not (= i 15))) ; see above
-	    (snd-display ";bes-yn(~A ~A): ~A ~A -> ~A" (vector-ref ns i) (vector-ref args i) (vector-ref vals i) nval diff))))
+	    (snd-display "bes-yn(~A ~A): ~A ~A -> ~A" (vector-ref ns i) (vector-ref args i) (vector-ref vals i) nval diff))))
     ;; one (20 1.0) is off by a lot but the val is 1e22 
     
     ;; numerics stuff
@@ -11067,7 +11067,7 @@ EDITS: 2
       (let ((nval (binomial-direct (vector-ref ns i) (vector-ref ks i)))
 	    (mval (n-choose-k (vector-ref ns i) (vector-ref ks i))))
 	(if (not (= nval mval (vector-ref vals i)))
-	    (snd-display ";binomial(~A ~A): ~A ~A ~A" (vector-ref ns i) (vector-ref ks i) nval mval (vector-ref vals i)))))
+	    (snd-display "binomial(~A ~A): ~A ~A ~A" (vector-ref ns i) (vector-ref ks i) nval mval (vector-ref vals i)))))
     
     (do ((ls (vector 1 1 1 1 1 2 2 2 3 3 3 3 4 5 6 7 8 9 10))
 	 (ms (vector 0 0 0 0 1 0 1 2 0 1 2 3 2 2 3 3 4 4 5))
@@ -11080,7 +11080,7 @@ EDITS: 2
 	(if (not (and (real? val) 
 		      (real? (vector-ref vals i)) 
 		      (<= (abs (- val (vector-ref vals i))) 0.1)))
-	    (snd-display ";plgndr(~A ~A ~A) = ~A (~A)" (vector-ref ls i) (vector-ref ms i) (vector-ref xs i) val (vector-ref vals i)))))
+	    (snd-display "plgndr(~A ~A ~A) = ~A (~A)" (vector-ref ls i) (vector-ref ms i) (vector-ref xs i) val (vector-ref vals i)))))
     
     (let ((vals (vector  1.0000000000  0.8000000000  0.2800000000  -0.3520000000 -0.8432000000 -0.9971200000 
 			 -0.7521920000 -0.2063872000  0.4219724800  0.8815431680  0.9884965888  0.7000513741  0.1315856097))
@@ -11091,7 +11091,7 @@ EDITS: 2
 	  ((= i 13))
 	(let ((val (chebyshev (vector-ref ns i) (vector-ref xs i))))
 	  (if (fneq val (vector-ref vals i))
-	      (snd-display ";chebyshev ~A ~A -> ~A ~A" (vector-ref ns i) (vector-ref xs i) val (vector-ref vals i)))))
+	      (snd-display "chebyshev ~A ~A -> ~A ~A" (vector-ref ns i) (vector-ref xs i) val (vector-ref vals i)))))
       
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
@@ -11100,7 +11100,7 @@ EDITS: 2
 	       (val1 (gegenbauer order x 1.0))
 	       (val2 (chebyshev order x 2)))
 	  (if (fneq val1 val2)
-	      (snd-display ";gegenbauer/chebyshev (alpha=1) ~A ~A: ~A ~A" order x val1 val2)))))
+	      (snd-display "gegenbauer/chebyshev (alpha=1) ~A ~A: ~A ~A" order x val1 val2)))))
     
     (let ((as (vector      0.5  0.5  0.5      0.5  0.5  0.5      0.5  0.5  0.5      0.5  0.5  0.0      1.0  2.0  3.0 
 			   4.0  5.0  6.0      7.0  8.0  9.0     10.0  3.0  3.0      3.0  3.0  3.0      3.0  3.0  3.0      3.0  3.0  3.0 
@@ -11130,7 +11130,7 @@ EDITS: 2
 	  ((= i 38))
 	(let ((val (gegenbauer (vector-ref ns i) (vector-ref xs i) (vector-ref as i))))
 	  (if (fneq val (vector-ref vals i))
-	      (snd-display ";gegenbauer ~A ~A ~A -> ~A ~A" (vector-ref ns i) (vector-ref xs i) (vector-ref as i) val (vector-ref vals i)))))
+	      (snd-display "gegenbauer ~A ~A ~A -> ~A ~A" (vector-ref ns i) (vector-ref xs i) (vector-ref as i) val (vector-ref vals i)))))
       
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
@@ -11139,7 +11139,7 @@ EDITS: 2
 	       (val1 (gegenbauer 3 x alpha))
 	       (val2 (g3 x alpha)))
 	  (if (fneq val1 val2)
-	      (snd-display ";gegenbauer 3 ~A ~A: ~A ~A" x alpha val1 val2))))
+	      (snd-display "gegenbauer 3 ~A ~A: ~A ~A" x alpha val1 val2))))
       
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
@@ -11148,7 +11148,7 @@ EDITS: 2
 	       (val1 (gegenbauer 5 x alpha))
 	       (val2 (g5 x alpha)))
 	  (if (fneq val1 val2)
-	      (snd-display ";gegenbauer 5 ~A ~A: ~A ~A" x alpha val1 val2))))
+	      (snd-display "gegenbauer 5 ~A ~A: ~A ~A" x alpha val1 val2))))
       )
     
     (do ((vals (vector     1.0000000000  0.0000000000 -0.5000000000     -0.6666666667 -0.6250000000 -0.4666666667 
@@ -11160,7 +11160,7 @@ EDITS: 2
 	((= i 17))
       (let ((val (laguerre (vector-ref ns i) (vector-ref xs i))))
 	(if (fneq val (vector-ref vals i))
-	    (snd-display ";laguerre ~A ~A -> ~A ~A" (vector-ref ns i) (vector-ref xs i) val (vector-ref vals i)))))
+	    (snd-display "laguerre ~A ~A -> ~A ~A" (vector-ref ns i) (vector-ref xs i) val (vector-ref vals i)))))
     
     (do ((vals (vector     1.0            10.0           98.0      940.0          8812.0         80600.0 
 			   717880.0       6211600.0      52065680.0 ; was off by factor of 10?
@@ -11171,7 +11171,7 @@ EDITS: 2
 	((= i 13))
       (let ((val (hermite (vector-ref ns i) (vector-ref xs i))))
 	(if (fneq val (vector-ref vals i))
-	    (snd-display ";hermite ~A ~A -> ~A ~A" (vector-ref ns i) (vector-ref xs i) val (vector-ref vals i)))))
+	    (snd-display "hermite ~A ~A -> ~A ~A" (vector-ref ns i) (vector-ref xs i) val (vector-ref vals i)))))
     
     (do ((i 0 (+ i 1))) 
 	((= i 10))
@@ -11181,7 +11181,7 @@ EDITS: 2
 				     0.5))
 	    (pv (plgndr i 0 0.5)))
 	(if (fneq lv pv)
-	    (snd-display ";lv: ~A, pv: ~A (~A)" lv pv i))))
+	    (snd-display "lv: ~A, pv: ~A (~A)" lv pv i))))
     
     (let ((pow-x (lambda (pow x)
 		   ;; A&S p798
@@ -11201,7 +11201,7 @@ EDITS: 2
 	    (let ((lv (pow-x pow x))
 		  (sv (expt x pow)))
 	      (if (fneq lv sv)
-		  (snd-display ";~A ^ ~A = ~A ~A?" x pow lv sv))))
+		  (snd-display "~A ^ ~A = ~A ~A?" x pow lv sv))))
 	  '(0 1 2 3 4 5 6)))
        '(2.0 0.5 0.1 -0.5 3.0 0.8)))
     
@@ -11211,8 +11211,8 @@ EDITS: 2
 			 (x 0.0 (+ x .02))) 
 			((= i 100)) 
 		      (outa i (legendre 20 (cos x))))))))
-      (if (fneq (sample 0 index 0) 0.5) (snd-display ";legendre(cos(x)) 0: ~A" (sample 0 index 0)))
-      (if (fneq (sample 50 index 0) 0.062572978) (snd-display ";legendre(cos(x)) 50: ~A" (sample 50 index 0)))
+      (if (fneq (sample 0 index 0) 0.5) (snd-display "legendre(cos(x)) 0: ~A" (sample 0 index 0)))
+      (if (fneq (sample 50 index 0) 0.062572978) (snd-display "legendre(cos(x)) 50: ~A" (sample 50 index 0)))
       (close-sound index))
     
     
@@ -11238,12 +11238,12 @@ EDITS: 2
 		(v55 (hermite 5 x))
 		(v6 (h6 x))
 		(v66 (hermite 6 x)))
-	    (cond ((fneq v1 v11) (snd-display ";hermite 1 ~A: ~A ~A" x v1 v11))
-		  ((fneq v2 v22) (snd-display ";hermite 2 ~A: ~A ~A" x v2 v22))
-		  ((fneq v3 v33) (snd-display ";hermite 3 ~A: ~A ~A" x v3 v33))
-		  ((fneq v4 v44) (snd-display ";hermite 4 ~A: ~A ~A" x v4 v44))
-		  ((fneq v5 v55) (snd-display ";hermite 5 ~A: ~A ~A" x v5 v55))
-		  ((fneq v6 v66) (snd-display ";hermite 6 ~A: ~A ~A" x v6 v66)))))))
+	    (cond ((fneq v1 v11) (snd-display "hermite 1 ~A: ~A ~A" x v1 v11))
+		  ((fneq v2 v22) (snd-display "hermite 2 ~A: ~A ~A" x v2 v22))
+		  ((fneq v3 v33) (snd-display "hermite 3 ~A: ~A ~A" x v3 v33))
+		  ((fneq v4 v44) (snd-display "hermite 4 ~A: ~A ~A" x v4 v44))
+		  ((fneq v5 v55) (snd-display "hermite 5 ~A: ~A ~A" x v5 v55))
+		  ((fneq v6 v66) (snd-display "hermite 6 ~A: ~A ~A" x v6 v66)))))))
     
     (let ((lg1 (lambda (x) (- 1 x)))
 	  (lg2 (lambda (x) (+ 1 (* x (- (* x 0.5) 2)))))
@@ -11267,11 +11267,11 @@ EDITS: 2
 	      (va22 (laguerre 2 x a))
 	      (va3 (lag3 x a))
 	      (va33 (laguerre 3 x a)))
-	  (cond ((fneq v1 v11)   (snd-display ";laguerre 1 ~A: ~A ~A" x v1 v11))
-		((fneq v2 v22)   (snd-display ";laguerre 2 ~A: ~A ~A" x v2 v22))
-		((fneq va1 va11) (snd-display ";laguerre 1a ~A ~A: ~A ~A" x a va1 va11))
-		((fneq va2 va22) (snd-display ";laguerre 2a ~A ~A: ~A ~A" x a va2 va22))
-		((fneq va3 va33) (snd-display ";laguerre 3a ~A ~A: ~A ~A" x a va3 va33)))))))
+	  (cond ((fneq v1 v11)   (snd-display "laguerre 1 ~A: ~A ~A" x v1 v11))
+		((fneq v2 v22)   (snd-display "laguerre 2 ~A: ~A ~A" x v2 v22))
+		((fneq va1 va11) (snd-display "laguerre 1a ~A ~A: ~A ~A" x a va1 va11))
+		((fneq va2 va22) (snd-display "laguerre 2a ~A ~A: ~A ~A" x a va2 va22))
+		((fneq va3 va33) (snd-display "laguerre 3a ~A ~A: ~A ~A" x a va3 va33)))))))
   
   ;; ----------------
   ;; start of test
@@ -11284,103 +11284,103 @@ EDITS: 2
     (set! *clm-srate* 22050)
     (let ((samps (seconds->samples 1.0))
 	  (secs (samples->seconds 22050)))
-      (if (not (= samps 22050)) (snd-display ";seconds->samples: ~A" samps))
-      (if (fneq secs 1.0) (snd-display ";samples->seconds: ~A" secs)))
+      (if (not (= samps 22050)) (snd-display "seconds->samples: ~A" samps))
+      (if (fneq secs 1.0) (snd-display "samples->seconds: ~A" secs)))
     (set! *clm-file-buffer-size* default-file-buffer-size)
     (let ((var (catch #t (lambda () (set! *clm-file-buffer-size* #f)) (lambda args args))))
       (if (not (eq? (car var) 'wrong-type-arg))
-	  (snd-display ";mus-file-buffer-size bad size: ~A" var)))
+	  (snd-display "mus-file-buffer-size bad size: ~A" var)))
     (set! *clm-file-buffer-size* 128)
-    (if (not (= *clm-file-buffer-size* 128)) (snd-display ";mus-file-buffer-size: ~D?" *clm-file-buffer-size*))
+    (if (not (= *clm-file-buffer-size* 128)) (snd-display "mus-file-buffer-size: ~D?" *clm-file-buffer-size*))
     (set! *clm-file-buffer-size* default-file-buffer-size)
     
     (if (not (member *mus-array-print-length* '(8 12 32) =))
-	(snd-display ";mus-array-print-length: ~D?" *mus-array-print-length*))
+	(snd-display "mus-array-print-length: ~D?" *mus-array-print-length*))
     (set! *mus-array-print-length* 32)
-    (if (not (= *mus-array-print-length* 32)) (snd-display ";set mus-array-print-length: ~D?" *mus-array-print-length*))
+    (if (not (= *mus-array-print-length* 32)) (snd-display "set mus-array-print-length: ~D?" *mus-array-print-length*))
     (set! *mus-array-print-length* 8)
     
     (if (> (abs (- *mus-float-equal-fudge-factor* 0.0000001)) 0.00000001)
-	(snd-display ";mus-float-equal-fudge-factor: ~A?" *mus-float-equal-fudge-factor*))
+	(snd-display "mus-float-equal-fudge-factor: ~A?" *mus-float-equal-fudge-factor*))
     (let-temporarily ((*mus-float-equal-fudge-factor* .1))
       (if (fneq *mus-float-equal-fudge-factor* .1) 
-	  (snd-display ";set mus-float-equal-fudge-factor: ~A?" *mus-float-equal-fudge-factor*)))
-    
-    (if (fneq *clm-srate* 22050.0) (snd-display ";mus-srate: ~F?" *clm-srate*))
-    (if (fneq (hz->radians 1.0) 2.84951704088598e-4) (snd-display ";hz->radians: ~F?" (hz->radians 1.0)))
-    (if (fneq (radians->hz 2.84951704088598e-4) 1.0) (snd-display ";radians->hz: ~F?" (radians->hz 2.84951704088598e-4)))
-    (if (fneq (radians->degrees 1.0) 57.2957801818848) (snd-display ";radians->degrees: ~F?" (radians->degrees 1.0)))
-    (if (fneq (degrees->radians 57.2957801818848) 1.0) (snd-display ";degrees->radians: ~F?" (degrees->radians 57.2957801818848)))
-    (if (fneq (linear->db .25) -12.0411996841431) (snd-display ";linear->db: ~F?" (linear->db .25)))
-    (if (fneq (db->linear -12.0411996841431) .25) (snd-display ";db->linear: ~F?" (db->linear -12.0411996841431)))
-
-    (if (fneq (odd-weight 0.0) 0.0) (snd-display ";odd-weight 0.0: ~F?" (odd-weight 0.0)))
-    (if (fneq (odd-weight 2.0) 0.0) (snd-display ";odd-weight 2.0: ~F?" (odd-weight 2.0)))
-    (if (fneq (odd-weight 1.0) 1.0) (snd-display ";odd-weight 1.0: ~F?" (odd-weight 1.0)))
-    (if (fneq (odd-weight 1.5) 0.5) (snd-display ";odd-weight 1.5: ~F?" (odd-weight 1.5)))
-    (if (fneq (odd-weight 2.5) 0.5) (snd-display ";odd-weight 2.5: ~F?" (odd-weight 2.5)))
-    (if (fneq (odd-weight 2.1) 0.1) (snd-display ";odd-weight 2.1: ~F?" (odd-weight 2.1)))
-    (if (fneq (odd-weight 2.9) 0.9) (snd-display ";odd-weight 2.9: ~F?" (odd-weight 2.9)))
-    (if (fneq (odd-weight 1.1) 0.9) (snd-display ";odd-weight 1.1: ~F?" (odd-weight 1.1)))
-    (if (fneq (odd-weight 1.9) 0.1) (snd-display ";odd-weight 1.9: ~F?" (odd-weight 1.9)))
-
-    (if (fneq (even-weight 0.0) 1.0) (snd-display ";even-weight 0.0: ~F?" (even-weight 0.0)))
-    (if (fneq (even-weight 2.0) 1.0) (snd-display ";even-weight 2.0: ~F?" (even-weight 2.0)))
-    (if (fneq (even-weight 1.0) 0.0) (snd-display ";even-weight 1.0: ~F?" (even-weight 1.0)))
-    (if (fneq (even-weight 1.5) 0.5) (snd-display ";even-weight 1.5: ~F?" (even-weight 1.5)))
-    (if (fneq (even-weight 2.5) 0.5) (snd-display ";even-weight 2.5: ~F?" (even-weight 2.5)))
-    (if (fneq (even-weight 2.1) 0.9) (snd-display ";even-weight 2.1: ~F?" (even-weight 2.1)))
-    (if (fneq (even-weight 2.9) 0.1) (snd-display ";even-weight 2.9: ~F?" (even-weight 2.9)))
-    (if (fneq (even-weight 1.1) 0.1) (snd-display ";even-weight 1.1: ~F?" (even-weight 1.1)))
-    (if (fneq (even-weight 1.9) 0.9) (snd-display ";even-weight 1.9: ~F?" (even-weight 1.9)))
-
-    (if (fneq (odd-multiple 0.0 2.0) 2.0) (snd-display ";odd-multiple 0.0: ~F?" (odd-multiple 0.0 2.0)))
-    (if (fneq (odd-multiple 2.0 2.0) 6.0) (snd-display ";odd-multiple 2.0: ~F?" (odd-multiple 2.0 2.0)))
-    (if (fneq (odd-multiple 1.0 2.0) 2.0) (snd-display ";odd-multiple 1.0: ~F?" (odd-multiple 1.0 2.0)))
-    (if (fneq (odd-multiple 1.5 2.0) 2.0) (snd-display ";odd-multiple 1.5: ~F?" (odd-multiple 1.5 2.0)))
-    (if (fneq (odd-multiple 2.5 2.0) 6.0) (snd-display ";odd-multiple 2.5: ~F?" (odd-multiple 2.5 2.0)))
-    (if (fneq (odd-multiple 2.1 2.0) 6.0) (snd-display ";odd-multiple 2.1: ~F?" (odd-multiple 2.1 2.0)))
-    (if (fneq (odd-multiple 2.9 2.0) 6.0) (snd-display ";odd-multiple 2.9: ~F?" (odd-multiple 2.9 2.0)))
-    (if (fneq (odd-multiple 1.1 2.0) 2.0) (snd-display ";odd-multiple 1.1: ~F?" (odd-multiple 1.1 2.0)))
-    (if (fneq (odd-multiple 1.9 2.0) 2.0) (snd-display ";odd-multiple 1.9: ~F?" (odd-multiple 1.9 2.0)))
-
-    (if (fneq (even-multiple 0.0 2.0) 0.0) (snd-display ";even-multiple 0.0: ~F?" (even-multiple 0.0 2.0)))
-    (if (fneq (even-multiple 2.0 2.0) 4.0) (snd-display ";even-multiple 2.0: ~F?" (even-multiple 2.0 2.0)))
-    (if (fneq (even-multiple 1.0 2.0) 4.0) (snd-display ";even-multiple 1.0: ~F?" (even-multiple 1.0 2.0)))
-    (if (fneq (even-multiple 1.5 2.0) 4.0) (snd-display ";even-multiple 1.5: ~F?" (even-multiple 1.5 2.0)))
-    (if (fneq (even-multiple 2.5 2.0) 4.0) (snd-display ";even-multiple 2.5: ~F?" (even-multiple 2.5 2.0)))
-    (if (fneq (even-multiple 2.1 2.0) 4.0) (snd-display ";even-multiple 2.1: ~F?" (even-multiple 2.1 2.0)))
-    (if (fneq (even-multiple 2.9 2.0) 4.0) (snd-display ";even-multiple 2.9: ~F?" (even-multiple 2.9 2.0)))
-    (if (fneq (even-multiple 1.1 2.0) 4.0) (snd-display ";even-multiple 1.1: ~F?" (even-multiple 1.1 2.0)))
-    (if (fneq (even-multiple 1.9 2.0) 4.0) (snd-display ";even-multiple 1.9: ~F?" (even-multiple 1.9 2.0)))
-
-    (if (fneq (ring-modulate .4 .5) .2) (snd-display ";ring-modulate: ~F?" (ring-modulate .4 .5)))
-    (if (fneq (amplitude-modulate 1.0 .5 .4) .7) (snd-display ";amplitude-modulate: ~F?" (amplitude-modulate 1.0 .5 .4)))
+	  (snd-display "set mus-float-equal-fudge-factor: ~A?" *mus-float-equal-fudge-factor*)))
+    
+    (if (fneq *clm-srate* 22050.0) (snd-display "mus-srate: ~F?" *clm-srate*))
+    (if (fneq (hz->radians 1.0) 2.84951704088598e-4) (snd-display "hz->radians: ~F?" (hz->radians 1.0)))
+    (if (fneq (radians->hz 2.84951704088598e-4) 1.0) (snd-display "radians->hz: ~F?" (radians->hz 2.84951704088598e-4)))
+    (if (fneq (radians->degrees 1.0) 57.2957801818848) (snd-display "radians->degrees: ~F?" (radians->degrees 1.0)))
+    (if (fneq (degrees->radians 57.2957801818848) 1.0) (snd-display "degrees->radians: ~F?" (degrees->radians 57.2957801818848)))
+    (if (fneq (linear->db .25) -12.0411996841431) (snd-display "linear->db: ~F?" (linear->db .25)))
+    (if (fneq (db->linear -12.0411996841431) .25) (snd-display "db->linear: ~F?" (db->linear -12.0411996841431)))
+
+    (if (fneq (odd-weight 0.0) 0.0) (snd-display "odd-weight 0.0: ~F?" (odd-weight 0.0)))
+    (if (fneq (odd-weight 2.0) 0.0) (snd-display "odd-weight 2.0: ~F?" (odd-weight 2.0)))
+    (if (fneq (odd-weight 1.0) 1.0) (snd-display "odd-weight 1.0: ~F?" (odd-weight 1.0)))
+    (if (fneq (odd-weight 1.5) 0.5) (snd-display "odd-weight 1.5: ~F?" (odd-weight 1.5)))
+    (if (fneq (odd-weight 2.5) 0.5) (snd-display "odd-weight 2.5: ~F?" (odd-weight 2.5)))
+    (if (fneq (odd-weight 2.1) 0.1) (snd-display "odd-weight 2.1: ~F?" (odd-weight 2.1)))
+    (if (fneq (odd-weight 2.9) 0.9) (snd-display "odd-weight 2.9: ~F?" (odd-weight 2.9)))
+    (if (fneq (odd-weight 1.1) 0.9) (snd-display "odd-weight 1.1: ~F?" (odd-weight 1.1)))
+    (if (fneq (odd-weight 1.9) 0.1) (snd-display "odd-weight 1.9: ~F?" (odd-weight 1.9)))
+
+    (if (fneq (even-weight 0.0) 1.0) (snd-display "even-weight 0.0: ~F?" (even-weight 0.0)))
+    (if (fneq (even-weight 2.0) 1.0) (snd-display "even-weight 2.0: ~F?" (even-weight 2.0)))
+    (if (fneq (even-weight 1.0) 0.0) (snd-display "even-weight 1.0: ~F?" (even-weight 1.0)))
+    (if (fneq (even-weight 1.5) 0.5) (snd-display "even-weight 1.5: ~F?" (even-weight 1.5)))
+    (if (fneq (even-weight 2.5) 0.5) (snd-display "even-weight 2.5: ~F?" (even-weight 2.5)))
+    (if (fneq (even-weight 2.1) 0.9) (snd-display "even-weight 2.1: ~F?" (even-weight 2.1)))
+    (if (fneq (even-weight 2.9) 0.1) (snd-display "even-weight 2.9: ~F?" (even-weight 2.9)))
+    (if (fneq (even-weight 1.1) 0.1) (snd-display "even-weight 1.1: ~F?" (even-weight 1.1)))
+    (if (fneq (even-weight 1.9) 0.9) (snd-display "even-weight 1.9: ~F?" (even-weight 1.9)))
+
+    (if (fneq (odd-multiple 0.0 2.0) 2.0) (snd-display "odd-multiple 0.0: ~F?" (odd-multiple 0.0 2.0)))
+    (if (fneq (odd-multiple 2.0 2.0) 6.0) (snd-display "odd-multiple 2.0: ~F?" (odd-multiple 2.0 2.0)))
+    (if (fneq (odd-multiple 1.0 2.0) 2.0) (snd-display "odd-multiple 1.0: ~F?" (odd-multiple 1.0 2.0)))
+    (if (fneq (odd-multiple 1.5 2.0) 2.0) (snd-display "odd-multiple 1.5: ~F?" (odd-multiple 1.5 2.0)))
+    (if (fneq (odd-multiple 2.5 2.0) 6.0) (snd-display "odd-multiple 2.5: ~F?" (odd-multiple 2.5 2.0)))
+    (if (fneq (odd-multiple 2.1 2.0) 6.0) (snd-display "odd-multiple 2.1: ~F?" (odd-multiple 2.1 2.0)))
+    (if (fneq (odd-multiple 2.9 2.0) 6.0) (snd-display "odd-multiple 2.9: ~F?" (odd-multiple 2.9 2.0)))
+    (if (fneq (odd-multiple 1.1 2.0) 2.0) (snd-display "odd-multiple 1.1: ~F?" (odd-multiple 1.1 2.0)))
+    (if (fneq (odd-multiple 1.9 2.0) 2.0) (snd-display "odd-multiple 1.9: ~F?" (odd-multiple 1.9 2.0)))
+
+    (if (fneq (even-multiple 0.0 2.0) 0.0) (snd-display "even-multiple 0.0: ~F?" (even-multiple 0.0 2.0)))
+    (if (fneq (even-multiple 2.0 2.0) 4.0) (snd-display "even-multiple 2.0: ~F?" (even-multiple 2.0 2.0)))
+    (if (fneq (even-multiple 1.0 2.0) 4.0) (snd-display "even-multiple 1.0: ~F?" (even-multiple 1.0 2.0)))
+    (if (fneq (even-multiple 1.5 2.0) 4.0) (snd-display "even-multiple 1.5: ~F?" (even-multiple 1.5 2.0)))
+    (if (fneq (even-multiple 2.5 2.0) 4.0) (snd-display "even-multiple 2.5: ~F?" (even-multiple 2.5 2.0)))
+    (if (fneq (even-multiple 2.1 2.0) 4.0) (snd-display "even-multiple 2.1: ~F?" (even-multiple 2.1 2.0)))
+    (if (fneq (even-multiple 2.9 2.0) 4.0) (snd-display "even-multiple 2.9: ~F?" (even-multiple 2.9 2.0)))
+    (if (fneq (even-multiple 1.1 2.0) 4.0) (snd-display "even-multiple 1.1: ~F?" (even-multiple 1.1 2.0)))
+    (if (fneq (even-multiple 1.9 2.0) 4.0) (snd-display "even-multiple 1.9: ~F?" (even-multiple 1.9 2.0)))
+
+    (if (fneq (ring-modulate .4 .5) .2) (snd-display "ring-modulate: ~F?" (ring-modulate .4 .5)))
+    (if (fneq (amplitude-modulate 1.0 .5 .4) .7) (snd-display "amplitude-modulate: ~F?" (amplitude-modulate 1.0 .5 .4)))
     (if (fneq (contrast-enhancement 0.1 0.75) (sin (+ (* 0.1 (/ pi 2)) (* .75 (sin (* 0.1 2.0 pi))))))
-	(snd-display ";contrast-enhancement: ~F (0.562925306221587)" (contrast-enhancement 0.1 0.75)))
-    (if (fneq (contrast-enhancement 1.0) 1.0) (snd-display ";contrast-enhancement opt: ~A" (contrast-enhancement 1.0)))
+	(snd-display "contrast-enhancement: ~F (0.562925306221587)" (contrast-enhancement 0.1 0.75)))
+    (if (fneq (contrast-enhancement 1.0) 1.0) (snd-display "contrast-enhancement opt: ~A" (contrast-enhancement 1.0)))
     (let ((lv0 (partials->polynomial (float-vector 1 1 2 1) mus-chebyshev-first-kind)))
-      (if (not (mus-arrays-equal? lv0 (float-vector -1.000 1.000 2.000) .001)) (snd-display ";partials->polynomial(1): ~A?" lv0)))
+      (if (not (mus-arrays-equal? lv0 (float-vector -1.000 1.000 2.000) .001)) (snd-display "partials->polynomial(1): ~A?" lv0)))
     (let ((lv1 (partials->polynomial '(1 1 2 1) mus-chebyshev-second-kind)))
-      (if (not (mus-arrays-equal? lv1 (float-vector 1.000 2.000 0.0) .001)) (snd-display ";partials->polynomial(2): ~A?" lv1)))
+      (if (not (mus-arrays-equal? lv1 (float-vector 1.000 2.000 0.0) .001)) (snd-display "partials->polynomial(2): ~A?" lv1)))
     (let ((lv2 (partials->polynomial '(1 1 2 1 3 1 5 1) mus-chebyshev-first-kind)))
-      (if (not (mus-arrays-equal? lv2 (float-vector -1.000 3.000 2.000 -16.000 0.000 16.000) .001)) (snd-display ";partials->polynomial(3): ~A?" lv2)))
+      (if (not (mus-arrays-equal? lv2 (float-vector -1.000 3.000 2.000 -16.000 0.000 16.000) .001)) (snd-display "partials->polynomial(3): ~A?" lv2)))
     (let ((lv3 (partials->polynomial '(1 1 2 1 3 1 5 1) mus-chebyshev-second-kind)))
-      (if (not (mus-arrays-equal? lv3 (float-vector 1.000 2.000 -8.000 0.000 16.000 0.000) .001)) (snd-display ";partials->polynomial(4): ~A?" lv3)))
+      (if (not (mus-arrays-equal? lv3 (float-vector 1.000 2.000 -8.000 0.000 16.000 0.000) .001)) (snd-display "partials->polynomial(4): ~A?" lv3)))
     (let ((lv4 (partials->polynomial '(1 1 2 .5 3 .1 6 .01) mus-chebyshev-first-kind)))
-      (if (not (mus-arrays-equal? lv4 (float-vector -0.510 0.700 1.180 0.400 -0.480 0.000 0.320) .001)) (snd-display ";partials->polynomial(5): ~A?" lv4)))
+      (if (not (mus-arrays-equal? lv4 (float-vector -0.510 0.700 1.180 0.400 -0.480 0.000 0.320) .001)) (snd-display "partials->polynomial(5): ~A?" lv4)))
     (let ((lv5 (partials->polynomial '(1 1 2 .5 3 .1 6 .01) mus-chebyshev-second-kind)))
-      (if (not (mus-arrays-equal? lv5 (float-vector 0.900 1.060 0.400 -0.320 0.000 0.320 0.000) .001)) (snd-display ";partials->polynomial(6): ~A?" lv5)))
+      (if (not (mus-arrays-equal? lv5 (float-vector 0.900 1.060 0.400 -0.320 0.000 0.320 0.000) .001)) (snd-display "partials->polynomial(6): ~A?" lv5)))
     (let ((lv6 (partials->polynomial (float-vector 1 9 2 3 3 5 4 7 5 1))))
-      (if (not (mus-arrays-equal? lv6 (float-vector 4.000 -1.000 -50.000 0.000 56.000 16.000))) (snd-display ";partials->polynomial(7): ~A?" lv6)))
+      (if (not (mus-arrays-equal? lv6 (float-vector 4.000 -1.000 -50.000 0.000 56.000 16.000))) (snd-display "partials->polynomial(7): ~A?" lv6)))
     (let ((lv7 (partials->polynomial '(7 1))))
-      (if (not (mus-arrays-equal? lv7 (float-vector 0.000 -7.000 0.000 56.000 0.000 -112.000 0.000 64.000))) (snd-display ";partials->polynomial(8): ~A?" lv7))
+      (if (not (mus-arrays-equal? lv7 (float-vector 0.000 -7.000 0.000 56.000 0.000 -112.000 0.000 64.000))) (snd-display "partials->polynomial(8): ~A?" lv7))
       (let ((lv7a (partials->polynomial '(7 1) mus-chebyshev-first-kind)))
-	(if (not (mus-arrays-equal? lv7 lv7a)) (snd-display ";partials->polynomial kind=1? ~A ~A" lv7 lv7a)))
+	(if (not (mus-arrays-equal? lv7 lv7a)) (snd-display "partials->polynomial kind=1? ~A ~A" lv7 lv7a)))
       (if (fneq (polynomial lv7 1.0) (cosh (* 7 (acosh 1.0)))) 
-	  (snd-display ";ccosh cheb 7 1.0: ~A ~A" (polynomial lv7 1.0) (cosh (* 7 (acosh 1.0)))))
+	  (snd-display "ccosh cheb 7 1.0: ~A ~A" (polynomial lv7 1.0) (cosh (* 7 (acosh 1.0)))))
       (if (fneq (polynomial lv7 1.0) (cos (* 7 (acos 1.0)))) 
-	  (snd-display ";cos cheb 7 1.0: ~A ~A" (polynomial lv7 1.0) (cos (* 7 (acos 1.0)))))  
+	  (snd-display "cos cheb 7 1.0: ~A ~A" (polynomial lv7 1.0) (cos (* 7 (acos 1.0)))))  
       (do ((lv8 (partials->polynomial '(7 1) mus-chebyshev-second-kind))
 	   (sa (sin (acos 0.5)))
 	   (ca (sin (* 7 (acos 0.5))))
@@ -11389,26 +11389,26 @@ EDITS: 2
 	(let* ((val (mus-random 1.0))
 	       (aval (acos val)))
 	  (if (fneq (polynomial lv7 val) (cosh (* 7 (acosh val)))) 
-	      (snd-display ";ccosh cheb 7 ~A: ~A ~A" val (polynomial lv7 val) (cosh (* 7 (acosh val)))))
+	      (snd-display "ccosh cheb 7 ~A: ~A ~A" val (polynomial lv7 val) (cosh (* 7 (acosh val)))))
 	  (if (fneq (polynomial lv7 val) (cos (* 7 aval)))
-	      (snd-display ";cos cheb 7 ~A: ~A ~A" val (polynomial lv7 val) (cos (* 7 aval))))
+	      (snd-display "cos cheb 7 ~A: ~A ~A" val (polynomial lv7 val) (cos (* 7 aval))))
 	  (if (fneq (polynomial lv8 val) (/ (sin (* 7 aval)) (sin aval)))
-	      (snd-display ";acos cheb 7 ~A: ~A ~A" val (polynomial lv8 val) (/ (sin (* 7 aval)) (sin aval)))))
-	(if (not (mus-arrays-equal? lv8 (float-vector -1.000 0.000 24.000 0.000 -80.000 0.000 64.000 0.000))) (snd-display ";partials->polynomial(9): ~A?" lv8))
+	      (snd-display "acos cheb 7 ~A: ~A ~A" val (polynomial lv8 val) (/ (sin (* 7 aval)) (sin aval)))))
+	(if (not (mus-arrays-equal? lv8 (float-vector -1.000 0.000 24.000 0.000 -80.000 0.000 64.000 0.000))) (snd-display "partials->polynomial(9): ~A?" lv8))
 	(if (fneq (polynomial lv8 0.5) (/ ca sa))
-	    (snd-display ";acos cheb 7 1.0: ~A ~A" (polynomial lv8 0.5) (/ ca sa)))))
+	    (snd-display "acos cheb 7 1.0: ~A ~A" (polynomial lv8 0.5) (/ ca sa)))))
     ;; G&R 8.943 p 984 uses n+1 where we use n in Un? (our numbering keeps harmonics aligned between Tn and Un)
     
     (if (not (mus-arrays-equal? (normalize-partials (list 1 1 2 1)) (float-vector 1.000 0.500 2.000 0.500)))
-	(snd-display ";normalize-partials 1: ~A" (normalize-partials (list 1 1 2 1))))
+	(snd-display "normalize-partials 1: ~A" (normalize-partials (list 1 1 2 1))))
     (if (not (mus-arrays-equal? (normalize-partials (float-vector 1 1 2 1)) (float-vector 1.000 0.500 2.000 0.500)))
-	(snd-display ";normalize-partials 2: ~A" (normalize-partials (float-vector 1 1 2 1))))
+	(snd-display "normalize-partials 2: ~A" (normalize-partials (float-vector 1 1 2 1))))
     (if (not (mus-arrays-equal? (normalize-partials (float-vector 1 1 2 -1)) (float-vector 1.000 0.500 2.000 -0.500)))
-	(snd-display ";normalize-partials 3: ~A" (normalize-partials (float-vector 1 1 2 -1))))
+	(snd-display "normalize-partials 3: ~A" (normalize-partials (float-vector 1 1 2 -1))))
     (if (not (mus-arrays-equal? (normalize-partials (float-vector 1 -.1 2 -.1)) (float-vector 1.000 -0.500 2.000 -0.500)))
-	(snd-display ";normalize-partials 4: ~A" (normalize-partials (float-vector 1 -.1 2 -.1))))
+	(snd-display "normalize-partials 4: ~A" (normalize-partials (float-vector 1 -.1 2 -.1))))
     (if (not (mus-arrays-equal? (normalize-partials (float-vector 0 2 1 1 4 1)) (float-vector 0.000 0.500 1.000 0.250 4.000 0.250)))
-	(snd-display ";normalize-partials 4: ~A" (normalize-partials (float-vector 0 2 1 1 4 1))))
+	(snd-display "normalize-partials 4: ~A" (normalize-partials (float-vector 0 2 1 1 4 1))))
     
     ;; check phase-quadrature cancellations
     (do ((cos-coeffs (partials->polynomial '(1 1 2 1) mus-chebyshev-first-kind))
@@ -11427,10 +11427,10 @@ EDITS: 2
 		(lower2 (+ 1.0 (cos a))))
 	    (if (or (fneq upper upper2)
 		    (fneq lower lower2))
-		(snd-display ";~A ~A, ~A ~A" upper upper2 lower lower2))))))
+		(snd-display "~A ~A, ~A ~A" upper upper2 lower lower2))))))
     
     (let ((tag (catch #t (lambda () (harmonicizer 550.0 '(.5 .3 .2) 10)) (lambda args (car args)))))
-      (if (not (eq? tag 'no-data)) (snd-display ";odd length arg to partials->polynomial: ~A" tag)))
+      (if (not (eq? tag 'no-data)) (snd-display "odd length arg to partials->polynomial: ~A" tag)))
     
     (let ((rdat (make-float-vector 16))
 	  (idat (make-float-vector 16))
@@ -11442,7 +11442,7 @@ EDITS: 2
 	(do ((i 0 (+ i 1)))
 	    ((= i 8)) ;should all be 1.0 (impulse in)
 	  (if (fneq (v0 i) (v1 i))
-	      (snd-display ";spectra not equal 1: ~A ~A" v0 v1))))
+	      (snd-display "spectra not equal 1: ~A ~A" v0 v1))))
       (float-vector-scale! idat 0.0)
       (float-vector-scale! rdat 0.0)
       (set! (rdat 0) 1.0)
@@ -11451,11 +11451,11 @@ EDITS: 2
 	(do ((i 0 (+ i 1)))
 	    ((= i 8)) ;should all be 1.0 (impulse in)
 	  (if (fneq (v0 i) (v1 i))
-	      (snd-display ";spectra not equal 0: ~A ~A" v0 v1))))
+	      (snd-display "spectra not equal 0: ~A ~A" v0 v1))))
       (let ((var (catch #t (lambda () (spectrum rdat idat #f -1)) (lambda args args))))
 	(if (or (float-vector? var) 
 		(not (eq? (car var) 'out-of-range)))
-	    (snd-display ";spectrum bad type: ~A" var))))
+	    (snd-display "spectrum bad type: ~A" var))))
     
     (let ((rdat (make-float-vector 16))
 	  (idat (make-float-vector 16))
@@ -11465,7 +11465,7 @@ EDITS: 2
       (set! (xdat 3) 1.0)
       (fft rdat idat 1)
       (mus-fft xdat ydat 16 1)
-      (if (fneq (rdat 0) (xdat 0)) (snd-display ";ffts: ~A ~A?" rdat xdat))
+      (if (fneq (rdat 0) (xdat 0)) (snd-display "ffts: ~A ~A?" rdat xdat))
       (fft rdat idat -1)
       (mus-fft xdat ydat 17 -1) ; mistake is deliberate
       (do ((i 0 (+ i 1)))
@@ -11473,12 +11473,12 @@ EDITS: 2
 	(if (if (= i 3)
 		(or (fneq (rdat i) 16.0) (fneq (xdat i) 16.0))
 		(or (fneq (rdat i) 0.0) (fneq (xdat i) 0.0)))
-	    (snd-display ";fft real[~D]: ~A ~A?" i (rdat i) (xdat i)))
+	    (snd-display "fft real[~D]: ~A ~A?" i (rdat i) (xdat i)))
 	(if (or (fneq (idat i) 0.0) (fneq (ydat i) 0.0))
-	    (snd-display ";fft imag[~D]: ~A ~A?" i (idat i) (ydat i))))
+	    (snd-display "fft imag[~D]: ~A ~A?" i (idat i) (ydat i))))
       (let ((var (catch #t (lambda () (mus-fft xdat ydat -1 0)) (lambda args args))))
 	(if (not (eq? (car var) 'out-of-range))
-	    (snd-display ";mus-fft bad len: ~A" var))))
+	    (snd-display "mus-fft bad len: ~A" var))))
     
     (let ((rdat (make-float-vector 20))
 	  (idat (make-float-vector 19)))
@@ -11490,29 +11490,29 @@ EDITS: 2
     (let ((v0 (make-float-vector 10 1.0))
 	  (v1 (make-float-vector 10 0.5)))
       (float-vector-multiply! v0 v1)
-      (if (fneq (v0 0) 0.5) (snd-display ";multiple-arrays: ~F?" (v0 0)))
+      (if (fneq (v0 0) 0.5) (snd-display "multiple-arrays: ~F?" (v0 0)))
       (let ((sum (dot-product v0 v1)))
-	(if (fneq sum 2.5) (snd-display ";dot-product: ~F?" sum)))
+	(if (fneq sum 2.5) (snd-display "dot-product: ~F?" sum)))
       (let ((sum (dot-product v0 v1 10)))
-	(if (fneq sum 2.5) (snd-display ";dot-product (10): ~F?" sum)))
+	(if (fneq sum 2.5) (snd-display "dot-product (10): ~F?" sum)))
       (let ((sum (dot-product v0 v1 3)))
-	(if (fneq sum 0.75) (snd-display ";dot-product (3): ~F?" sum)))
+	(if (fneq sum 0.75) (snd-display "dot-product (3): ~F?" sum)))
       (fill! v0 0.0)
-      (if (fneq (v0 3) 0.0) (snd-display ";fill!: ~A?" v0))
+      (if (fneq (v0 3) 0.0) (snd-display "fill!: ~A?" v0))
       (fill! v0 1.0)
       (fill! v1 0.5)
       (let ((v2 (rectangular->polar v0 v1)))
-	(if (fneq (v2 0) 1.118) (snd-display ";rectangular->polar: ~A?" v2)))
+	(if (fneq (v2 0) 1.118) (snd-display "rectangular->polar: ~A?" v2)))
       (set! (v0 0) 1.0)
       (set! (v1 0) 1.0)
       (rectangular->polar v0 v1)
       (if (or (fneq (v0 0) (sqrt 2.0))
 	      (fneq (v1 0) (- (atan 1.0 1.0)))) ;(tan (atan 1.0 1.0)) -> 1.0 
-	  (snd-display ";rectangular->polar (~A ~A): ~A ~A?" (sqrt 2.0) (- (atan 1.0 1.0)) (v0 0) (v1 0)))
+	  (snd-display "rectangular->polar (~A ~A): ~A ~A?" (sqrt 2.0) (- (atan 1.0 1.0)) (v0 0) (v1 0)))
       (polar->rectangular v0 v1)
       (if (or (fneq (v0 0) 1.0)
 	      (fneq (v1 0) 1.0))
-	  (snd-display ";polar->rectangular (1 1): ~A ~A?" (v0 0) (v1 0)))
+	  (snd-display "polar->rectangular (1 1): ~A ~A?" (v0 0) (v1 0)))
       
       (let ((ind (open-sound "oboe.snd"))
 	    (rl (channel->float-vector 1200 512))
@@ -11526,7 +11526,7 @@ EDITS: 2
 	      ((= i 512))
 	    (if (or (fneq (rl i) (rl-copy i))
 		    (fneq (im i) (im-copy i)))
-		(snd-display ";polar->rectangular[~D]: ~A ~A ~A ~A" 
+		(snd-display "polar->rectangular[~D]: ~A ~A ~A ~A" 
 			     i 
 			     (rl i) (rl-copy i)
 			     (im i) (im-copy i)))))
@@ -11537,7 +11537,7 @@ EDITS: 2
       (do ((i 0 (+ i 1))) ((= i 8)) (set! (v0 i) i) (set! (v1 i) (/ (+ i 1))))
       (rectangular->magnitudes v0 v1)
       (if (not (mus-arrays-equal? v0 (float-vector 1.000 1.118 2.028 3.010 4.005 5.003 6.002 7.001)))
-	  (snd-display ";rectangular->magnitudes v0: ~A" v0)))
+	  (snd-display "rectangular->magnitudes v0: ~A" v0)))
     
     (do ((v0 (make-float-vector 8))
 	 (v1 (make-float-vector 8))
@@ -11548,7 +11548,7 @@ EDITS: 2
 	 (rectangular->magnitudes v0 v1)
 	 (rectangular->polar v2 v3)
 	 (if (not (mus-arrays-equal? v0 v2))
-	     (snd-display ";rectangular->magnitudes|polar: ~A ~A" v0 v2)))
+	     (snd-display "rectangular->magnitudes|polar: ~A ~A" v0 v2)))
       (let ((val1 (random 1.0))
 	    (val2 (random 1.0)))
 	(set! (v0 i) val1)
@@ -11560,26 +11560,26 @@ EDITS: 2
       (let* ((vals (make-float-vector 1 1.0))
 	     (v1 (edot-product 0.0 vals)))
 	(if (fneq v1 1.0) ; exp 0.0 * 1.0
-	    (snd-display ";edot a 1.0: ~A" v1))
+	    (snd-display "edot a 1.0: ~A" v1))
 	(set! (vals 0) 0.0)
 	(set! v1 (edot-product 0.0 vals))
 	(if (fneq v1 0.0) ; exp 0.0 * 0.0
-	    (snd-display ";edot b 0.0: ~A" v1))
+	    (snd-display "edot b 0.0: ~A" v1))
 	(set! vals (make-vector 1 1.0))
 	(set! v1 (edot-product 0.0 vals))  
 	(if (fneq v1 1.0) ; exp 0.0 * 1.0
-	    (snd-display ";edot c 1.0: ~A" v1))
+	    (snd-display "edot c 1.0: ~A" v1))
 	(set! (vals 0) 0.0+i)
 	(set! v1 (edot-product 0.0 vals))
 	(if (cneq v1 0.0+i)
-	    (snd-display ";edot i: ~A" v1))
+	    (snd-display "edot i: ~A" v1))
 	(set! vals (make-float-vector 4 1.0))
 	(set! v1 (edot-product (* 0.25 2 pi) vals))
 	(let ((v2 (+ 1 ;(exp (* 0 2 pi))
 		     (exp (* 0.25 2 pi))
 		     (exp (* 0.5 2 pi))
 		     (exp (* 0.75 2 pi)))))
-	  (if (fneq v1 v2) (snd-display ";edot 4: ~A ~A" v1 v2)))
+	  (if (fneq v1 v2) (snd-display "edot 4: ~A ~A" v1 v2)))
 	(set! vals (make-vector 4 0.0))  
 	(do ((i 0 (+ i 1)))
 	    ((= i 4))
@@ -11589,7 +11589,7 @@ EDITS: 2
 		     (* 2 (exp (* 0.25 2 pi 0.0-i)))
 		     (* 3 (exp (* 0.5 2 pi 0.0-i)))
 		     (* 4 (exp (* 0.75 2 pi 0.0-i))))))
-	  (if (cneq v1 v2) (snd-display ";edot 4 -i: ~A ~A" v1 v2)))
+	  (if (cneq v1 v2) (snd-display "edot 4 -i: ~A ~A" v1 v2)))
 	(do ((i 0 (+ i 1)))
 	    ((= i 4))
 	  (set! (vals i) (+ i 1.0+i)))
@@ -11598,7 +11598,7 @@ EDITS: 2
 		     (* 2+i (exp (* 0.25 2 pi 0.0-i)))
 		     (* 3+i (exp (* 0.5 2 pi 0.0-i)))
 		     (* 4+i (exp (* 0.75 2 pi 0.0-i))))))
-	  (if (cneq v1 v2) (snd-display ";edot 4 -i * i: ~A ~A" v1 v2)))))
+	  (if (cneq v1 v2) (snd-display "edot 4 -i * i: ~A ~A" v1 v2)))))
     
     (let ((v0 (make-float-vector 3)))
       (set! (v0 0) 1.0)
@@ -11607,15 +11607,15 @@ EDITS: 2
       (if (or (fneq (polynomial v0 0.0) 1.0)
 	      (fneq (polynomial v0 1.0) 1.6)
 	      (fneq (polynomial v0 2.0) 2.4))
-	  (snd-display ";polynomial: ~A ~A ~A?"
+	  (snd-display "polynomial: ~A ~A ~A?"
 		       (polynomial v0 0.0)
 		       (polynomial v0 1.0)
 		       (polynomial v0 2.0))))
     (if (fneq (polynomial (float-vector 0.0 2.0) 0.5) 1.0) 
-	(snd-display ";polynomial 2.0 * 0.5: ~A" (polynomial (float-vector 2.0) 0.5)))
+	(snd-display "polynomial 2.0 * 0.5: ~A" (polynomial (float-vector 2.0) 0.5)))
     (let ((var (catch #t (lambda () (polynomial #f 1.0)) (lambda args args))))
       (if (not (eq? (car var) 'wrong-type-arg))
-	  (snd-display ";polynomial empty coeffs: ~A" var)))
+	  (snd-display "polynomial empty coeffs: ~A" var)))
     
     (do ((i 0 (+ i 1)))
 	((= i 100))
@@ -11625,7 +11625,7 @@ EDITS: 2
 	      (val2 (modulo arg1 arg2)))
 	  (if (and (> (abs (- val1 val2)) 1e-8)
 		   (> (abs (- (abs (- val1 val2)) (abs arg2))) 1e-8))
-	      (snd-display ";poly ~A ~A: ~A ~A -> ~A~%" arg1 arg2 val1 val2 (abs (- val1 val2)))))))
+	      (snd-display "poly ~A ~A: ~A ~A -> ~A~%" arg1 arg2 val1 val2 (abs (- val1 val2)))))))
     
     (let ((err 0.0)
 	  (coeffs (float-vector 1.0 0.0 -.4999999963 0.0 .0416666418 0.0 -.0013888397 0.0 .0000247609 0.0 -.0000002605))
@@ -11644,74 +11644,74 @@ EDITS: 2
 	     (x -10.0 (+ x .01)))
 	    ((= i 2000))
 	  (set! err (max err (abs (- (cos x) (new-cos x))))))
-	(if (> err 1.1e-7) (snd-display ";new-cos poly err: ~A" err))))
+	(if (> err 1.1e-7) (snd-display "new-cos poly err: ~A" err))))
     
     (let ((val (poly+ (float-vector .1 .2 .3) (float-vector 0.0 1.0 2.0 3.0 4.0))))
-      (if (not (mus-arrays-equal? val (float-vector 0.100 1.200 2.300 3.000 4.000))) (snd-display ";poly+ 1: ~A" val)))
+      (if (not (mus-arrays-equal? val (float-vector 0.100 1.200 2.300 3.000 4.000))) (snd-display "poly+ 1: ~A" val)))
     
     (let ((val (poly+ (float-vector .1 .2 .3) .5)))
-      (if (not (mus-arrays-equal? val (float-vector 0.600 0.200 0.300))) (snd-display ";poly+ 2: ~A" val)))
+      (if (not (mus-arrays-equal? val (float-vector 0.600 0.200 0.300))) (snd-display "poly+ 2: ~A" val)))
     (let ((val (poly+ .5 (float-vector .1 .2 .3))))
-      (if (not (mus-arrays-equal? val (float-vector 0.600 0.200 0.300))) (snd-display ";poly+ 3: ~A" val)))
+      (if (not (mus-arrays-equal? val (float-vector 0.600 0.200 0.300))) (snd-display "poly+ 3: ~A" val)))
     
     (let ((val (poly* (float-vector 1 1) (float-vector -1 1))))
-      (if (not (mus-arrays-equal? val (float-vector -1.000 0.000 1.000 0.000))) (snd-display ";poly* 1: ~A" val)))
+      (if (not (mus-arrays-equal? val (float-vector -1.000 0.000 1.000 0.000))) (snd-display "poly* 1: ~A" val)))
     (let ((val (poly* (float-vector -5 1) (float-vector 3 7 2))))
-      (if (not (mus-arrays-equal? val (float-vector -15.000 -32.000 -3.000 2.000 0.000))) (snd-display ";poly* 2: ~A" val)))
+      (if (not (mus-arrays-equal? val (float-vector -15.000 -32.000 -3.000 2.000 0.000))) (snd-display "poly* 2: ~A" val)))
     (let ((val (poly* (float-vector -30 -4 2) (float-vector 0.5 1))))
-      (if (not (mus-arrays-equal? val (float-vector -15.000 -32.000 -3.000 2.000 0.000))) (snd-display ";poly* 3: ~A" val)))
+      (if (not (mus-arrays-equal? val (float-vector -15.000 -32.000 -3.000 2.000 0.000))) (snd-display "poly* 3: ~A" val)))
     (let ((val (poly* (float-vector -30 -4 2) 0.5)))
-      (if (not (mus-arrays-equal? val (float-vector -15.000 -2.000 1.000))) (snd-display ";poly* 4: ~A" val)))
+      (if (not (mus-arrays-equal? val (float-vector -15.000 -2.000 1.000))) (snd-display "poly* 4: ~A" val)))
     (let ((val (poly* 2.0 (float-vector -30 -4 2))))
-      (if (not (mus-arrays-equal? val (float-vector -60.000 -8.000 4.000))) (snd-display ";poly* 5: ~A" val)))
+      (if (not (mus-arrays-equal? val (float-vector -60.000 -8.000 4.000))) (snd-display "poly* 5: ~A" val)))
     
     (let ((val (poly/ (float-vector -1.0 -0.0 1.0) (float-vector 1.0 1.0))))
       (if (not (and (mus-arrays-equal? (car val) (float-vector -1.000 1.000 0.000))
 		    (mus-arrays-equal? (cadr val) (make-float-vector 3))))
-	  (snd-display ";poly/ 1: ~A" val)))
+	  (snd-display "poly/ 1: ~A" val)))
     (let ((val (poly/ (float-vector -15 -32 -3 2) (float-vector -5 1))))
       (if (not (and (mus-arrays-equal? (car val) (float-vector 3.000 7.000 2.000 0.000))
 		    (mus-arrays-equal? (cadr val) (make-float-vector 4))))
-	  (snd-display ";poly/ 2: ~A" val)))
+	  (snd-display "poly/ 2: ~A" val)))
     (let ((val (poly/ (float-vector -15 -32 -3 2) (float-vector 3 1))))
       (if (not (and (mus-arrays-equal? (car val) (float-vector -5.000 -9.000 2.000 0.000))
 		    (mus-arrays-equal? (cadr val) (make-float-vector 4))))
-	  (snd-display ";poly/ 3: ~A" val)))
+	  (snd-display "poly/ 3: ~A" val)))
     (let ((val (poly/ (float-vector -15 -32 -3 2) (float-vector .5 1))))
       (if (not (and (mus-arrays-equal? (car val) (float-vector -30.000 -4.000 2.000 0.000))
 		    (mus-arrays-equal? (cadr val) (make-float-vector 4))))
-	  (snd-display ";poly/ 4: ~A" val)))
+	  (snd-display "poly/ 4: ~A" val)))
     (let ((val (poly/ (float-vector -15 -32 -3 2) (float-vector 3 7 2))))
       (if (not (and (mus-arrays-equal? (car val) (float-vector -5.000 1.000 0.000 0.000))
 		    (mus-arrays-equal? (cadr val) (make-float-vector 4))))
-	  (snd-display ";poly/ 5: ~A" val)))
+	  (snd-display "poly/ 5: ~A" val)))
     (let ((val (poly/ (float-vector -15 -32 -3 2) 2.0)))
       (if (not (mus-arrays-equal? (car val) (float-vector -7.500 -16.000 -1.500 1.000)))
-	  (snd-display ";poly/ 6: ~A" val)))
+	  (snd-display "poly/ 6: ~A" val)))
     (let ((val (poly/ (float-vector -1.0 0.0 0.0 0.0 1.0) (float-vector 1.0 0.0 1.0))))
       (if (not (and (mus-arrays-equal? (car val) (float-vector -1.0 0.0 1.0 0.0 0.0))
 		    (mus-arrays-equal? (cadr val) (make-float-vector 5))))
-	  (snd-display ";poly/ 7: ~A" val)))
+	  (snd-display "poly/ 7: ~A" val)))
     (let ((val (poly/ (float-vector -1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0) (float-vector 1.0 0.0 0.0 0.0 1.0))))
       (if (not (and (mus-arrays-equal? (car val) (float-vector -1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0))
 		    (mus-arrays-equal? (cadr val) (make-float-vector 9))))
-	  (snd-display ";poly/ 8: ~A" val)))
+	  (snd-display "poly/ 8: ~A" val)))
     (let ((val (poly/ (float-vector -1.0 0.0 1.0) (float-vector -1.0 0.0 1.0))))
       (if (not (and (mus-arrays-equal? (car val) (float-vector 1.0 0.0 0.0))
 		    (mus-arrays-equal? (cadr val) (make-float-vector 3))))
-	  (snd-display ";poly/ 9: ~A" val)))
+	  (snd-display "poly/ 9: ~A" val)))
     (let ((val (poly/ (float-vector -1.0 0.0 1.0) (float-vector 2.0 1.0))))
       (if (not (and (mus-arrays-equal? (car val) (float-vector -2.000 1.000 0.000))
 		    (mus-arrays-equal? (cadr val) (float-vector 3.000 0.000 0.000))))
-	  (snd-display ";poly/ 10: ~A" val)))
+	  (snd-display "poly/ 10: ~A" val)))
     (let ((val (poly/ (float-vector 2 1) (float-vector -1.0 0.0 1.0))))
       (if (not (and (mus-arrays-equal? (car val) (float-vector 0.0))
 		    (mus-arrays-equal? (cadr val) (float-vector -1.000 0.000 1.000))))
-	  (snd-display ";poly/ 11: ~A" val)))
+	  (snd-display "poly/ 11: ~A" val)))
     (let ((val (poly/ (float-vector 1 2 3 0 1) (float-vector 0 0 0 1))))
       (if (not (and (mus-arrays-equal? (car val) (float-vector 0.000 1.000 0.000 0.000 0.000))
 		    (mus-arrays-equal? (cadr val) (float-vector 1.000 2.000 3.000 0.000 0.000))))
-	  (snd-display ";poly/ 12: ~A" val)))
+	  (snd-display "poly/ 12: ~A" val)))
     
     (let ((ind (open-sound "1a.snd")))
       (let ((v1 (channel->float-vector 0 100 ind 0))
@@ -11720,122 +11720,122 @@ EDITS: 2
 	      (res (make-float-vector 100)))
 	  (set! (res 0) 1.0)
 	  (if (not (mus-arrays-equal? vals res))
-	      (snd-display ";poly1 1a: ~A" vals))))
+	      (snd-display "poly1 1a: ~A" vals))))
       (close-sound ind))
     
     (let ((val (poly-derivative (float-vector 0.5 1.0 2.0 4.0))))
-      (if (not (mus-arrays-equal? val (float-vector 1.000 4.000 12.000))) (snd-display ";poly-derivative: ~A" val)))
+      (if (not (mus-arrays-equal? val (float-vector 1.000 4.000 12.000))) (snd-display "poly-derivative: ~A" val)))
     
     (let ((val (poly-reduce (float-vector 1 2 3))))
-      (if (not (mus-arrays-equal? val (float-vector 1.000 2.000 3.000))) (snd-display ";poly-reduce 1: ~A" val)))
+      (if (not (mus-arrays-equal? val (float-vector 1.000 2.000 3.000))) (snd-display "poly-reduce 1: ~A" val)))
     (let ((val (poly-reduce (float-vector 1 2 3 0 0 0))))
-      (if (not (mus-arrays-equal? val (float-vector 1.000 2.000 3.000))) (snd-display ";poly-reduce 2: ~A" val)))
+      (if (not (mus-arrays-equal? val (float-vector 1.000 2.000 3.000))) (snd-display "poly-reduce 2: ~A" val)))
     (let ((val (poly-reduce (float-vector 0 0 0 0 1 0))))
-      (if (not (mus-arrays-equal? val (float-vector 0.000 0.000 0.000 0.000 1.000))) (snd-display ";poly-reduce 3: ~A" val)))
+      (if (not (mus-arrays-equal? val (float-vector 0.000 0.000 0.000 0.000 1.000))) (snd-display "poly-reduce 3: ~A" val)))
     
     (let ((vals (poly-gcd (poly-reduce (poly* (float-vector 2 1) (float-vector -3 1))) (float-vector 2 1))))
-      (if (not (mus-arrays-equal? vals (float-vector 2.000 1.000))) (snd-display ";poly-gcd 1: ~A" vals)))
+      (if (not (mus-arrays-equal? vals (float-vector 2.000 1.000))) (snd-display "poly-gcd 1: ~A" vals)))
     (let ((vals (poly-gcd (poly-reduce (poly* (float-vector 2 1) (float-vector -3 1))) (float-vector 3 1))))
-      (if (not (mus-arrays-equal? vals (float-vector 0.000))) (snd-display ";poly-gcd 2: ~A" vals)))
+      (if (not (mus-arrays-equal? vals (float-vector 0.000))) (snd-display "poly-gcd 2: ~A" vals)))
     (let ((vals (poly-gcd (poly-reduce (poly* (float-vector 2 1) (float-vector -3 1))) (float-vector -3 1))))
-      (if (not (mus-arrays-equal? vals (float-vector -3.000 1.000))) (snd-display ";poly-gcd 2: ~A" vals)))
+      (if (not (mus-arrays-equal? vals (float-vector -3.000 1.000))) (snd-display "poly-gcd 2: ~A" vals)))
     (let ((vals (poly-gcd (poly-reduce (poly* (float-vector 8 1) (poly* (float-vector 2 1) (float-vector -3 1)))) (float-vector -3 1))))
-      (if (not (mus-arrays-equal? vals (float-vector -3.000 1.000))) (snd-display ";poly-gcd 3: ~A" vals)))
+      (if (not (mus-arrays-equal? vals (float-vector -3.000 1.000))) (snd-display "poly-gcd 3: ~A" vals)))
     (let ((vals (poly-gcd (poly-reduce (poly* (float-vector 8 1) (poly* (float-vector 2 1) (float-vector -3 1)))) (poly-reduce (poly* (float-vector 8 1) (float-vector -3 1))))))
-      (if (not (mus-arrays-equal? vals (float-vector -24.000 5.000 1.000))) (snd-display ";poly-gcd 4: ~A" vals)))
+      (if (not (mus-arrays-equal? vals (float-vector -24.000 5.000 1.000))) (snd-display "poly-gcd 4: ~A" vals)))
     (let ((vals (poly-gcd (float-vector -1 0 1) (float-vector 2 -2 -1 1))))
-      (if (not (mus-arrays-equal? vals (float-vector 0.000))) (snd-display ";poly-gcd 5: ~A" vals)))
+      (if (not (mus-arrays-equal? vals (float-vector 0.000))) (snd-display "poly-gcd 5: ~A" vals)))
     (let ((vals (poly-gcd (float-vector 2 -2 -1 1) (float-vector -1 0 1))))
-      (if (not (mus-arrays-equal? vals (float-vector 1.000 -1.000))) (snd-display ";poly-gcd 6: ~A" vals)))
+      (if (not (mus-arrays-equal? vals (float-vector 1.000 -1.000))) (snd-display "poly-gcd 6: ~A" vals)))
     (let ((vals (poly-gcd (float-vector 2 -2 -1 1) (float-vector -2.5 1))))
-      (if (not (mus-arrays-equal? vals (float-vector 0.000))) (snd-display ";poly-gcd 7: ~A" vals)))
+      (if (not (mus-arrays-equal? vals (float-vector 0.000))) (snd-display "poly-gcd 7: ~A" vals)))
     
     (poly-roots-tests)
     
     (let ((val (poly-as-vector-resultant (vector -1 0 1) (vector 1 -2 1))))
-      (if (fneq val 0.0) (snd-display ";poly-resultant 0: ~A" val)))
+      (if (fneq val 0.0) (snd-display "poly-resultant 0: ~A" val)))
     (let ((val (poly-as-vector-resultant (vector -1 0 2) (vector 1 -2 1))))
-      (if (fneq val 1.0) (snd-display ";poly-resultant 1: ~A" val)))
+      (if (fneq val 1.0) (snd-display "poly-resultant 1: ~A" val)))
     (let ((val (poly-as-vector-resultant (vector -1 0 1) (vector 1 1))))
-      (if (fneq val 0.0) (snd-display ";poly-resultant 2: ~A" val)))
+      (if (fneq val 0.0) (snd-display "poly-resultant 2: ~A" val)))
     (let ((val (poly-as-vector-resultant (vector -1 0 1) (vector 2 1))))
-      (if (fneq val 3.0) (snd-display ";poly-resultant 3: ~A" val)))
+      (if (fneq val 3.0) (snd-display "poly-resultant 3: ~A" val)))
     (let ((val (poly-resultant (float-vector -1 0 1) (float-vector 1 -2 1))))
-      (if (fneq val 0.0) (snd-display ";poly-resultant 0: ~A" val)))
+      (if (fneq val 0.0) (snd-display "poly-resultant 0: ~A" val)))
     
     (let ((val (poly-as-vector-discriminant (vector -1 0 1))))
-      (if (fneq val -4.0) (snd-display ";poly-discriminant 0: ~A" val)))
+      (if (fneq val -4.0) (snd-display "poly-discriminant 0: ~A" val)))
     (let ((val (poly-as-vector-discriminant (vector 1 -2 1))))
-      (if (fneq val 0.0) (snd-display ";poly-discriminant 1: ~A" val)))
+      (if (fneq val 0.0) (snd-display "poly-discriminant 1: ~A" val)))
     (let ((val (poly-discriminant (poly-reduce (poly* (poly* (float-vector -1 1) (float-vector -1 1)) (float-vector 3 1))))))
-      (if (fneq val 0.0) (snd-display ";poly-discriminant 2: ~A" val)))
+      (if (fneq val 0.0) (snd-display "poly-discriminant 2: ~A" val)))
     (let ((val (poly-discriminant (poly-reduce (poly* (poly* (poly* (float-vector -1 1) (float-vector -1 1)) (float-vector 3 1)) (float-vector 2 1))))))
-      (if (fneq val 0.0) (snd-display ";poly-discriminant 3: ~A" val)))
+      (if (fneq val 0.0) (snd-display "poly-discriminant 3: ~A" val)))
     (let ((val (poly-discriminant (poly-reduce (poly* (poly* (poly* (float-vector 1 1) (float-vector -1 1)) (float-vector 3 1)) (float-vector 2 1))))))
-      (if (fneq val 2304.0) (snd-display ";poly-discriminant 4: ~A" val)))
+      (if (fneq val 2304.0) (snd-display "poly-discriminant 4: ~A" val)))
     (let ((val (poly-discriminant (poly-reduce (poly* (poly* (poly* (float-vector 1 1) (float-vector -1 1)) (float-vector 3 1)) (float-vector 3 1))))))
-      (if (fneq val 0.0) (snd-display ";poly-discriminant 5: ~A" val)))
+      (if (fneq val 0.0) (snd-display "poly-discriminant 5: ~A" val)))
     
     
     (let ((v0 (make-float-vector 10)))
       (do ((i 0 (+ i 1))) ((= i 10))
 	(set! (v0 i) i))
-      (if (fneq (array-interp v0 3.5) 3.5) (snd-display ";array-interp: ~F?" (array-interp v0 3.5)))
-      (if (fneq (array-interp v0 13.5) 3.5) (snd-display ";array-interp(13.5): ~F?" (array-interp v0 13.5)))
-      (if (fneq (array-interp v0 -6.5) 3.5) (snd-display ";array-interp(-6.5): ~F?" (array-interp v0 -6.5)))
-      (if (fneq (array-interp v0 103.6) 3.6) (snd-display ";array-interp(103.5): ~F?" (array-interp v0 103.6)))
-      (if (fneq (array-interp v0 -106.6) 3.4) (snd-display ";array-interp(-106.6): ~F?" (array-interp v0 -106.6)))
-      (if (fneq (array-interp v0 -0.5) 4.5) (snd-display ";array-interp(-0.5): ~F?" (array-interp v0 -0.5)))
+      (if (fneq (array-interp v0 3.5) 3.5) (snd-display "array-interp: ~F?" (array-interp v0 3.5)))
+      (if (fneq (array-interp v0 13.5) 3.5) (snd-display "array-interp(13.5): ~F?" (array-interp v0 13.5)))
+      (if (fneq (array-interp v0 -6.5) 3.5) (snd-display "array-interp(-6.5): ~F?" (array-interp v0 -6.5)))
+      (if (fneq (array-interp v0 103.6) 3.6) (snd-display "array-interp(103.5): ~F?" (array-interp v0 103.6)))
+      (if (fneq (array-interp v0 -106.6) 3.4) (snd-display "array-interp(-106.6): ~F?" (array-interp v0 -106.6)))
+      (if (fneq (array-interp v0 -0.5) 4.5) (snd-display "array-interp(-0.5): ~F?" (array-interp v0 -0.5)))
       ;; interpolating between 9 and 0 here (confusing...)
-      (if (fneq (array-interp v0 -0.9) 8.1) (snd-display ";array-interp(-0.9): ~F?" (array-interp v0 -0.9)))
-      (if (fneq (array-interp v0 -0.1) 0.9) (snd-display ";array-interp(-0.1): ~F?" (array-interp v0 -0.1)))
-      (if (fneq (array-interp v0 9.1) 8.1) (snd-display ";array-interp(9.1): ~F?" (array-interp v0 9.1)))
-      (if (fneq (array-interp v0 9.9) 0.9) (snd-display ";array-interp(9.9): ~F?" (array-interp v0 9.9)))
-      (if (fneq (array-interp v0 10.1) 0.1) (snd-display ";array-interp(10.1): ~F?" (array-interp v0 10.1)))
+      (if (fneq (array-interp v0 -0.9) 8.1) (snd-display "array-interp(-0.9): ~F?" (array-interp v0 -0.9)))
+      (if (fneq (array-interp v0 -0.1) 0.9) (snd-display "array-interp(-0.1): ~F?" (array-interp v0 -0.1)))
+      (if (fneq (array-interp v0 9.1) 8.1) (snd-display "array-interp(9.1): ~F?" (array-interp v0 9.1)))
+      (if (fneq (array-interp v0 9.9) 0.9) (snd-display "array-interp(9.9): ~F?" (array-interp v0 9.9)))
+      (if (fneq (array-interp v0 10.1) 0.1) (snd-display "array-interp(10.1): ~F?" (array-interp v0 10.1)))
       (let ((var (catch #t (lambda () (array-interp v0 1 -10)) (lambda args args))))
 	(if (not (eq? (car var) 'out-of-range))
-	    (snd-display ";array-interp bad index: ~A" var))))
+	    (snd-display "array-interp bad index: ~A" var))))
     
     (let ((ind (open-sound "oboe.snd")))
       (let ((diff (array-interp-sound-diff ind 0)))
-	(if (> diff .00001) (snd-display ";array-interp-sound-diff: ~A" diff)))
+	(if (> diff .00001) (snd-display "array-interp-sound-diff: ~A" diff)))
       (close-sound ind))
     
     (let ((v0 (make-float-vector 10)))
       (do ((i 0 (+ i 1))) ((= i 10))
 	(set! (v0 i) i))
       (let ((val (mus-interpolate mus-interp-linear 1.5 v0)))
-	(if (fneq val 1.5) (snd-display ";mus-interpolate linear: ~A" val))
+	(if (fneq val 1.5) (snd-display "mus-interpolate linear: ~A" val))
 	(set! val (mus-interpolate mus-interp-all-pass 1.5 v0))
-	(if (fneq val 1.5) (snd-display ";mus-interpolate all-pass: ~A" val))
+	(if (fneq val 1.5) (snd-display "mus-interpolate all-pass: ~A" val))
 	(set! val (mus-interpolate mus-interp-none 1.5 v0))
-	(if (fneq val 1.0) (snd-display ";mus-interpolate none: ~A" val))
+	(if (fneq val 1.0) (snd-display "mus-interpolate none: ~A" val))
 	(set! val (mus-interpolate mus-interp-hermite 1.5 v0))
-	(if (fneq val 1.5) (snd-display ";mus-interpolate hermite: ~A" val))
+	(if (fneq val 1.5) (snd-display "mus-interpolate hermite: ~A" val))
 	(set! val (mus-interpolate mus-interp-bezier 1.5 v0))
-	(if (fneq val 1.5) (snd-display ";mus-interpolate bezier: ~A" val))
+	(if (fneq val 1.5) (snd-display "mus-interpolate bezier: ~A" val))
 	(set! val (mus-interpolate mus-interp-lagrange 1.5 v0))
-	(if (fneq val 1.5) (snd-display ";mus-interpolate lagrange: ~A" val))
+	(if (fneq val 1.5) (snd-display "mus-interpolate lagrange: ~A" val))
 	(do ((i 0 (+ i 1))) ((= i 10)) (set! (v0 i) (sin (* pi (/ i 5)))))
 	(set! val (mus-interpolate mus-interp-linear 1.5 v0))
-	(if (fneq val 0.7694) (snd-display ";mus-interpolate linear sin: ~A" val))
+	(if (fneq val 0.7694) (snd-display "mus-interpolate linear sin: ~A" val))
 	(set! val (mus-interpolate mus-interp-all-pass 1.5 v0))
-	(if (fneq val 0.7694) (snd-display ";mus-interpolate all-pass sin: ~A" val))
+	(if (fneq val 0.7694) (snd-display "mus-interpolate all-pass sin: ~A" val))
 	(set! val (mus-interpolate mus-interp-none 1.5 v0))
-	(if (fneq val 0.5877) (snd-display ";mus-interpolate none sin: ~A" val))
+	(if (fneq val 0.5877) (snd-display "mus-interpolate none sin: ~A" val))
 	(set! val (mus-interpolate mus-interp-hermite 1.5 v0))
-	(if (fneq val 0.8061) (snd-display ";mus-interpolate hermite sin: ~A" val))
+	(if (fneq val 0.8061) (snd-display "mus-interpolate hermite sin: ~A" val))
 	(set! val (mus-interpolate mus-interp-bezier 1.5 v0))
-	(if (fneq val 0.6959) (snd-display ";mus-interpolate bezier sin: ~A" val))
+	(if (fneq val 0.6959) (snd-display "mus-interpolate bezier sin: ~A" val))
 	(set! val (mus-interpolate mus-interp-lagrange 1.5 v0))
-	(if (fneq val 0.7975) (snd-display ";mus-interpolate lagrange sin: ~A" val))))
+	(if (fneq val 0.7975) (snd-display "mus-interpolate lagrange sin: ~A" val))))
     
     (let ((tag (catch #t (lambda () (mus-interpolate 1234 1.0 (make-float-vector 3))) (lambda args (car args)))))
       (if (not (eq? tag 'out-of-range))
-	  (snd-display ";mus-interpolate 1234: ~A" tag)))
+	  (snd-display "mus-interpolate 1234: ~A" tag)))
     (let ((tag (catch #t (lambda () (mus-interpolate mus-interp-linear 1.0 (make-float-vector 3) -1)) (lambda args (car args)))))
       (if (not (eq? tag 'out-of-range))
-	  (snd-display ";mus-interpolate size -1: ~A" tag)))
+	  (snd-display "mus-interpolate size -1: ~A" tag)))
 
     ;; this test (for % trouble in C) is from Anders Vinjar, bugfix thanks to Tito Latini
     (let ((d (make-delay 10)))
@@ -11843,18 +11843,18 @@ EDITS: 2
 	  ((= i 10))
 	(delay d i))
       (if (not (mus-arrays-equal? (mus-data d) (float-vector 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0)))
-	  (snd-display ";delay data (0..9): ~A~%" (mus-data d)))
+	  (snd-display "delay data (0..9): ~A~%" (mus-data d)))
       (let ((vals (make-float-vector 10)))
 	(do ((i 0 (+ i 1)))
 	    ((= i 10))
 	  (set! (vals i) (tap d (- i))))
 	(if (not (mus-arrays-equal? vals (float-vector 0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0)))
-	    (snd-display ";delay tapped backwards: ~A~%" vals))
+	    (snd-display "delay tapped backwards: ~A~%" vals))
 	(do ((i 0 (+ i 1)))
 	    ((= i 10))
 	  (set! (vals i) (tap d i)))
 	(if (not (mus-arrays-equal? vals (float-vector 0.0 9.0 8.0 7.0 6.0 5.0 4.0 3.0 2.0 1.0)))
-	    (snd-display ";delay tapped forwards: ~A~%" vals))))
+	    (snd-display "delay tapped forwards: ~A~%" vals))))
     
     (let ((gen1 (make-delay 4 :initial-contents '(1.0 0.5 0.25 0.0)))
 	  (gen3 (make-delay 4 :initial-contents (float-vector 1.0 0.5 0.25 0.0))))
@@ -11872,30 +11872,30 @@ EDITS: 2
 	    (fill-float-vector v1 (let ((val (if (delay? gen2) (delay gen2 k) -1.0)))
 				    (set! k (+ k 1)) 
 				    val)))
-	  (if (not (mus-arrays-equal? v1 v0)) (snd-display ";map delay: ~A ~A" v0 v1))
-	  (if (not (delay? gen)) (snd-display ";~A not delay?" gen))
-	  (if (not (= (mus-length gen) 3)) (snd-display ";delay length: ~D?" (mus-length gen)))
+	  (if (not (mus-arrays-equal? v1 v0)) (snd-display "map delay: ~A ~A" v0 v1))
+	  (if (not (delay? gen)) (snd-display "~A not delay?" gen))
+	  (if (not (= (mus-length gen) 3)) (snd-display "delay length: ~D?" (mus-length gen)))
 	  (if (or (fneq (v0 1) 0.0) (fneq (v0 4) 1.0) (fneq (v0 8) 5.0))
-	      (snd-display ";delay output: ~A" v0))))
+	      (snd-display "delay output: ~A" v0))))
       (if (or (fneq (delay gen1) 1.0) 
 	      (fneq (delay gen1) 0.5)
 	      (fneq (delay gen1) 0.25)
 	      (fneq (delay gen1) 0.0))
-	  (snd-display ";delay with list initial-contents confused"))
+	  (snd-display "delay with list initial-contents confused"))
       (if (or (fneq (delay gen3) 1.0) 
 	      (fneq (delay gen3) 0.5)
 	      (fneq (delay gen3) 0.25)
 	      (fneq (delay gen3) 0.0))
-	  (snd-display ";delay with float-vector initial-contents confused")))
+	  (snd-display "delay with float-vector initial-contents confused")))
     (let ((var (catch #t (lambda () (make-delay :size #f)) (lambda args args))))
       (if (not (eq? (car var) 'wrong-type-arg))
-	  (snd-display ";make-delay bad size #f: ~A" var)))
+	  (snd-display "make-delay bad size #f: ~A" var)))
     (let ((var (catch #t (lambda () (make-delay 3 :initial-element (make-oscil))) (lambda args args))))
       (if (not (eq? (car var) 'wrong-type-arg))
-	  (snd-display ";make-delay bad initial element: ~A" var)))
+	  (snd-display "make-delay bad initial element: ~A" var)))
     (let ((var (catch #t (lambda () (make-delay -3)) (lambda args args))))
       (if (not (eq? (car var) 'out-of-range))
-	  (snd-display ";make-delay bad size: ~A" var)))
+	  (snd-display "make-delay bad size: ~A" var)))
     
     (test-gen-equal (let ((d1 (make-delay 3))) (delay d1 1.0) d1) 
 		    (let ((d2 (make-delay 3))) (delay d2 1.0) d2)
@@ -11912,18 +11912,18 @@ EDITS: 2
       (let ((data (copy (mus-data gen))))
 	(float-vector-set! (mus-data gen) 0 0.3)
 	(if (fneq ((mus-data gen) 0) 0.3)
-	    (snd-display ";delay data 0: ~A" ((mus-data gen) 0)))
+	    (snd-display "delay data 0: ~A" ((mus-data gen) 0)))
 	(set! (data 0) .75)
 	(set! (mus-data gen) data))
       (if (fneq ((mus-data gen) 0) 0.75)
-	  (snd-display ";delay set data 0: ~A" ((mus-data gen) 0)))
+	  (snd-display "delay set data 0: ~A" ((mus-data gen) 0)))
       (delay gen 0.0)
       (delay gen 0.0)
       (let ((val (delay gen 0.0)))
 	(if (fneq val 0.75)
-	    (snd-display ";set delay data: ~A ~A" val (mus-data gen))))
+	    (snd-display "set delay data: ~A ~A" val (mus-data gen))))
       (if (mus-data (make-oscil))
-	  (snd-display ";mus-data osc: ~A" (mus-data (make-oscil)))))
+	  (snd-display "mus-data osc: ~A" (mus-data (make-oscil)))))
     
     (let ((del (make-delay 5 :max-size 8)))
       (delay del 1.0)
@@ -11932,15 +11932,15 @@ EDITS: 2
 	   (i 0 (+ i 1)))
 	  ((= i 5)
 	   (if (not (mus-arrays-equal? v0 (float-vector 0.600 0.400 0.000 0.000 0.000)))
-	       (snd-display ";zdelay: ~A" v0)))
+	       (snd-display "zdelay: ~A" v0)))
 	(set! (v0 i) (delay del 0.0 0.4)))
       (delay del 1.0)
       (delay del 0.0 0.4)
       (if (not (string=? (mus-describe del) "delay line[5,8, linear]: [0 0 1 0 0]"))
-	  (snd-display ";describe zdelay: ~A" (mus-describe del))))
+	  (snd-display "describe zdelay: ~A" (mus-describe del))))
     (let ((tag (catch #t (lambda () (tap (make-oscil))) (lambda args (car args)))))
       (if (not (eq? tag 'wrong-type-arg))
-	  (snd-display ";tap of oscil: ~A" tag)))
+	  (snd-display "tap of oscil: ~A" tag)))
     
     (let ((dly (make-delay 3))
 	  (flt (make-one-zero .5 .4))
@@ -11950,7 +11950,7 @@ EDITS: 2
 			       (set! inval 0.0)
 			       res)))
       (if (not (mus-arrays-equal? v (float-vector 0.0 0.0 0.0 1.0 0.0 0.0 0.300 0.240 0.0 0.090 0.144 0.058 0.027 0.065 0.052 0.022 0.026 0.031 0.019 0.013)))
-	  (snd-display ";tap with low pass: ~A" v)))
+	  (snd-display "tap with low pass: ~A" v)))
     
     (let ((dly (make-delay 3))
 	  (v (make-float-vector 20)))
@@ -11959,18 +11959,18 @@ EDITS: 2
 			       (set! inval 0.0)
 			       res)))
       (if (not (mus-arrays-equal? v (float-vector 0.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0 0.0 1.0 0.0)))
-	  (snd-display ";simple tap: ~A" v)))
+	  (snd-display "simple tap: ~A" v)))
     
     (let ((dly (make-delay 6))
 	  (v (make-float-vector 20)))
-      (if (not (tap? dly)) (snd-display ";tap?: ~A" (tap? dly)))
+      (if (not (tap? dly)) (snd-display "tap?: ~A" (tap? dly)))
       (let ((inval 1.0))
 	(fill-float-vector v (let ((res (delay dly (+ inval (tap dly -2.0)))))
 			       (set! inval 0.0)
 			       res)))
       (set! *print-length* (max 20 *print-length*))
       (if (not (mus-arrays-equal? v (float-vector 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 1.0 0.0)))
-	  (snd-display ";tap back 2: ~A" v)))
+	  (snd-display "tap back 2: ~A" v)))
     
     (let ((dly (make-delay 3))
 	  (flt (make-one-zero .5 .4))
@@ -11982,30 +11982,30 @@ EDITS: 2
 		      (set! inval 0.0)
 		      res)))
       (if (not (mus-arrays-equal? v (float-vector 0.0 0.0 0.0 1.0 0.0 0.0 0.300 0.240 0.0 0.090 0.144 0.058 0.027 0.065 0.052 0.022 0.026 0.031 0.019 0.013)))
-	  (snd-display ";tap with low pass: ~A" v)))
+	  (snd-display "tap with low pass: ~A" v)))
     
     (let* ((dly (make-delay 3 :initial-element 32.0))
 	   (ddata (mus-data dly)))
-      (cond ((not (float-vector? ddata)) (snd-display ";delay data not float-vector?"))
-	    ((not (= (length ddata) 3))  (snd-display ";delay data len not 3: ~A (~A)" (length ddata) ddata))
-	    ((fneq (ddata 1) 32.0)       (snd-display ";delay [1] 32: ~A" (ddata 1))))
+      (cond ((not (float-vector? ddata)) (snd-display "delay data not float-vector?"))
+	    ((not (= (length ddata) 3))  (snd-display "delay data len not 3: ~A (~A)" (length ddata) ddata))
+	    ((fneq (ddata 1) 32.0)       (snd-display "delay [1] 32: ~A" (ddata 1))))
       (let ((tag (catch #t (lambda () (set! (mus-length dly) -1)) (lambda args (car args)))))
-	(if (not (eq? tag 'out-of-range)) (snd-display ";len to -1 -> ~A" tag)))
+	(if (not (eq? tag 'out-of-range)) (snd-display "len to -1 -> ~A" tag)))
       (let ((tag (catch #t (lambda () (set! (mus-length dly) 0)) (lambda args (car args)))))
-	(if (not (eq? tag 'out-of-range)) (snd-display ";len to 0 -> ~A" tag)))
+	(if (not (eq? tag 'out-of-range)) (snd-display "len to 0 -> ~A" tag)))
       (let ((tag (catch #t (lambda () (set! (mus-length dly) 100)) (lambda args (car args)))))
-	(if (not (eq? tag 'out-of-range)) (snd-display ";len to 100 -> ~A" tag)))
+	(if (not (eq? tag 'out-of-range)) (snd-display "len to 100 -> ~A" tag)))
       (let ((tag (catch #t (lambda () (set! ((mus-data dly) 100) .1)) (lambda args (car args)))))
-	(if (not (eq? tag 'out-of-range)) (snd-display ";data 100 to .1 -> ~A" tag)))
+	(if (not (eq? tag 'out-of-range)) (snd-display "data 100 to .1 -> ~A" tag)))
       (set! (mus-data dly) (make-float-vector 32 1.0))
       (set! ddata (mus-data dly))
-      (if (not (float-vector? ddata)) (snd-display ";set delay data not float-vector?"))
-      (if (fneq (ddata 1) 1.0) (snd-display ";set delay [1] 1: ~A" (ddata 1)))
-      (if (not (= (length ddata) 32)) (snd-display ";set delay data len(32): ~A" (length ddata)))
+      (if (not (float-vector? ddata)) (snd-display "set delay data not float-vector?"))
+      (if (fneq (ddata 1) 1.0) (snd-display "set delay [1] 1: ~A" (ddata 1)))
+      (if (not (= (length ddata) 32)) (snd-display "set delay data len(32): ~A" (length ddata)))
       (let ((tag (catch #t (lambda () (set! (mus-length dly) 100)) (lambda args (car args)))))
-	(if (not (eq? tag 'out-of-range)) (snd-display ";set len to 100 -> ~A" tag)))
+	(if (not (eq? tag 'out-of-range)) (snd-display "set len to 100 -> ~A" tag)))
       (let ((tag (catch #t (lambda () (set! (ddata 100) .1)) (lambda args (car args)))))
-	(if (not (eq? tag 'out-of-range)) (snd-display ";set data 100 to .1 -> ~A" tag))))
+	(if (not (eq? tag 'out-of-range)) (snd-display "set data 100 to .1 -> ~A" tag))))
     
     (let ((d1 (make-delay 4))
 	  (d2 (make-delay 4 :max-size 5 :type mus-interp-linear))
@@ -12021,13 +12021,13 @@ EDITS: 2
 	  (v5 (make-float-vector 20))
 	  (v6 (make-float-vector 20))
 	  (v7 (make-float-vector 20)))
-      (if (not (= (mus-interp-type d1) mus-interp-none)) (snd-display ";d1 interp type: ~A" (mus-interp-type d1)))
-      (if (not (= (mus-interp-type d2) mus-interp-linear)) (snd-display ";d2 interp type: ~A" (mus-interp-type d2)))
-      (if (not (= (mus-interp-type d3) mus-interp-all-pass)) (snd-display ";d3 interp type: ~A" (mus-interp-type d3)))
-      (if (not (= (mus-interp-type d4) mus-interp-none)) (snd-display ";d4 interp type: ~A" (mus-interp-type d4)))
-      (if (not (= (mus-interp-type d5) mus-interp-lagrange)) (snd-display ";d5 interp type: ~A" (mus-interp-type d5)))
-      (if (not (= (mus-interp-type d6) mus-interp-hermite)) (snd-display ";d6 interp type: ~A" (mus-interp-type d6)))
-      (if (not (= (mus-interp-type d7) mus-interp-linear)) (snd-display ";d7 interp type: ~A" (mus-interp-type d7)))
+      (if (not (= (mus-interp-type d1) mus-interp-none)) (snd-display "d1 interp type: ~A" (mus-interp-type d1)))
+      (if (not (= (mus-interp-type d2) mus-interp-linear)) (snd-display "d2 interp type: ~A" (mus-interp-type d2)))
+      (if (not (= (mus-interp-type d3) mus-interp-all-pass)) (snd-display "d3 interp type: ~A" (mus-interp-type d3)))
+      (if (not (= (mus-interp-type d4) mus-interp-none)) (snd-display "d4 interp type: ~A" (mus-interp-type d4)))
+      (if (not (= (mus-interp-type d5) mus-interp-lagrange)) (snd-display "d5 interp type: ~A" (mus-interp-type d5)))
+      (if (not (= (mus-interp-type d6) mus-interp-hermite)) (snd-display "d6 interp type: ~A" (mus-interp-type d6)))
+      (if (not (= (mus-interp-type d7) mus-interp-linear)) (snd-display "d7 interp type: ~A" (mus-interp-type d7)))
       (set! (v1 0) (delay d1 1.0))
       (set! (v2 0) (delay d2 1.0))
       (set! (v3 0) (delay d3 1.0))
@@ -12049,20 +12049,20 @@ EDITS: 2
       (set! *print-length* (max 20 *print-length*))
       (if (not (or (mus-arrays-equal? v1 (float-vector 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0))
 		   (mus-arrays-equal? v1 (float-vector 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0))))
-	  (snd-display ";delay interp none (1): ~A" v1))
+	  (snd-display "delay interp none (1): ~A" v1))
       (if (not (mus-arrays-equal? v2 (float-vector 0.0 0.0 0.0 0.0 0.0 0.0 0.200 0.400 0.600 0.800 1.0 0.800 0.600 0.400 0.200 0.0 0.0 0.0 0.0 0.0)))
-	  (snd-display ";delay interp linear (2): ~A" v2))
+	  (snd-display "delay interp linear (2): ~A" v2))
       (if (not (mus-arrays-equal? v3 (float-vector 0.000 0.000 0.000 0.000 0.000 1.000 0.000 0.600 0.160 0.168 -0.168 0.334 0.199 0.520 0.696 -0.696 0.557 -0.334 0.134 -0.027)))
-	  (snd-display ";delay interp all-pass (3): ~A" v3))
+	  (snd-display "delay interp all-pass (3): ~A" v3))
       (if (not (or (mus-arrays-equal? v4 (float-vector 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0))
 		   (mus-arrays-equal? v4 (float-vector 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 0.0))))
-	  (snd-display ";delay interp none (4): ~A" v4))
+	  (snd-display "delay interp none (4): ~A" v4))
       (if (not (mus-arrays-equal? v5 (float-vector 0.0 0.0 0.0 0.0 0.0 0.0 0.120 0.280 0.480 0.720 1.000 0.960 0.840 0.640 0.360 0.000 -0.080 -0.120 -0.120 -0.080)))
-	  (snd-display ";delay interp lagrange (5): ~A" v5))
+	  (snd-display "delay interp lagrange (5): ~A" v5))
       (if (not (mus-arrays-equal? v6 (float-vector 0.0 -0.016 -0.048 -0.072 -0.064 0.0 0.168 0.424 0.696 0.912 1.0 0.912 0.696 0.424 0.168 0.0 -0.064 -0.072 -0.048 -0.016)))
-	  (snd-display ";delay interp hermite (6): ~A" v6))
+	  (snd-display "delay interp hermite (6): ~A" v6))
       (if (not (mus-arrays-equal? v7 (float-vector 0.0 0.0 0.0 0.0 0.0 0.0 0.200 0.400 0.600 0.800 1.0 0.800 0.600 0.400 0.200 0.0 0.0 0.0 0.0 0.0)))
-	  (snd-display ";delay interp linear (7): ~A" v7)))
+	  (snd-display "delay interp linear (7): ~A" v7)))
     
     (let ((dly1 (make-delay :size 2 :max-size 3))
 	  (data (make-float-vector 5))
@@ -12072,7 +12072,7 @@ EDITS: 2
 	(set! (data i) (delay dly1 impulse 0.4)) ; longer line
 	(set! impulse 0.0))
       (if (not (mus-arrays-equal? data (float-vector 0.0 0.0 0.6 0.4 0.0)))
-	  (snd-display ";delay size 2, max 3, off 0.4: ~A" data))
+	  (snd-display "delay size 2, max 3, off 0.4: ~A" data))
       
       (set! dly1 (make-delay :size 2 :max-size 3))
       (set! impulse 1.0)
@@ -12081,7 +12081,7 @@ EDITS: 2
 	(set! (data i) (delay dly1 impulse -0.4)) ; shorter line
 	(set! impulse 0.0))
       (if (not (mus-arrays-equal? data (float-vector 0.0 0.4 0.6 0.0 0.0)))
-	  (snd-display ";delay size 2, max 3, off -0.4: ~A" data))
+	  (snd-display "delay size 2, max 3, off -0.4: ~A" data))
       
       (set! dly1 (make-delay :size 1 :max-size 2))
       (set! impulse 1.0)
@@ -12090,7 +12090,7 @@ EDITS: 2
 	(set! (data i) (delay dly1 impulse 0.4))
 	(set! impulse 0.0))
       (if (not (mus-arrays-equal? data (float-vector 0.0 0.6 0.4 0.0 0.0)))
-	  (snd-display ";delay size 1, max 2, off 0.4: ~A" data))
+	  (snd-display "delay size 1, max 2, off 0.4: ~A" data))
       
       (set! dly1 (make-delay :size 0 :max-size 1))
       (set! impulse 1.0)
@@ -12099,11 +12099,11 @@ EDITS: 2
 	(set! (data i) (delay dly1 impulse 0.4))
 	(set! impulse 0.0))
       (if (not (mus-arrays-equal? data (float-vector 0.6 0.4 0.0 0.0 0.0)))
-	  (snd-display ";delay size 0, max 1, off 0.4: ~A" data))
+	  (snd-display "delay size 0, max 1, off 0.4: ~A" data))
       
       (set! dly1 (make-delay :size 0 :max-size 1))
       (let ((val (delay dly1 0.0)))
-	(if (fneq val 0.0) (snd-display ";initial delay 0 size val: ~A" val)))
+	(if (fneq val 0.0) (snd-display "initial delay 0 size val: ~A" val)))
       
       (set! dly1 (make-delay :size 0 :max-size 1))
       (set! impulse 1.0)
@@ -12112,7 +12112,7 @@ EDITS: 2
 	(set! (data i) (delay dly1 impulse -0.4)) ; shorter than 0? should this be an error?
 	(set! impulse 0.0))
       (if (not (mus-arrays-equal? data (float-vector 1.4 -0.4 0.0 0.0 0.0))) ; hmmm -- they're asking for undefined values here 
-	  (snd-display ";delay size 0, max 1, off -0.4: ~A" data))
+	  (snd-display "delay size 0, max 1, off -0.4: ~A" data))
       
       (set! dly1 (make-delay 0))
       (set! impulse 1.0)
@@ -12121,10 +12121,10 @@ EDITS: 2
 	(set! (data i) (delay dly1 impulse)) 
 	(set! impulse 0.0))
       (if (not (mus-arrays-equal? data (float-vector 1 0 0 0 0)))
-	  (snd-display ";delay size 0: ~A" data))
+	  (snd-display "delay size 0: ~A" data))
       (let ((x (delay dly1 0.5)))
 	(if (fneq x 0.5)
-	    (snd-display ";delay size 0 0.5: ~A" x)))
+	    (snd-display "delay size 0 0.5: ~A" x)))
       )
     
     (let ((gen (make-delay :size 0 :max-size 100))
@@ -12133,26 +12133,26 @@ EDITS: 2
 	  ((= i 10))
 	(set! (v i) (delay gen 0.5 i)))
       (if (not (mus-arrays-equal? v (float-vector 0.500 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";delay 0 -> 100: ~A" v))
+	  (snd-display "delay 0 -> 100: ~A" v))
       (do ((i 9 (- i 1)))
 	  ((< i 0))
 	(set! (v i) (delay gen 0.5 i)))
       (if (not (mus-arrays-equal? v (make-float-vector 10 0.5)))
-	  (snd-display ";delay 100 -> 0: ~A" v))
+	  (snd-display "delay 100 -> 0: ~A" v))
       (mus-reset gen)
       (if (not (mus-arrays-equal? (mus-data gen) (make-float-vector 100)))
-	  (snd-display ";after reset mus-data delay peak: ~A" (float-vector-peak (mus-data gen))))
+	  (snd-display "after reset mus-data delay peak: ~A" (float-vector-peak (mus-data gen))))
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
 	(set! (v i) (delay gen (if (odd? i) 1.0 0.0) (* i .1))))
       (if (not (mus-arrays-equal? v (float-vector 0.000 0.900 0.000 0.700 0.000 0.500 0.000 0.300 0.000 0.100)))
-	  (snd-display ";delay 0 -> 100 .1: ~A (~A)" v gen))
+	  (snd-display "delay 0 -> 100 .1: ~A (~A)" v gen))
       (mus-reset gen)
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
 	(set! (v i) (delay gen (if (odd? i) 1.0 0.0) (+ 1.0 (* i .1)))))
       (if (not (mus-arrays-equal? v (float-vector 0.000 0.000 0.800 0.300 0.600 0.500 0.400 0.700 0.200 0.900)))
-	  (snd-display ";delay 0 -> 100 1.1: ~A" v)))
+	  (snd-display "delay 0 -> 100 1.1: ~A" v)))
     
     
     (let ((gen (make-all-pass .4 .6 3))
@@ -12166,18 +12166,18 @@ EDITS: 2
       (let ((gen1 (make-all-pass .4 .6 3))
 	    (v1 (make-float-vector 10)))  
 	(fill-float-vector v1 (if (all-pass? gen1) (all-pass gen1 1.0) -1.0))
-	(if (not (mus-arrays-equal? v1 v0)) (snd-display ";map all-pass: ~A ~A" v0 v1)))
-      (if (not (all-pass? gen)) (snd-display ";~A not all-pass?" gen))
-      (if (not (= (mus-length gen) 3)) (snd-display ";all-pass length: ~D?" (mus-length gen)))
-      (if (not (= (mus-order gen) 3)) (snd-display ";all-pass order: ~D?" (mus-order gen)))
-      (if (fneq (mus-feedback gen) .4) (snd-display ";all-pass feedback: ~F?" (mus-feedback gen)))
-      (if (fneq (mus-feedforward gen) .6) (snd-display ";all-pass feedforward: ~F?" (mus-feedforward gen)))
+	(if (not (mus-arrays-equal? v1 v0)) (snd-display "map all-pass: ~A ~A" v0 v1)))
+      (if (not (all-pass? gen)) (snd-display "~A not all-pass?" gen))
+      (if (not (= (mus-length gen) 3)) (snd-display "all-pass length: ~D?" (mus-length gen)))
+      (if (not (= (mus-order gen) 3)) (snd-display "all-pass order: ~D?" (mus-order gen)))
+      (if (fneq (mus-feedback gen) .4) (snd-display "all-pass feedback: ~F?" (mus-feedback gen)))
+      (if (fneq (mus-feedforward gen) .6) (snd-display "all-pass feedforward: ~F?" (mus-feedforward gen)))
       (if (or (fneq (v0 1) 0.6) (fneq (v0 4) 1.84) (fneq (v0 8) 2.336))
-	  (snd-display ";all-pass output: ~A" v0))
+	  (snd-display "all-pass output: ~A" v0))
       (set! (mus-feedback gen) 0.5) 
-      (if (fneq (mus-feedback gen) .5) (snd-display ";all-pass set-feedback: ~F?" (mus-feedback gen)))
+      (if (fneq (mus-feedback gen) .5) (snd-display "all-pass set-feedback: ~F?" (mus-feedback gen)))
       (set! (mus-feedforward gen) 0.5) 
-      (if (fneq (mus-feedforward gen) .5) (snd-display ";all-pass set-feedforward: ~F?" (mus-feedforward gen))))
+      (if (fneq (mus-feedforward gen) .5) (snd-display "all-pass set-feedforward: ~F?" (mus-feedforward gen))))
     
     (test-gen-equal (let ((d1 (make-all-pass 0.7 0.5 3))) (all-pass d1 1.0) d1)
 		    (let ((d2 (make-all-pass 0.7 0.5 3))) (all-pass d2 1.0) d2) 
@@ -12193,7 +12193,7 @@ EDITS: 2
 		    (make-all-pass 0.7 0.5 3 :initial-contents '(1.0 1.0 1.0)))
     (let ((err (catch #t (lambda () (make-all-pass :feedback .2 :feedforward .1 :size -1)) (lambda args args))))
       (if (not (eq? (car err) 'out-of-range))
-	  (snd-display ";make-all-pass bad size error message: ~A" err)))
+	  (snd-display "make-all-pass bad size error message: ~A" err)))
     
     (let ((gen (make-moving-average 4))
 	  (v0 (make-float-vector 10)))
@@ -12206,35 +12206,35 @@ EDITS: 2
       (let ((gen1 (make-moving-average 4))
 	    (v1 (make-float-vector 10)))  
 	(fill-float-vector v1 (if (moving-average? gen1) (moving-average gen1 1.0) -1.0))
-	(if (not (mus-arrays-equal? v1 v0)) (snd-display ";map average: ~A ~A" v0 v1)))
-      (if (not (moving-average? gen)) (snd-display ";~A not average?" gen))
-      (if (not (= (mus-length gen) 4)) (snd-display ";average length: ~D?" (mus-length gen)))
-      (if (not (= (mus-order gen) 4)) (snd-display ";average order: ~D?" (mus-order gen)))
+	(if (not (mus-arrays-equal? v1 v0)) (snd-display "map average: ~A ~A" v0 v1)))
+      (if (not (moving-average? gen)) (snd-display "~A not average?" gen))
+      (if (not (= (mus-length gen) 4)) (snd-display "average length: ~D?" (mus-length gen)))
+      (if (not (= (mus-order gen) 4)) (snd-display "average order: ~D?" (mus-order gen)))
       (if (or (fneq (v0 1) 0.5) (fneq (v0 4) 1.0) (fneq (v0 8) 1.0))
-	  (snd-display ";average output: ~A" v0)))
+	  (snd-display "average output: ~A" v0)))
     
     (let* ((gen (make-moving-average 8))
 	   (val (moving-average gen)))
-      (if (fneq val 0.0) (snd-display ";empty average: ~A" val))
+      (if (fneq val 0.0) (snd-display "empty average: ~A" val))
       (set! val (moving-average gen 1.0))
-      (if (fneq val 0.125) (snd-display ";average 1: ~A" val))
+      (if (fneq val 0.125) (snd-display "average 1: ~A" val))
       (set! val (moving-average gen 1.0))
-      (if (fneq val 0.25) (snd-display ";average 2: ~A" val))
+      (if (fneq val 0.25) (snd-display "average 2: ~A" val))
       (set! val (moving-average gen 0.5))
-      (if (fneq val 0.3125) (snd-display ";average 2: ~A" val))
+      (if (fneq val 0.3125) (snd-display "average 2: ~A" val))
       (do ((i 0 (+ i 1))) ((= i 5)) (set! val (moving-average gen 0.0))) 
-      (if (fneq val 0.3125) (snd-display ";average 6: ~A" val))
+      (if (fneq val 0.3125) (snd-display "average 6: ~A" val))
       (set! val (moving-average gen 0.0))
-      (if (fneq val 0.1875) (snd-display ";average 7: ~A" val))
+      (if (fneq val 0.1875) (snd-display "average 7: ~A" val))
       (set! val (moving-average gen 0.0))
-      (if (fneq val 0.0625) (snd-display ";average 8: ~A" val))
+      (if (fneq val 0.0625) (snd-display "average 8: ~A" val))
       (set! val (moving-average gen 0.0))
-      (if (fneq val 0.0) (snd-display ";average 9: ~A" val)))
+      (if (fneq val 0.0) (snd-display "average 9: ~A" val)))
 
     (let ((val (moving-average (make-moving-average 10 :initial-element .5) 0.5)))
-      (if (fneq val 0.5) (snd-display ";average initial-element: ~A" val)))
+      (if (fneq val 0.5) (snd-display "average initial-element: ~A" val)))
     (let ((val (moving-average (make-moving-average 3 :initial-contents '(1.0 1.0 1.0)) 1.0)))
-      (if (fneq val 1.0) (snd-display ";average initial-contents: ~A" val)))
+      (if (fneq val 1.0) (snd-display "average initial-contents: ~A" val)))
     
     (test-gen-equal (let ((d1 (make-moving-average 3 :initial-contents '(0.7 0.5 3)))) (moving-average d1 1.0) d1)
 		    (let ((d2 (make-moving-average 3 :initial-contents (float-vector 0.7 0.5 3)))) (moving-average d2 1.0) d2) 
@@ -12250,10 +12250,10 @@ EDITS: 2
 		    (make-moving-average 3 :initial-contents '(1.0 1.0 1.0)))
     (let ((err (catch #t (lambda () (make-moving-average :size -1)) (lambda args args))))
       (if (not (eq? (car err) 'out-of-range))
-	  (snd-display ";make-average bad size error message: ~A" err)))
+	  (snd-display "make-average bad size error message: ~A" err)))
     (let ((err (catch #t (lambda () (make-moving-average :size 0)) (lambda args args))))
       (if (not (eq? (car err) 'out-of-range))
-	  (snd-display ";make-average size==0 error message: ~A" err)))
+	  (snd-display "make-average size==0 error message: ~A" err)))
 
     (let ((gen (make-moving-max 4))
 	  (v0 (make-float-vector 10))
@@ -12266,35 +12266,35 @@ EDITS: 2
 	(set! (v0 i) (moving-max gen 1.0)))
       (let ((gen1 (make-moving-max 4)))
 	(fill-float-vector v1 (if (moving-max? gen1) (moving-max gen1 1.0) -1.0)))
-      (if (not (mus-arrays-equal? v1 v0)) (snd-display ";map max: ~A ~A" v0 v1))
-      (if (not (moving-max? gen)) (snd-display ";~A not max?" gen))
-      (if (not (= (mus-length gen) 4)) (snd-display ";max length: ~D?" (mus-length gen)))
-      (if (not (= (mus-order gen) 4)) (snd-display ";max order: ~D?" (mus-order gen)))
+      (if (not (mus-arrays-equal? v1 v0)) (snd-display "map max: ~A ~A" v0 v1))
+      (if (not (moving-max? gen)) (snd-display "~A not max?" gen))
+      (if (not (= (mus-length gen) 4)) (snd-display "max length: ~D?" (mus-length gen)))
+      (if (not (= (mus-order gen) 4)) (snd-display "max order: ~D?" (mus-order gen)))
       (if (or (fneq (v0 1) 1.0) (fneq (v0 4) 1.0) (fneq (v0 8) 1.0))
-	  (snd-display ";max output: ~A" v0)))
+	  (snd-display "max output: ~A" v0)))
     
     (let* ((gen (make-moving-max 8))
 	   (val (moving-max gen)))
-      (if (fneq val 0.0) (snd-display ";empty max: ~A" val))
+      (if (fneq val 0.0) (snd-display "empty max: ~A" val))
       (set! val (moving-max gen 1.0))
-      (if (fneq val 1.0) (snd-display ";max 1: ~A" val))
+      (if (fneq val 1.0) (snd-display "max 1: ~A" val))
       (set! val (moving-max gen -0.5))
-      (if (fneq val 1.0) (snd-display ";max 2: ~A" val))
+      (if (fneq val 1.0) (snd-display "max 2: ~A" val))
       (set! val (moving-max gen -1.5))
-      (if (fneq val 1.5) (snd-display ";max 2: ~A" val))
+      (if (fneq val 1.5) (snd-display "max 2: ~A" val))
       (do ((i 0 (+ i 1))) ((= i 5)) (set! val (moving-max gen 0.0))) 
-      (if (fneq val 1.5) (snd-display ";max 6: ~A" val))
+      (if (fneq val 1.5) (snd-display "max 6: ~A" val))
       (set! val (moving-max gen 0.0))
-      (if (fneq val 1.5) (snd-display ";max 7: ~A" val))
+      (if (fneq val 1.5) (snd-display "max 7: ~A" val))
       (set! val (moving-max gen 0.0))
-      (if (fneq val 1.5) (snd-display ";max 8: ~A" val))
+      (if (fneq val 1.5) (snd-display "max 8: ~A" val))
       (set! val (moving-max gen 0.0))
-      (if (fneq val 0.0) (snd-display ";max 9: ~A" val)))
+      (if (fneq val 0.0) (snd-display "max 9: ~A" val)))
 
     (let ((val (moving-max (make-moving-max 10 :initial-element .5) 0.5)))
-      (if (fneq val 0.5) (snd-display ";max initial-element: ~A" val)))
+      (if (fneq val 0.5) (snd-display "max initial-element: ~A" val)))
     (let ((val (moving-max (make-moving-max 3 :initial-contents '(1.0 1.0 1.0)) 1.0)))
-      (if (fneq val 1.0) (snd-display ";max initial-contents: ~A" val)))
+      (if (fneq val 1.0) (snd-display "max initial-contents: ~A" val)))
     
     (test-gen-equal (let ((d1 (make-moving-max 3 :initial-contents '(0.7 0.5 3)))) (moving-max d1 1.0) d1)
 		    (let ((d2 (make-moving-max 3 :initial-contents (float-vector 0.7 0.5 3)))) (moving-max d2 1.0) d2) 
@@ -12310,10 +12310,10 @@ EDITS: 2
 		    (make-moving-max 3 :initial-contents '(1.0 1.0 1.0)))
     (let ((err (catch #t (lambda () (make-moving-max :size -1)) (lambda args args))))
       (if (not (eq? (car err) 'out-of-range))
-	  (snd-display ";make-max bad size error message: ~A" err)))
+	  (snd-display "make-max bad size error message: ~A" err)))
     (let ((err (catch #t (lambda () (make-moving-max :size 0)) (lambda args args))))
       (if (not (eq? (car err) 'out-of-range))
-	  (snd-display ";make-max size==0 error message: ~A" err)))
+	  (snd-display "make-max size==0 error message: ~A" err)))
 
     (let ((gen (make-moving-norm 4))
 	  (v0 (make-float-vector 10))
@@ -12326,33 +12326,33 @@ EDITS: 2
 	(set! (v0 i) (moving-norm gen 1.0)))
       (let ((gen1 (make-moving-norm 4)))
 	(fill-float-vector v1 (if (moving-norm? gen1) (moving-norm gen1 1.0) -1.0)))
-      (if (not (mus-arrays-equal? v1 v0)) (snd-display ";map norm: ~A ~A" v0 v1))
-      (if (not (moving-norm? gen)) (snd-display ";~A not norm?" gen))
-      (if (not (= (mus-length gen) 4)) (snd-display ";norm length: ~D?" (mus-length gen)))
-      (if (not (= (mus-order gen) 4)) (snd-display ";norm order: ~D?" (mus-order gen))))
+      (if (not (mus-arrays-equal? v1 v0)) (snd-display "map norm: ~A ~A" v0 v1))
+      (if (not (moving-norm? gen)) (snd-display "~A not norm?" gen))
+      (if (not (= (mus-length gen) 4)) (snd-display "norm length: ~D?" (mus-length gen)))
+      (if (not (= (mus-order gen) 4)) (snd-display "norm order: ~D?" (mus-order gen))))
     
     (let* ((gen (make-moving-norm 8))
 	   (val (moving-norm gen)))
-      (if (fneq val 1.1236) (snd-display ";empty norm: ~A" val))
+      (if (fneq val 1.1236) (snd-display "empty norm: ~A" val))
       (set! val (moving-norm gen 1.0))
-      (if (fneq val 1.1084) (snd-display ";norm 1: ~A" val))
+      (if (fneq val 1.1084) (snd-display "norm 1: ~A" val))
       (set! val (moving-norm gen -0.5))
-      (if (fneq val 1.0952) (snd-display ";norm 2: ~A" val))
+      (if (fneq val 1.0952) (snd-display "norm 2: ~A" val))
       (set! val (moving-norm gen -1.5))
-      (if (fneq val 1.0222) (snd-display ";norm 2: ~A" val))
+      (if (fneq val 1.0222) (snd-display "norm 2: ~A" val))
       (do ((i 0 (+ i 1))) ((= i 5)) (set! val (moving-norm gen 0.0))) 
-      (if (fneq val 0.8261) (snd-display ";norm 6: ~A" val))
+      (if (fneq val 0.8261) (snd-display "norm 6: ~A" val))
       (set! val (moving-norm gen 0.0))
-      (if (fneq val 0.8047) (snd-display ";norm 7: ~A" val))
+      (if (fneq val 0.8047) (snd-display "norm 7: ~A" val))
       (set! val (moving-norm gen 0.0))
-      (if (fneq val 0.7866) (snd-display ";norm 8: ~A" val))
+      (if (fneq val 0.7866) (snd-display "norm 8: ~A" val))
       (set! val (moving-norm gen 0.0))
-      (if (fneq val 0.8841) (snd-display ";norm 9: ~A" val)))
+      (if (fneq val 0.8841) (snd-display "norm 9: ~A" val)))
 
     (let ((val (moving-norm (make-moving-norm 10 :initial-element .5) 0.5)))
-      (if (fneq val 1.0476) (snd-display ";norm initial-element: ~A" val)))
+      (if (fneq val 1.0476) (snd-display "norm initial-element: ~A" val)))
     (let ((val (moving-norm (make-moving-norm 3 :initial-contents '(1.0 1.0 1.0)) 1.0)))
-      (if (fneq val 1.0) (snd-display ";norm initial-contents: ~A" val)))
+      (if (fneq val 1.0) (snd-display "norm initial-contents: ~A" val)))
     
     (test-gen-equal (let ((d1 (make-moving-norm 3))) (moving-norm d1 1.0) d1)
 		    (let ((d2 (make-moving-norm 3))) (moving-norm d2 1.0) d2) 
@@ -12362,10 +12362,10 @@ EDITS: 2
 		    (make-moving-norm 4 :scaler 1.0))
     (let ((err (catch #t (lambda () (make-moving-norm :size -1)) (lambda args args))))
       (if (not (eq? (car err) 'out-of-range))
-	  (snd-display ";make-norm bad size error message: ~A" err)))
+	  (snd-display "make-norm bad size error message: ~A" err)))
     (let ((err (catch #t (lambda () (make-moving-norm :size 0)) (lambda args args))))
       (if (not (eq? (car err) 'out-of-range))
-	  (snd-display ";make-norm size==0 error message: ~A" err)))
+	  (snd-display "make-norm size==0 error message: ~A" err)))
 
 
     (let ((gen (make-comb .4 3))
@@ -12379,13 +12379,13 @@ EDITS: 2
 	(set! (v0 i) (comb gen 1.0)))
       (let ((gen1 (make-comb .4 3)))
 	(fill-float-vector v1 (if (comb? gen1) (comb gen1 1.0) -1.0)))
-      (if (not (mus-arrays-equal? v0 v1)) (snd-display ";map comb: ~A ~A" v0 v1))
-      (if (not (comb? gen)) (snd-display ";~A not comb?" gen))
-      (if (not (= (mus-length gen) 3)) (snd-display ";comb length: ~D?" (mus-length gen)))
-      (if (not (= (mus-order gen) 3)) (snd-display ";comb order: ~D?" (mus-order gen)))
-      (if (fneq (mus-feedback gen) .4) (snd-display ";comb feedback: ~F?" (mus-feedback gen)))
+      (if (not (mus-arrays-equal? v0 v1)) (snd-display "map comb: ~A ~A" v0 v1))
+      (if (not (comb? gen)) (snd-display "~A not comb?" gen))
+      (if (not (= (mus-length gen) 3)) (snd-display "comb length: ~D?" (mus-length gen)))
+      (if (not (= (mus-order gen) 3)) (snd-display "comb order: ~D?" (mus-order gen)))
+      (if (fneq (mus-feedback gen) .4) (snd-display "comb feedback: ~F?" (mus-feedback gen)))
       (if (or (fneq (v0 1) 0.0) (fneq (v0 4) 1.0) (fneq (v0 8) 1.4))
-	  (snd-display ";comb output: ~A" v0)))
+	  (snd-display "comb output: ~A" v0)))
     
     (test-gen-equal (let ((d1 (make-comb 0.7 3))) (comb d1 1.0) d1) 
 		    (let ((d2 (make-comb 0.7 3))) (comb d2 1.0) d2) 
@@ -12407,15 +12407,15 @@ EDITS: 2
 	   (i 0 (+ i 1)))
 	  ((= i 5)
 	   (if (not (mus-arrays-equal? v0 (float-vector 0.600 0.400 0.000 0.000 0.000))) ; this is assuming interpolation in the delay...
-	       (snd-display ";zcomb: ~A" v0)))
+	       (snd-display "zcomb: ~A" v0)))
 	(set! (v0 i) (comb del 0.0 0.4)))
       (comb del 1.0)
       (comb del 0.0 0.4)
       (if (not (string=? (mus-describe del) "comb scaler: 0.000, line[5,8, linear]: [0 0 1 0 0]"))
-	  (snd-display ";describe zcomb: ~A" (mus-describe del)))
+	  (snd-display "describe zcomb: ~A" (mus-describe del)))
       (set! (mus-feedback del) 1.0)
       (if (fneq (mus-feedback del) 1.0)
-	  (snd-display ";comb feedback set: ~A" (mus-feedback del))))
+	  (snd-display "comb feedback set: ~A" (mus-feedback del))))
     
     
     (let ((gen (make-filtered-comb .4 5 :filter (make-one-zero .3 .7))))
@@ -12429,11 +12429,11 @@ EDITS: 2
 	  (set! (v0 i) (filtered-comb gen val))
 	  (set! val 0.0))
 	(if (not (mus-arrays-equal? v0 (float-vector 0.000 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.000 0.120 0.280 0.000 0.000 0.000 0.014 0.067 0.078 0.000 0.000)))
-	    (snd-display ";filtered-comb: ~A" v0)))
-      (if (not (filtered-comb? gen)) (snd-display ";~A not filtered-comb?" gen))
-      (if (not (= (mus-length gen) 5)) (snd-display ";filtered-comb length: ~D?" (mus-length gen)))
-      (if (not (= (mus-order gen) 5)) (snd-display ";filtered-comb order: ~D?" (mus-order gen)))
-      (if (fneq (mus-feedback gen) .4) (snd-display ";filtered-comb feedback: ~F?" (mus-feedback gen))))
+	    (snd-display "filtered-comb: ~A" v0)))
+      (if (not (filtered-comb? gen)) (snd-display "~A not filtered-comb?" gen))
+      (if (not (= (mus-length gen) 5)) (snd-display "filtered-comb length: ~D?" (mus-length gen)))
+      (if (not (= (mus-order gen) 5)) (snd-display "filtered-comb order: ~D?" (mus-order gen)))
+      (if (fneq (mus-feedback gen) .4) (snd-display "filtered-comb feedback: ~F?" (mus-feedback gen))))
     
     (let ((gen (make-filtered-comb .9 5 :filter (make-one-zero .5 .5)))
 	  (v0 (make-float-vector 20)))
@@ -12446,7 +12446,7 @@ EDITS: 2
 	(set! (v0 i) (filtered-comb gen val))
 	(set! val 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.000 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.000 0.450 0.450 0.000 0.000 0.000 0.202 0.405 0.202 0.000 0.000)))
-	  (snd-display ";filtered-comb .5 .5: ~A" v0)))
+	  (snd-display "filtered-comb .5 .5: ~A" v0)))
     
     (let ((gen (make-filtered-comb .9 5 :filter (make-fir-filter 5 (float-vector .1 .2 .3 .2 .1))))
 	  (v0 (make-float-vector 20)))
@@ -12459,7 +12459,7 @@ EDITS: 2
 	(set! (v0 i) (filtered-comb gen val))
 	(set! val 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.000 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.000 0.090 0.180 0.270 0.180 0.090 0.008 0.032 0.081 0.130 0.154)))
-	  (snd-display ";filtered-comb fir: ~A" v0)))
+	  (snd-display "filtered-comb fir: ~A" v0)))
     
     (test-gen-equal (let ((d1 (make-filtered-comb 0.7 3 :filter (make-one-pole .3 .7)))) (filtered-comb d1 1.0) d1) 
 		    (let ((d2 (make-filtered-comb 0.7 3 :filter (make-one-pole .3 .7)))) (filtered-comb d2 1.0) d2) 
@@ -12481,16 +12481,16 @@ EDITS: 2
 	   (i 0 (+ i 1)))
 	  ((= i 5)
 	   (if (not (mus-arrays-equal? v0 (float-vector 0.600 0.400 0.000 0.000 0.000))) ; this is assuming interpolation in the delay...
-	       (snd-display ";zfiltered-comb: ~A" v0)))
+	       (snd-display "zfiltered-comb: ~A" v0)))
 	(set! (v0 i) (filtered-comb del 0.0 0.4)))
       (filtered-comb del 1.0)
       (filtered-comb del 0.0 0.4)
       (if (not (string=? (mus-describe del)
 			 "filtered-comb scaler: 0.000, line[5,8, linear]: [0 0 1 0 0], filter: [one-zero a0: 0.500, a1: 0.500, x1: 0.000]"))
-	  (snd-display ";describe zfiltered-comb: ~A" (mus-describe del)))
+	  (snd-display "describe zfiltered-comb: ~A" (mus-describe del)))
       (set! (mus-feedback del) 1.0)
       (if (fneq (mus-feedback del) 1.0)
-	  (snd-display ";filtered-comb feedback set: ~A" (mus-feedback del))))
+	  (snd-display "filtered-comb feedback set: ~A" (mus-feedback del))))
     
     
     (let ((gen (make-notch .4 3))
@@ -12502,16 +12502,16 @@ EDITS: 2
       (let ((v1 (make-float-vector 10)))
 	(let ((gen1 (make-notch .4 3)))
 	  (fill-float-vector v1 (if (notch? gen1) (notch gen1 1.0) -1.0)))
-	(if (not (mus-arrays-equal? v0 v1)) (snd-display ";map notch: ~A ~A" v0 v1)))
-      (if (not (notch? gen)) (snd-display ";~A not notch?" gen))
-      (if (not (= (mus-length gen) 3)) (snd-display ";notch length: ~D?" (mus-length gen)))
-      (if (not (= (mus-order gen) 3)) (snd-display ";notch order: ~D?" (mus-order gen)))
-      (if (fneq (mus-feedforward gen) .4) (snd-display ";notch feedforward: ~F?" (mus-feedforward gen)))
+	(if (not (mus-arrays-equal? v0 v1)) (snd-display "map notch: ~A ~A" v0 v1)))
+      (if (not (notch? gen)) (snd-display "~A not notch?" gen))
+      (if (not (= (mus-length gen) 3)) (snd-display "notch length: ~D?" (mus-length gen)))
+      (if (not (= (mus-order gen) 3)) (snd-display "notch order: ~D?" (mus-order gen)))
+      (if (fneq (mus-feedforward gen) .4) (snd-display "notch feedforward: ~F?" (mus-feedforward gen)))
       (if (or (fneq (v0 1) 0.4) (fneq (v0 4) 1.4) (fneq (v0 8) 1.4))
-	  (snd-display ";notch output: ~A" v0))
+	  (snd-display "notch output: ~A" v0))
       (set! (mus-feedforward gen) 1.0)
       (if (fneq (mus-feedforward gen) 1.0)
-	  (snd-display ";notch feedforward set: ~A" (mus-feedforward gen))))
+	  (snd-display "notch feedforward set: ~A" (mus-feedforward gen))))
     
     (test-gen-equal (let ((d1 (make-notch 0.7 3))) (notch d1 1.0) d1)
 		    (let ((d2 (make-notch 0.7 3))) (notch d2 1.0) d2)
@@ -12536,7 +12536,7 @@ EDITS: 2
 	(set! (v0 i) (comb gen in1))
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.000 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.000 0.500)))
-	  (snd-display ";comb (5 .5): ~A" v0)))
+	  (snd-display "comb (5 .5): ~A" v0)))
     
     (let ((gen (make-all-pass 0.5 0.0 5))
 	  (v0 (make-float-vector 11))
@@ -12546,7 +12546,7 @@ EDITS: 2
 	(set! (v0 i) (all-pass gen in1))
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.000 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.000 0.500)))
-	  (snd-display ";all-pass (5 0 .5): ~A" v0)))
+	  (snd-display "all-pass (5 0 .5): ~A" v0)))
     
     (let ((gen (make-notch 0.5 5))
 	  (v0 (make-float-vector 11))
@@ -12556,7 +12556,7 @@ EDITS: 2
 	(set! (v0 i) (notch gen in1))
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.500 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";notch (5 .5): ~A" v0)))
+	  (snd-display "notch (5 .5): ~A" v0)))
     
     (let ((gen (make-all-pass 0.0 0.5 5))
 	  (v0 (make-float-vector 11))
@@ -12566,7 +12566,7 @@ EDITS: 2
 	(set! (v0 i) (all-pass gen in1))
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.500 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";all-pass (5 .5 0): ~A" v0)))
+	  (snd-display "all-pass (5 .5 0): ~A" v0)))
     
     ;; make sure zall-pass is the same as zcomb/znotch given the appropriate feedback/forward and "pm" settings
     
@@ -12578,7 +12578,7 @@ EDITS: 2
 	(set! (v0 i) (comb gen in1))
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.000 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.000 0.500)))
-	  (snd-display ";1comb (5 .5): ~A" v0)))
+	  (snd-display "1comb (5 .5): ~A" v0)))
     
     (let ((gen (make-all-pass 0.5 0.0 5 :max-size 20))
 	  (v0 (make-float-vector 11))
@@ -12588,7 +12588,7 @@ EDITS: 2
 	(set! (v0 i) (all-pass gen in1))
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.000 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.000 0.500)))
-	  (snd-display ";1all-pass (5 0 .5): ~A" v0)))
+	  (snd-display "1all-pass (5 0 .5): ~A" v0)))
     
     (let ((gen (make-notch 0.5 5 :max-size 20))
 	  (v0 (make-float-vector 11))
@@ -12598,7 +12598,7 @@ EDITS: 2
 	(set! (v0 i) (notch gen in1))
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.500 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";1notch (5 .5): ~A" v0)))
+	  (snd-display "1notch (5 .5): ~A" v0)))
     
     (let ((gen (make-all-pass 0.0 0.5 5 :max-size 20))
 	  (v0 (make-float-vector 11))
@@ -12608,7 +12608,7 @@ EDITS: 2
 	(set! (v0 i) (all-pass gen in1))
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.500 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";1all-pass (5 .5 0): ~A" v0)))
+	  (snd-display "1all-pass (5 .5 0): ~A" v0)))
     
     ;; now actually use the size difference
     
@@ -12621,7 +12621,7 @@ EDITS: 2
 	(set! (v0 i) (comb gen in1 phase))
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.000 0.000 0.000 0.000 0.000 0.000 0.800 0.400 0.000 0.000 0.000 0.000 0.000 0.160 0.360 0.200 0.040 0.000 0.000 0.000)))
-	  (snd-display ";2comb (5 .5): ~A" v0)))
+	  (snd-display "2comb (5 .5): ~A" v0)))
     
     (let ((gen (make-all-pass 0.5 0.0 5 :max-size 20))
 	  (v0 (make-float-vector 20))
@@ -12632,7 +12632,7 @@ EDITS: 2
 	(set! (v0 i) (all-pass gen in1 angle))
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.000 0.000 0.000 0.000 0.000 0.000 0.800 0.400 0.000 0.000 0.000 0.000 0.000 0.160 0.360 0.200 0.040 0.000 0.000 0.000)))
-	  (snd-display ";2all-pass (5 0 .5): ~A" v0)))
+	  (snd-display "2all-pass (5 0 .5): ~A" v0)))
     
     (let ((gen (make-notch 0.5 5 :max-size 20))
 	  (v0 (make-float-vector 20))
@@ -12643,7 +12643,7 @@ EDITS: 2
 	(set! (v0 i) (notch gen in1 angle))
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.500 0.000 0.000 0.000 0.000 0.000 0.800 0.400 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";2notch (5 .5): ~A" v0)))
+	  (snd-display "2notch (5 .5): ~A" v0)))
     
     (let ((gen (make-all-pass 0.0 0.5 5 :max-size 20))
 	  (v0 (make-float-vector 20))
@@ -12654,7 +12654,7 @@ EDITS: 2
 	(set! (v0 i) (all-pass gen in1 angle))
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.500 0.000 0.000 0.000 0.000 0.000 0.800 0.400 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";2all-pass (5 .5 0): ~A" v0)))
+	  (snd-display "2all-pass (5 .5 0): ~A" v0)))
     
     (let ((gen (make-comb 0.5 5 :max-size 20))
 	  (v0 (make-float-vector 20))
@@ -12665,7 +12665,7 @@ EDITS: 2
 	(set! (v0 i) (comb gen in1 angle))
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.000 0.000 0.000 0.000 0.800 0.000 0.000 0.160 0.160 0.000 0.080 0.064 0.016 0.035 0.013 0.018 0.007 0.007 0.003 0.002)))
-	  (snd-display ";3comb (5 .5): ~A" v0)))
+	  (snd-display "3comb (5 .5): ~A" v0)))
     
     (let ((gen (make-all-pass 0.5 0.0 5 :max-size 20))
 	  (v0 (make-float-vector 20))
@@ -12676,7 +12676,7 @@ EDITS: 2
 	(set! (v0 i) (all-pass gen in1 angle))
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.000 0.000 0.000 0.000 0.800 0.000 0.000 0.160 0.160 0.000 0.080 0.064 0.016 0.035 0.013 0.018 0.007 0.007 0.003 0.002)))
-	  (snd-display ";3all-pass (5 0 .5): ~A" v0)))
+	  (snd-display "3all-pass (5 0 .5): ~A" v0)))
     
     (let ((gen (make-notch 0.5 5 :max-size 20))
 	  (v0 (make-float-vector 20))
@@ -12687,7 +12687,7 @@ EDITS: 2
 	(set! (v0 i) (notch gen in1 angle))
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.500 0.000 0.000 0.000 0.800 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";3notch (5 .5): ~A" v0)))
+	  (snd-display "3notch (5 .5): ~A" v0)))
     
     (let ((gen (make-all-pass 0.0 0.5 5 :max-size 20))
 	  (v0 (make-float-vector 20))
@@ -12698,7 +12698,7 @@ EDITS: 2
 	(set! (v0 i) (all-pass gen in1 angle))
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.500 0.000 0.000 0.000 0.800 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";3all-pass (5 .5 0): ~A" v0)))
+	  (snd-display "3all-pass (5 .5 0): ~A" v0)))
     
     (let ((gen (make-comb 0.5 5 :max-size 20))
 	  (v0 (make-float-vector 20))
@@ -12709,7 +12709,7 @@ EDITS: 2
 	(set! (v0 i) (comb gen in1 angle))
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.000 0.000 0.000 0.000 0.000 0.950 0.060 0.000 0.000 0.000 0.428 0.079 0.004 0.000 0.000 0.182 0.067 0.008 0.000 0.000)))
-	  (snd-display ";4comb (5 .5): ~A" v0)))
+	  (snd-display "4comb (5 .5): ~A" v0)))
     
     (let ((gen (make-all-pass 0.5 0.0 5 :max-size 20))
 	  (v0 (make-float-vector 20))
@@ -12720,7 +12720,7 @@ EDITS: 2
 	(set! (v0 i) (all-pass gen in1 angle))
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.000 0.000 0.000 0.000 0.000 0.950 0.060 0.000 0.000 0.000 0.428 0.079 0.004 0.000 0.000 0.182 0.067 0.008 0.000 0.000)))
-	  (snd-display ";4all-pass (5 0 .5): ~A" v0)))
+	  (snd-display "4all-pass (5 0 .5): ~A" v0)))
     
     (let ((gen (make-notch 0.5 5 :max-size 20))
 	  (v0 (make-float-vector 20))
@@ -12731,7 +12731,7 @@ EDITS: 2
 	(set! (v0 i) (notch gen in1 angle))
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.500 0.000 0.000 0.000 0.000 0.950 0.060 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";4notch (5 .5): ~A" v0)))
+	  (snd-display "4notch (5 .5): ~A" v0)))
     
     (let ((gen (make-all-pass 0.0 0.5 5 :max-size 20))
 	  (v0 (make-float-vector 20))
@@ -12742,7 +12742,7 @@ EDITS: 2
 	(set! (v0 i) (all-pass gen in1 angle))
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.500 0.000 0.000 0.000 0.000 0.950 0.060 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";4all-pass (5 .5 0): ~A" v0)))
+	  (snd-display "4all-pass (5 .5 0): ~A" v0)))
     
     ;; now run off either end of the delay line "by accident"
     
@@ -12755,7 +12755,7 @@ EDITS: 2
 	(set! (v0 i) (comb gen in1 angle))
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.500 1.000 0.250 0.125 0.094 0.062 0.055 0.047 0.039 0.031 0.029)))
-	  (snd-display ";5comb (5 .5): ~A" v0)))
+	  (snd-display "5comb (5 .5): ~A" v0)))
     
     (let ((gen (make-all-pass 0.5 0.0 5 :max-size 10))
 	  (v0 (make-float-vector 20))
@@ -12766,7 +12766,7 @@ EDITS: 2
 	(set! (v0 i) (all-pass gen in1 angle))
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.500 1.000 0.250 0.125 0.094 0.062 0.055 0.047 0.039 0.031 0.029)))
-	  (snd-display ";5all-pass (5 0 .5): ~A" v0)))
+	  (snd-display "5all-pass (5 0 .5): ~A" v0)))
     
     (let ((gen (make-notch 0.5 5 :max-size 10))
 	  (v0 (make-float-vector 20))
@@ -12777,7 +12777,7 @@ EDITS: 2
 	(set! (v0 i) (notch gen in1 angle))
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.500 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.500 1.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";5notch (5 .5): ~A" v0)))
+	  (snd-display "5notch (5 .5): ~A" v0)))
     
     (let ((gen (make-all-pass 0.0 0.5 5 :max-size 10))
 	  (v0 (make-float-vector 20))
@@ -12788,7 +12788,7 @@ EDITS: 2
 	(set! (v0 i) (all-pass gen in1 angle))
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.500 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.500 1.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";5all-pass (5 .5 0): ~A" v0)))
+	  (snd-display "5all-pass (5 .5 0): ~A" v0)))
     
     
     (let ((gen (make-comb 0.5 5 :max-size 10))
@@ -12800,7 +12800,7 @@ EDITS: 2
 	(set! (v0 i) (comb gen in1 angle))
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.000 0.000 0.000 0.500 0.000 0.125 0.000 0.031 0.016 0.004 1.000 0.000 0.250 0.031 0.000 0.012 0.002 0.250 0.125 0.008)))
-	  (snd-display ";6comb (5 .5): ~A" v0)))
+	  (snd-display "6comb (5 .5): ~A" v0)))
     
     (let ((gen (make-all-pass 0.5 0.0 5 :max-size 10))
 	  (v0 (make-float-vector 20))
@@ -12811,7 +12811,7 @@ EDITS: 2
 	(set! (v0 i) (all-pass gen in1 angle))
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.000 0.000 0.000 0.500 0.000 0.125 0.000 0.031 0.016 0.004 1.000 0.000 0.250 0.031 0.000 0.012 0.002 0.250 0.125 0.008)))
-	  (snd-display ";6all-pass (5 0 .5): ~A" v0)))
+	  (snd-display "6all-pass (5 0 .5): ~A" v0)))
     
     (let ((gen (make-notch 0.5 5 :max-size 10))
 	  (v0 (make-float-vector 20))
@@ -12822,7 +12822,7 @@ EDITS: 2
 	(set! (v0 i) (notch gen in1 angle))
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.500 0.000 0.000 0.500 0.000 0.000 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";6notch (5 .5): ~A" v0)))
+	  (snd-display "6notch (5 .5): ~A" v0)))
     
     (let ((gen (make-all-pass 0.0 0.5 5 :max-size 10))
 	  (v0 (make-float-vector 20))
@@ -12833,7 +12833,7 @@ EDITS: 2
 	(set! (v0 i) (all-pass gen in1 angle))
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.500 0.000 0.000 0.500 0.000 0.000 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";6all-pass (5 .5 0): ~A" v0)))
+	  (snd-display "6all-pass (5 .5 0): ~A" v0)))
     
     (let ((gen (make-filtered-comb 0.5 5 :filter (make-one-zero .5 .5)))
 	  (v0 (make-float-vector 21))
@@ -12844,7 +12844,7 @@ EDITS: 2
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.000 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.000 0.250 0.250 
 			       0.000 0.000 0.000 0.062 0.125 0.062 0.000 0.000 0.016)))
-	  (snd-display ";filtered-comb (5 .5): ~A" v0)))
+	  (snd-display "filtered-comb (5 .5): ~A" v0)))
     
     (let ((gen (make-filtered-comb 0.5 5 :filter (make-one-zero .25 .75)))
 	  (v0 (make-float-vector 21))
@@ -12855,7 +12855,7 @@ EDITS: 2
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.000 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.000 0.125 0.375 
 			       0.000 0.000 0.000 0.016 0.094 0.141 0.000 0.000 0.002)))
-	  (snd-display ";1filtered-comb (5 .5): ~A" v0)))
+	  (snd-display "1filtered-comb (5 .5): ~A" v0)))
     
     (let ((gen (make-filtered-comb 0.5 5 :filter (make-one-zero .25 .75)))
 	  (v0 (make-float-vector 21))
@@ -12866,7 +12866,7 @@ EDITS: 2
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.000 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.000 0.125 0.375 
 			       0.000 0.000 0.000 0.016 0.094 0.141 0.000 0.000 0.002)))
-	  (snd-display ";1run-filtered-comb (5 .5): ~A" v0)))
+	  (snd-display "1run-filtered-comb (5 .5): ~A" v0)))
     
     (let ((gen (make-filtered-comb 0.5 5 :max-size 20 :filter (make-one-zero .5 .5)))
 	  (v0 (make-float-vector 20))
@@ -12877,7 +12877,7 @@ EDITS: 2
 	(set! (v0 i) (filtered-comb gen in1 angle))
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.000 0.000 0.000 0.000 0.000 0.000 0.800 0.400 0.000 0.000 0.000 0.000 0.000 0.080 0.220 0.300 0.140 0.040 0.000 0.000)))
-	  (snd-display ";2filtered-comb (5 .5): ~A" v0)))
+	  (snd-display "2filtered-comb (5 .5): ~A" v0)))
     
     (let ((gen (make-filtered-comb 0.5 5 :max-size 20 :filter (make-one-zero .5 .5)))
 	  (v0 (make-float-vector 20))
@@ -12888,7 +12888,7 @@ EDITS: 2
 	(set! (v0 i) (filtered-comb gen in1 angle))
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.000 0.000 0.000 0.000 0.800 0.000 0.000 0.080 0.200 0.040 0.020 0.068 0.042 0.019 0.026 0.015 0.011 0.009 0.006 0.004)))
-	  (snd-display ";3filtered-comb (5 .5): ~A" v0)))
+	  (snd-display "3filtered-comb (5 .5): ~A" v0)))
     
     (let ((gen (make-filtered-comb 0.5 5 :max-size 20 :filter (make-one-zero .5 .5)))
 	  (v0 (make-float-vector 20))
@@ -12899,7 +12899,7 @@ EDITS: 2
 	(set! (v0 i) (filtered-comb gen in1 angle))
 	(set! in1 0.0))
       (if (not (mus-arrays-equal? v0 (float-vector 0.000 0.000 0.000 0.000 0.000 0.950 0.060 0.000 0.000 0.000 0.214 0.251 0.043 0.002 0.000 0.045 0.106 0.081 0.023 0.003)))
-	  (snd-display ";4filtered-comb (5 .5): ~A" v0)))
+	  (snd-display "4filtered-comb (5 .5): ~A" v0)))
     
     
     (let ((gen (make-one-pole .4 .7))
@@ -12913,19 +12913,19 @@ EDITS: 2
       (let ((v1 (make-float-vector 10)))
 	(let ((gen1 (make-one-pole .4 .7)))
 	  (fill-float-vector v1 (if (one-pole? gen) (one-pole gen1 1.0) -1.0)))
-	(if (not (mus-arrays-equal? v0 v1)) (snd-display ";map one-pole: ~A ~A" v0 v1)))
-      (if (not (one-pole? gen)) (snd-display ";~A not one-pole?" gen))
-      (if (not (= (mus-order gen) 1)) (snd-display ";one-pole order: ~D?" (mus-order gen)))
-      (if (fneq (mus-xcoeff gen 0) .4) (snd-display ";one-pole a0: ~F?" (mus-xcoeff gen 0)))
-      (if (fneq (mus-ycoeff gen 1) .7) (snd-display ";one-pole b1: ~F?" (mus-ycoeff gen 1)))
+	(if (not (mus-arrays-equal? v0 v1)) (snd-display "map one-pole: ~A ~A" v0 v1)))
+      (if (not (one-pole? gen)) (snd-display "~A not one-pole?" gen))
+      (if (not (= (mus-order gen) 1)) (snd-display "one-pole order: ~D?" (mus-order gen)))
+      (if (fneq (mus-xcoeff gen 0) .4) (snd-display "one-pole a0: ~F?" (mus-xcoeff gen 0)))
+      (if (fneq (mus-ycoeff gen 1) .7) (snd-display "one-pole b1: ~F?" (mus-ycoeff gen 1)))
       (if (or (fneq (v0 1) 0.120) (fneq (v0 4) 0.275) (fneq (v0 8) 0.245))
-	  (snd-display ";one-pole output: ~A" v0))
-      (if (fneq (mus-ycoeff gen 1) .7) (snd-display ";1p ycoeff 1 .7: ~A" gen))
+	  (snd-display "one-pole output: ~A" v0))
+      (if (fneq (mus-ycoeff gen 1) .7) (snd-display "1p ycoeff 1 .7: ~A" gen))
       (set! (mus-ycoeff gen 1) .1)
-      (if (fneq (mus-ycoeff gen 1) .1) (snd-display ";1p set ycoeff 1 .1: ~A" gen))
-      (if (fneq (mus-xcoeff gen 0) .4) (snd-display ";1p xcoeff 0 .4: ~A" gen))
+      (if (fneq (mus-ycoeff gen 1) .1) (snd-display "1p set ycoeff 1 .1: ~A" gen))
+      (if (fneq (mus-xcoeff gen 0) .4) (snd-display "1p xcoeff 0 .4: ~A" gen))
       (set! (mus-xcoeff gen 0) .3)
-      (if (fneq (mus-xcoeff gen 0) .3) (snd-display ";1p set xcoeff 0 .3: ~A" gen)))
+      (if (fneq (mus-xcoeff gen 0) .3) (snd-display "1p set xcoeff 0 .3: ~A" gen)))
     
     
     (let ((gen (make-one-zero .4 .7))
@@ -12939,15 +12939,15 @@ EDITS: 2
       (let ((v1 (make-float-vector 10)))
 	(let ((gen1 (make-one-zero .4 .7)))
 	  (fill-float-vector v1 (if (one-zero? gen) (one-zero gen1 1.0) -1.0)))
-	(if (not (mus-arrays-equal? v0 v1)) (snd-display ";map one-zero: ~A ~A" v0 v1)))
-      (if (not (one-zero? gen)) (snd-display ";~A not one-zero?" gen))
-      (if (not (= (mus-order gen) 1)) (snd-display ";one-zero order: ~D?" (mus-order gen)))
-      (if (fneq (mus-xcoeff gen 0) .4) (snd-display ";one-zero a0: ~F?" (mus-xcoeff gen 0)))
-      (if (fneq (mus-xcoeff gen 1) .7) (snd-display ";one-zero a1: ~F?" (mus-xcoeff gen 1)))
-      (if (fneq (v0 1) 1.1) (snd-display ";one-zero output: ~A" v0))
-      (if (fneq (mus-xcoeff gen 0) .4) (snd-display ";1z xcoeff 0 .4: ~A" gen))
+	(if (not (mus-arrays-equal? v0 v1)) (snd-display "map one-zero: ~A ~A" v0 v1)))
+      (if (not (one-zero? gen)) (snd-display "~A not one-zero?" gen))
+      (if (not (= (mus-order gen) 1)) (snd-display "one-zero order: ~D?" (mus-order gen)))
+      (if (fneq (mus-xcoeff gen 0) .4) (snd-display "one-zero a0: ~F?" (mus-xcoeff gen 0)))
+      (if (fneq (mus-xcoeff gen 1) .7) (snd-display "one-zero a1: ~F?" (mus-xcoeff gen 1)))
+      (if (fneq (v0 1) 1.1) (snd-display "one-zero output: ~A" v0))
+      (if (fneq (mus-xcoeff gen 0) .4) (snd-display "1z xcoeff 0 .4: ~A" gen))
       (set! (mus-xcoeff gen 0) .1)
-      (if (fneq (mus-xcoeff gen 0) .1) (snd-display ";1z set xcoeff 0 .1: ~A" gen)))
+      (if (fneq (mus-xcoeff gen 0) .1) (snd-display "1z set xcoeff 0 .1: ~A" gen)))
     
     (let ((gen (make-two-zero .4 .7 .3))
 	  (v0 (make-float-vector 10)))
@@ -12960,37 +12960,37 @@ EDITS: 2
       (let ((v1 (make-float-vector 10)))
 	(let ((gen1 (make-two-zero .4 .7 .3)))
 	  (fill-float-vector v1 (if (two-zero? gen1) (two-zero gen1 1.0) -1.0)))
-	(if (not (mus-arrays-equal? v0 v1)) (snd-display ";map two-zero: ~A ~A" v0 v1)))
-      (if (not (two-zero? gen)) (snd-display ";~A not two-zero?" gen))
-      (if (not (= (mus-order gen) 2)) (snd-display ";two-zero order: ~D?" (mus-order gen)))
-      (if (fneq (mus-xcoeff gen 0) .4) (snd-display ";two-zero a0: ~F?" (mus-xcoeff gen 0)))
-      (if (fneq (mus-xcoeff gen 1) .7) (snd-display ";two-zero a1: ~F?" (mus-xcoeff gen 1)))
-      (if (fneq (mus-xcoeff gen 2) .3) (snd-display ";two-zero a2: ~F?" (mus-xcoeff gen 2)))
-      (if (or (fneq (v0 1) 1.1) (fneq (v0 8) 1.4)) (snd-display ";two-zero output: ~A" v0))
-      (if (fneq (mus-xcoeff gen 0) .4) (snd-display ";2z xcoeff 0 .4: ~A" gen))
+	(if (not (mus-arrays-equal? v0 v1)) (snd-display "map two-zero: ~A ~A" v0 v1)))
+      (if (not (two-zero? gen)) (snd-display "~A not two-zero?" gen))
+      (if (not (= (mus-order gen) 2)) (snd-display "two-zero order: ~D?" (mus-order gen)))
+      (if (fneq (mus-xcoeff gen 0) .4) (snd-display "two-zero a0: ~F?" (mus-xcoeff gen 0)))
+      (if (fneq (mus-xcoeff gen 1) .7) (snd-display "two-zero a1: ~F?" (mus-xcoeff gen 1)))
+      (if (fneq (mus-xcoeff gen 2) .3) (snd-display "two-zero a2: ~F?" (mus-xcoeff gen 2)))
+      (if (or (fneq (v0 1) 1.1) (fneq (v0 8) 1.4)) (snd-display "two-zero output: ~A" v0))
+      (if (fneq (mus-xcoeff gen 0) .4) (snd-display "2z xcoeff 0 .4: ~A" gen))
       (set! (mus-xcoeff gen 0) .1)
-      (if (fneq (mus-xcoeff gen 0) .1) (snd-display ";2z set xcoeff 0 .1: ~A" gen))
+      (if (fneq (mus-xcoeff gen 0) .1) (snd-display "2z set xcoeff 0 .1: ~A" gen))
       (set! (mus-xcoeff gen 0) 1.0)
       (let ((r (mus-scaler gen)))
 	(set! (mus-frequency gen) 500.0)
-	(if (ffneq (mus-frequency gen) 500.0) (snd-display ";set mus-frequency two-zero: ~A" (mus-frequency gen)))
-	(if (fneq (mus-scaler gen) r) (snd-display ";set mus-frequency two-zero hit r: ~A" (mus-scaler gen))))
+	(if (ffneq (mus-frequency gen) 500.0) (snd-display "set mus-frequency two-zero: ~A" (mus-frequency gen)))
+	(if (fneq (mus-scaler gen) r) (snd-display "set mus-frequency two-zero hit r: ~A" (mus-scaler gen))))
       (set! (mus-scaler gen) .99)
-      (if (fneq (mus-scaler gen) .99) (snd-display ";set mus-scaler two-zero: ~A" (mus-scaler gen)))
-      (if (ffneq (mus-frequency gen) 500.0) (snd-display ";set mus-scaler hit freq two-zero: ~A" (mus-frequency gen)))
+      (if (fneq (mus-scaler gen) .99) (snd-display "set mus-scaler two-zero: ~A" (mus-scaler gen)))
+      (if (ffneq (mus-frequency gen) 500.0) (snd-display "set mus-scaler hit freq two-zero: ~A" (mus-frequency gen)))
       (let ((g3 (make-two-zero :radius .99 :frequency 500.0)))
 	(if (or (fneq (mus-xcoeff gen 0) (mus-xcoeff g3 0))
 		(fneq (mus-xcoeff gen 1) (mus-xcoeff g3 1))
 		(fneq (mus-xcoeff gen 2) (mus-xcoeff g3 2)))
-	    (snd-display ";two-zero setters: ~A ~A" gen g3))))
+	    (snd-display "two-zero setters: ~A ~A" gen g3))))
     
     (let* ((gen (make-two-zero .4 .7 .3))
 	   (val (gen 1.0)))
-      (if (fneq val .4) (snd-display ";2zero->0.4: ~A" val))
+      (if (fneq val .4) (snd-display "2zero->0.4: ~A" val))
       (set! val (gen 0.5))
-      (if (fneq val .9) (snd-display ";2zero->0.9: ~A" val))
+      (if (fneq val .9) (snd-display "2zero->0.9: ~A" val))
       (set! val (gen 1.0))
-      (if (fneq val 1.05) (snd-display ";2zero->1.05: ~A" val)))
+      (if (fneq val 1.05) (snd-display "2zero->1.05: ~A" val)))
     
     (let ((gen (make-two-pole .4 .7 .3))
 	  (v0 (make-float-vector 10)))
@@ -13003,40 +13003,40 @@ EDITS: 2
       (let ((v1 (make-float-vector 10)))
 	(let ((gen1 (make-two-pole .4 .7 .3)))
 	  (fill-float-vector v1 (if (two-pole? gen1) (two-pole gen1 1.0) -1.0)))
-	(if (not (mus-arrays-equal? v0 v1)) (snd-display ";map two-pole: ~A ~A" v0 v1)))
-      (if (not (two-pole? gen)) (snd-display ";~A not two-pole?" gen))
-      (if (not (= (mus-order gen) 2)) (snd-display ";two-pole order: ~D?" (mus-order gen)))
-      (if (fneq (mus-xcoeff gen 0) .4) (snd-display ";two-pole a0: ~F?" (mus-xcoeff gen 0)))
-      (if (fneq (mus-ycoeff gen 1) .7) (snd-display ";two-pole b1: ~F?" (mus-ycoeff gen 1)))
-      (if (fneq (mus-ycoeff gen 2) .3) (snd-display ";two-pole b2: ~F?" (mus-ycoeff gen 2)))
-      (if (or (fneq (v0 1) 0.12) (fneq (v0 8) 0.201)) (snd-display ";two-pole output: ~A" v0))
-      (if (fneq (mus-ycoeff gen 1) .7) (snd-display ";2p ycoeff 1 .7: ~A" gen))
+	(if (not (mus-arrays-equal? v0 v1)) (snd-display "map two-pole: ~A ~A" v0 v1)))
+      (if (not (two-pole? gen)) (snd-display "~A not two-pole?" gen))
+      (if (not (= (mus-order gen) 2)) (snd-display "two-pole order: ~D?" (mus-order gen)))
+      (if (fneq (mus-xcoeff gen 0) .4) (snd-display "two-pole a0: ~F?" (mus-xcoeff gen 0)))
+      (if (fneq (mus-ycoeff gen 1) .7) (snd-display "two-pole b1: ~F?" (mus-ycoeff gen 1)))
+      (if (fneq (mus-ycoeff gen 2) .3) (snd-display "two-pole b2: ~F?" (mus-ycoeff gen 2)))
+      (if (or (fneq (v0 1) 0.12) (fneq (v0 8) 0.201)) (snd-display "two-pole output: ~A" v0))
+      (if (fneq (mus-ycoeff gen 1) .7) (snd-display "2p ycoeff 1 .7: ~A" gen))
       (set! (mus-ycoeff gen 1) .1)
-      (if (fneq (mus-ycoeff gen 1) .1) (snd-display ";2p set ycoeff 1 .1: ~A" gen))
-      (if (fneq (mus-xcoeff gen 0) .4) (snd-display ";2p xcoeff 0 .4: ~A" gen))
+      (if (fneq (mus-ycoeff gen 1) .1) (snd-display "2p set ycoeff 1 .1: ~A" gen))
+      (if (fneq (mus-xcoeff gen 0) .4) (snd-display "2p xcoeff 0 .4: ~A" gen))
       (set! (mus-xcoeff gen 0) .3)
-      (if (fneq (mus-xcoeff gen 0) .3) (snd-display ";2p set xcoeff 0 .3: ~A" gen))
+      (if (fneq (mus-xcoeff gen 0) .3) (snd-display "2p set xcoeff 0 .3: ~A" gen))
       (set! (mus-xcoeff gen 0) 1.0)
       (let ((r (mus-scaler gen)))
 	(set! (mus-frequency gen) 500.0)
-	(if (ffneq (mus-frequency gen) 500.0) (snd-display ";set mus-frequency two-pole: ~A" (mus-frequency gen)))
-	(if (fneq (mus-scaler gen) r) (snd-display ";set mus-frequency two-pole hit r: ~A" (mus-scaler gen))))
+	(if (ffneq (mus-frequency gen) 500.0) (snd-display "set mus-frequency two-pole: ~A" (mus-frequency gen)))
+	(if (fneq (mus-scaler gen) r) (snd-display "set mus-frequency two-pole hit r: ~A" (mus-scaler gen))))
       (set! (mus-scaler gen) .99)
-      (if (fneq (mus-scaler gen) .99) (snd-display ";set mus-scaler two-pole: ~A" (mus-scaler gen)))
-      (if (ffneq (mus-frequency gen) 500.0) (snd-display ";set mus-scaler hit freq two-pole: ~A" (mus-frequency gen)))
+      (if (fneq (mus-scaler gen) .99) (snd-display "set mus-scaler two-pole: ~A" (mus-scaler gen)))
+      (if (ffneq (mus-frequency gen) 500.0) (snd-display "set mus-scaler hit freq two-pole: ~A" (mus-frequency gen)))
       (let ((g3 (make-two-pole :radius .99 :frequency 500.0)))
 	(if (or (fneq (mus-xcoeff gen 0) (mus-xcoeff g3 0))
 		(fneq (mus-ycoeff gen 1) (mus-ycoeff g3 1))
 		(fneq (mus-ycoeff gen 2) (mus-ycoeff g3 2)))
-	    (snd-display ";two-pole setters: ~A ~A" gen g3))))
+	    (snd-display "two-pole setters: ~A ~A" gen g3))))
     
     (let* ((gen (make-two-pole .4 .7 .3))
 	   (val (gen 1.0)))
-      (if (fneq val .4) (snd-display ";a0->out 2pole: ~A" val))
+      (if (fneq val .4) (snd-display "a0->out 2pole: ~A" val))
       (set! val (gen 0.5))
-      (if (fneq val -.08) (snd-display ";a0->out 2pole (-0.08): ~A" val))
+      (if (fneq val -.08) (snd-display "a0->out 2pole (-0.08): ~A" val))
       (set! val (gen 1.0))
-      (if (fneq val 0.336) (snd-display ";a0->out 2pole (0.336): ~A" val)))
+      (if (fneq val 0.336) (snd-display "a0->out 2pole (0.336): ~A" val)))
     
     (let ((gen (make-oscil 440.0))
 	  (v0 (make-float-vector 10))
@@ -13052,22 +13052,22 @@ EDITS: 2
       (let ((v2 (make-float-vector 10)))
 	(let ((gen2 (make-oscil 440.0)))
 	  (fill-float-vector v2 (if (oscil? gen2) (oscil gen2 0.0) -1.0)))
-	(if (not (mus-arrays-equal? v0 v2)) (snd-display ";map oscil: ~A ~A" v0 v2)))
-      (if (not (oscil? gen)) (snd-display ";~A not oscil?" gen))
-      (if (fneq (mus-phase gen) 1.253787) (snd-display ";oscil phase: ~F?" (mus-phase gen)))
-      (if (fneq (mus-frequency gen) 440.0) (snd-display ";oscil frequency: ~F?" (mus-frequency gen)))
-      (if (not (= (mus-length gen) 1)) (snd-display ";oscil cosines: ~D?" (mus-length gen)))
-      (if (or (fneq (v0 1) 0.125) (fneq (v0 8) 0.843)) (snd-display ";oscil output: ~A" v0))
+	(if (not (mus-arrays-equal? v0 v2)) (snd-display "map oscil: ~A ~A" v0 v2)))
+      (if (not (oscil? gen)) (snd-display "~A not oscil?" gen))
+      (if (fneq (mus-phase gen) 1.253787) (snd-display "oscil phase: ~F?" (mus-phase gen)))
+      (if (fneq (mus-frequency gen) 440.0) (snd-display "oscil frequency: ~F?" (mus-frequency gen)))
+      (if (not (= (mus-length gen) 1)) (snd-display "oscil cosines: ~D?" (mus-length gen)))
+      (if (or (fneq (v0 1) 0.125) (fneq (v0 8) 0.843)) (snd-display "oscil output: ~A" v0))
       (set! (mus-phase gen) 0.0)
-      (if (fneq (mus-phase gen) 0.0) (snd-display ";oscil set-phase: ~F?" (mus-phase gen)))
+      (if (fneq (mus-phase gen) 0.0) (snd-display "oscil set-phase: ~F?" (mus-phase gen)))
       (set! (mus-frequency gen) 100.0)
-      (if (fneq (mus-frequency gen) 100.0) (snd-display ";oscil set-frequency: ~F?" (mus-frequency gen)))
+      (if (fneq (mus-frequency gen) 100.0) (snd-display "oscil set-frequency: ~F?" (mus-frequency gen)))
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
 	(if (fneq (v0 i) (v1 i))
-	    (snd-display ";mus-apply oscil at ~D: ~A ~A?" i (v0 i) (v1 i))))
+	    (snd-display "mus-apply oscil at ~D: ~A ~A?" i (v0 i) (v1 i))))
       (if (fneq (mus-apply) 0.0)
-	  (snd-display ";(mus-apply): ~A" (mus-apply))))
+	  (snd-display "(mus-apply): ~A" (mus-apply))))
 
     ;; we can't (or don't anyway) guarantee optimized arg order evaluation so:
     (let ((o (make-oscil 1000.0)) 
@@ -13118,7 +13118,7 @@ EDITS: 2
 	 (i 0 (+ i 1)))
 	((= i 100)
 	 (if (fneq mx 0.0)
-	     (snd-display ";oscil +-: ~A" mx)))
+	     (snd-display "oscil +-: ~A" mx)))
       (set! mx (max mx (abs (+ (gen1) (gen2))))))
     
     (do ((gen1 (make-oscil 100.0 (* pi 0.5)))
@@ -13127,26 +13127,26 @@ EDITS: 2
 	 (i 0 (+ i 1)))
 	((= i 100)
 	 (if (fneq mx 0.0)
-	     (snd-display ";cosil +-: ~A" mx)))
+	     (snd-display "cosil +-: ~A" mx)))
       (set! mx (max mx (abs (- (gen1) (gen2))))))
     
     (let ((frqs (float-vector 0.0 0.0))
 	  (amps (float-vector 0.0 0.0))
 	  (phs (float-vector 0.0 0.0)))
       (let ((ob (make-oscil-bank frqs phs amps)))
-	(if (not (oscil-bank? ob)) (snd-display ";oscil-bank? ~A" ob))
-	(if (not (equal? (mus-data ob) phs)) (snd-display ";oscil-bank data: ~A ~A" (mus-data ob) phs))
+	(if (not (oscil-bank? ob)) (snd-display "oscil-bank? ~A" ob))
+	(if (not (equal? (mus-data ob) phs)) (snd-display "oscil-bank data: ~A ~A" (mus-data ob) phs))
 	(let ((x (oscil-bank ob)))
-	  (if (not (= x 0.0)) (snd-display ";oscil-bank 0.0: ~A~%" x)))
+	  (if (not (= x 0.0)) (snd-display "oscil-bank 0.0: ~A~%" x)))
 	(set! (amps 0) 0.5)
 	(set! (amps 1) 0.2)
 	(let ((x (oscil-bank ob)))
-	  (if (not (= x 0.0)) (snd-display ";oscil-bank 0.0 (amps): ~A~%" x)))
+	  (if (not (= x 0.0)) (snd-display "oscil-bank 0.0 (amps): ~A~%" x)))
 	(set! (frqs 0) .1)
 	(set! (frqs 1) .2)
 	(oscil-bank ob)
 	(let ((x (oscil-bank ob)))
-	  (if (not (morally-equal? x 0.08965057448242633)) (snd-display ";oscil-bank 0.09: ~A~%" x)))))
+	  (if (not (morally-equal? x 0.08965057448242633)) (snd-display "oscil-bank 0.09: ~A~%" x)))))
     
     (for-each fm-test (vector (make-oscil) (make-nrxysin) (make-nrxycos) (make-square-wave) (make-triangle-wave) (make-ncos)
 			      (make-nsin) (make-sawtooth-wave) (make-rand) (make-rand-interp) (make-pulse-train)))
@@ -13158,7 +13158,7 @@ EDITS: 2
       (let ((oval (oscil gen .1))
 	    (mval (mus-run gen1 .1)))
 	(if (fneq oval mval)
-	    (snd-display ";mus-run ~A but oscil ~A?" mval oval))))
+	    (snd-display "mus-run ~A but oscil ~A?" mval oval))))
     
     (let ((gen (make-oscil 440.0))
 	  (gen1 (make-oscil 440.0))
@@ -13172,11 +13172,11 @@ EDITS: 2
 	(set! (v0 i) (oscil gen (* fm-index (oscil gen1 0.0))))
 	(set! (v1 i) (mus-apply gen2 (* fm-index (mus-apply gen3 0.0 0.0)) 0.0)))
       (if (or (fneq (v0 1) 0.125) (fneq (v0 6) 0.830) (fneq (v0 8) 0.987))
-	  (snd-display ";oscil fm output: ~A" v0))
+	  (snd-display "oscil fm output: ~A" v0))
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
 	(if (fneq (v0 i) (v1 i))
-	    (snd-display ";mus-apply fm oscil at ~D: ~A ~A?" i (v0 i) (v1 i)))))
+	    (snd-display "mus-apply fm oscil at ~D: ~A ~A?" i (v0 i) (v1 i)))))
     
     (test-gen-equal (make-oscil 440.0) (make-oscil 440.0) (make-oscil 100.0))
     (test-gen-equal (make-oscil 440.0) (make-oscil 440.0) (make-oscil 440.0 1.0))
@@ -13188,7 +13188,7 @@ EDITS: 2
 	 (i 0 (+ i 1)))
 	((= i 10)
 	 (if (or (fneq (v0 1) 0.367) (fneq (v0 6) 0.854) (fneq (v0 8) 0.437))
-	     (snd-display ";oscil pm output: ~A" v0)))
+	     (snd-display "oscil pm output: ~A" v0)))
       (set! (v0 i) (gen 0.0 (* pm-index (gen1 0.0)))))
     
     (do ((gen (make-oscil 440.0))
@@ -13197,7 +13197,7 @@ EDITS: 2
       (let ((val1 (sin (mus-phase gen)))
 	    (val2 (gen 0.0)))
 	(if (fneq val1 val2)
-	    (snd-display ";oscil: ~A: ~A ~A" i val1 val2))))
+	    (snd-display "oscil: ~A: ~A ~A" i val1 val2))))
     
     (do ((gen (make-oscil 440.0 :initial-phase (* pi 0.5)))
 	 (incr (/ (* 2 pi 440.0) 22050.0))
@@ -13207,7 +13207,7 @@ EDITS: 2
       (let ((val1 (cos a))
 	    (val2 (gen 0.0)))
 	(if (fneq val1 val2)
-	    (snd-display ";oscil (cos): ~A: ~A ~A" i val1 val2))))
+	    (snd-display "oscil (cos): ~A: ~A ~A" i val1 val2))))
     
     (do ((gen (make-oscil 0.0))
 	 (gen1 (make-oscil 40.0))
@@ -13218,7 +13218,7 @@ EDITS: 2
       (let ((val1 (sin (sin a)))
 	    (val2 (oscil gen 0.0 (oscil gen1 0.0))))
 	(if (fneq val1 val2)
-	    (snd-display ";oscil pm: ~A: ~A ~A" i val1 val2))))
+	    (snd-display "oscil pm: ~A: ~A ~A" i val1 val2))))
     
     (do ((gen (make-oscil 0.0))
 	 (gen1 (make-oscil 40.0))
@@ -13232,7 +13232,7 @@ EDITS: 2
 	    (val2 (oscil gen (oscil gen1 0.0))))
 	(set! a1 (+ a1 fm))
 	(if (fneq val1 val2)
-	    (snd-display ";oscil fm: ~A: ~A ~A" i val1 val2))))
+	    (snd-display "oscil fm: ~A: ~A ~A" i val1 val2))))
     
     (let ()
       (define (oscil-1-1)
@@ -13249,7 +13249,7 @@ EDITS: 2
 	      ((= i 10))
 	    (set! (v1 i) (oscil osc)))
 	  (if (not (equal? v1 v2))
-	      (snd-display ";oscil-1 shadowing test1: ~A ~A" v1 v2))))
+	      (snd-display "oscil-1 shadowing test1: ~A ~A" v1 v2))))
       
       (define (oscil-1-2)
 	(define (ho-1 osc v i)
@@ -13267,7 +13267,7 @@ EDITS: 2
 	      ((= i 10))
 	    (set! (v1 i) (oscil o1)))
 	  (if (not (equal? v1 v2))
-	      (snd-display ";oscil-1 shadowing test2: ~A ~A" v1 v2))))
+	      (snd-display "oscil-1 shadowing test2: ~A ~A" v1 v2))))
       
       (define (oscil-1-3)
 	(define (ho)
@@ -13287,7 +13287,7 @@ EDITS: 2
 	      ((= i 10))
 	    (set! (v1 i) (o1)))
 	  (if (not (equal? v1 v2))
-	      (snd-display ";oscil-1 shadowing test3: ~A ~A" v1 v2))))
+	      (snd-display "oscil-1 shadowing test3: ~A ~A" v1 v2))))
       
       (oscil-1-1)
       (oscil-1-2)
@@ -13296,27 +13296,27 @@ EDITS: 2
     
     (let ((var (catch #t (lambda () (mus-location (make-oscil))) (lambda args args))))
       (if (not (eq? (car var) 'mus-error))
-	  (snd-display ";mus-location bad gen: ~A" var)))
+	  (snd-display "mus-location bad gen: ~A" var)))
     (let ((var (catch #t (lambda () (set! (mus-location (make-oscil)) 0)) (lambda args args))))
       (if (not (eq? (car var) 'mus-error))
-	  (snd-display ";set mus-location bad gen: ~A" var)))
+	  (snd-display "set mus-location bad gen: ~A" var)))
     (let ((var (catch #t (lambda () (set! (mus-scaler (make-oscil)) 0)) (lambda args args))))
       (if (not (eq? (car var) 'mus-error))
-	  (snd-display ";set mus-scaler bad gen: ~A" var)))
+	  (snd-display "set mus-scaler bad gen: ~A" var)))
     (let ((var (catch #t (lambda () (mus-frequency (make-one-pole))) (lambda args args))))
       (if (not (eq? (car var) 'mus-error))
-	  (snd-display ";mus-frequency bad gen: ~A" var)))
+	  (snd-display "mus-frequency bad gen: ~A" var)))
     (let ((var (catch #t (lambda () (set! (mus-frequency (make-one-pole)) 0)) (lambda args args))))
       (if (not (eq? (car var) 'mus-error))
-	  (snd-display ";set mus-frequency bad gen: ~A" var)))
+	  (snd-display "set mus-frequency bad gen: ~A" var)))
     (let ((var (catch #t (lambda () (make-delay 41943040)) ;(* 1024 1024 40)
 		      (lambda args args))))
       (if (not (eq? (car var) 'out-of-range))
-	  (snd-display ";make-delay huge line: ~A" var)))
+	  (snd-display "make-delay huge line: ~A" var)))
     (let ((var (catch #t (lambda () (make-delay 32 :max-size 41943040)) ;(* 1024 1024 40))
 		      (lambda args args))))
       (if (not (eq? (car var) 'out-of-range))
-	  (snd-display ";make-delay huge line: ~A" var)))
+	  (snd-display "make-delay huge line: ~A" var)))
     
     (let ((size 1000))
       
@@ -13340,7 +13340,7 @@ EDITS: 2
       (let ((v1 (with-sound ((make-float-vector size) :srate 441000) (test-pm 0 size 20 1 1 1)))
 	    (v2 (with-sound ((make-float-vector size) :srate 441000) (test-fm 0 size 20 1 1 1))))
 	(if (not (mus-arrays-equal? v1 v2))
-	    (snd-display ";fm/pm peak diff (1 1): ~A" (float-vector-peak (float-vector-subtract! v1 v2)))))
+	    (snd-display "fm/pm peak diff (1 1): ~A" (float-vector-peak (float-vector-subtract! v1 v2)))))
       
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
@@ -13349,7 +13349,7 @@ EDITS: 2
 	  (let ((v1 (with-sound ((make-float-vector size) :srate 441000) (test-pm 0 size 20 1 ratio index)))
 		(v2 (with-sound ((make-float-vector size) :srate 441000) (test-fm 0 size 20 1 ratio index))))
 	    (if (not (mus-arrays-equal? v1 v2))
-		(snd-display ";fm/pm peak diff ~A ~A: ~A" ratio index (float-vector-peak (float-vector-subtract! v1 v2))))))))
+		(snd-display "fm/pm peak diff ~A ~A: ~A" ratio index (float-vector-peak (float-vector-subtract! v1 v2))))))))
     
     (let ((gen (make-ncos 440.0 10))
 	  (v0 (make-float-vector 10)))
@@ -13362,17 +13362,17 @@ EDITS: 2
       (let ((v1 (make-float-vector 10)))
 	(let ((gen1 (make-ncos 440.0 10)))
 	  (fill-float-vector v1 (if (ncos? gen1) (ncos gen1 0.0) -1.0)))
-	(if (not (mus-arrays-equal? v0 v1)) (snd-display ";map ncos: ~A ~A" v0 v1)))
-      (if (not (ncos? gen)) (snd-display ";~A not ncos?" gen))
-      (if (fneq (mus-phase gen) 1.253787) (snd-display ";ncos phase: ~F?" (mus-phase gen)))
-      (if (fneq (mus-frequency gen) 440.0) (snd-display ";ncos frequency: ~F?" (mus-frequency gen)))
-      (if (fneq (mus-scaler gen) .1) (snd-display ";ncos scaler: ~F?" (mus-scaler gen)))
+	(if (not (mus-arrays-equal? v0 v1)) (snd-display "map ncos: ~A ~A" v0 v1)))
+      (if (not (ncos? gen)) (snd-display "~A not ncos?" gen))
+      (if (fneq (mus-phase gen) 1.253787) (snd-display "ncos phase: ~F?" (mus-phase gen)))
+      (if (fneq (mus-frequency gen) 440.0) (snd-display "ncos frequency: ~F?" (mus-frequency gen)))
+      (if (fneq (mus-scaler gen) .1) (snd-display "ncos scaler: ~F?" (mus-scaler gen)))
       (unless (= (mus-length gen) 10)
-	(snd-display ";ncos n: ~D?" (mus-length gen)))
-      (if (or (fneq (v0 1) 0.722) (fneq (v0 8) -0.143)) (snd-display ";ncos output: ~A" v0))
-      (set! (mus-scaler gen) .5) (if (fneq (mus-scaler gen) 0.5) (snd-display ";ncos set-scaler: ~F?" (mus-scaler gen)))
-      (set! (mus-length gen) 5) (if (not (= (mus-length gen) 5)) (snd-display ";set ncos n: ~D?" (mus-length gen)))
-      (if (fneq (mus-scaler gen) .2) (snd-display ";set n->scaler: ~A" (mus-scaler gen))))
+	(snd-display "ncos n: ~D?" (mus-length gen)))
+      (if (or (fneq (v0 1) 0.722) (fneq (v0 8) -0.143)) (snd-display "ncos output: ~A" v0))
+      (set! (mus-scaler gen) .5) (if (fneq (mus-scaler gen) 0.5) (snd-display "ncos set-scaler: ~F?" (mus-scaler gen)))
+      (set! (mus-length gen) 5) (if (not (= (mus-length gen) 5)) (snd-display "set ncos n: ~D?" (mus-length gen)))
+      (if (fneq (mus-scaler gen) .2) (snd-display "set n->scaler: ~A" (mus-scaler gen))))
     
     (test-gen-equal (make-ncos 440.0 3) (make-ncos 440.0 3) (make-ncos 440.0 5))
     (test-gen-equal (make-ncos 440.0 3) (make-ncos 440.0 3) (make-ncos 400.0 3))
@@ -13390,7 +13390,7 @@ EDITS: 2
 				       0.5))))))
 	    (val2 (gen 0.0)))
 	(if (> (abs (- val1 val2)) .002)
-	    (snd-display ";ncos: ~A: ~A ~A" i val1 val2))))
+	    (snd-display "ncos: ~A: ~A ~A" i val1 val2))))
     
     (do ((gen1 (make-ncos 100.0 10))
 	 (gen2 (make-ncos -100.0 10))
@@ -13398,7 +13398,7 @@ EDITS: 2
 	 (i 0 (+ i 1)))
 	((= i 100)
 	 (if (fneq mx 0.0)
-	     (snd-display ";ncos +-: ~A" mx)))
+	     (snd-display "ncos +-: ~A" mx)))
       (set! mx (max mx (abs (- (gen1) (gen2))))))
 
     (test-simple-ncos 1)
@@ -13417,17 +13417,17 @@ EDITS: 2
       (let ((v1 (make-float-vector 10)))
 	(let ((gen1 (make-nsin 440.0 10))) 
 	  (fill-float-vector v1 (if (nsin? gen1) (nsin gen1 0.0) -1.0)))
-	(if (not (mus-arrays-equal? v0 v1)) (snd-display ";map nsin: ~A ~A" v0 v1)))
-      (if (not (nsin? gen)) (snd-display ";~A not nsin?" gen))
-      (if (fneq (mus-phase gen) 1.253787) (snd-display ";nsin phase: ~F?" (mus-phase gen)))
-      (if (fneq (mus-frequency gen) 440.0) (snd-display ";nsin frequency: ~F?" (mus-frequency gen)))
-      (if (fneq (mus-scaler gen) .1315) (snd-display ";nsin scaler: ~F?" (mus-scaler gen)))
+	(if (not (mus-arrays-equal? v0 v1)) (snd-display "map nsin: ~A ~A" v0 v1)))
+      (if (not (nsin? gen)) (snd-display "~A not nsin?" gen))
+      (if (fneq (mus-phase gen) 1.253787) (snd-display "nsin phase: ~F?" (mus-phase gen)))
+      (if (fneq (mus-frequency gen) 440.0) (snd-display "nsin frequency: ~F?" (mus-frequency gen)))
+      (if (fneq (mus-scaler gen) .1315) (snd-display "nsin scaler: ~F?" (mus-scaler gen)))
       (unless (= (mus-length gen) 10)
-	(snd-display ";nsin n: ~D?" (mus-length gen)))
-      (if (or (fneq (v0 1) 0.784) (fneq (v0 8) 0.181)) (snd-display ";nsin output: ~A" v0))
-      (set! (mus-scaler gen) .5) (if (fneq (mus-scaler gen) 0.5) (snd-display ";nsin set-scaler: ~F?" (mus-scaler gen)))
-      (set! (mus-length gen) 5) (if (not (= (mus-length gen) 5)) (snd-display ";set nsin n: ~D?" (mus-length gen)))
-      (if (fneq (mus-scaler gen) .2525) (snd-display ";set sines->scaler: ~A" (mus-scaler gen))))
+	(snd-display "nsin n: ~D?" (mus-length gen)))
+      (if (or (fneq (v0 1) 0.784) (fneq (v0 8) 0.181)) (snd-display "nsin output: ~A" v0))
+      (set! (mus-scaler gen) .5) (if (fneq (mus-scaler gen) 0.5) (snd-display "nsin set-scaler: ~F?" (mus-scaler gen)))
+      (set! (mus-length gen) 5) (if (not (= (mus-length gen) 5)) (snd-display "set nsin n: ~D?" (mus-length gen)))
+      (if (fneq (mus-scaler gen) .2525) (snd-display "set sines->scaler: ~A" (mus-scaler gen))))
     
     (test-gen-equal (make-nsin 440.0 3) (make-nsin 440.0 3) (make-nsin 440.0 5))
     (test-gen-equal (make-nsin 440.0 3) (make-nsin 440.0 3) (make-nsin 400.0 3))
@@ -13438,7 +13438,7 @@ EDITS: 2
 	 (i 0 (+ i 1)))
 	((= i 100)
 	 (if (fneq mx 0.0)
-	     (snd-display ";nsin +-: ~A" mx)))
+	     (snd-display "nsin +-: ~A" mx)))
       (set! mx (max mx (abs (+ (gen1) (gen2))))))
     
     (test-simple-nsin 1)
@@ -13457,15 +13457,15 @@ EDITS: 2
 	(let ((v1 (make-float-vector 10)))
 	  (let ((gen1 (make-nrxysin 440.0)))
 	    (fill-float-vector v1 (if (nrxysin? gen1) (nrxysin gen1 0.0) -1.0)))
-	  (if (not (mus-arrays-equal? v0 v1)) (snd-display ";map nrxysin: ~A ~A" v0 v1))))
-      (if (not (nrxysin? gen)) (snd-display ";~A not nrxysin?" gen))
-      (if (fneq (mus-phase gen) 1.253787) (snd-display ";nrxysin phase: ~F?" (mus-phase gen)))
-      (if (fneq (mus-frequency gen) 440.0) (snd-display ";nrxysin frequency: ~F?" (mus-frequency gen)))
-      (if (fneq (mus-scaler gen) 0.5) (snd-display ";mus-scaler (a) nrxysin: ~A" (mus-scaler gen)))
+	  (if (not (mus-arrays-equal? v0 v1)) (snd-display "map nrxysin: ~A ~A" v0 v1))))
+      (if (not (nrxysin? gen)) (snd-display "~A not nrxysin?" gen))
+      (if (fneq (mus-phase gen) 1.253787) (snd-display "nrxysin phase: ~F?" (mus-phase gen)))
+      (if (fneq (mus-frequency gen) 440.0) (snd-display "nrxysin frequency: ~F?" (mus-frequency gen)))
+      (if (fneq (mus-scaler gen) 0.5) (snd-display "mus-scaler (a) nrxysin: ~A" (mus-scaler gen)))
       (set! (mus-scaler gen) 0.75)
-      (if (fneq (mus-scaler gen) 0.75) (snd-display ";mus-scaler (set a) nrxysin: ~A" (mus-scaler gen)))
-      (if (not (= (mus-length gen) 1)) (snd-display ";mus-length nrxysin: ~A" (mus-length gen)))
-      (if (fneq (mus-offset gen) 1.0) (snd-display ";mus-offset nrxysin: ~A" (mus-offset gen))))
+      (if (fneq (mus-scaler gen) 0.75) (snd-display "mus-scaler (set a) nrxysin: ~A" (mus-scaler gen)))
+      (if (not (= (mus-length gen) 1)) (snd-display "mus-length nrxysin: ~A" (mus-length gen)))
+      (if (fneq (mus-offset gen) 1.0) (snd-display "mus-offset nrxysin: ~A" (mus-offset gen))))
     
     (test-gen-equal (make-nrxysin 440.0) (make-nrxysin 440.0) (make-nrxysin 100.0))
     (test-gen-equal (make-nrxysin 440.0) (make-nrxysin 440.0) (make-nrxysin 440.0 1.5))
@@ -13478,7 +13478,7 @@ EDITS: 2
 	    ((= i 10))
 	  (outa i (nrxysin gen))))
       (if (not (mus-arrays-equal? v1 (float-vector 0.000 0.671 0.637 0.186 0.017 0.169 0.202 0.048 0.007 0.105)))
-	  (snd-display ";ws nrxysin output: ~A" v1)))
+	  (snd-display "ws nrxysin output: ~A" v1)))
     
     
     (let ((gen (make-nrxycos 440.0)))
@@ -13492,15 +13492,15 @@ EDITS: 2
 	(let ((v1 (make-float-vector 10)))
 	  (let ((gen1 (make-nrxycos 440.0))) 
 	    (fill-float-vector v1 (if (nrxycos? gen1) (nrxycos gen1 0.0) -1.0)))
-	  (if (not (mus-arrays-equal? v0 v1)) (snd-display ";map nrxycos: ~A ~A" v0 v1))))
-      (if (not (nrxycos? gen)) (snd-display ";~A not nrxycos?" gen))
-      (if (fneq (mus-phase gen) 1.253787) (snd-display ";nrxycos phase: ~F?" (mus-phase gen)))
-      (if (fneq (mus-frequency gen) 440.0) (snd-display ";nrxycos frequency: ~F?" (mus-frequency gen)))
-      (if (fneq (mus-scaler gen) 0.5) (snd-display ";mus-scaler (a) nrxycos: ~A" (mus-scaler gen)))
+	  (if (not (mus-arrays-equal? v0 v1)) (snd-display "map nrxycos: ~A ~A" v0 v1))))
+      (if (not (nrxycos? gen)) (snd-display "~A not nrxycos?" gen))
+      (if (fneq (mus-phase gen) 1.253787) (snd-display "nrxycos phase: ~F?" (mus-phase gen)))
+      (if (fneq (mus-frequency gen) 440.0) (snd-display "nrxycos frequency: ~F?" (mus-frequency gen)))
+      (if (fneq (mus-scaler gen) 0.5) (snd-display "mus-scaler (a) nrxycos: ~A" (mus-scaler gen)))
       (set! (mus-scaler gen) 0.75)
-      (if (fneq (mus-scaler gen) 0.75) (snd-display ";mus-scaler (set a) nrxycos: ~A" (mus-scaler gen)))
-      (if (not (= (mus-length gen) 1)) (snd-display ";mus-length nrxycos: ~A" (mus-length gen)))
-      (if (fneq (mus-offset gen) 1.0) (snd-display ";mus-offset nrxycos: ~A" (mus-offset gen))))
+      (if (fneq (mus-scaler gen) 0.75) (snd-display "mus-scaler (set a) nrxycos: ~A" (mus-scaler gen)))
+      (if (not (= (mus-length gen) 1)) (snd-display "mus-length nrxycos: ~A" (mus-length gen)))
+      (if (fneq (mus-offset gen) 1.0) (snd-display "mus-offset nrxycos: ~A" (mus-offset gen))))
     
     (test-gen-equal (make-nrxycos 440.0) (make-nrxycos 440.0) (make-nrxycos 100.0))
     (test-gen-equal (make-nrxycos 440.0) (make-nrxycos 440.0) (make-nrxycos 440.0 1.5))
@@ -13512,7 +13512,7 @@ EDITS: 2
 			      ((= i 10))
 			    (outa i (nrxycos gen))))))
       (if (not (mus-arrays-equal? v1 (float-vector 1.000 0.602 -0.067 -0.242 -0.007 0.071 -0.087 -0.128 -0.007 0.012)))
-	  (snd-display ";ws nrxycos output: ~A" v1)))
+	  (snd-display "ws nrxycos output: ~A" v1)))
     
     (let ((gen (make-asymmetric-fm 440.0))
 	  (v0 (make-float-vector 10)))
@@ -13525,19 +13525,19 @@ EDITS: 2
       (let ((v1 (make-float-vector 10)))
 	(let ((gen1 (make-asymmetric-fm 440.0)))
 	  (fill-float-vector v1 (if (asymmetric-fm? gen1) (asymmetric-fm gen1 0.0) -1.0)))
-	(if (not (mus-arrays-equal? v0 v1)) (snd-display ";map asymmetric-fm: ~A ~A" v0 v1)))
-      (if (not (asymmetric-fm? gen)) (snd-display ";~A not asymmetric-fm?" gen))
-      (if (fneq (mus-phase gen) 1.253787) (snd-display ";asymmetric-fm phase: ~F?" (mus-phase gen)))
+	(if (not (mus-arrays-equal? v0 v1)) (snd-display "map asymmetric-fm: ~A ~A" v0 v1)))
+      (if (not (asymmetric-fm? gen)) (snd-display "~A not asymmetric-fm?" gen))
+      (if (fneq (mus-phase gen) 1.253787) (snd-display "asymmetric-fm phase: ~F?" (mus-phase gen)))
       (set! (mus-phase gen) 1.0)
-      (if (fneq (mus-phase gen) 1.0) (snd-display ";set! asymmetric-fm phase: ~F?" (mus-phase gen)))
-      (if (fneq (mus-frequency gen) 440.0) (snd-display ";asymmetric-fm frequency: ~F?" (mus-frequency gen)))
+      (if (fneq (mus-phase gen) 1.0) (snd-display "set! asymmetric-fm phase: ~F?" (mus-phase gen)))
+      (if (fneq (mus-frequency gen) 440.0) (snd-display "asymmetric-fm frequency: ~F?" (mus-frequency gen)))
       (set! (mus-frequency gen) 100.0)
-      (if (fneq (mus-frequency gen) 100.0) (snd-display ";set! asymmetric-fm frequency: ~F?" (mus-frequency gen)))
-      (if (or (fneq (v0 2) 0.969) (fneq (v0 8) .538)) (snd-display ";asymmetric-fm output: ~A" v0))
-      (if (fneq (mus-scaler gen) 1.0) (snd-display ";mus-scaler (r) asymmetric-fm: ~A" (mus-scaler gen)))
+      (if (fneq (mus-frequency gen) 100.0) (snd-display "set! asymmetric-fm frequency: ~F?" (mus-frequency gen)))
+      (if (or (fneq (v0 2) 0.969) (fneq (v0 8) .538)) (snd-display "asymmetric-fm output: ~A" v0))
+      (if (fneq (mus-scaler gen) 1.0) (snd-display "mus-scaler (r) asymmetric-fm: ~A" (mus-scaler gen)))
       (set! (mus-scaler gen) 0.5)
-      (if (fneq (mus-scaler gen) 0.5) (snd-display ";mus-scaler (set r) asymmetric-fm: ~A" (mus-scaler gen)))
-      (if (fneq (mus-offset gen) 1.0) (snd-display ";mus-offset asymmetric-fm: ~A" (mus-offset gen))))
+      (if (fneq (mus-scaler gen) 0.5) (snd-display "mus-scaler (set r) asymmetric-fm: ~A" (mus-scaler gen)))
+      (if (fneq (mus-offset gen) 1.0) (snd-display "mus-offset asymmetric-fm: ~A" (mus-offset gen))))
     
     (test-gen-equal (make-asymmetric-fm 440.0) (make-asymmetric-fm 440.0) (make-asymmetric-fm 100.0))
     (test-gen-equal (make-asymmetric-fm 440.0) (make-asymmetric-fm 440.0) (make-asymmetric-fm 440.0 1.0))
@@ -13551,7 +13551,7 @@ EDITS: 2
       (let ((ss (asymmetric-fm gen1 0.0))
 	    (os (oscil gen2 0.0)))
 	(when (fneq ss os)
-	  (snd-display ";asymmetric-fm 1: ~A: os: ~A ss: ~A" i os ss)
+	  (snd-display "asymmetric-fm 1: ~A: os: ~A ss: ~A" i os ss)
 	  (set! happy #f))))
     
     (for-each
@@ -13564,7 +13564,7 @@ EDITS: 2
 						((= i 1000))
 					      (outa i (asymmetric-fm gen index)))))))
 	    (if (> (abs (- peak 1.0)) .1)
-		(snd-display ";asymmetric-fm peak: ~A, index: ~A, r: ~A" peak index r))))
+		(snd-display "asymmetric-fm peak: ~A, index: ~A, r: ~A" peak index r))))
 	'(-10.0 -1.5 -0.5 0.5 1.0 1.5 10.0)))
      '(1.0 3.0 10.0))
     
@@ -13585,7 +13585,7 @@ EDITS: 2
 	    ((or (not happy)
 		 (= i 512)))
 	  (when (> (abs (- (spectr1 i) (spectr2 i))) .02)
-	    (snd-display ";asymmetric-fm 2: ~A: ~A ~A" i (spectr1 i) (spectr2 i))
+	    (snd-display "asymmetric-fm 2: ~A: ~A ~A" i (spectr1 i) (spectr2 i))
 	    (set! happy #f)))))
     
     (let ((gen (make-asymmetric-fm 40.0 0.0 1.0 0.1))
@@ -13606,7 +13606,7 @@ EDITS: 2
 			 (cos (+ a (* index sr (sin mth)))))))
 	    (if (or (fneq val1 val2)
 		    (fneq val1 val3))
-		(snd-display ";asyfm by hand: ~A: ~A ~A ~A" i val1 val2 val3))))))
+		(snd-display "asyfm by hand: ~A: ~A ~A ~A" i val1 val2 val3))))))
     
     (let ((float-vector0 (make-float-vector 2048))
 	  (float-vector1 (make-float-vector 2048))
@@ -13626,9 +13626,9 @@ EDITS: 2
 	      (set! s1-loc i))
 	  (if (within-.01? (spectr2 i)) ;(< (abs (- 1.0 (spectr2 i))) .01) 
 	      (set! s2-loc i)))
-	(if (> s2-loc s1-loc) (snd-display ";asymmetric-fm peaks: ~A ~A" s1-loc s2-loc))
+	(if (> s2-loc s1-loc) (snd-display "asymmetric-fm peaks: ~A ~A" s1-loc s2-loc))
 	(let ((center (* 11025/1024 0.5 (+ s1-loc s2-loc)))) ;(* (/ 22050 2048) .5 (+ s1-loc s2-loc))
-	  (if (> (abs (- 1000 center)) 60) (snd-display ";asymmetric-fm center: ~A" center)))
+	  (if (> (abs (- 1000 center)) 60) (snd-display "asymmetric-fm center: ~A" center)))
 	(set! (mus-scaler gen3) 0.5)
 	(do ((i 0 (+ i 1)))
 	    ((= i 2048))
@@ -13638,7 +13638,7 @@ EDITS: 2
 	    ((= i 256))
 	  (if (within-.01? (spectr1 i)) ;(< (abs (- 1.0 (spectr1 i))) .01) 
 	      (set! s1-loc i)))
-	(if (not (= s2-loc s1-loc)) (snd-display ";asymmetric-fm set r peaks: ~A ~A" s1-loc s2-loc))
+	(if (not (= s2-loc s1-loc)) (snd-display "asymmetric-fm set r peaks: ~A ~A" s1-loc s2-loc))
 	(do ((i 0 (+ i 1)))
 	    ((= i 2048))
 	  (set! (float-vector0 i) (asymmetric-fm gen3 2.0)))
@@ -13870,18 +13870,18 @@ EDITS: 2
 	  (fill-float-vector v1 (let ((val (if (fir-filter? gen1) (fir-filter gen1 inp) -1.0)))
 				  (set! inp 0.0)
 				  val)))
-	(if (not (mus-arrays-equal? v0 v1)) (snd-display ";map fir-filter: ~A ~A" v0 v1)))
-      (if (not (fir-filter? gen)) (snd-display ";~A not fir-filter?" gen))
-      (if (not (= (mus-length gen) 3)) (snd-display ";fir-filter length: ~D?" (mus-length gen)))
-      (if (or (fneq (v0 1) 0.25) (fneq (v0 2) .125)) (snd-display ";fir-filter output: ~A" v0))
+	(if (not (mus-arrays-equal? v0 v1)) (snd-display "map fir-filter: ~A ~A" v0 v1)))
+      (if (not (fir-filter? gen)) (snd-display "~A not fir-filter?" gen))
+      (if (not (= (mus-length gen) 3)) (snd-display "fir-filter length: ~D?" (mus-length gen)))
+      (if (or (fneq (v0 1) 0.25) (fneq (v0 2) .125)) (snd-display "fir-filter output: ~A" v0))
       (let ((data (mus-xcoeffs gen)))
-	(if (fneq (data 1) .25) (snd-display ";fir-filter xcoeffs: ~A?" data)))
+	(if (fneq (data 1) .25) (snd-display "fir-filter xcoeffs: ~A?" data)))
       (let ((tag (catch #t (lambda () (mus-xcoeff gen 123)) (lambda args (car args)))))
 	(if (not (eq? tag 'mus-error))
-	    (snd-display ";xcoeff 123: ~A" tag)))
+	    (snd-display "xcoeff 123: ~A" tag)))
       (let ((tag (catch #t (lambda () (mus-ycoeff gen 123)) (lambda args (car args)))))
 	(if (not (eq? tag 'mus-error))
-	    (snd-display ";fir ycoeff 123: ~A" tag))))
+	    (snd-display "fir ycoeff 123: ~A" tag))))
     
     (test-gen-equal (let ((f1 (make-fir-filter 3 (float-vector .5 .25 .125)) )) (fir-filter f1 1.0) f1)
 		    (let ((f2 (make-fir-filter 3 (float-vector .5 .25 .125)) )) (fir-filter f2 1.0) f2)
@@ -13909,7 +13909,7 @@ EDITS: 2
 		  (fneq (data 10) 0.0)
 		  (fneq (data 18) 0.166)
 		  (fneq (data 89) 0.923))
-	      (snd-display ";filter xcoeffs: ~A?" data)))))
+	      (snd-display "filter xcoeffs: ~A?" data)))))
     
     (let ((make-f-filter (lambda (coeffs)
 			   (list coeffs (make-float-vector (length coeffs)))))
@@ -13930,31 +13930,31 @@ EDITS: 2
 	      (val2 (f-filter fir2 x)))
 	  (set! x 0.0)
 	  (when (fneq val1 val2)
-	    (snd-display ";f-filter ~A -> ~A ~A" i val1 val2)
+	    (snd-display "f-filter ~A -> ~A ~A" i val1 val2)
 	    (set! happy #f)))))
     
     (let ((gen (make-spencer-filter)))
       (if (not (fir-filter? gen)) 
-	  (snd-display ";make-spencer-filter returns ~A?" gen)
+	  (snd-display "make-spencer-filter returns ~A?" gen)
 	  (begin
-	    (if (not (= (mus-order gen) 15)) (snd-display ";make-spencer-filter order ~A?" (mus-order gen)))
+	    (if (not (= (mus-order gen) 15)) (snd-display "make-spencer-filter order ~A?" (mus-order gen)))
 	    (if (not (mus-arrays-equal? (mus-xcoeffs gen) (float-vector -0.009 -0.019 -0.016 0.009 0.066 0.144 0.209 0.231 0.209 0.144 0.066 0.009 -0.016 -0.019 -0.009)))
-		(snd-display ";make-spencer-filter coeffs: ~A" (mus-xcoeffs gen))))))
+		(snd-display "make-spencer-filter coeffs: ~A" (mus-xcoeffs gen))))))
     
     (let ((flt (mus-xcoeffs (make-savitzky-golay-filter 5 2))))
       (if (not (mus-arrays-equal? flt (float-vector -0.086 0.343 0.486 0.343 -0.086)))
-	  (snd-display ";sg 5 2: ~A" flt)))
+	  (snd-display "sg 5 2: ~A" flt)))
     (let ((flt (mus-xcoeffs (make-savitzky-golay-filter 11 2))))
       (if (not (mus-arrays-equal? flt (float-vector -0.084 0.021 0.103 0.161 0.196 0.207 0.196 0.161 0.103 0.021 -0.084)))
-	  (snd-display ";sg 11 2: ~A" flt)))
+	  (snd-display "sg 11 2: ~A" flt)))
     (let ((flt (mus-xcoeffs (make-savitzky-golay-filter 11 4))))
       (if (not (mus-arrays-equal? flt (float-vector 0.042 -0.105 -0.023 0.140 0.280 0.333 0.280 0.140 -0.023 -0.105 0.042)))
-	  (snd-display ";sg 11 4: ~A" flt)))
+	  (snd-display "sg 11 4: ~A" flt)))
     (let ((flt (mus-xcoeffs (make-savitzky-golay-filter 25 2))))
       (if (not (mus-arrays-equal? flt (float-vector -0.049 -0.027 -0.006 0.012 0.028 0.043 0.055 0.066 0.075 0.082 0.086 
 						    0.089 0.090 0.089 0.086 0.082 0.075 0.066 0.055 0.043 
 						    0.028 0.012 -0.006 -0.027 -0.049)))
-	  (snd-display ";sg 25 2: ~A" flt)))
+	  (snd-display "sg 25 2: ~A" flt)))
     
     (let ((gen (make-iir-filter 3 (float-vector .5 .25 .125)))
 	  (v0 (make-float-vector 10)))
@@ -13972,18 +13972,18 @@ EDITS: 2
 	  (fill-float-vector v1 (let ((val (if (iir-filter? gen1) (iir-filter gen1 inp) -1.0)))
 				  (set! inp 0.0)
 				  val)))
-	(if (not (mus-arrays-equal? v0 v1)) (snd-display ";map iir-filter: ~A ~A" v0 v1)))
-      (if (not (iir-filter? gen)) (snd-display ";~A not iir-filter?" gen))
-      (if (not (= (mus-length gen) 3)) (snd-display ";iir-filter length: ~D?" (mus-length gen)))
-      (if (or (fneq (v0 1) -0.25) (fneq (v0 2) -.062)) (snd-display ";iir-filter output: ~A" v0))
+	(if (not (mus-arrays-equal? v0 v1)) (snd-display "map iir-filter: ~A ~A" v0 v1)))
+      (if (not (iir-filter? gen)) (snd-display "~A not iir-filter?" gen))
+      (if (not (= (mus-length gen) 3)) (snd-display "iir-filter length: ~D?" (mus-length gen)))
+      (if (or (fneq (v0 1) -0.25) (fneq (v0 2) -.062)) (snd-display "iir-filter output: ~A" v0))
       (let ((data (mus-ycoeffs gen)))
-	(if (fneq (data 1) .25) (snd-display ";iir-filter ycoeffs: ~A?" data)))
+	(if (fneq (data 1) .25) (snd-display "iir-filter ycoeffs: ~A?" data)))
       (let ((tag (catch #t (lambda () (mus-ycoeff gen 123)) (lambda args (car args)))))
 	(if (not (eq? tag 'mus-error))
-	    (snd-display ";ycoeff 123: ~A" tag)))
+	    (snd-display "ycoeff 123: ~A" tag)))
       (let ((tag (catch #t (lambda () (mus-xcoeff gen 123)) (lambda args (car args)))))
 	(if (not (eq? tag 'mus-error))
-	    (snd-display ";iir xcoeff 123: ~A" tag))))
+	    (snd-display "iir xcoeff 123: ~A" tag))))
     
     (test-gen-equal (let ((f1 (make-iir-filter 3 (float-vector .5 .25 .125)))) (iir-filter f1 1.0) f1)
 		    (let ((f2 (make-iir-filter 3 (float-vector .5 .25 .125)) )) (iir-filter f2 1.0) f2)
@@ -14008,35 +14008,35 @@ EDITS: 2
 	  (fill-float-vector v1 (let ((val (if (filter? gen1) (filter gen1 inp) -1.0)))
 				  (set! inp 0.0)
 				  val))
-	  (if (not (mus-arrays-equal? v0 v1)) (snd-display ";map filter: ~A ~A" v0 v1)))
-	(if (not (filter? gen)) (snd-display ";~A not filter?" gen))
-	(if (not (= (mus-length gen) 3)) (snd-display ";filter length: ~D?" (mus-length gen)))
-	(if (or (fneq (v0 1) 0.125) (fneq (v0 2) .031)) (snd-display ";filter output: ~A" v0))
-	(if (not (filter? gen2)) (snd-display ";make-biquad: ~A" gen2)))
+	  (if (not (mus-arrays-equal? v0 v1)) (snd-display "map filter: ~A ~A" v0 v1)))
+	(if (not (filter? gen)) (snd-display "~A not filter?" gen))
+	(if (not (= (mus-length gen) 3)) (snd-display "filter length: ~D?" (mus-length gen)))
+	(if (or (fneq (v0 1) 0.125) (fneq (v0 2) .031)) (snd-display "filter output: ~A" v0))
+	(if (not (filter? gen2)) (snd-display "make-biquad: ~A" gen2)))
       (let ((xs (mus-xcoeffs gen))
 	    (ys (mus-ycoeffs gen)))
 	(if (not (and (equal? xs (float-vector .5 .25 .125))
 		      (equal? xs ys)))
-	    (snd-display ";mus-xcoeffs: ~A ~A?" xs ys))))
+	    (snd-display "mus-xcoeffs: ~A ~A?" xs ys))))
     
     (let ((var (catch #t (lambda () (make-filter :order 2 :xcoeffs (float-vector 1.0 0.5) :ycoeffs (float-vector 2.0 1.0 0.5))) (lambda args args))))
       (if (not (eq? (car var) 'mus-error))
-	  (snd-display ";make-filter bad coeffs: ~A" var)))
+	  (snd-display "make-filter bad coeffs: ~A" var)))
     (let ((var (catch #t (lambda () (make-filter :order 0 :xcoeffs (float-vector 1.0 0.5))) (lambda args args))))
       (if (not (eq? (car var) 'out-of-range))
-	  (snd-display ";make-filter bad order: ~A" var)))
+	  (snd-display "make-filter bad order: ~A" var)))
     (let ((var (catch #t (lambda () (make-fir-filter :order 22 :xcoeffs (float-vector 1.0 0.5))) (lambda args args))))
       (if (not (eq? (car var) 'mus-error))
-	  (snd-display ";make-fir-filter bad coeffs: ~A" var)))
+	  (snd-display "make-fir-filter bad coeffs: ~A" var)))
     (let ((var (catch #t (lambda () (make-iir-filter :order 22 :ycoeffs (float-vector 1.0 0.5))) (lambda args args))))
       (if (not (eq? (car var) 'mus-error))
-	  (snd-display ";make-iir-filter bad coeffs: ~A" var)))
+	  (snd-display "make-iir-filter bad coeffs: ~A" var)))
     (let ((var (catch #t (lambda () (make-fir-filter -1)) (lambda args args))))
       (if (not (eq? (car var) 'out-of-range))
-	  (snd-display ";make-fir-filter bad order: ~A" var)))
+	  (snd-display "make-fir-filter bad order: ~A" var)))
     (let ((var (make-filter :order 2 :ycoeffs (float-vector 1.0 0.5))))
       (if (not (iir-filter? var))
-	  (snd-display ";make-filter with only y: ~A" var)))
+	  (snd-display "make-filter with only y: ~A" var)))
     
     (test-gen-equal (let ((f1 (make-filter 3 (float-vector .5 .25 .125) (float-vector .5 .25 .125)))) (filter f1 1.0) f1)
 		    (let ((f2 (make-filter 3 (float-vector .5 .25 .125) (float-vector .5 .25 .125)))) (filter f2 1.0) f2)
@@ -14046,21 +14046,21 @@ EDITS: 2
 		    (let ((f3 (make-filter 3 (float-vector .5 .5 .125) (float-vector .5 .25 .0625)))) (filter f3 1.0) f3))
     
     (let ((fr (mus-length (make-fir-filter 6 (float-vector 0 1 2 3 4 5)))))
-      (if (not (= fr 6)) (snd-display ";filter-length: ~A" fr)))
+      (if (not (= fr 6)) (snd-display "filter-length: ~A" fr)))
     
     (let ((val (cascade->canonical (list (float-vector 1.0 0.0 0.0) (float-vector 1.0 0.5 0.25)))))
       (if (not (mus-arrays-equal? val (float-vector 1.000 0.500 0.250 0.000 0.000)))
-	  (snd-display ";cas2can 0: ~A" val)))
+	  (snd-display "cas2can 0: ~A" val)))
     (let ((val (cascade->canonical (list (float-vector 1.0 1.0 0.0) (float-vector 1.0 0.5 0.25)))))
       (if (not (mus-arrays-equal? val (float-vector 1.000 1.500 0.750 0.250 0.000)))
-	  (snd-display ";cas2can 1: ~A" val)))
+	  (snd-display "cas2can 1: ~A" val)))
     
     (let ((val (cascade->canonical (list (float-vector 1 0.8 0) (float-vector 1 1.4 0.65) (float-vector 1 0 0)))))
       (if (not (mus-arrays-equal? val (float-vector 1.000 2.200 1.770 0.520 0.000 0.000 0.000)))
-	  (snd-display ";cascade->canonical: ~A" val)))
+	  (snd-display "cascade->canonical: ~A" val)))
     (let ((val (cascade->canonical (list (float-vector 1 -0.9 0) (float-vector 1 1 0.74) (float-vector 1 -1.6 0.8)))))
       (if (not (mus-arrays-equal? val (float-vector 1.000 -1.500 0.480 -0.330 0.938 -0.533 0.000)))
-	  (snd-display ";cascade->canonical 1: ~A" val)))
+	  (snd-display "cascade->canonical 1: ~A" val)))
     
     (let ((ind (new-sound "test.snd" 1 22050 mus-ldouble mus-next)))
       (pad-channel 0 10000)
@@ -14068,7 +14068,7 @@ EDITS: 2
       (let ((sp (rough-spectrum ind)))
 	(if (not (or (mus-arrays-equal? sp (float-vector 0.962 0.998 0.998 0.998 0.998 0.999 0.999 0.998 0.997 1.000))
 		     (mus-arrays-equal? sp (float-vector 0.963 0.999 0.999 0.999 0.999 0.999 1.000 1.000 0.998 0.997))))
-	    (snd-display ";initial rough spectrum: ~A" sp)))
+	    (snd-display "initial rough spectrum: ~A" sp)))
       
       (let ((b (make-butter-high-pass 440.0)))
 	(let ((v (make-float-vector 10))
@@ -14076,13 +14076,13 @@ EDITS: 2
 	  (delay d (filter b 1.0))
 	  (fill-float-vector v (delay d (filter b 0.0)))
 	  (if (not (mus-arrays-equal? v (float-vector 0.915 -0.162 -0.146 -0.131 -0.117 -0.103 -0.090 -0.078 -0.066 -0.056)))
-	      (snd-display ";butter high: ~A" v)))
+	      (snd-display "butter high: ~A" v)))
 	(set! b (make-butter-high-pass 1000.0))
 	(map-channel (lambda (y) (filter b y)))
 	(let ((sp (rough-spectrum ind)))
 	  (if (not (or (mus-arrays-equal? sp (float-vector 0.150 0.833 0.980 0.994 0.997 0.998 0.999 0.998 0.997 1.000))
 		       (mus-arrays-equal? sp (float-vector 0.150 0.833 0.981 0.995 0.998 0.999 1.000 1.000 0.998 0.997))))
-	      (snd-display ";hp rough spectrum: ~A" sp)))
+	      (snd-display "hp rough spectrum: ~A" sp)))
 	(undo))
       
       (let ((b (make-butter-low-pass 440.0)))
@@ -14091,12 +14091,12 @@ EDITS: 2
 	  (delay d (filter b 1.0))
 	  (fill-float-vector v (delay d (filter b 0.0)))
 	  (if (not (mus-arrays-equal? v (float-vector 0.004 0.014 0.026 0.035 0.043 0.049 0.053 0.055 0.057 0.057)))
-	      (snd-display ";butter low: ~A" v)))
+	      (snd-display "butter low: ~A" v)))
 	(set! b (make-butter-low-pass 1000.0))
 	(map-channel (lambda (y) (filter b y)))
 	(let ((sp (rough-spectrum ind)))
 	  (if (not (mus-arrays-equal? sp (float-vector 1.000 0.212 0.024 0.005 0.001 0.000 0.000 0.000 0.000 0.000)))
-	      (snd-display ";lp rough spectrum: ~A" sp)))
+	      (snd-display "lp rough spectrum: ~A" sp)))
 	(undo))
       
       (let ((b (make-butter-band-pass 440.0 50.0)))
@@ -14105,12 +14105,12 @@ EDITS: 2
 	  (delay d (filter b 1.0))
 	  (fill-float-vector v (delay d (filter b 0.0)))
 	  (if (not (mus-arrays-equal? v (float-vector 0.007 0.014 0.013 0.013 0.012 0.011 0.009 0.008 0.007 0.005)))
-	      (snd-display ";butter bandpass: ~A" v)))
+	      (snd-display "butter bandpass: ~A" v)))
 	(set! b (make-butter-band-pass 1000.0 500.0))
 	(map-channel (lambda (y) (filter b y)))
 	(let ((sp (rough-spectrum ind)))
 	  (if (not (mus-arrays-equal? sp (float-vector 0.888 1.000 0.144 0.056 0.027 0.014 0.008 0.004 0.002 0.000)))
-	      (snd-display ";bp rough spectrum: ~A" sp)))
+	      (snd-display "bp rough spectrum: ~A" sp)))
 	(undo))
       
       (let ((b (make-butter-band-reject 440.0 50.0)))
@@ -14119,13 +14119,13 @@ EDITS: 2
 	  (delay d (filter b 1.0))
 	  (fill-float-vector v (delay d (filter b 0.0)))
 	  (if (not (mus-arrays-equal? v (float-vector 0.993 -0.014 -0.013 -0.013 -0.012 -0.011 -0.009 -0.008 -0.007 -0.005)))
-	      (snd-display ";butter bandstop: ~A" v)))
+	      (snd-display "butter bandstop: ~A" v)))
 	(set! b (make-butter-band-reject 1000.0 500.0))
 	(map-channel (lambda (y) (filter b y)))
 	(let ((sp (rough-spectrum ind)))
 	  (if (not (or (mus-arrays-equal? sp (float-vector 0.662 0.687 0.953 0.980 0.989 0.994 0.997 0.997 0.997 1.000))
 		       (mus-arrays-equal? sp (float-vector 0.664 0.689 0.955 0.982 0.992 0.996 0.999 1.000 0.999 0.998))))
-	      (snd-display ";bs rough spectrum: ~A" sp)))
+	      (snd-display "bs rough spectrum: ~A" sp)))
 	(undo))
       
       (if (defined? 'gsl-roots) (analog-filter-tests))
@@ -14135,9 +14135,9 @@ EDITS: 2
       (let ((v (spectrum->coeffs 10 (float-vector 0 1.0 0 0 0 0 0 0 1.0 0)))
 	    (v1 (make-fir-coeffs 10 (float-vector 0 1.0 0 0 0 0 0 0 1.0 0))))
 	(if (not (mus-arrays-equal? v (float-vector -0.190 -0.118 0.000 0.118 0.190 0.190 0.118 0.000 -0.118 -0.190)))
-	    (snd-display ";spectrum->coeffs: ~A" v))
+	    (snd-display "spectrum->coeffs: ~A" v))
 	(if (not (mus-arrays-equal? v v1))
-	    (snd-display ";spectrum->coeffs v make-fir-coeffs: ~A ~A" v v1)))
+	    (snd-display "spectrum->coeffs v make-fir-coeffs: ~A ~A" v v1)))
       
       (let ((notched-spectr (make-float-vector 20)))
 	(set! (notched-spectr 2) 1.0) 
@@ -14145,14 +14145,14 @@ EDITS: 2
 	      (v1 (make-fir-coeffs 20 notched-spectr)))
 	  (if (not (mus-arrays-equal? v (float-vector 0.095 0.059 -0.000 -0.059 -0.095 -0.095 -0.059 0.000 0.059 0.095 
 				  0.095 0.059 0.000 -0.059 -0.095 -0.095 -0.059 -0.000 0.059 0.095)))
-	      (snd-display ";spectrum->coeffs (notch): ~A" v))
+	      (snd-display "spectrum->coeffs (notch): ~A" v))
 	  (if (not (mus-arrays-equal? v v1))
-	      (snd-display ";spectrum->coeffs v(2) make-fir-coeffs: ~A ~A" v v1))
+	      (snd-display "spectrum->coeffs v(2) make-fir-coeffs: ~A ~A" v v1))
 	  (let ((flt (make-fir-filter 20 v)))
 	    (map-channel (lambda (y) (fir-filter flt y))))))
       (let ((sp (rough-spectrum ind)))
 	(if (not (mus-arrays-equal? sp (float-vector 0.007 0.493 1.000 0.068 0.030 0.019 0.014 0.011 0.009 0.009)))
-	    (snd-display ";sp->coeff rough spectrum: ~A" sp)))
+	    (snd-display "sp->coeff rough spectrum: ~A" sp)))
       (undo)
       
       (let ((rspect (make-float-vector 20)))
@@ -14162,7 +14162,7 @@ EDITS: 2
 	(let ((v (spectrum->coeffs 20 rspect))
 	      (v1 (make-fir-coeffs 20 rspect)))
 	  (if (not (mus-arrays-equal? v v1))
-	      (snd-display ";spectrum->coeffs v(3) make-fir-coeffs: ~A ~A" v v1))))
+	      (snd-display "spectrum->coeffs v(3) make-fir-coeffs: ~A ~A" v v1))))
       
       (let ((b (make-highpass (hz->radians 1000.0) 10)))
 	(let ((v (make-float-vector 20)))
@@ -14171,13 +14171,13 @@ EDITS: 2
 	    (fill-float-vector v (delay d (fir-filter b 0.0))))
 	  (if (not (mus-arrays-equal? v (float-vector -0.001 -0.002 -0.005 -0.011 -0.021 -0.034 -0.049 -0.065 -0.078 -0.087 
 					   0.909 -0.087 -0.078 -0.065 -0.049 -0.034 -0.021 -0.011 -0.005 -0.002)))
-	      (snd-display ";dsp.scm high: ~A" v)))
+	      (snd-display "dsp.scm high: ~A" v)))
 	(set! b (make-highpass (hz->radians 1000.0) 20))
 	(map-channel (lambda (y) (fir-filter b y)))
 	(let ((sp (rough-spectrum ind)))
 	  (if (not (or (mus-arrays-equal? sp (float-vector 0.053 0.774 0.998 0.997 0.997 0.996 0.996 0.996 0.997 1.000))
 		       (mus-arrays-equal? sp (float-vector 0.053 0.776 1.000 0.998 0.998 0.998 0.998 0.998 0.998 1.000))))
-	      (snd-display ";dsp hp rough spectrum: ~A" sp)))
+	      (snd-display "dsp hp rough spectrum: ~A" sp)))
 	(undo))
       
       (let ((b (make-lowpass (hz->radians 1000.0) 10)))
@@ -14187,12 +14187,12 @@ EDITS: 2
 	    (fill-float-vector v (delay d (fir-filter b 0.0))))
 	  (if (not (mus-arrays-equal? v (float-vector 0.001 0.002 0.005 0.011 0.021 0.034 0.049 0.065 0.078 0.087 0.091 0.087 0.078 0.065
 					   0.049 0.034 0.021 0.011 0.005 0.002)))
-	      (snd-display ";dsp.scm low: ~A" v)))
+	      (snd-display "dsp.scm low: ~A" v)))
 	(set! b (make-lowpass (hz->radians 1000.0) 20))
 	(map-channel (lambda (y) (fir-filter b y)))
 	(let ((sp (rough-spectrum ind)))
 	  (if (not (mus-arrays-equal? sp (float-vector 1.000 0.054 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	      (snd-display ";dsp lp rough spectrum: ~A" sp)))
+	      (snd-display "dsp lp rough spectrum: ~A" sp)))
 	(undo))
       
       (let ((b (make-bandpass (hz->radians 1500.0) (hz->radians 2000.0) 10)))
@@ -14202,12 +14202,12 @@ EDITS: 2
 	    (fill-float-vector v (delay d (fir-filter b 0.0))))
 	  (if (not (mus-arrays-equal? v (float-vector 0.001 -0.001 -0.005 -0.011 -0.017 -0.019 -0.013 0.003 0.022 0.039 0.045
 					   0.039 0.022 0.003 -0.013 -0.019 -0.017 -0.011 -0.005 -0.001)))
-	      (snd-display ";dsp.scm bp: ~A" v)))
+	      (snd-display "dsp.scm bp: ~A" v)))
 	(set! b (make-bandpass (hz->radians 1500.0) (hz->radians 2000.0) 20))
 	(map-channel (lambda (y) (fir-filter b y)))
 	(let ((sp (rough-spectrum ind)))
 	  (if (not (mus-arrays-equal? sp (float-vector 0.010 1.000 0.154 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	      (snd-display ";dsp bp rough spectrum: ~A" sp)))
+	      (snd-display "dsp bp rough spectrum: ~A" sp)))
 	(undo))
       
       (let ((b (make-bandstop (hz->radians 1500.0) (hz->radians 2000.0) 10)))
@@ -14217,13 +14217,13 @@ EDITS: 2
 	    (fill-float-vector v (delay d (fir-filter b 0.0))))
 	  (if (not (mus-arrays-equal? v (float-vector -0.001 0.001 0.005 0.011 0.017 0.019 0.013 -0.003 -0.022 -0.039 0.955
 					   -0.039 -0.022 -0.003 0.013 0.019 0.017 0.011 0.005 0.001)))
-	      (snd-display ";dsp.scm bs: ~A" v)))
+	      (snd-display "dsp.scm bs: ~A" v)))
 	(set! b (make-bandstop (hz->radians 1500.0) (hz->radians 2000.0) 20))
 	(map-channel (lambda (y) (fir-filter b y)))
 	(let ((sp (rough-spectrum ind)))
 	  (if (not (or (mus-arrays-equal? sp (float-vector 0.904 0.425 0.821 0.998 0.997 0.996 0.996 0.996 0.997 1.000))
 		       (mus-arrays-equal? sp (float-vector 0.906 0.425 0.822 1.000 0.999 0.998 0.998 0.998 0.998 1.000))))
-	      (snd-display ";dsp bs rough spectrum: ~A" sp)))
+	      (snd-display "dsp bs rough spectrum: ~A" sp)))
 	(undo))
       
       (let ((b (make-differentiator 10)))
@@ -14233,12 +14233,12 @@ EDITS: 2
 	    (fill-float-vector v (delay d (fir-filter b 0.0))))
 	  (if (not (mus-arrays-equal? v (float-vector -0.008 0.011 -0.021 0.039 -0.066 0.108 -0.171 0.270 -0.456 0.977
 					   0.000 -0.977 0.456 -0.270 0.171 -0.108 0.066 -0.039 0.021 -0.011)))
-	      (snd-display ";dsp.scm df: ~A" v)))
+	      (snd-display "dsp.scm df: ~A" v)))
 	(set! b (make-differentiator 20))
 	(map-channel (lambda (y) (fir-filter b y)))
 	(let ((sp (rough-spectrum ind)))
 	  (if (not (mus-arrays-equal? sp (float-vector 0.004 0.027 0.075 0.147 0.242 0.362 0.506 0.674 0.864 1.000)))
-	      (snd-display ";dsp df rough spectrum: ~A" sp)))
+	      (snd-display "dsp df rough spectrum: ~A" sp)))
 	(undo))
       
       (let ((b (make-iir-high-pass-2 440.0)))
@@ -14247,13 +14247,13 @@ EDITS: 2
 	    (delay d (filter b 1.0))
 	    (fill-float-vector v (delay d (filter b 0.0))))
 	  (if (not (mus-arrays-equal? v (float-vector 0.915 -0.162 -0.146 -0.131 -0.117 -0.103 -0.090 -0.078 -0.066 -0.056)))
-	      (snd-display ";iir-2 high: ~A" v)))
+	      (snd-display "iir-2 high: ~A" v)))
 	(set! b (make-iir-high-pass-2 1000.0))
 	(map-channel (lambda (y) (filter b y)))
 	(let ((sp (rough-spectrum ind)))
 	  (if (not (or (mus-arrays-equal? sp (float-vector 0.150 0.833 0.980 0.994 0.997 0.998 0.999 0.998 0.997 1.000))
 		       (mus-arrays-equal? sp (float-vector 0.150 0.833 0.981 0.995 0.998 0.999 1.000 1.000 0.998 0.997))))
-	      (snd-display ";iir-2 hp rough spectrum: ~A" sp)))
+	      (snd-display "iir-2 hp rough spectrum: ~A" sp)))
 	(undo))
       
       (let ((b (make-iir-low-pass-2 440.0)))
@@ -14262,12 +14262,12 @@ EDITS: 2
 	    (delay d (filter b 1.0))
 	    (fill-float-vector v (delay d (filter b 0.0))))
 	  (if (not (mus-arrays-equal? v (float-vector 0.004 0.014 0.026 0.035 0.043 0.049 0.053 0.055 0.057 0.057)))
-	      (snd-display ";iir-2 low: ~A" v)))
+	      (snd-display "iir-2 low: ~A" v)))
 	(set! b (make-iir-low-pass-2 1000.0))
 	(map-channel (lambda (y) (filter b y)))
 	(let ((sp (rough-spectrum ind)))
 	  (if (not (mus-arrays-equal? sp (float-vector 1.000 0.212 0.024 0.005 0.001 0.000 0.000 0.000 0.000 0.000)))
-	      (snd-display ";iir-2 lp rough spectrum: ~A" sp)))
+	      (snd-display "iir-2 lp rough spectrum: ~A" sp)))
 	(undo))
       
       (let ((b (make-iir-band-pass-2 440.0 490.0)))
@@ -14276,12 +14276,12 @@ EDITS: 2
 	    (delay d (filter b 1.0))
 	    (fill-float-vector v (delay d (filter b 0.0))))
 	  (if (not (mus-arrays-equal? v (float-vector 0.007 0.014 0.013 0.013 0.012 0.010 0.009 0.008 0.006 0.004)))
-	      (snd-display ";iir bp-2 bandpass: ~A" v)))
+	      (snd-display "iir bp-2 bandpass: ~A" v)))
 	(set! b (make-iir-band-pass-2 1000.0 1500.0))
 	(map-channel (lambda (y) (filter b y)))
 	(let ((sp (rough-spectrum ind)))
 	  (if (not (mus-arrays-equal? sp (float-vector 0.239 1.000 0.117 0.041 0.019 0.010 0.005 0.003 0.001 0.000)))
-	      (snd-display ";iir bp-2 rough spectrum: ~A" sp)))
+	      (snd-display "iir bp-2 rough spectrum: ~A" sp)))
 	(undo))
       
       (let ((b (make-iir-band-stop-2 440.0 500.0)))
@@ -14290,13 +14290,13 @@ EDITS: 2
 	    (delay d (filter b 1.0))
 	    (fill-float-vector v (delay d (filter b 0.0))))
 	  (if (not (mus-arrays-equal? v (float-vector 0.992 -0.017 -0.016 -0.015 -0.014 -0.012 -0.011 -0.009 -0.007 -0.005)))
-	      (snd-display ";iir-2 bandstop: ~A" v)))
+	      (snd-display "iir-2 bandstop: ~A" v)))
 	(set! b (make-iir-band-stop-2 1000.0 1500.0))
 	(map-channel (lambda (y) (filter b y)))
 	(let ((sp (rough-spectrum ind)))
 	  (if (not (or (mus-arrays-equal? sp (float-vector 0.836 0.525 0.943 0.979 0.989 0.994 0.997 0.997 0.997 1.000))
 		       (mus-arrays-equal? sp (float-vector 0.838 0.527 0.945 0.981 0.991 0.996 0.999 1.000 0.999 0.998))))
-	      (snd-display ";iir bs-2 rough spectrum: ~A" sp)))
+	      (snd-display "iir bs-2 rough spectrum: ~A" sp)))
 	(undo))
       
       (let ((b (make-butter-hp 4 440.0)))
@@ -14307,7 +14307,7 @@ EDITS: 2
 	  (if (not (or (mus-arrays-equal? v (float-vector 0.725 -0.466 -0.315 -0.196 -0.104 -0.036 0.014 0.047 0.0685 0.0775))
 		       (mus-arrays-equal? v (float-vector 0.725 -0.466 -0.315 -0.196 -0.104 -0.035 0.015 0.049 0.070 0.081))
 		       (mus-arrays-equal? v (float-vector 0.725 -0.466 -0.315 -0.196 -0.104 -0.035 0.014 0.049 0.069 0.079))))
-	      (snd-display ";butter hp: ~A" v)))
+	      (snd-display "butter hp: ~A" v)))
 	(set! b (make-butter-hp 4 1000.0))
 	(map-channel (lambda (y) (filter b y)))
 	(let ((sp (rough-spectrum ind)))
@@ -14316,7 +14316,7 @@ EDITS: 2
 		       (mus-arrays-equal? sp (float-vector 0.051 0.991 1.000 1.000 0.998 0.998 0.999 0.999 0.997 0.995))
 		       (mus-arrays-equal? sp (float-vector 0.045 0.970 1.000 1.000 0.998 0.998 0.999 0.999 0.997 0.995))
 		       (mus-arrays-equal? sp (float-vector 0.052 0.971 1.000 1.000 0.998 0.998 0.999 0.999 0.997 0.995))))
-	      (snd-display ";bhp rough spectrum: ~A" sp)))
+	      (snd-display "bhp rough spectrum: ~A" sp)))
 	(undo))
       
       (let ((b (make-butter-lp 4 440.0)))
@@ -14325,13 +14325,13 @@ EDITS: 2
 	    (delay d (filter b 1.0))
 	    (fill-float-vector v (delay d (filter b 0.0))))
 	  (if (not (mus-arrays-equal? v (make-float-vector 10)))
-	      (snd-display ";butter lp: ~A" v)))
+	      (snd-display "butter lp: ~A" v)))
 	(set! b (make-butter-lp 4 1000.0))
 	(map-channel (lambda (y) (filter b y)))
 	(let ((sp (rough-spectrum ind)))
 	  (if (not (or (mus-arrays-equal? sp (float-vector 1.000 0.035 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000))
 		       (mus-arrays-equal? sp (float-vector 1.000 0.038 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000))))
-	      (snd-display ";blp rough spectrum: ~A" sp)))
+	      (snd-display "blp rough spectrum: ~A" sp)))
 	(undo))
       
       (let ((b (make-butter-bp 4 440.0 500.0)))
@@ -14340,7 +14340,7 @@ EDITS: 2
 	    (delay d (filter b 1.0))
 	    (fill-float-vector v (delay d (filter b 0.0))))
 	  (if (not (mus-arrays-equal? v (make-float-vector 10)))
-	      (snd-display ";butter bp: ~A" v)))
+	      (snd-display "butter bp: ~A" v)))
 	(set! b (make-butter-bp 4 1000.0 1500.0))
 	(map-channel (lambda (y) (filter b y)))
 	(undo))
@@ -14353,7 +14353,7 @@ EDITS: 2
 	  (if (not (or (mus-arrays-equal? v (float-vector 0.978 -0.043 -0.041 -0.038 -0.035 -0.031 -0.026 -0.0225 -0.015 -0.0085))
 		       (mus-arrays-equal? v (float-vector 0.978 -0.043 -0.041 -0.038 -0.035 -0.031 -0.027 -0.022 -0.017 -0.011))
 		       (mus-arrays-equal? v (float-vector 0.978 -0.043 -0.041 -0.038 -0.035 -0.031 -0.027 -0.021 -0.014 -0.011))))
-	      (snd-display ";butter bs: ~A" v)))
+	      (snd-display "butter bs: ~A" v)))
 	(set! b (make-butter-bs 4 1000.0 1500.0))
 	(map-channel (lambda (y) (filter b y)))
 	(undo))
@@ -14373,16 +14373,16 @@ EDITS: 2
 	(let ((gen1 (make-sawtooth-wave 440.0))
 	      (v1 (make-float-vector 10)))
 	  (fill-float-vector v1 (if (sawtooth-wave? gen1) (sawtooth-wave gen1 0.0) -1.0))
-	  (if (not (mus-arrays-equal? v0 v1)) (snd-display ";map sawtooth: ~A ~A" v0 v1)))
-	(if (not (sawtooth-wave? gen)) (snd-display ";~A not sawtooth-wave?" gen))
-	(if (fneq (mus-phase gen) 4.39538) (snd-display ";sawtooth-wave phase: ~F?" (mus-phase gen))) ;starts at pi
-	(if (fneq (mus-frequency gen) 440.0) (snd-display ";sawtooth-wave frequency: ~F?" (mus-frequency gen)))
+	  (if (not (mus-arrays-equal? v0 v1)) (snd-display "map sawtooth: ~A ~A" v0 v1)))
+	(if (not (sawtooth-wave? gen)) (snd-display "~A not sawtooth-wave?" gen))
+	(if (fneq (mus-phase gen) 4.39538) (snd-display "sawtooth-wave phase: ~F?" (mus-phase gen))) ;starts at pi
+	(if (fneq (mus-frequency gen) 440.0) (snd-display "sawtooth-wave frequency: ~F?" (mus-frequency gen)))
 	(set! (mus-frequency gen) 100.0)
-	(if (fneq (mus-frequency gen) 100.0) (snd-display ";set! sawtooth-wave frequency: ~F?" (mus-frequency gen)))
-	(if (fneq (mus-scaler gen) 1.0) (snd-display ";sawtooth-wave scaler: ~F?" (mus-scaler gen)))
+	(if (fneq (mus-frequency gen) 100.0) (snd-display "set! sawtooth-wave frequency: ~F?" (mus-frequency gen)))
+	(if (fneq (mus-scaler gen) 1.0) (snd-display "sawtooth-wave scaler: ~F?" (mus-scaler gen)))
 	(set! (mus-scaler gen) 0.5)
-	(if (fneq (mus-scaler gen) 0.5) (snd-display ";set! sawtooth-wave scaler: ~F?" (mus-scaler gen)))
-	(if (or (fneq (v0 1) 0.04) (fneq (v0 8) .319)) (snd-display ";sawtooth-wave output: ~A" v0))))
+	(if (fneq (mus-scaler gen) 0.5) (snd-display "set! sawtooth-wave scaler: ~F?" (mus-scaler gen)))
+	(if (or (fneq (v0 1) 0.04) (fneq (v0 8) .319)) (snd-display "sawtooth-wave output: ~A" v0))))
     
     (test-gen-equal (make-sawtooth-wave 440.0) (make-sawtooth-wave 440.0) (make-sawtooth-wave 120.0))
     (test-gen-equal (make-sawtooth-wave 440.0) (make-sawtooth-wave 440.0) (make-sawtooth-wave 440.0 1.0 1.0))
@@ -14394,7 +14394,7 @@ EDITS: 2
 	 (i 0 (+ i 1)))
 	((= i 100)
 	 (if (fneq mx 0.0)
-	     (snd-display ";sawtooth +-: ~A" mx)))
+	     (snd-display "sawtooth +-: ~A" mx)))
       (set! mx (max mx (abs (+ (gen1) (gen2))))))
     
     (let ((gen (make-square-wave 440.0)))
@@ -14411,18 +14411,18 @@ EDITS: 2
 	  (fill-float-vector v1 (begin
 				  (set! w (mus-width gen1))
 				  (if (square-wave? gen1) (square-wave gen1 0.0) -1.0)))
-	  (if (fneq w 0.5) (snd-display ";mus-width opt: ~A" w))
-	  (if (not (mus-arrays-equal? v0 v1)) (snd-display ";map square-wave: ~A ~A" v0 v1)))
-	(if (not (square-wave? gen)) (snd-display ";~A not square-wave?" gen))
-	(if (fneq (mus-phase gen) 1.253787) (snd-display ";square-wave phase: ~F?" (mus-phase gen)))
-	(if (fneq (mus-frequency gen) 440.0) (snd-display ";square-wave frequency: ~F?" (mus-frequency gen)))
-	(if (fneq (mus-scaler gen) 1.0) (snd-display ";square-wave scaler: ~F?" (mus-scaler gen)))
+	  (if (fneq w 0.5) (snd-display "mus-width opt: ~A" w))
+	  (if (not (mus-arrays-equal? v0 v1)) (snd-display "map square-wave: ~A ~A" v0 v1)))
+	(if (not (square-wave? gen)) (snd-display "~A not square-wave?" gen))
+	(if (fneq (mus-phase gen) 1.253787) (snd-display "square-wave phase: ~F?" (mus-phase gen)))
+	(if (fneq (mus-frequency gen) 440.0) (snd-display "square-wave frequency: ~F?" (mus-frequency gen)))
+	(if (fneq (mus-scaler gen) 1.0) (snd-display "square-wave scaler: ~F?" (mus-scaler gen)))
 	(set! (mus-scaler gen) 0.5)
-	(if (fneq (mus-scaler gen) 0.5) (snd-display ";set! square-wave scaler: ~F?" (mus-scaler gen)))
-	(if (fneq (mus-width gen) 0.5) (snd-display ";square-wave width: ~A" (mus-width gen)))
+	(if (fneq (mus-scaler gen) 0.5) (snd-display "set! square-wave scaler: ~F?" (mus-scaler gen)))
+	(if (fneq (mus-width gen) 0.5) (snd-display "square-wave width: ~A" (mus-width gen)))
 	(set! (mus-width gen) 0.75)
-	(if (fneq (mus-width gen) 0.75) (snd-display ";set! square-wave width: ~A" (mus-width gen)))
-	(if (or (fneq (v0 1) 1.0) (fneq (v0 8) 1.0)) (snd-display ";square-wave output: ~A" v0))))
+	(if (fneq (mus-width gen) 0.75) (snd-display "set! square-wave width: ~A" (mus-width gen)))
+	(if (or (fneq (v0 1) 1.0) (fneq (v0 8) 1.0)) (snd-display "square-wave output: ~A" v0))))
     
     (test-gen-equal (make-square-wave 440.0) (make-square-wave 440.0) (make-square-wave 120.0))
     (test-gen-equal (make-square-wave 440.0) (make-square-wave 440.0) (make-square-wave 440.0 1.0 1.0))
@@ -14435,7 +14435,7 @@ EDITS: 2
 	    ((= i 20))
 	  (set! (v0 i) (gen)))
 	(if (not (mus-arrays-equal? v0 (float-vector -0.5 -0.5 0.0 0.0 -0.5 -0.5 -0.5 0.0 0.0 -0.5 -0.5 -0.5 0.0 0.0 -0.5 -0.5 -0.5 0.0 0.0 -0.5)))
-	    (snd-display ";square-wave -.5: ~A " v0))))
+	    (snd-display "square-wave -.5: ~A " v0))))
     
     (let ((gen (make-triangle-wave 440.0))
 	  (v0 (make-float-vector 10)))
@@ -14448,16 +14448,16 @@ EDITS: 2
       (let ((gen2 (make-triangle-wave 440.0))
 	    (v1 (make-float-vector 10)))
 	(fill-float-vector v1 (if (triangle-wave? gen2) (triangle-wave gen2 0.0) -1.0))
-	(if (not (mus-arrays-equal? v0 v1)) (snd-display ";map triangle-wave: ~A ~A" v0 v1)))
-      (if (not (triangle-wave? gen)) (snd-display ";~A not triangle-wave?" gen))
-      (if (fneq (mus-phase gen) 1.253787) (snd-display ";triangle-wave phase: ~F?" (mus-phase gen)))
+	(if (not (mus-arrays-equal? v0 v1)) (snd-display "map triangle-wave: ~A ~A" v0 v1)))
+      (if (not (triangle-wave? gen)) (snd-display "~A not triangle-wave?" gen))
+      (if (fneq (mus-phase gen) 1.253787) (snd-display "triangle-wave phase: ~F?" (mus-phase gen)))
       (let ((gen1 (mus-phase (make-triangle-wave 440.0 1.0 pi))))
-	(if (fneq gen1 pi) (snd-display ";init triangle-wave phase: ~F?" gen1)))
-      (if (fneq (mus-frequency gen) 440.0) (snd-display ";triangle-wave frequency: ~F?" (mus-frequency gen)))
-      (if (fneq (mus-scaler gen) 1.0) (snd-display ";triangle-wave scaler: ~F?" (mus-scaler gen)))
+	(if (fneq gen1 pi) (snd-display "init triangle-wave phase: ~F?" gen1)))
+      (if (fneq (mus-frequency gen) 440.0) (snd-display "triangle-wave frequency: ~F?" (mus-frequency gen)))
+      (if (fneq (mus-scaler gen) 1.0) (snd-display "triangle-wave scaler: ~F?" (mus-scaler gen)))
       (set! (mus-scaler gen) 0.5)
-      (if (fneq (mus-scaler gen) 0.5) (snd-display ";set! triangle-wave scaler: ~F?" (mus-scaler gen)))
-      (if (or (fneq (v0 1) 0.080) (fneq (v0 8) 0.639)) (snd-display ";triangle-wave output: ~A" v0)))
+      (if (fneq (mus-scaler gen) 0.5) (snd-display "set! triangle-wave scaler: ~F?" (mus-scaler gen)))
+      (if (or (fneq (v0 1) 0.080) (fneq (v0 8) 0.639)) (snd-display "triangle-wave output: ~A" v0)))
     
     (do ((gen1 (make-triangle-wave 100.0))
 	 (gen2 (make-triangle-wave -100.0))
@@ -14465,7 +14465,7 @@ EDITS: 2
 	 (i 0 (+ i 1)))
 	((= i 100)
 	 (if (fneq mx 0.0)
-	     (snd-display ";triangle +-: ~A" mx)))
+	     (snd-display "triangle +-: ~A" mx)))
       (set! mx (max mx (abs (+ (gen1) (gen2))))))
     
     (test-gen-equal (make-triangle-wave 440.0) (make-triangle-wave 440.0) (make-triangle-wave 120.0))
@@ -14483,14 +14483,14 @@ EDITS: 2
       (let ((gen1 (make-pulse-train 440.0))
 	    (v1 (make-float-vector 10)))
 	(fill-float-vector v1 (if (pulse-train? gen1) (pulse-train gen1 0.0) -1.0))
-	(if (not (mus-arrays-equal? v0 v1)) (snd-display ";map pulse-train: ~A ~A" v0 v1)))
-      (if (not (pulse-train? gen)) (snd-display ";~A not pulse-train?" gen))
-      (if (fneq (mus-phase gen) 1.253787) (snd-display ";pulse-train phase: ~F?" (mus-phase gen)))
-      (if (fneq (mus-frequency gen) 440.0) (snd-display ";pulse-train frequency: ~F?" (mus-frequency gen)))
-      (if (fneq (mus-scaler gen) 1.0) (snd-display ";pulse-train scaler: ~F?" (mus-scaler gen)))
+	(if (not (mus-arrays-equal? v0 v1)) (snd-display "map pulse-train: ~A ~A" v0 v1)))
+      (if (not (pulse-train? gen)) (snd-display "~A not pulse-train?" gen))
+      (if (fneq (mus-phase gen) 1.253787) (snd-display "pulse-train phase: ~F?" (mus-phase gen)))
+      (if (fneq (mus-frequency gen) 440.0) (snd-display "pulse-train frequency: ~F?" (mus-frequency gen)))
+      (if (fneq (mus-scaler gen) 1.0) (snd-display "pulse-train scaler: ~F?" (mus-scaler gen)))
       (set! (mus-scaler gen) 0.5)
-      (if (fneq (mus-scaler gen) 0.5) (snd-display ";set! pulse-train scaler: ~F?" (mus-scaler gen)))
-      (if (or (fneq (v0 0) 1.0) (fneq (v0 8) 0.0)) (snd-display ";pulse-train output: ~A" v0)))
+      (if (fneq (mus-scaler gen) 0.5) (snd-display "set! pulse-train scaler: ~F?" (mus-scaler gen)))
+      (if (or (fneq (v0 0) 1.0) (fneq (v0 8) 0.0)) (snd-display "pulse-train output: ~A" v0)))
     
     (test-gen-equal (make-pulse-train 440.0) (make-pulse-train 440.0) (make-pulse-train 120.0))
     (test-gen-equal (make-pulse-train 440.0) (make-pulse-train 440.0) (make-pulse-train 440.0 1.0 1.0))
@@ -14503,43 +14503,43 @@ EDITS: 2
 	    ((= i 20))
 	  (set! (v0 i) (gen)))
 	(if (not (mus-arrays-equal? v0 (float-vector  0.0 0.0 0.0 0.0 -0.5 0.0 0.0 0.0 0.0 -0.5 0.0 0.0 0.0 0.0 -0.5 0.0 0.0 0.0 0.0 -0.5)))
-	    (snd-display ";pulse-train -.5: ~A " v0))))
+	    (snd-display "pulse-train -.5: ~A " v0))))
     
     (let ((gen (make-two-pole 1200.0 .1)))
-      (if (not (two-pole? gen)) (snd-display ";~A not 2-polar?" gen))
-      (if (not (= (mus-order gen) 2)) (snd-display ";2-polar order: ~D?" (mus-order gen)))
-      (if (fneq (mus-xcoeff gen 0) 1.0) (snd-display ";2-polar a0: ~F?" (mus-xcoeff gen 0)))
-      (if (fneq (mus-ycoeff gen 1) -.188) (snd-display ";2-polar b1: ~F?" (mus-ycoeff gen 1)))
-      (if (fneq (mus-ycoeff gen 2) .01) (snd-display ";2-polar b2: ~F?" (mus-ycoeff gen 2)))
-      (if (fneq (mus-frequency gen) 1200.0) (snd-display ";freq 2-polar: ~A" (mus-frequency gen)))
-      (if (fneq (mus-scaler gen) 0.1) (snd-display ";scaler 2-polar: ~A" (mus-scaler gen))))
+      (if (not (two-pole? gen)) (snd-display "~A not 2-polar?" gen))
+      (if (not (= (mus-order gen) 2)) (snd-display "2-polar order: ~D?" (mus-order gen)))
+      (if (fneq (mus-xcoeff gen 0) 1.0) (snd-display "2-polar a0: ~F?" (mus-xcoeff gen 0)))
+      (if (fneq (mus-ycoeff gen 1) -.188) (snd-display "2-polar b1: ~F?" (mus-ycoeff gen 1)))
+      (if (fneq (mus-ycoeff gen 2) .01) (snd-display "2-polar b2: ~F?" (mus-ycoeff gen 2)))
+      (if (fneq (mus-frequency gen) 1200.0) (snd-display "freq 2-polar: ~A" (mus-frequency gen)))
+      (if (fneq (mus-scaler gen) 0.1) (snd-display "scaler 2-polar: ~A" (mus-scaler gen))))
     
     (let ((gen (make-two-pole :frequency 1200.0 :radius .1)))
-      (if (not (two-pole? gen)) (snd-display ";~A not f2-polar?" gen))
-      (if (not (= (mus-order gen) 2)) (snd-display ";f2-polar order: ~D?" (mus-order gen)))
-      (if (fneq (mus-xcoeff gen 0) 1.0) (snd-display ";f2-polar a0: ~F?" (mus-xcoeff gen 0)))
-      (if (fneq (mus-ycoeff gen 1) -.188) (snd-display ";f2-polar b1: ~F?" (mus-ycoeff gen 1)))
-      (if (fneq (mus-ycoeff gen 2) .01) (snd-display ";f2-polar b2: ~F?" (mus-ycoeff gen 2)))
-      (if (fneq (mus-frequency gen) 1200.0) (snd-display ";freq f2-polar: ~A" (mus-frequency gen)))
-      (if (fneq (mus-scaler gen) 0.1) (snd-display ";scaler f2-polar: ~A" (mus-scaler gen))))
+      (if (not (two-pole? gen)) (snd-display "~A not f2-polar?" gen))
+      (if (not (= (mus-order gen) 2)) (snd-display "f2-polar order: ~D?" (mus-order gen)))
+      (if (fneq (mus-xcoeff gen 0) 1.0) (snd-display "f2-polar a0: ~F?" (mus-xcoeff gen 0)))
+      (if (fneq (mus-ycoeff gen 1) -.188) (snd-display "f2-polar b1: ~F?" (mus-ycoeff gen 1)))
+      (if (fneq (mus-ycoeff gen 2) .01) (snd-display "f2-polar b2: ~F?" (mus-ycoeff gen 2)))
+      (if (fneq (mus-frequency gen) 1200.0) (snd-display "freq f2-polar: ~A" (mus-frequency gen)))
+      (if (fneq (mus-scaler gen) 0.1) (snd-display "scaler f2-polar: ~A" (mus-scaler gen))))
     
     (let ((gen (make-two-zero :radius .1 :frequency 1200.0)))
-      (if (not (two-zero? gen)) (snd-display ";~A not 2-zp?" gen))
-      (if (not (= (mus-order gen) 2)) (snd-display ";2-zp order: ~D?" (mus-order gen)))
-      (if (fneq (mus-xcoeff gen 0) 1.0) (snd-display ";2-zp a0: ~F?" (mus-xcoeff gen 0)))
-      (if (fneq (mus-xcoeff gen 1) -.188) (snd-display ";2-zp a1: ~F?" (mus-xcoeff gen 1)))
-      (if (fneq (mus-xcoeff gen 2) .01) (snd-display ";2-zp a2: ~F?" (mus-xcoeff gen 2)))
-      (if (fneq (mus-frequency gen) 1200.0) (snd-display ";freq 2-zp: ~A" (mus-frequency gen)))
-      (if (fneq (mus-scaler gen) 0.1) (snd-display ";scaler 2-zp: ~A" (mus-scaler gen))))
+      (if (not (two-zero? gen)) (snd-display "~A not 2-zp?" gen))
+      (if (not (= (mus-order gen) 2)) (snd-display "2-zp order: ~D?" (mus-order gen)))
+      (if (fneq (mus-xcoeff gen 0) 1.0) (snd-display "2-zp a0: ~F?" (mus-xcoeff gen 0)))
+      (if (fneq (mus-xcoeff gen 1) -.188) (snd-display "2-zp a1: ~F?" (mus-xcoeff gen 1)))
+      (if (fneq (mus-xcoeff gen 2) .01) (snd-display "2-zp a2: ~F?" (mus-xcoeff gen 2)))
+      (if (fneq (mus-frequency gen) 1200.0) (snd-display "freq 2-zp: ~A" (mus-frequency gen)))
+      (if (fneq (mus-scaler gen) 0.1) (snd-display "scaler 2-zp: ~A" (mus-scaler gen))))
     
     (let ((gen (make-two-zero 1200.0 .1)))
-      (if (not (two-zero? gen)) (snd-display ";~A not f2-zp?" gen))
-      (if (not (= (mus-order gen) 2)) (snd-display ";f2-zp order: ~D?" (mus-order gen)))
-      (if (fneq (mus-xcoeff gen 0) 1.0) (snd-display ";f2-zp a0: ~F?" (mus-xcoeff gen 0)))
-      (if (fneq (mus-xcoeff gen 1) -.188) (snd-display ";f2-zp a1: ~F?" (mus-xcoeff gen 1)))
-      (if (fneq (mus-xcoeff gen 2) .01) (snd-display ";f2-zp a2: ~F?" (mus-xcoeff gen 2)))
-      (if (fneq (mus-frequency gen) 1200.0) (snd-display ";freq f2-zp: ~A" (mus-frequency gen)))
-      (if (fneq (mus-scaler gen) 0.1) (snd-display ";scaler f2-zp: ~A" (mus-scaler gen))))
+      (if (not (two-zero? gen)) (snd-display "~A not f2-zp?" gen))
+      (if (not (= (mus-order gen) 2)) (snd-display "f2-zp order: ~D?" (mus-order gen)))
+      (if (fneq (mus-xcoeff gen 0) 1.0) (snd-display "f2-zp a0: ~F?" (mus-xcoeff gen 0)))
+      (if (fneq (mus-xcoeff gen 1) -.188) (snd-display "f2-zp a1: ~F?" (mus-xcoeff gen 1)))
+      (if (fneq (mus-xcoeff gen 2) .01) (snd-display "f2-zp a2: ~F?" (mus-xcoeff gen 2)))
+      (if (fneq (mus-frequency gen) 1200.0) (snd-display "freq f2-zp: ~A" (mus-frequency gen)))
+      (if (fneq (mus-scaler gen) 0.1) (snd-display "scaler f2-zp: ~A" (mus-scaler gen))))
     
     (let ((gen (make-formant 1200.0 0.9))
 	  (v0 (make-float-vector 10)))
@@ -14556,15 +14556,15 @@ EDITS: 2
 	(fill-float-vector v1 (let ((val (if (formant? gen1) (formant gen1 inp) -1.0)))
 				(set! inp 0.0)
 				val))
-	(if (not (mus-arrays-equal? v0 v1)) (snd-display ";map formant: ~A ~A" v0 v1)))
-      (if (not (formant? gen)) (snd-display ";~A not formant?" gen))
-      (if (not (= (mus-order gen) 2)) (snd-display ";formant order: ~D?" (mus-order gen)))
-      (if (fneq (mus-frequency gen) 1200.0) (snd-display ";formant frequency: ~F?" (mus-frequency gen)))
-      (if (or (fneq (v0 0) .095) (fneq (v0 1) .161)) (snd-display ";formant output: ~A" v0))
-      (if (fneq (mus-scaler gen) 0.9) (snd-display ";formant gain: ~F?" (mus-scaler gen)))
+	(if (not (mus-arrays-equal? v0 v1)) (snd-display "map formant: ~A ~A" v0 v1)))
+      (if (not (formant? gen)) (snd-display "~A not formant?" gen))
+      (if (not (= (mus-order gen) 2)) (snd-display "formant order: ~D?" (mus-order gen)))
+      (if (fneq (mus-frequency gen) 1200.0) (snd-display "formant frequency: ~F?" (mus-frequency gen)))
+      (if (or (fneq (v0 0) .095) (fneq (v0 1) .161)) (snd-display "formant output: ~A" v0))
+      (if (fneq (mus-scaler gen) 0.9) (snd-display "formant gain: ~F?" (mus-scaler gen)))
       
       (set! (mus-scaler gen) 2.0)
-      (if (fneq (mus-scaler gen) 2.0) (snd-display ";formant set gain: ~F?" (mus-scaler gen))))
+      (if (fneq (mus-scaler gen) 2.0) (snd-display "formant set gain: ~F?" (mus-scaler gen))))
     
     (test-gen-equal (let ((f1 (make-formant 1200.0 0.9))) (formant f1 1.0) f1)
 		    (let ((f2 (make-formant 1200.0 0.9))) (formant f2 1.0) f2)
@@ -14593,7 +14593,7 @@ EDITS: 2
 	(set! (v0 i) (+ (* 0.5 (formant f0 val)) (* 0.25 (formant f1 val))))
 	(set! (v1 i) (formant-bank fs val))
 	(set! val 0.0))
-      (if (not (mus-arrays-equal? v0 v1)) (snd-display ";formant bank 1: ~A ~A" v0 v1)))
+      (if (not (mus-arrays-equal? v0 v1)) (snd-display "formant bank 1: ~A ~A" v0 v1)))
     
     (let ((fs (make-vector 2))
 	  (amps (make-float-vector 2 1.0))
@@ -14605,7 +14605,7 @@ EDITS: 2
       (set! (amps 1) 0.25)
       (let ((val 1.0))
 	(fill-float-vector v (let ((res (formant-bank fs val))) (set! val 0.0) res))
-	(if (not (mus-arrays-equal? v (float-vector 0.368 0.095 -0.346 -0.091 -0.020))) (snd-display ";run formant-bank: ~A" v))))
+	(if (not (mus-arrays-equal? v (float-vector 0.368 0.095 -0.346 -0.091 -0.020))) (snd-display "run formant-bank: ~A" v))))
     
     (let ((ob (open-sound "oboe.snd")))
       ;; test courtesy of Anders Vinjar
@@ -14640,15 +14640,15 @@ EDITS: 2
 	(fill-float-vector v1 (let ((val (if (firmant? gen1) (firmant gen1 inp) -1.0)))
 				(set! inp 0.0)
 				val))
-	(if (not (mus-arrays-equal? v0 v1)) (snd-display ";map firmant: ~A ~A" v0 v1)))
-      (if (not (firmant? gen)) (snd-display ";~A not firmant?" gen))
-      (if (not (= (mus-order gen) 2)) (snd-display ";firmant order: ~D?" (mus-order gen)))
-      (if (fneq (mus-frequency gen) 1200.0) (snd-display ";firmant frequency: ~F?" (mus-frequency gen)))
-      (if (or (fneq (v0 0) .058) (fneq (v0 1) .099)) (snd-display ";firmant output: ~A" v0))
-      (if (fneq (mus-scaler gen) 0.9) (snd-display ";firmant gain: ~F?" (mus-scaler gen)))
+	(if (not (mus-arrays-equal? v0 v1)) (snd-display "map firmant: ~A ~A" v0 v1)))
+      (if (not (firmant? gen)) (snd-display "~A not firmant?" gen))
+      (if (not (= (mus-order gen) 2)) (snd-display "firmant order: ~D?" (mus-order gen)))
+      (if (fneq (mus-frequency gen) 1200.0) (snd-display "firmant frequency: ~F?" (mus-frequency gen)))
+      (if (or (fneq (v0 0) .058) (fneq (v0 1) .099)) (snd-display "firmant output: ~A" v0))
+      (if (fneq (mus-scaler gen) 0.9) (snd-display "firmant gain: ~F?" (mus-scaler gen)))
       
       (set! (mus-scaler gen) .20)
-      (if (fneq (mus-scaler gen) .20) (snd-display ";firmant set gain: ~F?" (mus-scaler gen))))
+      (if (fneq (mus-scaler gen) .20) (snd-display "firmant set gain: ~F?" (mus-scaler gen))))
     
     (test-gen-equal (let ((f1 (make-firmant 1200.0 0.9))) (firmant f1 1.0) f1)
 		    (let ((f2 (make-firmant 1200.0 0.9))) (firmant f2 1.0) f2)
@@ -14662,90 +14662,90 @@ EDITS: 2
     
     (let ((gen (make-fft-window hamming-window 16)))
       (if (not (mus-arrays-equal? gen (float-vector 0.080 0.115 0.215 0.364 0.540 0.716 0.865 1.000 1.000 0.865 0.716 0.540 0.364 0.215 0.115 0.080)))
-	  (snd-display ";hamming window: ~A" gen)))
+	  (snd-display "hamming window: ~A" gen)))
     (let ((gen (make-fft-window rectangular-window 16)))
       (if (not (mus-arrays-equal? gen (make-float-vector 16 1.0)))
-	  (snd-display ";rectangular window: ~A" gen)))
+	  (snd-display "rectangular window: ~A" gen)))
     (let ((gen (make-fft-window hann-window 16)))
       (if (not (mus-arrays-equal? gen (float-vector 0.000 0.038 0.146 0.309 0.500 0.691 0.854 1.000 1.000 0.854 0.691 0.500 0.309 0.146 0.038 0.000)))
-	  (snd-display ";hann window: ~A" gen)))
+	  (snd-display "hann window: ~A" gen)))
     (let ((gen (make-fft-window welch-window 16)))
       (if (not (mus-arrays-equal? gen (float-vector 0.000 0.234 0.438 0.609 0.750 0.859 0.938 1.000 1.000 0.938 0.859 0.750 0.609 0.438 0.234 0.000)))
-	  (snd-display ";welch window: ~A" gen)))
+	  (snd-display "welch window: ~A" gen)))
     (let ((gen (make-fft-window connes-window 16)))
       (if (not (mus-arrays-equal? gen (float-vector 0.000 0.055 0.191 0.371 0.562 0.739 0.879 1.000 1.000 0.879 0.739 0.562 0.371 0.191 0.055 0.000)))
-	  (snd-display ";connes window: ~A" gen)))
+	  (snd-display "connes window: ~A" gen)))
     (let ((gen (make-fft-window parzen-window 16)))
       (if (not (mus-arrays-equal? gen (float-vector 0.000 0.125 0.250 0.375 0.500 0.625 0.750 1.000 1.000 0.750 0.625 0.500 0.375 0.250 0.125 0.000)))
-	  (snd-display ";parzen window: ~A" gen)))
+	  (snd-display "parzen window: ~A" gen)))
     (let ((gen (make-fft-window bartlett-window 16)))
       (if (not (mus-arrays-equal? gen (float-vector 0.000 0.125 0.250 0.375 0.500 0.625 0.750 1.000 1.000 0.750 0.625 0.500 0.375 0.250 0.125 0.000)))
-	  (snd-display ";bartlett window: ~A" gen)))
+	  (snd-display "bartlett window: ~A" gen)))
     (let ((gen (make-fft-window blackman2-window 16)))
       (if (not (mus-arrays-equal? gen (float-vector 0.005 0.020 0.071 0.177 0.344 0.558 0.775 1.000 1.000 0.775 0.558 0.344 0.177 0.071 0.020 0.005)))
-	  (snd-display ";blackman2 window: ~A" gen)))
+	  (snd-display "blackman2 window: ~A" gen)))
     (let ((gen (make-fft-window blackman3-window 16)))
       (if (not (mus-arrays-equal? gen (float-vector 0.000 0.003 0.022 0.083 0.217 0.435 0.696 1.000 1.000 0.696 0.435 0.217 0.083 0.022 0.003 0.000)))
-	  (snd-display ";blackman3 window: ~A" gen)))
+	  (snd-display "blackman3 window: ~A" gen)))
     (let ((gen (make-fft-window blackman4-window 16)))
       (if (not (mus-arrays-equal? gen (float-vector 0.002 0.002 0.003 0.017 0.084 0.263 0.562 1.000 1.000 0.562 0.263 0.084 0.017 0.003 0.002 0.002)))
-	  (snd-display ";blackman4 window: ~A" gen)))
+	  (snd-display "blackman4 window: ~A" gen)))
     
     (let ((gen (make-fft-window blackman5-window 16)))
       (if (not (mus-arrays-equal? gen (float-vector 0.000 0.000 0.003 0.022 0.097 0.280 0.574 1.000 1.000 0.574 0.280 0.097 0.022 0.003 0.000 0.000)))
-	  (snd-display ";blackman5 window: ~A" gen)))
+	  (snd-display "blackman5 window: ~A" gen)))
     (let ((gen (make-fft-window blackman6-window 16)))
       (if (not (mus-arrays-equal? gen (float-vector 0.000 0.000 0.001 0.011 0.064 0.223 0.520 1.000 1.000 0.520 0.223 0.064 0.011 0.001 0.000 0.000)))
-	  (snd-display ";blackman6 window: ~A" gen)))
+	  (snd-display "blackman6 window: ~A" gen)))
     (let ((gen (make-fft-window blackman7-window 16)))
       (if (not (mus-arrays-equal? gen (float-vector 0.000 0.000 0.000 0.006 0.042 0.177 0.471 1.000 1.000 0.471 0.177 0.042 0.006 0.000 0.000 0.000)))
-	  (snd-display ";blackman7 window: ~A" gen)))
+	  (snd-display "blackman7 window: ~A" gen)))
     (let ((gen (make-fft-window blackman8-window 16)))
       (if (not (mus-arrays-equal? gen (float-vector 0.000 0.000 0.000 0.003 0.028 0.141 0.426 1.000 1.000 0.426 0.141 0.028 0.003 0.000 0.000 0.000)))
-	  (snd-display ";blackman8 window: ~A" gen)))
+	  (snd-display "blackman8 window: ~A" gen)))
     (let ((gen (make-fft-window blackman9-window 16)))
       (if (not (mus-arrays-equal? gen (float-vector 0.000 0.000 0.000 0.001 0.018 0.112 0.385 1.000 1.000 0.385 0.112 0.018 0.001 0.000 0.000 -0.000)))
-	  (snd-display ";blackman9 window: ~A" gen)))
+	  (snd-display "blackman9 window: ~A" gen)))
     (let ((gen (make-fft-window blackman10-window 16)))
       (if (not (mus-arrays-equal? gen (float-vector 0.000 0.000 0.000 0.001 0.012 0.089 0.349 1.000 1.000 0.349 0.089 0.012 0.001 0.000 0.000 -0.000)))
-	  (snd-display ";blackman10 window: ~A" gen)))
+	  (snd-display "blackman10 window: ~A" gen)))
     (let ((gen (make-fft-window rv2-window 16)))
       (if (not (mus-arrays-equal? gen (float-vector 0.000 0.001 0.021 0.095 0.250 0.478 0.729 1.000 1.000 0.729 0.478 0.250 0.095 0.021 0.001 0.000)))
-	  (snd-display ";rv2 window: ~A" gen)))
+	  (snd-display "rv2 window: ~A" gen)))
     (let ((gen (make-fft-window rv3-window 16)))
       (if (not (mus-arrays-equal? gen (float-vector 0.000 0.000 0.003 0.029 0.125 0.330 0.622 1.000 1.000 0.622 0.330 0.125 0.029 0.003 0.000 0.000)))
-	  (snd-display ";rv3 window: ~A" gen)))
+	  (snd-display "rv3 window: ~A" gen)))
     (let ((gen (make-fft-window rv4-window 16)))
       (if (not (mus-arrays-equal? gen (float-vector 0.000 0.000 0.000 0.009 0.062 0.228 0.531 1.000 1.000 0.531 0.228 0.062 0.009 0.000 0.000 0.000)))
-	  (snd-display ";rv4 window: ~A" gen)))
+	  (snd-display "rv4 window: ~A" gen)))
     
     (let ((gen (make-fft-window exponential-window 16)))
       (if (not (mus-arrays-equal? gen (float-vector 0.000 0.087 0.181 0.283 0.394 0.515 0.646 0.944 0.944 0.646 0.515 0.394 0.283 0.181 0.087 0.000)))
-	  (snd-display ";exponential window: ~A" gen)))
+	  (snd-display "exponential window: ~A" gen)))
     (let ((gen (make-fft-window riemann-window 16)))
       (if (not (mus-arrays-equal? gen (float-vector 0.000 0.139 0.300 0.471 0.637 0.784 0.900 1.000 1.000 0.900 0.784 0.637 0.471 0.300 0.139 0.000)))
-	  (snd-display ";riemann window: ~A" gen)))
+	  (snd-display "riemann window: ~A" gen)))
     (let ((gen (make-fft-window kaiser-window 16 2.5)))
       (if (not (mus-arrays-equal? gen (float-vector 0.304 0.426 0.550 0.670 0.779 0.871 0.941 1.000 1.000 0.941 0.871 0.779 0.670 0.550 0.426 0.304)))
-	  (snd-display ";kaiser window: ~A" gen)))
+	  (snd-display "kaiser window: ~A" gen)))
     (let ((gen (make-fft-window cauchy-window 16 2.5)))
       (if (not (mus-arrays-equal? gen (float-vector 0.138 0.173 0.221 0.291 0.390 0.532 0.719 1.000 1.000 0.719 0.532 0.390 0.291 0.221 0.173 0.138)))
-	  (snd-display ";cauchy window: ~A" gen)))
+	  (snd-display "cauchy window: ~A" gen)))
     (let ((gen (make-fft-window poisson-window 16 2.5)))
       (if (not (mus-arrays-equal? gen (float-vector 0.082 0.112 0.153 0.210 0.287 0.392 0.535 1.000 1.000 0.535 0.392 0.287 0.210 0.153 0.112 0.082)))
-	  (snd-display ";poisson window: ~A" gen)))
+	  (snd-display "poisson window: ~A" gen)))
     (let ((gen (make-fft-window gaussian-window 16 1.0)))
       (if (not (mus-arrays-equal? gen (float-vector 0.607 0.682 0.755 0.823 0.882 0.932 0.969 1.000 1.000 0.969 0.932 0.882 0.823 0.755 0.682 0.607)))
-	  (snd-display ";gaussian window: ~A" gen)))
+	  (snd-display "gaussian window: ~A" gen)))
     (let ((gen (make-fft-window tukey-window 16)))
       (if (not (mus-arrays-equal? gen (float-vector 0.000 0.038 0.146 0.309 0.500 0.691 0.854 1.000 1.000 0.854 0.691 0.500 0.309 0.146 0.038 0.000)))
-	  (snd-display ";tukey window: ~A" gen)))
+	  (snd-display "tukey window: ~A" gen)))
     (let ((gen (make-fft-window hann-poisson-window 16)))
       (if (not (mus-arrays-equal? gen (float-vector 0.000 0.038 0.146 0.309 0.500 0.691 0.854 1.000 1.000 0.854 0.691 0.500 0.309 0.146 0.038 0.000)))
-	  (snd-display ";tukey window: ~A" gen)))
+	  (snd-display "tukey window: ~A" gen)))
     (let ((gen (make-fft-window bohman-window 16)))
       (if (not (mus-arrays-equal? gen (float-vector 0.000 0.006 0.048 0.151 0.318 0.533 0.755 1.000 1.000 0.755 0.533 0.318 0.151 0.048 0.006 0.000)))
-	  (snd-display ";bohman window: ~A" gen)))
+	  (snd-display "bohman window: ~A" gen)))
     
     (for-each
      (lambda (window-data)
@@ -14760,7 +14760,7 @@ EDITS: 2
 	      (ang 0.0 (+ ang incr)))
 	     ((> i 8) ; yikes -- even size + smallness = questionable code...
 	      (if (not (mus-arrays-equal? v1 v2)) 
-		  (snd-display ";~A by hand:~%;  mus: ~A~%;  loc: ~A" name v1 v2)))
+		  (snd-display "~A by hand:~%;  mus: ~A~%;  loc: ~A" name v1 v2)))
 	   (let ((val (func ang)))
 	     (set! (v2 i) val)
 	     (set! (v2 j) val)))))
@@ -14945,7 +14945,7 @@ EDITS: 2
       (let ((val (+ 0.62 (* -0.48 (abs (- (/ i 31) 0.5))) (* 0.38 (cos (* 2 pi (- (/ i 31) 0.5)))))))
 	(when (> (abs (- val (win i))) .03)
 	  (set! unhappy #t)
-	  (snd-display ";bartlett-hann at ~D: ~A ~A" i val (win i)))))
+	  (snd-display "bartlett-hann at ~D: ~A ~A" i val (win i)))))
     (do ((win (make-fft-window flat-top-window 32))
 	 (unhappy #f)
       (i 0 (+ i 1))) 
@@ -14957,52 +14957,52 @@ EDITS: 2
 		    (* 0.0069 (cos (/ (* 8 pi i) 31))))))
 	(when (> (abs (- val (win i))) .1) ; error is much less, of course, in a bigger window
 	  (set! unhappy #t)
-	  (snd-display ";flat-top at ~D: ~A ~A" i val (win i)))))
+	  (snd-display "flat-top at ~D: ~A ~A" i val (win i)))))
     (catch #t
 	   (lambda ()
 	     (let ((gen (make-fft-window samaraki-window 16)))
 	       (if (not (mus-arrays-equal? gen (float-vector 1.000 0.531 0.559 0.583 0.604 0.620 0.631 0.638 0.640 0.638 0.631 0.620 0.604 0.583 0.559 0.531)))
-		   (snd-display ";samaraki window: ~A" gen)))
+		   (snd-display "samaraki window: ~A" gen)))
 	     (let ((gen (make-fft-window ultraspherical-window 16)))
 	       (if (not (mus-arrays-equal? gen (float-vector 1.000 0.033 0.034 0.035 0.036 0.036 0.037 0.037 0.037 0.037 0.037 0.036 0.036 0.035 0.034 0.033)))
-		   (snd-display ";ultraspherical window: ~A" gen)))
+		   (snd-display "ultraspherical window: ~A" gen)))
 	     (let ((gen (make-fft-window dolph-chebyshev-window 16)))
 	       (if (not (mus-arrays-equal? gen (float-vector 1.000 0.033 0.034 0.035 0.036 0.036 0.037 0.037 0.037 0.037 0.037 0.036 0.036 0.035 0.034 0.033)))
-		   (snd-display ";dolph-chebyshev window: ~A" gen)))
+		   (snd-display "dolph-chebyshev window: ~A" gen)))
 	     
 	     (without-errors
 	      (let ((gen (make-fft-window dolph-chebyshev-window 16 1.0)))
 		(if (not (mus-arrays-equal? gen (float-vector 1.000 0.274 0.334 0.393 0.446 0.491 0.525 0.546 0.553 0.546 0.525 0.491 0.446 0.393 0.334 0.274)))
-		    (snd-display ";dolph-chebyshev window: ~A" gen))))
+		    (snd-display "dolph-chebyshev window: ~A" gen))))
 	     
 	     (let ((val1 (make-fft-window ultraspherical-window 16 0.0 0.0))
 		   (val2 (make-fft-window dolph-chebyshev-window 16 0.0)))
-	       (if (not (mus-arrays-equal? val1 val2)) (snd-display ";ultra/dolph 0: ~A ~A" val1 val2)))  
+	       (if (not (mus-arrays-equal? val1 val2)) (snd-display "ultra/dolph 0: ~A ~A" val1 val2)))  
 	     (let ((val1 (make-fft-window ultraspherical-window 16 0.0 1.0))
 		   (val2 (make-fft-window samaraki-window 16 0.0)))
-	       (if (not (mus-arrays-equal? val1 val2)) (snd-display ";ultra/sam 0: ~A ~A" val1 val2)))
+	       (if (not (mus-arrays-equal? val1 val2)) (snd-display "ultra/sam 0: ~A ~A" val1 val2)))
 	     (let ((val1 (make-fft-window ultraspherical-window 16 0.5 0.0))
 		   (val2 (make-fft-window dolph-chebyshev-window 16 0.5)))
-	       (if (not (mus-arrays-equal? val1 val2)) (snd-display ";ultra/dolph 5: ~A ~A" val1 val2)))  
+	       (if (not (mus-arrays-equal? val1 val2)) (snd-display "ultra/dolph 5: ~A ~A" val1 val2)))  
 	     (let ((val1 (make-fft-window ultraspherical-window 16 0.5 1.0))
 		   (val2 (make-fft-window samaraki-window 16 0.5)))
-	       (if (not (mus-arrays-equal? val1 val2)) (snd-display ";ultra/sam 5: ~A ~A" val1 val2)))
+	       (if (not (mus-arrays-equal? val1 val2)) (snd-display "ultra/sam 5: ~A ~A" val1 val2)))
 	     (let ((val1 (dolph 16 1.0))
 		   (val2 (make-fft-window dolph-chebyshev-window 16 1.0)))
-	       (if (not (mus-arrays-equal? val1 val2)) (snd-display ";dolph/dolph 1: ~A ~A" val1 val2))))
-	   (lambda args (snd-display ";new windows: ~A" args)))
+	       (if (not (mus-arrays-equal? val1 val2)) (snd-display "dolph/dolph 1: ~A ~A" val1 val2))))
+	   (lambda args (snd-display "new windows: ~A" args)))
     
     (when (defined? 'gsl-eigenvectors)
       (let ((win (make-dpss-window 16 .01)))
 	(if (not (mus-arrays-equal? win (float-vector 0.964 0.973 0.981 0.987 0.992 0.996 0.999 1.000 1.000 0.999 0.996 0.992 0.987 0.981 0.973 0.964)))
-	    (snd-display ";make-dpss-window 16 .01: ~A" win)))
+	    (snd-display "make-dpss-window 16 .01: ~A" win)))
       (let ((win (make-dpss-window 16 .1)))
 	(if (not (mus-arrays-equal? win (float-vector 0.090 0.193 0.332 0.494 0.664 0.818 0.936 1.000 1.000 0.936 0.818 0.664 0.494 0.332 0.193 0.090)))
-	    (snd-display ";make-dpss-window 16 .1: ~A" win)))
+	    (snd-display "make-dpss-window 16 .1: ~A" win)))
       (let ((win (make-dpss-window 32 .09)))
 	(if (not (mus-arrays-equal? win (float-vector 0.004 0.011 0.025 0.050 0.086 0.138 0.206 0.290 0.388 0.496 0.610 0.722 0.823 0.908 0.968 1.000 
 					   1.000 0.968 0.908 0.823 0.722 0.610 0.496 0.388 0.290 0.206 0.138 0.086 0.050 0.025 0.011 0.004)))
-	    (snd-display ";make-dpss-window 32 .09: ~A" win)))
+	    (snd-display "make-dpss-window 32 .09: ~A" win)))
       
       (for-each
        (lambda (n)
@@ -15011,21 +15011,21 @@ EDITS: 2
 	    (let ((win1 (make-dpss-window n beta))
 		  (win2 (make-fft-window dpss-window n beta)))
 	      (if (not (mus-arrays-equal? win1 win2))
-		  (snd-display ";dpss-windows:~%    ~A~%    ~A" win1 win2))))
+		  (snd-display "dpss-windows:~%    ~A~%    ~A" win1 win2))))
 	  '(.01 .07 .12 .2)))
        '(16 32)))
     
     (let ((win (make-papoulis-window 32)))
       (if (not (mus-arrays-equal? win (float-vector 0.000 0.001 0.006 0.021 0.048 0.091 0.151 0.227 0.318 0.422 0.533 0.647 0.755 0.852 0.930 0.982 
 				1.000 0.982 0.930 0.852 0.755 0.647 0.533 0.422 0.318 0.227 0.151 0.091 0.048 0.021 0.006 0.001)))
-	  (snd-display ";make-papoulis-window 32: ~A" win)))
+	  (snd-display "make-papoulis-window 32: ~A" win)))
     
     (for-each
      (lambda (n)
        (let ((win1 (make-papoulis-window n))
 	     (win2 (make-fft-window papoulis-window n)))
 	 (if (not (mus-arrays-equal? win1 win2))
-	     (snd-display ";papoulis-windows:~%    ~A~%    ~A" win1 win2))))
+	     (snd-display "papoulis-windows:~%    ~A~%    ~A" win1 win2))))
      '(32 64 256))
     
     
@@ -15033,10 +15033,10 @@ EDITS: 2
       (print-and-check gen 
 		       "env"
 		       "env linear, pass: 0 (dur: 11), index: 0, scaler: 0.5000, offset: 0.0000, data: [0 0 1 1 2 0]")
-      (if (not (env? gen)) (snd-display ";~A not env?" gen))
-      (if (fneq (mus-scaler gen) 0.5) (snd-display ";env scaler ~F?" (mus-scaler gen)))
-      (if (fneq (mus-increment gen) 1.0) (snd-display ";env base (1.0): ~A?" (mus-increment gen)))
-      (if (not (= (mus-length gen) 11)) (snd-display ";env length: ~A" (mus-length gen)))
+      (if (not (env? gen)) (snd-display "~A not env?" gen))
+      (if (fneq (mus-scaler gen) 0.5) (snd-display "env scaler ~F?" (mus-scaler gen)))
+      (if (fneq (mus-increment gen) 1.0) (snd-display "env base (1.0): ~A?" (mus-increment gen)))
+      (if (not (= (mus-length gen) 11)) (snd-display "env length: ~A" (mus-length gen)))
       (let ((v0 (make-float-vector 10)))
 	(do ((i 0 (+ i 1)))
 	    ((= i 10))
@@ -15047,60 +15047,60 @@ EDITS: 2
 	  (fill-float-vector v1 (begin
 				  (set! off (mus-offset gen1))
 				  (if (env? gen1) (env gen1) -1.0)))
-	  (if (fneq off 0.0) (snd-display ";mus-offset opt: ~A" off))
-	  (if (not (mus-arrays-equal? v0 v1)) (snd-display ";map env: ~A ~A" v0 v1)))
+	  (if (fneq off 0.0) (snd-display "mus-offset opt: ~A" off))
+	  (if (not (mus-arrays-equal? v0 v1)) (snd-display "map env: ~A ~A" v0 v1)))
 	(if (or (fneq (v0 0) 0.0) (fneq (v0 1) .1) (fneq (v0 6) .4))
-	    (snd-display ";~A output: ~A" gen v0))
-	(if (fneq (env-interp 1.6 gen) 0.2) (snd-display ";env-interp ~A at 1.6: ~F?" gen (env-interp 1.5 gen)))
+	    (snd-display "~A output: ~A" gen v0))
+	(if (fneq (env-interp 1.6 gen) 0.2) (snd-display "env-interp ~A at 1.6: ~F?" gen (env-interp 1.5 gen)))
 	(set! gen (make-env :envelope '(0 1 1 0) :base 32.0 :length 11))
-	(if (fneq (mus-increment gen) 32.0) (snd-display ";env base (32.0): ~A?" (mus-increment gen)))
+	(if (fneq (mus-increment gen) 32.0) (snd-display "env base (32.0): ~A?" (mus-increment gen)))
 	(do ((i 0 (+ i 1)))
 	    ((= i 10))
 	  (set! (v0 i) (env gen)))
 	(if (or (fneq (v0 0) 1.0) (fneq (v0 1) .698) (fneq (v0 8) .032))
-	    (snd-display ";~A output: ~A" gen v0))
+	    (snd-display "~A output: ~A" gen v0))
 	(set! gen (make-env :envelope '(0 1 1 0) :base .0325 :length 11))
-	(if (fneq (mus-increment gen) .0325) (snd-display ";env base (.0325): ~A?" (mus-increment gen)))
+	(if (fneq (mus-increment gen) .0325) (snd-display "env base (.0325): ~A?" (mus-increment gen)))
 	(do ((i 0 (+ i 1)))
 	    ((= i 10))
 	  (set! (v0 i) (env gen)))
 	(if (or (fneq (v0 0) 1.0) (fneq (v0 1) .986) (fneq (v0 8) .513))
-	    (snd-display ";~A output: ~A" gen v0))
+	    (snd-display "~A output: ~A" gen v0))
 	(set! gen (make-env :envelope '(0 1 1 .5 2 0) :base 0.0 :length 11 :offset 1.0))
-	(if (fneq (mus-offset gen) 1.0) (snd-display ";mus-offset: ~A" (mus-offset gen)))
-	(if (fneq (mus-increment gen) 0.0) (snd-display ";env base (0.0): ~A?" (mus-increment gen)))
+	(if (fneq (mus-offset gen) 1.0) (snd-display "mus-offset: ~A" (mus-offset gen)))
+	(if (fneq (mus-increment gen) 0.0) (snd-display "env base (0.0): ~A?" (mus-increment gen)))
 	(do ((i 0 (+ i 1)))
 	    ((= i 10))
 	  (if (and (= i 3)
 		   (not (= (mus-location gen) 3)))
-	      (snd-display ";env location: ~A?" (mus-location gen)))
+	      (snd-display "env location: ~A?" (mus-location gen)))
 	  (set! (v0 i) (env gen)))
 	(if (or (fneq (v0 0) 2.0) (fneq (v0 6) 1.5) (fneq (v0 8) 1.5))
-	    (snd-display ";~A output: ~A" gen v0)))
-      (if (fneq (env-interp 1.5 gen) 1.5) (snd-display ";env-interp ~A at 1.5: ~F?" gen (env-interp 1.5 gen)))
+	    (snd-display "~A output: ~A" gen v0)))
+      (if (fneq (env-interp 1.5 gen) 1.5) (snd-display "env-interp ~A at 1.5: ~F?" gen (env-interp 1.5 gen)))
       (set! (mus-location gen) 6)
-      (if (not (= (mus-location gen) 6)) (snd-display ";set! mus-location ~A (6)?" (mus-location gen)))
+      (if (not (= (mus-location gen) 6)) (snd-display "set! mus-location ~A (6)?" (mus-location gen)))
       (let ((val (env gen)))
-	(if (fneq val 1.5) (snd-display ";set! mus-location 6 -> ~A (1.5)?" val)))
+	(if (fneq val 1.5) (snd-display "set! mus-location 6 -> ~A (1.5)?" val)))
       (set! (mus-location gen) 0)
       (let ((val (env gen)))
-	(if (fneq val 2.0) (snd-display ";set! mus-location 0 -> ~A (2.0)?" val)))
+	(if (fneq val 2.0) (snd-display "set! mus-location 0 -> ~A (2.0)?" val)))
       (let ((gen (make-env '(0 0 1 -1 2 0) :length 11)))
 	(do ((i 0 (+ i 1)))
 	    ((= i 5))
 	  (let ((val (env gen)))
-	    (if (fneq val (/ i -5.0)) (snd-display ";neg env: ~D ~A" i val))))
+	    (if (fneq val (/ i -5.0)) (snd-display "neg env: ~D ~A" i val))))
 	(do ((i 0 (+ i 1)))
 	    ((= i 5))
 	  (let ((val (env gen)))
-	    (if (fneq val (- (/ i 5.0) 1.0)) (snd-display ";neg env: ~D ~A" (+ i 5) val)))))
+	    (if (fneq val (- (/ i 5.0) 1.0)) (snd-display "neg env: ~D ~A" (+ i 5) val)))))
       (do ((gen (make-env '(0 0 1 -1 2 0) :length 11 :base 0.5))
 	   (v (float-vector 0.0 -0.14869 -0.31950 -0.51571 -0.74110 -1.0 -0.74110 -0.51571 -0.31950 -0.14869))
 	   (i 0 (+ i 1)))
 	  ((= i 10)
 	   (mus-apply gen))	     
 	(let ((val (env gen)))
-	  (if (fneq val (v i)) (snd-display ";neg exp env: ~D ~A" i val)))))
+	  (if (fneq val (v i)) (snd-display "neg exp env: ~D ~A" i val)))))
 
     (define (env-fill v e)
       (do ((i 0 (+ i 1)))
@@ -15111,159 +15111,159 @@ EDITS: 2
       (let ((e (make-env '(0 0 1 1) :length 10)))
 	(env-fill v e)
 	(if (not (mus-arrays-equal? v (float-vector 0.000 0.111 0.222 0.333 0.444 0.556 0.667 0.778 0.889 1.000)))
-	    (snd-display ";simple ramp: ~A" v)))
+	    (snd-display "simple ramp: ~A" v)))
       (let ((v (make-float-vector 10))
 	    (e (make-env '(0 0 1 1) :base 0 :length 8)))
 	(env-fill v e)
 	(if (not (mus-arrays-equal? v (float-vector 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.000 1.000)))
-	    (snd-display ";simple ramp, base 0: ~A" v)))
+	    (snd-display "simple ramp, base 0: ~A" v)))
       (let ((v (make-float-vector 10))
 	    (e (make-env '(0 0 1 1 2 .5) :base 0 :length 8)))
 	(env-fill v e)
 	(if (not (mus-arrays-equal? v (float-vector 0.000 0.000 0.000 0.000 1.000 1.000 1.000 1.000 0.500 0.500)))
-	    (snd-display ";two-step, base 0: ~A" v)))
+	    (snd-display "two-step, base 0: ~A" v)))
       (let ((e (make-env '((0 0) (1 1)) :length 10)))
 	(env-fill v e)
 	(if (not (mus-arrays-equal? v (float-vector 0.000 0.111 0.222 0.333 0.444 0.556 0.667 0.778 0.889 1.000)))
-	    (snd-display ";simple ramp embedded: ~A" v)))
+	    (snd-display "simple ramp embedded: ~A" v)))
       (let ((e (make-env '(0 1 1 0) :length 10)))
 	(env-fill v e)
 	(if (not (mus-arrays-equal? v (float-vector 1.000 0.889 0.778 0.667 0.556 0.444 0.333 0.222 0.111 0.000)))
-	    (snd-display ";simple ramp down: ~A" v)))
+	    (snd-display "simple ramp down: ~A" v)))
       (let ((e (make-env '(0 0 1 1 2 0) :length 10)))
 	(env-fill v e)
 	(if (not (mus-arrays-equal? v (float-vector 0.000 0.200 0.400 0.600 0.800 1.000 0.750 0.500 0.250 0.000)))
-	    (snd-display ";simple pyr: ~A" v)))
+	    (snd-display "simple pyr: ~A" v)))
       (let ((e (make-env '((0 0) (1 1) (2 0)) :length 10)))
 	(env-fill v e)
 	(if (not (mus-arrays-equal? v (float-vector 0.000 0.200 0.400 0.600 0.800 1.000 0.750 0.500 0.250 0.000)))
-	    (snd-display ";simple pyr embedded: ~A" v)))
+	    (snd-display "simple pyr embedded: ~A" v)))
       (let ((e (make-env '(0 0 1 1 2 -.5) :length 10)))
 	(env-fill v e)
 	(if (not (mus-arrays-equal? v (float-vector 0.000 0.200 0.400 0.600 0.800 1.000 0.625 0.250 -0.125 -0.500)))
-	    (snd-display ";simple pyr -.5: ~A" v)))
+	    (snd-display "simple pyr -.5: ~A" v)))
       (let ((e (make-env '((0 0) (1 1) (2 -.5)) :length 10)))
 	(env-fill v e)
 	(if (not (mus-arrays-equal? v (float-vector 0.000 0.200 0.400 0.600 0.800 1.000 0.625 0.250 -0.125 -0.500)))
-	    (snd-display ";simple pyr -.5 embedded: ~A" v)))
+	    (snd-display "simple pyr -.5 embedded: ~A" v)))
       (let ((e (make-env '(0 0 1 1 2 -.5) :length 10)))
 	(env-fill v e)
 	(if (not (mus-arrays-equal? v (float-vector 0.000 0.200 0.400 0.600 0.800 1.000 0.625 0.250 -0.125 -0.500)))
-	    (snd-display ";simple pyr -.5: ~A" v))))
+	    (snd-display "simple pyr -.5: ~A" v))))
     
     (let ((v (make-float-vector 10)))
       (let ((e (make-env (float-vector 0 0 1 1) :length 10)))
 	(env-fill v e)
 	(if (not (mus-arrays-equal? v (float-vector 0.000 0.111 0.222 0.333 0.444 0.556 0.667 0.778 0.889 1.000)))
-	     (snd-display ";simple ramp: ~A" v)))
+	     (snd-display "simple ramp: ~A" v)))
       (let ((v (make-float-vector 10))
 	    (e (make-env (float-vector 0 0 1 1) :base 0 :length 8)))
 	(env-fill v e)
 	(if (not (mus-arrays-equal? v (float-vector 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.000 1.000)))
-	    (snd-display ";simple ramp, base 0: ~A" v)))
+	    (snd-display "simple ramp, base 0: ~A" v)))
       (let ((v (make-float-vector 10))
 	    (e (make-env (float-vector 0 0 1 1 2 .5) :base 0 :length 8)))
 	(env-fill v e)
 	(if (not (mus-arrays-equal? v (float-vector 0.000 0.000 0.000 0.000 1.000 1.000 1.000 1.000 0.500 0.500)))
-	    (snd-display ";two-step, base 0: ~A" v)))
+	    (snd-display "two-step, base 0: ~A" v)))
       (let ((e (make-env (float-vector 0 1 1 0) :length 10)))
 	(env-fill v e)
 	(if (not (mus-arrays-equal? v (float-vector 1.000 0.889 0.778 0.667 0.556 0.444 0.333 0.222 0.111 0.000)))
-	    (snd-display ";simple ramp down: ~A" v)))
+	    (snd-display "simple ramp down: ~A" v)))
       (let ((e (make-env (float-vector 0 0 1 1 2 0) :length 10)))
 	(env-fill v e)
 	(if (not (mus-arrays-equal? v (float-vector 0.000 0.200 0.400 0.600 0.800 1.000 0.750 0.500 0.250 0.000)))
-	    (snd-display ";simple pyr: ~A" v)))
+	    (snd-display "simple pyr: ~A" v)))
       (let ((e (make-env (float-vector 0 0 1 1 2 -.5) :length 10)))
 	(env-fill v e)
 	(if (not (mus-arrays-equal? v (float-vector 0.000 0.200 0.400 0.600 0.800 1.000 0.625 0.250 -0.125 -0.500)))
-	    (snd-display ";simple pyr -.5: ~A" v)))
+	    (snd-display "simple pyr -.5: ~A" v)))
       (let ((e (make-env (float-vector 0 0 1 1 2 -.5) :length 10)))
 	(env-fill v e)
 	(if (not (mus-arrays-equal? v (float-vector 0.000 0.200 0.400 0.600 0.800 1.000 0.625 0.250 -0.125 -0.500)))
-	    (snd-display ";simple pyr -.5: ~A" v))))
+	    (snd-display "simple pyr -.5: ~A" v))))
     
     (let ((v (make-float-vector 10)))
       (let ((e (make-env #(0 0 1 1) :length 10)))
 	(env-fill v e)
 	(if (not (mus-arrays-equal? v (float-vector 0.000 0.111 0.222 0.333 0.444 0.556 0.667 0.778 0.889 1.000)))
-	    (snd-display ";simple ramp: ~A" v)))
+	    (snd-display "simple ramp: ~A" v)))
       (let ((v (make-float-vector 10))
 	     (e (make-env #(0 0 1 1) :base 0 :length 8)))
 	(env-fill v e)
 	(if (not (mus-arrays-equal? v (float-vector 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.000 1.000)))
-	    (snd-display ";simple ramp, base 0: ~A" v)))
+	    (snd-display "simple ramp, base 0: ~A" v)))
       (let ((v (make-float-vector 10))
 	    (e (make-env #(0 0 1 1 2 .5) :base 0 :length 8)))
 	(env-fill v e)
 	(if (not (mus-arrays-equal? v (float-vector 0.000 0.000 0.000 0.000 1.000 1.000 1.000 1.000 0.500 0.500)))
-	    (snd-display ";two-step, base 0: ~A" v)))
+	    (snd-display "two-step, base 0: ~A" v)))
       (let ((e (make-env #(0 1 1 0) :length 10)))
 	(env-fill v e)
 	(if (not (mus-arrays-equal? v (float-vector 1.000 0.889 0.778 0.667 0.556 0.444 0.333 0.222 0.111 0.000)))
-	    (snd-display ";simple ramp down: ~A" v)))
+	    (snd-display "simple ramp down: ~A" v)))
       (let ((e (make-env #(0 0 1 1 2 0) :length 10)))
 	(env-fill v e)
 	(if (not (mus-arrays-equal? v (float-vector 0.000 0.200 0.400 0.600 0.800 1.000 0.750 0.500 0.250 0.000)))
-	    (snd-display ";simple pyr: ~A" v)))
+	    (snd-display "simple pyr: ~A" v)))
       (let ((e (make-env #(0 0 1 1 2 -.5) :length 10)))
 	(env-fill v e)
 	(if (not (mus-arrays-equal? v (float-vector 0.000 0.200 0.400 0.600 0.800 1.000 0.625 0.250 -0.125 -0.500)))
-	    (snd-display ";simple pyr -.5: ~A" v)))
+	    (snd-display "simple pyr -.5: ~A" v)))
       (let ((e (make-env #(0 0 1 1 2 -.5) :length 10)))
 	(env-fill v e)
 	(if (not (mus-arrays-equal? v (float-vector 0.000 0.200 0.400 0.600 0.800 1.000 0.625 0.250 -0.125 -0.500)))
-	    (snd-display ";simple pyr -.5: ~A" v))))
+	    (snd-display "simple pyr -.5: ~A" v))))
     
     (let ((e (make-env '(0 0 1 1) :length 10)))
-      (if (fneq (env-interp 1.0 e) 1.0) (snd-display ";env-interp 0011 at 1: ~A" (env-interp 1.0 e)))
-      (if (fneq (env-interp 2.0 e) 1.0) (snd-display ";env-interp 0011 at 2: ~A" (env-interp 2.0 e)))
-      (if (fneq (env-interp 0.0 e) 0.0) (snd-display ";env-interp 0011 at 0: ~A" (env-interp 0.0 e)))
-      (if (fneq (env-interp 0.444 e) 0.444) (snd-display ";env-interp 0011 at .444: ~A" (env-interp 0.45 e)))
+      (if (fneq (env-interp 1.0 e) 1.0) (snd-display "env-interp 0011 at 1: ~A" (env-interp 1.0 e)))
+      (if (fneq (env-interp 2.0 e) 1.0) (snd-display "env-interp 0011 at 2: ~A" (env-interp 2.0 e)))
+      (if (fneq (env-interp 0.0 e) 0.0) (snd-display "env-interp 0011 at 0: ~A" (env-interp 0.0 e)))
+      (if (fneq (env-interp 0.444 e) 0.444) (snd-display "env-interp 0011 at .444: ~A" (env-interp 0.45 e)))
       (mus-reset e)
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
 	(let ((val (env e)))
-	  (if (fneq val (* i .111111)) (snd-display ";ramp env over 10: ~A at ~A" val i)))))
+	  (if (fneq val (* i .111111)) (snd-display "ramp env over 10: ~A at ~A" val i)))))
     (do ((e (make-env '(0 0 .5 .5 1 1) :base 32 :length 10))
 	 (v (float-vector 0.0 0.0243 0.0667 0.1412 0.2716 0.5000 0.5958 0.7090 0.8425 1.0))
 	 (i 0 (+ i 1))
 	 (x 0.0 (+ x 0.11111)))
 	((= i 10))
       (let ((val (env-interp x e)))
-	(if (fneq val (v i)) (snd-display ";(0 .5 1) env-interp over 10: ~A at ~A (~A)" val i (v i)))))
+	(if (fneq val (v i)) (snd-display "(0 .5 1) env-interp over 10: ~A at ~A (~A)" val i (v i)))))
     (do ((e (make-env '(0 -1.0 1 1) :base 32 :length 10))
 	 (v (float-vector -1.0 -0.9697 -0.9252 -0.8597 -0.7635 -0.6221 -0.4142 -0.1088 0.34017 1.0))
 	 (i 0 (+ i 1))
 	 (x 0.0 (+ x 0.11111)))
 	((= i 10))
       (let ((val (env-interp x e)))
-	(if (fneq val (v i)) (snd-display ";(-1 1) env-interp over 10: ~A at ~A (~A)" val i (v i)))))
+	(if (fneq val (v i)) (snd-display "(-1 1) env-interp over 10: ~A at ~A (~A)" val i (v i)))))
     (do ((e (make-env '(0 -1.0 .5 .5 1 0) :base 32 :length 10))
 	 (v (float-vector -1.0 -0.952 -0.855 -0.661 -0.274 0.5 0.356 0.226 0.107 0.0))
 	 (i 0 (+ i 1))
 	 (x 0.0 (+ x 0.11111)))
 	((= i 10))
       (let ((val (env-interp x e)))
-	(if (fneq val (v i)) (snd-display ";(-1 .5 0) env-interp over 10: ~A at ~A (~A)" val i (v i)))))
+	(if (fneq val (v i)) (snd-display "(-1 .5 0) env-interp over 10: ~A at ~A (~A)" val i (v i)))))
     (do ((e (make-env '(0 0.0 .5 .5 1 -1.0) :base 32 :length 10))
 	 (v (float-vector 0.0 0.085 0.177 0.276 0.384 0.5 -0.397 -0.775 -0.933 -1.0))
 	 (i 0 (+ i 1))
 	 (x 0.0 (+ x 0.11111)))
 	((= i 10))
       (let ((val (env-interp x e)))
-	(if (fneq val (v i)) (snd-display ";(0 .5 -1) env-interp over 10: ~A at ~A (~A)" val i (v i)))))
+	(if (fneq val (v i)) (snd-display "(0 .5 -1) env-interp over 10: ~A at ~A (~A)" val i (v i)))))
     (let ((e (make-env '(0 0 1 1) :length 10 :base 4.0)))
-      (if (fneq (env-interp 1.0 e) 1.0) (snd-display ";env-interp 0011 4 at 1: ~A" (env-interp 1.0 e)))
-      (if (fneq (env-interp 0.0 e) 0.0) (snd-display ";env-interp 0011 4 at 0: ~A" (env-interp 0.0 e)))
-      (if (fneq (env-interp 0.45 e) 0.2839) (snd-display ";env-interp 0011 4 at .45: ~A" (env-interp 0.45 e))))
+      (if (fneq (env-interp 1.0 e) 1.0) (snd-display "env-interp 0011 4 at 1: ~A" (env-interp 1.0 e)))
+      (if (fneq (env-interp 0.0 e) 0.0) (snd-display "env-interp 0011 4 at 0: ~A" (env-interp 0.0 e)))
+      (if (fneq (env-interp 0.45 e) 0.2839) (snd-display "env-interp 0011 4 at .45: ~A" (env-interp 0.45 e))))
     (let ((e (make-env '(0 0 1 1) :length 10 :base 0.2)))
-      (if (fneq (env-interp 1.0 e) 1.0) (snd-display ";env-interp 0011 2 at 1: ~A" (env-interp 1.0 e)))
-      (if (fneq (env-interp 0.0 e) 0.0) (snd-display ";env-interp 0011 2 at 0: ~A" (env-interp 0.0 e)))
-      (if (fneq (env-interp 0.45 e) 0.6387) (snd-display ";env-interp 0011 2 at .45: ~A" (env-interp 0.45 e))))
+      (if (fneq (env-interp 1.0 e) 1.0) (snd-display "env-interp 0011 2 at 1: ~A" (env-interp 1.0 e)))
+      (if (fneq (env-interp 0.0 e) 0.0) (snd-display "env-interp 0011 2 at 0: ~A" (env-interp 0.0 e)))
+      (if (fneq (env-interp 0.45 e) 0.6387) (snd-display "env-interp 0011 2 at .45: ~A" (env-interp 0.45 e))))
     
     (let ((val (let ((e (make-env '(0 0 1 1) :length 10 :offset 2.0))) (set! (mus-offset e) 3.0) (mus-offset e))))
-      (if (fneq val 3.0) (snd-display ";set mus-offset env: ~A" val)))
+      (if (fneq val 3.0) (snd-display "set mus-offset env: ~A" val)))
     
     (let ((e (make-env '(0 0 1 1 2 0) :length 10))
 	  (v (make-float-vector 10)))
@@ -15271,44 +15271,44 @@ EDITS: 2
 	  ((= i 10))
 	(set! (v i) (env e)))
       (if (not (mus-arrays-equal? v (float-vector 0.000 0.200 0.400 0.600 0.800 1.000 0.750 0.500 0.250 0.000)))
-	  (snd-display ";e set off 0: ~A" v))
-      (if (not (= (mus-length e) 10)) (snd-display ";e set off 0 len: ~A" (mus-length e)))
-      (if (fneq (mus-scaler e) 1.0) (snd-display ";e set off 0 scl: ~A" (mus-scaler e)))
-      (if (fneq (mus-offset e) 0.0) (snd-display ";e set off 0 off: ~A" (mus-offset e)))
+	  (snd-display "e set off 0: ~A" v))
+      (if (not (= (mus-length e) 10)) (snd-display "e set off 0 len: ~A" (mus-length e)))
+      (if (fneq (mus-scaler e) 1.0) (snd-display "e set off 0 scl: ~A" (mus-scaler e)))
+      (if (fneq (mus-offset e) 0.0) (snd-display "e set off 0 off: ~A" (mus-offset e)))
       (set! (mus-scaler e) 2.0)
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
 	(set! (v i) (env e)))
       (if (not (mus-arrays-equal? v (float-vector 0.000 0.400 0.800 1.200 1.600 2.000 1.500 1.000 0.500 0.000)))
-	  (snd-display ";e set off 1: ~A" v))
-      (if (not (= (mus-length e) 10)) (snd-display ";e set off 1 len: ~A" (mus-length e)))
-      (if (fneq (mus-scaler e) 2.0) (snd-display ";e set off 1 scl: ~A" (mus-scaler e)))
-      (if (fneq (mus-offset e) 0.0) (snd-display ";e set off 1 off: ~A" (mus-offset e)))
+	  (snd-display "e set off 1: ~A" v))
+      (if (not (= (mus-length e) 10)) (snd-display "e set off 1 len: ~A" (mus-length e)))
+      (if (fneq (mus-scaler e) 2.0) (snd-display "e set off 1 scl: ~A" (mus-scaler e)))
+      (if (fneq (mus-offset e) 0.0) (snd-display "e set off 1 off: ~A" (mus-offset e)))
       (set! (mus-offset e) 1.0)
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
 	(set! (v i) (env e)))
       (if (not (mus-arrays-equal? v (float-vector 1.000 1.400 1.800 2.200 2.600 3.000 2.500 2.000 1.500 1.000)))
-	  (snd-display ";e set off 2: ~A" v))
-      (if (not (= (mus-length e) 10)) (snd-display ";e set off 2 len: ~A" (mus-length e)))
-      (if (fneq (mus-scaler e) 2.0) (snd-display ";e set off 2 scl: ~A" (mus-scaler e)))
-      (if (fneq (mus-offset e) 1.0) (snd-display ";e set off 2 off: ~A" (mus-offset e)))
+	  (snd-display "e set off 2: ~A" v))
+      (if (not (= (mus-length e) 10)) (snd-display "e set off 2 len: ~A" (mus-length e)))
+      (if (fneq (mus-scaler e) 2.0) (snd-display "e set off 2 scl: ~A" (mus-scaler e)))
+      (if (fneq (mus-offset e) 1.0) (snd-display "e set off 2 off: ~A" (mus-offset e)))
       (set! (mus-length e) 19)
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
 	(set! (v i) (env e)))
       (if (not (mus-arrays-equal? v (float-vector 1.000 1.222 1.444 1.667 1.889 2.111 2.333 2.556 2.778 3.000)))
-	  (snd-display ";e set off 3: ~A" v))
-      (if (not (= (mus-length e) 19)) (snd-display ";e set off 3 len: ~A" (mus-length e)))
-      (if (fneq (mus-scaler e) 2.0) (snd-display ";e set off 3 scl: ~A" (mus-scaler e)))
-      (if (fneq (mus-offset e) 1.0) (snd-display ";e set off 3 off: ~A" (mus-offset e))))
+	  (snd-display "e set off 3: ~A" v))
+      (if (not (= (mus-length e) 19)) (snd-display "e set off 3 len: ~A" (mus-length e)))
+      (if (fneq (mus-scaler e) 2.0) (snd-display "e set off 3 scl: ~A" (mus-scaler e)))
+      (if (fneq (mus-offset e) 1.0) (snd-display "e set off 3 off: ~A" (mus-offset e))))
     
     (do ((e (make-env (float-vector 0 0 1 1 2 0) :length 10))
 	 (v (make-float-vector 10))
 	 (i 0 (+ i 1)))
 	((= i 10)
 	 (if (not (mus-arrays-equal? v (float-vector 0.000 0.200 0.400 0.600 0.800 1.000 0.750 0.500 0.250 0.000)))
-	     (snd-display ";e from float-vector: ~A" v)))
+	     (snd-display "e from float-vector: ~A" v)))
       (set! (v i) (env e)))
     
     (do ((e1 (make-env '(0 0 1 1) :base 32.0 :length 11))
@@ -15317,7 +15317,7 @@ EDITS: 2
 	((> i 10))
       (let ((val (env e1)))
 	(if (fneq val (v i))
-	    (snd-display ";exp env direct (32.0): ~A ~A" val (v i)))))
+	    (snd-display "exp env direct (32.0): ~A ~A" val (v i)))))
     
     (do ((e1 (make-env '(0 1 1 2) :base 32.0 :length 11))
 	 (v (float-vector 1.000 1.013 1.032 1.059 1.097 1.150 1.226 1.333 1.484 1.698 2.00))
@@ -15325,21 +15325,21 @@ EDITS: 2
 	((> i 10))
       (let ((val (env e1)))
 	(if (fneq val (v i))
-	    (snd-display ";exp env direct (32.0) offset: ~A ~A" val (v i)))))
+	    (snd-display "exp env direct (32.0) offset: ~A ~A" val (v i)))))
     (do ((e1 (make-env '((0 1) (1 2)) :base 32.0 :length 11))
 	 (v (float-vector 1.000 1.013 1.032 1.059 1.097 1.150 1.226 1.333 1.484 1.698 2.00))
 	 (i 0 (+ i 1)))
 	((> i 10))
       (let ((val (env e1)))
 	(if (fneq val (v i))
-	    (snd-display ";exp env direct (32.0) offset embedded: ~A ~A" val (v i)))))
+	    (snd-display "exp env direct (32.0) offset embedded: ~A ~A" val (v i)))))
     (do ((e1 (make-env '(0 1 1 2) :base 32.0 :length 11))
 	 (v (float-vector 1.000 1.013 1.032 1.059 1.097 1.150 1.226 1.333 1.484 1.698 2.00))
 	 (i 0 (+ i 1)))
 	((> i 10))
       (let ((val (env e1)))
 	(if (fneq val (v i))
-	    (snd-display ";exp env direct (32.0) offset (and dur): ~A ~A" val (v i)))))
+	    (snd-display "exp env direct (32.0) offset (and dur): ~A ~A" val (v i)))))
     
     (do ((e1 (make-env '(0 0 1 1) :base 0.032 :length 11))
 	 (v (float-vector 0.000 0.301 0.514 0.665 0.772 0.848 0.902 0.940 0.967 0.986 1.0))
@@ -15347,7 +15347,7 @@ EDITS: 2
 	((> i 10))
       (let ((val (env e1)))
 	(if (fneq val (v i))
-	    (snd-display ";exp env direct (.032): ~A ~A" val (v i)))))
+	    (snd-display "exp env direct (.032): ~A ~A" val (v i)))))
     
     (let ((e1 (make-env '(0 0 1 1) :base .03125 :length 11))
 	  (e2 (make-env '(0 0 1 1 2 0) :base 32.0 :length 11))
@@ -15358,13 +15358,13 @@ EDITS: 2
 	      (lv2 (env e1))
 	      (lv3 (env-interp (* i .2) e2))
 	      (lv4 (env e2)))
-	  (if (ffneq lv1 lv2) (snd-display ";env-interp[rmp ~F]: ~A (~A)?" (* .1 i) lv1 lv2))
-	  (if (ffneq lv3 lv4) (snd-display ";env-interp[pyr ~F]: ~A (~A)?" (* .2 i) lv3 lv4))))
+	  (if (ffneq lv1 lv2) (snd-display "env-interp[rmp ~F]: ~A (~A)?" (* .1 i) lv1 lv2))
+	  (if (ffneq lv3 lv4) (snd-display "env-interp[pyr ~F]: ~A (~A)?" (* .2 i) lv3 lv4))))
       (do ((i 0 (+ i 1)))
 	  ((= i 100))
 	(let ((lv5 (env-interp (* i .02) e3))
 	      (lv6 (env e3)))
-	  (if (ffneq lv5 lv6) (snd-display ";env-interp[tri ~F]: ~A (~A)?" (* .02 i) lv5 lv6)))))
+	  (if (ffneq lv5 lv6) (snd-display "env-interp[tri ~F]: ~A (~A)?" (* .02 i) lv5 lv6)))))
     
     (let ((e1 (make-env '(0 0 1 1 2 0) :length 10))
 	  (lv1 (make-float-vector 11))
@@ -15374,31 +15374,31 @@ EDITS: 2
       (do ((i 0 (+ i 1))) ((= i 11)) (set! (lv2 i) (env e1)))
       (mus-reset e1)
       (do ((i 0 (+ i 1))) ((= i 11)) (set! (lv3 i) (env e1)))
-      (if (not (mus-arrays-equal? lv1 lv3)) (snd-display ";mus-reset: ~A ~A?" lv1 lv3))
-      (if (not (mus-arrays-equal? lv2 (make-float-vector 11))) (snd-display ";mus-reset 1: ~A?" lv2)))
+      (if (not (mus-arrays-equal? lv1 lv3)) (snd-display "mus-reset: ~A ~A?" lv1 lv3))
+      (if (not (mus-arrays-equal? lv2 (make-float-vector 11))) (snd-display "mus-reset 1: ~A?" lv2)))
     
     (let ((gen (make-env '(0 0 1 1 2 0) :length 11)))
       (do ((i 0 (+ i 1))) ((= i 4)) (env gen))
       (let ((val (env gen)))
-	(if (fneq val .8) (snd-display ";env(5): ~A?" val))
+	(if (fneq val .8) (snd-display "env(5): ~A?" val))
 	(mus-reset gen)
 	(do ((i 0 (+ i 1))) ((= i 4)) (env gen))
 	(set! val (env gen))
-	(if (fneq val .8) (snd-display ";mus-reset (via reset): ~A?" val))
+	(if (fneq val .8) (snd-display "mus-reset (via reset): ~A?" val))
 	(set! (mus-location gen) 6)
 	(let ((val (env gen)))
-	  (if (fneq val 0.8) (snd-display ";set! mus-location 6 -> ~A (0.8)?" val)))))
+	  (if (fneq val 0.8) (snd-display "set! mus-location 6 -> ~A (0.8)?" val)))))
     
     (let ((gen (make-env '(0 0 1 1) :base .032 :length 12)))
       (set! (mus-location gen) 5)
       (let ((val (env gen)))
 	(if (fneq val 0.817)
-	    (snd-display ";set env location with base: ~A ~A" val gen))))
+	    (snd-display "set env location with base: ~A ~A" val gen))))
     (let ((gen (make-env '(0 0 1 1) :base .032 :length 12)))
       (set! (mus-location gen) 5)
       (let ((val (env gen)))
 	(if (fneq val 0.817)
-	    (snd-display ";set env location with base and dur: ~A ~A" val gen))))
+	    (snd-display "set env location with base and dur: ~A ~A" val gen))))
     
     (test-gen-equal (make-env '(0 0 1 1 2 0) :scaler 0.5 :length 10) (make-env '(0 0 1 1 2 0) :scaler 0.5 :length 10) (make-env '(0 0 1 1 2 0) :scaler 0.25 :length 10))
     (test-gen-equal (make-env '(0 0 1 1 2 0) :scaler 0.5 :length 10) (make-env '(0 0 1 1 2 0) :scaler 0.5 :length 10) (make-env '(0 0 1 1 2 0) :scaler 0.5 :length 11))
@@ -15407,34 +15407,34 @@ EDITS: 2
     
     (let ((var (catch #t (lambda () (make-env :envelope ())) (lambda args args))))
       (if (not (eq? (car var) 'no-data))
-	  (snd-display ";make-env null env: ~A" var)))
+	  (snd-display "make-env null env: ~A" var)))
     (let ((var (catch #t (lambda () (make-env :length 1)) (lambda args args))))
       (if (not (eq? (car var) 'no-data))
-	  (snd-display ";make-env no env: ~A" var)))
+	  (snd-display "make-env no env: ~A" var)))
     (let ((var (catch #t (lambda () (make-env :envelope '(0 0) :length -1)) (lambda args args))))
       (if (not (eq? (car var) 'out-of-range))
-	  (snd-display ";make-env bad dur: ~A" var)))
+	  (snd-display "make-env bad dur: ~A" var)))
     (let ((var (catch #t (lambda () (make-env :envelope '(0 0) :duration -1.0)) (lambda args args))))
       (if (not (eq? (car var) 'out-of-range))
-	  (snd-display ";make-env bad duration: ~A" var)))
+	  (snd-display "make-env bad duration: ~A" var)))
     (let ((var (catch #t (lambda () (make-env :envelope '(0 0) :base -1.0)) (lambda args args))))
       (if (not (eq? (car var) 'out-of-range))
-	  (snd-display ";make-env bad base: ~A" var)))
+	  (snd-display "make-env bad base: ~A" var)))
     (let ((var (catch #t (lambda () (make-env :envelope '(1 1 0 0) :length 11)) (lambda args args))))
       (if (not (eq? (car var) 'mus-error))
-	  (snd-display ";make-env bad env 1 1 0 0: ~A" var)))
+	  (snd-display "make-env bad env 1 1 0 0: ~A" var)))
     (let ((var (catch #t (lambda () (make-env :envelope '(0 1 -1 0) :length 11)) (lambda args args))))
       (if (not (eq? (car var) 'mus-error))
-	  (snd-display ";make-env bad env 0 1 -1 0: ~A" var)))
+	  (snd-display "make-env bad env 0 1 -1 0: ~A" var)))
     (let ((var (catch #t (lambda () (make-env :envelope '(0 1 1 0) :length 11 :length 10)) (lambda args args))))
       (if (not (eq? (car var) 'mus-error))
-	  (snd-display ";make-env bad end/dur: ~A" var)))
+	  (snd-display "make-env bad end/dur: ~A" var)))
     (let ((var (catch #t (lambda () (make-env :envelope '(0 0 1 1 2 0 1) :duration 1.0)) (lambda args args))))
       (if (not (eq? (car var) 'bad-type))
-	  (snd-display ";make-env odd length env: ~A" var)))
+	  (snd-display "make-env odd length env: ~A" var)))
     (let ((var (catch #t (lambda () (make-env :envelope '("hi" 0 1 1 2 0) :duration 1.0)) (lambda args args))))
       (if (not (eq? (car var) 'wrong-type-arg))
-	  (snd-display ";make-env env of non-number: ~A" var)))
+	  (snd-display "make-env env of non-number: ~A" var)))
     
     ;; env-any
     (let* ((env-any-env '(0 0 1 1 2 0.25 3 1 4 0))
@@ -15485,9 +15485,9 @@ EDITS: 2
 			((= i 20))
 		      (outa i (sine-env-1 e))))))
 	(if (not (mus-arrays-equal? val1 val2))
-	    (snd-display ";sine-env straight and run: ~%;  ~A~%;  ~A" val1 val2))
+	    (snd-display "sine-env straight and run: ~%;  ~A~%;  ~A" val1 val2))
 	(if (not (mus-arrays-equal? val1 val3))
-	    (snd-display ";sine-env straight and scm: ~%;  ~A~%;  ~A" val1 val3)))
+	    (snd-display "sine-env straight and scm: ~%;  ~A~%;  ~A" val1 val3)))
       
       
       (let ((val1 (with-sound ((make-float-vector 20))
@@ -15508,9 +15508,9 @@ EDITS: 2
 			((= i 20))
 		      (outa i (square-env-1 e))))))
 	(if (not (mus-arrays-equal? val1 val2))
-	    (snd-display ";square-env straight and run: ~%;  ~A~%;  ~A" val1 val2))
+	    (snd-display "square-env straight and run: ~%;  ~A~%;  ~A" val1 val2))
 	(if (not (mus-arrays-equal? val1 val3))
-	    (snd-display ";square-env straight and scm: ~%;  ~A~%;  ~A" val1 val3)))
+	    (snd-display "square-env straight and scm: ~%;  ~A~%;  ~A" val1 val3)))
       
       (let ((val1 (with-sound ((make-float-vector 20))
 		    (do ((e (make-env env-any-env :length 20))
@@ -15524,7 +15524,7 @@ EDITS: 2
 			((= i 20))
 		      (outa i (blackman4-env-1 e))))))
 	(if (not (mus-arrays-equal? val1 val3))
-	    (snd-display ";blackman4-env straight and scm: ~%;  ~A~%;  ~A" val1 val3)))
+	    (snd-display "blackman4-env straight and scm: ~%;  ~A~%;  ~A" val1 val3)))
       
       
       (let ((val1 (with-sound ((make-float-vector 20))
@@ -15548,9 +15548,9 @@ EDITS: 2
 			((= i 20))
 		      (outa i (multi-expt-env-1 e bases))))))
 	(if (not (mus-arrays-equal? val1 val2))
-	    (snd-display ";multi-expt-env straight and run: ~%;  ~A~%;  ~A" val1 val2))
+	    (snd-display "multi-expt-env straight and run: ~%;  ~A~%;  ~A" val1 val2))
 	(if (not (mus-arrays-equal? val1 val3))
-	    (snd-display ";multi-expt-env straight and scm: ~%;  ~A~%;  ~A" val1 val3)))
+	    (snd-display "multi-expt-env straight and scm: ~%;  ~A~%;  ~A" val1 val3)))
       
       (let ((val1 (with-sound ((make-float-vector 220))
 		    (do ((e1 (make-env env-any-env :length 220))
@@ -15573,7 +15573,7 @@ EDITS: 2
 							(lambda (y2)
 							  y2))))))))))
 	(if (not (mus-arrays-equal? val1 val2))
-	    (snd-display ";env-any recursive: ~%;  ~A~%;  ~A" val1 val2))))
+	    (snd-display "env-any recursive: ~%;  ~A~%;  ~A" val1 val2))))
     
     (let ((ind (new-sound :size 20)))
       (select-sound ind)
@@ -15581,37 +15581,37 @@ EDITS: 2
       (bumpy)
       (let ((vals (channel->float-vector)))
 	(if (not (mus-arrays-equal? vals (float-vector 0.0 0.0 0.001 0.021 0.105 0.264 0.467 0.673 0.846 0.960 1.000 0.960 0.846 0.673 0.467 0.264 0.105 0.021 0.001 0.0)))
-	    (snd-display ";bumpy: ~A" vals)))
+	    (snd-display "bumpy: ~A" vals)))
       (if (fneq (channel-lp-inf) 1.0) ; just a fancy name for maxamp
-	  (snd-display ";channel-lp-inf: ~A" (channel-lp-inf)))
+	  (snd-display "channel-lp-inf: ~A" (channel-lp-inf)))
       (linear-src-channel 2.0)
       (let ((vals (channel->float-vector)))
 	(if (not (mus-arrays-equal? vals (float-vector 0.000 0.001 0.105 0.467 0.846 1.000 0.846 0.467 0.105 0.001)))
-	    (snd-display ";linear-src-channel: ~A" vals)))
+	    (snd-display "linear-src-channel: ~A" vals)))
       (let-temporarily ((*clipping* #t))
 	(save-sound-as "tst.snd")
 	(let ((fvals (file->floats "tst.snd")) 
 	      (vals (channel->float-vector)))
 	  (if (not (mus-arrays-equal? vals fvals))
-	      (snd-display ";file->floats: ~A ~A" vals fvals)))
+	      (snd-display "file->floats: ~A ~A" vals fvals)))
 	(mus-sound-forget "tst.snd")
 	(delete-file "tst.snd"))
       (let ((hp (make-differentiator)))
 	(map-channel (lambda (y)
 		       (differentiator hp y))))
       (if (fneq (maxamp) .0013)
-	  (snd-display ";differentiator: ~A" (maxamp)))
+	  (snd-display "differentiator: ~A" (maxamp)))
       (revert-sound ind)
       (let ((val (window-rms)))
-	(if (fneq val 0.0) (snd-display ";window-rms empty: ~A" val))
+	(if (fneq val 0.0) (snd-display "window-rms empty: ~A" val))
 	(set! (sample 10) 1.0)
 	(set! val (window-rms))
-	(if (fneq val .218) (snd-display ";window-rms 1: ~A" val))
+	(if (fneq val .218) (snd-display "window-rms 1: ~A" val))
 	(let ((vals (window-samples)))
 	  (if (or (not (float-vector? vals))
 		  (not (= (length vals) 21))
 		  (fneq (vals 10) 1.0))
-	      (snd-display ";window-samples: ~A" vals))))
+	      (snd-display "window-samples: ~A" vals))))
       (revert-sound ind)
       (clean-up-sound ind))
     
@@ -15621,9 +15621,9 @@ EDITS: 2
       (print-and-check gen 
 		       "table-lookup"
 		       "table-lookup freq: 440.000Hz, phase: 0.000, length: 512, interp: linear")
-      (if (not (= (mus-length gen) 512)) (snd-display ";table-lookup length: ~A?" (mus-length gen)))
+      (if (not (= (mus-length gen) 512)) (snd-display "table-lookup length: ~A?" (mus-length gen)))
       (let ((gen3 (mus-length (make-table-lookup))))
-	(if (not (= gen3 512)) (snd-display ";default table-lookup length: ~A?" gen3)))
+	(if (not (= gen3 512)) (snd-display "default table-lookup length: ~A?" gen3)))
       (do ((gen1 (make-table-lookup 440.0 :wave (partials->wave '(1 1 2 1) (make-float-vector 512))))
 	   (i 0 (+ i 1)))
 	  ((= i 10))
@@ -15632,67 +15632,67 @@ EDITS: 2
       (let ((v2 (make-float-vector 10)))
 	(let ((gen4 (make-table-lookup 440.0 :wave (partials->wave '(1 1 2 1)))))
 	  (fill-float-vector v2 (if (table-lookup? gen4) (table-lookup gen4 0.0) -1.0))
-	  (if (not (mus-arrays-equal? v0 v2)) (snd-display ";map table-lookup: ~A ~A" v0 v2))
+	  (if (not (mus-arrays-equal? v0 v2)) (snd-display "map table-lookup: ~A ~A" v0 v2))
 	  (set! gen4 (make-table-lookup 440.0 :wave (partials->wave (float-vector 1 1 2 1))))
 	  (fill-float-vector v2 (table-lookup gen4)))
-	(if (not (mus-arrays-equal? v0 v2)) (snd-display ";map table-lookup (no fm): ~A ~A" v0 v2)))
-      (if (not (table-lookup? gen)) (snd-display ";~A not table-lookup?" gen))
-      (if (not (float-vector? (mus-data gen))) (snd-display ";mus-data table-lookup: ~A" (mus-data gen)))
-      (if (fneq (mus-phase gen) 1.253787) (snd-display ";table-lookup phase: ~F?" (mus-phase gen)))
+	(if (not (mus-arrays-equal? v0 v2)) (snd-display "map table-lookup (no fm): ~A ~A" v0 v2)))
+      (if (not (table-lookup? gen)) (snd-display "~A not table-lookup?" gen))
+      (if (not (float-vector? (mus-data gen))) (snd-display "mus-data table-lookup: ~A" (mus-data gen)))
+      (if (fneq (mus-phase gen) 1.253787) (snd-display "table-lookup phase: ~F?" (mus-phase gen)))
       (set! (mus-phase gen) 1.0)
-      (if (fneq (mus-phase gen) 1.0) (snd-display ";set! table-lookup phase: ~F?" (mus-phase gen)))
-      (if (fneq (mus-frequency gen) 440.0) (snd-display ";table-lookup frequency: ~F?" (mus-frequency gen)))
+      (if (fneq (mus-phase gen) 1.0) (snd-display "set! table-lookup phase: ~F?" (mus-phase gen)))
+      (if (fneq (mus-frequency gen) 440.0) (snd-display "table-lookup frequency: ~F?" (mus-frequency gen)))
       (set! (mus-frequency gen) 100.0)
-      (if (fneq (mus-frequency gen) 100.0) (snd-display ";set! table-lookup frequency: ~F?" (mus-frequency gen)))
-      (if (or (fneq (v0 1) 0.373) (fneq (v0 8) 1.75)) (snd-display ";table-lookup output: ~A" v0))
+      (if (fneq (mus-frequency gen) 100.0) (snd-display "set! table-lookup frequency: ~F?" (mus-frequency gen)))
+      (if (or (fneq (v0 1) 0.373) (fneq (v0 8) 1.75)) (snd-display "table-lookup output: ~A" v0))
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
 	(if (fneq (v0 i) (v1 i))
-	    (snd-display ";mus-apply table-lookup at ~D: ~A ~A?" i (v0 i) (v1 i)))))
+	    (snd-display "mus-apply table-lookup at ~D: ~A ~A?" i (v0 i) (v1 i)))))
     
     (let ((gen (make-table-lookup 440.0 :wave (phase-partials->wave (list 1 1 0 2 1 (* pi .5)))))
 	  (v0 (make-float-vector 10)))
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
 	(set! (v0 i) (table-lookup gen 0.0)))
-      (if (or (fneq (v0 1) 1.094) (fneq (v0 8) .421)) (snd-display ";table-lookup phase output: ~A" v0))
+      (if (or (fneq (v0 1) 1.094) (fneq (v0 8) .421)) (snd-display "table-lookup phase output: ~A" v0))
       (if (or (fneq (float-vector-peak (partials->wave '(1 1 2 1))) 1.76035475730896)
 	      (fneq (float-vector-peak (partials->wave '(1 1 2 1) #f #t)) 1.0)
 	      (fneq (float-vector-peak (partials->wave '(1 1 2 1 3 1 4 1) #f #t)) 1.0))
-	  (snd-display ";normalized partials?"))
+	  (snd-display "normalized partials?"))
       (set! (mus-data gen) (phase-partials->wave (list 1 1 0 2 1 (* pi .5)) #f #t)))
     
     (let ((tag (catch #t (lambda () (phase-partials->wave '(1 .3 2 .2))) (lambda args (car args)))))
-      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";bad length arg to phase-partials->wave: ~A" tag)))
+      (if (not (eq? tag 'wrong-type-arg)) (snd-display "bad length arg to phase-partials->wave: ~A" tag)))
     (let ((tag (catch #t (lambda () (phase-partials->wave '("hiho" .3 2 .2))) (lambda args (car args)))))
-      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";bad harmonic arg to phase-partials->wave: ~A" tag)))
+      (if (not (eq? tag 'wrong-type-arg)) (snd-display "bad harmonic arg to phase-partials->wave: ~A" tag)))
     (let ((tag (catch #t (lambda () (phase-partials->wave (list))) (lambda args (car args)))))
-      (if (not (eq? tag 'no-data)) (snd-display ";nil list to phase-partials->wave: ~A" tag)))
+      (if (not (eq? tag 'no-data)) (snd-display "nil list to phase-partials->wave: ~A" tag)))
     
     (do ((vals (phase-partials->wave '(1 1 0) (make-float-vector 16) #f))
 	 (i 0 (+ i 1)))
 	((= i 16))
       (if (fneq (vals i) (sin (/ (* 2 pi i) 16)))
-	  (snd-display ";phase-partials->wave 1 1 0 at ~D: ~A ~A" i (vals i) (sin (/ (* 2 pi i) 16)))))
+	  (snd-display "phase-partials->wave 1 1 0 at ~D: ~A ~A" i (vals i) (sin (/ (* 2 pi i) 16)))))
     
     (do ((vals (phase-partials->wave (list 1 1 (* .25 pi)) (make-float-vector 16) #f))
 	 (i 0 (+ i 1)))
 	((= i 16))
       (if (fneq (vals i) (sin (+ (* .25 pi) (/ (* 2 pi i) 16))))
-	  (snd-display ";phase-partials->wave 1 1 .25 at ~D: ~A ~A" i (vals i) (sin (+ (* .25 pi) (/ (* 2 pi i) 16))))))
+	  (snd-display "phase-partials->wave 1 1 .25 at ~D: ~A ~A" i (vals i) (sin (+ (* .25 pi) (/ (* 2 pi i) 16))))))
     
     (do ((vals (phase-partials->wave (float-vector 1 1 0 2 1 0) (make-float-vector 16) #f))
 	 (i 0 (+ i 1)))
 	((= i 16))
       (if (fneq (vals i) (+ (sin (/ (* 2 pi i) 16)) (sin (/ (* 4 pi i) 16))))
-	  (snd-display ";phase-partials->wave 1 1 0 2 1 0 at ~D: ~A ~A" i (vals i) 
+	  (snd-display "phase-partials->wave 1 1 0 2 1 0 at ~D: ~A ~A" i (vals i) 
 		       (+ (sin (/ (* 2 pi i) 16)) (sin (/ (* 4 pi i) 16))))))
     
     (do ((vals (phase-partials->wave (float-vector 1 1 0 2 1 (* .5 pi)) (make-float-vector 16) #f))
 	 (i 0 (+ i 1)))
 	((= i 16))
       (if (fneq (vals i) (+ (sin (/ (* 2 pi i) 16)) (sin (+ (* .5 pi) (/ (* 4 pi i) 16)))))
-	  (snd-display ";phase-partials->wave 1 1 0 2 1 .5 at ~D: ~A ~A" i (vals i) 
+	  (snd-display "phase-partials->wave 1 1 0 2 1 .5 at ~D: ~A ~A" i (vals i) 
 		       (+ (sin (/ (* 2 pi i) 16)) (sin (+ (* .5 pi) (/ (* 4 pi i) 16)))))))
     
     (test-gen-equal (make-table-lookup 440.0 :wave (partials->wave (float-vector 1 1 2 1)))
@@ -15705,12 +15705,12 @@ EDITS: 2
 		    (make-table-lookup-with-env 440.0 '(0 0 1 1))
 		    (make-table-lookup-with-env 440.0 '(0 0 1 1 2 0)))
     (let ((tag (catch #t (lambda () (partials->wave '(.5 .3 .2))) (lambda args (car args)))))
-      (if (not (eq? tag 'bad-type)) (snd-display ";odd length arg to partials->wave: ~A" tag)))
+      (if (not (eq? tag 'bad-type)) (snd-display "odd length arg to partials->wave: ~A" tag)))
     
     (let ((hi (mus-length (make-table-lookup :size 256))))
-      (if (not (= hi 256)) (snd-display ";table-lookup set length: ~A?" hi)))
+      (if (not (= hi 256)) (snd-display "table-lookup set length: ~A?" hi)))
     (let ((tag (catch #t (lambda () (make-table-lookup :size 0)) (lambda args (car args)))))
-      (if (not (eq? tag 'out-of-range)) (snd-display ";table-lookup size 0: ~A" tag)))
+      (if (not (eq? tag 'out-of-range)) (snd-display "table-lookup size 0: ~A" tag)))
     
     (do ((gen (make-table-lookup 440.0 :wave (partials->wave '(1 1))))
 	 (incr (/ (* 2 pi 440.0) 22050.0))
@@ -15720,7 +15720,7 @@ EDITS: 2
       (let ((val1 (sin a))
 	    (val2 (gen 0.0)))
 	(if (fneq val1 val2)
-	    (snd-display ";table lookup (1 1): ~A: ~A ~A" i val1 val2))))
+	    (snd-display "table lookup (1 1): ~A: ~A ~A" i val1 val2))))
     
     (do ((gen (make-table-lookup 4.0 :wave (partials->wave '(1 1))))
 	 (incr (/ (* 2 pi 4.0) 22050.0))
@@ -15730,7 +15730,7 @@ EDITS: 2
       (let ((val1 (sin a))
 	    (val2 (gen 0.0)))
 	(if (fneq val1 val2)
-	    (snd-display ";table lookup (1 1) 4: ~A: ~A ~A" i val1 val2))))
+	    (snd-display "table lookup (1 1) 4: ~A: ~A ~A" i val1 val2))))
     
     (do ((gen (make-table-lookup 440.0 :wave (partials->wave '(1 .75 3 .25))))
 	 (incr (/ (* 2 pi 440.0) 22050.0))
@@ -15740,7 +15740,7 @@ EDITS: 2
       (let ((val1 (+ (* .75 (sin a)) (* .25 (sin (* 3 a)))))
 	    (val2 (gen 0.0)))
 	(if (fneq val1 val2)
-	    (snd-display ";table lookup (1 .75 3 .25): ~A: ~A ~A" i val1 val2))))
+	    (snd-display "table lookup (1 .75 3 .25): ~A: ~A ~A" i val1 val2))))
     
     (do ((gen (make-table-lookup 0.0 :wave (partials->wave '(1 1))))
 	 (gen1 (make-table-lookup 40.0 :wave (partials->wave '(1 1))))
@@ -15754,7 +15754,7 @@ EDITS: 2
 	    (val2 (table-lookup gen (table-lookup gen1 0.0))))
 	(set! a1 (+ a1 fm))
 	(if (fneq val1 val2)
-	    (snd-display ";lookup/lookup fm: ~A: ~A ~A" i val1 val2))))
+	    (snd-display "lookup/lookup fm: ~A: ~A ~A" i val1 val2))))
     
     (for-each 
      (lambda (args)
@@ -15770,8 +15770,8 @@ EDITS: 2
 			  (= type mus-interp-all-pass)
 			  (and (= type mus-interp-none)
 			       (mus-arrays-equal? v (float-vector 0.000 0.000 0.000 0.000 0.000 0.000 1.000 1.000 1.000 1.000)))))
-		 (snd-display ";tbl interp ~A: ~A" type v))
-	     (if (not (= (mus-interp-type tbl1) type)) (snd-display ";tbl interp-type (~A): ~A" type (mus-interp-type tbl1)))))))
+		 (snd-display "tbl interp ~A: ~A" type v))
+	     (if (not (= (mus-interp-type tbl1) type)) (snd-display "tbl interp-type (~A): ~A" type (mus-interp-type tbl1)))))))
      (list 
       (list mus-interp-none (float-vector 0.000 0.000 0.000 0.000 0.000 1.000 1.000 1.000 1.000 1.000))
       (list mus-interp-linear (float-vector 0.000 0.200 0.400 0.600 0.800 1.000 0.800 0.600 0.400 0.200))
@@ -15806,7 +15806,7 @@ EDITS: 2
 	    (v2 (with-sound ((make-float-vector size) :srate 44100) (test-fm1 0 size 200 1 1 1))))
 	(if (and (not (mus-arrays-equal? v1 v2))
 		 (> (float-vector-peak (float-vector-subtract! v1 v2)) .002))
-	    (snd-display ";fm/tbl peak diff (1 1): ~A" (float-vector-peak (float-vector-subtract! v1 v2)))))
+	    (snd-display "fm/tbl peak diff (1 1): ~A" (float-vector-peak (float-vector-subtract! v1 v2)))))
       
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
@@ -15816,7 +15816,7 @@ EDITS: 2
 		(v2 (with-sound ((make-float-vector size) :srate 44100) (test-fm1 0 size 20 1 ratio index))))
 	    (if (and (not (mus-arrays-equal? v1 v2))
 		     (> (float-vector-peak (float-vector-subtract! v1 v2)) .002))
-		(snd-display ";fm/tbl peak diff ~A ~A: ~A" ratio index (float-vector-peak (float-vector-subtract! v1 v2))))))))
+		(snd-display "fm/tbl peak diff ~A ~A: ~A" ratio index (float-vector-peak (float-vector-subtract! v1 v2))))))))
     
     
     (let ((gen0 (make-polyshape 440.0 :coeffs (partials->polynomial '(1 1))))
@@ -15825,32 +15825,32 @@ EDITS: 2
       (print-and-check gen 
 		       "polyshape"
 		       "polyshape freq: 440.000Hz, phase: 0.000, coeffs[2]: [0 1]")
-      (if (not (= (mus-length gen) 2)) (snd-display ";polyshape length: ~A?" (mus-length gen)))
+      (if (not (= (mus-length gen) 2)) (snd-display "polyshape length: ~A?" (mus-length gen)))
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
 	(let ((val0 (polyshape gen0 1.0 0.0))
 	      (val (polyshape gen 1.0 0.0)))
-	  (if (fneq val val0) (snd-display ";polyshape: ~A is not ~F?" val val0))
+	  (if (fneq val val0) (snd-display "polyshape: ~A is not ~F?" val val0))
 	  (set! (v0 i) val)))
       (let ((v1 (make-float-vector 10)))
 	(let ((gen1 (make-polyshape 440.0)))
 	  (fill-float-vector v1 (if (polyshape? gen1) (polyshape gen1 1.0 0.0) -1.0))
-	  (if (not (mus-arrays-equal? v0 v1)) (snd-display ";map polyshape: ~A ~A" v0 v1))
+	  (if (not (mus-arrays-equal? v0 v1)) (snd-display "map polyshape: ~A ~A" v0 v1))
 	  (set! gen1 (make-polyshape 440.0 :coeffs (partials->polynomial '(1 1))))
 	  (fill-float-vector v1 (polyshape gen1 1.0)))
-	(if (not (mus-arrays-equal? v0 v1)) (snd-display ";1 map polyshape: ~A ~A" v0 v1)))
-      (if (not (polyshape? gen)) (snd-display ";~A not polyshape?" gen))
-      (if (fneq (mus-phase gen) 1.253787) (snd-display ";polyshape phase: ~F?" (mus-phase gen)))
+	(if (not (mus-arrays-equal? v0 v1)) (snd-display "1 map polyshape: ~A ~A" v0 v1)))
+      (if (not (polyshape? gen)) (snd-display "~A not polyshape?" gen))
+      (if (fneq (mus-phase gen) 1.253787) (snd-display "polyshape phase: ~F?" (mus-phase gen)))
       (set! (mus-phase gen) 1.0)
-      (if (fneq (mus-phase gen) 1.0) (snd-display ";set! polyshape phase: ~F?" (mus-phase gen)))
-      (if (fneq (mus-frequency gen) 440.0) (snd-display ";polyshape frequency: ~F?" (mus-frequency gen)))
+      (if (fneq (mus-phase gen) 1.0) (snd-display "set! polyshape phase: ~F?" (mus-phase gen)))
+      (if (fneq (mus-frequency gen) 440.0) (snd-display "polyshape frequency: ~F?" (mus-frequency gen)))
       (set! (mus-frequency gen) 100.0)
-      (if (fneq (mus-frequency gen) 100.0) (snd-display ";polyshape frequency: ~F?" (mus-frequency gen)))
-      (if (not (float-vector? (mus-data gen))) (snd-display ";mus-data polyshape: ~A" (mus-data gen)))
-      (if (or (fneq (v0 1) 0.992) (fneq (v0 8) 0.538)) (snd-display ";polyshape output: ~A" v0))
+      (if (fneq (mus-frequency gen) 100.0) (snd-display "polyshape frequency: ~F?" (mus-frequency gen)))
+      (if (not (float-vector? (mus-data gen))) (snd-display "mus-data polyshape: ~A" (mus-data gen)))
+      (if (or (fneq (v0 1) 0.992) (fneq (v0 8) 0.538)) (snd-display "polyshape output: ~A" v0))
       (set! (mus-data gen0) (make-float-vector 32))
       (set! (mus-length gen0) 32)
-      (if (not (= (mus-length gen0) 32)) (snd-display ";set mus-length polyshape: ~A" (mus-length gen0))))
+      (if (not (= (mus-length gen0) 32)) (snd-display "set mus-length polyshape: ~A" (mus-length gen0))))
     
     (test-gen-equal (make-polyshape 440.0 :partials '(1 1)) 
 		    (make-polyshape 440.0) 
@@ -15872,7 +15872,7 @@ EDITS: 2
       (let* ((val1 (cos (mus-phase gen)))
 	     (val2 (gen 1.0 0.0)))
 	(when (fneq val1 val2)
-	  (snd-display ";polyshaper (1 1) ~A: ~A ~A" i val1 val2)
+	  (snd-display "polyshaper (1 1) ~A: ~A ~A" i val1 val2)
 	  (set! happy #f))))
     
     (do ((gen (make-polyshape 440.0)) ; check default for partials: '(1 1)
@@ -15883,7 +15883,7 @@ EDITS: 2
       (let* ((val1 (cos (mus-phase gen)))
 	     (val2 (gen 1.0 0.0)))
 	(when (fneq val1 val2)
-	  (snd-display ";polyshaper default: '(1 1) ~A: ~A ~A" i val1 val2)
+	  (snd-display "polyshaper default: '(1 1) ~A: ~A ~A" i val1 val2)
 	  (set! happy #f))))
     
     (do ((gen (make-polyshape 440.0 :partials (float-vector 1 1)))
@@ -15893,12 +15893,12 @@ EDITS: 2
       (let* ((val1 (* .5 (cos (mus-phase gen))))
 	     (val2 (gen 0.5 0.0)))
 	(when (fneq val1 val2)
-	  (snd-display ";polyshaper (1 1) .5 index ~A: ~A ~A" i val1 val2)
+	  (snd-display "polyshaper (1 1) .5 index ~A: ~A ~A" i val1 val2)
 	  (set! happy #f))))
     
     (let ((var (catch #t (lambda () (make-polyshape 440.0 :coeffs 3.14)) (lambda args args))))
       (if (not (eq? (car var) 'wrong-type-arg))
-	  (snd-display ";make-polyshape bad coeffs: ~A" var)))
+	  (snd-display "make-polyshape bad coeffs: ~A" var)))
     
     (do ((gen (make-polyshape 0.0 :coeffs (partials->polynomial '(1 1))))
 	 (gen1 (make-polyshape 40.0 :coeffs (partials->polynomial '(1 1))))
@@ -15913,7 +15913,7 @@ EDITS: 2
 	    (val2 (polyshape gen 1.0 (polyshape gen1 1.0))))
 	(set! a1 (+ a1 fm))
 	(when (> (abs (- val1 val2)) .002)
-	  (snd-display ";polyshape fm: ~A: ~A ~A" i val1 val2)
+	  (snd-display "polyshape fm: ~A: ~A ~A" i val1 val2)
 	  (set! happy #f))))
     
     (for-each 
@@ -16037,31 +16037,31 @@ EDITS: 2
       (print-and-check gen 
 		       "polywave"
 		       "polywave freq: 440.000Hz, phase: 0.000, coeffs[2]: [0 1]")
-      (if (not (= (mus-length gen) 2)) (snd-display ";polywave length: ~A?" (mus-length gen)))
+      (if (not (= (mus-length gen) 2)) (snd-display "polywave length: ~A?" (mus-length gen)))
       
       (do ((gen0 (make-polywave 440.0 '(1 1)))
 	   (i 0 (+ i 1)))
 	  ((= i 10))
 	(let ((val0 (polywave gen0 0.0))
 	      (val (polywave gen 0.0)))
-	  (if (fneq val val0) (snd-display ";polywave: ~A is not ~F?" val val0))
+	  (if (fneq val val0) (snd-display "polywave: ~A is not ~F?" val val0))
 	  (set! (v0 i) val)))
       (let ((gen1 (make-polywave 440.0))
 	    (v1 (make-float-vector 10)))  
 	(fill-float-vector v1 (if (polywave? gen1) (polywave gen1 0.0) -1.0))
-	(if (not (mus-arrays-equal? v0 v1)) (snd-display ";map polywave: ~A ~A" v0 v1))
+	(if (not (mus-arrays-equal? v0 v1)) (snd-display "map polywave: ~A ~A" v0 v1))
 	(set! gen1 (make-polywave 440.0 (float-vector 1 1)))
 	(fill-float-vector v1 (polywave gen1))
-	(if (not (mus-arrays-equal? v0 v1)) (snd-display ";1 map polywave: ~A ~A" v0 v1)))
-      (if (not (polywave? gen)) (snd-display ";~A not polywave?" gen))
-      (if (fneq (mus-phase gen) 1.253787) (snd-display ";polywave phase: ~F?" (mus-phase gen)))
+	(if (not (mus-arrays-equal? v0 v1)) (snd-display "1 map polywave: ~A ~A" v0 v1)))
+      (if (not (polywave? gen)) (snd-display "~A not polywave?" gen))
+      (if (fneq (mus-phase gen) 1.253787) (snd-display "polywave phase: ~F?" (mus-phase gen)))
       (set! (mus-phase gen) 1.0)
-      (if (fneq (mus-phase gen) 1.0) (snd-display ";set! polywave phase: ~F?" (mus-phase gen)))
-      (if (fneq (mus-frequency gen) 440.0) (snd-display ";polywave frequency: ~F?" (mus-frequency gen)))
+      (if (fneq (mus-phase gen) 1.0) (snd-display "set! polywave phase: ~F?" (mus-phase gen)))
+      (if (fneq (mus-frequency gen) 440.0) (snd-display "polywave frequency: ~F?" (mus-frequency gen)))
       (set! (mus-frequency gen) 100.0)
-      (if (fneq (mus-frequency gen) 100.0) (snd-display ";polywave frequency: ~F?" (mus-frequency gen)))
-      (if (not (float-vector? (mus-data gen))) (snd-display ";mus-data polywave: ~A" (mus-data gen)))
-      (if (or (fneq (v0 1) 0.992) (fneq (v0 8) 0.538)) (snd-display ";polywave output: ~A" v0)))
+      (if (fneq (mus-frequency gen) 100.0) (snd-display "polywave frequency: ~F?" (mus-frequency gen)))
+      (if (not (float-vector? (mus-data gen))) (snd-display "mus-data polywave: ~A" (mus-data gen)))
+      (if (or (fneq (v0 1) 0.992) (fneq (v0 8) 0.538)) (snd-display "polywave output: ~A" v0)))
     
     (test-gen-equal (make-polywave 440.0 :partials '(1 1)) 
 		    (make-polywave 440.0) 
@@ -16083,7 +16083,7 @@ EDITS: 2
       (let* ((val1 (cos (mus-phase gen)))
 	     (val2 (gen 0.0)))
 	(when (fneq val1 val2)
-	  (snd-display ";polywaver (1 1) ~A: ~A ~A" i val1 val2)
+	  (snd-display "polywaver (1 1) ~A: ~A ~A" i val1 val2)
 	  (set! happy #f))))
     
     (do ((gen (make-polywave 440.0)) ; check default for partials: '(1 1)
@@ -16093,7 +16093,7 @@ EDITS: 2
       (let* ((val1 (cos (mus-phase gen)))
 	     (val2 (gen 0.0)))
 	(when (fneq val1 val2)
-	  (snd-display ";polywaver default: '(1 1) ~A: ~A ~A" i val1 val2)
+	  (snd-display "polywaver default: '(1 1) ~A: ~A ~A" i val1 val2)
 	  (set! happy #f))))
     
     (let ((gen (make-polywave 440.0 (float-vector 1 1)))
@@ -16104,7 +16104,7 @@ EDITS: 2
 	(let* ((val1 (* .5 (cos (mus-phase gen))))
 	       (val2 (gen 0.0)))
 	  (when (fneq val1 val2)
-	    (snd-display ";polywaver (1 1) .5 index ~A: ~A ~A" i val1 val2)
+	    (snd-display "polywaver (1 1) .5 index ~A: ~A ~A" i val1 val2)
 	    (set! happy #f)))))
     
     (let-temporarily ((*clm-srate* 44100))
@@ -16125,7 +16125,7 @@ EDITS: 2
 	       (float-vector-set! v1 i (+ (cos ph) (cos kph)))))
 	   (float-vector-scale! v1 0.5)
 	   (if (not (mus-arrays-equal? v0 v1))
-	       (snd-display ";polywave ~D vs cos: ~A" k (float-vector-peak-and-location (float-vector-subtract! v0 v1)))))
+	       (snd-display "polywave ~D vs cos: ~A" k (float-vector-peak-and-location (float-vector-subtract! v0 v1)))))
        '(2 19 20 29 30 39 40 60 100)))
       
       (for-each
@@ -16139,7 +16139,7 @@ EDITS: 2
 		 (val2 (oscil gen2)))
 	     (when (fneq val1 val2)
 	       (set! happy #f)
-	       (snd-display ";polywave ~A at ~A: ~A ~A" n i val1 val2)))))
+	       (snd-display "polywave ~A at ~A: ~A ~A" n i val1 val2)))))
        '(1 8 50 128))
       
       (for-each
@@ -16153,7 +16153,7 @@ EDITS: 2
 		 (val2 (oscil gen2)))
 	     (when (fneq val1 val2)
 	       (set! happy #f)
-	       (snd-display ";polywave second ~A at ~A: ~A ~A" n i val1 val2)))))
+	       (snd-display "polywave second ~A at ~A: ~A ~A" n i val1 val2)))))
        '(1 8 50 128))
       
       (for-each
@@ -16167,7 +16167,7 @@ EDITS: 2
 		 (val2 (oscil gen2)))
 	     (when (fneq val1 val2)
 	       (set! happy #f)
-	       (snd-display ";polyshape ~A at ~A: ~A ~A" n i val1 val2)))))
+	       (snd-display "polyshape ~A at ~A: ~A ~A" n i val1 val2)))))
        '(1 8 16))
       
       (for-each
@@ -16181,7 +16181,7 @@ EDITS: 2
 		 (val2 (oscil gen2)))
 	     (when (fneq val1 val2)
 	       (set! happy #f)
-	       (snd-display ";polyshape second ~A at ~A: ~A ~A" n i val1 val2)))))
+	       (snd-display "polyshape second ~A at ~A: ~A ~A" n i val1 val2)))))
        '(1 8 16))
       
       (for-each
@@ -16192,7 +16192,7 @@ EDITS: 2
 	      (i 0 (+ i 1)))
 	     ((= i 1000)
 	      (if (fneq max-dist 0.0)
-		  (snd-display ";polywave run ~A: ~A" n max-dist)))
+		  (snd-display "polywave run ~A: ~A" n max-dist)))
 	   (let ((val1 (polywave gen1))
 		 (val2 (oscil gen2)))
 	     (set! max-dist (max max-dist (abs (- val1 val2)))))))
@@ -16206,7 +16206,7 @@ EDITS: 2
 	      (i 0 (+ i 1)))
 	     ((= i 1000)
 	      (if (fneq max-dist 0.0)
-		  (snd-display ";polywave second run ~A: ~A" n max-dist)))
+		  (snd-display "polywave second run ~A: ~A" n max-dist)))
 	   (let ((val1 (polywave gen1))
 		 (val2 (oscil gen2)))
 	     (set! max-dist (max max-dist (abs (- val1 val2)))))))
@@ -16220,7 +16220,7 @@ EDITS: 2
 	      (i 0 (+ i 1)))
 	     ((= i 1000)
 	      (if (fneq max-dist 0.0)
-		  (snd-display ";polyshape run ~A: ~A" n max-dist)))
+		  (snd-display "polyshape run ~A: ~A" n max-dist)))
 	   (let ((val1 (polyshape gen1))
 		 (val2 (oscil gen2)))
 	     (set! max-dist (max max-dist (abs (- val1 val2)))))))
@@ -16234,7 +16234,7 @@ EDITS: 2
 	      (i 0 (+ i 1)))
 	     ((= i 1000)
 	      (if (fneq max-dist 0.0)
-		  (snd-display ";polyshape second run ~A: ~A" n max-dist)))
+		  (snd-display "polyshape second run ~A: ~A" n max-dist)))
 	   (let ((val1 (polyshape gen1))
 		 (val2 (oscil gen2)))
 	     (set! max-dist (max max-dist (abs (- val1 val2)))))))
@@ -16244,7 +16244,7 @@ EDITS: 2
 	     (vals (mus-data gen)))
 	(if (not (and (float-vector? vals)
 		      (mus-arrays-equal? vals (float-vector 0.000 0.900 0.000 0.100 0.00))))
-	    (snd-display ";polywave mus-data: ~A" vals)
+	    (snd-display "polywave mus-data: ~A" vals)
 	    (begin
 	      (float-vector-set! (mus-data gen) 2 .1)
 	      (float-vector-set! (mus-data gen) 3 0.0)
@@ -16258,7 +16258,7 @@ EDITS: 2
 			       (* .1 (oscil gen2)))))
 		  (when (fneq val1 val2)
 		    (set! happy #f)
-		    (snd-display ";polywave set mus-data at ~A: ~A ~A" i val1 val2))))))))
+		    (snd-display "polywave set mus-data at ~A: ~A ~A" i val1 val2))))))))
     ;; check dc 
     (do ((i 2 (+ i 1)))
 	((= i 7))
@@ -16267,7 +16267,7 @@ EDITS: 2
 	  ((>= k (length cfs))
 	   (let ((val (polywave (make-polywave 100.0 cfs mus-chebyshev-second-kind))))
 	     (if (fneq val 0.1)
-		 (snd-display ";polywave ~D order second 0-coeff: ~A" i val))))
+		 (snd-display "polywave ~D order second 0-coeff: ~A" i val))))
 	(set! (cfs k) (/ k 2))))
       
     (do ((i 2 (+ i 1)))
@@ -16278,11 +16278,11 @@ EDITS: 2
 	  (set! (cfs k) (/ k 2)))
 	(let ((val (polywave (make-polywave 100.0 cfs mus-chebyshev-first-kind))))
 	  (if (fneq val (* 0.1 i))
-	      (snd-display ";polywave ~D order first 0-coeff: ~A" i val)))))
+	      (snd-display "polywave ~D order first 0-coeff: ~A" i val)))))
 
     (let ((var (catch #t (lambda () (make-polywave 440.0 3.14)) (lambda args args))))
       (if (not (eq? (car var) 'wrong-type-arg))
-	  (snd-display ";make-polywave bad coeffs: ~A" var)))
+	  (snd-display "make-polywave bad coeffs: ~A" var)))
     
     (let ((gen (make-wave-train 440.0 0.0 (make-float-vector 20)))
 	  (v0 (make-float-vector 10)))
@@ -16295,26 +16295,26 @@ EDITS: 2
 	    ((= i 20))
 	  (float-vector-set! (mus-data gen) i (* i .5))
 	  (float-vector-set! (mus-data gen1) i ((mus-data gen) i)))
-	(if (not (= (length (mus-data gen)) 20)) (snd-display ";wave-train data length: ~A?" (length (mus-data gen))))
-	(if (not (= (mus-length gen) 20)) (snd-display ";wave-train length: ~A?" (mus-length gen)))
+	(if (not (= (length (mus-data gen)) 20)) (snd-display "wave-train data length: ~A?" (length (mus-data gen))))
+	(if (not (= (mus-length gen) 20)) (snd-display "wave-train length: ~A?" (mus-length gen)))
 	(do ((i 0 (+ i 1)))
 	    ((= i 10))
 	  (set! (v0 i) (wave-train gen 0.0)))
 	(fill-float-vector v1 (if (wave-train? gen1) (wave-train gen1) -1.0))
-	(if (not (mus-arrays-equal? v0 v1)) (snd-display ";map wave-train: ~A ~A" v0 v1)))
-      (if (not (wave-train? gen)) (snd-display ";~A not wave-train?" gen))
-      (if (fneq (mus-phase gen) 0.0) (snd-display ";wave-train phase: ~F?" (mus-phase gen)))
+	(if (not (mus-arrays-equal? v0 v1)) (snd-display "map wave-train: ~A ~A" v0 v1)))
+      (if (not (wave-train? gen)) (snd-display "~A not wave-train?" gen))
+      (if (fneq (mus-phase gen) 0.0) (snd-display "wave-train phase: ~F?" (mus-phase gen)))
       (set! (mus-phase gen) 1.0)
-      (if (fneq (mus-phase gen) 1.0) (snd-display ";set wave-train phase: ~F?" (mus-phase gen)))
-      (if (fneq (mus-frequency gen) 440.0) (snd-display ";wave-train frequency: ~F?" (mus-frequency gen)))
+      (if (fneq (mus-phase gen) 1.0) (snd-display "set wave-train phase: ~F?" (mus-phase gen)))
+      (if (fneq (mus-frequency gen) 440.0) (snd-display "wave-train frequency: ~F?" (mus-frequency gen)))
       (set! (mus-frequency gen) 100.0)
-      (if (fneq (mus-frequency gen) 100.0) (snd-display ";set wave-train freq: ~A" (mus-frequency gen)))
-      (if (or (fneq (v0 1) 0.5) (fneq (v0 8) 4.0)) (snd-display ";wave-train output: ~A" v0))
+      (if (fneq (mus-frequency gen) 100.0) (snd-display "set wave-train freq: ~A" (mus-frequency gen)))
+      (if (or (fneq (v0 1) 0.5) (fneq (v0 8) 4.0)) (snd-display "wave-train output: ~A" v0))
       (mus-reset gen)
-      (if (fneq (mus-phase gen) 0.0) (snd-display ";wt reset phase: ~A" (mus-phase gen)))
+      (if (fneq (mus-phase gen) 0.0) (snd-display "wt reset phase: ~A" (mus-phase gen)))
       (let ((val (wave-train gen 0.0)))
-	(if (fneq val 0.0) (snd-display ";wt reset data: ~A" val)))
-      (if (not (float-vector? (mus-data gen))) (snd-display ";mus-data wave-train: ~A" (mus-data gen)))
+	(if (fneq val 0.0) (snd-display "wt reset data: ~A" val)))
+      (if (not (float-vector? (mus-data gen))) (snd-display "mus-data wave-train: ~A" (mus-data gen)))
       (set! (mus-data gen) (make-float-vector 3)))
     
     (test-gen-equal (make-wave-train 440.0 0.0 (make-float-vector 20)) (make-wave-train 440.0 0.0 (make-float-vector 20)) (make-wave-train 100.0 0.0 (make-float-vector 20)))
@@ -16325,9 +16325,9 @@ EDITS: 2
 		    (make-wave-train-with-env 440.0 '(0 0 1 1 2 0)))
     
     (let ((hi (make-wave-train :size 256)))
-      (if (not (= (mus-length hi) 256)) (snd-display ";wave-train set length: ~A?" (mus-length hi)))
+      (if (not (= (mus-length hi) 256)) (snd-display "wave-train set length: ~A?" (mus-length hi)))
       (set! (mus-length hi) 128)
-      (if (not (= (mus-length hi) 128)) (snd-display ";set wave-train set length: ~A?" (mus-length hi))))
+      (if (not (= (mus-length hi) 128)) (snd-display "set wave-train set length: ~A?" (mus-length hi))))
     
     (for-each 
      (lambda (args)
@@ -16340,8 +16340,8 @@ EDITS: 2
 		 ((= i 10))
 	       (set! (v i) (wave-train tbl1 0.0))) ;(wave-train tbl1 (/ (* 2 pi .2) 4))))
 	     (if (not (mus-arrays-equal? v vals))
-		 (snd-display ";wt tbl interp ~A: ~A ~A" type v (mus-describe tbl1)))
-	     (if (not (= (mus-interp-type tbl1) type)) (snd-display ";wt tbl interp-type (~A): ~A" type (mus-interp-type tbl1)))))))
+		 (snd-display "wt tbl interp ~A: ~A ~A" type v (mus-describe tbl1)))
+	     (if (not (= (mus-interp-type tbl1) type)) (snd-display "wt tbl interp-type (~A): ~A" type (mus-interp-type tbl1)))))))
      (list 
       (list mus-interp-none (float-vector 0.000 1.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 1.000))
       (list mus-interp-linear (float-vector 0.200 0.800 0.000 0.000 0.000 0.000 0.000 0.000 0.200 0.800))
@@ -16349,64 +16349,64 @@ EDITS: 2
       (list mus-interp-hermite (float-vector 0.168 0.912 -0.064 -0.016 0.000 0.000 0.000 0.000 0.168 0.912))))
     
     (let ((tag (catch #t (lambda () (make-wave-train :size 0)) (lambda args (car args)))))
-      (if (not (eq? tag 'out-of-range)) (snd-display ";wave-train size 0: ~A" tag)))
+      (if (not (eq? tag 'out-of-range)) (snd-display "wave-train size 0: ~A" tag)))
     
     (let ((ind (new-sound "fmv.snd" :size 10 :comment "line 20501")))
-      (if (not (= (framples) 10)) (snd-display ";new-sound size(10): ~A" (framples)))
+      (if (not (= (framples) 10)) (snd-display "new-sound size(10): ~A" (framples)))
       (map-channel (lambda (y) 1.0) 7 8)
-      (if (not (= (framples) 15)) (snd-display ";map-channel 7 8: ~A" (framples)))
+      (if (not (= (framples) 15)) (snd-display "map-channel 7 8: ~A" (framples)))
       (map-channel (lambda (y) 1.0))
-      (if (not (= (framples) 15)) (snd-display ";map-channel (no dur): ~A" (framples)))
+      (if (not (= (framples) 15)) (snd-display "map-channel (no dur): ~A" (framples)))
       (revert-sound ind)
       (map-channel (lambda (y) 1.0) 9 10)
-      (if (not (= (framples) 19)) (snd-display ";map-channel 9 10: ~A" (framples)))
-      (if (> (edit-position ind 0) 2) (snd-display ";map-channel pad edits: ~A" (edit-position ind 0)))
+      (if (not (= (framples) 19)) (snd-display "map-channel 9 10: ~A" (framples)))
+      (if (> (edit-position ind 0) 2) (snd-display "map-channel pad edits: ~A" (edit-position ind 0)))
       (revert-sound ind)
       (map-channel (lambda (y) 1.0) 10 10)
-      (if (not (= (framples) 20)) (snd-display ";map-channel 10 10: ~A" (framples)))
-      (if (> (edit-position ind 0) 2) (snd-display ";map-channel pad edits (2): ~A" (edit-position ind 0)))
+      (if (not (= (framples) 20)) (snd-display "map-channel 10 10: ~A" (framples)))
+      (if (> (edit-position ind 0) 2) (snd-display "map-channel pad edits (2): ~A" (edit-position ind 0)))
       (revert-sound ind)
       (map-channel (lambda (y) 1.0) 20 10)
-      (if (not (= (framples) 30)) (snd-display ";map-channel 20 10: ~A" (framples)))
-      (if (> (edit-position ind 0) 2) (snd-display ";map-channel pad edits (3): ~A" (edit-position ind 0)))
+      (if (not (= (framples) 30)) (snd-display "map-channel 20 10: ~A" (framples)))
+      (if (> (edit-position ind 0) 2) (snd-display "map-channel pad edits (3): ~A" (edit-position ind 0)))
       (revert-sound ind)
-      (if (scan-channel (lambda (y) #f) 30 10) (snd-display ";scan-channel past end?"))
+      (if (scan-channel (lambda (y) #f) 30 10) (snd-display "scan-channel past end?"))
       (clean-up-sound ind))
     
     (let ((ind (new-sound :size 1000))
 	  (gen (make-wave-train 1000.0 :wave (float-vector 0.0 .1 .2 .3 .4 .5 .6))))
       (map-channel (lambda (y) (wave-train gen)))
       (let ((mx (maxamp)))
-	(if (fneq mx 0.6) (snd-display ";wt 0 max: ~A" mx)))
+	(if (fneq mx 0.6) (snd-display "wt 0 max: ~A" mx)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 30) 
 		       (float-vector 0.000 0.100 0.200 0.300 0.400 0.500 0.600 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 
 				     0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.100 0.200 0.300 0.400 0.500 0.600)))
-	  (snd-display ";wt 0 data: ~A" (channel->float-vector 0 30)))
+	  (snd-display "wt 0 data: ~A" (channel->float-vector 0 30)))
       (if (not (mus-arrays-equal? (channel->float-vector 85 30) 
 		       (float-vector 0.000 0.000 0.000 0.000 0.000 0.100 0.200 0.300 0.400 0.500 0.600 0.000 0.000 0.000 0.000 
 				     0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.100 0.200 0.300)))
-	  (snd-display ";wt 0 data 85: ~A" (channel->float-vector 85 30)))
+	  (snd-display "wt 0 data 85: ~A" (channel->float-vector 85 30)))
       (undo)
       
       (let ((gen (make-wave-train 1000.0 :initial-phase pi :wave (make-float-vector 10 .1)))) ; initial-phase is confusing in this context!
 	(map-channel (lambda (y) (wave-train gen))))
       (let ((mx (maxamp)))
-	(if (fneq mx 0.1) (snd-display ";wt 1 max: ~A" mx)))
+	(if (fneq mx 0.1) (snd-display "wt 1 max: ~A" mx)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 30) 
 		       (float-vector 0.100 0.100 0.100 0.100 0.100 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 
 				     0.000 0.000 0.000 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.000 0.000)))
 	  (let-temporarily ((*print-length* 32))
-	    (snd-display ";wt 1 data: ~A" (channel->float-vector 0 30))))
+	    (snd-display "wt 1 data: ~A" (channel->float-vector 0 30))))
       (undo)
       
       (let ((gen (make-wave-train 2000.0 :wave (make-float-vector 10 .1))))
 	(map-channel (lambda (y) (wave-train gen))))
       (let ((mx (maxamp)))
-	(if (fneq mx 0.1) (snd-display ";wt 2 max: ~A" mx)))
+	(if (fneq mx 0.1) (snd-display "wt 2 max: ~A" mx)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 30) 
 		       (float-vector 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.000 0.000 0.100 0.100 0.100 
 				     0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.000 0.100 0.100 0.100 0.100 0.100 0.100 0.100)))
-	  (snd-display ";wt 2 data: ~A" (channel->float-vector 0 30)))
+	  (snd-display "wt 2 data: ~A" (channel->float-vector 0 30)))
       (if (not (or (mus-arrays-equal? (channel->float-vector 440 30) 
 			   (float-vector 0.000 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.000 0.000 0.100 0.100 
 					 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.000 0.100 0.100 0.100 0.100 0.100 0.100))
@@ -16414,35 +16414,35 @@ EDITS: 2
 		   (mus-arrays-equal? (channel->float-vector 440 30) 
 			   (float-vector 0.000 0.000 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.000 0.100 0.100 
 					 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.000 0.100 0.100 0.100 0.100 0.100 0.100))))
-	  (snd-display ";wt 2 data 440: ~A" (channel->float-vector 440 30)))
+	  (snd-display "wt 2 data 440: ~A" (channel->float-vector 440 30)))
       (undo)
       
       (let ((gen (make-wave-train 3000.0 :wave (make-float-vector 10 .1))))
 	(map-channel (lambda (y) (wave-train gen))))
       (let ((mx (maxamp)))
-	(if (fneq mx 0.2) (snd-display ";wt 3 max: ~A" mx)))
+	(if (fneq mx 0.2) (snd-display "wt 3 max: ~A" mx)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 30) 
 		       (float-vector 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.200 0.200 0.100 0.100 0.100 0.100 0.100 
 				     0.200 0.200 0.200 0.100 0.100 0.100 0.100 0.100 0.200 0.200 0.100 0.100 0.100 0.100 0.100)))
-	  (snd-display ";wt 3 data: ~A" (channel->float-vector 0 30)))
+	  (snd-display "wt 3 data: ~A" (channel->float-vector 0 30)))
       (if (not (mus-arrays-equal? (channel->float-vector 440 30) 
 		       (float-vector 0.100 0.200 0.200 0.200 0.100 0.100 0.100 0.100 0.100 0.200 0.200 0.100 0.100 0.100 0.100 
 				     0.100 0.200 0.200 0.200 0.100 0.100 0.100 0.100 0.100 0.200 0.200 0.100 0.100 0.100 0.100)))
-	  (snd-display ";wt 3 data 440: ~A" (channel->float-vector 440 30)))
+	  (snd-display "wt 3 data 440: ~A" (channel->float-vector 440 30)))
       (undo)
       
       (let ((gen (make-wave-train 5000.0 :wave (make-float-vector 10 .1))))
 	(map-channel (lambda (y) (wave-train gen))))
       (let ((mx (maxamp)))
-	(if (fneq mx 0.3) (snd-display ";wt 4 max: ~A" mx)))
+	(if (fneq mx 0.3) (snd-display "wt 4 max: ~A" mx)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 30) 
 		       (float-vector 0.100 0.100 0.100 0.100 0.100 0.200 0.200 0.200 0.200 0.300 0.200 0.200 0.200 0.200 0.300 
 				     0.200 0.200 0.200 0.300 0.200 0.200 0.200 0.200 0.300 0.200 0.200 0.200 0.300 0.200 0.200)))
-	  (snd-display ";wt 4 data: ~A" (channel->float-vector 0 30)))
+	  (snd-display "wt 4 data: ~A" (channel->float-vector 0 30)))
       (if (not (mus-arrays-equal? (channel->float-vector 440 30) 
 		       (float-vector 0.200 0.200 0.300 0.200 0.200 0.200 0.300 0.200 0.200 0.200 0.300 0.300 0.200 0.200 0.200 
 				     0.300 0.200 0.200 0.200 0.300 0.200 0.200 0.200 0.200 0.300 0.200 0.200 0.200 0.300 0.200)))
-	  (snd-display ";wt 4 data 440: ~A" (channel->float-vector 440 30)))
+	  (snd-display "wt 4 data 440: ~A" (channel->float-vector 440 30)))
       (undo)
       
       (let ((gen (make-wave-train 1000.0 :wave (make-float-vector 10 .1))))
@@ -16454,19 +16454,19 @@ EDITS: 2
 	       (set! (mus-frequency gen) (* base-freq (env e)))
 	       result)))))
       (let ((mx (maxamp)))
-	(if (fneq mx 0.1) (snd-display ";wt 5 max: ~A" mx)))
+	(if (fneq mx 0.1) (snd-display "wt 5 max: ~A" mx)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 30) 
 				  (float-vector 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.000 0.000 0.000 0.000 0.000 
 						0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.100 0.100 0.100 0.100 0.100 0.100 0.100)))
-	  (snd-display ";wt 5 data: ~A" (channel->float-vector 0 30)))
+	  (snd-display "wt 5 data: ~A" (channel->float-vector 0 30)))
       (if (not (mus-arrays-equal? (channel->float-vector 440 30) 
 				  (float-vector 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.000 0.000 0.000 0.000 0.000 0.000 0.100 
 						0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.000 0.000 0.000 0.000 0.000 0.100)))
-	  (snd-display ";wt 5 data 440: ~A" (channel->float-vector 440 30)))
+	  (snd-display "wt 5 data 440: ~A" (channel->float-vector 440 30)))
       (if (not (mus-arrays-equal? (channel->float-vector 900 30) 
 				  (float-vector 0.100 0.000 0.000 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.000 0.100 
 						0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.000 0.000 0.100 0.100 0.100 0.100)))
-	  (snd-display ";wt 5 data 900: ~A" (channel->float-vector 900 30)))
+	  (snd-display "wt 5 data 900: ~A" (channel->float-vector 900 30)))
       (undo)
       
       (let ((gen (make-wave-train 500.0 :wave (make-float-vector 10 .1)))
@@ -16481,22 +16481,22 @@ EDITS: 2
 		 (set! ctr (+ ctr 1)))
 	     result))))
       (let ((mx (maxamp)))
-	(if (fneq mx 0.704) (snd-display ";wt 6 max: ~A" mx)))
+	(if (fneq mx 0.704) (snd-display "wt 6 max: ~A" mx)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 30) 
 		       (float-vector 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.000 0.000 0.000 0.000 0.000 
 				     0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";wt 6 data: ~A" (channel->float-vector 0 30)))
+	  (snd-display "wt 6 data: ~A" (channel->float-vector 0 30)))
       (if (not (or (mus-arrays-equal? (channel->float-vector 440 30) 
 			   (float-vector 0.000 0.241 0.241 0.241 0.241 0.241 0.241 0.241 0.241 0.241 0.241 0.000 0.000 0.000 0.000
 					 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000))
 		   (mus-arrays-equal? (channel->float-vector 440 30) 
 			   (float-vector 0.000 0.000 0.241 0.241 0.241 0.241 0.241 0.241 0.241 0.241 0.241 0.241 0.000 0.000 0.000 0.000
 					 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000))))
-	  (snd-display ";wt 6 data 440: ~A" (channel->float-vector 440 30)))
+	  (snd-display "wt 6 data 440: ~A" (channel->float-vector 440 30)))
       (if (not (mus-arrays-equal? (channel->float-vector 900 30) 
 		       (float-vector 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 
 				     0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.639 0.639 0.639)))
-	  (snd-display ";wt 6 data 900: ~A" (channel->float-vector 900 30)))
+	  (snd-display "wt 6 data 900: ~A" (channel->float-vector 900 30)))
       (undo)
       (let ((fname (file-name ind)))
 	(close-sound ind)
@@ -16519,23 +16519,23 @@ EDITS: 2
 				  (if (string=? (mus-file-name gen1) "oboe.snd")
 				      -1.0
 				      1.0)))
-	(if (not (mus-arrays-equal? v0 v1)) (snd-display ";map readin: ~A ~A" v0 v1)))
-      (if (not (readin? gen)) (snd-display ";~A not readin?" gen))
-      (if (not (mus-input? gen)) (snd-display ";~A not input?" gen))
-      (if (not (= (mus-length gen) 50828)) (snd-display ";readin length: ~A?" (mus-length gen)))
-      (if (not (= (mus-channel gen) 0)) (snd-display ";readin chan: ~A?" (mus-channel gen)))
-      (if (not (string=? (mus-file-name gen) "oboe.snd")) (snd-display ";readin mus-file-name: ~A" (mus-file-name gen)))
-      (if (or (fneq (v0 1) -0.009) (fneq (v0 7) .029)) (snd-display ";readin output: ~A" v0))
+	(if (not (mus-arrays-equal? v0 v1)) (snd-display "map readin: ~A ~A" v0 v1)))
+      (if (not (readin? gen)) (snd-display "~A not readin?" gen))
+      (if (not (mus-input? gen)) (snd-display "~A not input?" gen))
+      (if (not (= (mus-length gen) 50828)) (snd-display "readin length: ~A?" (mus-length gen)))
+      (if (not (= (mus-channel gen) 0)) (snd-display "readin chan: ~A?" (mus-channel gen)))
+      (if (not (string=? (mus-file-name gen) "oboe.snd")) (snd-display "readin mus-file-name: ~A" (mus-file-name gen)))
+      (if (or (fneq (v0 1) -0.009) (fneq (v0 7) .029)) (snd-display "readin output: ~A" v0))
       (set! (mus-location gen) 1000)
-      (if (not (= (mus-location gen) 1000)) (snd-display ";set! mus-location: ~A?" (mus-location gen)))
+      (if (not (= (mus-location gen) 1000)) (snd-display "set! mus-location: ~A?" (mus-location gen)))
       (let ((val (readin gen)))
-	(if (fneq val 0.033) (snd-display ";set! mus-location readin: ~A?" val)))
+	(if (fneq val 0.033) (snd-display "set! mus-location readin: ~A?" val)))
       (set! (mus-increment gen) -1)
-      (if (fneq (mus-increment gen) -1.0) (snd-display ";set increment readin: ~A" (mus-increment gen))))
+      (if (fneq (mus-increment gen) -1.0) (snd-display "set increment readin: ~A" (mus-increment gen))))
     (let ((tag (catch #t (lambda () (make-readin "/baddy/hiho" 0 124)) (lambda args args))))
-      (if (not (eq? (car tag) 'no-such-file)) (snd-display ";make-readin w/o file: ~A" tag)))
+      (if (not (eq? (car tag) 'no-such-file)) (snd-display "make-readin w/o file: ~A" tag)))
     (let ((tag (catch #t (lambda () (make-readin "oboe.snd" 123 124)) (lambda args args))))
-      (if (not (eq? (car tag) 'out-of-range)) (snd-display ";make-readin with bad chan: ~A" tag)))
+      (if (not (eq? (car tag) 'out-of-range)) (snd-display "make-readin with bad chan: ~A" tag)))
     
     (test-gen-equal (make-readin "oboe.snd" 0) (make-readin "oboe.snd" 0) (make-readin "oboe.snd" 0 1230))
     (test-gen-equal (make-readin "oboe.snd" 0 :size 512) (make-readin "oboe.snd" 0 :size 512) (make-readin "pistol.snd" 0 :size 512))
@@ -16549,8 +16549,8 @@ EDITS: 2
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
 	(set! (v0 i) (readin gen)))
-      (if (not (= (mus-channel gen) 1)) (snd-display ";readin chan 1: ~A?" (mus-channel gen)))
-      (if (or (fneq (v0 1) 0.010) (fneq (v0 7) -.006)) (snd-display ";readin 1 output: ~A" v0))
+      (if (not (= (mus-channel gen) 1)) (snd-display "readin chan 1: ~A?" (mus-channel gen)))
+      (if (or (fneq (v0 1) 0.010) (fneq (v0 7) -.006)) (snd-display "readin 1 output: ~A" v0))
       (print-and-check gen 
 		       "readin"
 		       "readin 2.snd[chan 1], loc: 10, dir: 1"))
@@ -16560,17 +16560,17 @@ EDITS: 2
       (print-and-check gen 
 		       "file->sample"
 		       "file->sample oboe.snd")
-      (if (not (mus-input? gen)) (snd-display ";~A not input?" gen))
-      (if (not (= (mus-length gen) 50828)) (snd-display ";file->sample length: ~A?" (mus-length gen)))
-      (if (not (string=? (mus-file-name gen) "oboe.snd")) (snd-display ";file->sample mus-file-name: ~A" (mus-file-name gen)))
+      (if (not (mus-input? gen)) (snd-display "~A not input?" gen))
+      (if (not (= (mus-length gen) 50828)) (snd-display "file->sample length: ~A?" (mus-length gen)))
+      (if (not (string=? (mus-file-name gen) "oboe.snd")) (snd-display "file->sample mus-file-name: ~A" (mus-file-name gen)))
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
 	(set! (v0 i) (file->sample gen (+ 1490 i))))
-      (if (not (file->sample? gen)) (snd-display ";~A not file->sample?" gen))
-      (if (or (fneq (v0 1) -0.009) (fneq (v0 7) .029)) (snd-display ";file->sample output: ~A" v0))
-      (if (fneq (mus-increment gen) 0.0) (snd-display ";file->sample increment: ~A" (mus-increment gen)))
+      (if (not (file->sample? gen)) (snd-display "~A not file->sample?" gen))
+      (if (or (fneq (v0 1) -0.009) (fneq (v0 7) .029)) (snd-display "file->sample output: ~A" v0))
+      (if (fneq (mus-increment gen) 0.0) (snd-display "file->sample increment: ~A" (mus-increment gen)))
       (set! (mus-increment gen) 1.0)
-      (if (fneq (mus-increment gen) 1.0) (snd-display ";file->sample set increment: ~A" (mus-increment gen)))
+      (if (fneq (mus-increment gen) 1.0) (snd-display "file->sample set increment: ~A" (mus-increment gen)))
       (mus-reset gen)) ; a no-op I hope
     
     (let* ((ind (open-sound "oboe.snd"))
@@ -16580,22 +16580,22 @@ EDITS: 2
       (print-and-check gen 
 		       "snd->sample"
 		       "snd->sample reading oboe.snd (1 chan) at 0:[no readers]")
-      (if (equal? gen gen1) (snd-display ";snd->sample eq? not itself?"))
-      (if (not (mus-input? gen)) (snd-display ";snd->sample ~A not input?" gen))
-      (if (not (= (framples ind) (mus-length gen))) (snd-display ";snd->sample len: ~A ~A" (framples ind) (mus-length gen)))
+      (if (equal? gen gen1) (snd-display "snd->sample eq? not itself?"))
+      (if (not (mus-input? gen)) (snd-display "snd->sample ~A not input?" gen))
+      (if (not (= (framples ind) (mus-length gen))) (snd-display "snd->sample len: ~A ~A" (framples ind) (mus-length gen)))
       (if (not (string=? (mus-file-name gen) (string-append cwd "oboe.snd")))
-	  (snd-display ";snd->sample mus-file-name: ~A ~A" (mus-file-name gen) (string-append cwd "oboe.snd")))
+	  (snd-display "snd->sample mus-file-name: ~A ~A" (mus-file-name gen) (string-append cwd "oboe.snd")))
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
 	(set! (v0 i) (snd->sample gen (+ 1490 i))))
-      (if (not (snd->sample? gen)) (snd-display ";~A not snd->sample?" gen))
-      (if (or (fneq (v0 1) -0.009) (fneq (v0 7) .029)) (snd-display ";snd->sample output: ~A" v0))
-      (if (not (= (mus-channels gen) 1)) (snd-display ";snd->sample channels: ~A" (mus-channels gen)))
-      (if (not (= (mus-location gen) 1499)) (snd-display ";snd->sample location: ~A" (mus-location gen)))
+      (if (not (snd->sample? gen)) (snd-display "~A not snd->sample?" gen))
+      (if (or (fneq (v0 1) -0.009) (fneq (v0 7) .029)) (snd-display "snd->sample output: ~A" v0))
+      (if (not (= (mus-channels gen) 1)) (snd-display "snd->sample channels: ~A" (mus-channels gen)))
+      (if (not (= (mus-location gen) 1499)) (snd-display "snd->sample location: ~A" (mus-location gen)))
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
 	(set! (v0 i) (ina (+ 1490 i) gen)))
-      (if (or (fneq (v0 1) -0.009) (fneq (v0 7) .029)) (snd-display ";snd->sample ina output: ~A" v0))
+      (if (or (fneq (v0 1) -0.009) (fneq (v0 7) .029)) (snd-display "snd->sample ina output: ~A" v0))
       (close-sound ind))
     
     (let* ((ind (open-sound "2.snd"))
@@ -16608,12 +16608,12 @@ EDITS: 2
       (print-and-check gen 
 		       "snd->sample"
 		       "snd->sample reading 2.snd (2 chans) at 1499:[#<sampler: 2.snd[0: 0] from 1490, at 1500, forward>, #<sampler: 2.snd[1: 0] from 1490, at 1500, forward>]")
-      (if (not (mus-input? gen)) (snd-display ";snd->sample ~A not input?" gen))
+      (if (not (mus-input? gen)) (snd-display "snd->sample ~A not input?" gen))
       (if (not (string=? (mus-file-name gen) (string-append cwd "2.snd")))
-	  (snd-display ";snd->sample mus-file-name: ~A ~A" (mus-file-name gen) (string-append cwd "2.snd")))
-      (if (not (snd->sample? gen)) (snd-display ";~A not snd->sample?" gen))
-      (if (not (= (mus-channels gen) 2)) (snd-display ";snd->sample channels (2): ~A" (mus-channels gen)))
-      (if (not (= (mus-location gen) 1499)) (snd-display ";snd->sample location (2): ~A" (mus-location gen)))
+	  (snd-display "snd->sample mus-file-name: ~A ~A" (mus-file-name gen) (string-append cwd "2.snd")))
+      (if (not (snd->sample? gen)) (snd-display "~A not snd->sample?" gen))
+      (if (not (= (mus-channels gen) 2)) (snd-display "snd->sample channels (2): ~A" (mus-channels gen)))
+      (if (not (= (mus-location gen) 1499)) (snd-display "snd->sample location (2): ~A" (mus-location gen)))
       (close-sound ind))
     
     (let ((gen (make-file->frample "oboe.snd"))
@@ -16623,14 +16623,14 @@ EDITS: 2
 		       "file->frample"
 		       "file->frample oboe.snd"
 		       "file->frample oboe.snd")
-      (if (not (mus-input? gen)) (snd-display ";~A not input?" gen))
-      (if (not (= (mus-length gen) 50828)) (snd-display ";file->frample length: ~A?" (mus-length gen)))
-      (if (not (string=? (mus-file-name gen) "oboe.snd")) (snd-display ";file->frample mus-file-name: ~A" (mus-file-name gen)))
+      (if (not (mus-input? gen)) (snd-display "~A not input?" gen))
+      (if (not (= (mus-length gen) 50828)) (snd-display "file->frample length: ~A?" (mus-length gen)))
+      (if (not (string=? (mus-file-name gen) "oboe.snd")) (snd-display "file->frample mus-file-name: ~A" (mus-file-name gen)))
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
 	(set! (v0 i) ((file->frample gen (+ 1490 i) g1) 0)))
-      (if (not (file->frample? gen)) (snd-display ";~A not file->frample?" gen))
-      (if (or (fneq (v0 1) -0.009) (fneq (v0 7) .029)) (snd-display ";file->frample output: ~A" v0)))
+      (if (not (file->frample? gen)) (snd-display "~A not file->frample?" gen))
+      (if (or (fneq (v0 1) -0.009) (fneq (v0 7) .029)) (snd-display "file->frample output: ~A" v0)))
     
     (if (file-exists? "fmv.snd") (delete-file "fmv.snd"))
     (if (file-exists? "fmv1.snd") (delete-file "fmv1.snd"))
@@ -16640,10 +16640,10 @@ EDITS: 2
       (print-and-check gen 
 		       "sample->file"
 		       "sample->file fmv.snd")
-      (if (not (mus-output? gen)) (snd-display ";~A not output?" gen))
-      (if (not (sample->file? gen)) (snd-display ";~A not sample->file?" gen))
-      (if (not (= (mus-length gen) *clm-file-buffer-size*)) (snd-display ";sample->file length: ~A?" (mus-length gen)))
-      (if (not (string=? (mus-file-name gen) "fmv.snd")) (snd-display ";sample->file mus-file-name: ~A" (mus-file-name gen)))
+      (if (not (mus-output? gen)) (snd-display "~A not output?" gen))
+      (if (not (sample->file? gen)) (snd-display "~A not sample->file?" gen))
+      (if (not (= (mus-length gen) *clm-file-buffer-size*)) (snd-display "sample->file length: ~A?" (mus-length gen)))
+      (if (not (string=? (mus-file-name gen) "fmv.snd")) (snd-display "sample->file mus-file-name: ~A" (mus-file-name gen)))
       (do ((i 0 (+ i 1)))
 	  ((= i 100))
 	(sample->file gen i 0 (* i .001))
@@ -16667,13 +16667,13 @@ EDITS: 2
       (print-and-check gen 
 		       "file->sample"
 		       "file->sample fmv.snd")
-      (if (not (= (mus-channels gen) 2)) (snd-display ";make-sample->file chans: ~A?" (mus-channels gen)))
-      (if (not (mus-input? gen)) (snd-display ";~A not input?" gen))
-      (if (or (fneq val0 .02) (fneq val1 .2)) (snd-display ";in-any: ~A ~A?" val0 val1))
-      (if (or (fneq val2 .03) (fneq val3 .3)) (snd-display ";inab: ~A ~A?" val2 val3))
-      (if (or (fneq val4 .04) (fneq val5 .4)) (snd-display ";sample->file: ~A ~A?" val4 val5))
-      (if (or (fneq val6 .065) (fneq val7 .65)) (snd-display ";outab: ~A ~A?" val6 val7))
-      (if (or (fneq val8 .075) (fneq val9 .75)) (snd-display ";out-any: ~A ~A?" val8 val9)))
+      (if (not (= (mus-channels gen) 2)) (snd-display "make-sample->file chans: ~A?" (mus-channels gen)))
+      (if (not (mus-input? gen)) (snd-display "~A not input?" gen))
+      (if (or (fneq val0 .02) (fneq val1 .2)) (snd-display "in-any: ~A ~A?" val0 val1))
+      (if (or (fneq val2 .03) (fneq val3 .3)) (snd-display "inab: ~A ~A?" val2 val3))
+      (if (or (fneq val4 .04) (fneq val5 .4)) (snd-display "sample->file: ~A ~A?" val4 val5))
+      (if (or (fneq val6 .065) (fneq val7 .65)) (snd-display "outab: ~A ~A?" val6 val7))
+      (if (or (fneq val8 .075) (fneq val9 .75)) (snd-display "out-any: ~A ~A?" val8 val9)))
     
     (let ((gen (make-float-vector 10)))
       (do ((i 0 (+ i 1))
@@ -16681,14 +16681,14 @@ EDITS: 2
 	  ((= i 10))
 	(outa i x gen))
       (if (not (mus-arrays-equal? gen (float-vector 0 .1 .2 .3 .4 .5 .6 .7 .8 .9)))
-	  (snd-display ";outa->float-vector ramp: ~A" gen))
+	  (snd-display "outa->float-vector ramp: ~A" gen))
       (do ((i 0 (+ i 1))
 	   (x 0.0 (+ x 0.1)))
 	  ((= i 10))
 	(outa i x gen))
       (if (not (mus-arrays-equal? gen (float-vector-scale! (float-vector 0 .1 .2 .3 .4 .5 .6 .7 .8 .9) 2.0)))
-	  (snd-display ";outa->float-vector ramp 2: ~A" gen))
-      (if (not (= (mus-channels gen) 1)) (snd-display ";mus-channels float-vector: ~A" (mus-channels gen))))
+	  (snd-display "outa->float-vector ramp 2: ~A" gen))
+      (if (not (= (mus-channels gen) 1)) (snd-display "mus-channels float-vector: ~A" (mus-channels gen))))
     
     (let ((gen (make-float-vector '(4 100))))
       (do ((i 0 (+ i 1)))
@@ -16710,8 +16710,8 @@ EDITS: 2
 		(fneq (inb i gen) .22)
 		(fneq (in-any i 2 gen) .33)
 		(fneq (in-any i 3 gen) .44))
-	    (snd-display ";4-chan sd out/in[~A]: ~A ~A ~A ~A?" i (ina i gen) (inb i gen) (in-any i 2 gen) (in-any i 3 gen))))  
-      (if (not (= (mus-channels gen) 4)) (snd-display ";mus-channels sd 4: ~A" (mus-channels gen))))
+	    (snd-display "4-chan sd out/in[~A]: ~A ~A ~A ~A?" i (ina i gen) (inb i gen) (in-any i 2 gen) (in-any i 3 gen))))  
+      (if (not (= (mus-channels gen) 4)) (snd-display "mus-channels sd 4: ~A" (mus-channels gen))))
     
     (let ((gen (make-float-vector '(4 100))))
       (do ((i 0 (+ i 1)))
@@ -16732,13 +16732,13 @@ EDITS: 2
 		(fneq (in-any i 1 gen) .22)
 		(fneq (in-any i 2 gen) .33)
 		(fneq (in-any i 3 gen) .44))
-	    (snd-display ";4-chan sd out/in-any[~A]: ~A ~A ~A ~A?" i (in-any i 0 gen) (in-any i 1 gen) (in-any i 2 gen) (in-any i 3 gen)))))
+	    (snd-display "4-chan sd out/in-any[~A]: ~A ~A ~A ~A?" i (in-any i 0 gen) (in-any i 1 gen) (in-any i 2 gen) (in-any i 3 gen)))))
     
     (let ((tag (catch #t (let ((gen (make-oscil 440.0)))
 			   (lambda () (outa 0 .1 gen)))
 		      (lambda args (car args)))))
       (if (not (memq tag '(wrong-type-arg mus-error)))
-	  (snd-display ";outa -> oscil: ~A" tag)))
+	  (snd-display "outa -> oscil: ~A" tag)))
     
     (let ((gen (make-sample->file "fmv.snd" 4 mus-lshort mus-riff)))
       (print-and-check gen 
@@ -16767,7 +16767,7 @@ EDITS: 2
 		(fneq (inb i gen) .22)
 		(fneq (in-any i 2 gen) .33)
 		(fneq (in-any i 3 gen) .44))
-	    (snd-display ";4-chan out/in[~A]: ~A ~A ~A ~A?" i (ina i gen) (inb i gen) (in-any i 2 gen) (in-any i 3 gen)))))
+	    (snd-display "4-chan out/in[~A]: ~A ~A ~A ~A?" i (ina i gen) (inb i gen) (in-any i 2 gen) (in-any i 3 gen)))))
     
     (let ((gen (make-sample->file "fmv.snd" 4 mus-lshort mus-riff)))
        (do ((i 0 (+ i 1)))
@@ -16790,27 +16790,27 @@ EDITS: 2
 		(fneq (inb i gen) .22)
 		(fneq (in-any i 2 gen) .33)
 		(fneq (in-any i 3 gen) .44))
-	    (snd-display ";4-chan out/in[~A]: ~A ~A ~A ~A?" i (ina i gen) (inb i gen) (in-any i 2 gen) (in-any i 3 gen)))))
+	    (snd-display "4-chan out/in[~A]: ~A ~A ~A ~A?" i (ina i gen) (inb i gen) (in-any i 2 gen) (in-any i 3 gen)))))
     
     (let ((var (catch #t (lambda () (make-sample->file "fmv.snd" -1 mus-lshort mus-next)) (lambda args args))))
       (if (not (eq? (car var) 'out-of-range))
-	  (snd-display ";make-sample->file bad chans: ~A" var)))
+	  (snd-display "make-sample->file bad chans: ~A" var)))
     (let ((var (catch #t (lambda () (mus-location (make-oscil))) (lambda args args))))
       (if (not (and (pair? var) (eq? (car var) 'mus-error)))
-	  (snd-display ";mus-location oscil: ~A" var)))
+	  (snd-display "mus-location oscil: ~A" var)))
     (let ((var (catch #t (lambda () (make-sample->file "fmv.snd" 1 -1 mus-next)) (lambda args args))))
       (if (not (eq? (car var) 'out-of-range))
-	  (snd-display ";make-sample->file bad format: ~A" var)))
+	  (snd-display "make-sample->file bad format: ~A" var)))
     (let ((var (catch #t (lambda () (make-sample->file "fmv.snd" 1 mus-lshort -1)) (lambda args args))))
       (if (not (eq? (car var) 'out-of-range))
-	  (snd-display ";make-sample->file bad type: ~A" var)))
+	  (snd-display "make-sample->file bad type: ~A" var)))
     
     (do ((v (vector 1.0 0.5 0.25 0.125 0.0))
 	 (v1 (make-float-vector 5))
 	 (i 0 (+ i 1)))
 	((= i 5)
 	 (if (not (mus-arrays-equal? v1 (float-vector 1.0 0.5 0.25 0.125 0.0)))
-	     (snd-display ";vector in-any -> ~A?" v1)))
+	     (snd-display "vector in-any -> ~A?" v1)))
       (set! (v1 i) (in-any i 0 v)))
     
     (let ((invals (make-float-vector 10)))
@@ -16822,7 +16822,7 @@ EDITS: 2
 				    ((= i 10))
 				  (outa i (ina i invals))))))
 	(if (not (mus-arrays-equal? result (float-vector 0.000 0.100 0.200 0.300 0.400 0.500 0.600 0.700 0.800 0.900)))
-	    (snd-display ";ina from float-vector: ~A" result))))
+	    (snd-display "ina from float-vector: ~A" result))))
     
     (let ((invals (make-float-vector 10)))
       (do ((i 0 (+ i 1)))
@@ -16833,26 +16833,26 @@ EDITS: 2
 				     ((= i 10))
 				   (outa i (ina i invals))))))
 	(if (not (mus-arrays-equal? result (float-vector 0.000 0.100 0.200 0.300 0.400 0.500 0.600 0.700 0.800 0.900)))
-	    (snd-display ";run ina from float-vector: ~A" result))))
+	    (snd-display "run ina from float-vector: ~A" result))))
     
     (for-each close-sound (sounds))
     
     (let ((vals (float-vector-peak (with-sound ((make-float-vector 4410))
 				     (fm-violin 0 .1 440 .1)))))
       (if (fneq vals .1)
-	  (snd-display ";locsig to float-vector fm-violin peak: ~A" vals)))
+	  (snd-display "locsig to float-vector fm-violin peak: ~A" vals)))
     
     (let ((mxs (maxamp (with-sound ((make-float-vector '(2 4410)))
 			  (fm-violin 0 .1 440 .1 :degree 30)))))
       (if (fneq mxs 0.0666)
-	  (snd-display ";locsig to sound-data fm-violin peak: ~A" mxs)))
+	  (snd-display "locsig to sound-data fm-violin peak: ~A" mxs)))
         
     (let ((gen (make-sample->file "fmv2.snd" 4 mus-bshort mus-aifc)))
       (print-and-check gen 
 		       "sample->file"
 		       "sample->file fmv2.snd")
-      (if (not (mus-output? gen)) (snd-display ";~A not output?" gen))
-      (if (not (sample->file? gen)) (snd-display ";~A not sample->file?" gen))
+      (if (not (mus-output? gen)) (snd-display "~A not output?" gen))
+      (if (not (sample->file? gen)) (snd-display "~A not sample->file?" gen))
       (do ((i 0 (+ i 1)))
 	  ((= i 100))
 	(sample->file gen i 0 (* i .001))
@@ -16875,11 +16875,11 @@ EDITS: 2
 	   (val3 (file->sample gen 50 3))
 	   (val4 (file->sample gen 60 2))
 	   (val5 (file->sample gen 60 3)))
-      (if (not (= (mus-channels gen) 4)) (snd-display ";make-file->sample (4) chans: ~A?" (mus-channels gen)))
-      (if (not (= (mus-increment gen) 0.0)) (snd-display ";file->sample increment: ~A" (mus-increment gen))) ; dir never set in this case
-      (if (or (fneq val0 .04) (fneq val1 .06)) (snd-display ";in-any(0, 4): ~A ~A?" val0 val1))
-      (if (or (fneq val2 .12) (fneq val3 .18)) (snd-display ";file->sample(4): ~A ~A?" val2 val3))
-      (if (or (fneq val4 .14) (fneq val5 .21)) (snd-display ";in-any(4, 4): ~A ~A?" val4 val5)))
+      (if (not (= (mus-channels gen) 4)) (snd-display "make-file->sample (4) chans: ~A?" (mus-channels gen)))
+      (if (not (= (mus-increment gen) 0.0)) (snd-display "file->sample increment: ~A" (mus-increment gen))) ; dir never set in this case
+      (if (or (fneq val0 .04) (fneq val1 .06)) (snd-display "in-any(0, 4): ~A ~A?" val0 val1))
+      (if (or (fneq val2 .12) (fneq val3 .18)) (snd-display "file->sample(4): ~A ~A?" val2 val3))
+      (if (or (fneq val4 .14) (fneq val5 .21)) (snd-display "in-any(4, 4): ~A ~A?" val4 val5)))
     
     (if (file-exists? "fmv.snd") (delete-file "fmv.snd"))
     (mus-sound-forget "fmv.snd")
@@ -16890,17 +16890,17 @@ EDITS: 2
 	(sample->file sf i 1 (* i .01)))
       (mus-close sf))
     (if (not (= (mus-sound-chans "fmv.snd") 2)) 
-	(snd-display ";sample->file chans: ~A" (mus-sound-chans "fmv.snd")))
+	(snd-display "sample->file chans: ~A" (mus-sound-chans "fmv.snd")))
     (if (not (= (mus-sound-framples "fmv.snd") 10)) 
-	(snd-display ";sample->file framples: ~A" (mus-sound-framples "fmv.snd")))
+	(snd-display "sample->file framples: ~A" (mus-sound-framples "fmv.snd")))
     (if (not (= (mus-sound-samples "fmv.snd") 20)) 
-	(snd-display ";sample->file samples: ~A" (mus-sound-samples "fmv.snd")))
+	(snd-display "sample->file samples: ~A" (mus-sound-samples "fmv.snd")))
     (if (not (= (mus-sound-header-type "fmv.snd") mus-next)) 
-	(snd-display ";sample->file type: ~A" (mus-header-type-name (mus-sound-header-type "fmv.snd"))))
+	(snd-display "sample->file type: ~A" (mus-header-type-name (mus-sound-header-type "fmv.snd"))))
     (if (not (= (mus-sound-sample-type "fmv.snd") mus-bshort)) 
-	(snd-display ";sample->file format: ~A" (mus-sample-type-name (mus-sound-sample-type "fmv.snd"))))
+	(snd-display "sample->file format: ~A" (mus-sample-type-name (mus-sound-sample-type "fmv.snd"))))
     (if (not (string=? (mus-sound-comment "fmv.snd") "this is a comment"))
-	(snd-display ";sample->file comment: ~A" (mus-sound-comment "fmv.snd")))
+	(snd-display "sample->file comment: ~A" (mus-sound-comment "fmv.snd")))
     (let ((rd (make-file->sample "fmv.snd"))
 	  (happy #t))
       (do ((i 0 (+ i 1)))
@@ -16909,7 +16909,7 @@ EDITS: 2
 	      (c1 (file->sample rd i 1)))
 	  (when (or (fneq c0 (* i .1))
 		    (fneq c1 (* i .01)))
-	    (snd-display ";sample->file->sample at ~A: ~A ~A" i c0 c1)
+	    (snd-display "sample->file->sample at ~A: ~A ~A" i c0 c1)
 	    (set! happy #f))))
       (mus-close rd))
 
@@ -16921,24 +16921,24 @@ EDITS: 2
       (mus-close sf))
     (mus-sound-forget "fmv.snd")
     (if (not (= (mus-sound-chans "fmv.snd") 2)) 
-	(snd-display ";continue-sample->file chans: ~A" (mus-sound-chans "fmv.snd")))
+	(snd-display "continue-sample->file chans: ~A" (mus-sound-chans "fmv.snd")))
     (if (not (= (mus-sound-framples "fmv.snd") 15)) 
-	(snd-display ";continue-sample->file framples: ~A" (mus-sound-framples "fmv.snd")))
+	(snd-display "continue-sample->file framples: ~A" (mus-sound-framples "fmv.snd")))
     (if (not (= (mus-sound-samples "fmv.snd") 30)) 
-	(snd-display ";continue-sample->file samples: ~A" (mus-sound-samples "fmv.snd")))
+	(snd-display "continue-sample->file samples: ~A" (mus-sound-samples "fmv.snd")))
     (if (not (= (mus-sound-header-type "fmv.snd") mus-next)) 
-	(snd-display ";continue-sample->file type: ~A" (mus-header-type-name (mus-sound-header-type "fmv.snd"))))
+	(snd-display "continue-sample->file type: ~A" (mus-header-type-name (mus-sound-header-type "fmv.snd"))))
     (if (not (= (mus-sound-sample-type "fmv.snd") mus-bshort)) 
-	(snd-display ";continue-sample->file format: ~A" (mus-sample-type-name (mus-sound-sample-type "fmv.snd"))))
+	(snd-display "continue-sample->file format: ~A" (mus-sample-type-name (mus-sound-sample-type "fmv.snd"))))
     (if (not (string=? (mus-sound-comment "fmv.snd") "this is a comment"))
-	(snd-display ";continue-sample->file comment: ~A" (mus-sound-comment "fmv.snd")))
+	(snd-display "continue-sample->file comment: ~A" (mus-sound-comment "fmv.snd")))
     (let ((ind (open-sound "fmv.snd")))
       (let ((c0 (channel->float-vector 0 15 ind 0))
 	    (c1 (channel->float-vector 0 15 ind 1)))
 	(if (not (mus-arrays-equal? c0 (float-vector 0.0 0.1 0.2 0.3 0.4 0.5 0.58 0.66 0.74 0.82 -0.1 -0.12 -0.14 -0.16 -0.18)))
-	    (snd-display ";continue-sample->file (0): ~A" c0))
+	    (snd-display "continue-sample->file (0): ~A" c0))
 	(if (not (mus-arrays-equal? c1 (float-vector 0.0 0.01 0.02 0.03 0.04 0.05 0.05 0.05 0.05 0.05 -0.05 -0.06 -0.07 -0.08 -0.09)))
-	    (snd-display ";continue-sample->file (1): ~A" c1)))
+	    (snd-display "continue-sample->file (1): ~A" c1)))
       (close-sound ind))
     (delete-file "fmv.snd")
     (mus-sound-forget "fmv.snd")
@@ -16948,14 +16948,14 @@ EDITS: 2
 	  (m1 (float-vector .5 .25 .125 1.0)))
       (let ((result (frample->frample m1 f1 2 f2 2)))
 	(if (not (equal? result (float-vector 0.625 1.25)))
-	  (snd-display ";frample->frample: ~A" result))))
+	  (snd-display "frample->frample: ~A" result))))
 
     (let ((f1 (float-vector 1.0 2.0 3.0))
 	  (f2 (float-vector 0.0 0.0 0.0))
 	  (m1 (float-vector 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0)))
       (let ((result (frample->frample m1 f1 3 f2 3)))
 	(if (not (equal? result (float-vector 30.0 36.0 42.0)))
-	  (snd-display ";frample->frample 1: ~A" result))))
+	  (snd-display "frample->frample 1: ~A" result))))
 
     (let ((sf (make-frample->file "fmv.snd" 2 mus-lfloat mus-riff "this is a comment")))
       (do ((i 0 (+ i 1)))
@@ -16963,17 +16963,17 @@ EDITS: 2
 	(frample->file sf i (float-vector (* i .1) (* i .01))))
       (mus-close sf))
     (if (not (= (mus-sound-chans "fmv.snd") 2)) 
-	(snd-display ";frample->file chans: ~A" (mus-sound-chans "fmv.snd")))
+	(snd-display "frample->file chans: ~A" (mus-sound-chans "fmv.snd")))
     (if (not (= (mus-sound-framples "fmv.snd") 10)) 
-	(snd-display ";frample->file framples: ~A" (mus-sound-framples "fmv.snd")))
+	(snd-display "frample->file framples: ~A" (mus-sound-framples "fmv.snd")))
     (if (not (= (mus-sound-samples "fmv.snd") 20)) 
-	(snd-display ";frample->file samples: ~A" (mus-sound-samples "fmv.snd")))
+	(snd-display "frample->file samples: ~A" (mus-sound-samples "fmv.snd")))
     (if (not (= (mus-sound-header-type "fmv.snd") mus-riff)) 
-	(snd-display ";frample->file type: ~A" (mus-header-type-name (mus-sound-header-type "fmv.snd"))))
+	(snd-display "frample->file type: ~A" (mus-header-type-name (mus-sound-header-type "fmv.snd"))))
     (if (not (= (mus-sound-sample-type "fmv.snd") mus-lfloat)) 
-	(snd-display ";frample->file format: ~A" (mus-sample-type-name (mus-sound-sample-type "fmv.snd"))))
+	(snd-display "frample->file format: ~A" (mus-sample-type-name (mus-sound-sample-type "fmv.snd"))))
     (if (not (string=? (mus-sound-comment "fmv.snd") "this is a comment"))
-	(snd-display ";frample->file comment: ~A" (mus-sound-comment "fmv.snd")))
+	(snd-display "frample->file comment: ~A" (mus-sound-comment "fmv.snd")))
     (let ((rd (make-file->frample "fmv.snd"))
 	  (f0 (float-vector 0.0 0.0))
 	  (happy #t))
@@ -16983,7 +16983,7 @@ EDITS: 2
 	(when (or (not (= (mus-length f0) 2))
 		  (fneq (f0 0) (* i .1))
 		  (fneq (f0 1) (* i .01)))
-	  (snd-display ";frample->file->frample at ~A: ~A" i f0)
+	  (snd-display "frample->file->frample at ~A: ~A" i f0)
 	  (set! happy #f)))
       (mus-close rd))
     (let ((sf (continue-frample->file "fmv.snd")))
@@ -16993,24 +16993,24 @@ EDITS: 2
       (mus-close sf))
     (mus-sound-forget "fmv.snd")
     (if (not (= (mus-sound-chans "fmv.snd") 2)) 
-	(snd-display ";continue-frample->file chans: ~A" (mus-sound-chans "fmv.snd")))
+	(snd-display "continue-frample->file chans: ~A" (mus-sound-chans "fmv.snd")))
     (if (not (= (mus-sound-framples "fmv.snd") 15)) 
-	(snd-display ";continue-frample->file framples: ~A" (mus-sound-framples "fmv.snd")))
+	(snd-display "continue-frample->file framples: ~A" (mus-sound-framples "fmv.snd")))
     (if (not (= (mus-sound-samples "fmv.snd") 30)) 
-	(snd-display ";continue-frample->file samples: ~A" (mus-sound-samples "fmv.snd")))
+	(snd-display "continue-frample->file samples: ~A" (mus-sound-samples "fmv.snd")))
     (if (not (= (mus-sound-header-type "fmv.snd") mus-riff)) 
-	(snd-display ";continue-frample->file type: ~A" (mus-header-type-name (mus-sound-header-type "fmv.snd"))))
+	(snd-display "continue-frample->file type: ~A" (mus-header-type-name (mus-sound-header-type "fmv.snd"))))
     (if (not (= (mus-sound-sample-type "fmv.snd") mus-lfloat)) 
-	(snd-display ";continue-frample->file format: ~A" (mus-sample-type-name (mus-sound-sample-type "fmv.snd"))))
+	(snd-display "continue-frample->file format: ~A" (mus-sample-type-name (mus-sound-sample-type "fmv.snd"))))
     (if (not (string=? (mus-sound-comment "fmv.snd") "this is a comment"))
-	(snd-display ";continue-frample->file comment: ~A" (mus-sound-comment "fmv.snd")))
+	(snd-display "continue-frample->file comment: ~A" (mus-sound-comment "fmv.snd")))
     (let ((ind (open-sound "fmv.snd")))
       (let ((c0 (channel->float-vector 0 15 ind 0))
 	    (c1 (channel->float-vector 0 15 ind 1)))
 	(if (not (mus-arrays-equal? c0 (float-vector 0.0 0.1 0.2 0.3 0.4 0.5 0.58 0.66 0.74 0.82 -0.1 -0.12 -0.14 -0.16 -0.18)))
-	    (snd-display ";continue-frample->file (0): ~A" c0))
+	    (snd-display "continue-frample->file (0): ~A" c0))
 	(if (not (mus-arrays-equal? c1 (float-vector 0.0 0.01 0.02 0.03 0.04 0.05 0.05 0.05 0.05 0.05 -0.05 -0.06 -0.07 -0.08 -0.09)))
-	    (snd-display ";continue-frample->file (1): ~A" c1)))
+	    (snd-display "continue-frample->file (1): ~A" c1)))
       (close-sound ind))
     (delete-file "fmv.snd")
     (mus-sound-forget "fmv.snd")
@@ -17026,17 +17026,17 @@ EDITS: 2
 	(do ((i 0 (+ i 1)))
 	    ((= i 1000))
 	  (if (fneq (v0 i) (v1 i)) 
-	      (snd-display ";array->file->array: ~A ~A ~A?" i (v0 i) (v1 i)))))
+	      (snd-display "array->file->array: ~A ~A ~A?" i (v0 i) (v1 i)))))
       
       (let ((var (catch #t (lambda () (array->file "fmv3.snd" v0 -1 1000 1)) (lambda args args))))
 	(if (not (eq? (car var) 'out-of-range))
-	    (snd-display ";array->file bad samps: ~A" var)))
+	    (snd-display "array->file bad samps: ~A" var)))
       (let ((var (catch #t (lambda () (array->file "/bad/baddy/fmv3.snd" v0 1 1000 1)) (lambda args args))))
 	(if (not (eq? (car var) 'mus-error))
-	    (snd-display ";array->file bad file: ~A" var)))
+	    (snd-display "array->file bad file: ~A" var)))
       (let ((var (catch #t (lambda () (file->array "fmv3.snd" -1 0 -1 v0)) (lambda args args))))
 	(if (not (eq? (car var) 'out-of-range))
-	    (snd-display ";file->array bad samps: ~A" var))))
+	    (snd-display "file->array bad samps: ~A" var))))
     
     (let ((gen (make-rand 10000.0))
 	  (v0 (make-float-vector 10)))
@@ -17046,12 +17046,12 @@ EDITS: 2
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
 	(set! (v0 i) (rand gen)))
-      (if (not (rand? gen)) (snd-display ";~A not rand?" gen))
-      (if (fneq (mus-phase gen) 3.3624296) (snd-display ";rand phase: ~F?" (mus-phase gen)))
-      (if (fneq (mus-frequency gen) 10000.0) (snd-display ";rand frequency: ~F?" (mus-frequency gen)))
+      (if (not (rand? gen)) (snd-display "~A not rand?" gen))
+      (if (fneq (mus-phase gen) 3.3624296) (snd-display "rand phase: ~F?" (mus-phase gen)))
+      (if (fneq (mus-frequency gen) 10000.0) (snd-display "rand frequency: ~F?" (mus-frequency gen)))
       (set! (mus-scaler gen) 0.5)
-      (if (fneq (mus-scaler gen) 0.5) (snd-display ";set! mus-scaler rand: ~A" (mus-scaler gen)))
-      (if (= (v0 1) (v0 8)) (snd-display ";rand output: ~A" v0)))
+      (if (fneq (mus-scaler gen) 0.5) (snd-display "set! mus-scaler rand: ~A" (mus-scaler gen)))
+      (if (= (v0 1) (v0 8)) (snd-display "rand output: ~A" v0)))
     
     (let ((gen (make-rand 10000.0 :envelope '(0 0 1 1)))
 	  (v0 (make-float-vector 10)))
@@ -17061,13 +17061,13 @@ EDITS: 2
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
 	(set! (v0 i) (rand gen)))
-      (if (not (rand? gen)) (snd-display ";(dist) ~A not rand?" gen))
-      (if (fneq (mus-frequency gen) 10000.0) (snd-display ";(dist) rand frequency: ~F?" (mus-frequency gen)))
-      (if (= (v0 1) (v0 8)) (snd-display ";(dist) rand output: ~A" v0))
+      (if (not (rand? gen)) (snd-display "(dist) ~A not rand?" gen))
+      (if (fneq (mus-frequency gen) 10000.0) (snd-display "(dist) rand frequency: ~F?" (mus-frequency gen)))
+      (if (= (v0 1) (v0 8)) (snd-display "(dist) rand output: ~A" v0))
       (if (not (and (float-vector? (mus-data gen))
 		    (= (mus-length gen) (length (mus-data gen)))
 		    (= (mus-length gen) 512)))
-	  (snd-display ";(dist) rand data: ~A ~A" (mus-length gen) (mus-data gen))))
+	  (snd-display "(dist) rand data: ~A ~A" (mus-length gen) (mus-data gen))))
     
     (let ((gen1 (make-rand 10000.0 :envelope '(0 0 1 1)))
 	  (gen2 (make-rand 10000.0 :envelope '(0 1 1 0)))
@@ -17095,7 +17095,7 @@ EDITS: 2
 	      (not (= bad2 0))
 	      (> (* 2 down1) up1)
 	      (> (* 2 up2) down2))
-	  (snd-display "; rand dist: ~A ~A ~A, ~A ~A ~A" down1 up1 bad1 down2 up2 bad2)))
+	  (snd-display " rand dist: ~A ~A ~A, ~A ~A ~A" down1 up1 bad1 down2 up2 bad2)))
     
 					;      (test-gen-equal (make-rand 1000) (make-rand 1000) (make-rand 500))
 					;      (test-gen-equal (make-rand 1000) (make-rand 1000) (make-rand 1000 0.5))
@@ -17105,7 +17105,7 @@ EDITS: 2
 	((= i 10))
       (let ((val (rand-interp gen)))
 	(if (not (zero? val))
-	    (snd-display ";rand-interp 0 amp: ~A" val))))
+	    (snd-display "rand-interp 0 amp: ~A" val))))
 
     (let ((gen (make-rand-interp 4000.0))
 	  (v0 (make-float-vector 10)))
@@ -17115,12 +17115,12 @@ EDITS: 2
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
 	(set! (v0 i) (rand-interp gen 0.0)))
-      (if (not (rand-interp? gen)) (snd-display ";~A not rand-interp?" gen))
-      (if (fneq (mus-phase gen) 5.114882) (snd-display ";rand-interp phase: ~F?" (mus-phase gen)))
-      (if (fneq (mus-frequency gen) 4000.0) (snd-display ";rand-interp frequency: ~F?" (mus-frequency gen)))
+      (if (not (rand-interp? gen)) (snd-display "~A not rand-interp?" gen))
+      (if (fneq (mus-phase gen) 5.114882) (snd-display "rand-interp phase: ~F?" (mus-phase gen)))
+      (if (fneq (mus-frequency gen) 4000.0) (snd-display "rand-interp frequency: ~F?" (mus-frequency gen)))
       (set! (mus-scaler gen) 0.5)
-      (if (fneq (mus-scaler gen) 0.5) (snd-display ";set! mus-scaler rand-interp: ~A" (mus-scaler gen)))
-      (if (= (v0 1) (v0 8)) (snd-display ";rand-interp output: ~A" v0)))
+      (if (fneq (mus-scaler gen) 0.5) (snd-display "set! mus-scaler rand-interp: ~A" (mus-scaler gen)))
+      (if (= (v0 1) (v0 8)) (snd-display "rand-interp output: ~A" v0)))
     
     (let ((gen (make-rand-interp 4000.0 :envelope '(-1 1 0 0 1 1)))
 	  (v0 (make-float-vector 10)))
@@ -17130,12 +17130,12 @@ EDITS: 2
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
 	(set! (v0 i) (rand-interp gen 0.0)))
-      (if (not (rand-interp? gen)) (snd-display ";(dist) ~A not rand-interp?" gen))
-      (if (= (v0 1) (v0 8)) (snd-display ";(dist) rand-interp output: ~A" v0))
+      (if (not (rand-interp? gen)) (snd-display "(dist) ~A not rand-interp?" gen))
+      (if (= (v0 1) (v0 8)) (snd-display "(dist) rand-interp output: ~A" v0))
       (if (not (and (float-vector? (mus-data gen))
 		    (= (mus-length gen) (length (mus-data gen)))
 		    (= (mus-length gen) 512)))
-	  (snd-display ";(dist) rand-interp data: ~A ~A" (mus-length gen) (mus-data gen))))
+	  (snd-display "(dist) rand-interp data: ~A ~A" (mus-length gen) (mus-data gen))))
     
     (do ((gen (make-rand 10000.0 1.0))
 	 (gen1 (make-rand-interp 10000.0 1.0))
@@ -17144,9 +17144,9 @@ EDITS: 2
       (let ((val1 (gen 0.0))
 	    (val2 (gen1 0.0)))
 	(if (not (>= 1.0 val1 -1.0))
-	    (snd-display ";rand: ~A ~A" val1 gen))
+	    (snd-display "rand: ~A ~A" val1 gen))
 	(if (not (>= 1.0 val2 -1.0))
-	    (snd-display ";rand-interp: ~A ~A" val2 gen1))))
+	    (snd-display "rand-interp: ~A ~A" val2 gen1))))
   
     (let ((gen (make-rand 10000.0 :distribution (inverse-integrate '(0 0 1 1))))
 	  (v0 (make-float-vector 10)))
@@ -17156,13 +17156,13 @@ EDITS: 2
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
 	(set! (v0 i) (rand gen)))
-      (if (not (rand? gen)) (snd-display ";(dist 2) ~A not rand?" gen))
-      (if (fneq (mus-frequency gen) 10000.0) (snd-display ";(dist 2) rand frequency: ~F?" (mus-frequency gen)))
-      (if (= (v0 1) (v0 8)) (snd-display ";(dist 2) rand output: ~A" v0))
+      (if (not (rand? gen)) (snd-display "(dist 2) ~A not rand?" gen))
+      (if (fneq (mus-frequency gen) 10000.0) (snd-display "(dist 2) rand frequency: ~F?" (mus-frequency gen)))
+      (if (= (v0 1) (v0 8)) (snd-display "(dist 2) rand output: ~A" v0))
       (if (not (and (float-vector? (mus-data gen))
 		    (= (mus-length gen) (length (mus-data gen)))
 		    (= (mus-length gen) 512)))
-	  (snd-display ";(dist 2) rand data: ~A ~A" (mus-length gen) (mus-data gen))))
+	  (snd-display "(dist 2) rand data: ~A ~A" (mus-length gen) (mus-data gen))))
     
     (let ((gen1 (make-rand 10000.0 :distribution (inverse-integrate '(0 0 1 1))))
 	  (gen2 (make-rand 10000.0 :distribution (inverse-integrate '(0 1 1 0))))
@@ -17190,17 +17190,17 @@ EDITS: 2
 	      (not (= bad2 0))
 	      (> (* 2.5 down1) up1)
 	      (> (* 2.0 up2) down2))
-	  (snd-display "; rand dist 2: ~A ~A ~A, ~A ~A ~A" down1 up1 bad1 down2 up2 bad2))) ; 234 766 0, 705 295 0
+	  (snd-display " rand dist 2: ~A ~A ~A, ~A ~A ~A" down1 up1 bad1 down2 up2 bad2))) ; 234 766 0, 705 295 0
     
     (let ((ind (new-sound :size 100)))
       (select-sound ind)
       (map-channel (lambda (y) (any-random 1.0 '(0 1 1 1))))
       (let ((place (scan-channel (lambda (y) (not (<= 0.0 y 1.0)))))) ; (or (< y 0.0) (> y 1.0))))))
-	(if place (snd-display ";any-random 0 to 1: ~A" place)))
-      (if (< (maxamp) .5) (snd-display ";any-random maxamp: ~A" (maxamp))) ; possible, but extremely unlikely
+	(if place (snd-display "any-random 0 to 1: ~A" place)))
+      (if (< (maxamp) .5) (snd-display "any-random maxamp: ~A" (maxamp))) ; possible, but extremely unlikely
       (let ((avg 0.0))
 	(scan-channel (lambda (y) (set! avg (+ avg y)) #f))
-	(if (> (abs (- (/ avg (framples)) .5)) .2) (snd-display ";any-random skewed?")))
+	(if (> (abs (- (/ avg (framples)) .5)) .2) (snd-display "any-random skewed?")))
       (let ((g (gaussian-distribution 1.0))) 
 	(map-channel (lambda (y) (any-random 1.0 g))))
       (let ((g (pareto-distribution 1.0))) 
@@ -17209,19 +17209,19 @@ EDITS: 2
     
     (let ((v1 (inverse-integrate '(-1 1 1 1))))
       (if (fneq (v1 4) -0.984)
-	  (snd-display ";inverse-integrate -1 to 1 uniform: ~A" v1)))
+	  (snd-display "inverse-integrate -1 to 1 uniform: ~A" v1)))
     (let ((v1 (inverse-integrate '(0 1 1 1))))
       (if (fneq (v1 4) .008)
-	  (snd-display ";inverse-integrate 0 to 1 uniform: ~A" v1)))
+	  (snd-display "inverse-integrate 0 to 1 uniform: ~A" v1)))
     (let ((v1 (inverse-integrate '(0 1 1 0))))
       (if (fneq (v1 4) .004)
-	  (snd-display ";inverse-integrate 0 to 1 1 to 0: ~A" v1)))
+	  (snd-display "inverse-integrate 0 to 1 1 to 0: ~A" v1)))
     (let ((v1 (inverse-integrate '(0 0 .5 1 1 0))))
       (if (fneq (v1 4) .073)
-	  (snd-display ";inverse-integrate triangle: ~A" v1)))
+	  (snd-display "inverse-integrate triangle: ~A" v1)))
     (let ((v1 (inverse-integrate (gaussian-envelope 1.0))))
       (if (fneq (v1 4) -0.593)
-	  (snd-display ";inverse-integrate gaussian: ~A" v1)))
+	  (snd-display "inverse-integrate gaussian: ~A" v1)))
     
     (let ((minp 1.0)
 	  (maxp -1.0))
@@ -17231,10 +17231,10 @@ EDITS: 2
 	  (set! minp (min minp val1))
 	  (set! maxp (max maxp val1))
 	  (if (not (>= 1.0 val1 -1.0))
-	      (snd-display ";mus-random: ~A" val1))))
+	      (snd-display "mus-random: ~A" val1))))
       (if (or (< maxp .9)
 	      (> minp -.9))
-	  (snd-display ";mus-random: ~A ~A" minp maxp))
+	  (snd-display "mus-random: ~A ~A" minp maxp))
       (set! minp 12.0)
       (set! maxp -12.0)
       (do ((i 0 (+ i 1)))
@@ -17243,10 +17243,10 @@ EDITS: 2
 	  (set! minp (min minp val1))
 	  (set! maxp (max maxp val1))
 	  (if (not (>= 12.0 val1 -12.0))
-	      (snd-display ";mus-random (12): ~A" val1))))
+	      (snd-display "mus-random (12): ~A" val1))))
       (if (or (< maxp 11.0)
 	      (> minp -11.0))
-	  (snd-display ";mus-random (12): ~A ~A" minp maxp)))
+	  (snd-display "mus-random (12): ~A ~A" minp maxp)))
     
     (let ((n 1000) ; chi^2 or mus-random
 	   (hits (make-vector 10 0)))
@@ -17259,7 +17259,7 @@ EDITS: 2
 	   (i 0 (+ i 1)))
 	  ((= i 10) 
 	   (if (< sum 3.0)
-	       (snd-display ";mus-random not so random? ~A (chi)" sum)))
+	       (snd-display "mus-random not so random? ~A (chi)" sum)))
 	(let ((num (- (vector-ref hits i) p)))
 	  (set! sum (+ sum (/ (* num num) p))))))
       ;; (v 10000)
@@ -17278,7 +17278,7 @@ EDITS: 2
 	   (i 0 (+ i 1)))
 	  ((= i 10)
 	   (if (< sum 3.5)
-	       (snd-display ";rand not so random? ~A (chi)" sum)))
+	       (snd-display "rand not so random? ~A (chi)" sum)))
 	(let ((num (- (vector-ref hits i) p)))
 	  (set! sum (+ sum (/ (* num num) p))))))
       ;; (v1 10000)
@@ -17292,12 +17292,12 @@ EDITS: 2
 	(let ((peak (float-vector-peak ndat))
 	      (sum 0.0))
 	  (if (> peak 1000.0)
-	      (snd-display ";mus-random spectral peak: ~A" peak))
+	      (snd-display "mus-random spectral peak: ~A" peak))
 	  (do ((i 0 (+ i 1)))
 	      ((= i 32768))
 	    (set! sum (+ sum (float-vector-ref ndat i))))
 	  (if (> (/ sum 32768.0) 200.0)
-	      (snd-display ";random average: ~A ~A" (/ sum 32768.0) (ndat 0)))))
+	      (snd-display "random average: ~A ~A" (/ sum 32768.0) (ndat 0)))))
       (do ((i 0 (+ i 1)))
 	  ((= i 65536))
 	(set! (data i) (mus-random 1.0)))
@@ -17305,14 +17305,14 @@ EDITS: 2
       (set! (data 0) 0.0)
       (let ((pk (float-vector-peak data)))
 	(if (> pk 1000)
-	    (snd-display ";random autocorrelate peak: ~A" (float-vector-peak data))))
+	    (snd-display "random autocorrelate peak: ~A" (float-vector-peak data))))
       (let ((sum 0.0))
 	(float-vector-abs! data)
 	(do ((i 0 (+ i 1)))
 	    ((= i 32768))
 	  (set! sum (+ sum (float-vector-ref data i))))
 	(if (> (/ sum 32768.0) 200.0)
-	    (snd-display ";random autocorrelate average: ~A" (/ sum 32768.0)))))
+	    (snd-display "random autocorrelate average: ~A" (/ sum 32768.0)))))
     
     (set! (locsig-type) mus-interp-linear)
     (let ((gen1 (make-locsig 60.0 :channels 2)))
@@ -17321,54 +17321,54 @@ EDITS: 2
 	(print-and-check gen 
 			 "locsig"
 			 "locsig chans 2, outn: [0.667 0.333], interp: linear")
-	(if (not (locsig? gen)) (snd-display ";~A not locsig?" gen))
+	(if (not (locsig? gen)) (snd-display "~A not locsig?" gen))
 	(let ((gen2 (make-locsig 60.0 :channels 4)))
-	  (if (eq? gen1 gen2) (snd-display ";locsig 1 eq? ~A ~A" gen1 gen2))
-	  (if (equal? gen gen1) (snd-display ";locsig 2 equal? ~A ~A" gen gen1))
-	  (if (equal? gen gen2) (snd-display ";locsig 3 equal? ~A ~A" gen gen2))
+	  (if (eq? gen1 gen2) (snd-display "locsig 1 eq? ~A ~A" gen1 gen2))
+	  (if (equal? gen gen1) (snd-display "locsig 2 equal? ~A ~A" gen gen1))
+	  (if (equal? gen gen2) (snd-display "locsig 3 equal? ~A ~A" gen gen2))
 	  (if (or (fneq (locsig-ref gen 0) .667) (fneq (locsig-ref gen 1) .333))
-	      (snd-display ";locsig ref: ~F ~F?" (locsig-ref gen 0) (locsig-ref gen 1)))
+	      (snd-display "locsig ref: ~F ~F?" (locsig-ref gen 0) (locsig-ref gen 1)))
 	  (if (not (mus-arrays-equal? (mus-data gen) (float-vector 0.667 0.333)))
-	      (snd-display ";locsig gen outn: ~A" (mus-data gen)))
+	      (snd-display "locsig gen outn: ~A" (mus-data gen)))
 	  (if (not (mus-arrays-equal? (mus-data gen1) (float-vector 0.333 0.667)))
-	      (snd-display ";locsig gen2 outn: ~A" (mus-data gen1)))
+	      (snd-display "locsig gen2 outn: ~A" (mus-data gen1)))
 	  (if (not (mus-arrays-equal? (mus-data gen2) (float-vector 0.333 0.667 0.000 0.000)))
-	      (snd-display ";locsig gen2 outn: ~A" (mus-data gen2))))
+	      (snd-display "locsig gen2 outn: ~A" (mus-data gen2))))
 	(let ((gen200 (mus-data (make-locsig 200.0 :channels 4))))
 	  (if (not (mus-arrays-equal? gen200 (float-vector 0.000 0.000 0.778 0.222)))
-	      (snd-display ";locsig gen200 outn: ~A" gen200)))
+	      (snd-display "locsig gen200 outn: ~A" gen200)))
 	(locsig-set! gen 0 .25)
 	(if (not (mus-arrays-equal? (mus-data gen) (float-vector 0.250 0.333)))
-	    (snd-display ";locsig gen .25 outn: ~A" (mus-data gen)))
+	    (snd-display "locsig gen .25 outn: ~A" (mus-data gen)))
 	(locsig gen 0 1.0)
 	(locsig-set! gen 0 .5)
 	(if (not (mus-arrays-equal? (mus-data gen) (float-vector 0.500 0.333)))
-	    (snd-display ";locsig gen .5 outn: ~A" (mus-data gen)))
+	    (snd-display "locsig gen .5 outn: ~A" (mus-data gen)))
 	(locsig gen 0 1.0))
       (let ((gen (make-locsig 120.0 2.0 .1 :channels 4)))
 	(if (not (mus-arrays-equal? (mus-data gen) (float-vector 0.000 0.333 0.167 0.000)))
-	    (snd-display ";locsig gen 120 outn: ~A" (mus-data gen)))
+	    (snd-display "locsig gen 120 outn: ~A" (mus-data gen)))
 	(locsig gen 0 1.0))
       (let ((gen (make-locsig 300.0 2.0 .1 :channels 4)))
 	(if (not (mus-arrays-equal? (mus-data gen) (float-vector 0.167 0.000 0.000 0.333)))
-	    (snd-display ";locsig gen 300 outn: ~A" (mus-data gen)))
+	    (snd-display "locsig gen 300 outn: ~A" (mus-data gen)))
 	(locsig gen 0 1.0))
       
       (move-locsig gen1 90.0 1.0)
       (if (not (mus-arrays-equal? (mus-data gen1) (float-vector 0.000 1.000)))
-	  (snd-display ";locsig gen1 90 outn: ~A" (mus-data gen1)))
+	  (snd-display "locsig gen1 90 outn: ~A" (mus-data gen1)))
       (move-locsig gen1 0.0 1.0)
       (if (not (mus-arrays-equal? (mus-data gen1) (float-vector 1.000 0.000)))
-	  (snd-display ";locsig gen1 0 outn: ~A" (mus-data gen1)))
+	  (snd-display "locsig gen1 0 outn: ~A" (mus-data gen1)))
       (move-locsig gen1 45.0 1.0)
       (if (not (mus-arrays-equal? (mus-data gen1) (float-vector 0.500 0.500)))
-	  (snd-display ";locsig gen1 45 outn: ~A" (mus-data gen1)))
+	  (snd-display "locsig gen1 45 outn: ~A" (mus-data gen1)))
       (move-locsig gen1 135.0 2.0)
       (if (not (mus-arrays-equal? (mus-data gen1) (float-vector 0.000 0.500)))
-	  (snd-display ";locsig gen1 135 outn: ~A" (mus-data gen1)))
+	  (snd-display "locsig gen1 135 outn: ~A" (mus-data gen1)))
       (move-locsig gen1 -270.0 3.0)
       (if (not (mus-arrays-equal? (mus-data gen1) (float-vector 0.333 0.0)))
-	  (snd-display ";locsig gen1 -270 outn: ~A" (mus-data gen1))))
+	  (snd-display "locsig gen1 -270 outn: ~A" (mus-data gen1))))
     
     (for-each
      (lambda (chans)
@@ -17394,86 +17394,86 @@ EDITS: 2
      (lambda (chans)
        (let ((m1 (make-locsig :channels chans)))
 	 (if (not (= (mus-channels m1) chans (mus-length m1)))
-	     (snd-display ";locsig ~A chans but: ~A ~A" chans (mus-channels m1) (mus-length m1)))
+	     (snd-display "locsig ~A chans but: ~A ~A" chans (mus-channels m1) (mus-length m1)))
 	 (do ((i 0 (+ i 1)))
 	     ((= i chans))
 	   (locsig-set! m1 i (* i .1)))
 	 (do ((i 0 (+ i 1)))
 	     ((= i chans))
 	   (if (fneq (locsig-ref m1 i) (* i .1))
-	       (snd-display ";locsig[~A] = ~A (~A)?" i (locsig-ref m1 i) (* i .1))))))
+	       (snd-display "locsig[~A] = ~A (~A)?" i (locsig-ref m1 i) (* i .1))))))
      '(1 2 4 8))
     
     (let ((var (catch #t (lambda () (make-locsig :channels 0)) (lambda args args))))
       (if (not (eq? (car var) 'mus-error))
-	  (snd-display ";make-locsig bad (0) chans: ~A" var)))
+	  (snd-display "make-locsig bad (0) chans: ~A" var)))
     (let ((var (catch #t (lambda () (make-locsig :channels -2)) (lambda args args))))
       (if (not (eq? (car var) 'out-of-range))
-	  (snd-display ";make-locsig bad (-2) chans: ~A" var)))
+	  (snd-display "make-locsig bad (-2) chans: ~A" var)))
     (let ((var (catch #t (lambda () (make-locsig :output 1)) (lambda args args))))
       (if (not (eq? (car var) 'wrong-type-arg))
-	  (snd-display ";make-locsig bad output: ~A" var)))
+	  (snd-display "make-locsig bad output: ~A" var)))
     (let ((var (catch #t (lambda () (locsig-ref (make-locsig) 1)) (lambda args args))))
       (if (and (pair? var)
 	       (not (eq? (car var) 'mus-error)))
-	  (snd-display ";locsig-ref bad chan: ~A" var)))
+	  (snd-display "locsig-ref bad chan: ~A" var)))
     (let ((var (catch #t (lambda () (make-locsig :revout 1)) (lambda args args))))
       (if (and (pair? var)
 	       (not (eq? (car var) 'wrong-type-arg)))
-	  (snd-display ";make-locsig bad revout: ~A" var)))
+	  (snd-display "make-locsig bad revout: ~A" var)))
     (let ((var (catch #t (lambda () (locsig-ref (make-locsig 200 :channels 2) -1)) (lambda args args))))
       (if (and (pair? var)
 	       (not (eq? (car var) 'mus-error)))
-	  (snd-display ";locsig-ref bad chan: ~A" var)))
+	  (snd-display "locsig-ref bad chan: ~A" var)))
     (let ((var (catch #t (lambda () (locsig-set! (make-locsig) 2 .1)) (lambda args args))))
       (if (and (pair? var)
 	       (not (eq? (car var) 'mus-error)))
-	  (snd-display ";locsig-set! bad chan (2): ~A" var)))
+	  (snd-display "locsig-set! bad chan (2): ~A" var)))
     (let ((var (catch #t (lambda () (locsig-reverb-ref (make-locsig :reverb .1) 2)) (lambda args args))))
       (if (and (pair? var)
 	       (not (eq? (car var) 'mus-error)))
-	  (snd-display ";locsig-reverb-ref bad reverb chan (2): ~A" var)))
+	  (snd-display "locsig-reverb-ref bad reverb chan (2): ~A" var)))
     (let ((var (catch #t (lambda () (locsig-reverb-set! (make-locsig :reverb .1) 2 .1)) (lambda args args))))
       (if (and (pair? var)
 	       (not (eq? (car var) 'mus-error)))
-	  (snd-display ";locsig-reverb-set! bad reverb chan (2): ~A" var)))
+	  (snd-display "locsig-reverb-set! bad reverb chan (2): ~A" var)))
     
     (let ((locs (make-locsig :channels 8 :degree 0)))
       (move-locsig locs 180 1.0)
-      (if (fneq (locsig-ref locs 0) 0.0) (snd-display ";move-locsig by jump: ~A" (mus-data locs)))
+      (if (fneq (locsig-ref locs 0) 0.0) (snd-display "move-locsig by jump: ~A" (mus-data locs)))
       (if (not (mus-arrays-equal? (mus-data locs) (float-vector 0.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000)))
-	  (snd-display ";move-locsig by jump data: ~A" (mus-data locs)))
+	  (snd-display "move-locsig by jump data: ~A" (mus-data locs)))
       (move-locsig locs 120.0 1.0)
       (if (not (mus-arrays-equal? (mus-data locs) (float-vector 0.000 0.000 0.333 0.667 0.000 0.000 0.000 0.000)))
-	  (snd-display ";move-locsig by jump 120 data: ~A" (mus-data locs)))
+	  (snd-display "move-locsig by jump 120 data: ~A" (mus-data locs)))
       (move-locsig locs -20.0 1.0)
       (if (not (mus-arrays-equal? (mus-data locs) (float-vector 0.556 0.000 0.000 0.000 0.000 0.000 0.000 0.444)))
-	  (snd-display ";move-locsig by jump -20 data: ~A" (mus-data locs))))
+	  (snd-display "move-locsig by jump -20 data: ~A" (mus-data locs))))
     
     (let ((sf (make-sample->file "fmv4.snd" 8 mus-bshort mus-next "this is a comment"))
 	  (sfrev (make-sample->file "fmv4.reverb" 8 mus-bshort mus-next "this is a comment")))
       (let ((locs (make-locsig :channels 8 :degree 0 :distance 1.0 :reverb 0.1 
 			       :output sf :revout sfrev :type mus-interp-linear)))
 	(if (not (mus-arrays-equal? (mus-data locs) (float-vector 1.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	    (snd-display ";ws not move-locsig by jump data: ~A" (mus-data locs)))
+	    (snd-display "ws not move-locsig by jump data: ~A" (mus-data locs)))
 	(if (not (mus-arrays-equal? (mus-xcoeffs locs) (float-vector 0.100 0.000 0.000 0.000 0.0 0.0 0.0 0.0)))
-	    (snd-display ";ws not move-locsig by jump rev data: ~A" (mus-xcoeffs locs)))
+	    (snd-display "ws not move-locsig by jump rev data: ~A" (mus-xcoeffs locs)))
 	(move-locsig locs 180 2.0)
-	(if (fneq (locsig-ref locs 0) 0.0) (snd-display ";ws move-locsig by jump: ~A" (mus-data locs)))
+	(if (fneq (locsig-ref locs 0) 0.0) (snd-display "ws move-locsig by jump: ~A" (mus-data locs)))
 	(if (not (mus-arrays-equal? (mus-data locs) (float-vector 0.000 0.000 0.000 0.000 0.500 0.000 0.000 0.000)))
-	    (snd-display ";ws move-locsig by jump data: ~A" (mus-data locs)))
+	    (snd-display "ws move-locsig by jump data: ~A" (mus-data locs)))
 	(if (not (mus-arrays-equal? (mus-xcoeffs locs) (float-vector 0.000 0.000 0.000 0.000 0.071 0.000 0.000 0.000)))
-	    (snd-display ";ws move-locsig by jump rev data: ~A" (mus-xcoeffs locs)))
+	    (snd-display "ws move-locsig by jump rev data: ~A" (mus-xcoeffs locs)))
 	(move-locsig locs 120.0 3.0)
 	(if (not (mus-arrays-equal? (mus-data locs) (float-vector 0.000 0.000 0.111 0.222 0.000 0.000 0.000 0.000)))
-	    (snd-display ";ws move-locsig by jump 120 data: ~A" (mus-data locs)))
+	    (snd-display "ws move-locsig by jump 120 data: ~A" (mus-data locs)))
 	(if (not (mus-arrays-equal? (mus-xcoeffs locs) (float-vector 0.000 0.000 0.019 0.038 0.000 0.000 0.000 0.000)))
-	    (snd-display ";ws move-locsig by jump 120 rev data: ~A" (mus-xcoeffs locs)))
+	    (snd-display "ws move-locsig by jump 120 rev data: ~A" (mus-xcoeffs locs)))
 	(move-locsig locs -20.0 4.0)
 	(if (not (mus-arrays-equal? (mus-data locs) (float-vector 0.139 0.000 0.000 0.000 0.000 0.000 0.000 0.111)))
-	    (snd-display ";ws move-locsig by jump -20 data: ~A" (mus-data locs)))
+	    (snd-display "ws move-locsig by jump -20 data: ~A" (mus-data locs)))
 	(if (not (mus-arrays-equal? (mus-xcoeffs locs) (float-vector 0.028 0.000 0.000 0.000 0.000 0.000 0.000 0.022)))
-	    (snd-display ";ws move-locsig by jump -20 rev data: ~A" (mus-xcoeffs locs))))
+	    (snd-display "ws move-locsig by jump -20 rev data: ~A" (mus-xcoeffs locs))))
       (mus-close sf)
       (mus-close sfrev))
     
@@ -17493,9 +17493,9 @@ EDITS: 2
 	     (do ((k 0 (+ k 1)))
 		 ((= k 8))
 	       (if (and (= k i) (fneq (samps k) 0.5))
-		   (snd-display ";8 out ~A chan ~A samp ~A (0.5): ~A" (mus-header-type->string ht) i k (samps k)))
+		   (snd-display "8 out ~A chan ~A samp ~A (0.5): ~A" (mus-header-type->string ht) i k (samps k)))
 	       (if (and (not (= i k)) (fneq (samps k) 0.0))
-		   (snd-display ";8 out ~A chan ~A samp ~A (0.0): ~A" (mus-header-type->string ht) i k (samps k))))))
+		   (snd-display "8 out ~A chan ~A samp ~A (0.0): ~A" (mus-header-type->string ht) i k (samps k))))))
 	 (close-sound ind)))
      (list mus-caff mus-aifc mus-next mus-riff mus-rf64))
     
@@ -17505,9 +17505,9 @@ EDITS: 2
       (do ((i 0 (+ i 1)))
 	  ((= i 100))
 	(locsig lc i 1.0))
-      (if (fneq (locsig-reverb-ref lc 0) .1) (snd-display ";locsig reverb ref: ~A?" (locsig-reverb-ref lc 0)))
+      (if (fneq (locsig-reverb-ref lc 0) .1) (snd-display "locsig reverb ref: ~A?" (locsig-reverb-ref lc 0)))
       (locsig-reverb-set! lc 0 .2)
-      (if (fneq (locsig-reverb-ref lc 0) .2) (snd-display ";locsig reverb set: ~A?" (locsig-reverb-ref lc 0)))
+      (if (fneq (locsig-reverb-ref lc 0) .2) (snd-display "locsig reverb set: ~A?" (locsig-reverb-ref lc 0)))
       (mus-close gen)
       (mus-close rev)
       (let ((v0 (make-float-vector 100))
@@ -17516,8 +17516,8 @@ EDITS: 2
 	(file->array "fmv4.snd" 0 0 100 v0)
 	(file->array "fmv4.snd" 1 0 100 v1)
 	(file->array "fmv4.reverb" 0 0 100 v2)
-	(if (fneq (v2 0) .1) (snd-display ";locsig reverb: ~A?" v2))
-	(if (fneq (* 2 (v0 0)) (v1 0)) (snd-display ";locsig direct: ~A ~A?" (v0 0) (v1 0)))))
+	(if (fneq (v2 0) .1) (snd-display "locsig reverb: ~A?" v2))
+	(if (fneq (* 2 (v0 0)) (v1 0)) (snd-display "locsig direct: ~A ~A?" (v0 0) (v1 0)))))
     
     (let* ((gen (make-frample->file "fmv4.snd" 4 mus-bshort mus-next))
 	   (rev (make-frample->file "fmv4.reverb" 4 mus-bshort mus-next))
@@ -17532,15 +17532,15 @@ EDITS: 2
 	  ((= i 4))
 	(locsig-reverb-set! lc i (* i .1))
 	(if (fneq (locsig-reverb-ref lc i) (* i .1))
-	    (snd-display ";locsig reverb set![~A]: ~A?" i (locsig-reverb-ref lc i))))
+	    (snd-display "locsig reverb set![~A]: ~A?" i (locsig-reverb-ref lc i))))
       (print-and-check lc
 		       "locsig"
 		       "locsig chans 4, outn: [0.083 0.167 0.000 0.000], revn: [0.000 0.100 0.200 0.300], interp: linear")
-      (if (not (float-vector? (mus-data lc))) (snd-display ";out data locsig: ~A" (mus-data lc)))
-      (if (not (float-vector? (mus-xcoeffs lc))) (snd-display ";rev data locsig: ~A" (mus-xcoeffs lc)))
+      (if (not (float-vector? (mus-data lc))) (snd-display "out data locsig: ~A" (mus-data lc)))
+      (if (not (float-vector? (mus-xcoeffs lc))) (snd-display "rev data locsig: ~A" (mus-xcoeffs lc)))
       (let ((xcs (mus-xcoeffs lc)))
-	(if (fneq (mus-xcoeff lc 0) (xcs 0)) (snd-display ";locsig xcoeff: ~A ~A" (mus-xcoeff lc 0) (xcs 0)))
-	(if (fneq (mus-xcoeff lc 1) .1) (snd-display ";locsig xcoeff 1: ~A ~A (.1)" (mus-xcoeff lc 0) (xcs 0))))
+	(if (fneq (mus-xcoeff lc 0) (xcs 0)) (snd-display "locsig xcoeff: ~A ~A" (mus-xcoeff lc 0) (xcs 0)))
+	(if (fneq (mus-xcoeff lc 1) .1) (snd-display "locsig xcoeff 1: ~A ~A (.1)" (mus-xcoeff lc 0) (xcs 0))))
       (mus-close gen)
       (mus-close rev))
     
@@ -17580,37 +17580,37 @@ EDITS: 2
 		 (set! (dat i) (locsig-ref gen i))))))
 	  (gen (make-locsig -.1 :channels 8)))
       (if (not (mus-arrays-equal? (locsig-data gen) (float-vector 0.998 0.000 0.000 0.000 0.000 0.000 0.000 0.002)))
-	  (snd-display ";locsig -.1(8): ~A" (locsig-data gen)))
+	  (snd-display "locsig -.1(8): ~A" (locsig-data gen)))
       (set! gen (make-locsig -359.9 :channels 8))
       (if (not (mus-arrays-equal? (locsig-data gen) (float-vector 0.998 0.002 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";locsig -359.9(8): ~A" (locsig-data gen)))
+	  (snd-display "locsig -359.9(8): ~A" (locsig-data gen)))
       (set! gen (make-locsig -359.9 :channels 4))
       (if (not (mus-arrays-equal? (locsig-data gen) (float-vector 0.999 0.001 0.000 0.000)))
-	  (snd-display ";locsig -359.9(4): ~A" (locsig-data gen)))
+	  (snd-display "locsig -359.9(4): ~A" (locsig-data gen)))
       (set! gen (make-locsig -360.1 :channels 8))
       (if (not (mus-arrays-equal? (locsig-data gen) (float-vector 0.998 0.000 0.000 0.000 0.000 0.000 0.000 0.002)))
-	  (snd-display ";locsig -360.1(8): ~A" (locsig-data gen)))
+	  (snd-display "locsig -360.1(8): ~A" (locsig-data gen)))
       (set! gen (make-locsig -700 :channels 8))
       (if (not (mus-arrays-equal? (locsig-data gen) (float-vector 0.556 0.444 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";locsig -700(8): ~A" (locsig-data gen)))
+	  (snd-display "locsig -700(8): ~A" (locsig-data gen)))
       (set! gen (make-locsig -700 :channels 2))
       (if (not (mus-arrays-equal? (locsig-data gen) (float-vector 1.000 0.000)))
-	  (snd-display ";locsig -700(2): ~A" (locsig-data gen)))
+	  (snd-display "locsig -700(2): ~A" (locsig-data gen)))
       (set! gen (make-locsig 20 :channels 2))
       (if (not (mus-arrays-equal? (locsig-data gen) (float-vector 0.778 0.222)))
-	  (snd-display ";locsig 20(2): ~A" (locsig-data gen)))
+	  (snd-display "locsig 20(2): ~A" (locsig-data gen)))
       (set! gen (make-locsig 123456.0 :channels 8))
       (if (not (mus-arrays-equal? (locsig-data gen) (float-vector 0.467 0.000 0.000 0.000 0.000 0.000 0.000 0.533)))
-	  (snd-display ";locsig 123456(8): ~A" (locsig-data gen)))
+	  (snd-display "locsig 123456(8): ~A" (locsig-data gen)))
       (set! gen (make-locsig 336.0 :channels 8))
       (if (not (mus-arrays-equal? (locsig-data gen) (float-vector 0.467 0.000 0.000 0.000 0.000 0.000 0.000 0.533)))
-	  (snd-display ";locsig 336(8): ~A" (locsig-data gen)))
+	  (snd-display "locsig 336(8): ~A" (locsig-data gen)))
       (set! gen (make-locsig -123456.0 :channels 8))
       (if (not (mus-arrays-equal? (locsig-data gen) (float-vector 0.467 0.533 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";locsig -123456(8): ~A" (locsig-data gen)))
+	  (snd-display "locsig -123456(8): ~A" (locsig-data gen)))
       (set! gen (make-locsig 24.0 :channels 8))
       (if (not (mus-arrays-equal? (locsig-data gen) (float-vector 0.467 0.533 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";locsig 24(8): ~A" (locsig-data gen))))
+	  (snd-display "locsig 24(8): ~A" (locsig-data gen))))
     
     (for-each 
      (lambda (rev-chans)
@@ -17653,20 +17653,20 @@ EDITS: 2
 	    
 	    (when happy
 	      (set! (locsig-type) type)
-	      (if (not (= (locsig-type) type)) (snd-display ";locsig-type: ~A ~A" type (locsig-type)))
+	      (if (not (= (locsig-type) type)) (snd-display "locsig-type: ~A ~A" type (locsig-type)))
 	      
 	      (for-each 
 	       (lambda (deg)
 		 (let ((gen (make-locsig deg :channels 1 :revout revfile :reverb .1 :distance 2.0))
 		       (revs (if revfile (locsig-scalers rev-chans deg type))))
-		   (if (not (= (mus-channels gen) 1)) (snd-display ";locsig ~A: ~A" deg gen))
-		   (if (fneq (locsig-ref gen 0) 0.5) (snd-display ";locsig scaler[~A] ~A: ~A" type deg (locsig-ref gen 0)))
+		   (if (not (= (mus-channels gen) 1)) (snd-display "locsig ~A: ~A" deg gen))
+		   (if (fneq (locsig-ref gen 0) 0.5) (snd-display "locsig scaler[~A] ~A: ~A" type deg (locsig-ref gen 0)))
 		   (if revfile
 		       (do ((sq (/ .1 (sqrt 2)))
 			    (i 0 (+ i 1)))
 			   ((or (not happy) (= i rev-chans)))
 			 (when (fneq (locsig-reverb-ref gen i) (* sq (revs i)))
-			   (snd-display ";mono locrev[~A] ~A at ~A: ~A ~A" 
+			   (snd-display "mono locrev[~A] ~A at ~A: ~A ~A" 
 					type gen deg 
 					(locsig-reverb-ref gen i) 
 					(* sq (revs i)))
@@ -17678,8 +17678,8 @@ EDITS: 2
 		 (for-each 
 		  (lambda (deg)
 		    (let ((gen (make-locsig deg :channels 1 :type ltype)))
-		      (if (not (= (mus-channels gen) 1)) (snd-display ";locsig ~A: ~A" deg gen))
-		      (if (fneq (locsig-ref gen 0) 1.0) (snd-display ";locsig[~A] scaler ~A: ~A" ltype deg (locsig-ref gen 0)))))
+		      (if (not (= (mus-channels gen) 1)) (snd-display "locsig ~A: ~A" deg gen))
+		      (if (fneq (locsig-ref gen 0) 1.0) (snd-display "locsig[~A] scaler ~A: ~A" ltype deg (locsig-ref gen 0)))))
 		  '(0.0 45.0 90.0 1234.0)))
 	       (list mus-interp-linear mus-interp-sinusoidal))
 	      
@@ -17688,19 +17688,19 @@ EDITS: 2
 		 (for-each 
 		  (lambda (deg)
 		    (let ((gen (make-locsig deg :channels chans :revout revfile :reverb .1)))
-		      (if (not (= (mus-channels gen) chans)) (snd-display ";multi locsig ~A: ~A" deg gen))
+		      (if (not (= (mus-channels gen) chans)) (snd-display "multi locsig ~A: ~A" deg gen))
 		      (let ((scalers (locsig-scalers chans deg type))
 			    (revs (if revfile (locsig-scalers rev-chans deg type))))
 			(do ((i 0 (+ i 1)))
 			    ((or (not happy) (= i chans)))
 			  (when (fneq (locsig-ref gen i) (scalers i)) 
-			    (snd-display ";locsig[~A] ~A at ~A: ~A ~A" type gen deg (locsig-ref gen i) (scalers i)) 
+			    (snd-display "locsig[~A] ~A at ~A: ~A ~A" type gen deg (locsig-ref gen i) (scalers i)) 
 			    (set! happy #f)))
 			(if revfile
 			    (do ((i 0 (+ i 1)))
 				((or (not happy) (= i rev-chans)))
 			      (when (fneq (locsig-reverb-ref gen i) (* .1 (revs i)))
-				(snd-display ";locrev[~A] ~A at ~A: ~A ~A" 
+				(snd-display "locrev[~A] ~A at ~A: ~A ~A" 
 					     type gen deg 
 					     (locsig-reverb-ref gen i) 
 					     (* .1 (revs i)))
@@ -17715,19 +17715,19 @@ EDITS: 2
 		    (for-each
 		     (lambda (deg)
 		       (let ((gen (make-locsig deg :channels chans :type ltype :revout revfile :reverb .1)))
-			 (if (not (= (mus-channels gen) chans)) (snd-display ";stereo locsig ~A: ~A" deg gen))
+			 (if (not (= (mus-channels gen) chans)) (snd-display "stereo locsig ~A: ~A" deg gen))
 			 (let ((scalers (locsig-scalers chans deg ltype))
 			       (revs (if revfile (locsig-scalers rev-chans deg ltype))))
 			   (do ((i 0 (+ i 1)))
 			       ((or (not happy) (= i chans)))
 			     (when (fneq (locsig-ref gen i) (scalers i)) 
-			       (snd-display ";locsig[~A] ~A at ~A: ~A ~A" ltype gen deg (locsig-ref gen i) (scalers i))
+			       (snd-display "locsig[~A] ~A at ~A: ~A ~A" ltype gen deg (locsig-ref gen i) (scalers i))
 			       (set! happy #f)))
 			   (if revfile
 			       (do ((i 0 (+ i 1)))
 				   ((or (not happy) (= i rev-chans)))
 				 (when (fneq (locsig-reverb-ref gen i) (* .1 (revs i)))
-				   (snd-display ";locrev[~A] ~A at ~A: ~A ~A" 
+				   (snd-display "locrev[~A] ~A at ~A: ~A ~A" 
 						type gen deg 
 						(locsig-reverb-ref gen i) 
 						(* .1 (revs i)))
@@ -17743,84 +17743,84 @@ EDITS: 2
     (set! (locsig-type) mus-interp-linear)
     (let* ((outp (make-float-vector '(1 10)))
 	   (gen (make-locsig 0.0 :output outp)))
-      (if (not (= (mus-channels gen) 1)) (snd-display ";make-locsig->sd chans (1): ~A" (mus-channels gen)))
+      (if (not (= (mus-channels gen) 1)) (snd-display "make-locsig->sd chans (1): ~A" (mus-channels gen)))
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
 	(locsig gen i 1.0))
       (if (not (mus-arrays-equal? (outp 0) (make-float-vector 10 1.0)))
-	  (snd-display ";locsig->sd chan 0: ~A" (outp 0))))
+	  (snd-display "locsig->sd chan 0: ~A" (outp 0))))
     
     (let* ((outp (make-float-vector '(2 10)))
 	   (gen (make-locsig 0.0 :output outp)))
-      (if (not (= (mus-channels gen) 2)) (snd-display ";make-locsig->sd chans: ~A" (mus-channels gen)))
+      (if (not (= (mus-channels gen) 2)) (snd-display "make-locsig->sd chans: ~A" (mus-channels gen)))
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
 	(locsig gen i 1.0))
       (if (not (mus-arrays-equal? (outp 0) (make-float-vector 10 1.0)))
-	  (snd-display ";locsig->sd chan 0: ~A" (outp 0)))
+	  (snd-display "locsig->sd chan 0: ~A" (outp 0)))
       (if (not (mus-arrays-equal? (outp 1) (make-float-vector 10)))
-	  (snd-display ";locsig->sd chan 1: ~A" (outp 1))))
+	  (snd-display "locsig->sd chan 1: ~A" (outp 1))))
     
     (let* ((outp (make-float-vector '(2 10)))
 	   (gen (make-locsig 45.0 :output outp)))
-      (if (not (= (mus-channels gen) 2)) (snd-display ";make-locsig->sd chans: ~A" (mus-channels gen)))
+      (if (not (= (mus-channels gen) 2)) (snd-display "make-locsig->sd chans: ~A" (mus-channels gen)))
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
 	(locsig gen i 1.0))
       (if (not (mus-arrays-equal? (outp 0) (make-float-vector 10 0.5)))
-	  (snd-display ";locsig->sd chan 0 (0.5): ~A (~A)" (outp 0) gen))
+	  (snd-display "locsig->sd chan 0 (0.5): ~A (~A)" (outp 0) gen))
       (if (not (mus-arrays-equal? (outp 1) (make-float-vector 10 0.5)))
-	  (snd-display ";locsig->sd chan 1 (0.5): ~A" (outp 1)))
+	  (snd-display "locsig->sd chan 1 (0.5): ~A" (outp 1)))
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
 	(locsig gen i 0.5))
       (if (not (mus-arrays-equal? (outp 0) (make-float-vector 10 0.75)))
-	  (snd-display ";locsig->sd chan 0 (0.75) (~A): ~A" (outp 0) gen))
+	  (snd-display "locsig->sd chan 0 (0.75) (~A): ~A" (outp 0) gen))
       (if (not (mus-arrays-equal? (outp 1) (make-float-vector 10 0.75)))
-	  (snd-display ";locsig->sd chan 1 (0.75): ~A" (outp 1))))
+	  (snd-display "locsig->sd chan 1 (0.75): ~A" (outp 1))))
     
     (let* ((outp (make-float-vector 10))
 	   (gen (make-locsig 0.0 :output outp)))
-      (if (not (= (mus-channels gen) 1)) (snd-display ";make-locsig->float-vector chans: ~A" (mus-channels gen)))
+      (if (not (= (mus-channels gen) 1)) (snd-display "make-locsig->float-vector chans: ~A" (mus-channels gen)))
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
 	(locsig gen i 1.0))
       (if (not (mus-arrays-equal? outp (make-float-vector 10 1.0)))
-	  (snd-display ";locsig->float-vector chan 0: ~A" outp))
+	  (snd-display "locsig->float-vector chan 0: ~A" outp))
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
 	(locsig gen i 0.5))
       (if (not (mus-arrays-equal? outp (make-float-vector 10 1.5)))
-	  (snd-display ";locsig->float-vector chan 0: ~A" outp)))
+	  (snd-display "locsig->float-vector chan 0: ~A" outp)))
     
     (let* ((outp (make-float-vector 10))
 	   (gen (make-locsig 45.0 :channels 2 :output outp)))
-      (if (not (= (mus-channels gen) 2)) (snd-display ";make-locsig->float-vector chans (2): ~A" (mus-channels gen)))
+      (if (not (= (mus-channels gen) 2)) (snd-display "make-locsig->float-vector chans (2): ~A" (mus-channels gen)))
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
 	(locsig gen i 1.0))
       (if (not (mus-arrays-equal? outp (make-float-vector 10 0.5)))
-	  (snd-display ";locsig(2)->float-vector chan 0: ~A" outp))
+	  (snd-display "locsig(2)->float-vector chan 0: ~A" outp))
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
 	(locsig gen i 0.5))
       (if (not (mus-arrays-equal? outp (make-float-vector 10 0.75)))
-	  (snd-display ";locsig(2)->float-vector chan 0: ~A" outp)))
+	  (snd-display "locsig(2)->float-vector chan 0: ~A" outp)))
     
     (let* ((outp (make-float-vector '(4 10)))
 	   (gen (make-locsig 135.0 :output outp)))
-      (if (not (= (mus-channels gen) 4)) (snd-display ";make-locsig->sd chans (4): ~A" (mus-channels gen)))
+      (if (not (= (mus-channels gen) 4)) (snd-display "make-locsig->sd chans (4): ~A" (mus-channels gen)))
       (do ((i 0 (+ i 1)))
 	  ((= i 10))
 	(locsig gen i 1.0))
       (if (not (mus-arrays-equal? (outp 0) (make-float-vector 10)))
-	  (snd-display ";locsig(4)->sd chan 0 (0.5): ~A" (outp 0)))
+	  (snd-display "locsig(4)->sd chan 0 (0.5): ~A" (outp 0)))
       (if (not (mus-arrays-equal? (outp 1) (make-float-vector 10 0.5)))
-	  (snd-display ";locsig(4)->sd chan 1 (0.5) (~A): ~A" (outp 1) gen))
+	  (snd-display "locsig(4)->sd chan 1 (0.5) (~A): ~A" (outp 1) gen))
       (if (not (mus-arrays-equal? (outp 2) (make-float-vector 10 0.5)))
-	  (snd-display ";locsig(4)->sd chan 2 (0.5): ~A" (outp 2)))
+	  (snd-display "locsig(4)->sd chan 2 (0.5): ~A" (outp 2)))
       (if (not (mus-arrays-equal? (outp 3) (make-float-vector 10)))
-	  (snd-display ";locsig(4)->sd chan 3 (0.5): ~A" (outp 3))))
+	  (snd-display "locsig(4)->sd chan 3 (0.5): ~A" (outp 3))))
 
     (set! *mus-array-print-length* 8)
     (let* ((outf1 (make-frample->file "fmv.snd" 1 mus-ldouble mus-next))
@@ -17909,17 +17909,17 @@ EDITS: 2
   free: arrays: true, gens: false
 ")
       
-      (if (not (move-sound? gen1)) (snd-display ";move-sound?"))
-      (if (equal? gen1 gen2) (snd-display ";move-sounds are equal?"))
-      (if (not (= (mus-channels gen1) 1)) (snd-display ";mus-channels move-sound (1): ~A" (mus-channels gen1)))
-      (if (not (= (mus-channels gen2) 4)) (snd-display ";mus-channels move-sound (4): ~A" (mus-channels gen2)))
+      (if (not (move-sound? gen1)) (snd-display "move-sound?"))
+      (if (equal? gen1 gen2) (snd-display "move-sounds are equal?"))
+      (if (not (= (mus-channels gen1) 1)) (snd-display "mus-channels move-sound (1): ~A" (mus-channels gen1)))
+      (if (not (= (mus-channels gen2) 4)) (snd-display "mus-channels move-sound (4): ~A" (mus-channels gen2)))
       (mus-reset gen1) ; a no-op
       
       (do ((v (make-float-vector 10))
 	   (i 0 (+ i 1)))
 	  ((= i 10)
 	   (if (not (mus-arrays-equal? v (make-float-vector 10 0.875)))
-	       (snd-display ";move-sound output: ~A" v)))
+	       (snd-display "move-sound output: ~A" v)))
 	(set! (v i) (+ (move-sound gen1 i 0.5)
 		       (gen2 i 0.25)
 		       (move-sound gen3 i 0.125))))
@@ -17930,20 +17930,20 @@ EDITS: 2
 						       outf1))
 			(lambda args args))))
 	(if (not (eq? (car var) 'wrong-type-arg))
-	    (snd-display ";make-move-sound bad doppler delay: ~A" var)))
+	    (snd-display "make-move-sound bad doppler delay: ~A" var)))
       (let ((var (catch #t (lambda () (make-move-sound (list 0 1000 1 0 (make-oscil 32) (make-env '(0 0 1 1) :length 1001) 
 							     (make-env '(0 0 1 1) :length 1001) (vector (make-delay 32)))
 						       outf1))
 			(lambda args args))))
 	(if (not (eq? (car var) 'wrong-type-arg))
-	    (snd-display ";make-move-sound truncated list: ~A" var)))
+	    (snd-display "make-move-sound truncated list: ~A" var)))
       (let ((var (catch #t (lambda () (make-move-sound (list 0 1000 1 0 (make-delay 32) (make-env '(0 0 1 1) :length 1001) 
 							     #f (vector #f)
 							     (vector (make-env '(0 0 1 1) :length 1001)) #f #f)
 						       outf1))
 			(lambda args args))))
 	(if (not (eq? (car var) 'wrong-type-arg))
-	    (snd-display ";make-move-sound no out map: ~A" var)))
+	    (snd-display "make-move-sound no out map: ~A" var)))
       
       
       (mus-close outf1) 
@@ -17973,9 +17973,9 @@ EDITS: 2
 		 (fneq (vo i) 0.0))
 	    (set! start i)))
       (if (not (= start 64))
-	  (snd-display ";move-sound float-vector output start: ~A" start))
+	  (snd-display "move-sound float-vector output start: ~A" start))
       (if (fneq (float-vector-peak vo) 0.484)
-	  (snd-display ";move-sound float-vector output: ~A" (float-vector-peak vo))))
+	  (snd-display "move-sound float-vector output: ~A" (float-vector-peak vo))))
     
     (let* ((vo (make-float-vector '(1 1000)))
 	   (gen1 (make-move-sound (list 0 1000 1 0
@@ -17995,9 +17995,9 @@ EDITS: 2
 		 (fneq (vo 0 i) 0.0))
 	    (set! start i)))
       (if (not (= start 64))
-	  (snd-display ";move-sound sd output start: ~A" start))
+	  (snd-display "move-sound sd output start: ~A" start))
       (if (fneq (maxamp vo) 0.484)
-	  (snd-display ";move-sound sd output: ~A" (maxamp vo))))
+	  (snd-display "move-sound sd output: ~A" (maxamp vo))))
     
     (let* ((vo (make-float-vector 1000))
 	   (gen1 (make-move-sound (list 0 1000 1 0
@@ -18017,9 +18017,9 @@ EDITS: 2
 		  (> (abs (vo i)) 0.001))
 	     (set! start i)))
       (if (not (= start 64))
-	  (snd-display ";move-sound opt float-vector output start: ~A" start))
+	  (snd-display "move-sound opt float-vector output start: ~A" start))
       (if (fneq (float-vector-peak vo) 0.484)
-	  (snd-display ";move-sound opt float-vector output: ~A" (float-vector-peak vo))))
+	  (snd-display "move-sound opt float-vector output: ~A" (float-vector-peak vo))))
     
     (let* ((vo (make-float-vector '(1 1000)))
 	   (gen1 (make-move-sound (list 0 1000 1 0
@@ -18039,13 +18039,13 @@ EDITS: 2
 		  (> (abs (vo 0 i)) 0.001))
 	     (set! start i)))
       (if (not (= start 64))
-	  (snd-display ";move-sound opt sd output start: ~A" start))
+	  (snd-display "move-sound opt sd output start: ~A" start))
       (if (fneq (maxamp vo) 0.484)
-	  (snd-display ";move-sound opt sd output: ~A" (maxamp vo))))
+	  (snd-display "move-sound opt sd output: ~A" (maxamp vo))))
     
     (let ((var (catch #t (lambda () (make-src :width -1)) (lambda args args))))
       (if (not (eq? (car var) 'out-of-range))
-	  (snd-display ";make-src bad width: ~A" var)))
+	  (snd-display "make-src bad width: ~A" var)))
     
     (let ((s1 (make-src (lambda (y) 1.0) 2.0)))
       (for-each (lambda (arg) 
@@ -18068,7 +18068,7 @@ EDITS: 2
 	  (let ((old-val (v0 i))
 		(new-val (src gen 0.0)))
 	    (if (fneq old-val new-val)
-		(snd-display ";reset src ~A ~A ~A" i old-val new-val))))))
+		(snd-display "reset src ~A ~A ~A" i old-val new-val))))))
     
     (let ()
       (define (so1 s p)
@@ -18103,43 +18103,43 @@ EDITS: 2
 	  (let ((v1 (make-float-vector 1000)))
 	    (fill-float-vector v1 (if (granulate? gen1) (granulate gen1) -1.0))
 	    (let ((worst (abs (- (float-vector-peak v0) (float-vector-peak v1)))))
-	      (if (> worst .01) (snd-display ";run granulate: ~A" worst))))
-	  (if (equal? gen gen1) (snd-display ";granulate equal? ~A ~A" gen gen1)))
-	(if (= (float-vector-peak v0) 0.0) (snd-display ";granulate output peak: ~F?" (float-vector-peak v0))))
-      (if (not (granulate? gen)) (snd-display ";~A not granulate?" gen))
-      (if (fneq (mus-increment gen) 2.0) (snd-display ";granulate increment: ~F?" (mus-increment gen)))
-      (if (fneq (mus-scaler gen) 0.6) (snd-display ";granulate scaler: ~F?" (mus-scaler gen)))
-      (if (ffneq (mus-frequency gen) 0.05) (snd-display ";granulate frequency: ~F?" (mus-frequency gen)))
-      (if (not (= (mus-ramp gen) 1323)) (snd-display ";granulate ramp: ~F?" (mus-ramp gen)))
-      (if (not (= (mus-length gen) 3308)) (snd-display ";granulate length: ~A?" (mus-length gen)))
-      (if (not (= (mus-hop gen) 1102)) (snd-display ";granulate hop: ~A?" (mus-hop gen)))
-      (set! (mus-hop gen) 1000) (if (not (= (mus-hop gen) 1000)) (snd-display ";granulate set-hop: ~A?" (mus-hop gen)))
-      (set! (mus-ramp gen) 1000) (if (not (= (mus-ramp gen) 1000)) (snd-display ";granulate set-ramp: ~A?" (mus-ramp gen)))
-      (set! (mus-length gen) 3000) (if (not (= (mus-length gen) 3000)) (snd-display ";granulate set-length: ~A?" (mus-length gen)))
+	      (if (> worst .01) (snd-display "run granulate: ~A" worst))))
+	  (if (equal? gen gen1) (snd-display "granulate equal? ~A ~A" gen gen1)))
+	(if (= (float-vector-peak v0) 0.0) (snd-display "granulate output peak: ~F?" (float-vector-peak v0))))
+      (if (not (granulate? gen)) (snd-display "~A not granulate?" gen))
+      (if (fneq (mus-increment gen) 2.0) (snd-display "granulate increment: ~F?" (mus-increment gen)))
+      (if (fneq (mus-scaler gen) 0.6) (snd-display "granulate scaler: ~F?" (mus-scaler gen)))
+      (if (ffneq (mus-frequency gen) 0.05) (snd-display "granulate frequency: ~F?" (mus-frequency gen)))
+      (if (not (= (mus-ramp gen) 1323)) (snd-display "granulate ramp: ~F?" (mus-ramp gen)))
+      (if (not (= (mus-length gen) 3308)) (snd-display "granulate length: ~A?" (mus-length gen)))
+      (if (not (= (mus-hop gen) 1102)) (snd-display "granulate hop: ~A?" (mus-hop gen)))
+      (set! (mus-hop gen) 1000) (if (not (= (mus-hop gen) 1000)) (snd-display "granulate set-hop: ~A?" (mus-hop gen)))
+      (set! (mus-ramp gen) 1000) (if (not (= (mus-ramp gen) 1000)) (snd-display "granulate set-ramp: ~A?" (mus-ramp gen)))
+      (set! (mus-length gen) 3000) (if (not (= (mus-length gen) 3000)) (snd-display "granulate set-length: ~A?" (mus-length gen)))
       (set! (mus-increment gen) 3.0)
-      (if (> (abs (- (mus-increment gen) 3.0)) .01) (snd-display ";granulate set-increment: ~F?" (mus-increment gen)))
+      (if (> (abs (- (mus-increment gen) 3.0)) .01) (snd-display "granulate set-increment: ~F?" (mus-increment gen)))
       (set! (mus-increment gen) 0.0) ; should be a no-op
-      (if (> (abs (- (mus-increment gen) 3.0)) .01) (snd-display ";granulate set-increment 0.0: ~F?" (mus-increment gen)))
+      (if (> (abs (- (mus-increment gen) 3.0)) .01) (snd-display "granulate set-increment 0.0: ~F?" (mus-increment gen)))
       (set! (mus-location gen) 1)
-      (if (not (= (mus-location gen) 1)) (snd-display ";mus-location grn: ~A" (mus-location gen)))
+      (if (not (= (mus-location gen) 1)) (snd-display "mus-location grn: ~A" (mus-location gen)))
       (set! (mus-frequency gen) .1)
-      (if (fneq (mus-frequency gen) .1) (snd-display ";set granulate freq: ~A" (mus-frequency gen))))
+      (if (fneq (mus-frequency gen) .1) (snd-display "set granulate freq: ~A" (mus-frequency gen))))
     (let ((var (catch #t (lambda () (make-granulate :hop 35.0 :length 35.0)) (lambda args args))))
       (if (not (eq? (car var) 'out-of-range))
-	  (snd-display ";make-granulate bad sizes: ~A" var)))
+	  (snd-display "make-granulate bad sizes: ~A" var)))
     
     (let ((ind (new-sound :size 10)))
       (set! (sample 2) .1)
       (set! (sample 6) -.5)
       (let ((vals (map values (make-sampler))))
 	(if (not (morally-equal? vals '(0.0 0.0 0.1 0.0 0.0 0.0 -0.5 0.0 0.0 0.0)))
-	    (snd-display ";rd new: ~A" vals)))
+	    (snd-display "rd new: ~A" vals)))
       (close-sound ind))
     (let* ((ind (open-sound "oboe.snd"))
 	   (mx (maxamp))
 	   (rd (make-sampler 0)))
       (if (not (= (length rd) 50828))
-	  (snd-display ";sampler (oboe) length: ~A" (length rd)))
+	  (snd-display "sampler (oboe) length: ~A" (length rd)))
       (let ((grn (make-granulate :expansion 2.0
 				 :input (lambda (dir) (read-sample rd))
 				 :edit (lambda (g)
@@ -18147,7 +18147,7 @@ EDITS: 2
 					 0))))
 	(map-channel (lambda (y) (granulate grn)))
 	(if (or (< (/ (maxamp) mx) 1.4) (> (/ mx (maxamp)) 2.5))
-	    (snd-display ";gran edit 2* (0): ~A ~A" mx (maxamp)))
+	    (snd-display "gran edit 2* (0): ~A ~A" mx (maxamp)))
 	(undo))
       (let ((grn (make-granulate :expansion 2.0
 				 :input (let ((rd (make-sampler 0)))
@@ -18158,7 +18158,7 @@ EDITS: 2
 					 0))))
 	(map-channel (lambda (y) (granulate grn)))
 	(if (or (< (/ (maxamp) mx) 3.0) (> (/ mx (maxamp)) 6.0))
-	    (snd-display ";gran edit 4* (0): ~A ~A" mx (maxamp)))
+	    (snd-display "gran edit 4* (0): ~A ~A" mx (maxamp)))
 	(revert-sound ind))
       (let ((grn (make-granulate :expansion 2.0
 				 :input (let ((rd (make-sampler 0)))
@@ -18169,7 +18169,7 @@ EDITS: 2
 					 0))))
 	(map-channel (lambda (y) (granulate grn)))
 	(if (or (< (/ (maxamp) mx) 1.4) (> (/ mx (maxamp)) 2.5))
-	    (snd-display ";gran edit 2* (1): ~A ~A" mx (maxamp)))
+	    (snd-display "gran edit 2* (1): ~A ~A" mx (maxamp)))
 	(undo)
 	(let ((grn (make-granulate :expansion 2.0
 				   :edit (lambda (g)
@@ -18180,7 +18180,7 @@ EDITS: 2
 					      (read-sample rd))))))
 	  (map-channel (lambda (y) (granulate grn)))
 	  (if (or (< (/ (maxamp) mx) 2.9) (> (/ mx (maxamp)) 6.0))
-	      (snd-display ";gran edit 4* (1): ~A ~A" mx (maxamp)))
+	      (snd-display "gran edit 4* (1): ~A ~A" mx (maxamp)))
 	  (revert-sound ind)))
       (let ((grn (make-granulate :expansion 2.0 
 				 :input (make-sampler 0)
@@ -18189,7 +18189,7 @@ EDITS: 2
 					 0))))
 	(map-channel (lambda (y) (granulate grn)))
 	(if (or (< (/ (maxamp) mx) 1.4) (> (/ mx (maxamp)) 2.5))
-	    (snd-display ";gran edit 2* (2): ~A ~A" mx (maxamp)))
+	    (snd-display "gran edit 2* (2): ~A ~A" mx (maxamp)))
 	(undo)
 	(let ((grn (make-granulate :expansion 2.0
 				   :input (let ((rd (make-sampler 0)))
@@ -18199,29 +18199,29 @@ EDITS: 2
 					    (float-vector-scale! (mus-data g) 4.0) 0))))
 	  (map-channel (lambda (y) (granulate grn)))
 	  (if (or (< (/ (maxamp) mx) 3.0) (> (/ mx (maxamp)) 6.0))
-	      (snd-display ";gran edit 4* (2): ~A ~A" mx (maxamp)))))
+	      (snd-display "gran edit 4* (2): ~A ~A" mx (maxamp)))))
       (close-sound ind))
     
     (let ((ind (open-sound "oboe.snd")))
       (let ((grn (make-granulate :expansion 2.0 :length .01 :hop .05 :input (let ((rd (make-sampler))) (lambda (dir) (next-sample rd))))))
 	(map-channel (lambda (y) (granulate grn)))
 	(let ((mx (maxamp)))
-	  (if (> mx .2) (snd-display ";trouble in granulate len .01 hop .05: ~A" mx))
+	  (if (> mx .2) (snd-display "trouble in granulate len .01 hop .05: ~A" mx))
 	  (undo)))
       (let ((grn (make-granulate :expansion 2.0 :length .04 :hop .05 :input (let ((rd (make-sampler))) (lambda (dir) (next-sample rd))))))
 	(map-channel (lambda (y) (granulate grn)))
 	(let ((mx (maxamp)))
-	  (if (> mx .2) (snd-display ";trouble in granulate len .04 hop .05: ~A" mx))
+	  (if (> mx .2) (snd-display "trouble in granulate len .04 hop .05: ~A" mx))
 	  (undo)))
       (let ((grn (make-granulate :expansion 2.0 :length .01 :hop .25 :input (let ((rd (make-sampler))) (lambda (dir) (next-sample rd))))))
 	(map-channel (lambda (y) (granulate grn)))
 	(let ((mx (maxamp)))
-	  (if (> mx .2) (snd-display ";trouble in granulate len .01 hop .25: ~A" mx))
+	  (if (> mx .2) (snd-display "trouble in granulate len .01 hop .25: ~A" mx))
 	  (undo)))
       (let ((grn (make-granulate :expansion 2.0 :length .4 :hop .5 :input (let ((rd (make-sampler))) (lambda (dir) (next-sample rd))))))
 	(map-channel (lambda (y) (granulate grn)))
 	(let ((mx (maxamp)))
-	  (if (> mx .2) (snd-display ";trouble in granulate len .4 hop .5: ~A" mx))
+	  (if (> mx .2) (snd-display "trouble in granulate len .4 hop .5: ~A" mx))
 	  (undo)))
       (close-sound ind))
     
@@ -18229,139 +18229,139 @@ EDITS: 2
       (let ((gen (make-granulate :jitter 0.0 :hop .004 :length .001 :input (lambda (dir) .1))))
 	(map-channel (lambda (y) (granulate gen))))
       (let ((mx (maxamp)))
-	(if (fneq mx 0.06) (snd-display ";gran 0 max: ~A" mx)))
+	(if (fneq mx 0.06) (snd-display "gran 0 max: ~A" mx)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 30) 
 		       (float-vector 0.000 0.007 0.013 0.020 0.027 0.033 0.040 0.047 0.053 0.060 0.060 0.060 0.060 0.060 0.060 0.053 
 				     0.047 0.040 0.033 0.027 0.020 0.013 0.007 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";gran 0 data: ~A" (channel->float-vector 0 30)))
+	  (snd-display "gran 0 data: ~A" (channel->float-vector 0 30)))
       (if (not (mus-arrays-equal? (channel->float-vector 85 30) 
 		       (float-vector 0.000 0.000 0.000 0.000 0.007 0.013 0.020 0.027 0.033 0.040 0.047 0.053 0.060 0.060 0.060 0.060
 				     0.060 0.060 0.053 0.047 0.040 0.033 0.027 0.020 0.013 0.007 0.000 0.000 0.000 0.000)))
-	  (snd-display ";gran 0 data 85: ~A" (channel->float-vector 85 30)))
+	  (snd-display "gran 0 data 85: ~A" (channel->float-vector 85 30)))
       (undo)
       
       (let ((gen (make-granulate :jitter 0.0 :hop .002 :length .001 :input (lambda (dir) .1))))
 	(map-channel (lambda (y) (granulate gen))))
       (let ((mx (maxamp)))
-	(if (fneq mx 0.06) (snd-display ";gran 1 max: ~A" mx)))
+	(if (fneq mx 0.06) (snd-display "gran 1 max: ~A" mx)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 30) 
 		       (float-vector 0.000 0.007 0.013 0.020 0.027 0.033 0.040 0.047 0.053 0.060 0.060 0.060 0.060 0.060 0.060 0.053 
 				     0.047 0.040 0.033 0.027 0.020 0.013 0.007 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";gran 1 data: ~A" (channel->float-vector 0 30)))
+	  (snd-display "gran 1 data: ~A" (channel->float-vector 0 30)))
       (if (not (mus-arrays-equal? (channel->float-vector 40 30) 
 		       (float-vector 0.000 0.000 0.000 0.000 0.000 0.007 0.013 0.020 0.027 0.033 0.040 0.047 0.053 0.060 0.060 0.060 
 				     0.060 0.060 0.060 0.053 0.047 0.040 0.033 0.027 0.020 0.013 0.007 0.000 0.000 0.000)))
-	  (snd-display ";gran 1 data 40: ~A" (channel->float-vector 85 30)))
+	  (snd-display "gran 1 data 40: ~A" (channel->float-vector 85 30)))
       (undo)
       
       (let ((gen (make-granulate :jitter 0.0 :hop .002 :length .001 :ramp .1 :input (lambda (dir) .1))))
 	(map-channel (lambda (y) (granulate gen))))
       (let ((mx (maxamp)))
-	(if (fneq mx 0.06) (snd-display ";gran 2 max: ~A" mx)))
+	(if (fneq mx 0.06) (snd-display "gran 2 max: ~A" mx)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 30) 
 		       (float-vector 0.000 0.030 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 
 				     0.060 0.060 0.060 0.060 0.060 0.060 0.030 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";gran 2 data: ~A" (channel->float-vector 0 30)))
+	  (snd-display "gran 2 data: ~A" (channel->float-vector 0 30)))
       (if (not (mus-arrays-equal? (channel->float-vector 40 30) 
 		       (float-vector 0.000 0.000 0.000 0.000 0.000 0.030 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060
 				     0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.030 0.000 0.000 0.000)))
-	  (snd-display ";gran 2 data 40: ~A" (channel->float-vector 40 30)))
+	  (snd-display "gran 2 data 40: ~A" (channel->float-vector 40 30)))
       (undo)
       
       (let ((gen (make-granulate :jitter 0.0 :hop .002 :length .001 :ramp .5 :input (lambda (dir) .1))))
 	(map-channel (lambda (y) (granulate gen))))
       (let ((mx (maxamp)))
-	(if (fneq mx 0.06) (snd-display ";gran 3 max: ~A" mx)))
+	(if (fneq mx 0.06) (snd-display "gran 3 max: ~A" mx)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 30) 
 		       (float-vector 0.000 0.005 0.011 0.016 0.022 0.027 0.033 0.038 0.044 0.049 0.055 0.060 0.060 0.055 0.049 0.044 
 				     0.038 0.033 0.027 0.022 0.016 0.011 0.005 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";gran 3 data: ~A" (channel->float-vector 0 30)))
+	  (snd-display "gran 3 data: ~A" (channel->float-vector 0 30)))
       (if (not (mus-arrays-equal? (channel->float-vector 85 30) 
 		       (float-vector 0.000 0.000 0.000 0.000 0.005 0.011 0.016 0.022 0.027 0.033 0.038 0.044 0.049 0.055 0.060 0.060 
 				     0.055 0.049 0.044 0.038 0.033 0.027 0.022 0.016 0.011 0.005 0.000 0.000 0.000 0.000)))
-	  (snd-display ";gran 3 data 85: ~A" (channel->float-vector 85 30)))
+	  (snd-display "gran 3 data 85: ~A" (channel->float-vector 85 30)))
       (undo)
       
       (let ((gen (make-granulate :jitter 0.0 :hop .001 :length .001 :ramp .5 :input (lambda (dir) .1))))
 	(map-channel (lambda (y) (granulate gen))))
       (let ((mx (maxamp)))
-	(if (fneq mx 0.06) (snd-display ";gran 4 max: ~A" mx)))
+	(if (fneq mx 0.06) (snd-display "gran 4 max: ~A" mx)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 30) 
 		       (float-vector 0.000 0.005 0.011 0.016 0.022 0.027 0.033 0.038 0.044 0.049 0.055 0.060 0.060 0.055 0.049 0.044 
 				     0.038 0.033 0.027 0.022 0.016 0.011 0.005 0.005 0.011 0.016 0.022 0.027 0.033 0.038)))
-	  (snd-display ";gran 4 data: ~A" (channel->float-vector 0 30)))
+	  (snd-display "gran 4 data: ~A" (channel->float-vector 0 30)))
       (if (not (mus-arrays-equal? (channel->float-vector 85 30) 
 		       (float-vector 0.022 0.016 0.011 0.005 0.005 0.011 0.016 0.022 0.027 0.033 0.038 0.044 0.049 0.055 0.060 0.060 
 				     0.055 0.049 0.044 0.038 0.033 0.027 0.022 0.016 0.011 0.005 0.005 0.011 0.016 0.022)))
-	  (snd-display ";gran 4 data 85: ~A" (channel->float-vector 85 30)))
+	  (snd-display "gran 4 data 85: ~A" (channel->float-vector 85 30)))
       (undo)
       
       (let ((gen (make-granulate :jitter 0.0 :hop .001 :length .001 :ramp .25 :scaler 1.0 :input (lambda (dir) .1))))
 	(map-channel (lambda (y) (granulate gen))))
       (let ((mx (maxamp)))
-	(if (fneq mx 0.1) (snd-display ";gran 5 max: ~A" mx)))
+	(if (fneq mx 0.1) (snd-display "gran 5 max: ~A" mx)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 30) 
 		       (float-vector 0.000 0.020 0.040 0.060 0.080 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 
 				     0.100 0.100 0.100 0.080 0.060 0.040 0.020 0.020 0.040 0.060 0.080 0.100 0.100 0.100)))
-	  (snd-display ";gran 5 data: ~A" (channel->float-vector 0 30)))
+	  (snd-display "gran 5 data: ~A" (channel->float-vector 0 30)))
       (if (not (mus-arrays-equal? (channel->float-vector 85 30) 
 		       (float-vector 0.080 0.060 0.040 0.020 0.020 0.040 0.060 0.080 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 
 				     0.100 0.100 0.100 0.100 0.100 0.100 0.080 0.060 0.040 0.020 0.020 0.040 0.060 0.080)))
-	  (snd-display ";gran 5 data 85: ~A" (channel->float-vector 85 30)))
+	  (snd-display "gran 5 data 85: ~A" (channel->float-vector 85 30)))
       (undo)
       
       (let ((gen (make-granulate :jitter 0.0 :hop .001 :length .002 :ramp .5 :scaler 1.0 :input (lambda (dir) .1))))
 	(map-channel (lambda (y) (granulate gen))))
       (let ((mx (maxamp)))
-	(if (fneq mx 0.105) (snd-display ";gran 6 max: ~A" mx)))
+	(if (fneq mx 0.105) (snd-display "gran 6 max: ~A" mx)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 30) 
 		       (float-vector 0.000 0.005 0.009 0.014 0.018 0.023 0.027 0.032 0.036 0.041 0.045 0.050 0.055 0.059 0.064 0.068 
 				     0.073 0.077 0.082 0.086 0.091 0.095 0.100 0.105 0.105 0.105 0.105 0.105 0.105 0.105)))
-	  (snd-display ";gran 6 data: ~A" (channel->float-vector 0 30)))
+	  (snd-display "gran 6 data: ~A" (channel->float-vector 0 30)))
       (if (not (mus-arrays-equal? (channel->float-vector 85 30) (make-float-vector 30 0.105)))
-	  (snd-display ";gran 6 data 85: ~A" (channel->float-vector 85 30)))
+	  (snd-display "gran 6 data 85: ~A" (channel->float-vector 85 30)))
       (undo)
       
       (let ((gen (make-granulate :jitter 0.0 :hop .001 :length .005 :ramp .5 :scaler 1.0 :input (lambda (dir) .1))))
 	(map-channel (lambda (y) (granulate gen))))
       (let ((mx (maxamp)))
-	(if (fneq mx 0.264) (snd-display ";gran 7 max: ~A" mx)))
+	(if (fneq mx 0.264) (snd-display "gran 7 max: ~A" mx)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 30) 
 		       (float-vector 0.000 0.002 0.004 0.005 0.007 0.009 0.011 0.013 0.015 0.016 0.018 0.020 0.022 0.024 0.025 0.027 
 				     0.029 0.031 0.033 0.035 0.036 0.038 0.040 0.044 0.047 0.051 0.055 0.058 0.062 0.065)))
-	  (snd-display ";gran 7 data: ~A" (channel->float-vector 0 30)))
+	  (snd-display "gran 7 data: ~A" (channel->float-vector 0 30)))
       (if (not (mus-arrays-equal? (channel->float-vector 85 30) 
 		       (float-vector 0.244 0.244 0.244 0.244 0.245 0.247 0.249 0.251 0.253 0.255 0.256 0.258 0.260 0.262 0.264 0.264 
 				     0.262 0.260 0.258 0.256 0.255 0.253 0.251 0.249 0.247 0.245 0.245 0.247 0.249 0.251)))
-	  (snd-display ";gran 7 data 85: ~A" (channel->float-vector 85 30)))
+	  (snd-display "gran 7 data 85: ~A" (channel->float-vector 85 30)))
       (undo)
       
       (let ((gen (make-granulate :jitter 0.0 :hop .01 :length .001 :ramp .5 :scaler 1.0 :expansion 2.0 :input (lambda (dir) .1))))
 	(map-channel (lambda (y) (granulate gen))))
       (let ((mx (maxamp)))
-	(if (fneq mx 0.1) (snd-display ";gran 8 max: ~A" mx)))
+	(if (fneq mx 0.1) (snd-display "gran 8 max: ~A" mx)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 30) 
 		       (float-vector 0.000 0.009 0.018 0.027 0.036 0.045 0.055 0.064 0.073 0.082 0.091 0.100 0.100 0.091 0.082 0.073 
 				     0.064 0.055 0.045 0.036 0.027 0.018 0.009 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";gran 8 data: ~A" (channel->float-vector 0 30)))
+	  (snd-display "gran 8 data: ~A" (channel->float-vector 0 30)))
       (if (not (mus-arrays-equal? (channel->float-vector 220 30) 
 		       (float-vector 0.000 0.009 0.018 0.027 0.036 0.045 0.055 0.064 0.073 0.082 0.091 0.100 0.100 0.091 0.082 0.073 
 				     0.064 0.055 0.045 0.036 0.027 0.018 0.009 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";gran 8 data 220: ~A" (channel->float-vector 220 30)))
+	  (snd-display "gran 8 data 220: ~A" (channel->float-vector 220 30)))
       (undo)
       
       (let ((gen (make-granulate :jitter 0.0 :hop .01 :length .001 :ramp .5 :scaler 1.0 :expansion 0.5 :input (lambda (dir) .1))))
 	(map-channel (lambda (y) (granulate gen))))
       (let ((mx (maxamp)))
-	(if (fneq mx 0.1) (snd-display ";gran 9 max: ~A" mx))) ; same as 8 because expansion hits the input counter
+	(if (fneq mx 0.1) (snd-display "gran 9 max: ~A" mx))) ; same as 8 because expansion hits the input counter
       (if (not (mus-arrays-equal? (channel->float-vector 0 30) 
 		       (float-vector 0.000 0.009 0.018 0.027 0.036 0.045 0.055 0.064 0.073 0.082 0.091 0.100 0.100 0.091 0.082 0.073 
 				     0.064 0.055 0.045 0.036 0.027 0.018 0.009 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";gran 9 data: ~A" (channel->float-vector 0 30)))
+	  (snd-display "gran 9 data: ~A" (channel->float-vector 0 30)))
       (if (not (mus-arrays-equal? (channel->float-vector 220 30) 
 		       (float-vector 0.000 0.009 0.018 0.027 0.036 0.045 0.055 0.064 0.073 0.082 0.091 0.100 0.100 0.091 0.082 0.073 
 				     0.064 0.055 0.045 0.036 0.027 0.018 0.009 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";gran 9 data 220: ~A" (channel->float-vector 220 30)))
+	  (snd-display "gran 9 data 220: ~A" (channel->float-vector 220 30)))
       (undo)
       
       (let ((gen (make-granulate :jitter 0.0 :hop .001 :length .005 :ramp .5 :scaler 1.0
@@ -18371,15 +18371,15 @@ EDITS: 2
 					 0))))
 	(map-channel (lambda (y) (granulate gen))))
       (let ((mx (maxamp)))
-	(if (fneq mx (* 2 0.264)) (snd-display ";gran 10 max: ~A" mx)))
+	(if (fneq mx (* 2 0.264)) (snd-display "gran 10 max: ~A" mx)))
       (if (not (mus-arrays-equal? (float-vector-scale! (channel->float-vector 0 30) 0.5)
 		       (float-vector 0.000 0.002 0.004 0.005 0.007 0.009 0.011 0.013 0.015 0.016 0.018 0.020 0.022 0.024 0.025 0.027 
 				     0.029 0.031 0.033 0.035 0.036 0.038 0.040 0.044 0.047 0.051 0.055 0.058 0.062 0.065)))
-	  (snd-display ";gran 10 data: ~A" (channel->float-vector 0 30)))
+	  (snd-display "gran 10 data: ~A" (channel->float-vector 0 30)))
       (if (not (mus-arrays-equal? (float-vector-scale! (channel->float-vector 85 30) 0.5)
 		       (float-vector 0.244 0.244 0.244 0.244 0.245 0.247 0.249 0.251 0.253 0.255 0.256 0.258 0.260 0.262 0.264 0.264 
 				     0.262 0.260 0.258 0.256 0.255 0.253 0.251 0.249 0.247 0.245 0.245 0.247 0.249 0.251)))
-	  (snd-display ";gran 10 data 85: ~A" (channel->float-vector 85 30)))
+	  (snd-display "gran 10 data 85: ~A" (channel->float-vector 85 30)))
       (undo)
       
       (let ((forward #t)
@@ -18397,15 +18397,15 @@ EDITS: 2
 	  (let ((gen (make-granulate :jitter 0.0 :hop .005 :length .002 :ramp 0.0 :scaler 1.0 :input f1 :edit f2)))
 	    (map-channel (lambda (y) (granulate gen))))))
       (let ((mx (maxamp)))
-	(if (> mx 0.6) (snd-display ";gran 11 max: ~A" mx)))
+	(if (> mx 0.6) (snd-display "gran 11 max: ~A" mx)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 30)
 		       (float-vector -0.499 -0.498 -0.497 -0.496 -0.495 -0.494 -0.493 -0.492 -0.491 -0.490 -0.489 -0.488 -0.487 -0.486 
 				     -0.485 -0.484 -0.483 -0.482 -0.481 -0.480 -0.479 -0.478 -0.477 -0.476 -0.475 -0.474 -0.473 -0.472 -0.471 -0.470)))
-	  (snd-display ";gran 11 data: ~A" (channel->float-vector 0 30)))
+	  (snd-display "gran 11 data: ~A" (channel->float-vector 0 30)))
       (if (not (mus-arrays-equal? (channel->float-vector 100 30)
 		       (float-vector 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 -0.345 -0.346 -0.347 -0.348 -0.349 
 				     -0.350 -0.351 -0.352 -0.353 -0.354 -0.355 -0.356 -0.357 -0.358 -0.359 -0.360 -0.361 -0.362 -0.363 -0.364)))
-	  (snd-display ";gran 11 data 100: ~A" (channel->float-vector 100 30)))
+	  (snd-display "gran 11 data 100: ~A" (channel->float-vector 100 30)))
       (undo)
       
       (let ((ctr -0.5)
@@ -18414,15 +18414,15 @@ EDITS: 2
 				   :input (lambda (dir) (set! ctr (+ ctr incr))))))
 	  (map-channel (lambda (y) (granulate gen)))))
       (let ((mx (maxamp)))
-	(if (> mx 0.6) (snd-display ";gran 12 max: ~A" mx)))
+	(if (> mx 0.6) (snd-display "gran 12 max: ~A" mx)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 30)
 		       (float-vector -0.499 -0.498 -0.497 -0.496 -0.495 -0.494 -0.493 -0.492 -0.491 -0.490 -0.489 -0.488 -0.487 -0.486 
 				     -0.485 -0.484 -0.483 -0.482 -0.481 -0.480 -0.479 -0.478 -0.477 -0.476 -0.475 -0.474 -0.473 -0.472 -0.471 -0.470)))
-	  (snd-display ";gran 12 data: ~A" (channel->float-vector 0 30)))
+	  (snd-display "gran 12 data: ~A" (channel->float-vector 0 30)))
       (if (not (mus-arrays-equal? (channel->float-vector 100 30)
 		       (float-vector 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 -0.389 -0.388 -0.387 -0.386 -0.385 
 				     -0.384 -0.383 -0.382 -0.381 -0.380 -0.379 -0.378 -0.377 -0.376 -0.375 -0.374 -0.373 -0.372 -0.371 -0.370)))
-	  (snd-display ";gran 12 data 100: ~A" (channel->float-vector 100 30)))
+	  (snd-display "gran 12 data 100: ~A" (channel->float-vector 100 30)))
       (undo)
       
       (let ((gen (make-granulate :jitter 0.0 :hop .001 :length .005 :ramp .5 :scaler 1.0
@@ -18432,15 +18432,15 @@ EDITS: 2
 					 0))))
 	(map-channel (lambda (y) (granulate gen))))
       (let ((mx (maxamp)))
-	(if (> mx .6) (snd-display ";gran 13 max: ~A" mx)))
+	(if (> mx .6) (snd-display "gran 13 max: ~A" mx)))
       (if (not (mus-arrays-equal? (float-vector-scale! (channel->float-vector 0 30) 0.5)
 		       (float-vector 0.000 0.002 0.004 0.005 0.007 0.009 0.011 0.013 0.015 0.016 0.018 0.020 0.022 0.024 0.025 0.027 
 				     0.029 0.031 0.033 0.035 0.036 0.038 0.040 0.044 0.047 0.051 0.055 0.058 0.062 0.065)))
-	  (snd-display ";gran 13 data: ~A" (channel->float-vector 0 30)))
+	  (snd-display "gran 13 data: ~A" (channel->float-vector 0 30)))
       (if (not (mus-arrays-equal? (float-vector-scale! (channel->float-vector 85 30) 0.5)
 		       (float-vector 0.244 0.244 0.244 0.244 0.245 0.247 0.249 0.251 0.253 0.255 0.256 0.258 0.260 0.262 0.264 0.264 
 				     0.262 0.260 0.258 0.256 0.255 0.253 0.251 0.249 0.247 0.245 0.245 0.247 0.249 0.251)))
-	  (snd-display ";gran 13 data 85: ~A" (channel->float-vector 85 30)))
+	  (snd-display "gran 13 data 85: ~A" (channel->float-vector 85 30)))
       (undo)
       
       (let ((forward #t)
@@ -18457,15 +18457,15 @@ EDITS: 2
 					   (mus-length g)))))
 	  (map-channel (lambda (y) (granulate gen)))))
       (let ((mx (maxamp)))
-	(if (> mx 0.6) (snd-display ";gran 14 max: ~A" mx)))
+	(if (> mx 0.6) (snd-display "gran 14 max: ~A" mx)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 30)
 		       (float-vector -0.499 -0.498 -0.497 -0.496 -0.495 -0.494 -0.493 -0.492 -0.491 -0.490 -0.489 -0.488 -0.487 -0.486 
 				     -0.485 -0.484 -0.483 -0.482 -0.481 -0.480 -0.479 -0.478 -0.477 -0.476 -0.475 -0.474 -0.473 -0.472 -0.471 -0.470)))
-	  (snd-display ";gran 14 data: ~A" (channel->float-vector 0 30)))
+	  (snd-display "gran 14 data: ~A" (channel->float-vector 0 30)))
       (if (not (mus-arrays-equal? (channel->float-vector 100 30)
 		       (float-vector 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 -0.345 -0.346 -0.347 -0.348 -0.349 
 				     -0.350 -0.351 -0.352 -0.353 -0.354 -0.355 -0.356 -0.357 -0.358 -0.359 -0.360 -0.361 -0.362 -0.363 -0.364)))
-	  (snd-display ";gran 14 data 100: ~A" (channel->float-vector 100 30)))
+	  (snd-display "gran 14 data 100: ~A" (channel->float-vector 100 30)))
       (undo)
       
       (let ((gen (make-granulate :jitter 0.0 :hop .004 :length .001 :ramp 0.0 :input (lambda (dir) .1)))
@@ -18477,21 +18477,21 @@ EDITS: 2
 	       (set! (mus-ramp gen) (round (* base-ramp-len (env e))))
 	       result))))
 	(let ((mx (maxamp)))
-	  (if (fneq mx 0.06) (snd-display ";granf 0 max: ~A" mx)))
+	  (if (fneq mx 0.06) (snd-display "granf 0 max: ~A" mx)))
 	(if (> (abs (- (mus-ramp gen) (* .5 (mus-length gen)))) 1)
-	    (snd-display ";granf 0 ramp: ~A ~A" (mus-ramp gen) (mus-length gen))))
+	    (snd-display "granf 0 ramp: ~A ~A" (mus-ramp gen) (mus-length gen))))
       (if (not (mus-arrays-equal? (channel->float-vector 0 30) 
 		       (float-vector 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 
 				     0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";granf 0 data: ~A" (channel->float-vector 0 30)))
+	  (snd-display "granf 0 data: ~A" (channel->float-vector 0 30)))
       (if (not (mus-arrays-equal? (channel->float-vector 440 30) 
 		       (float-vector 0.000 0.012 0.024 0.036 0.048 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 
 				     0.060 0.060 0.060 0.060 0.060 0.048 0.036 0.024 0.012 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";granf 0 data 440: ~A" (channel->float-vector 440 30)))
+	  (snd-display "granf 0 data 440: ~A" (channel->float-vector 440 30)))
       (if (not (mus-arrays-equal? (channel->float-vector 880 30) 
 		       (float-vector 0.000 0.006 0.012 0.018 0.024 0.030 0.036 0.042 0.048 0.054 0.060 0.060 0.060 0.060 
 				     0.054 0.048 0.042 0.036 0.030 0.024 0.018 0.012 0.006 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";granf 0 data 880: ~A" (channel->float-vector 880 30)))
+	  (snd-display "granf 0 data 880: ~A" (channel->float-vector 880 30)))
       (undo)
       
       (let ((gen (make-granulate :jitter 0.0 :hop .004 :length .001 :ramp 0.0 :input (lambda (dir) .1))))
@@ -18503,17 +18503,17 @@ EDITS: 2
 	       (set! (mus-hop gen) (round (* base-hop-len (env e))))
 	       result))))
 	(let ((mx (maxamp)))
-	  (if (fneq mx 0.06) (snd-display ";granf 1 max: ~A" mx)))
+	  (if (fneq mx 0.06) (snd-display "granf 1 max: ~A" mx)))
 	(if (> (abs (- (mus-hop gen) (* .001 *clm-srate*))) 1)
-	    (snd-display ";granf 1 hop: ~A ~A, ~A ~A" (mus-hop gen) (abs (- (mus-hop gen) (* .001 (srate)))) (srate) *clm-srate*)))
+	    (snd-display "granf 1 hop: ~A ~A, ~A ~A" (mus-hop gen) (abs (- (mus-hop gen) (* .001 (srate)))) (srate) *clm-srate*)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 30) 
 		       (float-vector 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 
 				     0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";granf 1 data: ~A" (channel->float-vector 0 30)))
+	  (snd-display "granf 1 data: ~A" (channel->float-vector 0 30)))
       (if (not (mus-arrays-equal? (channel->float-vector 900 30) 
 		       (float-vector 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.000 0.000 
 				     0.000 0.000 0.000 0.000 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060)))
-	  (snd-display ";granf 1 data 900: ~A" (channel->float-vector 900 30)))
+	  (snd-display "granf 1 data 900: ~A" (channel->float-vector 900 30)))
       (undo)
       
       (let ((gen (make-granulate :jitter 0.0 :hop .004 :length .001 :ramp 0.0 :input  (lambda (dir) .1))))
@@ -18525,27 +18525,27 @@ EDITS: 2
 	       (set! (mus-frequency gen) (* base-freq (env e)))
 	       result))))
 	(let ((mx (maxamp)))
-	  (if (fneq mx 0.06) (snd-display ";granf 2 max: ~A" mx)))
+	  (if (fneq mx 0.06) (snd-display "granf 2 max: ~A" mx)))
 	(if (> (abs (- (mus-hop gen) (* .001 *clm-srate*))) 1)
-	    (snd-display ";granf 2 hop: ~A" (mus-hop gen))))
+	    (snd-display "granf 2 hop: ~A" (mus-hop gen))))
       (if (not (mus-arrays-equal? (channel->float-vector 0 30) 
 		       (float-vector 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 
 				     0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";granf 2 data: ~A" (channel->float-vector 0 30)))
+	  (snd-display "granf 2 data: ~A" (channel->float-vector 0 30)))
       (if (not (mus-arrays-equal? (channel->float-vector 900 30) 
 		       (float-vector 0.060 0.060 0.060 0.060 0.060 0.000 0.000 0.000 0.000 0.000 0.000 0.060 0.060 0.060 
 				     0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060)))
-	  (snd-display ";granf 2 data 900: ~A" (channel->float-vector 900 30)))
+	  (snd-display "granf 2 data 900: ~A" (channel->float-vector 900 30)))
       (undo)
       
       (let ((gen (make-granulate :jitter 0.0 :hop .002 :length .001 :ramp 0.0 :scaler 1.0 :input (lambda (dir) .1))))
 	(map-channel (lambda (y) (granulate gen))))
       (let ((mx (maxamp)))
-	(if (fneq mx 0.1) (snd-display ";granf 3 max: ~A" mx)))
+	(if (fneq mx 0.1) (snd-display "granf 3 max: ~A" mx)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 30) 
 		       (float-vector 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 
 				     0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";gran 3 data: ~A" (channel->float-vector 0 30)))
+	  (snd-display "gran 3 data: ~A" (channel->float-vector 0 30)))
       (undo)
       
       (let ((gen (make-granulate :jitter 0.0 :hop .004 :length .001 :ramp 0.0 :scaler 1.0 :input (lambda (dir) .1)))
@@ -18556,19 +18556,19 @@ EDITS: 2
 	     (set! (mus-scaler gen) (env e))
 	     result))))
       (let ((mx (maxamp)))
-	(if (fneq mx 0.1) (snd-display ";granf 4 max: ~A" mx)))
+	(if (fneq mx 0.1) (snd-display "granf 4 max: ~A" mx)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 30) 
 		       (float-vector 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 
 				     0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.100 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";granf 4 data: ~A" (channel->float-vector 0 30)))
+	  (snd-display "granf 4 data: ~A" (channel->float-vector 0 30)))
       (if (not (mus-arrays-equal? (channel->float-vector 440 30) 
 		       (float-vector 0.056 0.056 0.056 0.056 0.056 0.056 0.056 0.056 0.056 0.056 0.056 0.056 0.056 0.056 
 				     0.056 0.056 0.056 0.056 0.056 0.056 0.056 0.056 0.056 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";granf 4 data 440: ~A" (channel->float-vector 440 30)))
+	  (snd-display "granf 4 data 440: ~A" (channel->float-vector 440 30)))
       (if (not (mus-arrays-equal? (channel->float-vector 900 30) 
 		       (float-vector 0.012 0.012 0.012 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 
 				     0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";granf 4 data 900: ~A" (channel->float-vector 900 30)))
+	  (snd-display "granf 4 data 900: ~A" (channel->float-vector 900 30)))
       (undo)
       
       (let ((gen (make-granulate :jitter 0.0 :hop .006 :length .001 :ramp 0.0 :max-size 2200 :input  (lambda (dir) .1)))
@@ -18580,19 +18580,19 @@ EDITS: 2
 	       (set! (mus-length gen) (round (* base-len (env e))))
 	       result)))
 	  (let ((mx (maxamp)))
-	    (if (fneq mx 0.06) (snd-display ";granf 5 max: ~A" mx)))
+	    (if (fneq mx 0.06) (snd-display "granf 5 max: ~A" mx)))
 	  (if (> (abs (- (mus-length gen) (* 5 base-len))) 10)
-	      (snd-display ";granf 5 length: ~A ~A" (mus-length gen) (* 5 base-len)))))
+	      (snd-display "granf 5 length: ~A ~A" (mus-length gen) (* 5 base-len)))))
       (if (not (mus-arrays-equal? (channel->float-vector 0 30) 
 		       (float-vector 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 
 				     0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";granf 5 data: ~A" (channel->float-vector 0 30)))
+	  (snd-display "granf 5 data: ~A" (channel->float-vector 0 30)))
       (if (not (mus-arrays-equal? (channel->float-vector 440 30) 
 		       (float-vector 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 
 				     0.060 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";granf 5 data 440: ~A" (channel->float-vector 440 30)))
+	  (snd-display "granf 5 data 440: ~A" (channel->float-vector 440 30)))
       (if (not (mus-arrays-equal? (channel->float-vector 800 30) (make-float-vector 30 0.060)))
-	  (snd-display ";granf 5 data 800: ~A" (channel->float-vector 800 30)))
+	  (snd-display "granf 5 data 800: ~A" (channel->float-vector 800 30)))
       (undo)
       
       (let ((gen (make-granulate :jitter 0.0 :hop .006 :length .005 :ramp 0.0 :max-size 2200 :input (lambda (dir) .1)))
@@ -18604,15 +18604,15 @@ EDITS: 2
 	       (set! (mus-length gen) (round (* base-len (env e))))
 	       result)))
 	  (let ((mx (maxamp)))
-	    (if (fneq mx 0.06) (snd-display ";granf 6 max: ~A" mx)))
+	    (if (fneq mx 0.06) (snd-display "granf 6 max: ~A" mx)))
 	  (if (> (abs (- (mus-length gen) (* .2 base-len))) 4)
-	      (snd-display ";granf 6 length: ~A ~A" (mus-length gen) (* .2 base-len)))))
+	      (snd-display "granf 6 length: ~A ~A" (mus-length gen) (* .2 base-len)))))
       (if (not (mus-arrays-equal? (channel->float-vector 0 30) (make-float-vector 30 0.060)))
-	  (snd-display ";granf 6 data: ~A" (channel->float-vector 0 30)))
+	  (snd-display "granf 6 data: ~A" (channel->float-vector 0 30)))
       (if (not (mus-arrays-equal? (channel->float-vector 820 30) 
 		       (float-vector 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.060 0.000 0.000 
 				     0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";granf 6 data 820: ~A" (channel->float-vector 820 30)))
+	  (snd-display "granf 6 data 820: ~A" (channel->float-vector 820 30)))
       (undo)
       
       (let ((max-list (lambda ()
@@ -18631,7 +18631,7 @@ EDITS: 2
 	  (map-channel (lambda (y) (granulate gen)))
 	  (let ((vals (max-list)))
 	    (if (not (equal? vals '(11 231 451 671 891)))
-		(snd-display ";grn jitter 0 max: ~A" vals)))
+		(snd-display "grn jitter 0 max: ~A" vals)))
 	  (undo))
 	
 	(let ((oldvals #f))
@@ -18640,7 +18640,7 @@ EDITS: 2
 	    ;; (11 232 490 736 982) or whatever
 	    (let ((vals (max-list)))
 	      (if (equal? vals '(11 231 451 671 891))
-		  (snd-display ";grn jitter 0.3 max: ~A" vals))
+		  (snd-display "grn jitter 0.3 max: ~A" vals))
 	      (set! oldvals vals))
 	    (undo))
 	  
@@ -18648,7 +18648,7 @@ EDITS: 2
 	    (map-channel (lambda (y) (granulate gen)))
 	    (let ((vals (max-list)))
 	      (if (equal? vals oldvals)
-		  (snd-display ";grn jitter 0.3 max: ~A ~A" vals oldvals)))
+		  (snd-display "grn jitter 0.3 max: ~A ~A" vals oldvals)))
 	    (undo)))
 	
 	(let ((oldvals #f)
@@ -18664,7 +18664,7 @@ EDITS: 2
 	    (map-channel (lambda (y) (granulate gen))))
 	  (let ((vals (max-list)))
 	    (if (not (equal? vals oldvals))
-		(snd-display ";grn jitter 1.0 max with seed: ~A ~A" vals oldvals)))
+		(snd-display "grn jitter 1.0 max with seed: ~A ~A" vals oldvals)))
 	  (undo)))
       
       (let ((fname (file-name ind)))
@@ -18674,7 +18674,7 @@ EDITS: 2
 		   (view-files-dialog #f))
 	  (set! (view-files-files (view-files-dialog #f)) ())
 	  (if (pair? (view-files-files (view-files-dialog #f)))
-	      (snd-display ";set vf files list null: ~A" (view-files-files (view-files-dialog #f)))))))
+	      (snd-display "set vf files list null: ~A" (view-files-files (view-files-dialog #f)))))))
     
     ;; granulate with jitter=0, small hop (comb filter effect)
     (let* ((ind (new-sound "tmp.snd" 1 22050 mus-ldouble mus-next :size 10000))
@@ -18686,9 +18686,9 @@ EDITS: 2
 				:scaler 1.0
 				:jitter 0.0)))
       (clm-channel gen) ; -> .01 max (stable)
-      (if (fneq (maxamp) .01) (snd-display ";granulate stable 1: ~A" (maxamp)))
+      (if (fneq (maxamp) .01) (snd-display "granulate stable 1: ~A" (maxamp)))
       (let ((minval (scan-channel (lambda (y) (< y .0099)))))
-	(if minval (snd-display ";granulate stable 1 min: ~A" minval)))
+	(if minval (snd-display "granulate stable 1 min: ~A" minval)))
       (undo)
       (set! gen (make-granulate :expansion 20.0
 				:input (lambda (dir) .1)
@@ -18698,9 +18698,9 @@ EDITS: 2
 				:scaler 0.5
 				:jitter 0.0))
       (clm-channel gen) ; -> .05 max (stable)
-      (if (fneq (maxamp) .05) (snd-display ";granulate stable 2: ~A" (maxamp)))
+      (if (fneq (maxamp) .05) (snd-display "granulate stable 2: ~A" (maxamp)))
       (let ((minval (scan-channel (lambda (y) (< y .0499)))))
-	(if minval (snd-display ";granulate stable 2 min: ~A" minval)))
+	(if minval (snd-display "granulate stable 2 min: ~A" minval)))
       (undo)
       
       (set! gen (make-granulate :expansion 10.0
@@ -18711,9 +18711,9 @@ EDITS: 2
 				:scaler 1.0
 				:jitter 0.0))
       (clm-channel gen) ; -> .05 max (stable)
-      (if (fneq (maxamp) .05) (snd-display ";granulate stable 3: ~A" (maxamp)))
+      (if (fneq (maxamp) .05) (snd-display "granulate stable 3: ~A" (maxamp)))
       (let ((minval (scan-channel (lambda (y) (< y .0499)))))
-	(if minval (snd-display ";granulate stable 3 min: ~A ~A" minval (sample (cadr minval)))))
+	(if minval (snd-display "granulate stable 3 min: ~A ~A" minval (sample (cadr minval)))))
       (undo)
       
       (let ((ctr -0.0001))
@@ -18725,15 +18725,15 @@ EDITS: 2
 				  :scaler 1.0
 				  :jitter 0.0))
 	(clm-channel gen))
-      (if (fneq (maxamp) .462) (snd-display ";granulate ramped 4: ~A" (maxamp)))
+      (if (fneq (maxamp) .462) (snd-display "granulate ramped 4: ~A" (maxamp)))
       (let ((vals (count-matches (lambda (y) (> (abs y) 0.0)))))
-	(if (> (abs (- vals 1104)) 10) (snd-display ";granulate ramped 4 not 0.0: ~A" vals)))
+	(if (> (abs (- vals 1104)) 10) (snd-display "granulate ramped 4 not 0.0: ~A" vals)))
       (if (not (and (mus-arrays-equal? (channel->float-vector 2203 10)
 			    (float-vector 0.000 0.000 0.110 0.110 0.110 0.111 0.111 0.111 0.111 0.111))
 		    (mus-arrays-equal? (channel->float-vector 4523 10)
 			    (float-vector 0.232 0.232 0.232 0.232 0.232 0.232 0.232 0.232 0.233 0.233))
 		    (mus-arrays-equal? (channel->float-vector 8928 10) (make-float-vector 10 0.452))))
-	  (snd-display ";granulate ramped 4 data off: ~A ~A ~A" 
+	  (snd-display "granulate ramped 4 data off: ~A ~A ~A" 
 		       (channel->float-vector 2203 10) (channel->float-vector 4523 10) (channel->float-vector 8928 10)))
       (undo)
       
@@ -18746,7 +18746,7 @@ EDITS: 2
 				  :scaler 1.0
 				  :jitter 0.0))
 	(clm-channel gen))
-      (if (fneq (maxamp) .505) (snd-display ";granulate ramped 5: ~A" (maxamp)))
+      (if (fneq (maxamp) .505) (snd-display "granulate ramped 5: ~A" (maxamp)))
       (let ((mxoff 0.0)
 	    (cur 0.0)
 	    (incr (/ (maxamp) (framples))))
@@ -18755,7 +18755,7 @@ EDITS: 2
 			  (set! mxoff (max mxoff diff))
 			  (set! cur (+ cur incr))
 			  #f)))
-	(if (> mxoff .02) (snd-display ";granulate ramped 5 mxoff: ~A" mxoff))) ; .0108 actually
+	(if (> mxoff .02) (snd-display "granulate ramped 5 mxoff: ~A" mxoff))) ; .0108 actually
       (undo)
       
       (let ((e (make-env '(0 0 1 1) :length 10000)))
@@ -18767,12 +18767,12 @@ EDITS: 2
 				  :scaler 1.0
 				  :jitter 0.0))
 	(clm-channel gen))
-      (if (fneq (maxamp) .495) (snd-display ";granulate ramped 6: ~A" (maxamp)))
+      (if (fneq (maxamp) .495) (snd-display "granulate ramped 6: ~A" (maxamp)))
       (if (not (and (mus-arrays-equal? (channel->float-vector 2000 10)
 			    (float-vector 0.018 0.019 0.020 0.021 0.022 0.023 0.024 0.025 0.026 0.027))
 		    (mus-arrays-equal? (channel->float-vector 8000 10)
 			    (float-vector 0.294 0.298 0.301 0.305 0.309 0.313 0.316 0.320 0.324 0.328))))
-	  (snd-display ";granulate ramped 6 data: ~A ~A"
+	  (snd-display "granulate ramped 6 data: ~A ~A"
 		       (channel->float-vector 2000 10) (channel->float-vector 8000 10)))
       (undo)
       
@@ -18785,12 +18785,12 @@ EDITS: 2
 				  :scaler 1.0
 				  :jitter 0.0))
 	(clm-channel gen))
-      (if (fneq (maxamp) .505) (snd-display ";granulate ramped 7: ~A" (maxamp)))
+      (if (fneq (maxamp) .505) (snd-display "granulate ramped 7: ~A" (maxamp)))
       (if (not (and (mus-arrays-equal? (channel->float-vector 2000 10)
 			    (float-vector 0.037 0.039 0.040 0.042 0.044 0.046 0.048 0.050 0.052 0.054))
 		    (mus-arrays-equal? (channel->float-vector 8000 10)
 			    (float-vector 0.404 0.404 0.404 0.404 0.404 0.405 0.405 0.405 0.405 0.405))))
-	  (snd-display ";granulate ramped 7 data: ~A ~A"
+	  (snd-display "granulate ramped 7 data: ~A ~A"
 		       (channel->float-vector 2000 10) (channel->float-vector 8000 10)))
       (undo)
       
@@ -18803,7 +18803,7 @@ EDITS: 2
 				  :scaler 0.1
 				  :jitter 0.0))
 	(clm-channel gen))
-      (if (fneq (maxamp) .201) (snd-display ";granulate ramped 7: ~A" (maxamp)))
+      (if (fneq (maxamp) .201) (snd-display "granulate ramped 7: ~A" (maxamp)))
       (let ((mxoff 0.0)
 	    (cur 0.0)
 	    (incr (/ (maxamp) (framples))))
@@ -18812,7 +18812,7 @@ EDITS: 2
 			  (set! mxoff (max mxoff diff))
 			  (set! cur (+ cur incr))
 			  #f)))
-	(if (> mxoff .01) (snd-display ";granulate ramped 7 mxoff: ~A" mxoff))) ; .0097 actually
+	(if (> mxoff .01) (snd-display "granulate ramped 7 mxoff: ~A" mxoff))) ; .0097 actually
       (undo)
       
       (let ((e (make-env '(0 0 1 1) :length 10000)))
@@ -18824,7 +18824,7 @@ EDITS: 2
 				  :scaler 0.1
 				  :jitter 0.0))
 	(clm-channel gen))
-      (if (fneq (maxamp) .501) (snd-display ";granulate ramped 8: ~A" (maxamp)))
+      (if (fneq (maxamp) .501) (snd-display "granulate ramped 8: ~A" (maxamp)))
       (let ((cur (sample 2000)))
 	(let ((mxoff 0.0)
 	      (incr (/ (- (maxamp) cur) (- (framples) 2000))))
@@ -18834,7 +18834,7 @@ EDITS: 2
 			    (set! cur (+ cur incr))
 			    #f))
 			2000)
-	  (if (> mxoff .001) (snd-display ";granulate ramped 8 mxoff: ~A" mxoff))))
+	  (if (> mxoff .001) (snd-display "granulate ramped 8 mxoff: ~A" mxoff))))
       (undo)
       
       (let ((e (make-env '(0 0 1 1) :length 10000)))
@@ -18846,7 +18846,7 @@ EDITS: 2
 				  :scaler 0.025
 				  :jitter 0.0))
 	(clm-channel gen))
-      (if (fneq (maxamp) .433) (snd-display ";granulate ramped 9: ~A" (maxamp)))
+      (if (fneq (maxamp) .433) (snd-display "granulate ramped 9: ~A" (maxamp)))
       (undo)
       (close-sound ind))
     
@@ -18869,23 +18869,23 @@ EDITS: 2
 	  (print-and-check gen 
 			   "convolve"
 			   "convolve size: 64")
-	  (if (not (convolve? gen)) (snd-display ";~A not convolve?" gen))
-	  (if (equal? gen gen1) (snd-display ";convolve equal? ~A ~A" gen gen1))
-	  (if (not (= (mus-length gen) 64)) (snd-display ";convolve fft len: ~D?" (mus-length gen)))
+	  (if (not (convolve? gen)) (snd-display "~A not convolve?" gen))
+	  (if (equal? gen gen1) (snd-display "convolve equal? ~A ~A" gen gen1))
+	  (if (not (= (mus-length gen) 64)) (snd-display "convolve fft len: ~D?" (mus-length gen)))
 	  (do ((i 0 (+ i 1)))
 	      ((= i 128))
 	    (set! (v2 i) (convolve gen)))
 	  (fill-float-vector v21 (if (convolve? gen1) (convolve gen1) -1.0))
-	  (if (not (mus-arrays-equal? v2 v21)) (snd-display ";run gran: ~A ~A" v2 v21))
+	  (if (not (mus-arrays-equal? v2 v21)) (snd-display "run gran: ~A ~A" v2 v21))
 	  (if (or (fneq (v2 0) 0.0)
 		  (fneq (v2 1) 1.0)
 		  (fneq (v2 4) 0.25)
 		  (fneq (v2 7) 0.143))
-	      (snd-display ";convolve output: ~A?" v2)))
+	      (snd-display "convolve output: ~A?" v2)))
       
 	(convolve-files "oboe.snd" "fyow.snd" .5 "fmv.snd")
 	(if (fneq (cadr (mus-sound-maxamp "fmv.snd")) .5) 
-	    (snd-display ";convolve-files: ~A is not .5?" (cadr (mus-sound-maxamp "fmv.snd"))))
+	    (snd-display "convolve-files: ~A is not .5?" (cadr (mus-sound-maxamp "fmv.snd"))))
 	))
 
     (let ((flt (float-vector 1.0 0.5 0.1 0.2 0.3 0.4 0.5 1.0))
@@ -18900,40 +18900,40 @@ EDITS: 2
 	    ((= i 16))
 	  (set! (res i) (convolve g)))
 	(if (not (mus-arrays-equal? res (float-vector 0.0 1.0 0.5 0.1 1.2 0.8 0.5 0.7 1.3 0.4 0.5 1.0 0.0 0.0 0.0 0.0)))
-	    (snd-display ";convolve: ~A~%" res))))
+	    (snd-display "convolve: ~A~%" res))))
     
     (let ((ind (new-sound "fmv.snd")))
       (set! (sample 1) .1)
       (save-sound ind)
       (if (not (equal? (edits ind 0) '(0 0)))
-	  (snd-display ";weird: edits not cleared after save-sound?: ~A" (edits ind 0)))
+	  (snd-display "weird: edits not cleared after save-sound?: ~A" (edits ind 0)))
       (close-sound ind)
       (set! ind (open-sound "fmv.snd"))
       (if (not (= (framples ind 0) 2))
-	  (snd-display ";save-sound 2 samps: ~A?" (framples ind 0)))
+	  (snd-display "save-sound 2 samps: ~A?" (framples ind 0)))
       (if (or (fneq (sample 0) 0.0)
 	      (fneq (sample 1) 0.1))
-	  (snd-display ";save-sound: ~A ~A?" (sample 0) (sample 1)))
+	  (snd-display "save-sound: ~A ~A?" (sample 0) (sample 1)))
       (do ((i 3 (+ i 1)))
 	  ((= i 6))
 	(set! (sample i) (* i .1))
 	(save-sound ind)
 	(if (not (equal? (edits ind 0) '(0 0)))
-	    (snd-display ";weird: edits not cleared after save-sound ~A?: ~A" i (edits ind 0)))
+	    (snd-display "weird: edits not cleared after save-sound ~A?: ~A" i (edits ind 0)))
 	(close-sound ind)
 	(set! ind (open-sound "fmv.snd"))
 	(if (not (= (framples ind 0) (+ i 1)))
-	    (snd-display ";save-sound ~A samps: ~A?" (+ i 1) (framples ind 0)))
+	    (snd-display "save-sound ~A samps: ~A?" (+ i 1) (framples ind 0)))
 	(if (or (fneq (sample 0) 0.0)
 		(fneq (sample 1) 0.1)
 		(fneq (sample i) (* i 0.1)))
-	    (snd-display ";save-sound ~A: ~A ~A ~A?" i (sample 0) (sample 1) (sample i))))
+	    (snd-display "save-sound ~A: ~A ~A ~A?" i (sample 0) (sample 1) (sample i))))
       (close-sound ind))
     
     (let ((ind (new-sound "test.snd" :srate 22050 :channels 1 :size 1000)))
       (let ((gen (make-ssb-am 100.0)))
 	(map-channel (lambda (y) (ssb-am gen)))
-	(if (fneq (maxamp) 0.0) (snd-display ";ssb-am 0.0: ~A" (maxamp)))
+	(if (fneq (maxamp) 0.0) (snd-display "ssb-am 0.0: ~A" (maxamp)))
 	(let ((gen1 (make-oscil 220.0)))
 	  (map-channel (lambda (y) (* 0.5 (oscil gen1)))))
 	(set! gen (make-ssb-am 100.0 100))
@@ -18941,7 +18941,7 @@ EDITS: 2
 	(delete-samples 0 200)
 	(let ((gen1 (make-oscil 320.0 :initial-phase (asin (* 2 (sample 0)))))) ; depends on rising side
 	  (map-channel (lambda (y) (- y (* 0.5 (oscil gen1))))))
-	(if (> (maxamp) .004) (snd-display ";ssb-am cancelled: ~A" (maxamp)))
+	(if (> (maxamp) .004) (snd-display "ssb-am cancelled: ~A" (maxamp)))
 	(undo 3))
       (let ((gen (make-ssb-am 100.0 100))
 	    (hx (hz->radians 50.0)))
@@ -18949,7 +18949,7 @@ EDITS: 2
       (delete-samples 0 180)
       (let ((gen1 (make-oscil 370.0 :initial-phase (asin (* 2 (sample 0)))))) ; depends on rising side
 	(map-channel (lambda (y) (- y (* 0.5 (oscil gen1))))))
-      (if (> (maxamp) .004) (snd-display ";ssb-am fm cancelled: ~A" (maxamp)))
+      (if (> (maxamp) .004) (snd-display "ssb-am fm cancelled: ~A" (maxamp)))
       (close-sound ind))
     
     (let ((ind (new-sound "test.snd" :srate 22050 :channels 1 :size 1000)))
@@ -18961,37 +18961,37 @@ EDITS: 2
       (delete-samples 0 217)
       (let ((gen1 (make-oscil 882.0 :initial-phase (asin (sample 0)))))
 	(map-channel (lambda (y) (- y (oscil gen1))))
-	(if (> (maxamp) .04) (snd-display ";ssb-bank cancelled: ~A" (maxamp))))
+	(if (> (maxamp) .04) (snd-display "ssb-bank cancelled: ~A" (maxamp))))
       (close-sound ind))
     
     (when *output* 
-      (snd-display ";*output* ~A" *output*)
+      (snd-display "*output* ~A" *output*)
       (set! *output* #f))
     
     (let ((nind (new-sound "fmv.snd" 1 22050 mus-bshort mus-aifc "this is a comment")))
       (time (mix-float-vector (with-temp-sound (:output (make-float-vector 22050)) (fm-violin 0 1 440 .1)) 0 nind 0))
       (play nind :wait #t)
       (save-sound nind)
-      (if (not (sound? nind)) (snd-display ";save sound clobbered ~A?" nind))
+      (if (not (sound? nind)) (snd-display "save sound clobbered ~A?" nind))
       (let ((oboe-index (or (find-sound "oboe.snd") (open-sound "oboe.snd"))))
-	(if (equal? oboe-index nind) (snd-display ";find-sound found bogus case: ~A" oboe-index))
+	(if (equal? oboe-index nind) (snd-display "find-sound found bogus case: ~A" oboe-index))
 	(cnvtest oboe-index nind .1) 
 	(select-sound nind)
 	(select-channel 0)
-	(if (not (equal? (selected-sound) nind)) (snd-display ";selected-sound: ~A?" (selected-sound)))
-	(if (not (= (selected-channel) 0)) (snd-display ";selected-channel: ~A?" (selected-channel)))
+	(if (not (equal? (selected-sound) nind)) (snd-display "selected-sound: ~A?" (selected-sound)))
+	(if (not (= (selected-channel) 0)) (snd-display "selected-channel: ~A?" (selected-channel)))
 	(snd-test-jc-reverb 1.0 #f .1 #f) 
 	(play nind :wait #t)
 	(voiced->unvoiced 1.0 256 2.0 2.0) 
 	(pulse-voice 80 20.0 1.0 1024 0.01)
 	(map-channel (fltit))
 	(close-sound oboe-index))
-      (if (not (sound? nind)) (snd-display ";close sound clobbered ~A?" nind))
+      (if (not (sound? nind)) (snd-display "close sound clobbered ~A?" nind))
       (do ((fr (framples nind 0))
 	   (k 0 (+ k 1)))
 	  ((= k 10)
 	   (if (not (= (framples nind 0) (- fr 1000)))
-	       (snd-display ";delete-samples: ~A ~A" fr (framples nind 0))))
+	       (snd-display "delete-samples: ~A ~A" fr (framples nind 0))))
 	(delete-samples 10 100 nind 0)
 	(save-sound nind)) ;flush out memory leaks here
       (revert-sound nind)
@@ -19000,17 +19000,17 @@ EDITS: 2
     
     (let ((nind (new-sound "fmv.snd")))
       (if (not (= (header-type nind) *default-output-header-type*))
-	  (snd-display ";new-sound default header-type: ~A ~A?"
+	  (snd-display "new-sound default header-type: ~A ~A?"
 		       (mus-header-type-name (header-type nind))
 		       (mus-header-type-name *default-output-header-type*)))
       (if (not (= (sample-type nind) *default-output-sample-type*))
-	  (snd-display ";new-sound default sample-type: ~A ~A?"
+	  (snd-display "new-sound default sample-type: ~A ~A?"
 		       (mus-sample-type-name (sample-type nind))
 		       (mus-sample-type-name *default-output-sample-type*)))
       (if (not (= (chans nind) *default-output-chans*))
-	  (snd-display ";new-sound default chans: ~A ~A?" (chans nind) *default-output-chans*))
+	  (snd-display "new-sound default chans: ~A ~A?" (chans nind) *default-output-chans*))
       (if (not (= (srate nind) *default-output-srate*))
-	  (snd-display ";new-sound default srate: ~A ~A?" (srate nind) *default-output-srate*))
+	  (snd-display "new-sound default srate: ~A ~A?" (srate nind) *default-output-srate*))
       (close-sound nind)
       (if (file-exists? "fmv.snd") (delete-file "fmv.snd")))
     (let ((nind (new-sound "fmv.snd" 1 22050 mus-bshort mus-nist "this is a comment")))
@@ -19018,7 +19018,7 @@ EDITS: 2
       (start-progress-report nind)
       (convolve-with "oboe.snd") 
       (progress-report .1 nind)
-      (if (fneq (sample 1000) 0.223) (snd-display ";convolve-with: ~A?" (sample 1000)))
+      (if (fneq (sample 1000) 0.223) (snd-display "convolve-with: ~A?" (sample 1000)))
       (progress-report .3 nind)
       (revert-sound nind)
       (progress-report .5 nind)
@@ -19028,26 +19028,26 @@ EDITS: 2
       (smooth-sound 0 100) 
       (finish-progress-report nind)
       (if (or (fneq (sample 50) .5) (fneq (sample 30) 0.20608) (fneq (sample 90) 0.9755))
-	  (snd-display ";smooth: ~A ~A ~A?" (sample 50) (sample 30) (sample 90)))
+	  (snd-display "smooth: ~A ~A ~A?" (sample 50) (sample 30) (sample 90)))
       (undo) 
       (let-temporarily ((*sinc-width* 40))
 	(set! (sample 100) 0.5) 
-	(if (fneq (sample 100) 0.5) (snd-display ";set-sample 100: ~A?" (sample 100)))
+	(if (fneq (sample 100) 0.5) (snd-display "set-sample 100: ~A?" (sample 100)))
 	(src-sound .1) )
       (if (or (fneq (sample 1000) 0.5) (fneq (sample 1024) 0.0625) (fneq (sample 1010) 0.0))
-	  (snd-display ";src-sound: ~A ~A ~A?" (sample 1000) (sample 1024) (sample 1010)))
+	  (snd-display "src-sound: ~A ~A ~A?" (sample 1000) (sample 1024) (sample 1010)))
       (revert-sound)
       (close-sound nind))
     (let ((nind (new-sound "fmv.snd" 1 22050 mus-lshort mus-riff "this is a comment" 22050)))
-      (if (not (= (framples nind) 22050)) (snd-display "; new-sound initial-length: ~A" (framples nind)))
+      (if (not (= (framples nind) 22050)) (snd-display " new-sound initial-length: ~A" (framples nind)))
       (mix "pistol.snd") 
       (map-channel (expsrc 2.0 nind)) 
       (undo) 
       (let ((eds (edits)))
 	(if (not (= (car eds) 1 (cadr eds)))
-	    (snd-display ";undo edits: ~A?" eds))
+	    (snd-display "undo edits: ~A?" eds))
 	(if (not (= (edit-position) (car eds)))
-	    (snd-display ";undo edit-position: ~A ~A?" (edit-position) eds)))
+	    (snd-display "undo edit-position: ~A ~A?" (edit-position) eds)))
       (expsnd '(0 1 2 .4)) 
       (map-channel (comb-chord .95 100 .3)) 
       (map-channel (formants .99 900 .02 1800 .01 2700)) 
@@ -19055,15 +19055,15 @@ EDITS: 2
       (scale-to .3) 
       (let ((eds (edits)))
 	(if (not (and (= (car eds) 6) (= (cadr eds) 0)))
-	    (snd-display ";edits(6): ~A?" eds))
+	    (snd-display "edits(6): ~A?" eds))
 	(if (not (= (edit-position) (car eds)))
-	    (snd-display ";edit-position(6): ~A ~A?" (edit-position) eds)))
+	    (snd-display "edit-position(6): ~A ~A?" (edit-position) eds)))
       (set! (edit-position) 1)
       (if (not (= (edit-position) 1))
-	  (snd-display ";set edit-position(1) ~A?" (edit-position)))
+	  (snd-display "set edit-position(1) ~A?" (edit-position)))
       (set! (edit-position) 4)
       (if (not (= (edit-position) 4))
-	  (snd-display ";set edit-position(4): ~A?" (edit-position)))
+	  (snd-display "set edit-position(4): ~A?" (edit-position)))
       (revert-sound nind)
       (mix "pistol.snd") 
       (map-channel (zecho .5 .75 6 10.0) 0 65000) 
@@ -19077,7 +19077,7 @@ EDITS: 2
       (let ((mid (mix-sound "pistol.snd" 0)))
 	(if (and (mix? mid)
 		 (not (equal? (mix-home mid) (list (selected-sound) 0 #f 0))))
-	    (snd-display ";mix-sound mix-home: ~A" (mix-home mid))))
+	    (snd-display "mix-sound mix-home: ~A" (mix-home mid))))
       (hello-dentist 40.0 .1) 
       (fp 1.0 .3 20) 
       (revert-sound nind)
@@ -19094,7 +19094,7 @@ EDITS: 2
 	  (let ((new-len (framples ind 0))
 		(len 100))
 	    (if (> (abs (- (* 2 len) new-len)) 10)
-		(snd-display ";stretch-sound-via-dft: ~A ~A" len new-len)))
+		(snd-display "stretch-sound-via-dft: ~A ~A" len new-len)))
 	  (close-sound ind)))
     
     (let ((make-mix-output (lambda (name i)
@@ -19134,19 +19134,19 @@ EDITS: 2
 	       (i 0 (+ i 1))) 
 	      ((or (not happy) (= i 12)))
 	    (when(fneq (v0 i) (+ 0.1 (* i .01))) 
-	      (snd-display ";~D mus-file-mix(1->1): ~A?" k v0)
+	      (snd-display "~D mus-file-mix(1->1): ~A?" k v0)
 	      (set! happy #f)))
 
 	  (mus-file-mix-1 k (make-mix-input "fmv2.snd" k) 3 9 0 (float-vector 0.3 0.0 0.7 0.0))
 	  (file->array "fmv.snd" 0 0 12 v0)
 
 	  ;; v0: #(0.1 0.11 0.12 0.33 0.34 0.35 0.36 0.37 0.38 0.19 0.2 0.21)
-	  (if (or (fneq (v0 0) .1) (fneq (v0 3) .33) (fneq (v0 9) .19)) (snd-display ";~D mus-file-mix(2->1): ~A?" k v0))
+	  (if (or (fneq (v0 0) .1) (fneq (v0 3) .33) (fneq (v0 9) .19)) (snd-display "~D mus-file-mix(2->1): ~A?" k v0))
 	  (mus-file-mix-1 k (make-mix-input "fmv3.snd" k))
 	  (file->array "fmv.snd" 0 0 12 v0)
 
 	  ;; ?? v0: #(0.4 0.41 0.42 0.33 0.34 0.35 0.36 0.37 0.38 0.19 0.2 0.21)
-	  (if (or (fneq (v0 0) .4) (fneq (v0 3) .33)) (snd-display ";~D mus-file-mix(4->1): ~A?" k v0))
+	  (if (or (fneq (v0 0) .4) (fneq (v0 3) .33)) (snd-display "~D mus-file-mix(4->1): ~A?" k v0))
 	  (let ((vf (make-vector 1)))
 	    (let ((e0 (make-env '(0 0 1 1) :length 11))
 		  (vf1 (make-vector 1)))
@@ -19156,7 +19156,7 @@ EDITS: 2
 	    (file->array "fmv.snd" 0 0 12 v0)
 
 	    ;; ?? v0: #(0.4 0.42 0.44000000 0.36 0.38 0.4 0.42 0.44 0.46 0.28 0.3 0.31)
-	    (if (or (fneq (v0 0) .4) (fneq (v0 3) .360) (fneq (v0 9) .28)) (snd-display ";~D mus-file-mix(env): ~A?" k v0))
+	    (if (or (fneq (v0 0) .4) (fneq (v0 3) .360) (fneq (v0 9) .28)) (snd-display "~D mus-file-mix(env): ~A?" k v0))
 	    (mus-file-mix-1 k (make-mix-input "fmv2.snd" k) 0 12 0 (make-float-vector 4 1.0) vf))
 	  ;; clm2xen should protect us here
 	  (let ((vf (make-vector 2))
@@ -19173,7 +19173,7 @@ EDITS: 2
 			   (mus-file-mix-1 k (make-mix-input "fmv2.snd" k) 0 12 0 (make-float-vector 4 1.0) vf))
 			 (lambda args (car args)))))
 	      (if (not (eq? tag 'bad-type))
-		  (snd-display ";~D mix w oscil-vect: ~A" k tag)))
+		  (snd-display "~D mix w oscil-vect: ~A" k tag)))
 	    (set! (vf 0) vf1)
 	    (set! (vf 1) vf2)
 	    (let ((tag (catch #t
@@ -19183,7 +19183,7 @@ EDITS: 2
 			   (mus-file-mix-1 k (make-mix-input "fmv2.snd" k) 0 12 0 (make-float-vector 4 1.0) vf))
 			 (lambda args (car args)))))
 	      (if (not (eq? tag 'bad-type))
-		  (snd-display ";~D mix w oscil-env: ~A" k tag))))
+		  (snd-display "~D mix w oscil-env: ~A" k tag))))
 	  (delete-file "fmv.snd")
 	  (do ((i 0 (+ i 1))) ((= i 12)) (set! (v0 i) (* i .01)))
 	  (array->file "fmv.snd" v0 12 22050 4)
@@ -19191,17 +19191,17 @@ EDITS: 2
 	  (file->array "fmv.snd" 0 0 3 v0) ; chan 0 start 0 len 3
 
 	  ;; v0: #(0.1 0.14 0.18 0.03 0.04 0.05 0.06 0.070000000 0.08 0.09 0.1 0.11)
-	  (if (or (fneq (v0 0) .1) (fneq (v0 2) .18)) (snd-display ";~D mus-file-mix(1->4): ~A?" k v0))
+	  (if (or (fneq (v0 0) .1) (fneq (v0 2) .18)) (snd-display "~D mus-file-mix(1->4): ~A?" k v0))
 	  (mus-file-mix-1 k (make-mix-input "fmv2.snd" k)  0 3 0 (float-vector 0.3 0.0 0.7 0.0))
 	  (file->array "fmv.snd" 0 0 3 v0)
 
 	  ;; v0: #(0.3 0.34 0.38 0.03 0.04 0.05 0.06 0.070000000 0.08 0.09 0.1 0.11)
-	  (if (or (fneq (v0 0) .3) (fneq (v0 2) .38)) (snd-display ";~D mus-file-mix(2->4): ~A?" k v0))
+	  (if (or (fneq (v0 0) .3) (fneq (v0 2) .38)) (snd-display "~D mus-file-mix(2->4): ~A?" k v0))
 	  (mus-file-mix-1 k (make-mix-input "fmv3.snd" k) 0 2 0)
 	  (file->array "fmv.snd" 0 0 3 v0)
 
 	  ;;  v0: #(0.60000000 0.64000000 0.38 0.03 0.04 0.05 0.06 0.070000000 0.08 0.09 0.1 0.11)
-	  (if (or (fneq (v0 0) .6) (fneq (v0 2) .38)) (snd-display ";~D mus-file-mix(4->4): ~A?" k v0)))
+	  (if (or (fneq (v0 0) .6) (fneq (v0 2) .38)) (snd-display "~D mus-file-mix(4->4): ~A?" k v0)))
 	
 	(if (file-exists? "fmv.snd") (delete-file "fmv.snd"))
 	(let ((len (mus-sound-framples "oboe.snd")))
@@ -19219,7 +19219,7 @@ EDITS: 2
 		(ind-mix (open-sound "fmv.snd")))
 	    (if (not (mus-arrays-equal? (channel->float-vector 1000 10 ind-oboe)
 			     (float-vector-scale! (channel->float-vector 1000 10 ind-mix) (/ 1.0 2.5))))
-		(snd-display ";~D mus-file-mix 1 chan: ~A ~A" k
+		(snd-display "~D mus-file-mix 1 chan: ~A ~A" k
 			     (channel->float-vector 1000 10 ind-oboe)
 			     (channel->float-vector 1000 10 ind-mix)))
 	    (close-sound ind-oboe)
@@ -19228,7 +19228,7 @@ EDITS: 2
 	  (let ((len (mus-sound-framples "2.snd")))
 	    (array->file "fmv.snd" (make-float-vector 12) 12 22050 2)
 	    (if (not (= (mus-sound-chans "fmv.snd") 2))
-		(snd-display ";~D array->file chans? ~A" k (mus-sound-chans "fmv.snd")))
+		(snd-display "~D array->file chans? ~A" k (mus-sound-chans "fmv.snd")))
 	    (mus-file-mix-1 k (make-mix-input "2.snd" k))
 	    (mus-file-mix-1 k (make-mix-input "2.snd" k) 0 len 0 (float-vector 0.5 0.0 0.0 0.5))
 	    (let ((egen0 (make-vector 2))
@@ -19241,10 +19241,10 @@ EDITS: 2
 	      (mus-file-mix-1 k (make-mix-input "2.snd" k) 0 len 0 #f outv)))
 	  (let ((ind-mix (open-sound "fmv.snd")))
 	    (if (not (= (channels ind-mix) 2))
-		(snd-display ";~D fmv re-read chans? ~A ~A" k (mus-sound-chans "fmv.snd") (channels ind-mix)))
+		(snd-display "~D fmv re-read chans? ~A ~A" k (mus-sound-chans "fmv.snd") (channels ind-mix)))
 	    (if (not (mus-arrays-equal? (channel->float-vector 1000 10 ind-mix 0)
 			     (float-vector 0.003 0.010 0.012 0.011 0.008 0.004 0.002 0.002 0.007 0.017)))
-		(snd-display ";~D mus-file-mix 2 chan (2.snd written: ~A): ~A ~A" k
+		(snd-display "~D mus-file-mix 2 chan (2.snd written: ~A): ~A ~A" k
 			     (strftime "%d-%b %H:%M %Z" (localtime (mus-sound-write-date "2.snd")))
 			     (channel->float-vector 1000 10 ind-mix 0)
 			     (channel->float-vector 1000 10 ind-mix 1)))
@@ -19272,8 +19272,8 @@ EDITS: 2
       (let ((ind (find-sound "mix.snd")))
 	(if (sound? ind)
 	    (if (fneq (sample 100 ind) 0.5)
-		(snd-display ";mus-file-mix-with-envs 1: ~A" (sample 100 ind)))
-	    (snd-display ";mus-file-mix-with envs 1: no output? ~A" (map short-file-name (sounds)))))
+		(snd-display "mus-file-mix-with-envs 1: ~A" (sample 100 ind)))
+	    (snd-display "mus-file-mix-with envs 1: no output? ~A" (map short-file-name (sounds)))))
       
       (with-sound ("mix.snd")
 	(mus-file-mix-with-envs (vector (make-readin "flat.snd")) 0 1000 
@@ -19284,8 +19284,8 @@ EDITS: 2
       (let ((ind (find-sound "mix.snd")))
 	(if (sound? ind)
 	    (if (fneq (sample 100 ind) 0.1)
-		(snd-display ";mus-file-mix-with-envs 2: ~A" (sample 100 ind)))
-	    (snd-display ";mus-file-mix-with envs 2: no output? ~A" (map short-file-name (sounds)))))
+		(snd-display "mus-file-mix-with-envs 2: ~A" (sample 100 ind)))
+	    (snd-display "mus-file-mix-with envs 2: no output? ~A" (map short-file-name (sounds)))))
       
       (with-sound ("mix.snd" 2 :clipped #f)
 	(let ((rd (vector (make-readin "flat.snd") 
@@ -19300,10 +19300,10 @@ EDITS: 2
 	(if (sound? ind)
 	    (begin
 	      (if (fneq (sample 100 ind 0) 0.51)
-		  (snd-display ";mus-file-mix-with-envs 3 chan 0: ~A" (sample 100 ind 0)))
+		  (snd-display "mus-file-mix-with-envs 3 chan 0: ~A" (sample 100 ind 0)))
 	      (if (fneq (sample 100 ind 1) -0.41)
-		  (snd-display ";mus-file-mix-with-envs 3 chan 1: ~A" (sample 100 ind 1))))
-	    (snd-display ";mus-file-mix-with envs 3: no output? ~A" (map short-file-name (sounds)))))
+		  (snd-display "mus-file-mix-with-envs 3 chan 1: ~A" (sample 100 ind 1))))
+	    (snd-display "mus-file-mix-with envs 3: no output? ~A" (map short-file-name (sounds)))))
       
       (with-sound ("mix.snd" 2 :clipped #f)
 	(let ((rd (vector (make-readin "flat.snd")))
@@ -19315,10 +19315,10 @@ EDITS: 2
 	(if (sound? ind)
 	    (begin
 	      (if (fneq (sample 100 ind 0) 0.03)
-		  (snd-display ";mus-file-mix-with-envs 4 chan 0: ~A" (sample 100 ind 0)))
+		  (snd-display "mus-file-mix-with-envs 4 chan 0: ~A" (sample 100 ind 0)))
 	      (if (fneq (sample 100 ind 1) 0.36)
-		  (snd-display ";mus-file-mix-with-envs 4 chan 1: ~A" (sample 100 ind 1))))
-	    (snd-display ";mus-file-mix-with envs 4: no output? ~A" (map short-file-name (sounds)))))
+		  (snd-display "mus-file-mix-with-envs 4 chan 1: ~A" (sample 100 ind 1))))
+	    (snd-display "mus-file-mix-with envs 4: no output? ~A" (map short-file-name (sounds)))))
       
       (with-sound ("mix.snd" 1 :clipped #f)
 	(let ((rd (vector (make-readin "flat.snd")
@@ -19330,8 +19330,8 @@ EDITS: 2
       (let ((ind (find-sound "mix.snd")))
 	(if (sound? ind)
 	    (if (fneq (sample 100 ind) 0.39)
-		(snd-display ";mus-file-mix-with-envs 5: ~A" (sample 100 ind)))
-	    (snd-display ";mus-file-mix-with envs 5: no output? ~A" (map short-file-name (sounds)))))
+		(snd-display "mus-file-mix-with-envs 5: ~A" (sample 100 ind)))
+	    (snd-display "mus-file-mix-with envs 5: no output? ~A" (map short-file-name (sounds)))))
       
       (with-sound ("flat.snd") 
 	(outa 99 0.5)
@@ -19353,8 +19353,8 @@ EDITS: 2
       (let ((ind (find-sound "mix.snd")))
 	(if (sound? ind)
 	    (if (fneq (sample 200 ind) 0.5)
-		(snd-display ";mus-file-mix-with-envs 7: ~A" (sample 200 ind)))
-	    (snd-display ";mus-file-mix-with envs 7: no output? ~A" (map short-file-name (sounds)))))
+		(snd-display "mus-file-mix-with-envs 7: ~A" (sample 200 ind)))
+	    (snd-display "mus-file-mix-with envs 7: no output? ~A" (map short-file-name (sounds)))))
 
       (for-each close-sound (sounds))
       (delete-file "flat.snd")
@@ -19364,9 +19364,9 @@ EDITS: 2
 
     (let* ((gen (make-phase-vocoder #f 512 4 256 1.0 #f #f #f))
 	   (val (catch #t (lambda () (phase-vocoder gen)) (lambda args (car args)))))
-      (if (fneq val 0.0) (snd-display ";simple no-in pv call: ~A" val))
+      (if (fneq val 0.0) (snd-display "simple no-in pv call: ~A" val))
       (set! val (catch #t (lambda () (set! gen (make-phase-vocoder :fft-size 1234))) (lambda args (car args))))
-      (if (not (eq? val 'out-of-range)) (snd-display ";pv bad fft: ~A" val))
+      (if (not (eq? val 'out-of-range)) (snd-display "pv bad fft: ~A" val))
       )
     
     (let* ((ind (open-sound "oboe.snd"))
@@ -19378,30 +19378,30 @@ EDITS: 2
 				   #f ;no change to edits
 				   #f ;no change to synthesis
 				   )))
-      (if (not (phase-vocoder? pv)) (snd-display ";~A not phase-vocoder?" pv))
+      (if (not (phase-vocoder? pv)) (snd-display "~A not phase-vocoder?" pv))
       (print-and-check pv 
 		       "phase-vocoder"
 		       "phase-vocoder outctr: 128, interp: 128, filptr: 0, N: 512, D: 128, in_data: nil")
       (let ((val (let ((pv (make-phase-vocoder))) (set! (mus-location pv) 120) (mus-location pv))))
-	(if (not (= val 120)) (snd-display ";pv set outctr: ~A" val)))
+	(if (not (= val 120)) (snd-display "pv set outctr: ~A" val)))
       
       (select-sound ind)
       (map-channel (lambda (val) (phase-vocoder pv)))
       (float-vector-set! (phase-vocoder-amp-increments pv) 0 .1)
       (if (fneq ((phase-vocoder-amp-increments pv) 0) .1)
-	  (snd-display ";set phase-vocoder-amp-increments: ~A?" ((phase-vocoder-amp-increments pv) 0)))
+	  (snd-display "set phase-vocoder-amp-increments: ~A?" ((phase-vocoder-amp-increments pv) 0)))
       (float-vector-set! (phase-vocoder-amps pv) 0 .1)
       (if (fneq ((phase-vocoder-amps pv) 0) .1)
-	  (snd-display ";set phase-vocoder-amps: ~A?" ((phase-vocoder-amps pv) 0)))
+	  (snd-display "set phase-vocoder-amps: ~A?" ((phase-vocoder-amps pv) 0)))
       (float-vector-set! (phase-vocoder-phases pv) 0 .1)
       (if (fneq ((phase-vocoder-phases pv) 0) .1)
-	  (snd-display ";set phase-vocoder-phases: ~A?" ((phase-vocoder-phases pv) 0)))
+	  (snd-display "set phase-vocoder-phases: ~A?" ((phase-vocoder-phases pv) 0)))
       (float-vector-set! (phase-vocoder-phase-increments pv) 0 .1)
       (if (fneq ((phase-vocoder-phase-increments pv) 0) .1)
-	  (snd-display ";set phase-vocoder-phase-increments: ~A?" ((phase-vocoder-phase-increments pv) 0)))
+	  (snd-display "set phase-vocoder-phase-increments: ~A?" ((phase-vocoder-phase-increments pv) 0)))
       (float-vector-set! (phase-vocoder-freqs pv) 0 .1)
       (if (fneq ((phase-vocoder-freqs pv) 0) .1)
-	  (snd-display ";set phase-vocoder-freqs: ~A?" ((phase-vocoder-freqs pv) 0)))
+	  (snd-display "set phase-vocoder-freqs: ~A?" ((phase-vocoder-freqs pv) 0)))
       (undo 1)
       (free-sampler reader)
       (set! reader (make-sampler 0))
@@ -19467,32 +19467,32 @@ EDITS: 2
 	(free-sampler reader)
 	(if (or (= incalls 0)
 		(= outcalls 0))
-	    (snd-display ";phase-vocoder incalls: ~A, outcalls: ~A" incalls outcalls)))
+	    (snd-display "phase-vocoder incalls: ~A, outcalls: ~A" incalls outcalls)))
       (let ((tag (catch #t 
 		   (lambda () (make-phase-vocoder #f 512 4 256 1.0 (lambda (a b c) #f) #f #f)) 
 		   (lambda args args))))
-	(if (not (eq? (car tag) 'bad-arity)) (snd-display ";make-phase-vocoder bad analyze func: ~A" tag)))
+	(if (not (eq? (car tag) 'bad-arity)) (snd-display "make-phase-vocoder bad analyze func: ~A" tag)))
       (let ((tag (catch #t
 		   (lambda () (make-phase-vocoder #f 512 4 256 1.0 (lambda (a b) 0.0) (lambda (a b c) #f) #f)) 
 		   (lambda args args))))
-	(if (not (eq? (car tag) 'bad-arity)) (snd-display ";make-phase-vocoder bad edit func: ~A" tag)))
+	(if (not (eq? (car tag) 'bad-arity)) (snd-display "make-phase-vocoder bad edit func: ~A" tag)))
       (let ((tag (catch #t 
 		   (lambda () (make-phase-vocoder #f 512 4 256 1.0 (lambda (a b) 0.0) (lambda (a) #f) (lambda (a b) 0)))
 		   (lambda args args))))
-	(if (not (eq? (car tag) 'bad-arity)) (snd-display ";make-phase-vocoder bad synthesize func: ~A" tag)))
+	(if (not (eq? (car tag) 'bad-arity)) (snd-display "make-phase-vocoder bad synthesize func: ~A" tag)))
       (let* ((geno (make-phase-vocoder (lambda (dir) 0.0)))
 	     (genx (make-phase-vocoder :input (lambda (dir) 0.0))))
-	(if (equal? geno genx) (snd-display ";phase-vocoder equal? ~A ~A" geno genx))
-	(if (fneq (mus-frequency genx) 1.0) (snd-display ";mus-frequency phase-vocoder: ~A" (mus-frequency genx)))
+	(if (equal? geno genx) (snd-display "phase-vocoder equal? ~A ~A" geno genx))
+	(if (fneq (mus-frequency genx) 1.0) (snd-display "mus-frequency phase-vocoder: ~A" (mus-frequency genx)))
 	(set! (mus-frequency genx) 2.0)
-	(if (fneq (mus-frequency genx) 2.0) (snd-display ";set mus-frequency phase-vocoder: ~A" (mus-frequency genx)))
-	(if (fneq (mus-increment genx) 128) (snd-display ";mus-increment phase-vocoder: ~A" (mus-increment genx)))
+	(if (fneq (mus-frequency genx) 2.0) (snd-display "set mus-frequency phase-vocoder: ~A" (mus-frequency genx)))
+	(if (fneq (mus-increment genx) 128) (snd-display "mus-increment phase-vocoder: ~A" (mus-increment genx)))
 	(set! (mus-increment genx) 256)
-	(if (fneq (mus-increment genx) 256) (snd-display ";set mus-increment phase-vocoder: ~A" (mus-increment genx)))
-	(if (not (= (mus-hop genx) 128)) (snd-display ";phase vocoder hop: ~A" (mus-hop genx)))
+	(if (fneq (mus-increment genx) 256) (snd-display "set mus-increment phase-vocoder: ~A" (mus-increment genx)))
+	(if (not (= (mus-hop genx) 128)) (snd-display "phase vocoder hop: ~A" (mus-hop genx)))
 	(set! (mus-hop genx) 64)
-	(if (not (= (mus-hop genx) 64)) (snd-display ";set phase vocoder hop: ~A" (mus-hop genx)))
-	(if (not (= (mus-length genx) 512)) (snd-display ";phase vocoder length: ~A" (mus-length genx))))
+	(if (not (= (mus-hop genx) 64)) (snd-display "set phase vocoder hop: ~A" (mus-hop genx)))
+	(if (not (= (mus-length genx) 512)) (snd-display "phase vocoder length: ~A" (mus-length genx))))
       (close-sound ind))
     
     (let-temporarily ((*mus-float-equal-fudge-factor* 1e-5)) ; some phase-vocoder tests
@@ -19506,7 +19506,7 @@ EDITS: 2
 		(v0 (float-vector 0.00022 0.00130 0.00382 0.00810 0.01381 0.01960 0.02301 0.02143 0.01421 0.00481 0.00000 0.00396 0.01168 0.01231 0.00413 0.00018 0.00704 0.00984 0.00189 0.00197 0.00881 0.00290 0.00151 0.00781 0.00091 0.00404 0.00498 0.00047 0.00641 -0.00017 0.00590 0.00006 0.00492 0.00031 0.00380 0.00052 0.00290 0.00066 0.00219 0.00074 0.00164 0.00076 0.00123 0.00074 0.00092 0.00067 0.00069 0.00058 0.00052 0.00048)))
 	    (if (not (or (mus-arrays-equal? v v0)
 			 (mus-arrays-equal? (float-vector-scale! v -1.0) v0))) 
-		(snd-display ";pv 1 diff: ~A" (float-vector-peak (float-vector-subtract! v v0)))))
+		(snd-display "pv 1 diff: ~A" (float-vector-peak (float-vector-subtract! v v0)))))
 	  (undo))
 
 	(let ((pv (make-phase-vocoder (let ((rd (make-sampler)))
@@ -19516,7 +19516,7 @@ EDITS: 2
 	  (let ((v (channel->float-vector 0 50))
 		(v0 (float-vector 0.00044 0.00255 0.00705 0.01285 0.01595 0.01177 0.00281 0.00069 0.00782 0.00702 0.00001 0.00584 0.00385 0.00138 0.00547 0.00035 0.00494 0.00082 0.00305 0.00310 0.00003 0.00380 0.00245 -0.00019 0.00159 0.00348 0.00268 0.00087 -0.00020 -0.00036 -0.00010 0.00012 0.00036 0.00057 0.00075 0.00089 0.00099 0.00105 0.00108 0.00107 0.00104 0.00099 0.00094 0.00087 0.00080 0.00073 0.00066 0.00059 0.00053 0.00047)))
 	    (if (not (mus-arrays-equal? v v0))
-		(snd-display ";pv 2 diff: ~A" (float-vector-peak (float-vector-subtract! v v0)))))
+		(snd-display "pv 2 diff: ~A" (float-vector-peak (float-vector-subtract! v v0)))))
 	  (undo))
 	
 	(let ((pv (make-phase-vocoder (let ((rd (make-sampler)))
@@ -19526,7 +19526,7 @@ EDITS: 2
 	  (let ((v (channel->float-vector 0 50))
 		(v0 (float-vector 0.00011 0.00065 0.00195 0.00428 0.00785 0.01266 0.01845 0.02456 0.02989 0.03305 0.03267 0.02803 0.01970 0.00993 0.00228 0.00009 0.00441 0.01250 0.01858 0.01759 0.00975 0.00160 0.00079 0.00795 0.01454 0.01201 0.00325 0.00024 0.00716 0.01261 0.00704 0.00003 0.00384 0.00962 0.00620 0.00027 0.00196 0.00655 0.00492 0.00040 0.00101 0.00448 0.00375 0.00041 0.00053 0.00305 0.00273 0.00033 0.00029 0.00204)))
 	    (if (not (mus-arrays-equal? v v0))
-		(snd-display ";pv 3 diff: ~A" (float-vector-peak (float-vector-subtract! v v0)))))
+		(snd-display "pv 3 diff: ~A" (float-vector-peak (float-vector-subtract! v v0)))))
 	  (undo))
 	
 	(let ((pv (make-phase-vocoder (let ((rd (make-sampler)))
@@ -19536,7 +19536,7 @@ EDITS: 2
 	  (let ((v (channel->float-vector 0 100))
 		(v0 (float-vector 0.00005 0.00033 0.00098 0.00214 0.00392 0.00633 0.00923 0.01228 0.01495 0.01652 0.01633 0.01401 0.00985 0.00497 0.00114 0.00004 0.00221 0.00625 0.00929 0.00880 0.00488 0.00080 0.00040 0.00397 0.00727 0.00601 0.00162 0.00012 0.00358 0.00630 0.00352 0.00002 0.00217 0.00552 0.00300 -0.00008 0.00299 0.00479 0.00083 0.00098 0.00457 0.00175 0.00033 0.00412 0.00172 0.00039 0.00399 0.00087 0.00118 0.00356 -0.00016 0.00280 0.00169 0.00051 0.00326 -0.00030 0.00301 0.00040 0.00184 0.00144 0.00078 0.00213 0.00015 0.00242 -0.00017 0.00240 -0.00038 0.00230 -0.00049 0.00214 -0.00053 0.00194 -0.00051 0.00172 -0.00047 0.00150 -0.00040 0.00127 -0.00033 0.00106 -0.00025 0.00086 -0.00019 0.00068 -0.00013 0.00052 -0.00008 0.00039 -0.00005 0.00027 -0.00002 0.00017 -0.00001 0.00009 -0.00000 0.00003 -0.00000 -0.00002 -0.00001 -0.00006)))
 	    (if (not (mus-arrays-equal? v v0))
-		(snd-display ";pv 4 diff: ~A" (float-vector-peak (float-vector-subtract! v v0)))))
+		(snd-display "pv 4 diff: ~A" (float-vector-peak (float-vector-subtract! v v0)))))
 	  (undo))
 	
 	(set! (sample 10) 1.0)
@@ -19548,7 +19548,7 @@ EDITS: 2
 	  (let ((v (channel->float-vector 0 100))
 		(v0 (float-vector 0.00100 0.00598 0.01756 0.03708 0.06286 0.08826 0.10172 0.09163 0.05680 0.01564 -0.00075 0.02124 0.05164 0.04457 0.00861 0.00529 0.03648 0.02747 -0.00875 0.00936 0.02402 -0.00553 -0.00090 -0.02262 -0.00221 0.06633 -0.03229 0.01861 0.05228 0.00672 0.00885 0.01442 -0.00484 -0.02293 -0.01893 -0.02256 -0.10229 -0.22474 0.31110 0.07597 0.07127 0.03670 0.02583 0.03173 0.02260 0.01550 0.01485 0.03212 -0.00966 0.00779 -0.00964 0.00698 0.01100 0.00468 0.00107 0.00517 0.00469 0.00131 0.00058 0.00530 0.00582 -0.00652 0.00011 0.00000 -0.00000 -0.00000 -0.00000 0.00000 -0.00000 0.00000 0.00000 -0.00000 -0.00000 -0.00000 -0.00000 -0.00000 -0.00000 0.00000 -0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 -0.00000 -0.00000 -0.00000 0.00000 0.00000 0.00000 -0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000)))
 	    (if (not (mus-arrays-equal? v v0))
-		(snd-display ";pv 5 diff: ~A" (float-vector-peak (float-vector-subtract! v v0)))))
+		(snd-display "pv 5 diff: ~A" (float-vector-peak (float-vector-subtract! v v0)))))
 	  (undo))
 	
 	(set! (sample 40) 1.0)
@@ -19560,7 +19560,7 @@ EDITS: 2
 	  (let ((v (channel->float-vector 0 100))
 		(v0 (float-vector 0.00332 0.01977 0.05805 0.12252 0.20738 0.29035 0.33291 0.29696 0.18017 0.04637 -0.00003 0.08250 0.18618 0.15495 0.02775 0.02252 0.13597 0.09767 -0.03116 0.05301 0.10256 -0.05005 0.01966 0.06176 -0.04418 0.04118 -0.11409 -0.04115 -0.05157 -0.11409 0.07815 -0.08155 -0.00536 0.02090 -0.18804 -0.10686 -0.11931 -0.42989 0.39009 0.03157 0.14253 0.05984 0.05439 0.00764 0.02636 -0.02799 -0.01346 -0.01011 -0.04925 -0.02896 -0.07812 -0.07880 -0.11338 -0.13133 -0.41421 0.38140 0.08676 0.07712 0.00983 0.03731 0.01585 0.00108 0.00101 0.00282 -0.01106 -0.00403 -0.02165 -0.02054 -0.02452 -0.02382 -0.03213 -0.02693 -0.03734 -0.03978 -0.04879 -0.07504 -0.09597 -0.31426 0.32995 0.13460 0.04120 0.05029 0.01900 0.02517 0.01163 0.01294 0.00827 0.00576 0.00640 0.00141 0.00489 -0.00057 0.00301 -0.00089 0.00099 -0.00000 0.00000 -0.00000 -0.00000 -0.00000)))
 	    (if (not (mus-arrays-equal? v v0))
-		(snd-display ";pv 6 diff: ~A" (float-vector-peak (float-vector-subtract! v v0)))))
+		(snd-display "pv 6 diff: ~A" (float-vector-peak (float-vector-subtract! v v0)))))
 	  (close-sound ind))))
       
     (let ()
@@ -19616,20 +19616,20 @@ EDITS: 2
 	(do ((i 55 (+ i 1)))
 	    ((= i 65))
 	  (if (> (abs (- (v i) .196)) .01)
-	      (snd-display ";pvoc-d at ~D: ~A~%" i (v i))))
+	      (snd-display "pvoc-d at ~D: ~A~%" i (v i))))
 	(do ((i 75 (+ i 1)))
 	    ((= i 85))
 	  (if (> (abs (+ (v i) .196)) .01)
-	      (snd-display ";pvoc-d at ~D: ~A~%" i (v i)))))
+	      (snd-display "pvoc-d at ~D: ~A~%" i (v i)))))
       )
 
     (let ((ind (open-sound "oboe.snd")))
       (let ((gen (make-moog-filter 500.0 .1)))
-	(if (fneq 500.0 (moog-frequency gen)) (snd-display ";moog freq: ~A" (moog-frequency gen))) ; moog-frequency is a separate function
-	(if (fneq .1 (gen 'Q)) (snd-display ";moog Q: ~A" (gen 'Q)))
-;	(if (not (float-vector? (gen 's))) (snd-display ";moog state: ~A" (gen 's)))
-	(if (fneq 0.0 (gen 'y)) (snd-display ";moog A? ~A" (gen 'y)))
-	(if (fneq -0.861 (gen 'fc)) (snd-display ";moog freqtable: ~A" (gen 'fc)))
+	(if (fneq 500.0 (moog-frequency gen)) (snd-display "moog freq: ~A" (moog-frequency gen))) ; moog-frequency is a separate function
+	(if (fneq .1 (gen 'Q)) (snd-display "moog Q: ~A" (gen 'Q)))
+;	(if (not (float-vector? (gen 's))) (snd-display "moog state: ~A" (gen 's)))
+	(if (fneq 0.0 (gen 'y)) (snd-display "moog A? ~A" (gen 'y)))
+	(if (fneq -0.861 (gen 'fc)) (snd-display "moog freqtable: ~A" (gen 'fc)))
 	(let ((vals (make-float-vector 20)))
 	  (set! (vals 0) (moog-filter gen 1.0))
 	  (do ((i 1 (+ i 1)))
@@ -19637,7 +19637,7 @@ EDITS: 2
 	    (set! (vals i) (moog-filter gen 0.0)))
 	  (if (not (mus-arrays-equal? vals (float-vector 0.0    0.0    0.0025 0.0062 0.0120 0.0198 0.0292 0.0398 0.0510 0.0625
 				     0.0739 0.0847 0.0946 0.1036 0.1113 0.1177 0.1228 0.1266 0.1290 0.1301)))
-	      (snd-display ";moog output: ~A" vals))))
+	      (snd-display "moog output: ~A" vals))))
       (close-sound ind))
     
     (let ((gen (make-ssb-am 440.0)))
@@ -19653,17 +19653,17 @@ EDITS: 2
 	    ((= i 10))
 	  (set! (v0 i) (ssb-am gen)))
 	(fill-float-vector v1 (if (ssb-am? gen1) (ssb-am gen1) -1.0))
-	(if (not (mus-arrays-equal? v0 v1)) (snd-display ";map ssb-am: ~A ~A" v0 v1)))
-      (if (not (ssb-am? gen)) (snd-display ";~A not ssb-am?" gen))
-      (if (fneq (mus-phase gen) 1.253787) (snd-display ";ssb-am phase: ~F?" (mus-phase gen)))
-      (if (fneq (mus-frequency gen) 440.0) (snd-display ";ssb-am frequency: ~F?" (mus-frequency gen)))
-      (if (not (= (mus-order gen) 41)) (snd-display ";ssb-am order: ~F?" (mus-order gen)))
-      (if (not (= (mus-length gen) 41)) (snd-display ";ssb-am length: ~D?" (mus-length gen)))
-      (if (not (= (mus-interp-type gen) mus-interp-none)) (snd-display ";ssb-am interp type: ~D?" (mus-interp-type gen)))
-      (if (fneq (mus-xcoeff gen 0) -0.00124) (snd-display ";ssb-am xcoeff 0: ~A" (mus-xcoeff gen 0)))
-      (if (fneq (mus-xcoeff gen 1) 0.0) (snd-display ";ssb-am xcoeff 1: ~A" (mus-xcoeff gen 1)))
-					;	(if (not (float-vector? (mus-data gen))) (snd-display ";mus-data ssb-am: ~A" (mus-data gen)))
-					;	(if (not (float-vector? (mus-xcoeffs gen))) (snd-display ";mus-xcoeffs ssb-am: ~A" (mus-xcoeffs gen)))
+	(if (not (mus-arrays-equal? v0 v1)) (snd-display "map ssb-am: ~A ~A" v0 v1)))
+      (if (not (ssb-am? gen)) (snd-display "~A not ssb-am?" gen))
+      (if (fneq (mus-phase gen) 1.253787) (snd-display "ssb-am phase: ~F?" (mus-phase gen)))
+      (if (fneq (mus-frequency gen) 440.0) (snd-display "ssb-am frequency: ~F?" (mus-frequency gen)))
+      (if (not (= (mus-order gen) 41)) (snd-display "ssb-am order: ~F?" (mus-order gen)))
+      (if (not (= (mus-length gen) 41)) (snd-display "ssb-am length: ~D?" (mus-length gen)))
+      (if (not (= (mus-interp-type gen) mus-interp-none)) (snd-display "ssb-am interp type: ~D?" (mus-interp-type gen)))
+      (if (fneq (mus-xcoeff gen 0) -0.00124) (snd-display "ssb-am xcoeff 0: ~A" (mus-xcoeff gen 0)))
+      (if (fneq (mus-xcoeff gen 1) 0.0) (snd-display "ssb-am xcoeff 1: ~A" (mus-xcoeff gen 1)))
+					;	(if (not (float-vector? (mus-data gen))) (snd-display "mus-data ssb-am: ~A" (mus-data gen)))
+					;	(if (not (float-vector? (mus-xcoeffs gen))) (snd-display "mus-xcoeffs ssb-am: ~A" (mus-xcoeffs gen)))
       ;; these apparently aren't handled in clm2xen
       )
     
@@ -19678,7 +19678,7 @@ EDITS: 2
 	       (o1o (ssb-am o1 inval))
 	       (o2o (ssb-am-1 o2 inval)))
 	  (when (fneq o1o o2o)
-	    (snd-display ";ssb-am (up): ~A ~A at ~A" o1o o2o i)
+	    (snd-display "ssb-am (up): ~A ~A at ~A" o1o o2o i)
 	    (set! happy #f)))))
     
     (let ((o1 (make-ssb-am 400.0))
@@ -19691,7 +19691,7 @@ EDITS: 2
 	       (o1o (ssb-am o1 inval fmval))
 	       (o2o (ssb-am-1 o2 inval fmval)))
 	  (when (fneq o1o o2o)
-	    (snd-display ";ssb-am + fm (up): ~A ~A at ~A" o1o o2o i)
+	    (snd-display "ssb-am + fm (up): ~A ~A at ~A" o1o o2o i)
 	    (set! happy #f)))))
     
     (let ((o1 (make-ssb-am -100.0))
@@ -19703,7 +19703,7 @@ EDITS: 2
 	       (o1o (ssb-am o1 inval))
 	       (o2o (ssb-am-1 o2 inval)))
 	  (when (fneq o1o o2o)
-	    (snd-display ";ssb-am (down): ~A ~A at ~A" o1o o2o i)
+	    (snd-display "ssb-am (down): ~A ~A at ~A" o1o o2o i)
 	    (set! happy #f)))))
     
     (let ((o1 (make-ssb-am 1000.0 100))
@@ -19715,7 +19715,7 @@ EDITS: 2
 	       (o1o (ssb-am o1 inval))
 	       (o2o (ssb-am-1 o2 inval)))
 	  (when (fneq o1o o2o)
-	    (snd-display ";ssb-am (down): ~A ~A at ~A" o1o o2o i)
+	    (snd-display "ssb-am (down): ~A ~A at ~A" o1o o2o i)
 	    (set! happy #f)))))
     
     (let ((index (open-sound "pistol.snd"))
@@ -19724,16 +19724,16 @@ EDITS: 2
       (let ((scl (maxamp)))
 	(convolve-with "oboe.snd" scl index 0 0)
 	(if (ffneq (maxamp) scl)
-	    (snd-display ";convolve-with amps: ~A ~A" (maxamp) scl)))
+	    (snd-display "convolve-with amps: ~A ~A" (maxamp) scl)))
       (revert-sound index)
       (agc)
-      (if (fneq (maxamp index 0) 1.29) (snd-display ";agc: ~A" (maxamp index 0)))
+      (if (fneq (maxamp index 0) 1.29) (snd-display "agc: ~A" (maxamp index 0)))
       (close-sound index)
       (let ((reader (make-sampler 0 "pistol.snd")))
 	(do ((i 0 (+ i 1)))
 	    ((= i 10))
 	  (if (fneq (data i) (next-sample reader))
-	      (snd-display ";external reader trouble")))
+	      (snd-display "external reader trouble")))
 	(free-sampler reader)))
     
     (let ((make-procs (vector
@@ -19790,28 +19790,28 @@ EDITS: 2
       (for-each
        (lambda (make runp ques arg name)
 	 (let ((gen (make)))
-	   (if (not (ques gen)) (snd-display ";~A: ~A -> ~A?" name make gen))
+	   (if (not (ques gen)) (snd-display "~A: ~A -> ~A?" name make gen))
 	   (let ((tag (catch #t (lambda () (if arg (runp gen arg) (runp gen))) (lambda args args))))
 	     (if (not (or (number? tag)
 			  (float-vector? tag)))
-		 (snd-display ";~A: ~A ~A ~A: ~A" name runp gen arg tag)))
+		 (snd-display "~A: ~A ~A ~A: ~A" name runp gen arg tag)))
 	   (for-each
 	    (lambda (func genname)
 	      (let ((tag (catch #t (lambda () (func #f)) (lambda args (car args)))))
 		(if (not (eq? tag 'wrong-type-arg))
-		    (snd-display ";generic func with #f: (~A #f) -> ~A" genname tag)))
+		    (snd-display "generic func with #f: (~A #f) -> ~A" genname tag)))
 	      (let ((g1 (make-oscil))
 		    (g2 (make-one-pole .1 .9)))
 		(let ((tag (catch #t (lambda () (func g1)) (lambda args (car args)))))
 		  (if (and (symbol? tag)
 			   (not (eq? tag 'wrong-type-arg))
 			   (not (eq? tag 'mus-error)))
-		      (snd-display ";generic ~A of oscil: ~A" genname tag)))
+		      (snd-display "generic ~A of oscil: ~A" genname tag)))
 		(let ((tag (catch #t (lambda () (func g2)) (lambda args (car args)))))
 		  (if (and (symbol? tag)
 			   (not (eq? tag 'wrong-type-arg))
 			   (not (eq? tag 'mus-error)))
-		      (snd-display ";generic ~A of delay: ~A" genname tag))))
+		      (snd-display "generic ~A of delay: ~A" genname tag))))
 	      (let ((tag (catch #t (lambda () (func gen)) (lambda args (car args)))))
 		(if (and (not (symbol? tag))
 			 (dilambda? func)
@@ -19821,7 +19821,7 @@ EDITS: 2
 		      (if (and (symbol? tag1)
 			       (not (eq? tag1 'mus-error))
 			       (not (eq? tag1 'out-of-range)))
-			  (snd-display ";~A set ~A ~A ~A -> ~A" name genname gen tag tag1))))))
+			  (snd-display "~A set ~A ~A ~A -> ~A" name genname gen tag tag1))))))
 	    generic-procs generic-names)
 	   (mus-reset gen)))
        make-procs gen-procs ques-procs gen-args func-names)
@@ -19894,16 +19894,16 @@ EDITS: 2
 		   (let ((first-val (if k0 (runp gen 1.0) (mus-apply gen 1.0 0.0))))
 		     (if (not (= (data 0) 0.0)) (set! not-zero #t))
 		     (if (fneq (data 0) first-val)
-			 (snd-display ";[~A] ~A: ~A ~A ~A" ra name 0 (data 0) first-val)))
+			 (snd-display "[~A] ~A: ~A ~A ~A" ra name 0 (data 0) first-val)))
 		   (do ((i 1 (+ i 1)))
 		       ((= i 10))
 		     (let ((old-val (data i))
 			   (new-val (if k0 (runp gen 0.0) (mus-apply gen 0.0 0.0))))
 		       (if (not (= old-val 0.0)) (set! not-zero #t))
 		       (if (fneq old-val new-val)
-			   (snd-display ";[~A] ~A: ~A ~A ~A" ra name i old-val new-val))))
+			   (snd-display "[~A] ~A: ~A ~A ~A" ra name i old-val new-val))))
 		   (if (not (or pssb not-zero))
-		       (snd-display ";~A not much of a reset test!" name)))))))
+		       (snd-display "~A not much of a reset test!" name)))))))
 	 make-procs gen-procs func-names))
       
       (when (and all-args (= clmtest 0))
@@ -19965,7 +19965,7 @@ EDITS: 2
 	      (lambda (g name)
 		(let ((tag (catch #t (lambda () (g :frequency 440.0)) (lambda args (car args)))))
 		  (if (not (memq tag '(wrong-type-arg out-of-range)))
-		      (snd-display ";key-check ~A: ~A -> ~A" n name tag))))
+		      (snd-display "key-check ~A: ~A -> ~A" n name tag))))
 	      (list make-oscil make-asymmetric-fm 
 		    make-triangle-wave make-square-wave make-pulse-train make-sawtooth-wave
 		    make-rand make-rand-interp)
@@ -20029,7 +20029,7 @@ EDITS: 2
 	 (i 0 (+ i 1)))
 	((= i 10)
 	 (if (not (mus-arrays-equal? tv ov))
-	     (snd-display ";moving-max: ~A ~A" ov tv)))
+	     (snd-display "moving-max: ~A ~A" ov tv)))
       (set! (ov i) (moving-max gen (iv i))))
     
     (do ((g1 (make-moving-max 10))
@@ -20038,35 +20038,35 @@ EDITS: 2
       (let ((val (moving-max g1 (random 1.0)))
 	    (pk (float-vector-peak (mus-data g1))))
 	(if (not (= pk val)) 
-	    (snd-display ";moving-max ~A ~A" pk val))))
+	    (snd-display "moving-max ~A ~A" pk val))))
     
     (let ((odata (make-float-vector 15))
 	  (data (float-vector 1.0 0.0 -1.1 1.1001 0.1 -1.1 1.0 1.0 0.5 -0.01 0.02 0.0 0.0 0.0 0.0))
 	  (g (make-moving-max 3)))
 	(do ((i 0 (+ i 1))) ((= i 15)) (set! (odata i) (moving-max g (data i))))
 	(if (not (mus-arrays-equal? odata (float-vector 1.000 1.000 1.100 1.100 1.100 1.100 1.100 1.100 1.000 1.000 0.500 0.020 0.020 0.000 0.000)))
-	    (snd-display ";moving max odata: ~A" odata))
+	    (snd-display "moving max odata: ~A" odata))
 	(if (= (odata 4) (odata 7))
-	    (snd-display ";moving-max .0001 offset?")))
+	    (snd-display "moving-max .0001 offset?")))
       
     (let ((data (float-vector 0.1 -0.2 0.3 0.4 -0.5 0.6 0.7 0.8 -0.9 1.0 0.0 0.0)))
       (let ((odata (make-float-vector 15))
 	    (g (make-moving-sum 3)))
 	(do ((i 0 (+ i 1))) ((= i 12)) (set! (odata i) (moving-sum g (data i))))
 	(if (not (mus-arrays-equal? odata (float-vector 0.100 0.300 0.600 0.900 1.200 1.500 1.800 2.100 2.400 2.700 1.900 1.000 0.000 0.000 0.000)))
-	    (snd-display ";moving-sum odata: ~A" odata)))
+	    (snd-display "moving-sum odata: ~A" odata)))
       
       (let ((odata (make-float-vector 15))
 	    (g (make-moving-rms 4)))
 	(do ((i 0 (+ i 1))) ((= i 12)) (set! (odata i) (moving-rms g (data i))))
 	(if (not (mus-arrays-equal? odata (float-vector 0.050 0.112 0.187 0.274 0.367 0.464 0.561 0.660 0.758 0.857 0.783 0.673 0.000 0.000 0.000)))
-	    (snd-display ";moving-rms odata: ~A" odata)))
+	    (snd-display "moving-rms odata: ~A" odata)))
       
       (let ((odata (make-float-vector 15))
 	    (g (make-moving-length 4)))
 	(do ((i 0 (+ i 1))) ((= i 12)) (set! (odata i) (moving-length g (data i))))
 	(if (not (mus-arrays-equal? odata (float-vector 0.100 0.224 0.374 0.548 0.735 0.927 1.122 1.319 1.517 1.715 1.565 1.345 0.000 0.000 0.000)))
-	    (snd-display ";moving-length odata: ~A" odata)))
+	    (snd-display "moving-length odata: ~A" odata)))
 	
       (let ((ind (new-sound "test.snd" :size 20)))
 	(set! (sample 3) 1.0)
@@ -20078,7 +20078,7 @@ EDITS: 2
 	  (map-channel (lambda (y) (fir-filter gen2 y)))
 	  (let ((data2 (channel->float-vector)))
 	    (if (not (mus-arrays-equal? data1 data2))
-		(snd-display ";weighted-moving-average and fir:~%;  ~A~%:   ~A" data1 data2)))
+		(snd-display "weighted-moving-average and fir:~%;  ~A~%:   ~A" data1 data2)))
 	  (undo))
 	(close-sound ind))
       
@@ -20095,7 +20095,7 @@ EDITS: 2
 	       (j 0 (+ j 1)))
 	      ((= j 4)
 	       (if (fneq (odata k) (sqrt sum)) 
-		   (snd-display ";moving length ran: ~A ~A" (odata k) (sqrt sum)))) 
+		   (snd-display "moving length ran: ~A ~A" (odata k) (sqrt sum)))) 
 	    (if (>= (+ i j) 0)
 		(set! sum (+ sum (* (data (+ i j)) (data (+ i j))))))))
 	
@@ -20111,7 +20111,7 @@ EDITS: 2
 	       (j 0 (+ j 1)))
 	      ((= j 4)
 	       (if (fneq (odata k) sum) 
-		   (snd-display ";moving sum ran: ~A ~A" (odata k) sum)))
+		   (snd-display "moving sum ran: ~A ~A" (odata k) sum)))
 	    (if (>= (+ i j) 0)
 		(set! sum (+ sum (abs (data (+ i j))))))))
 	
@@ -20127,7 +20127,7 @@ EDITS: 2
 	       (j 0 (+ j 1)))
 	      ((= j 4)
 	       (if (fneq (odata k) (sqrt (/ sum 4))) 
-		   (snd-display ";moving rms ran: ~A ~A" (odata k) (sqrt (/ sum 4)))))
+		   (snd-display "moving rms ran: ~A ~A" (odata k) (sqrt (/ sum 4)))))
 	    (if (>= (+ i j) 0)
 		(set! sum (+ sum (* (data (+ i j)) (data (+ i j))))))))))
       
@@ -20146,7 +20146,7 @@ EDITS: 2
 			   (lambda () (apply make arglist))
 			   (lambda args (car args)))))
 	   (if (not (eq? tag 'mus-error))
-	       (snd-display ";long arglist to ~A: ~A" name tag))))
+	       (snd-display "long arglist to ~A: ~A" name tag))))
        (list make-wave-train make-polyshape make-delay make-moving-average make-moving-max make-moving-norm make-comb make-filtered-comb make-notch
 	     make-rand make-rand-interp make-table-lookup make-env
 	     make-readin make-locsig make-granulate make-convolve make-phase-vocoder)
@@ -20157,76 +20157,76 @@ EDITS: 2
     (let ((v1 (make-float-vector 10 .1)))
       
       (let ((g1 (mus-data (make-table-lookup :wave v1))))
-	(if (not (eq? v1 g1)) (snd-display ";table-lookup data not eq?: ~A ~A" v1 g1))
-	(if (not (eqv? v1 g1)) (snd-display ";table-lookup data not eqv?: ~A ~A" v1 g1))
-	(if (not (equal? v1 g1)) (snd-display ";table-lookup data not equal?: ~A ~A" v1 g1))
+	(if (not (eq? v1 g1)) (snd-display "table-lookup data not eq?: ~A ~A" v1 g1))
+	(if (not (eqv? v1 g1)) (snd-display "table-lookup data not eqv?: ~A ~A" v1 g1))
+	(if (not (equal? v1 g1)) (snd-display "table-lookup data not equal?: ~A ~A" v1 g1))
 	(set! (v1 1) .3)
-	(if (fneq (g1 1) .3) (snd-display ";table-lookup float-vector-set: ~A ~A" (v1 1) (g1 1)))
+	(if (fneq (g1 1) .3) (snd-display "table-lookup float-vector-set: ~A ~A" (v1 1) (g1 1)))
 	(float-vector-set! g1 1 .5)
-	(if (fneq (v1 1) .5) (snd-display ";table-lookup float-vector-ref: ~A ~A" (v1 1) (g1 1))))
+	(if (fneq (v1 1) .5) (snd-display "table-lookup float-vector-ref: ~A ~A" (v1 1) (g1 1))))
       
       (let ((g1 (mus-data (make-wave-train :wave v1))))
-	(if (not (eq? v1 g1)) (snd-display ";wave-train data not eq?: ~A ~A" v1 g1))
-	(if (not (eqv? v1 g1)) (snd-display ";wave-train data not eqv?: ~A ~A" v1 g1))
-	(if (not (equal? v1 g1)) (snd-display ";wave-train data not equal?: ~A ~A" v1 g1))
+	(if (not (eq? v1 g1)) (snd-display "wave-train data not eq?: ~A ~A" v1 g1))
+	(if (not (eqv? v1 g1)) (snd-display "wave-train data not eqv?: ~A ~A" v1 g1))
+	(if (not (equal? v1 g1)) (snd-display "wave-train data not equal?: ~A ~A" v1 g1))
 	(set! (v1 1) .3)
-	(if (fneq (g1 1) .3) (snd-display ";wave-train float-vector-set: ~A ~A" (v1 1) (g1 1)))
+	(if (fneq (g1 1) .3) (snd-display "wave-train float-vector-set: ~A ~A" (v1 1) (g1 1)))
 	(float-vector-set! g1 1 .5)
-	(if (fneq (v1 1) .5) (snd-display ";wave-train float-vector-ref: ~A ~A" (v1 1) (g1 1))))
+	(if (fneq (v1 1) .5) (snd-display "wave-train float-vector-ref: ~A ~A" (v1 1) (g1 1))))
       
       (let ((g1 (mus-data (make-polyshape :coeffs v1))))
-	(if (not (eq? v1 g1)) (snd-display ";polyshape data not eq?: ~A ~A" v1 g1))
-	(if (not (eqv? v1 g1)) (snd-display ";polyshape data not eqv?: ~A ~A" v1 g1))
-	(if (not (equal? v1 g1)) (snd-display ";polyshape data not equal?: ~A ~A" v1 g1))
+	(if (not (eq? v1 g1)) (snd-display "polyshape data not eq?: ~A ~A" v1 g1))
+	(if (not (eqv? v1 g1)) (snd-display "polyshape data not eqv?: ~A ~A" v1 g1))
+	(if (not (equal? v1 g1)) (snd-display "polyshape data not equal?: ~A ~A" v1 g1))
 	(set! (v1 1) .3)
-	(if (fneq (g1 1) .3) (snd-display ";polyshape float-vector-set: ~A ~A" (v1 1) (g1 1)))
+	(if (fneq (g1 1) .3) (snd-display "polyshape float-vector-set: ~A ~A" (v1 1) (g1 1)))
 	(float-vector-set! g1 1 .5)
-	(if (fneq (v1 1) .5) (snd-display ";polyshape float-vector-ref: ~A ~A" (v1 1) (g1 1))))
+	(if (fneq (v1 1) .5) (snd-display "polyshape float-vector-ref: ~A ~A" (v1 1) (g1 1))))
       
       (let ((g1 (mus-data (make-delay :initial-contents v1))))
-	(if (not (eq? v1 g1)) (snd-display ";delay data not eq?: ~A ~A" v1 g1))
-	(if (not (eqv? v1 g1)) (snd-display ";delay data not eqv?: ~A ~A" v1 g1))
-	(if (not (equal? v1 g1)) (snd-display ";delay data not equal?: ~A ~A" v1 g1))
+	(if (not (eq? v1 g1)) (snd-display "delay data not eq?: ~A ~A" v1 g1))
+	(if (not (eqv? v1 g1)) (snd-display "delay data not eqv?: ~A ~A" v1 g1))
+	(if (not (equal? v1 g1)) (snd-display "delay data not equal?: ~A ~A" v1 g1))
 	(set! (v1 1) .3)
-	(if (fneq (g1 1) .3) (snd-display ";delay float-vector-set: ~A ~A" (v1 1) (g1 1)))
+	(if (fneq (g1 1) .3) (snd-display "delay float-vector-set: ~A ~A" (v1 1) (g1 1)))
 	(float-vector-set! g1 1 .5)
-	(if (fneq (v1 1) .5) (snd-display ";delay float-vector-ref: ~A ~A" (v1 1) (g1 1))))
+	(if (fneq (v1 1) .5) (snd-display "delay float-vector-ref: ~A ~A" (v1 1) (g1 1))))
       
       (let ((g1 (mus-data (make-filtered-comb :scaler .5 :initial-contents v1 :filter (make-one-zero .1 .2)))))
-	(if (not (eq? v1 g1)) (snd-display ";filtered-comb data not eq?: ~A ~A" v1 g1))
-	(if (not (eqv? v1 g1)) (snd-display ";filtered-comb data not eqv?: ~A ~A" v1 g1))
-	(if (not (equal? v1 g1)) (snd-display ";filtered-comb data not equal?: ~A ~A" v1 g1))
+	(if (not (eq? v1 g1)) (snd-display "filtered-comb data not eq?: ~A ~A" v1 g1))
+	(if (not (eqv? v1 g1)) (snd-display "filtered-comb data not eqv?: ~A ~A" v1 g1))
+	(if (not (equal? v1 g1)) (snd-display "filtered-comb data not equal?: ~A ~A" v1 g1))
 	(set! (v1 1) .3)
-	(if (fneq (g1 1) .3) (snd-display ";filtered-comb float-vector-set: ~A ~A" (v1 1) (g1 1)))
+	(if (fneq (g1 1) .3) (snd-display "filtered-comb float-vector-set: ~A ~A" (v1 1) (g1 1)))
 	(float-vector-set! g1 1 .5)
-	(if (fneq (v1 1) .5) (snd-display ";filtered-comb float-vector-ref: ~A ~A" (v1 1) (g1 1))))
+	(if (fneq (v1 1) .5) (snd-display "filtered-comb float-vector-ref: ~A ~A" (v1 1) (g1 1))))
       
       (let ((g1 (mus-data (make-rand :distribution v1))))
-	(if (not (eq? v1 g1)) (snd-display ";rand data not eq?: ~A ~A" v1 g1))
-	(if (not (eqv? v1 g1)) (snd-display ";rand data not eqv?: ~A ~A" v1 g1))
-	(if (not (equal? v1 g1)) (snd-display ";rand data not equal?: ~A ~A" v1 g1))
+	(if (not (eq? v1 g1)) (snd-display "rand data not eq?: ~A ~A" v1 g1))
+	(if (not (eqv? v1 g1)) (snd-display "rand data not eqv?: ~A ~A" v1 g1))
+	(if (not (equal? v1 g1)) (snd-display "rand data not equal?: ~A ~A" v1 g1))
 	(set! (v1 1) .3)
-	(if (fneq (g1 1) .3) (snd-display ";rand float-vector-set: ~A ~A" (v1 1) (g1 1)))
+	(if (fneq (g1 1) .3) (snd-display "rand float-vector-set: ~A ~A" (v1 1) (g1 1)))
 	(float-vector-set! g1 1 .5)
-	(if (fneq (v1 1) .5) (snd-display ";rand float-vector-ref: ~A ~A" (v1 1) (g1 1))))
+	(if (fneq (v1 1) .5) (snd-display "rand float-vector-ref: ~A ~A" (v1 1) (g1 1))))
       
       (let ((g1 (mus-xcoeffs (make-fir-filter :xcoeffs v1))))
-	(if (not (eq? v1 g1)) (snd-display ";fir-filter xcoeffs not eq?: ~A ~A" v1 g1))
-	(if (not (eqv? v1 g1)) (snd-display ";fir-filter xcoeffs not eqv?: ~A ~A" v1 g1))
-	(if (not (equal? v1 g1)) (snd-display ";fir-filter xcoeffs not equal?: ~A ~A" v1 g1))
+	(if (not (eq? v1 g1)) (snd-display "fir-filter xcoeffs not eq?: ~A ~A" v1 g1))
+	(if (not (eqv? v1 g1)) (snd-display "fir-filter xcoeffs not eqv?: ~A ~A" v1 g1))
+	(if (not (equal? v1 g1)) (snd-display "fir-filter xcoeffs not equal?: ~A ~A" v1 g1))
 	(set! (v1 1) .3)
-	(if (fneq (g1 1) .3) (snd-display ";fir-filter float-vectorset: ~A ~A" (v1 1) (g1 1)))
+	(if (fneq (g1 1) .3) (snd-display "fir-filter float-vectorset: ~A ~A" (v1 1) (g1 1)))
 	(float-vector-set! g1 1 .5)
-	(if (fneq (v1 1) .5) (snd-display ";fir-filter float-vectorref: ~A ~A" (v1 1) (g1 1))))
+	(if (fneq (v1 1) .5) (snd-display "fir-filter float-vectorref: ~A ~A" (v1 1) (g1 1))))
       
       (let ((g1 (mus-ycoeffs (make-iir-filter :ycoeffs v1))))
-	(if (not (eq? v1 g1)) (snd-display ";iir-filter ycoeffs not eq?: ~A ~A" v1 g1))
-	(if (not (eqv? v1 g1)) (snd-display ";iir-filter ycoeffs not eqv?: ~A ~A" v1 g1))
-	(if (not (equal? v1 g1)) (snd-display ";iir-filter ycoeffs not equal?: ~A ~A" v1 g1))
+	(if (not (eq? v1 g1)) (snd-display "iir-filter ycoeffs not eq?: ~A ~A" v1 g1))
+	(if (not (eqv? v1 g1)) (snd-display "iir-filter ycoeffs not eqv?: ~A ~A" v1 g1))
+	(if (not (equal? v1 g1)) (snd-display "iir-filter ycoeffs not equal?: ~A ~A" v1 g1))
 	(set! (v1 1) .3)
-	(if (fneq (g1 1) .3) (snd-display ";iir-filter float-vector-set: ~A ~A" (v1 1) (g1 1)))
+	(if (fneq (g1 1) .3) (snd-display "iir-filter float-vector-set: ~A ~A" (v1 1) (g1 1)))
 	(float-vector-set! g1 1 .5)
-	(if (fneq (v1 1) .5) (snd-display ";iir-filter float-vector-ref: ~A ~A" (v1 1) (g1 1)))))
+	(if (fneq (v1 1) .5) (snd-display "iir-filter float-vector-ref: ~A ~A" (v1 1) (g1 1)))))
     
     (let ((tanh-1 (lambda (x)
 		    (* x (+ 1 (* x x (- (* x x (+ 2/15 (* x x (- (* x x (+ 62/2835 (* x x -1382/155925))) 17/315)))) 1/3))))))
@@ -20244,7 +20244,7 @@ EDITS: 2
 	       (val2 (tanh-2 x)))
 	   (if (or (fneq val val1)
 		   (fneq val1 val2))
-	       (snd-display ";tanh(~A): ~A ~A ~A" x val val1 val2))))
+	       (snd-display "tanh(~A): ~A ~A ~A" x val val1 val2))))
        '(1.0 0.1 0.1 0.333)))
     
     (if all-args
@@ -20270,42 +20270,42 @@ EDITS: 2
 		      (lambda () (with-sound () (outa -1 .1)))
 		      (lambda args (car args)))))
       (if (not (eq? tag 'out-of-range))
-	  (snd-display ";outa -1 -> ~A" tag)))
+	  (snd-display "outa -1 -> ~A" tag)))
     
     (let ((tag (catch #t
 		      (lambda () (with-sound ((make-float-vector 10)) (outa -1 .1)))
 		      (lambda args (car args)))))
       (if (not (eq? tag 'out-of-range))
-	  (snd-display ";outa (float-vector) -1 -> ~A" tag)))
+	  (snd-display "outa (float-vector) -1 -> ~A" tag)))
     
     (let ((tag (catch #t
 		      (lambda () (with-sound ((make-float-vector '(1 10))) (outa -1 .1)))
 		      (lambda args (car args)))))
       (if (not (eq? tag 'out-of-range))
-	  (snd-display ";outa (vector 2) -1 -> ~A" tag)))
+	  (snd-display "outa (vector 2) -1 -> ~A" tag)))
     
     (let ((v (with-sound () (catch #t (lambda () 
 					 (outa -1 .1))
 				   (lambda args 'error)))))
       (when (file-exists? v)
 	(if (> (cadr (mus-sound-maxamp v)) 0.0) 
-	    (snd-display ";outa to file at -1: ~A" v))
+	    (snd-display "outa to file at -1: ~A" v))
 	(if (> (mus-sound-chans v) 1)
-	    (snd-display ";outa to file at -1 chans: ~A" (mus-sound-chans v)))
+	    (snd-display "outa to file at -1 chans: ~A" (mus-sound-chans v)))
 	(cond ((find-sound v) => close-sound))
 	(delete-file v)))
     (let ((v (with-sound ((make-float-vector 10)) (catch #t (lambda () 
 							      (outa -1 .1)) 
 							(lambda args 'error)))))
-      (if (> (float-vector-peak v) 0.0) (snd-display ";outa to float-vector at -1: ~A" v)))
+      (if (> (float-vector-peak v) 0.0) (snd-display "outa to float-vector at -1: ~A" v)))
     (let ((v (with-sound ((make-float-vector '(1 10))) (catch #t (lambda () 
 								       (outa -1 .1)) 
 								 (lambda args 'error)))))
-      (if (> (maxamp v) 0.0) (snd-display ";outa to vector1 at -1: ~A" v)))
+      (if (> (maxamp v) 0.0) (snd-display "outa to vector1 at -1: ~A" v)))
     
-    (if (not (= (signum 0) 0)) (snd-display ";signum 0: ~A" (signum 0)))
-    (if (not (= (signum 10) 1)) (snd-display ";signum 10: ~A" (signum 10)))
-    (if (not (= (signum -32) -1)) (snd-display ";signum -32: ~A" (signum -32)))
+    (if (not (= (signum 0) 0)) (snd-display "signum 0: ~A" (signum 0)))
+    (if (not (= (signum 10) 1)) (snd-display "signum 10: ~A" (signum 10)))
+    (if (not (= (signum -32) -1)) (snd-display "signum -32: ~A" (signum -32)))
 
 
     (do ((c1 (make-comb .5 3))
@@ -20316,7 +20316,7 @@ EDITS: 2
       (let ((x0 (comb c1 x))
 	    (x1 (comb-bank c2 x)))
 	(if (not (morally-equal? x0 x1))
-	    (snd-display ";(comb .5 3) ~A, comb: ~A, bank: ~A" i x0 x1))))
+	    (snd-display "(comb .5 3) ~A, comb: ~A, bank: ~A" i x0 x1))))
     
     (do ((c1 (make-comb .5 3))
 	 (c2 (make-comb .2 10))
@@ -20328,7 +20328,7 @@ EDITS: 2
       (let ((x0 (+ (comb c1 x) (comb c2 x)))
 	    (x1 (comb-bank c3 x)))
 	(if (not (morally-equal? x0 x1))
-	    (snd-display ";(comb .5 3) + (comb .2 10) ~A, comb: ~A, bank: ~A" i x0 x1))))
+	    (snd-display "(comb .5 3) + (comb .2 10) ~A, comb: ~A, bank: ~A" i x0 x1))))
   
     (do ((c1 (make-comb .5 3))
 	 (c2 (make-comb .2 10))
@@ -20342,7 +20342,7 @@ EDITS: 2
       (let ((x0 (+ (comb c1 x) (comb c2 x) (comb c3 x)))
 	    (x1 (comb-bank c4 x)))
 	(if (not (morally-equal? x0 x1))
-	    (snd-display ";(comb .5 3) + (comb .2 10) + (comb -.7 11) ~A, comb: ~A, bank: ~A" i x0 x1))))
+	    (snd-display "(comb .5 3) + (comb .2 10) + (comb -.7 11) ~A, comb: ~A, bank: ~A" i x0 x1))))
     
     (do ((c1 (make-all-pass -.5 .5 3))
 	 (c2 (make-all-pass-bank (vector (make-all-pass -.5 .5 3))))
@@ -20352,7 +20352,7 @@ EDITS: 2
       (let ((x0 (all-pass c1 x))
 	    (x1 (all-pass-bank c2 x)))
 	(if (not (morally-equal? x0 x1))
-	    (snd-display ";(all-pass -.5 .5 3) ~A, all-pass: ~A, bank: ~A" i x0 x1))))
+	    (snd-display "(all-pass -.5 .5 3) ~A, all-pass: ~A, bank: ~A" i x0 x1))))
     
     (do ((c1 (make-all-pass -.5 .5 3))
 	 (c2 (make-all-pass -.2 .2 10))
@@ -20364,7 +20364,7 @@ EDITS: 2
       (let ((x0 (all-pass c1 (all-pass c2 x)))
 	    (x1 (all-pass-bank c3 x)))
 	(if (not (morally-equal? x0 x1))
-	    (snd-display ";(all-pass -.5 .5 3) + (all-pass -.2 .2 10) ~A, all-pass: ~A, bank: ~A" i x0 x1))))
+	    (snd-display "(all-pass -.5 .5 3) + (all-pass -.2 .2 10) ~A, all-pass: ~A, bank: ~A" i x0 x1))))
     
     (do ((c1 (make-all-pass -.5 .5 3))
 	 (c2 (make-all-pass -.2 .2 10))
@@ -20378,7 +20378,7 @@ EDITS: 2
       (let ((x0 (all-pass c1 (all-pass c2 (all-pass c3 x))))
 	    (x1 (all-pass-bank c4 x)))
 	(if (not (morally-equal? x0 x1))
-	    (snd-display ";(all-pass -.5 .5 3) + (all-pass -.2 .2 10) + (all-pass -.7 .1 11) ~A, all-pass: ~A, bank: ~A" i x0 x1))))
+	    (snd-display "(all-pass -.5 .5 3) + (all-pass -.2 .2 10) + (all-pass -.7 .1 11) ~A, all-pass: ~A, bank: ~A" i x0 x1))))
     
     
     (do ((c1 (make-filtered-comb .5 3))
@@ -20389,7 +20389,7 @@ EDITS: 2
       (let ((x0 (filtered-comb c1 x))
 	    (x1 (filtered-comb-bank c2 x)))
 	(if (not (morally-equal? x0 x1))
-	    (snd-display ";(filtered-comb .5 3) ~A, filtered-comb: ~A, bank: ~A" i x0 x1))))
+	    (snd-display "(filtered-comb .5 3) ~A, filtered-comb: ~A, bank: ~A" i x0 x1))))
     
     (do ((c1 (make-filtered-comb .5 3))
 	 (c2 (make-filtered-comb .2 10))
@@ -20401,7 +20401,7 @@ EDITS: 2
       (let ((x0 (+ (filtered-comb c1 x) (filtered-comb c2 x)))
 	    (x1 (filtered-comb-bank c3 x)))
 	(if (not (morally-equal? x0 x1))
-	    (snd-display ";(filtered-comb .5 3) + (filtered-comb .2 10) ~A, filtered-comb: ~A, bank: ~A" i x0 x1))))
+	    (snd-display "(filtered-comb .5 3) + (filtered-comb .2 10) ~A, filtered-comb: ~A, bank: ~A" i x0 x1))))
     
     (do ((c1 (make-filtered-comb .5 3))
 	 (c2 (make-filtered-comb .2 10))
@@ -20415,7 +20415,7 @@ EDITS: 2
       (let ((x0 (+ (filtered-comb c1 x) (filtered-comb c2 x) (filtered-comb c3 x)))
 	    (x1 (filtered-comb-bank c4 x)))
 	(if (not (morally-equal? x0 x1))
-	    (snd-display ";(filtered-comb .5 3) + (filtered-comb .2 10) + (filtered-comb -.7 11) ~A, filtered-comb: ~A, bank: ~A" i x0 x1))))
+	    (snd-display "(filtered-comb .5 3) + (filtered-comb .2 10) + (filtered-comb -.7 11) ~A, filtered-comb: ~A, bank: ~A" i x0 x1))))
     
     
     ;; make-formant-bank tests
@@ -20427,7 +20427,7 @@ EDITS: 2
       (let ((x0 (formant c1 x))
 	    (x1 (formant-bank c2 x)))
 	(if (not (morally-equal? x0 x1))
-	    (snd-display ";(formant 440.0 .5) ~A, formant: ~A, bank: ~A" i x0 x1))))
+	    (snd-display "(formant 440.0 .5) ~A, formant: ~A, bank: ~A" i x0 x1))))
     
     (do ((c1 (make-formant 440.0 .5))
 	 (c2 (make-formant 1000.0 .2))
@@ -20439,7 +20439,7 @@ EDITS: 2
       (let ((x0 (+ (formant c1 x) (formant c2 x)))
 	    (x1 (formant-bank c3 x)))
 	(if (not (morally-equal? x0 x1))
-	    (snd-display ";(formant 440.0 .5) + (formant 1000.0 .2) ~A, formant: ~A, bank: ~A" i x0 x1))))
+	    (snd-display "(formant 440.0 .5) + (formant 1000.0 .2) ~A, formant: ~A, bank: ~A" i x0 x1))))
     
     (do ((c1 (make-formant 440.0 .5))
 	 (c2 (make-formant 1000.0 .2))
@@ -20453,7 +20453,7 @@ EDITS: 2
       (let ((x0 (+ (formant c1 x) (formant c2 x) (formant c3 x)))
 	    (x1 (formant-bank c4 x)))
 	(if (not (morally-equal? x0 x1))
-	    (snd-display ";(formant 440.0 .5) + (formant 1000.0 .2) + (formant 34.0 .1) ~A, formant: ~A, bank: ~A" i x0 x1))))
+	    (snd-display "(formant 440.0 .5) + (formant 1000.0 .2) + (formant 34.0 .1) ~A, formant: ~A, bank: ~A" i x0 x1))))
 
     (do ((c1 (make-formant 440.0 .75))
 	 (c2 (make-formant 1000.0 .75))
@@ -20467,7 +20467,7 @@ EDITS: 2
       (let ((x0 (+ (formant c1 x) (formant c2 x) (formant c3 x)))
 	    (x1 (formant-bank c4 x)))
 	(if (not (morally-equal? x0 x1))
-	    (snd-display ";(formant 440.0 .75) + (formant 1000.0 .75) + (formant 34.0 .75) ~A, formant: ~A, bank: ~A" i x0 x1))))
+	    (snd-display "(formant 440.0 .75) + (formant 1000.0 .75) + (formant 34.0 .75) ~A, formant: ~A, bank: ~A" i x0 x1))))
 
     (do ((c1 (make-formant 440.0 .5))
 	 (c2 (make-formant 1000.0 .2))
@@ -20482,7 +20482,7 @@ EDITS: 2
       (let ((x0 (+ (* .5 (formant c1 x)) (* .3 (formant c2 x)) (* .4 (formant c3 x))))
 	    (x1 (formant-bank c4 x)))
 	(if (not (morally-equal? x0 x1))
-	    (snd-display ";fb 3 with amps at ~A, formant: ~A, bank: ~A" i x0 x1))))
+	    (snd-display "fb 3 with amps at ~A, formant: ~A, bank: ~A" i x0 x1))))
 
     (do ((c1 (make-formant 440.0 .9))
 	 (c2 (make-formant 1000.0 .9))
@@ -20497,7 +20497,7 @@ EDITS: 2
       (let ((x0 (+ (* .5 (formant c1 x)) (* .3 (formant c2 x)) (* .4 (formant c3 x))))
 	    (x1 (formant-bank c4 x)))
 	(if (not (morally-equal? x0 x1))
-	    (snd-display ";fb 3 with amps c1_c2 at ~A, formant: ~A, bank: ~A" i x0 x1))))
+	    (snd-display "fb 3 with amps c1_c2 at ~A, formant: ~A, bank: ~A" i x0 x1))))
 
     (do ((c1 (make-formant 440.0 .5))
 	 (c2 (make-formant 1000.0 .2))
@@ -20513,7 +20513,7 @@ EDITS: 2
 	    (x1 (formant-bank c4 inputs)))
 	(fill! inputs 0.0)
 	(if (not (morally-equal? x0 x1))
-	    (snd-display ";many (formant 440.0 .5) + (formant 1000.0 .2) + (formant 34.0 .1) ~A, formant: ~A, bank: ~A" i x0 x1))))
+	    (snd-display "many (formant 440.0 .5) + (formant 1000.0 .2) + (formant 34.0 .1) ~A, formant: ~A, bank: ~A" i x0 x1))))
 
     (do ((c1 (make-formant 440.0 .75))
 	 (c2 (make-formant 1000.0 .75))
@@ -20529,7 +20529,7 @@ EDITS: 2
 	    (x1 (formant-bank c4 inputs)))
 	(fill! inputs 0.0)
 	(if (not (morally-equal? x0 x1))
-	    (snd-display ";many (formant 440.0 .75) + (formant 1000.0 .75) + (formant 34.0 .75) ~A, formant: ~A, bank: ~A" i x0 x1))))
+	    (snd-display "many (formant 440.0 .75) + (formant 1000.0 .75) + (formant 34.0 .75) ~A, formant: ~A, bank: ~A" i x0 x1))))
 
 
     (do ((c1 (make-formant 440.0 .5))
@@ -20547,7 +20547,7 @@ EDITS: 2
 	    (x1 (formant-bank c4 inputs)))
 	(fill! inputs 0.0)
 	(if (not (morally-equal? x0 x1))
-	    (snd-display ";fb 3 with amps at ~A, formant: ~A, bank: ~A" i x0 x1))))
+	    (snd-display "fb 3 with amps at ~A, formant: ~A, bank: ~A" i x0 x1))))
 
     (do ((c1 (make-formant 440.0 .9))
 	 (c2 (make-formant 1000.0 .9))
@@ -20564,7 +20564,7 @@ EDITS: 2
 	    (x1 (formant-bank c4 inputs)))
 	(fill! inputs 0.0)
 	(if (not (morally-equal? x0 x1))
-	    (snd-display ";fb 3 with amps c1_c2 at ~A, formant: ~A, bank: ~A" i x0 x1))))
+	    (snd-display "fb 3 with amps c1_c2 at ~A, formant: ~A, bank: ~A" i x0 x1))))
 
     (do ((c1 (make-formant 440.0 .9))
 	 (c2 (make-formant 1000.0 .9))
@@ -20584,12 +20584,12 @@ EDITS: 2
 		   (x1 (formant-bank c4 inputs)))
 	       (fill! inputs 0.0)
 	       (if (not (morally-equal? x0 x1))
-		   (snd-display ";fb 3(1) with amps c1_c2 at ~A, formant: ~A, bank: ~A" i x0 x1))))
+		   (snd-display "fb 3(1) with amps c1_c2 at ~A, formant: ~A, bank: ~A" i x0 x1))))
 	    ((< i 20)
 	     (let ((x0 (+ (* 0.5 (formant c1 x)) (* 0.3 (formant c2 y)) (* 0.4 (formant c3 z))))
 		   (x1 (formant-bank c4 0.0)))
 	       (if (not (morally-equal? x0 x1))
-		   (snd-display ";fb 3(2) with amps c1_c2 at ~A, formant: ~A, bank: ~A" i x0 x1))))
+		   (snd-display "fb 3(2) with amps c1_c2 at ~A, formant: ~A, bank: ~A" i x0 x1))))
 	    ((< i 30)
 	     (set! x 0.5)
 	     (set! y 0.25)
@@ -20600,7 +20600,7 @@ EDITS: 2
 	     (let ((x0 (+ (* 0.5 (formant c1 x)) (* 0.3 (formant c2 y)) (* 0.4 (formant c3 z))))
 		   (x1 (formant-bank c4 inputs)))
 	       (if (not (morally-equal? x0 x1))
-		   (snd-display ";fb 3(3) with amps c1_c2 at ~A, formant: ~A, bank: ~A" i x0 x1))))
+		   (snd-display "fb 3(3) with amps c1_c2 at ~A, formant: ~A, bank: ~A" i x0 x1))))
 	    (else
 	     (set! x 0.25)
 	     (set! y 0.25)
@@ -20608,7 +20608,7 @@ EDITS: 2
 	     (let ((x0 (+ (* 0.5 (formant c1 x)) (* 0.3 (formant c2 y)) (* 0.4 (formant c3 z))))
 		   (x1 (formant-bank c4 0.25)))
 	       (if (not (morally-equal? x0 x1))
-		   (snd-display ";fb 3(4) with amps c1_c2 at ~A, formant: ~A, bank: ~A" i x0 x1))))))
+		   (snd-display "fb 3(4) with amps c1_c2 at ~A, formant: ~A, bank: ~A" i x0 x1))))))
 
     (do ((c1 (make-formant 440.0 .9))
 	 (c2 (make-formant 1000.0 .9))
@@ -20633,12 +20633,12 @@ EDITS: 2
 		   (x1 (formant-bank c6 inputs)))
 	       (fill! inputs 0.0)
 	       (if (not (morally-equal? x0 x1))
-		   (snd-display ";fb 5(1) no amps c1_c2 at ~A, formant: ~A, bank: ~A" i x0 x1))))
+		   (snd-display "fb 5(1) no amps c1_c2 at ~A, formant: ~A, bank: ~A" i x0 x1))))
 	    ((< i 20)
 	     (let ((x0 (+ (formant c1 x) (formant c2 y) (formant c3 z) (formant c4 a) (formant c5 b)))
 		   (x1 (formant-bank c6 0.0)))
 	       (if (not (morally-equal? x0 x1))
-		   (snd-display ";fb 5(2) no amps c1_c2 at ~A, formant: ~A, bank: ~A" i x0 x1))))
+		   (snd-display "fb 5(2) no amps c1_c2 at ~A, formant: ~A, bank: ~A" i x0 x1))))
 	    ((< i 30)
 	     (set! x 0.5)
 	     (set! y 0.25)
@@ -20653,7 +20653,7 @@ EDITS: 2
 	     (let ((x0 (+ (formant c1 x) (formant c2 y) (formant c3 z) (formant c4 a) (formant c5 b)))
 		   (x1 (formant-bank c6 inputs)))
 	       (if (not (morally-equal? x0 x1))
-		   (snd-display ";fb 5(3) no amps c1_c2 at ~A, formant: ~A, bank: ~A" i x0 x1))))
+		   (snd-display "fb 5(3) no amps c1_c2 at ~A, formant: ~A, bank: ~A" i x0 x1))))
 	    (else
 	     (set! x 0.25)
 	     (set! y 0.25)
@@ -20663,7 +20663,7 @@ EDITS: 2
 	     (let ((x0 (+ (formant c1 x) (formant c2 y) (formant c3 z) (formant c4 a) (formant c5 b)))
 		   (x1 (formant-bank c6 0.25)))
 	       (if (not (morally-equal? x0 x1))
-		   (snd-display ";fb 5(4) no amps c1_c2 at ~A, formant: ~A, bank: ~A" i x0 x1))))))
+		   (snd-display "fb 5(4) no amps c1_c2 at ~A, formant: ~A, bank: ~A" i x0 x1))))))
 		      
     (set! *clm-srate* 44100)
     (when (file-exists? "jcrev-ip.snd")
@@ -20671,7 +20671,7 @@ EDITS: 2
       (let ((s1 (find-sound "test.snd"))
 	    (s2 (open-sound "jcrev-ip.snd")))
 	(if (not (= (channel-distance s1 0 s2 0) 0.0))
-	    (snd-display ";jcrev ip: ~A" (channel-distance s1 0 s2 0)))
+	    (snd-display "jcrev ip: ~A" (channel-distance s1 0 s2 0)))
 	(close-sound s1)
 	(close-sound s2)))
     
@@ -20680,7 +20680,7 @@ EDITS: 2
       (let ((s1 (find-sound "test.snd"))
 	    (s2 (open-sound "nrev-ip.snd")))
 	(if (not (= (channel-distance s1 0 s2 0) 0.0))
-	    (snd-display ";nrev ip: ~A" (channel-distance s1 0 s2 0)))
+	    (snd-display "nrev ip: ~A" (channel-distance s1 0 s2 0)))
 	(close-sound s1)
 	(close-sound s2)))
     
@@ -20689,7 +20689,7 @@ EDITS: 2
       (let ((s1 (find-sound "test.snd"))
 	    (s2 (open-sound "freeverb-ip.snd")))
 	(if (not (= (channel-distance s1 0 s2 0) 0.0))
-	    (snd-display ";freeverb ip: ~A" (channel-distance s1 0 s2 0)))
+	    (snd-display "freeverb ip: ~A" (channel-distance s1 0 s2 0)))
 	(close-sound s1)
 	(close-sound s2)))
     
@@ -20899,7 +20899,7 @@ EDITS: 2
 				0.000 0.125 0.250 0.375 0.500 0.625 0.750 0.875 1.000 0.875 0.750 0.625 0.500 0.375 0.250 0.125 0.000 0.000 0.000 0.000 
 				0.000 0.125 0.250 0.375 0.500 0.625 0.750 0.875 1.000 0.875 0.750 0.625 0.500 0.375 0.250 0.125 0.000 0.000 0.000 0.000 
 				0.000 0.125 0.250 0.375 0.500 0.625 0.750 0.875 1.000 0.875 0.750 0.625 0.500 0.375 0.250 0.125 0.000 0.000 0.000 0.000)))
-	    (snd-display ";pulsed-env: ~A" v))))
+	    (snd-display "pulsed-env: ~A" v))))
 
     (for-each copy-test 
       (vector (make-oscil 330.0)
@@ -20946,44 +20946,44 @@ EDITS: 2
     (let* ((o (make-rand 100.0))
 	   (p (copy o)))
       (if (not (equal? o p))
-	  (snd-display ";rand copy ~A != ~A~%" o p)))
+	  (snd-display "rand copy ~A != ~A~%" o p)))
     
     (let* ((o (make-rand-interp 100.0))
 	   (p (copy o)))
       (if (not (equal? o p))
-	  (snd-display ";rand-interp copy ~A != ~A~%" o p)))
+	  (snd-display "rand-interp copy ~A != ~A~%" o p)))
     
     (let* ((v1 (make-float-vector 10 .1))
 	   (o (make-rand 100.0 :distribution v1))
 	   (p (copy o)))
       (if (not (equal? o p))
-	  (snd-display ";rand+dist copy ~A != ~A~%" o p))
+	  (snd-display "rand+dist copy ~A != ~A~%" o p))
       
       (let* ((o (make-rand-interp 100.0 :distribution v1))
 	     (p (copy o)))
 	(if (not (equal? o p))
-	    (snd-display ";rand-interp+dist copy ~A != ~A~%" o p))))
+	    (snd-display "rand-interp+dist copy ~A != ~A~%" o p))))
     
     (let* ((o (make-nssb 440.0))
 	   (p (copy o)))
       (if (not (equal? o p))
-	  (snd-display ";nssb copy ~A != ~A~%" o p))
+	  (snd-display "nssb copy ~A != ~A~%" o p))
       (nssb o 1.0)
       (if (equal? o p)
-	  (snd-display ";nssb copy/run ~A == ~A~%" o p)))
+	  (snd-display "nssb copy/run ~A == ~A~%" o p)))
     
     (let* ((o (make-wave-train 100 :wave (float-vector 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9)))
 	   (p (copy o)))
       (if (not (equal? o p))
-	  (snd-display ";wave-train copy ~A != ~A~%" o p)))
+	  (snd-display "wave-train copy ~A != ~A~%" o p)))
     
     (let* ((o (make-table-lookup 440.0 :wave (float-vector 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9)))
 	   (p (copy o)))
       (if (not (equal? o p))
-	  (snd-display ";table-lookup copy ~A != ~A~%" o p))
+	  (snd-display "table-lookup copy ~A != ~A~%" o p))
       (table-lookup o 1.0)
       (if (equal? o p)
-	  (snd-display ";table-lookup run ~A == ~A~%" o p)))
+	  (snd-display "table-lookup run ~A == ~A~%" o p)))
     ))
 
 
@@ -21252,110 +21252,110 @@ EDITS: 2
 	  (let ((id (mix-float-vector v 0)))
 	    (let ((nv (channel->float-vector)))
 	      (if (not (mus-arrays-equal? nv (float-vector .1 .2 .3 0 0 0 0 0 0 0)))
-		  (snd-display ";mix v at 0: ~A" nv)))
+		  (snd-display "mix v at 0: ~A" nv)))
 	    (let ((eds (edit-tree ind 0)))
 	      (if (not (feql eds '((0 0 0 2 0.0 0.0 0.0 3) (3 0 3 9 0.0 0.0 0.0 2) (10 -2 0 0 0.0 0.0 0.0 0))))
-		  (snd-display ";mix v at 0 eds: ~A" eds)))
+		  (snd-display "mix v at 0 eds: ~A" eds)))
 	    (if (not (mix? id))
-		(snd-display ";mix v at 0 id from mix?: ~A" id))
-	    (if (fneq (mix-amp id) 1.0) (snd-display ";mix v at 0 amp: ~A" (mix-amp id)))
-	    (if (fneq (mix-speed id) 1.0) (snd-display ";mix v at 0 speed: ~A" (mix-speed id)))
-	    (if (not (= (mix-sync id) 0)) (snd-display ";mix v at 0 sync: ~A" (mix-sync id)))
-	    (if (not (null? (mix-amp-env id))) (snd-display ";mix v at 0 amp-env: ~A" (mix-amp-env id)))
-	    (if (not (= (mix-position id) 0)) (snd-display ";mix v at 0 beg: ~A" (mix-position id)))
-	    (if (not (= (mix-length id) 3)) (snd-display ";mix v at 0 length: ~A" (mix-length id)))
-	    (if (not (string=? (mix-name id) "")) (snd-display ";mix v at 0 name: ~A" (mix-name id)))
-	    (if (not (null? (mix-properties id))) (snd-display ";mix v at 0 properties: ~A" (mix-properties id)))
-	    (if (not (equal? (mix-color id) *mix-color*)) (snd-display ";mix v at 0 color: ~A" (mix-color id)))
-	    (if (not (= (mix-tag-y id) 0)) (snd-display ";mix v at 0 tag-y: ~A" (mix-tag-y id)))
+		(snd-display "mix v at 0 id from mix?: ~A" id))
+	    (if (fneq (mix-amp id) 1.0) (snd-display "mix v at 0 amp: ~A" (mix-amp id)))
+	    (if (fneq (mix-speed id) 1.0) (snd-display "mix v at 0 speed: ~A" (mix-speed id)))
+	    (if (not (= (mix-sync id) 0)) (snd-display "mix v at 0 sync: ~A" (mix-sync id)))
+	    (if (not (null? (mix-amp-env id))) (snd-display "mix v at 0 amp-env: ~A" (mix-amp-env id)))
+	    (if (not (= (mix-position id) 0)) (snd-display "mix v at 0 beg: ~A" (mix-position id)))
+	    (if (not (= (mix-length id) 3)) (snd-display "mix v at 0 length: ~A" (mix-length id)))
+	    (if (not (string=? (mix-name id) "")) (snd-display "mix v at 0 name: ~A" (mix-name id)))
+	    (if (not (null? (mix-properties id))) (snd-display "mix v at 0 properties: ~A" (mix-properties id)))
+	    (if (not (equal? (mix-color id) *mix-color*)) (snd-display "mix v at 0 color: ~A" (mix-color id)))
+	    (if (not (= (mix-tag-y id) 0)) (snd-display "mix v at 0 tag-y: ~A" (mix-tag-y id)))
 	    (let ((sf (make-mix-sampler id))
 		  (data (make-float-vector 10)))
 	      (do ((i 0 (+ i 1)))
 		  ((= i 10))
 		(set! (data i) (read-mix-sample sf)))
 	      (if (not (mus-arrays-equal? data (channel->float-vector)))
-		  (snd-display ";mix v at 0 read mix samples: ~A" data))
-	      (if (not (sampler-at-end? sf)) (snd-display ";mix v at 0 reader not at end?"))
+		  (snd-display "mix v at 0 read mix samples: ~A" data))
+	      (if (not (sampler-at-end? sf)) (snd-display "mix v at 0 reader not at end?"))
 	      (free-sampler sf))
-	    (if (not (equal? (mixes ind 0) (list id))) (snd-display ";mix v at 0 mixes: ~A" (mixes ind 0)))
-	    (if (not (equal? (mix-home id) (list ind 0 #f 0))) (snd-display ";mix v at 0 home: ~A" (mix-home id)))
+	    (if (not (equal? (mixes ind 0) (list id))) (snd-display "mix v at 0 mixes: ~A" (mixes ind 0)))
+	    (if (not (equal? (mix-home id) (list ind 0 #f 0))) (snd-display "mix v at 0 home: ~A" (mix-home id)))
 	    (undo))
 	  (mix-float-vector v 8)
-	  (if (not (= (framples ind 0) 11)) (snd-display ";mix v at 8 new len: ~A" (framples ind 0)))
+	  (if (not (= (framples ind 0) 11)) (snd-display "mix v at 8 new len: ~A" (framples ind 0)))
 	  (let ((nv (channel->float-vector)))
 	    (if (not (mus-arrays-equal? nv (float-vector 0 0 0 0 0 0 0 0 .1 .2 .3)))
-		(snd-display ";mix v at 8: ~A" nv)))
+		(snd-display "mix v at 8: ~A" nv)))
 	  (undo)
 	  (mix-float-vector v 3)
-	  (if (not (= (framples ind 0) 10)) (snd-display ";mix v at 3 new len: ~A" (framples ind 0)))
+	  (if (not (= (framples ind 0) 10)) (snd-display "mix v at 3 new len: ~A" (framples ind 0)))
 	  (let ((nv (channel->float-vector)))
 	    (if (not (mus-arrays-equal? nv (float-vector 0 0 0 .1 .2 .3 0 0 0 0)))
-		(snd-display ";mix v at 3: ~A" nv)))
+		(snd-display "mix v at 3: ~A" nv)))
 	  (undo))
 	(let ((v (make-float-vector 20 .5)))
 	  (mix-float-vector v 0)
-	  (if (not (= (framples ind 0) 20)) (snd-display ";mix v20 at 0 new len: ~A" (framples ind 0))))
+	  (if (not (= (framples ind 0) 20)) (snd-display "mix v20 at 0 new len: ~A" (framples ind 0))))
 	(close-sound ind))
       
       (let ((ind (new-sound "test.snd" :size 100000)))
 	(let ((id (car (mix "oboe.snd" 0))))
 	  (if (not (mix? id))
-	      (snd-display ";mix oboe at 0 id from mix?: ~A" id))
-	  (if (fneq (mix-amp id) 1.0) (snd-display ";mix oboe at 0 amp: ~A" (mix-amp id)))
-	  (if (fneq (mix-speed id) 1.0) (snd-display ";mix oboe at 0 speed: ~A" (mix-speed id)))
-	  (if (not (= (mix-sync id) 0)) (snd-display ";mix oboe at 0 sync: ~A" (mix-sync id)))
-	  (if (not (null? (mix-amp-env id))) (snd-display ";mix oboe at 0 amp-env: ~A" (mix-amp-env id)))
-	  (if (not (= (mix-position id) 0)) (snd-display ";mix oboe at 0 beg: ~A" (mix-position id)))
-	  (if (not (= (mix-length id) 50828)) (snd-display ";mix oboe at 0 length: ~A" (mix-length id)))
-	  (if (not (string=? (mix-name id) "")) (snd-display ";mix oboe at 0 name: ~A" (mix-name id)))
-	  (if (not (null? (mix-properties id))) (snd-display ";mix oboe at 0 properties: ~A" (mix-properties id)))
-	  (if (not (equal? (mix-color id) *mix-color*)) (snd-display ";mix oboe at 0 color: ~A" (mix-color id)))
-	  (if (not (= (mix-tag-y id) 0)) (snd-display ";mix oboe at 0 tag-y: ~A" (mix-tag-y id)))
+	      (snd-display "mix oboe at 0 id from mix?: ~A" id))
+	  (if (fneq (mix-amp id) 1.0) (snd-display "mix oboe at 0 amp: ~A" (mix-amp id)))
+	  (if (fneq (mix-speed id) 1.0) (snd-display "mix oboe at 0 speed: ~A" (mix-speed id)))
+	  (if (not (= (mix-sync id) 0)) (snd-display "mix oboe at 0 sync: ~A" (mix-sync id)))
+	  (if (not (null? (mix-amp-env id))) (snd-display "mix oboe at 0 amp-env: ~A" (mix-amp-env id)))
+	  (if (not (= (mix-position id) 0)) (snd-display "mix oboe at 0 beg: ~A" (mix-position id)))
+	  (if (not (= (mix-length id) 50828)) (snd-display "mix oboe at 0 length: ~A" (mix-length id)))
+	  (if (not (string=? (mix-name id) "")) (snd-display "mix oboe at 0 name: ~A" (mix-name id)))
+	  (if (not (null? (mix-properties id))) (snd-display "mix oboe at 0 properties: ~A" (mix-properties id)))
+	  (if (not (equal? (mix-color id) *mix-color*)) (snd-display "mix oboe at 0 color: ~A" (mix-color id)))
+	  (if (not (= (mix-tag-y id) 0)) (snd-display "mix oboe at 0 tag-y: ~A" (mix-tag-y id)))
 	  
-	  (if (fneq (maxamp ind 0) .14724) (snd-display ";mix oboe maxamp: ~A" (maxamp ind 0)))
-	  (if (not (equal? (mixes ind 0) (list id))) (snd-display ";mix oboe at 0 mixes: ~A" (mixes ind 0)))
-	  (if (not (equal? (mix-home id) (list ind 0 "/home/bil/cl/oboe.snd" 0))) (snd-display ";mix oboe at 0 home: ~A" (mix-home id))))
+	  (if (fneq (maxamp ind 0) .14724) (snd-display "mix oboe maxamp: ~A" (maxamp ind 0)))
+	  (if (not (equal? (mixes ind 0) (list id))) (snd-display "mix oboe at 0 mixes: ~A" (mixes ind 0)))
+	  (if (not (equal? (mix-home id) (list ind 0 "/home/bil/cl/oboe.snd" 0))) (snd-display "mix oboe at 0 home: ~A" (mix-home id))))
 	(undo)
 	(mix "oboe.snd" 70000)
 	(if (not (= (framples ind 0) 120828)) ;(+ 70000 50828)
-	    (snd-display ";mix oboe at 70k framples: ~A" (framples ind 0)))
+	    (snd-display "mix oboe at 70k framples: ~A" (framples ind 0)))
 	(close-sound ind))
       
       (let ((ind (new-sound "test.snd" :size 10))
 	     (v (float-vector .1 .2 .3)))
 	(let ((id (mix-float-vector v 0)))
 	  (scale-by 2.0)
-	  (if (not (mix? id)) (snd-display ";scaled (2) mix not active?"))
+	  (if (not (mix? id)) (snd-display "scaled (2) mix not active?"))
 	  (let ((nv (channel->float-vector)))
 	    (if (not (mus-arrays-equal? nv (float-vector-scale! (float-vector .1 .2 .3 0 0 0 0 0 0 0) 2.0)))
-		(snd-display ";mix v at 0 scale-by 2: ~A" nv)))
-	  (if (fneq (mix-amp id) 2.0) (snd-display ";mix then scale mix amp: ~A" (mix-amp id)))
+		(snd-display "mix v at 0 scale-by 2: ~A" nv)))
+	  (if (fneq (mix-amp id) 2.0) (snd-display "mix then scale mix amp: ~A" (mix-amp id)))
 	  (undo)
 	  (delete-sample 1)
-	  (if (not (mix? id)) (snd-display ";delete hit mix: ~A" (mix? id)))
+	  (if (not (mix? id)) (snd-display "delete hit mix: ~A" (mix? id)))
 	  (let ((nv (channel->float-vector)))
 	    (if (not (mus-arrays-equal? nv (float-vector .1 .3 0 0 0 0 0 0 0)))
-		(snd-display ";mix v at 0 delete .2: ~A" nv)))
+		(snd-display "mix v at 0 delete .2: ~A" nv)))
 	  (revert-sound ind))
 	(let ((id (mix-float-vector v 0)))
 	  (delete-sample 7)
 	  (reverse-sound ind 0)
-	  (if (not (mix? id)) (snd-display ";reversed mix: ~A" (mix? id)))
+	  (if (not (mix? id)) (snd-display "reversed mix: ~A" (mix? id)))
 	  (let ((nv (channel->float-vector)))
 	    (if (not (mus-arrays-equal? nv (reverse! (float-vector .1 .2 .3 0 0 0 0 0 0))))
-		(snd-display ";mix v at 0 reversed: ~A" nv)))
+		(snd-display "mix v at 0 reversed: ~A" nv)))
 	  (undo)
-	  (if (not (mix? id)) (snd-display ";revert reverse mix: ~A" (mix? id)))
+	  (if (not (mix? id)) (snd-display "revert reverse mix: ~A" (mix? id)))
 	  (map-channel (lambda (y) .1))
-	  (if (not (mix? id)) (snd-display ";clobbered mix: ~A" (mixes)))
+	  (if (not (mix? id)) (snd-display "clobbered mix: ~A" (mixes)))
 	  (scale-by 2.0)
 	  (let ((id (mix-float-vector v 0)))
-	    (if (not (mix? id)) (snd-display ";mix on scale (2) not active?"))
+	    (if (not (mix? id)) (snd-display "mix on scale (2) not active?"))
 	    (scale-by 3.0)
-	    (if (not (mix? id)) (snd-display ";scaled (3) mix not active?"))
+	    (if (not (mix? id)) (snd-display "scaled (3) mix not active?"))
 	    (let ((nv (channel->float-vector)))
 	      (if (not (mus-arrays-equal? nv (float-vector-scale! (float-vector-add! (make-float-vector 9 .2) (float-vector .1 .2 .3)) 3.0)))
-		  (snd-display ";mix v at 0 scale-by 2 and 3: ~A" nv))))
+		  (snd-display "mix v at 0 scale-by 2 and 3: ~A" nv))))
 	  (revert-sound ind)
 	  (map-channel (lambda (y) 1.0))
 	  (env-channel '(0 0 1 1 2 0) 0 11)
@@ -21363,52 +21363,52 @@ EDITS: 2
 	    (mix-float-vector v 3)
 	    (let ((nv (channel->float-vector)))
 	      (if (not (mus-arrays-equal? nv (float-vector 0.000 0.200 0.400 0.700 1.000 1.300 0.800 0.600 0.400 0.200)))
-		  (snd-display ";mix v at 3 after env: ~A" nv))))
+		  (snd-display "mix v at 3 after env: ~A" nv))))
 	  (close-sound ind)))
       
       (let* ((ind (new-sound "test.snd" :size 100))
 	     (v (float-vector .1 .2 .3))
 	     (id (mix-float-vector v 10)))
 	(pad-channel 0 10)
-	(if (not (mix? id)) (snd-display ";padded mix not active?"))
-	(if (not (= (mix-position id) 20)) (snd-display ";after pad mix pos: ~A" (mix-position id)))
+	(if (not (mix? id)) (snd-display "padded mix not active?"))
+	(if (not (= (mix-position id) 20)) (snd-display "after pad mix pos: ~A" (mix-position id)))
 	(set! (mix-sync id) 2)
-	(if (not (= (mix-sync id) 2)) (snd-display ";set mix sync 2: ~A" (mix-sync id)))
-	(if (and full-test (< (mix-sync-max) 2)) (snd-display ";mix-sync-max: ~A" (mix-sync-max)))
+	(if (not (= (mix-sync id) 2)) (snd-display "set mix sync 2: ~A" (mix-sync id)))
+	(if (and full-test (< (mix-sync-max) 2)) (snd-display "mix-sync-max: ~A" (mix-sync-max)))
 	(pad-channel 50 10)
-	(if (not (mix? id)) (snd-display ";padded 50 mix not active?"))
-	(if (not (= (mix-position id) 20)) (snd-display ";after pad 50 mix pos: ~A" (mix-position id)))
+	(if (not (mix? id)) (snd-display "padded 50 mix not active?"))
+	(if (not (= (mix-position id) 20)) (snd-display "after pad 50 mix pos: ~A" (mix-position id)))
 	(undo 1)
 	(let ((id1 (mix-float-vector v 22))
 	      (id2 (mix-float-vector v 21)))
 	  (let ((vals (channel->float-vector 18 10)))
 	    (if (not (mus-arrays-equal? vals (float-vector 0.000 0.000 0.100 0.300 0.600 0.500 0.300 0.000 0.000 0.000)))
-		(snd-display ";mix 3 vs: ~A" vals)))
-	  (if (not (mix? id)) (snd-display ";mix 3vs 1 not active?"))
-	  (if (not (mix? id1)) (snd-display ";mix 3vs 2 not active?"))
-	  (if (not (mix? id2)) (snd-display ";mix 3vs 3 not active?"))
+		(snd-display "mix 3 vs: ~A" vals)))
+	  (if (not (mix? id)) (snd-display "mix 3vs 1 not active?"))
+	  (if (not (mix? id1)) (snd-display "mix 3vs 2 not active?"))
+	  (if (not (mix? id2)) (snd-display "mix 3vs 3 not active?"))
 	  (set! (mix-position id) 10)
 	  (let ((vals (channel->float-vector 18 10)))
 	    (if (not (mus-arrays-equal? vals (float-vector 0.000 0.000 0.000 0.100 0.300 0.500 0.300 0.000 0.000 0.000)))
-		(snd-display ";mix 3 vs then move first: ~A" vals))
+		(snd-display "mix 3 vs then move first: ~A" vals))
 	    (set! (mix-position id2) 30))
 	  (let ((vals (channel->float-vector 18 10)))
 	    (if (not (mus-arrays-equal? vals (float-vector 0.000 0.000 0.000 0.000 0.100 0.200 0.300 0.000 0.000 0.000)))
-		(snd-display ";mix 3 vs then move 2: ~A" vals)))
+		(snd-display "mix 3 vs then move 2: ~A" vals)))
 	  (scale-by 2.0)
-	  (if (not (mix? id)) (snd-display ";mix 3vs 1 scl not active?"))
-	  (if (not (mix? id1)) (snd-display ";mix 3vs 2 scl not active?"))
-	  (if (not (mix? id2)) (snd-display ";mix 3vs 3 scl not active?"))
+	  (if (not (mix? id)) (snd-display "mix 3vs 1 scl not active?"))
+	  (if (not (mix? id1)) (snd-display "mix 3vs 2 scl not active?"))
+	  (if (not (mix? id2)) (snd-display "mix 3vs 3 scl not active?"))
 	  (let ((vals (channel->float-vector 18 10)))
 	    (if (not (mus-arrays-equal? vals (float-vector 0.000 0.000 0.000 0.000 0.200 0.400 0.600 0.000 0.000 0.000)))
-		(snd-display ";mix 3 vs then move 2 scl: ~A" vals)))
+		(snd-display "mix 3 vs then move 2 scl: ~A" vals)))
 	  (delete-sample 15)
-	  (if (not (mix? id)) (snd-display ";mix 3vs 1 scl del not active?"))
-	  (if (not (mix? id1)) (snd-display ";mix 3vs 2 scl del not active?"))
-	  (if (not (mix? id2)) (snd-display ";mix 3vs 3 scl del not active?"))
-	  (if (not (= (mix-position id) 10)) (snd-display ";mix 3vs etc pos: ~A" (mix-position id)))
-	  (if (not (= (mix-position id1) 21)) (snd-display ";mix 3vs etc pos 1: ~A" (mix-position id1)))
-	  (if (not (= (mix-position id2) 29)) (snd-display ";mix 3vs etc pos 2: ~A" (mix-position id2))))
+	  (if (not (mix? id)) (snd-display "mix 3vs 1 scl del not active?"))
+	  (if (not (mix? id1)) (snd-display "mix 3vs 2 scl del not active?"))
+	  (if (not (mix? id2)) (snd-display "mix 3vs 3 scl del not active?"))
+	  (if (not (= (mix-position id) 10)) (snd-display "mix 3vs etc pos: ~A" (mix-position id)))
+	  (if (not (= (mix-position id1) 21)) (snd-display "mix 3vs etc pos 1: ~A" (mix-position id1)))
+	  (if (not (= (mix-position id2) 29)) (snd-display "mix 3vs etc pos 2: ~A" (mix-position id2))))
 	(close-sound ind))
       
       (let* ((ind (new-sound "test.snd" :size 15))
@@ -21416,22 +21416,22 @@ EDITS: 2
 	(set! (mix-amp-env id) '(0 0 1 1))
 	(let ((vals (channel->float-vector)))
 	  (if (not (mus-arrays-equal? vals (float-vector 0 0 0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1.0 0 0)))
-	      (snd-display ";ramp mix amp env: ~A" vals)))
+	      (snd-display "ramp mix amp env: ~A" vals)))
 	(set! (mix-amp-env id) #f)
-	(if (pair? (mix-amp-env id)) (snd-display ";set mix-amp-env to null: ~A" (mix-amp-env id)))
+	(if (pair? (mix-amp-env id)) (snd-display "set mix-amp-env to null: ~A" (mix-amp-env id)))
 	(set! (mix-speed id) 0.5)
-	(if (not (= (framples) 24)) (snd-display ";mix speed lengthens 24: ~A" (framples)))
+	(if (not (= (framples) 24)) (snd-display "mix speed lengthens 24: ~A" (framples)))
 	(set! (mix-speed id) 1.0)
 	(let ((vals (channel->float-vector)))
 	  (if (not (mus-arrays-equal? vals (float-vector 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0)))
-	      (snd-display ";return to mix original index: ~A" vals)))
+	      (snd-display "return to mix original index: ~A" vals)))
 	(set! (mix-amp-env id) '(0 0 1 1 2 1 3 0))
 	(set! (mix-speed id) 0.5)
 	(set! (mix-amp-env id) #f)
 	(set! (mix-speed id) 1.0)
 	(let ((vals (channel->float-vector)))
 	  (if (not (mus-arrays-equal? vals (float-vector 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0)))
-	      (snd-display ";return again to mix original index: ~A" vals)))
+	      (snd-display "return again to mix original index: ~A" vals)))
 	(close-sound ind))
       
       (let ((id (open-sound "oboe.snd")))
@@ -21439,7 +21439,7 @@ EDITS: 2
 	(let ((mix-id (car (mix-selection 3000 id 0))))
 	  (set! (mix-amp mix-id) .5)
 	  (if (fneq (mix-amp mix-id) .5)
-	      (snd-display ";mix-amp .5: ~A" (mix-amp mix-id))))
+	      (snd-display "mix-amp .5: ~A" (mix-amp mix-id))))
 	(scale-by .5)
 	(undo)
 	(close-sound id))
@@ -21447,23 +21447,23 @@ EDITS: 2
       
       (let* ((ind (open-sound "2.snd"))
 	     (md (car (mix "1a.snd" 1000 0 ind 1 #t))))
-	(if (fneq (maxamp ind 1) .1665) (snd-display ";maxamp after mix into chan 2: ~A" (maxamp ind 1)))
+	(if (fneq (maxamp ind 1) .1665) (snd-display "maxamp after mix into chan 2: ~A" (maxamp ind 1)))
 	(set! (mix-amp md) 0.0)
 	(if (not (and (equal? (edits ind 0) '(0 0))
 		      (equal? (edits ind 1) '(2 0))))
-	    (snd-display ";mix into chan2 zeroed: ~A ~A" (edits ind 0) (edits ind 1)))
-	(if (fneq (maxamp ind 1) .066) (snd-display ";maxamp after mix zeroed into chan 2: ~A" (maxamp ind 1)))
+	    (snd-display "mix into chan2 zeroed: ~A ~A" (edits ind 0) (edits ind 1)))
+	(if (fneq (maxamp ind 1) .066) (snd-display "maxamp after mix zeroed into chan 2: ~A" (maxamp ind 1)))
 	(set! (mix-amp md) 0.5)
-	(if (fneq (maxamp ind 1) .116) (snd-display ";maxamp after mix 0.5 into chan 2: ~A" (maxamp ind 1)))
+	(if (fneq (maxamp ind 1) .116) (snd-display "maxamp after mix 0.5 into chan 2: ~A" (maxamp ind 1)))
 	(set! (mix-speed md) 2.0)
 	(if (fneq (/ (mix-length md) (mus-sound-framples "1a.snd")) 0.5)
-	    (snd-display ";mix srate chan 2: ~A ~A" (mix-length md) (mus-sound-framples "1a.snd")))
+	    (snd-display "mix srate chan 2: ~A ~A" (mix-length md) (mus-sound-framples "1a.snd")))
 	(update-time-graph)
 	(set! (mix-speed md) 0.5)
 	(update-time-graph)
 	(set! (mix-amp md) 1.0)
 	(if (fneq (maxamp ind 1) .166)
-	    (snd-display ";non-sync mix-speed maxamp: ~A" (maxamp ind 1)))
+	    (snd-display "non-sync mix-speed maxamp: ~A" (maxamp ind 1)))
 	(set! (mix-amp-env md) '(0 0 1 1 2 0))
 	(update-time-graph)
 	(set! (mix-speed md) 1.0)
@@ -21477,7 +21477,7 @@ EDITS: 2
 	  (if (or (not (= (framples ind 0) len))
 		  (fneq (maxamp ind 0) (* 2 m0))
 		  (fneq (maxamp ind 1) (* 2 m1)))
-	      (snd-display ";mix twice syncd: 0: ~A -> ~A, m1: ~A -> ~A, len: ~A -> ~A"
+	      (snd-display "mix twice syncd: 0: ~A -> ~A, m1: ~A -> ~A, len: ~A -> ~A"
 			   m0 (maxamp ind 0) m1 (maxamp ind 1) len (framples ind 0))))
 	(set! (hook-functions mix-release-hook) ())
 	(close-sound ind))
@@ -21496,8 +21496,8 @@ EDITS: 2
 	    (set! (v 2) .5)
 	    (set! (v 5) .25)
 	    (if (not (mus-arrays-equal? samps v))
-		(snd-display ";mix 1->1: ~A ~A" samps v)))
-	  (if (not (mix? tag)) (snd-display ";mix 1->1 tag: ~A" tag))
+		(snd-display "mix 1->1: ~A ~A" samps v)))
+	  (if (not (mix? tag)) (snd-display "mix 1->1 tag: ~A" tag))
 	  (undo))
 	(let ((tag (car (mix "test.snd" 5))))
 	  (let ((samps (channel->float-vector 0 20))
@@ -21505,8 +21505,8 @@ EDITS: 2
 	    (set! (v 7) .5)
 	    (set! (v 10) .25)
 	    (if (not (mus-arrays-equal? samps v))
-		(snd-display ";mix 1->1 at 5: ~A ~A" samps v)))
-	  (if (not (mix? tag)) (snd-display ";mix 1->1 at 5 tag: ~A" tag))
+		(snd-display "mix 1->1 at 5: ~A ~A" samps v)))
+	  (if (not (mix? tag)) (snd-display "mix 1->1 at 5 tag: ~A" tag))
 	  (undo))
 	(let ((tag (mix "test.snd" 0 0 ind 0 #f)))
 	  (let ((samps (channel->float-vector 0 20))
@@ -21514,8 +21514,8 @@ EDITS: 2
 	    (set! (v 2) .5)
 	    (set! (v 5) .25)
 	    (if (not (mus-arrays-equal? samps v))
-		(snd-display ";mix 1->1 at 0 #f: ~A ~A" samps v)))
-	  (if (mix? tag) (snd-display ";mix 1->1 at 5 #f tag: ~A" tag))
+		(snd-display "mix 1->1 at 0 #f: ~A ~A" samps v)))
+	  (if (mix? tag) (snd-display "mix 1->1 at 5 #f tag: ~A" tag))
 	  (undo))
 	(let ((indout (new-sound "test.snd" 2 22050 mus-ldouble mus-next "mix tests")))
 	  (insert-silence 0 10 indout 0)
@@ -21532,8 +21532,8 @@ EDITS: 2
 	    (set! (v 2) .95)
 	    (set! (v 5) .125)
 	    (if (not (mus-arrays-equal? samps v))
-		(snd-display ";mix 2->1: ~A ~A" samps v)))
-	  (if (not (mix? tag)) (snd-display ";mix 2->1 tag: ~A" tag))
+		(snd-display "mix 2->1: ~A ~A" samps v)))
+	  (if (not (mix? tag)) (snd-display "mix 2->1 tag: ~A" tag))
 	  (undo))
 	(let ((tag (car (mix "test.snd" 5 1))))
 	  (let ((samps (channel->float-vector 0 20))
@@ -21541,8 +21541,8 @@ EDITS: 2
 	    (set! (v 7) .95)
 	    (set! (v 10) .125)
 	    (if (not (mus-arrays-equal? samps v))
-		(snd-display ";mix 2->1 at 5: ~A ~A" samps v)))
-	  (if (not (mix? tag)) (snd-display ";mix 2->1 at 5 tag: ~A" tag))
+		(snd-display "mix 2->1 at 5: ~A ~A" samps v)))
+	  (if (not (mix? tag)) (snd-display "mix 2->1 at 5 tag: ~A" tag))
 	  (undo))
 	(close-sound ind))
 
@@ -21555,13 +21555,13 @@ EDITS: 2
 	    (set! (v 5) .125)
 	    (let ((samps1 (channel->float-vector 0 20 ind 1)))
 	      (if (not (mus-arrays-equal? samps1 v))
-		  (snd-display ";mix 1->1 (2): ~A ~A" samps1 v)))
+		  (snd-display "mix 1->1 (2): ~A ~A" samps1 v)))
 	    (set! (v 2) .5)
 	    (set! (v 5) .25)
 	    (let ((samps0 (channel->float-vector 0 20 ind 0)))
 	      (if (not (mus-arrays-equal? samps0 v))
-		  (snd-display ";mix 1->1 (3): ~A ~A" samps0 v))))
-	  (if (not (mix? tag)) (snd-display ";mix 1->1 tag: ~A" tag)))
+		  (snd-display "mix 1->1 (3): ~A ~A" samps0 v))))
+	  (if (not (mix? tag)) (snd-display "mix 1->1 tag: ~A" tag)))
 	(undo 1 ind 0)
 	(undo 1 ind 1)
 	(let ((tag (mix "test.snd" 0 1 ind 1 #f))) ; samp:0, in-chan: 1
@@ -21569,12 +21569,12 @@ EDITS: 2
 		(v (make-float-vector 20)))
 	    (let ((samps0 (channel->float-vector 0 20 ind 0)))
 	      (if (not (mus-arrays-equal? samps0 v))
-		  (snd-display ";mix 1->1 (4): ~A ~A" samps0 v)))
+		  (snd-display "mix 1->1 (4): ~A ~A" samps0 v)))
 	    (set! (v 2) .95)
 	    (set! (v 5) .125)
 	    (if (not (mus-arrays-equal? samps1 v))
-		(snd-display ";mix 1->1 (5): ~A ~A" samps1 v)))
-	  (if (mix? tag) (snd-display ";mix 1->1 tag (5): ~A" tag)))
+		(snd-display "mix 1->1 (5): ~A ~A" samps1 v)))
+	  (if (mix? tag) (snd-display "mix 1->1 tag (5): ~A" tag)))
 	(undo 1 ind 1)
 	(set! (sync ind) 1)
 	(mix "test.snd" 0 #t)
@@ -21584,11 +21584,11 @@ EDITS: 2
 	    (set! (v 2) .5)
 	    (set! (v 5) .25)
 	    (if (not (mus-arrays-equal? samps0 v))
-		(snd-display ";mix 1->1 (6): ~A ~A" samps0 v)))
+		(snd-display "mix 1->1 (6): ~A ~A" samps0 v)))
 	  (set! (v 2) .95)
 	  (set! (v 5) .125)
 	  (if (not (mus-arrays-equal? samps1 v))
-	      (snd-display ";mix 1->1 (7): ~A ~A" samps1 v)))
+	      (snd-display "mix 1->1 (7): ~A ~A" samps1 v)))
 	(undo)
 	(close-sound ind))
       (delete-file "test.snd")
@@ -21600,25 +21600,25 @@ EDITS: 2
 	     (m1 (mix-float-vector data 321 ind 0 #t))
 	     (m2 (mix-float-vector data 123 ind 0 #t)))
 	(set! (mix-position m1) 500)
-	(if (not (= (mix-position m1) 500)) (snd-display ";mix-position m1[0]: ~A" (mix-position m1)))
-	(if (not (= (mix-position m2) 123)) (snd-display ";mix-position m2[0]: ~A" (mix-position m2)))
+	(if (not (= (mix-position m1) 500)) (snd-display "mix-position m1[0]: ~A" (mix-position m1)))
+	(if (not (= (mix-position m2) 123)) (snd-display "mix-position m2[0]: ~A" (mix-position m2)))
 	(undo)
 	(set! (mix-position m2) 500)
-	(if (not (= (mix-position m2) 500)) (snd-display ";mix-position m2[1]: ~A" (mix-position m2)))
-	(if (not (= (mix-position m1) 321)) (snd-display ";mix-position m1[1]: ~A" (mix-position m1)))
+	(if (not (= (mix-position m2) 500)) (snd-display "mix-position m2[1]: ~A" (mix-position m2)))
+	(if (not (= (mix-position m1) 321)) (snd-display "mix-position m1[1]: ~A" (mix-position m1)))
 	(undo)
 	(insert-silence 0 100)
-	(if (not (= (mix-position m1) 421)) (snd-display ";mix-position m1[2]: ~A" (mix-position m1)))
-	(if (not (= (mix-position m2) 223)) (snd-display ";mix-position m2[2]: ~A" (mix-position m2)))
+	(if (not (= (mix-position m1) 421)) (snd-display "mix-position m1[2]: ~A" (mix-position m1)))
+	(if (not (= (mix-position m2) 223)) (snd-display "mix-position m2[2]: ~A" (mix-position m2)))
 	(delete-samples 0 50)
-	(if (not (= (mix-position m1) 371)) (snd-display ";mix-position m1[3]: ~A" (mix-position m1)))
-	(if (not (= (mix-position m2) 173)) (snd-display ";mix-position m2[3]: ~A" (mix-position m2)))
+	(if (not (= (mix-position m1) 371)) (snd-display "mix-position m1[3]: ~A" (mix-position m1)))
+	(if (not (= (mix-position m2) 173)) (snd-display "mix-position m2[3]: ~A" (mix-position m2)))
 	(undo 2)
 	(set! (mix-position m2) 500)
 	(undo)
 	(scale-channel 0.5 1000 100)
-	(if (not (= (mix-position m2) 123)) (snd-display ";mix-position m2[5]: ~A" (mix-position m2)))
-	(if (not (= (mix-position m1) 321)) (snd-display ";mix-position m1[5]: ~A" (mix-position m1)))
+	(if (not (= (mix-position m2) 123)) (snd-display "mix-position m2[5]: ~A" (mix-position m2)))
+	(if (not (= (mix-position m1) 321)) (snd-display "mix-position m1[5]: ~A" (mix-position m1)))
 	(undo)
 	(set! (mix-position m2) 500)
 	(undo)
@@ -21627,13 +21627,13 @@ EDITS: 2
 	(ramp-channel 0.0 1.0 3000 100)
 	(catch #t
 	  (lambda ()
-	    (if (not (= (mix-position m2) 123)) (snd-display ";mix-position m2[7]: ~A" (mix-position m2)))
-	    (if (not (= (mix-position m1) 321)) (snd-display ";mix-position m1[7]: ~A" (mix-position m1))))
-	  (lambda args (snd-display ";mix-position trouble: ~A" args)))
+	    (if (not (= (mix-position m2) 123)) (snd-display "mix-position m2[7]: ~A" (mix-position m2)))
+	    (if (not (= (mix-position m1) 321)) (snd-display "mix-position m1[7]: ~A" (mix-position m1))))
+	  (lambda args (snd-display "mix-position trouble: ~A" args)))
 	(undo)
 	(delay-channel-mixes 200 100 ind 0)
-	(if (not (= (mix-position m2) 123)) (snd-display ";delay-channel mixes mix-position m2: ~A" (mix-position m2)))
-	(if (not (= (mix-position m1) 421)) (snd-display ";delay-channel-mixes mix-position m1: ~A" (mix-position m1)))
+	(if (not (= (mix-position m2) 123)) (snd-display "delay-channel mixes mix-position m2: ~A" (mix-position m2)))
+	(if (not (= (mix-position m1) 421)) (snd-display "delay-channel-mixes mix-position m1: ~A" (mix-position m1)))
 	(check-mix-tags ind 0)
 	(close-sound ind))
       
@@ -21648,35 +21648,35 @@ EDITS: 2
 			 (set! (mix-position m2) 1)))
 	  (if (not (and (= (mix-position m1) 0)
 			(= (mix-position m2) 1)))
-	      (snd-display ";as-one-edit positions: ~A ~A" (mix-position m1) (mix-position m2)))
+	      (snd-display "as-one-edit positions: ~A ~A" (mix-position m1) (mix-position m2)))
 	  (undo-channel)
 	  (if (not (and (= (mix-position m1) 900000)
 			(= (mix-position m2) 400000)))
-	      (snd-display ";as-one-edit positions after undo: (~A): ~A (~A): ~A" m1 (mix-position m1) m2 (mix-position m2)))
+	      (snd-display "as-one-edit positions after undo: (~A): ~A (~A): ~A" m1 (mix-position m1) m2 (mix-position m2)))
 	  (redo-channel)
 	  (if (not (and (= (mix-position m1) 0)
 			(= (mix-position m2) 1)))
-	      (snd-display ";as-one-edit positions after redo: ~A ~A" (mix-position m1) (mix-position m2)))
+	      (snd-display "as-one-edit positions after redo: ~A ~A" (mix-position m1) (mix-position m2)))
 	  (close-sound ind)))
       
       (let ((ind (open-sound "2.snd")))
 	(make-selection 0 10000 ind)
 	(if (not (= (selection-chans) 2))
-	    (snd-display ";stereo selection: ~A" (selection-chans)))
+	    (snd-display "stereo selection: ~A" (selection-chans)))
 	(set! (sync ind) #t)
 	(let ((md (car (mix-selection 500 ind))))
 	  (if (not (mix? (integer->mix (+ 1 (mix->integer md)))))
-	      (snd-display ";where is second mix? ~A ~A" md (mixes)))
+	      (snd-display "where is second mix? ~A ~A" md (mixes)))
 	  (if (not (= (edit-position ind 0) 1))
-	      (snd-display ";edit-position 0 after stereo mix selection: ~A" (edit-position ind 0)))
+	      (snd-display "edit-position 0 after stereo mix selection: ~A" (edit-position ind 0)))
 	  (if (not (= (edit-position ind 1) 1))
-	      (snd-display ";edit-position 1 after stereo mix selection: ~A" (edit-position ind 1)))
+	      (snd-display "edit-position 1 after stereo mix selection: ~A" (edit-position ind 1)))
 	  (set! (sync ind) #f)
 	  (undo-edit 1 ind 0)
 	  (delete-sample 25 ind 0)
 	  (set! (mix-position (integer->mix (+ 1 (mix->integer md)))) 750)
 	  (if (not (= (edit-position ind 1) 2))
-	      (snd-display ";edit-position 1 after stereo mix selection moved: ~A" (edit-position ind 2)))
+	      (snd-display "edit-position 1 after stereo mix selection moved: ~A" (edit-position ind 2)))
 	  (revert-sound ind)
 	  (close-sound ind)))
       
@@ -21694,10 +21694,10 @@ EDITS: 2
 	      (let ((ho-val (ho))
 		    (hi-val (hi)))
 		(when (fneq hi-val (* i -.01))
-		  (snd-display ";mix-reader at ~A from 0: ~A" i hi-val)
+		  (snd-display "mix-reader at ~A from 0: ~A" i hi-val)
 		  (set! happy #f))
 		(when (fneq ho-val (* (+ i 5) -.01))
-		  (snd-display ";mix-reader at ~A from 5: ~A" i ho-val)
+		  (snd-display "mix-reader at ~A from 5: ~A" i ho-val)
 		  (set! happy #f))))))
 	(revert-sound ind)
 	(set! v (make-float-vector 21 0.5))
@@ -21712,10 +21712,10 @@ EDITS: 2
 	      (let ((ho-val (ho))
 		    (hi-val (hi)))
 		(when (fneq hi-val (* i .025))
-		  (snd-display ";mix-reader env'd at ~A from 0: ~A" i hi-val)
+		  (snd-display "mix-reader env'd at ~A from 0: ~A" i hi-val)
 		  (set! happy #f))
 		(when (fneq ho-val (* (+ i 10) .025))
-		  (snd-display ";mix-reader env'd at ~A from 10: ~A" i ho-val)
+		  (snd-display "mix-reader env'd at ~A from 10: ~A" i ho-val)
 		  (set! happy #f))))))
 	(close-sound ind))
       
@@ -21724,33 +21724,33 @@ EDITS: 2
 	(set! (mix-position id) 100)
 	(if (not (and (= (mix-position id) 100)
 		      (= (edit-position ind 0) 2)))
-	    (snd-display ";mix-position init: ~A ~A" (mix-position id) (edit-position ind 0)))
+	    (snd-display "mix-position init: ~A ~A" (mix-position id) (edit-position ind 0)))
 	(set! (mix-position id) 100)
 	(if (not (and (= (mix-position id) (mix-position id))
 		      (= (edit-position ind 0) 2)))
-	    (snd-display ";mix-position 2 (no-op): ~A ~A" (mix-position id) (edit-position ind 0)))
+	    (snd-display "mix-position 2 (no-op): ~A ~A" (mix-position id) (edit-position ind 0)))
 	(set! (mix-amp id) 1.0)
 	(if (or (fneq (mix-amp id) 1.0)
 		(not (= (edit-position ind 0) 2)))
-	    (snd-display ";mix-amp no-op: ~A ~A" (mix-amp id) (edit-position ind 0)))
+	    (snd-display "mix-amp no-op: ~A ~A" (mix-amp id) (edit-position ind 0)))
 	(set! (mix-amp id) 0.5)
 	(if (or (fneq (mix-amp id) 0.5)
 		(not (= (edit-position ind 0) 3)))
-	    (snd-display ";mix-amp .5: ~A ~A" (mix-amp id) (edit-position ind 0)))
+	    (snd-display "mix-amp .5: ~A ~A" (mix-amp id) (edit-position ind 0)))
 	(set! (mix-speed id) 1.0)
 	(if (or (fneq (mix-speed id) 1.0)
 		(not (= (edit-position ind 0) 3)))
-	    (snd-display ";mix-speed no-op: ~A ~A" (mix-speed id) (edit-position ind 0)))
+	    (snd-display "mix-speed no-op: ~A ~A" (mix-speed id) (edit-position ind 0)))
 	(set! (mix-speed id) .5)
 	(if (or (fneq (mix-speed id) 0.5)
 		(not (= (edit-position ind 0) 4)))
-	    (snd-display ";mix-speed .5: ~A ~A" (mix-speed id) (edit-position ind 0)))
+	    (snd-display "mix-speed .5: ~A ~A" (mix-speed id) (edit-position ind 0)))
 	(set! (mix-amp-env id) '(0 0 1 1))
 	(if (not (= (edit-position ind 0) 5))
-	    (snd-display ";mix-amp-env init: ~A ~A" (mix-amp-env id) (edit-position ind 0)))
+	    (snd-display "mix-amp-env init: ~A ~A" (mix-amp-env id) (edit-position ind 0)))
 	(set! (mix-amp-env id) '(0 0 1 1))
 	(if (not (= (edit-position ind 0) 5))
-	    (snd-display ";mix-amp-env no-op: ~A ~A" (mix-amp-env id) (edit-position ind 0)))
+	    (snd-display "mix-amp-env no-op: ~A ~A" (mix-amp-env id) (edit-position ind 0)))
 	(close-sound ind))
       
       (let ((ind (new-sound "test.snd" 1 22050 mus-ldouble mus-next "color-mix tests" 300))
@@ -21759,21 +21759,21 @@ EDITS: 2
 	(let ((mix1 (mix-float-vector (make-float-vector 10 .5) 10)))
 	  (if (not (and (member (color->list *mix-color*)      '((1.0 1.0 0.0) (1.0 1.0 0.0 1.0)))
 			(member (color->list (mix-color mix1)) '((1.0 1.0 0.0) (1.0 1.0 0.0 1.0)))))
-	      (snd-display ";set mix-color: ~A ~A ~A ~A" 
+	      (snd-display "set mix-color: ~A ~A ~A ~A" 
 			   (color->list *mix-color*) (color->list (mix-color mix1)) '(1.0 1.0 0.0) (color->list old-color)))
 	  (set! *mix-color* old-color)
 	  (save-mix mix1 "test1.snd")
 	  (let ((ind1 (open-sound "test1.snd")))
-	    (if (not (= (framples ind1) (mix-length mix1))) (snd-display ";save-mix framples: ~A ~A" (mix-length mix1) (framples ind1)))
+	    (if (not (= (framples ind1) (mix-length mix1))) (snd-display "save-mix framples: ~A ~A" (mix-length mix1) (framples ind1)))
 	    (if (not (mus-arrays-equal? (channel->float-vector 0 10) (mix->float-vector mix1)))
-		(snd-display ";save-mix data: ~A ~A" (mix->float-vector mix1) (channel->float-vector 0 10 ind1)))
+		(snd-display "save-mix data: ~A ~A" (mix->float-vector mix1) (channel->float-vector 0 10 ind1)))
 	    
 	    (define mix7 (integer->mix 71231))
-	    (if (mix? mix7) (snd-display ";mix? ~A~%" mix7))
+	    (if (mix? mix7) (snd-display "mix? ~A~%" mix7))
 	    (catch #t 
 	      (lambda () 
 		(save-mix mix7 "test.snd")
-		(snd-display ";save-mix of a bad mix??"))
+		(snd-display "save-mix of a bad mix??"))
 	      (lambda args #f))
 	    (close-sound ind1)
 	    (if (file-exists? "test1.snd") (delete-file "test1.snd"))))
@@ -21782,15 +21782,15 @@ EDITS: 2
       (let ((ind (new-sound "test.snd" 1 22050 mus-ldouble mus-next "lock mix tests" 300)))
 	(let ((mix1 (mix-float-vector (make-float-vector 10 .5) 10)))
 	  (set! (mix-amp mix1) 0.0))
-	(if (fneq (maxamp ind 0) 0.0) (snd-display ";delete-mix maxamp: ~A" (maxamp ind 0)))
+	(if (fneq (maxamp ind 0) 0.0) (snd-display "delete-mix maxamp: ~A" (maxamp ind 0)))
 	(undo-channel 1 ind 0)
-	(if (fneq (maxamp ind 0) 0.5) (snd-display ";undelete-mix maxamp: ~A" (maxamp ind 0)))
+	(if (fneq (maxamp ind 0) 0.5) (snd-display "undelete-mix maxamp: ~A" (maxamp ind 0)))
 	(redo-channel 1 ind 0)
-	(if (fneq (maxamp ind 0) 0.0) (snd-display ";redelete-mix maxamp: ~A" (maxamp ind 0)))
+	(if (fneq (maxamp ind 0) 0.0) (snd-display "redelete-mix maxamp: ~A" (maxamp ind 0)))
 	(undo 2)
-	(if (fneq (maxamp ind 0) 0.0) (snd-display ";no delete-mix maxamp: ~A" (maxamp ind 0)))
+	(if (fneq (maxamp ind 0) 0.0) (snd-display "no delete-mix maxamp: ~A" (maxamp ind 0)))
 	(redo)
-	(if (fneq (maxamp ind 0) 0.5) (snd-display ";reundelete-mix maxamp: ~A" (maxamp ind 0)))
+	(if (fneq (maxamp ind 0) 0.5) (snd-display "reundelete-mix maxamp: ~A" (maxamp ind 0)))
 	(close-sound ind))
       
       (let* ((ind (new-sound "test.snd" :size 100))
@@ -21799,175 +21799,175 @@ EDITS: 2
 	
 	;; pad-channel
 	(if (not (mus-arrays-equal? (channel->float-vector 10 10) fv5))
-	    (snd-display ";float-vector .5 at 11: ~A" (channel->float-vector 10 10)))
+	    (snd-display "float-vector .5 at 11: ~A" (channel->float-vector 10 10)))
 	(pad-channel 0 10)
 	(if (not (mix? id))
-	    (snd-display ";pad locked mix? ~A" (mix? id)))
+	    (snd-display "pad locked mix? ~A" (mix? id)))
 	(if (not (= (mix-position id) 21))
-	    (snd-display ";float-vector .5 at 21 position: ~A" (mix-position id)))
+	    (snd-display "float-vector .5 at 21 position: ~A" (mix-position id)))
 	(if (not (mus-arrays-equal? (channel->float-vector 20 10) fv5))
-	    (snd-display ";float-vector .5 at 21: ~A" (channel->float-vector 20 10)))
+	    (snd-display "float-vector .5 at 21: ~A" (channel->float-vector 20 10)))
 	(if (not (mus-arrays-equal? (channel->float-vector 10 10) (make-float-vector 10)))
-	    (snd-display ";float-vector .5 at 21 at 10: ~A" (channel->float-vector 10 10)))
+	    (snd-display "float-vector .5 at 21 at 10: ~A" (channel->float-vector 10 10)))
 	(pad-channel 30 10)
 	(if (not (mix? id))
-	    (snd-display ";pad 30 locked mix? ~A" (mix? id)))
+	    (snd-display "pad 30 locked mix? ~A" (mix? id)))
 	(if (not (= (mix-position id) 21))
-	    (snd-display ";float-vector .5 at 21 position 30: ~A" (mix-position id)))
+	    (snd-display "float-vector .5 at 21 position 30: ~A" (mix-position id)))
 	(if (not (mus-arrays-equal? (channel->float-vector 20 10) fv5))
-	    (snd-display ";float-vector .5 at 21 30: ~A" (channel->float-vector 20 10)))
+	    (snd-display "float-vector .5 at 21 30: ~A" (channel->float-vector 20 10)))
 	(pad-channel 150 10)
 	(if (not (mix? id))
-	    (snd-display ";pad 150 locked mix? ~A" (mix? id)))
+	    (snd-display "pad 150 locked mix? ~A" (mix? id)))
 	(if (not (= (mix-position id) 21))
-	    (snd-display ";float-vector .5 at 21 position 150: ~A" (mix-position id)))
+	    (snd-display "float-vector .5 at 21 position 150: ~A" (mix-position id)))
 	(if (not (mus-arrays-equal? (channel->float-vector 20 10) fv5))
-	    (snd-display ";float-vector .5 at 21 150: ~A" (channel->float-vector 20 10)))
+	    (snd-display "float-vector .5 at 21 150: ~A" (channel->float-vector 20 10)))
 	(pad-channel 20 10)
 	(if (not (mix? id))
-	    (snd-display ";pad 20 locked mix? ~A" (mix? id)))
+	    (snd-display "pad 20 locked mix? ~A" (mix? id)))
 	(if (not (= (mix-position id) 31))
-	    (snd-display ";float-vector .5 at 31 position: ~A" (mix-position id)))
+	    (snd-display "float-vector .5 at 31 position: ~A" (mix-position id)))
 	(if (not (mus-arrays-equal? (channel->float-vector 30 10) fv5))
-	    (snd-display ";float-vector .5 at 31: ~A" (channel->float-vector 30 10)))
+	    (snd-display "float-vector .5 at 31: ~A" (channel->float-vector 30 10)))
 	(pad-channel 32 3)
-					;	    (if (mix? id) (snd-display ";pad within mix but exists?: ~A" (mix? id)))
-	(if (not (mix? id)) (snd-display ";pad within mix but no mix?: ~A" (mix? id)))
+					;	    (if (mix? id) (snd-display "pad within mix but exists?: ~A" (mix? id)))
+	(if (not (mix? id)) (snd-display "pad within mix but no mix?: ~A" (mix? id)))
 	(if (not (mus-arrays-equal? (channel->float-vector 30 10) (float-vector 0 .5 0 0 0 .5 .5 .5 .5 0)))
-	    (snd-display ";float-vector .5 at 31 pad at 32: ~A" (channel->float-vector 30 10)))
+	    (snd-display "float-vector .5 at 31 pad at 32: ~A" (channel->float-vector 30 10)))
 	
 	(set! (edit-position) 1)
-	(if (not (mix? id)) (snd-display ";mix float-vector after reset edit position: ~A" (mix? id)))
-	(if (not (= (mix-position id) 11)) (snd-display ";mix float-vector position after reset edit position: ~A" (mix-position id)))
+	(if (not (mix? id)) (snd-display "mix float-vector after reset edit position: ~A" (mix? id)))
+	(if (not (= (mix-position id) 11)) (snd-display "mix float-vector position after reset edit position: ~A" (mix-position id)))
 	(if (not (mus-arrays-equal? (channel->float-vector 10 10) fv5))
-	    (snd-display ";float-vector .5 at 11 after reset edit: ~A" (channel->float-vector 10 10)))
+	    (snd-display "float-vector .5 at 11 after reset edit: ~A" (channel->float-vector 10 10)))
 	
 	;; delete
 	(delete-samples 0 10)
 	(if (not (mix? id))
-	    (snd-display ";delete locked mix? ~A" (mix? id)))
+	    (snd-display "delete locked mix? ~A" (mix? id)))
 	(if (not (= (mix-position id) 1))
-	    (snd-display ";float-vector .5 at 1 position: ~A" (mix-position id)))
+	    (snd-display "float-vector .5 at 1 position: ~A" (mix-position id)))
 	(if (not (mus-arrays-equal? (channel->float-vector 0 10) fv5))
-	    (snd-display ";float-vector .5 at 1: ~A" (channel->float-vector 0 10)))
+	    (snd-display "float-vector .5 at 1: ~A" (channel->float-vector 0 10)))
 	(delete-samples 30 10)
 	(if (not (mix? id))
-	    (snd-display ";delete 30 locked mix? ~A" (mix? id)))
+	    (snd-display "delete 30 locked mix? ~A" (mix? id)))
 	(if (not (= (mix-position id) 1))
-	    (snd-display ";float-vector .5 at 1 position del 30: ~A" (mix-position id)))
+	    (snd-display "float-vector .5 at 1 position del 30: ~A" (mix-position id)))
 	(if (not (mus-arrays-equal? (channel->float-vector 0 10) fv5))
-	    (snd-display ";float-vector .5 at 1 del 30: ~A" (channel->float-vector 0 10)))
+	    (snd-display "float-vector .5 at 1 del 30: ~A" (channel->float-vector 0 10)))
 	(delete-samples 3 3)
-					;	    (if (mix? id) (snd-display ";delete within mix but exists?: ~A" (mix? id)))
-	(if (not (mix? id)) (snd-display ";delete within mix but no mix?: ~A" (mix? id)))
+					;	    (if (mix? id) (snd-display "delete within mix but exists?: ~A" (mix? id)))
+	(if (not (mix? id)) (snd-display "delete within mix but no mix?: ~A" (mix? id)))
 	(if (not (mus-arrays-equal? (channel->float-vector 0 10) (float-vector 0 .5 .5 0 0 0 0 0 0 0)))
-	    (snd-display ";float-vector .5 at 1 del at 3: ~A" (channel->float-vector 0 10)))
+	    (snd-display "float-vector .5 at 1 del at 3: ~A" (channel->float-vector 0 10)))
 	
 	(set! (edit-position) 1)
-	(if (not (mix? id)) (snd-display ";mix float-vector after del reset edit position: ~A" (mix? id)))
-	(if (not (= (mix-position id) 11)) (snd-display ";mix float-vector position after del reset edit position: ~A" (mix-position id)))
+	(if (not (mix? id)) (snd-display "mix float-vector after del reset edit position: ~A" (mix? id)))
+	(if (not (= (mix-position id) 11)) (snd-display "mix float-vector position after del reset edit position: ~A" (mix-position id)))
 	(if (not (mus-arrays-equal? (channel->float-vector 10 10) fv5))
-	    (snd-display ";float-vector .5 at 11 after del reset edit: ~A" (channel->float-vector 10 10)))
+	    (snd-display "float-vector .5 at 11 after del reset edit: ~A" (channel->float-vector 10 10)))
 	
 	;; change
 	(set! (samples 0 5) (make-float-vector 5 .6))
 	(if (not (mix? id))
-	    (snd-display ";set locked mix? ~A" (mix? id)))
+	    (snd-display "set locked mix? ~A" (mix? id)))
 	(if (not (= (mix-position id) 11))
-	    (snd-display ";float-vector .5 at 11 set position: ~A" (mix-position id)))
+	    (snd-display "float-vector .5 at 11 set position: ~A" (mix-position id)))
 	(if (not (mus-arrays-equal? (channel->float-vector 10 10) fv5))
-	    (snd-display ";float-vector .5 at 11 set: ~A" (channel->float-vector 10 10)))
+	    (snd-display "float-vector .5 at 11 set: ~A" (channel->float-vector 10 10)))
 	(set! (samples 20 5) (make-float-vector 5 .7))
 	(if (not (mix? id))
-	    (snd-display ";set 20 locked mix? ~A" (mix? id)))
+	    (snd-display "set 20 locked mix? ~A" (mix? id)))
 	(if (not (= (mix-position id) 11))
-	    (snd-display ";float-vector .5 at 11 set 20 position: ~A" (mix-position id)))
+	    (snd-display "float-vector .5 at 11 set 20 position: ~A" (mix-position id)))
 	(if (not (mus-arrays-equal? (channel->float-vector 10 10) fv5))
-	    (snd-display ";float-vector .5 at 11 set 20: ~A" (channel->float-vector 10 10)))
+	    (snd-display "float-vector .5 at 11 set 20: ~A" (channel->float-vector 10 10)))
 	(set! (samples 12 2) (float-vector -.5 .8))
-					;	    (if (mix? id) (snd-display ";set within mix but exists?: ~A" (mix? id)))
-	(if (not (mix? id)) (snd-display ";set within mix but no mix?: ~A" (mix? id)))
+					;	    (if (mix? id) (snd-display "set within mix but exists?: ~A" (mix? id)))
+	(if (not (mix? id)) (snd-display "set within mix but no mix?: ~A" (mix? id)))
 	(if (not (mus-arrays-equal? (channel->float-vector 10 10) (float-vector 0 .5 -.5 .8 .5 .5 0 0 0 0)))
-	    (snd-display ";float-vector .5 at 11 set at 12: ~A" (channel->float-vector 10 10)))
+	    (snd-display "float-vector .5 at 11 set at 12: ~A" (channel->float-vector 10 10)))
 	
 	(set! (edit-position) 1)
-	(if (not (mix? id)) (snd-display ";mix float-vector after set reset edit position: ~A" (mix? id)))
-	(if (not (= (mix-position id) 11)) (snd-display ";mix float-vector position after set reset edit position: ~A" (mix-position id)))
+	(if (not (mix? id)) (snd-display "mix float-vector after set reset edit position: ~A" (mix? id)))
+	(if (not (= (mix-position id) 11)) (snd-display "mix float-vector position after set reset edit position: ~A" (mix-position id)))
 	(if (not (mus-arrays-equal? (channel->float-vector 10 10) fv5))
-	    (snd-display ";float-vector .5 at 11 after set reset edit: ~A" (channel->float-vector 10 10)))
+	    (snd-display "float-vector .5 at 11 after set reset edit: ~A" (channel->float-vector 10 10)))
 	
 	;; scale
 	(scale-channel 2.0)
 	(if (not (mix? id))
-	    (snd-display ";scale locked mix? ~A" (mix? id)))
+	    (snd-display "scale locked mix? ~A" (mix? id)))
 	(if (not (= (mix-position id) 11))
-	    (snd-display ";float-vector .5 at 11 scale position: ~A" (mix-position id)))
+	    (snd-display "float-vector .5 at 11 scale position: ~A" (mix-position id)))
 	(if (not (mus-arrays-equal? (channel->float-vector 10 10) (float-vector 0 1 1 1 1 1 0 0 0 0)))
-	    (snd-display ";float-vector 1 at 11 scale: ~A" (channel->float-vector 10 10)))
+	    (snd-display "float-vector 1 at 11 scale: ~A" (channel->float-vector 10 10)))
 	(scale-channel 0.5)
 	(if (not (mix? id))
-	    (snd-display ";unscale locked mix? ~A" (mix? id)))
+	    (snd-display "unscale locked mix? ~A" (mix? id)))
 	(if (not (= (mix-position id) 11))
-	    (snd-display ";float-vector .5 at 11 unscale position: ~A" (mix-position id)))
+	    (snd-display "float-vector .5 at 11 unscale position: ~A" (mix-position id)))
 	(if (not (mus-arrays-equal? (channel->float-vector 10 10) fv5))
-	    (snd-display ";float-vector 1 at 11 unscale: ~A" (channel->float-vector 10 10)))
+	    (snd-display "float-vector 1 at 11 unscale: ~A" (channel->float-vector 10 10)))
 	(scale-channel -1.0 0 5)
 	(if (not (mix? id))
-	    (snd-display ";scale at 0 locked mix? ~A" (mix? id)))
+	    (snd-display "scale at 0 locked mix? ~A" (mix? id)))
 	(if (not (= (mix-position id) 11))
-	    (snd-display ";float-vector .5 at 11 scale at 0 position: ~A" (mix-position id)))
+	    (snd-display "float-vector .5 at 11 scale at 0 position: ~A" (mix-position id)))
 	(if (not (mus-arrays-equal? (channel->float-vector 10 10) fv5))
-	    (snd-display ";float-vector 1 at 11 scale at 0: ~A" (channel->float-vector 10 10)))
+	    (snd-display "float-vector 1 at 11 scale at 0: ~A" (channel->float-vector 10 10)))
 	(scale-channel -1.0 22 10)
 	(if (not (mix? id))
-	    (snd-display ";scale at 22 locked mix? ~A" (mix? id)))
+	    (snd-display "scale at 22 locked mix? ~A" (mix? id)))
 	(if (not (= (mix-position id) 11))
-	    (snd-display ";float-vector .5 at 11 scale at 22 position: ~A" (mix-position id)))
+	    (snd-display "float-vector .5 at 11 scale at 22 position: ~A" (mix-position id)))
 	(if (not (mus-arrays-equal? (channel->float-vector 10 10) fv5))
-	    (snd-display ";float-vector 1 at 11 scale at 22: ~A" (channel->float-vector 10 10)))
+	    (snd-display "float-vector 1 at 11 scale at 22: ~A" (channel->float-vector 10 10)))
 	(scale-channel 2.0 12 2)
-					;	    (if (mix? id) (snd-display ";scale within mix but exists?: ~A" (mix? id)))
-	(if (not (mix? id)) (snd-display ";scale within mix but no mix?: ~A" (mix? id)))
+					;	    (if (mix? id) (snd-display "scale within mix but exists?: ~A" (mix? id)))
+	(if (not (mix? id)) (snd-display "scale within mix but no mix?: ~A" (mix? id)))
 	(if (not (mus-arrays-equal? (channel->float-vector 10 10) (float-vector 0 .5 1 1 .5 .5 0 0 0 0)))
-	    (snd-display ";float-vector .5 at 11 scale at 12: ~A" (channel->float-vector 10 10)))
+	    (snd-display "float-vector .5 at 11 scale at 12: ~A" (channel->float-vector 10 10)))
 	
 	(set! (edit-position) 1)
-	(if (not (mix? id)) (snd-display ";mix float-vector after scale reset edit position: ~A" (mix? id)))
-	(if (not (= (mix-position id) 11)) (snd-display ";mix float-vector position after scale reset edit position: ~A" (mix-position id)))
+	(if (not (mix? id)) (snd-display "mix float-vector after scale reset edit position: ~A" (mix? id)))
+	(if (not (= (mix-position id) 11)) (snd-display "mix float-vector position after scale reset edit position: ~A" (mix-position id)))
 	(if (not (mus-arrays-equal? (channel->float-vector 10 10) fv5))
-	    (snd-display ";float-vector .5 at 11 after scale reset edit: ~A" (channel->float-vector 10 10)))
+	    (snd-display "float-vector .5 at 11 after scale reset edit: ~A" (channel->float-vector 10 10)))
 	
 	;; envelopes
 	(env-channel '(0 0 1 1) 0 8)
 	(if (not (mix? id))
-	    (snd-display ";env locked mix? ~A" (mix? id)))
+	    (snd-display "env locked mix? ~A" (mix? id)))
 	(if (not (= (mix-position id) 11))
-	    (snd-display ";float-vector .5 at 11 env position: ~A" (mix-position id)))
+	    (snd-display "float-vector .5 at 11 env position: ~A" (mix-position id)))
 	(if (not (mus-arrays-equal? (channel->float-vector 10 10) fv5))
-	    (snd-display ";float-vector 1 at 11 env: ~A" (channel->float-vector 10 10)))
+	    (snd-display "float-vector 1 at 11 env: ~A" (channel->float-vector 10 10)))
 	(env-channel '(0 0 1 1) 17 10)
 	(if (not (mix? id))
-	    (snd-display ";env 17 locked mix? ~A" (mix? id)))
+	    (snd-display "env 17 locked mix? ~A" (mix? id)))
 	(if (not (= (mix-position id) 11))
-	    (snd-display ";float-vector .5 at 11 env 17 position: ~A" (mix-position id)))
+	    (snd-display "float-vector .5 at 11 env 17 position: ~A" (mix-position id)))
 	(if (not (mus-arrays-equal? (channel->float-vector 10 10) fv5))
-	    (snd-display ";float-vector 1 at 11 env 17: ~A" (channel->float-vector 10 10)))
+	    (snd-display "float-vector 1 at 11 env 17: ~A" (channel->float-vector 10 10)))
 	(env-channel '(0 0 1 1))
-					;	    (if (mix? id) (snd-display ";env over mix but exists?: ~A" (mix? id)))
-	(if (not (mix? id)) (snd-display ";env over mix but no mix?: ~A" (mix? id)))
+					;	    (if (mix? id) (snd-display "env over mix but exists?: ~A" (mix? id)))
+	(if (not (mix? id)) (snd-display "env over mix but no mix?: ~A" (mix? id)))
 	(if (not (mus-arrays-equal? (channel->float-vector 10 10) (float-vector 0.000 0.056 0.061 0.066 0.071 0.076 0.000 0.000 0.000 0.000)))
-	    (snd-display ";float-vector .5 at 11 over env: ~A" (channel->float-vector 10 10)))
+	    (snd-display "float-vector .5 at 11 over env: ~A" (channel->float-vector 10 10)))
 	
 	(set! (edit-position) 1)
-					;	    (if (not (mix? id)) (snd-display ";mix float-vector after env reset edit position: ~A" (mix? id)))
-	(if (not (= (mix-position id) 11)) (snd-display ";mix float-vector position after env reset edit position: ~A" (mix-position id)))
+					;	    (if (not (mix? id)) (snd-display "mix float-vector after env reset edit position: ~A" (mix? id)))
+	(if (not (= (mix-position id) 11)) (snd-display "mix float-vector position after env reset edit position: ~A" (mix-position id)))
 	(if (not (mus-arrays-equal? (channel->float-vector 10 10) fv5))
-	    (snd-display ";float-vector .5 at 11 after env reset edit: ~A" (channel->float-vector 10 10)))
+	    (snd-display "float-vector .5 at 11 after env reset edit: ~A" (channel->float-vector 10 10)))
 	
 	(scale-by 0.0)
-	(if (not (mix? id)) (snd-display ";zero mix but no mix?: ~A" (mix? id)))
+	(if (not (mix? id)) (snd-display "zero mix but no mix?: ~A" (mix? id)))
 	(if (not (mus-arrays-equal? (channel->float-vector 10 10) (make-float-vector 10)))
-	    (snd-display ";float-vector 1 at 11 scale 0: ~A" (channel->float-vector 10 10)))
+	    (snd-display "float-vector 1 at 11 scale 0: ~A" (channel->float-vector 10 10)))
 	(undo 2)
 	
 	(let ((ids ()))
@@ -21976,107 +21976,107 @@ EDITS: 2
 	    (set! ids (cons (mix-float-vector (make-float-vector 5 .1) (+ i 10)) ids)))
 	  (let ((vals (channel->float-vector 8 14)))
 	    (if (not (mus-arrays-equal? vals (float-vector 0.000 0.000 0.100 0.200 0.300 0.400 0.500 0.400 0.300 0.200 0.100 0.000 0.000 0.000)))
-		(snd-display ";pile up mixes: ~A" vals)))
+		(snd-display "pile up mixes: ~A" vals)))
 	  (let ((mx (mixes-maxamp ids)))
 	    (if (fneq mx .1)
-		(snd-display ";mixes-maxamp: ~A" mx)))
+		(snd-display "mixes-maxamp: ~A" mx)))
 	  (let ((len (mixes-length ids)))
 	    (if (not (= len 10))
-		(snd-display ";mixes-length: ~A" len)))
+		(snd-display "mixes-length: ~A" len)))
 	  (sync-all-mixes 21)
-	  (for-each (lambda (m) (if (not (= (mix-sync m) 21)) (snd-display ";sync-all-mixes ~A: ~A" m (mix-sync m)))) ids)
+	  (for-each (lambda (m) (if (not (= (mix-sync m) 21)) (snd-display "sync-all-mixes ~A: ~A" m (mix-sync m)))) ids)
 	  (sync-all-mixes 0)
-	  (for-each (lambda (m) (if (not (= (mix-sync m) 0)) (snd-display ";re sync-all-mixes ~A: ~A" m (mix-sync m)))) ids)
+	  (for-each (lambda (m) (if (not (= (mix-sync m) 0)) (snd-display "re sync-all-mixes ~A: ~A" m (mix-sync m)))) ids)
 	  (scale-mixes ids -2.0)
-	  (for-each (lambda (m) (if (fneq (mix-amp m) -2.0) (snd-display ";scale-mixes ~A: ~A" m (mix-amp m)))) ids)
+	  (for-each (lambda (m) (if (fneq (mix-amp m) -2.0) (snd-display "scale-mixes ~A: ~A" m (mix-amp m)))) ids)
 	  (let ((vals (channel->float-vector 8 14)))
 	    (if (not (mus-arrays-equal? vals (float-vector 0.000 0.000 -0.200 -0.400 -0.600 -0.800 -1.000 -0.800 -0.600 -0.400 -0.200 0.000 0.000 0.000)))
-		(snd-display ";scale piled up mixes: ~A" vals)))
+		(snd-display "scale piled up mixes: ~A" vals)))
 	  (silence-mixes ids)
 	  (let ((vals (channel->float-vector 8 14)))
 	    (if (not (mus-arrays-equal? vals (make-float-vector 14)))
-		(snd-display ";silence piled up mixes: ~A" vals)))
+		(snd-display "silence piled up mixes: ~A" vals)))
 	  (undo 2)
 	  (let ((vals (channel->float-vector 8 14)))
 	    (if (not (mus-arrays-equal? vals (float-vector 0.000 0.000 0.100 0.200 0.300 0.400 0.500 0.400 0.300 0.200 0.100 0.000 0.000 0.000)))
-		(snd-display ";undo 2 to pile up mixes: ~A" vals)))
+		(snd-display "undo 2 to pile up mixes: ~A" vals)))
 	  (play-mixes ids)
 	  (set-mixes-tag-y ids 100)
-	  (for-each (lambda (m) (if (not (= (mix-tag-y m) 100)) (snd-display ";set-mixes-tag-y ~A: ~A" m (mix-tag-y m)))) ids)
+	  (for-each (lambda (m) (if (not (= (mix-tag-y m) 100)) (snd-display "set-mixes-tag-y ~A: ~A" m (mix-tag-y m)))) ids)
 	  (set-mixes-tag-y ids 0)
 	  (move-mixes ids 10)
 	  (let ((vals (channel->float-vector 18 14)))
 	    (if (not (mus-arrays-equal? vals (float-vector 0.000 0.000 0.100 0.200 0.300 0.400 0.500 0.400 0.300 0.200 0.100 0.000 0.000 0.000)))
-		(snd-display ";move piled up mixes: ~A" vals)))
+		(snd-display "move piled up mixes: ~A" vals)))
 	  (let ((vals (channel->float-vector 8 8)))
 	    (if (not (mus-arrays-equal? vals (make-float-vector 8)))
-		(snd-display ";move piled up mixes original: ~A" vals)))
+		(snd-display "move piled up mixes original: ~A" vals)))
 	  (move-mixes ids -10)
 	  (let ((vals (channel->float-vector 8 14)))
 	    (if (not (mus-arrays-equal? vals (float-vector 0.000 0.000 0.100 0.200 0.300 0.400 0.500 0.400 0.300 0.200 0.100 0.000 0.000 0.000)))
-		(snd-display ";move piled up mixes -10: ~A" vals)))
+		(snd-display "move piled up mixes -10: ~A" vals)))
 	  (let ((vals (channel->float-vector 23 8)))
 	    (if (not (mus-arrays-equal? vals (make-float-vector 8)))
-		(snd-display ";move piled up mixes -10: ~A" vals)))
+		(snd-display "move piled up mixes -10: ~A" vals)))
 	  (for-each (lambda (m) (set! (mix-sync m) 24)) ids)
 	  (let ((mxs (syncd-mixes 24)))
 	    (if (not (= (length mxs) (length ids)))
-		(snd-display ";syncd-mixes: ~A ~A" mxs ids))
-	    (for-each (lambda (m) (if (not (member m ids)) (snd-display ";syncd-mixes: ~A not in ~A" m ids))) mxs))
+		(snd-display "syncd-mixes: ~A ~A" mxs ids))
+	    (for-each (lambda (m) (if (not (member m ids)) (snd-display "syncd-mixes: ~A not in ~A" m ids))) mxs))
 	  (sync-all-mixes 0)
 	  (env-mixes ids '(0 0 1 1 2 0))
 	  (let ((vals (channel->float-vector 10 10)))
 	    (if (not (mus-arrays-equal? vals (float-vector 0.000 0.045 0.137 0.278 0.460 0.360 0.203 0.087 0.020 0.000)))
-		(snd-display ";env-mixes: ~A" vals)))
+		(snd-display "env-mixes: ~A" vals)))
 	  (undo 3)
 	  (let ((vals (channel->float-vector 8 14)))
 	    (if (not (mus-arrays-equal? vals (float-vector 0.000 0.000 0.100 0.200 0.300 0.400 0.500 0.400 0.300 0.200 0.100 0.000 0.000 0.000)))
-		(snd-display ";undo 3 mixes envd: ~A" vals)))
+		(snd-display "undo 3 mixes envd: ~A" vals)))
 	  (color-mixes ids (make-color 0 1 0))
 	  (scale-tempo ids 2.0)
 	  (let ((begs (map mix-position ids)))
 	    (if (not (equal? begs '(18 16 14 12 10)))
-		(snd-display ";scale-tempo by 2: ~A" begs)))
+		(snd-display "scale-tempo by 2: ~A" begs)))
 	  (let ((vals (channel->float-vector 10 15)))
 	    (if (not (mus-arrays-equal? vals (float-vector 0.100 0.100 0.200 0.200 0.300 0.200 0.300 0.200 0.300 0.200 0.200 0.100 0.100 0.000 0.000)))
-		(snd-display ";scale-tempo 2 vals: ~A" vals)))
+		(snd-display "scale-tempo 2 vals: ~A" vals)))
 	  (scale-tempo ids 0.5)
 	  (let ((begs (map mix-position ids)))
 	    (if (not (equal? begs '(14 13 12 11 10)))
-		(snd-display ";scale-tempo by 0.5: ~A" begs)))
+		(snd-display "scale-tempo by 0.5: ~A" begs)))
 	  (let ((vals (channel->float-vector 10 10)))
 	    (if (not (mus-arrays-equal? vals (float-vector 0.100 0.200 0.300 0.400 0.500 0.400 0.300 0.200 0.100 0.000)))
-		(snd-display ";scale-tempo back 0.5: ~A" vals)))
+		(snd-display "scale-tempo back 0.5: ~A" vals)))
 	  (scale-tempo ids -1.0)
 	  (let ((begs (map mix-position ids)))
 	    (if (not (equal? begs '(6 7 8 9 10)))
-		(snd-display ";scale-tempo by -1: ~A" begs)))
+		(snd-display "scale-tempo by -1: ~A" begs)))
 	  (let ((vals (channel->float-vector 0 15)))
 	    (if (not (mus-arrays-equal? vals (float-vector 0.000 0.000 0.000 0.000 0.000 0.000 0.100 0.200 0.300 0.400 0.500 0.400 0.300 0.200 0.100)))
-		(snd-display ";scale-tempo -1 vals: ~A" vals)))
+		(snd-display "scale-tempo -1 vals: ~A" vals)))
 	  (undo 3)
 	  (set! *sinc-width* 10)
 	  (src-mixes ids 0.5)
 	  (if (fneq (mix-speed (car ids)) 0.5)
-	      (snd-display ";src-mixes speed: ~A" (mix-speed (car ids))))
+	      (snd-display "src-mixes speed: ~A" (mix-speed (car ids))))
 	  (if (not (= (mixes-length ids) 15))
-	      (snd-display ";src-mixes length: ~A" (mixes-length ids)))
+	      (snd-display "src-mixes length: ~A" (mixes-length ids)))
 	  (let ((vals (channel->float-vector 10 15)))
 	    (if (not (mus-arrays-equal? vals (float-vector 0.100 0.211 0.311 0.408 0.508 0.505 0.495 0.505 0.508 0.460 0.362 0.262 0.152 0.052 0.000)))
-		(snd-display ";src-mixes 0.5 vals: ~A" vals)))
+		(snd-display "src-mixes 0.5 vals: ~A" vals)))
 	  (if (not (mus-arrays-equal? (mix->float-vector (car ids)) (mix->float-vector (cadr ids))))
-	      (snd-display ";src-mixes vals don't match: ~A ~A" (mix->float-vector (car ids)) (mix->float-vector (cadr ids))))
+	      (snd-display "src-mixes vals don't match: ~A ~A" (mix->float-vector (car ids)) (mix->float-vector (cadr ids))))
 	  (undo)
 	  (transpose-mixes ids -12)
 	  (if (fneq (mix-speed (car ids)) 0.5)
-	      (snd-display ";transpose-mixes speed: ~A" (mix-speed (car ids))))
+	      (snd-display "transpose-mixes speed: ~A" (mix-speed (car ids))))
 	  (if (not (= (mixes-length ids) 15))
-	      (snd-display ";transpose-mixes length: ~A" (mixes-length ids)))
+	      (snd-display "transpose-mixes length: ~A" (mixes-length ids)))
 	  (let ((vals (channel->float-vector 10 15)))
 	    (if (not (mus-arrays-equal? vals (float-vector 0.100 0.211 0.311 0.408 0.508 0.505 0.495 0.505 0.508 0.460 0.362 0.262 0.152 0.052 0.000)))
-		(snd-display ";transpose-mixes 0.5 vals: ~A" vals)))
+		(snd-display "transpose-mixes 0.5 vals: ~A" vals)))
 	  (if (not (mus-arrays-equal? (mix->float-vector (car ids)) (mix->float-vector (cadr ids))))
-	      (snd-display ";transpose-mixes vals don't match: ~A ~A" (mix->float-vector (car ids)) (mix->float-vector (cadr ids))))
+	      (snd-display "transpose-mixes vals don't match: ~A ~A" (mix->float-vector (car ids)) (mix->float-vector (cadr ids))))
 	  (revert-sound))
 	(close-sound ind))
       
@@ -22084,45 +22084,45 @@ EDITS: 2
       (let* ((ind (new-sound "test.snd" :size 100))
 	     (id (mix-float-vector (float-vector .1 .2 .3) 50)))
 	(if (not (mix? id))
-	    (snd-display ";mix lock 0: ~A ~A" id (mix? id)))
+	    (snd-display "mix lock 0: ~A ~A" id (mix? id)))
 	(ramp-channel 0.0 1.0 0 20)
 	(if (not (mix? id))
-	    (snd-display ";mix lock 5: ~A ~A" id (mix? id)))
+	    (snd-display "mix lock 5: ~A ~A" id (mix? id)))
 	(undo)
 	(xramp-channel 0.0 1.0 32.0 0 20)
 	(if (not (mix? id))
-	    (snd-display ";mix lock 6: ~A ~A" id (mix? id)))
+	    (snd-display "mix lock 6: ~A ~A" id (mix? id)))
 	(undo 2)
 	(delete-sample 52)
 	(if (not (mix? id))
-	    (snd-display ";mix lock 7: ~A ~A" id (mix? id)))
+	    (snd-display "mix lock 7: ~A ~A" id (mix? id)))
 	(undo)
 	(delete-sample 10)
 	(if (not (mix? id))
-	    (snd-display ";mix lock 8: ~A ~A" id (mix? id)))
+	    (snd-display "mix lock 8: ~A ~A" id (mix? id)))
 	(undo)
 	(insert-samples 51 2 (float-vector .1 .2))
 	(if (not (mix? id))
-	    (snd-display ";mix lock 9: ~A ~A" id (mix? id)))
+	    (snd-display "mix lock 9: ~A ~A" id (mix? id)))
 	(undo)
 	(insert-samples 1 2 (float-vector .1 .2))
 	(if (not (mix? id))
-	    (snd-display ";mix lock 10: ~A ~A" id (mix? id)))
+	    (snd-display "mix lock 10: ~A ~A" id (mix? id)))
 	(undo)
 	(set! (sample 51) 1.0)
 	(if (not (mix? id))
-	    (snd-display ";mix lock 11: ~A ~A" id (mix? id)))
+	    (snd-display "mix lock 11: ~A ~A" id (mix? id)))
 	(undo)
 	(set! (sample 1) 1.0)
 	(if (not (mix? id))
-	    (snd-display ";mix lock 12: ~A ~A" id (mix? id)))
+	    (snd-display "mix lock 12: ~A ~A" id (mix? id)))
 	(undo)
 	(xramp-channel 0 1 32 0 40)
 	(if (not (mix? id))
-	    (snd-display ";mix lock 13: ~A ~A" id (mix? id)))
+	    (snd-display "mix lock 13: ~A ~A" id (mix? id)))
 	(xramp-channel 0 1 32 0 40)
 	(if (not (mix? id))
-	    (snd-display ";mix lock 14: ~A ~A" id (mix? id)))
+	    (snd-display "mix lock 14: ~A ~A" id (mix? id)))
 	(close-sound ind))
       
       (define (reader-fill data reader)
@@ -22142,80 +22142,80 @@ EDITS: 2
 	  (let ((id (mix-float-vector (float-vector .1 .2 .3) 50)))
 	    (let ((vals (channel->float-vector 48 10)))
 	      (if (not (mus-arrays-equal? vals (float-vector 0.485 0.495 0.605 0.715 0.825 0.535 0.545 0.556 0.566 0.576)))
-		  (snd-display ";mix on env: ~A" vals)))
+		  (snd-display "mix on env: ~A" vals)))
 	    (if (and tag (not (mix? id)))
-		(snd-display ";mix on env: ~A ~A" id (mix? id))))
+		(snd-display "mix on env: ~A ~A" id (mix? id))))
 	  (if (and tag (not (= ((cadr (edit-tree)) 7) 5)))
-	      (snd-display ";mix on env edit-tree: ~A" ((cadr (edit-tree)) 7)))
+	      (snd-display "mix on env edit-tree: ~A" ((cadr (edit-tree)) 7)))
 	  (let ((data (make-float-vector 10))
 		(reader (make-sampler 57 ind 0 -1)))
 	    (reader-fill data reader)
 	    (if (not (mus-arrays-equal? data (reverse! (float-vector 0.485 0.495 0.605 0.715 0.825 0.535 0.545 0.556 0.566 0.576))))
-		(snd-display ";read mix on env reversed: ~A" data)))
+		(snd-display "read mix on env reversed: ~A" data)))
 	  (undo)
 	  
 	  (env-channel '(0 0 1 1))
 	  (let ((id (mix-float-vector (float-vector .1 .2 .3) 50)))
 	    (let ((vals (channel->float-vector 48 10)))
 	      (if (not (mus-arrays-equal? vals (float-vector 0.235 0.245 0.355 0.465 0.576 0.287 0.298 0.309 0.320 0.331)))
-		  (snd-display ";mix on env 1: ~A" vals)))
+		  (snd-display "mix on env 1: ~A" vals)))
 	    (if (and tag (not (mix? id)))
-		(snd-display ";mix on env 1: ~A ~A" id (mix? id))))
+		(snd-display "mix on env 1: ~A ~A" id (mix? id))))
 	  (if (and tag (not (= ((cadr (edit-tree)) 7) 7)))
-	      (snd-display ";mix on env1 edit-tree: ~A" ((cadr (edit-tree)) 7)))
+	      (snd-display "mix on env1 edit-tree: ~A" ((cadr (edit-tree)) 7)))
 	  (let ((data (make-float-vector 10))
 		(reader (make-sampler 57 ind 0 -1)))
 	    (reader-fill data reader)
 	    (if (not (mus-arrays-equal? data (reverse! (float-vector 0.235 0.245 0.355 0.465 0.576 0.287 0.298 0.309 0.320 0.331))))
-		(snd-display ";read mix on env1 reversed: ~A" data)))
+		(snd-display "read mix on env1 reversed: ~A" data)))
 	  (undo)
 	  
 	  (env-channel '(0 0 1 1))
 	  (let ((id (mix-float-vector (float-vector .1 .2 .3) 50)))
 	    (let ((vals (channel->float-vector 48 10)))
 	      (if (not (mus-arrays-equal? vals (float-vector 0.114 0.121 0.229 0.337 0.445 0.153 0.162 0.171 0.181 0.191)))
-		  (snd-display ";mix on env 2: ~A" vals)))
+		  (snd-display "mix on env 2: ~A" vals)))
 	    (if (and tag (not (mix? id)))
-		(snd-display ";mix on env 2: ~A ~A" id (mix? id))))
+		(snd-display "mix on env 2: ~A ~A" id (mix? id))))
 	  (if (and tag (not (= ((cadr (edit-tree)) 7) 11)))
-	      (snd-display ";mix on env2 edit-tree: ~A" ((cadr (edit-tree)) 7)))
+	      (snd-display "mix on env2 edit-tree: ~A" ((cadr (edit-tree)) 7)))
 	  (let ((data (make-float-vector 10))
 		(reader (make-sampler 57 ind 0 -1)))
 	    (reader-fill data reader)
 	    (if (not (mus-arrays-equal? data (reverse! (float-vector 0.114 0.121 0.229 0.337 0.445 0.153 0.162 0.171 0.181 0.191))))
-		(snd-display ";read mix on env2 reversed: ~A" data)))
+		(snd-display "read mix on env2 reversed: ~A" data)))
 	  (undo)
 	  
 	  (env-channel '(0 0 1 1))
 	  (let ((id (mix-float-vector (float-vector .1 .2 .3) 50)))
 	    (let ((vals (channel->float-vector 48 10)))
 	      (if (not (mus-arrays-equal? vals (float-vector 0.055 0.060 0.165 0.270 0.376 0.082 0.089 0.095 0.102 0.110)))
-		  (snd-display ";mix on env 3: ~A" vals)))
+		  (snd-display "mix on env 3: ~A" vals)))
 	    (if (and tag (not (mix? id)))
-		(snd-display ";mix on env 3: ~A ~A" id (mix? id))))
+		(snd-display "mix on env 3: ~A ~A" id (mix? id))))
 	  (if (and tag (not (= ((cadr (edit-tree)) 7) 11)))
-	      (snd-display ";mix on env3 edit-tree: ~A" ((cadr (edit-tree)) 7)))
+	      (snd-display "mix on env3 edit-tree: ~A" ((cadr (edit-tree)) 7)))
 	  (let ((data (make-float-vector 10))
 		(reader (make-sampler 57 ind 0 -1)))
 	    (reader-fill data reader)
 	    (if (not (mus-arrays-equal? data (reverse! (float-vector 0.055 0.060 0.165 0.270 0.376 0.082 0.089 0.095 0.102 0.110))))
-		(snd-display ";read mix on env3 reversed: ~A" data)))
+		(snd-display "read mix on env3 reversed: ~A" data)))
 	  (undo)
 	  
 	  (env-channel '(0 0 1 1))
 	  (let ((id (mix-float-vector (float-vector .1 .2 .3) 50)))
 	    (let ((vals (channel->float-vector 48 10)))
 	      (if (not (mus-arrays-equal? vals (float-vector 0.027 0.030 0.133 0.236 0.340 0.044 0.048 0.053 0.058 0.063)))
-		  (snd-display ";mix on env 4: ~A" vals)))
+		  (snd-display "mix on env 4: ~A" vals)))
 	    (if (and tag (not (mix? id)))
-		(snd-display ";mix on env 4: ~A ~A" id (mix? id))))
+		(snd-display "mix on env 4: ~A ~A" id (mix? id))))
 	  (if (and tag (not (= ((cadr (edit-tree)) 7) 11)))
-	      (snd-display ";mix on env4 edit-tree: ~A" ((cadr (edit-tree)) 7)))
+	      (snd-display "mix on env4 edit-tree: ~A" ((cadr (edit-tree)) 7)))
 	  (let ((data (make-float-vector 10))
 		(reader (make-sampler 57 ind 0 -1)))
 	    (reader-fill data reader)
 	    (if (not (mus-arrays-equal? data (reverse! (float-vector 0.027 0.030 0.133 0.236 0.340 0.044 0.048 0.053 0.058 0.063))))
-		(snd-display ";read mix on env4 reversed: ~A" data)))
+		(snd-display "read mix on env4 reversed: ~A" data)))
 	  (undo)
 	  
 	  (set! (edit-position ind 0) 1)
@@ -22223,16 +22223,16 @@ EDITS: 2
 	  (let ((id (mix-float-vector (float-vector .1 .2 .3) 50)))
 	    (let ((vals (channel->float-vector 48 10)))
 	      (if (not (mus-arrays-equal? vals (float-vector 0.160 0.153 0.247 0.341 0.435 0.129 0.124 0.118 0.113 0.108)))
-		  (snd-display ";mix on xramp: ~A" vals)))
+		  (snd-display "mix on xramp: ~A" vals)))
 	    (if (and tag (not (mix? id)))
-		(snd-display ";mix on xramp: ~A ~A" id (mix? id))))
+		(snd-display "mix on xramp: ~A ~A" id (mix? id))))
 	  (if (and tag (not (= ((cadr (edit-tree)) 7) 9)))
-	      (snd-display ";mix on xramp edit-tree: ~A" ((cadr (edit-tree)) 7)))
+	      (snd-display "mix on xramp edit-tree: ~A" ((cadr (edit-tree)) 7)))
 	  (let ((data (make-float-vector 10))
 		(reader (make-sampler 57 ind 0 -1)))
 	    (reader-fill data reader)
 	    (if (not (mus-arrays-equal? data (reverse! (float-vector 0.160 0.153 0.247 0.341 0.435 0.129 0.124 0.118 0.113 0.108))))
-		(snd-display ";read mix on xramp reversed: ~A" data)))
+		(snd-display "read mix on xramp reversed: ~A" data)))
 	  
 	  (set! (edit-position ind 0) 1)
 	  (xramp-channel 1 0 32.0)
@@ -22240,16 +22240,16 @@ EDITS: 2
 	  (let ((id (mix-float-vector (float-vector .1 .2 .3) 50)))
 	    (let ((vals (channel->float-vector 48 10)))
 	      (if (not (mus-arrays-equal? vals (float-vector 0.026 0.024 0.122 0.220 0.318 0.017 0.015 0.014 0.013 0.012)))
-		  (snd-display ";mix on xramp2: ~A" vals)))
+		  (snd-display "mix on xramp2: ~A" vals)))
 	    (if (and tag (not (mix? id)))
-		(snd-display ";mix on xramp2: ~A ~A" id (mix? id))))
+		(snd-display "mix on xramp2: ~A ~A" id (mix? id))))
 	  (if (and tag (not (= ((cadr (edit-tree)) 7) 13)))
-	      (snd-display ";mix on xramp2 edit-tree: ~A" ((cadr (edit-tree)) 7)))
+	      (snd-display "mix on xramp2 edit-tree: ~A" ((cadr (edit-tree)) 7)))
 	  (let ((data (make-float-vector 10))
 		(reader (make-sampler 57 ind 0 -1)))
 	    (reader-fill data reader)
 	    (if (not (mus-arrays-equal? data (reverse! (float-vector 0.026 0.024 0.122 0.220 0.318 0.017 0.015 0.014 0.013 0.012))))
-		(snd-display ";read mix on xramp2 reversed: ~A" data)))
+		(snd-display "read mix on xramp2 reversed: ~A" data)))
 	  
 	  (set! (edit-position ind 0) 1)
 	  (xramp-channel 1 0 32.0)
@@ -22258,16 +22258,16 @@ EDITS: 2
 	  (let ((id (mix-float-vector (float-vector .1 .2 .3) 50)))
 	    (let ((vals (channel->float-vector 48 10)))
 	      (if (not (mus-arrays-equal? vals (float-vector 0.013 0.012 0.111 0.210 0.309 0.008 0.007 0.006 0.006 0.005)))
-		  (snd-display ";mix on xramp2_ramp: ~A" vals)))
+		  (snd-display "mix on xramp2_ramp: ~A" vals)))
 	    (if (and tag (not (mix? id)))
-		(snd-display ";mix on xramp2_ramp: ~A ~A" id (mix? id))))
+		(snd-display "mix on xramp2_ramp: ~A ~A" id (mix? id))))
 	  (if (and tag (not (= ((cadr (edit-tree)) 7) 15)))
-	      (snd-display ";mix on xramp2_ramp edit-tree: ~A" ((cadr (edit-tree)) 7)))
+	      (snd-display "mix on xramp2_ramp edit-tree: ~A" ((cadr (edit-tree)) 7)))
 	  (let ((data (make-float-vector 10))
 		(reader (make-sampler 57 ind 0 -1)))
 	    (reader-fill data reader)
 	    (if (not (mus-arrays-equal? data (reverse! (float-vector 0.013 0.012 0.111 0.210 0.309 0.008 0.007 0.006 0.006 0.005))))
-		(snd-display ";read mix on xramp2_ramp reversed: ~A" data)))
+		(snd-display "read mix on xramp2_ramp reversed: ~A" data)))
 	  
 	  (set! (edit-position ind 0) 1)
 	  (xramp-channel 1 0 32.0)
@@ -22277,16 +22277,16 @@ EDITS: 2
 	  (let ((id (mix-float-vector (float-vector .1 .2 .3) 50)))
 	    (let ((vals (channel->float-vector 48 10)))
 	      (if (not (mus-arrays-equal? vals (float-vector 0.007 0.006 0.105 0.205 0.304 0.004 0.003 0.003 0.002 0.002)))
-		  (snd-display ";mix on xramp2_ramp2: ~A" vals)))
+		  (snd-display "mix on xramp2_ramp2: ~A" vals)))
 	    (if (and tag (not (mix? id)))
-		(snd-display ";mix on xramp2_ramp2: ~A ~A" id (mix? id))))
+		(snd-display "mix on xramp2_ramp2: ~A ~A" id (mix? id))))
 	  (if (and tag (not (= ((cadr (edit-tree)) 7) 15)))
-	      (snd-display ";mix on xramp2_ramp2 edit-tree: ~A" ((cadr (edit-tree)) 7)))
+	      (snd-display "mix on xramp2_ramp2 edit-tree: ~A" ((cadr (edit-tree)) 7)))
 	  (let ((data (make-float-vector 10))
 		(reader (make-sampler 57 ind 0 -1)))
 	    (reader-fill data reader)
 	    (if (not (mus-arrays-equal? data (reverse! (float-vector 0.007 0.006 0.105 0.205 0.304 0.004 0.003 0.003 0.002 0.002))))
-		(snd-display ";read mix on xramp2_ramp2 reversed: ~A" data)))
+		(snd-display "read mix on xramp2_ramp2 reversed: ~A" data)))
 	  
 	  (set! (edit-position ind 0) 1)
 	  (xramp-channel 1 0 32.0)
@@ -22294,16 +22294,16 @@ EDITS: 2
 	  (let ((id (mix-float-vector (float-vector .1 .2 .3) 50)))
 	    (let ((vals (channel->float-vector 48 10)))
 	      (if (not (mus-arrays-equal? vals (float-vector 0.082 0.077 0.173 0.268 0.364 0.060 0.056 0.053 0.049 0.046)))
-		  (snd-display ";mix on xramp_ramp: ~A" vals)))
+		  (snd-display "mix on xramp_ramp: ~A" vals)))
 	    (if (and tag (not (mix? id)))
-		(snd-display ";mix on xramp_ramp: ~A ~A" id (mix? id))))
+		(snd-display "mix on xramp_ramp: ~A ~A" id (mix? id))))
 	  (if (and tag (not (= ((cadr (edit-tree)) 7) 15)))
-	      (snd-display ";mix on xramp_ramp edit-tree: ~A" ((cadr (edit-tree)) 7)))
+	      (snd-display "mix on xramp_ramp edit-tree: ~A" ((cadr (edit-tree)) 7)))
 	  (let ((data (make-float-vector 10))
 		(reader (make-sampler 57 ind 0 -1)))
 	    (reader-fill data reader)
 	    (if (not (mus-arrays-equal? data (reverse! (float-vector 0.082 0.077 0.173 0.268 0.364 0.060 0.056 0.053 0.049 0.046))))
-		(snd-display ";read mix on xramp_ramp reversed: ~A" data)))
+		(snd-display "read mix on xramp_ramp reversed: ~A" data)))
 	  
 	  (set! (edit-position ind 0) 1)
 	  (xramp-channel 1 0 32.0)
@@ -22312,16 +22312,16 @@ EDITS: 2
 	  (let ((id (mix-float-vector (float-vector .1 .2 .3) 50)))
 	    (let ((vals (channel->float-vector 48 10)))
 	      (if (not (mus-arrays-equal? vals (float-vector 0.042 0.039 0.136 0.233 0.330 0.028 0.026 0.023 0.021 0.019)))
-		  (snd-display ";mix on xramp_ramp2: ~A" vals)))
+		  (snd-display "mix on xramp_ramp2: ~A" vals)))
 	    (if (and tag (not (mix? id)))
-		(snd-display ";mix on xramp_ramp2: ~A ~A" id (mix? id))))
+		(snd-display "mix on xramp_ramp2: ~A ~A" id (mix? id))))
 	  (if (and tag (not (= ((cadr (edit-tree)) 7) 15)))
-	      (snd-display ";mix on xramp_ramp2 edit-tree: ~A" ((cadr (edit-tree)) 7)))
+	      (snd-display "mix on xramp_ramp2 edit-tree: ~A" ((cadr (edit-tree)) 7)))
 	  (let ((data (make-float-vector 10))
 		(reader (make-sampler 57 ind 0 -1)))
 	    (reader-fill data reader)
 	    (if (not (mus-arrays-equal? data (reverse! (float-vector 0.042 0.039 0.136 0.233 0.330 0.028 0.026 0.023 0.021 0.019))))
-		(snd-display ";read mix on xramp_ramp2 reversed: ~A" data)))
+		(snd-display "read mix on xramp_ramp2 reversed: ~A" data)))
 	  
 	  (set! (edit-position ind 0) 1)
 	  (xramp-channel 1 0 32.0)
@@ -22331,16 +22331,16 @@ EDITS: 2
 	  (let ((id (mix-float-vector (float-vector .1 .2 .3) 50)))
 	    (let ((vals (channel->float-vector 48 10)))
 	      (if (not (mus-arrays-equal? vals (float-vector 0.022 0.020 0.118 0.216 0.314 0.013 0.012 0.010 0.009 0.008)))
-		  (snd-display ";mix on xramp_ramp3: ~A" vals)))
+		  (snd-display "mix on xramp_ramp3: ~A" vals)))
 	    (if (and tag (not (mix? id)))
-		(snd-display ";mix on xramp_ramp3: ~A ~A" id (mix? id))))
+		(snd-display "mix on xramp_ramp3: ~A ~A" id (mix? id))))
 	  (if (and tag (not (= ((cadr (edit-tree)) 7) 15)))
-	      (snd-display ";mix on xramp_ramp3 edit-tree: ~A" ((cadr (edit-tree)) 7)))
+	      (snd-display "mix on xramp_ramp3 edit-tree: ~A" ((cadr (edit-tree)) 7)))
 	  (let ((data (make-float-vector 10))
 		(reader (make-sampler 57 ind 0 -1)))
 	    (reader-fill data reader)
 	    (if (not (mus-arrays-equal? data (reverse! (float-vector 0.022 0.020 0.118 0.216 0.314 0.013 0.012 0.010 0.009 0.008))))
-		(snd-display ";read mix on xramp_ramp3 reversed: ~A" data)))
+		(snd-display "read mix on xramp_ramp3 reversed: ~A" data)))
 	  
 	  (set! *with-mix-tags* #t)
 	  (revert-sound)
@@ -22348,7 +22348,7 @@ EDITS: 2
 	  (reverse-sound)
 	  (let ((vals (channel->float-vector 45 8)))
 	    (if (not (mus-arrays-equal? vals (float-vector 0.000 0.000 0.300 0.200 0.100 0.000 0.000 0.000)))
-		(snd-display ";reversed mix vals: ~A" vals)))
+		(snd-display "reversed mix vals: ~A" vals)))
 	  (close-sound ind))
 	
 	(set! *with-mix-tags* #f))
@@ -22439,31 +22439,31 @@ EDITS: 2
 	    (selind (open-sound "oboe.snd")))
 	(make-selection 100 500 selind 0)
 	(mix-selection 500 ind 2)
-	(if (not (= (edit-position ind 0) 0)) (snd-display ";mix-selection 0->2 0: ~A" (edit-position ind 0)))
-	(if (not (= (edit-position ind 1) 0)) (snd-display ";mix-selection 0->2 1: ~A" (edit-position ind 1)))
-	(if (not (= (edit-position ind 2) 1)) (snd-display ";mix-selection 0->2 2: ~A" (edit-position ind 2)))
-	(if (not (= (edit-position ind 3) 0)) (snd-display ";mix-selection 0->2 3: ~A" (edit-position ind 3)))
+	(if (not (= (edit-position ind 0) 0)) (snd-display "mix-selection 0->2 0: ~A" (edit-position ind 0)))
+	(if (not (= (edit-position ind 1) 0)) (snd-display "mix-selection 0->2 1: ~A" (edit-position ind 1)))
+	(if (not (= (edit-position ind 2) 1)) (snd-display "mix-selection 0->2 2: ~A" (edit-position ind 2)))
+	(if (not (= (edit-position ind 3) 0)) (snd-display "mix-selection 0->2 3: ~A" (edit-position ind 3)))
 	(revert-sound ind)
 	(set! (sync ind) 1234)
 	(mix-selection 500 ind 1)
-	(if (not (= (edit-position ind 0) 0)) (snd-display ";mix-selection 1->2 0: ~A" (edit-position ind 0)))
-	(if (not (= (edit-position ind 1) 1)) (snd-display ";mix-selection 1->2 1: ~A" (edit-position ind 1)))
-	(if (not (= (edit-position ind 2) 0)) (snd-display ";mix-selection 1->2 2: ~A" (edit-position ind 2)))
-	(if (not (= (edit-position ind 3) 0)) (snd-display ";mix-selection 1->2 3: ~A" (edit-position ind 3)))
+	(if (not (= (edit-position ind 0) 0)) (snd-display "mix-selection 1->2 0: ~A" (edit-position ind 0)))
+	(if (not (= (edit-position ind 1) 1)) (snd-display "mix-selection 1->2 1: ~A" (edit-position ind 1)))
+	(if (not (= (edit-position ind 2) 0)) (snd-display "mix-selection 1->2 2: ~A" (edit-position ind 2)))
+	(if (not (= (edit-position ind 3) 0)) (snd-display "mix-selection 1->2 3: ~A" (edit-position ind 3)))
 	(revert-sound ind)
 	(set! (sync ind) 0)
 	(insert-selection 500 ind 2)
-	(if (not (= (edit-position ind 0) 0)) (snd-display ";insert-selection 0->2 0: ~A" (edit-position ind 0)))
-	(if (not (= (edit-position ind 1) 0)) (snd-display ";insert-selection 0->2 1: ~A" (edit-position ind 1)))
-	(if (not (= (edit-position ind 2) 1)) (snd-display ";insert-selection 0->2 2: ~A" (edit-position ind 2)))
-	(if (not (= (edit-position ind 3) 0)) (snd-display ";insert-selection 0->2 3: ~A" (edit-position ind 3)))
+	(if (not (= (edit-position ind 0) 0)) (snd-display "insert-selection 0->2 0: ~A" (edit-position ind 0)))
+	(if (not (= (edit-position ind 1) 0)) (snd-display "insert-selection 0->2 1: ~A" (edit-position ind 1)))
+	(if (not (= (edit-position ind 2) 1)) (snd-display "insert-selection 0->2 2: ~A" (edit-position ind 2)))
+	(if (not (= (edit-position ind 3) 0)) (snd-display "insert-selection 0->2 3: ~A" (edit-position ind 3)))
 	(revert-sound ind)
 	(set! (sync ind) 1234)
 	(insert-selection 500 ind 1)
-	(if (not (= (edit-position ind 0) 0)) (snd-display ";insert-selection 1->2 0: ~A" (edit-position ind 0)))
-	(if (not (= (edit-position ind 1) 1)) (snd-display ";insert-selection 1->2 1: ~A" (edit-position ind 1)))
-	(if (not (= (edit-position ind 2) 0)) (snd-display ";insert-selection 1->2 2: ~A" (edit-position ind 2)))
-	(if (not (= (edit-position ind 3) 0)) (snd-display ";insert-selection 1->2 3: ~A" (edit-position ind 3)))
+	(if (not (= (edit-position ind 0) 0)) (snd-display "insert-selection 1->2 0: ~A" (edit-position ind 0)))
+	(if (not (= (edit-position ind 1) 1)) (snd-display "insert-selection 1->2 1: ~A" (edit-position ind 1)))
+	(if (not (= (edit-position ind 2) 0)) (snd-display "insert-selection 1->2 2: ~A" (edit-position ind 2)))
+	(if (not (= (edit-position ind 3) 0)) (snd-display "insert-selection 1->2 3: ~A" (edit-position ind 3)))
 	(revert-sound ind)
 	(set! (sync ind) 0)
 	(close-sound ind)
@@ -22473,60 +22473,60 @@ EDITS: 2
       (let ((new-index (new-sound "hiho.wave" 1 22050 mus-ldouble mus-next)))
 	(log-mem test-ctr)
 	(select-sound new-index)
-	(if (find-mix 0 new-index 0) (snd-display ";found non-existent mix? ~A" (find-mix 0 new-index 0)))
+	(if (find-mix 0 new-index 0) (snd-display "found non-existent mix? ~A" (find-mix 0 new-index 0)))
 	(let ((mix-id (car (mix "pistol.snd" 100))))
-	  (if (not (mix? mix-id)) (snd-display ";~A not mix?" mix-id))
+	  (if (not (mix? mix-id)) (snd-display "~A not mix?" mix-id))
 	  (view-mixes-dialog)
 	  (let ((snd (car (mix-home mix-id)))
 		(pos (mix-position mix-id))
 		(len (mix-length mix-id)))
 	    (let ((mr (make-mix-sampler mix-id)))
-	      (if (not (mix-sampler? mr)) (snd-display ";~A not mix-sampler?" mr))
-	      (if (region-sampler? mr) (snd-display ";mix sampler: region ~A" mr))
-					;		(if (sampler? mr) (snd-display ";mix sampler: normal ~A" mr))
-	      (if (not (= (sampler-position mr) 0)) (snd-display ";mix sampler position: ~A" (sampler-position mr)))
-	      (if (sampler-at-end? mr) (snd-display ";mix sampler at end? ~A" mr))
+	      (if (not (mix-sampler? mr)) (snd-display "~A not mix-sampler?" mr))
+	      (if (region-sampler? mr) (snd-display "mix sampler: region ~A" mr))
+					;		(if (sampler? mr) (snd-display "mix sampler: normal ~A" mr))
+	      (if (not (= (sampler-position mr) 0)) (snd-display "mix sampler position: ~A" (sampler-position mr)))
+	      (if (sampler-at-end? mr) (snd-display "mix sampler at end? ~A" mr))
 	      (if (not (equal? (sampler-home mr) mix-id))
-		  (snd-display ";~A home: ~A" mr (sampler-home mr)))
+		  (snd-display "~A home: ~A" mr (sampler-home mr)))
 	      (let ((reader-string (object->string mr #f)))
 		(if (not (string=? (substring reader-string 0 16) "#<mix-sampler mi"))
-		    (snd-display ";mix sampler actually got: [~S]" (substring reader-string 0 16))))
+		    (snd-display "mix sampler actually got: [~S]" (substring reader-string 0 16))))
 	      (do ((i 0 (+ i 1)))
 		  ((= i 99))
 		(let ((mx (read-mix-sample mr))
 		      (sx (sample (+ 100 i))))
-		  (if (fneq mx sx) (snd-display ";read-mix-sample: ~A ~A?" mx sx))))
+		  (if (fneq mx sx) (snd-display "read-mix-sample: ~A ~A?" mx sx))))
 	      (let ((mx (mr))
 		    (sx (sample 199)))
-		(if (fneq mx sx) (snd-display ";mix-sample 100: ~A ~A?" mx sx)))
+		(if (fneq mx sx) (snd-display "mix-sample 100: ~A ~A?" mx sx)))
 	      (free-sampler mr))
-	    (if (not (= pos 100)) (snd-display ";mix-position: ~A?" pos))
-	    (if (not (= len 41623)) (snd-display ";mix-length: ~A?" len))
-	    (if (not (equal? snd new-index)) (snd-display ";s mix-home: ~A?" snd)))
+	    (if (not (= pos 100)) (snd-display "mix-position: ~A?" pos))
+	    (if (not (= len 41623)) (snd-display "mix-length: ~A?" len))
+	    (if (not (equal? snd new-index)) (snd-display "s mix-home: ~A?" snd)))
 	  (let ((chn (cadr (mix-home mix-id))))
-	    (if (not (= chn 0)) (snd-display ";c mix-home: ~A?" chn)))
+	    (if (not (= chn 0)) (snd-display "c mix-home: ~A?" chn)))
 	  (let ((amp (mix-amp mix-id)))
-	    (if (fneq amp 1.0) (snd-display ";mix-amp: ~A?" amp)))
+	    (if (fneq amp 1.0) (snd-display "mix-amp: ~A?" amp)))
 	  (let ((spd (mix-speed mix-id)))
-	    (if (fneq spd 1.0) (snd-display ";mix-speed: ~A?" spd)))
+	    (if (fneq spd 1.0) (snd-display "mix-speed: ~A?" spd)))
 	  (let ((nam (mix-name mix-id)))
-	    (if (not (string=? nam "")) (snd-display ";mix-name: ~A" nam)))
+	    (if (not (string=? nam "")) (snd-display "mix-name: ~A" nam)))
 	  (catch 'mus-error
 	    (lambda () (play mix-id))
-	    (lambda args (snd-display ";can't play mix: ~A" args)))
+	    (lambda args (snd-display "can't play mix: ~A" args)))
 	  (catch 'mus-error
 	    (lambda () (play mix-id 1000))
-	    (lambda args (snd-display ";can't play mix from 1000: ~A" args)))
+	    (lambda args (snd-display "can't play mix from 1000: ~A" args)))
 	  (set! (mix-name mix-id) "test-mix")
 	  (if (not (string=? (mix-name mix-id) "test-mix"))
-	      (snd-display ";mix-name set: ~A" (mix-name mix-id)))
+	      (snd-display "mix-name set: ~A" (mix-name mix-id)))
 	  (let ((id (mix-name->id "test-mix")))
-	    (if (not (equal? id mix-id)) (snd-display ";mix-name->id: ~A ~A" id mix-id)))
+	    (if (not (equal? id mix-id)) (snd-display "mix-name->id: ~A ~A" id mix-id)))
 	  (set! (mix-name mix-id) "test-mix-again") ; make sure previous name is freed
 	  (if (not (string=? (mix-name mix-id) "test-mix-again"))
-	      (snd-display ";mix-name set again: ~A" (mix-name mix-id)))
+	      (snd-display "mix-name set again: ~A" (mix-name mix-id)))
 	  (set! (mix-name mix-id) "")
-	  (if (not (string=? (mix-name mix-id) "")) (snd-display ";set mix-name #f: ~A" (mix-name mix-id)))
+	  (if (not (string=? (mix-name mix-id) "")) (snd-display "set mix-name #f: ~A" (mix-name mix-id)))
 	  (set! (mix-position mix-id) 200) 
 	  (set! (mix-amp mix-id) 0.5) 
 	  (set! (mix-speed mix-id) 2.0) 
@@ -22534,30 +22534,30 @@ EDITS: 2
 	  (set! (mix-amp-env mix-id) '(0.0 0.0 1.0 1.0)) 
 	  (set! (mix-tag-y mix-id) 20) 
 	  (let ((pos (mix-position mix-id)))
-	    (if (not (= pos 200)) (snd-display ";set-mix-position: ~A?" pos)))
+	    (if (not (= pos 200)) (snd-display "set-mix-position: ~A?" pos)))
 	  (let ((my (mix-tag-y mix-id)))
-	    (if (not (= my 20)) (snd-display ";set-mix-tag-y: ~A?" my)))
+	    (if (not (= my 20)) (snd-display "set-mix-tag-y: ~A?" my)))
 	  (let ((amp (mix-amp mix-id)))
-	    (if (fneq amp 0.5) (snd-display ";set-mix-amp: ~A?" amp)))
+	    (if (fneq amp 0.5) (snd-display "set-mix-amp: ~A?" amp)))
 	  (let ((spd (mix-speed mix-id)))
-	    (if (fneq spd 2.0) (snd-display ";set-mix-speed: ~A?" spd)))
-	  (if (not (equal? (mix-amp-env mix-id) '(0.0 0.0 1.0 1.0))) (snd-display ";set-mix-amp-env: ~A?" (mix-amp-env mix-id))))
+	    (if (fneq spd 2.0) (snd-display "set-mix-speed: ~A?" spd)))
+	  (if (not (equal? (mix-amp-env mix-id) '(0.0 0.0 1.0 1.0))) (snd-display "set-mix-amp-env: ~A?" (mix-amp-env mix-id))))
 	
 	(mix-float-vector (make-float-vector 3 .1) 100)
 	(set! (cursor) 0)
 	(let ((nid (find-mix 100)))
 	  (if (not (and (mix? nid)
 			(= (mix-position nid) 100)))
-	      (snd-display ";find-mix(100): ~A ~A ~A?" nid (and (mix? nid) (mix-position nid)) (map mix-position (mixes new-index 0)))))
+	      (snd-display "find-mix(100): ~A ~A ~A?" nid (and (mix? nid) (mix-position nid)) (map mix-position (mixes new-index 0)))))
 	(let ((nid (find-mix 200)))
 	  (if (not (and (mix? nid)
 			(= (mix-position nid) 200)))
-	      (snd-display ";find-mix(200): ~A ~A?" nid (and (mix? nid) (mix-position nid)))))
+	      (snd-display "find-mix(200): ~A ~A?" nid (and (mix? nid) (mix-position nid)))))
 	(let ((mix-id (car (mix "oboe.snd" 100))))
 	  (set! *mix-waveform-height* 40)
 	  (set! (mix-property :hiho mix-id) 123)
-	  (if (not (= (mix-property :hiho mix-id) 123)) (snd-display ";mix-property: ~A" (mix-property :hiho mix-id)))
-	  (if (mix-property :not-there mix-id) (snd-display ";mix-not-property: ~A" (mix-property :not-there mix-id)))
+	  (if (not (= (mix-property :hiho mix-id) 123)) (snd-display "mix-property: ~A" (mix-property :hiho mix-id)))
+	  (if (mix-property :not-there mix-id) (snd-display "mix-not-property: ~A" (mix-property :not-there mix-id)))
 	  (update-time-graph)
 	  (set! *mix-waveform-height* 20))
 	(close-sound new-index))
@@ -22570,21 +22570,21 @@ EDITS: 2
       (let ((id0 (car (pan-mix "1a.snd" 10000 '(0 0 1 1)))))
 	(if (or (fneq (mix-amp id0) 1.0)
 		(not (feql (mix-amp-env id0) '(0 1 1 0))))
-	    (snd-display ";pan-mix 1->1 2: ~A ~A" (mix-amp id0) (mix-amp-env id0)))
-	(if (not (= (mix-position id0) 10000)) (snd-display ";pan-mix 1->1 pos 2: ~A" (mix-position id0)))
+	    (snd-display "pan-mix 1->1 2: ~A ~A" (mix-amp id0) (mix-amp-env id0)))
+	(if (not (= (mix-position id0) 10000)) (snd-display "pan-mix 1->1 pos 2: ~A" (mix-position id0)))
 	(revert-sound ind))
       
       (let ((ids (pan-mix "2a.snd" 100 '(0 0 1 1))))
 	(let ((id0 (car ids))
 	      (id1 (cadr ids)))
 	  (if (not (and (mix? id0) (mix? id1)))
-	      (snd-display ";pan-mix 2->1: ~A ~A" id0 id1))
+	      (snd-display "pan-mix 2->1: ~A ~A" id0 id1))
 	  (if (not (= (mix-position id0) (mix-position id1) 100))
-	      (snd-display ";pan-mix 2->1 pos: ~A ~A" (mix-position id0) (mix-position id1)))
+	      (snd-display "pan-mix 2->1 pos: ~A ~A" (mix-position id0) (mix-position id1)))
 	  (if (or (fneq (mix-amp id0) 1.0) (fneq (mix-amp id1) 1.0))
-	      (snd-display ";pan-mix 2->1 mix amps 3: ~A ~A" (mix-amp id0) (mix-amp id1)))
+	      (snd-display "pan-mix 2->1 mix amps 3: ~A ~A" (mix-amp id0) (mix-amp id1)))
 	  (if (not (feql (mix-amp-env id0) '(0 1 1 0)))
-	      (snd-display ";pan-mix 2->1 ramp env: ~A" (mix-amp-env id0)))))
+	      (snd-display "pan-mix 2->1 ramp env: ~A" (mix-amp-env id0)))))
       (revert-sound ind)
       (close-sound ind))
     
@@ -22593,15 +22593,15 @@ EDITS: 2
 	(let ((id0 (car ids))
 	      (id1 (cadr ids)))
 	  (if (not (and (mix? id0) (mix? id1)))
-	      (snd-display ";pan-mix 1->2: ~A ~A" id0 id1))
+	      (snd-display "pan-mix 1->2: ~A ~A" id0 id1))
 	  (if (not (= (mix-position id0) (mix-position id1) 100))
-	      (snd-display ";pan-mix 1->2 pos: ~A ~A" (mix-position id0) (mix-position id1)))
+	      (snd-display "pan-mix 1->2 pos: ~A ~A" (mix-position id0) (mix-position id1)))
 	  (if (or (fneq (mix-amp id0) 1.0) (fneq (mix-amp id1) 1.0)) 
-	      (snd-display ";pan-mix 1->2 amps: ~A ~A" (mix-amp id0) (mix-amp id1)))
+	      (snd-display "pan-mix 1->2 amps: ~A ~A" (mix-amp id0) (mix-amp id1)))
 	  (if (not (feql (mix-amp-env id0) '(0 1 1 0 2 1)))
-	      (snd-display ";pan-mix 1->2 env 0: ~A" (mix-amp-env id0)))
+	      (snd-display "pan-mix 1->2 env 0: ~A" (mix-amp-env id0)))
 	  (if (not (feql (mix-amp-env id1) '(0 0 1 1 2 0)))
-	      (snd-display ";pan-mix 1->2 env 1: ~A" (mix-amp-env id1)))))
+	      (snd-display "pan-mix 1->2 env 1: ~A" (mix-amp-env id1)))))
       (revert-sound ind)
       
       (let ((ids (pan-mix "2a.snd" 100 '(0 0 1 1 2 0))))
@@ -22610,19 +22610,19 @@ EDITS: 2
 	      (id2 (caddr ids))
 	      (id3 (cadddr ids)))
 	  (if (not (and (mix? id0) (mix? id1) (mix? id2) (mix? id3)))
-	      (snd-display ";pan-mix 2->2: ~A ~A ~A ~A" id0 id1 id2 id3))
+	      (snd-display "pan-mix 2->2: ~A ~A ~A ~A" id0 id1 id2 id3))
 	  (if (not (= (mix-position id0) (mix-position id1) (mix-position id2) (mix-position id3) 100))
-	      (snd-display ";pan-mix 2->2 pos: ~A ~A ~A ~A" (mix-position id0) (mix-position id1) (mix-position id2) (mix-position id3)))
+	      (snd-display "pan-mix 2->2 pos: ~A ~A ~A ~A" (mix-position id0) (mix-position id1) (mix-position id2) (mix-position id3)))
 	  (if (or (fneq (mix-amp id0) 1.0) (fneq (mix-amp id1) 1.0)) 
-	      (snd-display ";pan-mix 2->2 amps: ~A ~A" (mix-amp id0) (mix-amp id1)))
+	      (snd-display "pan-mix 2->2 amps: ~A ~A" (mix-amp id0) (mix-amp id1)))
 	  (if (not (feql (mix-amp-env id0) '(0 1 1 0 2 1)))
-	      (snd-display ";pan-mix 2->2 env 0: ~A" (mix-amp-env id0)))
+	      (snd-display "pan-mix 2->2 env 0: ~A" (mix-amp-env id0)))
 	  (if (not (feql (mix-amp-env id1) '(0 0 1 1 2 0)))
-	      (snd-display ";pan-mix 2->2 env 1: ~A" (mix-amp-env id1)))
+	      (snd-display "pan-mix 2->2 env 1: ~A" (mix-amp-env id1)))
 	  (if (not (feql (mix-amp-env id2) '(0 1 1 0 2 1)))
-	      (snd-display ";pan-mix 2->2 env 2: ~A" (mix-amp-env id2)))
+	      (snd-display "pan-mix 2->2 env 2: ~A" (mix-amp-env id2)))
 	  (if (not (feql (mix-amp-env id3) '(0 0 1 1 2 0)))
-	      (snd-display ";pan-mix 2->2 env 3: ~A" (mix-amp-env id3)))))
+	      (snd-display "pan-mix 2->2 env 3: ~A" (mix-amp-env id3)))))
       (revert-sound ind)
       (close-sound ind))
     
@@ -22631,30 +22631,30 @@ EDITS: 2
 	(let ((id0 (car ids))
 	      (id1 (cadr ids)))
 	  (if (not (and (mix? id0) (mix? id1)))
-	      (snd-display ";pan-mix-float-vector 1->2: ~A ~A" id0 id1))
+	      (snd-display "pan-mix-float-vector 1->2: ~A ~A" id0 id1))
 	  (if (not (= (mix-position id0) (mix-position id1) 100))
-	      (snd-display ";pan-mix-float-vector 1->2 pos: ~A ~A" (mix-position id0) (mix-position id1)))
+	      (snd-display "pan-mix-float-vector 1->2 pos: ~A ~A" (mix-position id0) (mix-position id1)))
 	  (if (or (fneq (mix-amp id0) 1.0) (fneq (mix-amp id1) 1.0)) 
-	      (snd-display ";pan-mix-float-vector 1->2 amps: ~A ~A" (mix-amp id0) (mix-amp id1)))
+	      (snd-display "pan-mix-float-vector 1->2 amps: ~A ~A" (mix-amp id0) (mix-amp id1)))
 	  (if (not (feql (mix-amp-env id0) '(0 1 1 0)))
-	      (snd-display ";pan-mix-float-vector 1->2 env 0: ~A" (mix-amp-env id0)))
+	      (snd-display "pan-mix-float-vector 1->2 env 0: ~A" (mix-amp-env id0)))
 	  (if (not (feql (mix-amp-env id1) '(0 0 1 1)))
-	      (snd-display ";pan-mix-float-vector 1->2 env 1: ~A" (mix-amp-env id1)))))
+	      (snd-display "pan-mix-float-vector 1->2 env 1: ~A" (mix-amp-env id1)))))
       (revert-sound ind)
       
       (let ((ids (pan-mix-region (make-region 0 50 ind 0) 100 '(0 0 1 1))))
 	(let ((id0 (car ids))
 	      (id1 (cadr ids)))
 	  (if (not (and (mix? id0) (mix? id1)))
-	      (snd-display ";pan-mix-region 1->2: ~A ~A" id0 id1))
+	      (snd-display "pan-mix-region 1->2: ~A ~A" id0 id1))
 	  (if (not (= (mix-position id0) (mix-position id1) 100))
-	      (snd-display ";pan-mix-region 1->2 pos: ~A ~A" (mix-position id0) (mix-position id1)))
+	      (snd-display "pan-mix-region 1->2 pos: ~A ~A" (mix-position id0) (mix-position id1)))
 	  (if (or (fneq (mix-amp id0) 1.0) (fneq (mix-amp id1) 1.0)) 
-	      (snd-display ";pan-mix-region 1->2 amps: ~A ~A" (mix-amp id0) (mix-amp id1)))
+	      (snd-display "pan-mix-region 1->2 amps: ~A ~A" (mix-amp id0) (mix-amp id1)))
 	  (if (not (feql (mix-amp-env id0) '(0 1 1 0)))
-	      (snd-display ";pan-mix-region 1->2 env 0: ~A" (mix-amp-env id0)))
+	      (snd-display "pan-mix-region 1->2 env 0: ~A" (mix-amp-env id0)))
 	  (if (not (feql (mix-amp-env id1) '(0 0 1 1)))
-	      (snd-display ";pan-mix-region 1->2 env 1: ~A" (mix-amp-env id1)))))
+	      (snd-display "pan-mix-region 1->2 env 1: ~A" (mix-amp-env id1)))))
       (revert-sound ind)
       
       (select-all)
@@ -22662,15 +22662,15 @@ EDITS: 2
 	(let ((id0 (car ids))
 	      (id1 (cadr ids)))
 	  (if (not (and (mix? id0) (mix? id1)))
-	      (snd-display ";pan-mix-selection 1->2: ~A ~A" id0 id1))
+	      (snd-display "pan-mix-selection 1->2: ~A ~A" id0 id1))
 	  (if (not (= (mix-position id0) (mix-position id1) 100))
-	      (snd-display ";pan-mix-selection 1->2 pos: ~A ~A" (mix-position id0) (mix-position id1)))
+	      (snd-display "pan-mix-selection 1->2 pos: ~A ~A" (mix-position id0) (mix-position id1)))
 	  (if (or (fneq (mix-amp id0) 1.0) (fneq (mix-amp id1) 1.0)) 
-	      (snd-display ";pan-mix-selection 1->2 amps: ~A ~A" (mix-amp id0) (mix-amp id1)))
+	      (snd-display "pan-mix-selection 1->2 amps: ~A ~A" (mix-amp id0) (mix-amp id1)))
 	  (if (not (feql (mix-amp-env id0) '(0 1 1 0)))
-	      (snd-display ";pan-mix-selection 1->2 env 0: ~A" (mix-amp-env id0)))
+	      (snd-display "pan-mix-selection 1->2 env 0: ~A" (mix-amp-env id0)))
 	  (if (not (feql (mix-amp-env id1) '(0 0 1 1)))
-	      (snd-display ";pan-mix-selection 1->2 env 1: ~A" (mix-amp-env id1)))))
+	      (snd-display "pan-mix-selection 1->2 env 1: ~A" (mix-amp-env id1)))))
       (revert-sound ind)
       (close-sound ind))
     
@@ -22683,9 +22683,9 @@ EDITS: 2
       (let* ((mx (mix-float-vector v 0 snd 0))
 	     (mx-copy (copy mx)))
 	(if (not (= (length mx) (length mx-copy)))
-	    (snd-display ";copy mix lengths: ~A ~A" (length mx) (length mx-copy)))
+	    (snd-display "copy mix lengths: ~A ~A" (length mx) (length mx-copy)))
 	(if (not (= (mix-position mx) (mix-position mx-copy)))
-	    (snd-display ";copy mix positions: ~A ~A" (mix-position mx) (mix-position mx-copy)))
+	    (snd-display "copy mix positions: ~A ~A" (mix-position mx) (mix-position mx-copy)))
 	(set! (mix-position mx-copy) 2000)
 	(let ((rd1 (make-sampler 0))
 	      (rd2 (make-sampler 2000))
@@ -22697,7 +22697,7 @@ EDITS: 2
 		  (x2 (rd2)))
 	      (when (or (fneq x1 x2) (fneq x1 (* i .001)))
 		(set! happy #f)
-		(snd-display ";copy mix at ~A: ~A ~A ~A" i x1 x2 (* i .001)))))))
+		(snd-display "copy mix at ~A: ~A ~A ~A" i x1 x2 (* i .001)))))))
       (close-sound snd))
     
     (when all-args
@@ -22792,34 +22792,34 @@ EDITS: 2
     (let ((ind0 (new-sound "fmv.snd" 1 22050 mus-bshort mus-aifc "this is a comment")))
       (insert-samples 0 10 (make-vector 10 1.0) ind0)
       (time (env-sound '(0 0 1 1) 0 10 1.0 ind0))
-      (do ((i 0 (+ i 1))) ((= i 10)) (if (fneq (sample i) (* i .1111)) (snd-display ";1 env-sound[~D]: ~A?" i (sample i))))
+      (do ((i 0 (+ i 1))) ((= i 10)) (if (fneq (sample i) (* i .1111)) (snd-display "1 env-sound[~D]: ~A?" i (sample i))))
       (undo) 
       (env-sound (make-env '(0 0 1 1) :length 10) 0 10 1.0 ind0) 
-      (do ((i 0 (+ i 1))) ((= i 10)) (if (fneq (sample i) (* i .1111)) (snd-display ";2 env-sound[~D]: ~A?" i (sample i))))
+      (do ((i 0 (+ i 1))) ((= i 10)) (if (fneq (sample i) (* i .1111)) (snd-display "2 env-sound[~D]: ~A?" i (sample i))))
       (undo) 
       (env-sound '(0 0 .5 1 1 1) 0 10 0.0 ind0) 
       (if (or (fneq (sample 3) 0.0) (fneq (sample 8) 1.0) )
-	  (snd-display ";env-sound stepped: ~A ~A?" (sample 3) (sample 8)))
+	  (snd-display "env-sound stepped: ~A ~A?" (sample 3) (sample 8)))
       (undo) 
       (env-sound '(0 0 1 1) 0 10 32.0 ind0) 
       (if (or (fneq (sample 3) 0.070) (fneq (sample 8) 0.67) )
-	  (snd-display ";env-sound exp: ~A ~A?" (sample 3) (sample 8)))
+	  (snd-display "env-sound exp: ~A ~A?" (sample 3) (sample 8)))
       (undo) 
       (env-sound (make-env '(0 0 1 1) :base 32.0 :length 10) 0 10 32.0 ind0) 
       (if (or (fneq (sample 3) 0.070) (fneq (sample 8) 0.67) )
-	  (snd-display ";env-sound exp: ~A ~A?" (sample 3) (sample 8)))
+	  (snd-display "env-sound exp: ~A ~A?" (sample 3) (sample 8)))
       (undo)
       (env-sound '(0 2))
-      (do ((i 0 (+ i 1))) ((= i 10)) (if (fneq (sample i) 2.0) (snd-display ";3 env-sound[~D]: ~A?" i (sample i))))
+      (do ((i 0 (+ i 1))) ((= i 10)) (if (fneq (sample i) 2.0) (snd-display "3 env-sound[~D]: ~A?" i (sample i))))
       (undo)
       (env-sound '(0 2) 2 4 1.0 ind0)
       (if (or (fneq (sample 1) 1.0) (fneq (sample 2) 2.0) (fneq (sample 5) 2.0) (fneq (sample 8) 1.0))
-	  (snd-display ";3 env-sound exp: ~A ~A ~A ~A?" (sample 1) (sample 2) (sample 5) (sample 8)))
+	  (snd-display "3 env-sound exp: ~A ~A ~A ~A?" (sample 1) (sample 2) (sample 5) (sample 8)))
       (undo) 
       (do ((i 1 (+ i 1))) ((= i 10)) (set! (sample i) 0.0))
       (filter-sound '(0 1 1 0) 4)
       (if (or (fneq (sample 1) 0.3678) (fneq (sample 2) .3678) (fneq (sample 3) .132) (fneq (sample 4) 0.0))
-	  (snd-display ";filter-sound env: ~A?" (samples 0 8)))
+	  (snd-display "filter-sound env: ~A?" (samples 0 8)))
       (undo)
       (filter-sound '(0 1 1 0) 1024)
       (undo)
@@ -22833,7 +22833,7 @@ EDITS: 2
 	(set! (vc0 0) .125) (set! (vc0 1) .25) (set! (vc0 2) .25) (set! (vc0 3) .125) 
 	(filter-sound vc0 4) 
 	(if (or (fneq (sample 0) 0.125) (fneq (sample 1) .25) (fneq (sample 2) .25) (fneq (sample 5) 0.0))
-	    (snd-display ";filter-sound direct: ~A?" (samples 0 8)))
+	    (snd-display "filter-sound direct: ~A?" (samples 0 8)))
 	(revert-sound))
       (close-sound ind0))
       
@@ -22848,24 +22848,24 @@ EDITS: 2
 	(env-sound '(0 0 1 1) 0 10 1.0 ind0)
 	(do ((i 0 (+ i 1))) 
 	    ((= i 10)) 
-	  (if (fneq (sample i ind0 0) (* i .1111)) (snd-display ";ind0:0 1 env-sound[~D]: ~A?" i (sample i ind0 0)))
-	  (if (fneq (sample i ind0 1) (* i .1111)) (snd-display ";ind0:1 1 env-sound[~D]: ~A?" i (sample i ind0 1)))
-	  (if (fneq (sample i ind1 0) (* i .1111)) (snd-display ";ind1:0 1 env-sound[~D]: ~A?" i (sample i ind1 0))))
+	  (if (fneq (sample i ind0 0) (* i .1111)) (snd-display "ind0:0 1 env-sound[~D]: ~A?" i (sample i ind0 0)))
+	  (if (fneq (sample i ind0 1) (* i .1111)) (snd-display "ind0:1 1 env-sound[~D]: ~A?" i (sample i ind0 1)))
+	  (if (fneq (sample i ind1 0) (* i .1111)) (snd-display "ind1:0 1 env-sound[~D]: ~A?" i (sample i ind1 0))))
 	(undo) 
 	(env-sound (make-env '(0 0 1 1) :length 10) 0 10 1.0 ind0) 
 	(do ((i 0 (+ i 1))) 
 	    ((= i 10)) 
-	  (if (fneq (sample i ind0 0) (* i .1111)) (snd-display ";ind0:0 2 env-sound[~D]: ~A?" i (sample i ind0 0)))
-	  (if (fneq (sample i ind0 1) (* i .1111)) (snd-display ";ind0:1 2 env-sound[~D]: ~A?" i (sample i ind0 1)))
-	  (if (fneq (sample i ind1 0) (* i .1111)) (snd-display ";ind1:0 2 env-sound[~D]: ~A?" i (sample i ind1 0))))
+	  (if (fneq (sample i ind0 0) (* i .1111)) (snd-display "ind0:0 2 env-sound[~D]: ~A?" i (sample i ind0 0)))
+	  (if (fneq (sample i ind0 1) (* i .1111)) (snd-display "ind0:1 2 env-sound[~D]: ~A?" i (sample i ind0 1)))
+	  (if (fneq (sample i ind1 0) (* i .1111)) (snd-display "ind1:0 2 env-sound[~D]: ~A?" i (sample i ind1 0))))
 	(undo) 
 	(env-sound '(0 0 .5 1 1 1) 0 10 0.0 ind0) 
 	(if (or (fneq (sample 3 ind0 0) 0.0) (fneq (sample 8 ind0 0) 1.0) ) 
-	    (snd-display ";ind0:0 env-sound stepped: ~A ~A?" (sample 3 ind0 0) (sample 8 ind0 0)))
+	    (snd-display "ind0:0 env-sound stepped: ~A ~A?" (sample 3 ind0 0) (sample 8 ind0 0)))
 	(if (or (fneq (sample 3 ind0 1) 0.0) (fneq (sample 8 ind0 1) 1.0) ) 
-	    (snd-display ";ind0:1 env-sound stepped: ~A ~A?" (sample 3 ind0 1) (sample 8 ind0 1)))
+	    (snd-display "ind0:1 env-sound stepped: ~A ~A?" (sample 3 ind0 1) (sample 8 ind0 1)))
 	(if (or (fneq (sample 3 ind1 0) 0.0) (fneq (sample 8 ind1 0) 1.0) ) 
-	    (snd-display ";ind1:0 env-sound stepped: ~A ~A?" (sample 3 ind1 0) (sample 8 ind1 0)))
+	    (snd-display "ind1:0 env-sound stepped: ~A ~A?" (sample 3 ind1 0) (sample 8 ind1 0)))
 	(undo)
 	(revert-sound ind0)
 	(revert-sound ind1)
@@ -22875,9 +22875,9 @@ EDITS: 2
 	(filter-sound (make-one-zero :a0 0.5 :a1 0.0) 0 ind0)
 	(do ((i 0 (+ i 1))) 
 	    ((= i 10)) 
-	  (if (fneq (sample i ind0 0) 0.5) (snd-display ";ind0:0 1 filter-sound[~D]: ~A?" i (sample i ind0 0)))
-	  (if (fneq (sample i ind0 1) 0.5) (snd-display ";ind0:1 1 filter-sound[~D]: ~A?" i (sample i ind0 1)))
-	  (if (fneq (sample i ind1 0) 0.5) (snd-display ";ind1:0 1 filter-sound[~D]: ~A?" i (sample i ind1 0))))
+	  (if (fneq (sample i ind0 0) 0.5) (snd-display "ind0:0 1 filter-sound[~D]: ~A?" i (sample i ind0 0)))
+	  (if (fneq (sample i ind0 1) 0.5) (snd-display "ind0:1 1 filter-sound[~D]: ~A?" i (sample i ind0 1)))
+	  (if (fneq (sample i ind1 0) 0.5) (snd-display "ind1:0 1 filter-sound[~D]: ~A?" i (sample i ind1 0))))
 	
 	(close-sound ind1))
       (close-sound ind0))
@@ -22888,16 +22888,16 @@ EDITS: 2
 	  (insert-samples 10 10 v0 ind0)
 	  (env-sound '(0 0 1 2) 10 10 1.0 ind0)
 	  (do ((i 0 (+ i 1))) ((= i 10)) 
-	    (if (fneq (sample (+ i 10) ind0) (* i .0222)) (snd-display ";env-sound [~D]: ~A?" (+ i 10) (sample (+ i 10) ind0))))
-	  (if (fneq (sample 5 ind0) old5) (snd-display ";env-sound 5: ~A ~A?" old5 (sample 5 ind0))))
+	    (if (fneq (sample (+ i 10) ind0) (* i .0222)) (snd-display "env-sound [~D]: ~A?" (+ i 10) (sample (+ i 10) ind0))))
+	  (if (fneq (sample 5 ind0) old5) (snd-display "env-sound 5: ~A ~A?" old5 (sample 5 ind0))))
 	(undo)
 	(env-sound '(0 0 1 2) 10 10 4.0 ind0)
 	(set! v0 (channel->float-vector 10 10))
-	(if (or (fneq (v0 3) 0.039) (fneq (v0 8) .162)) (snd-display ";env-sound 4: ~A" v0))
+	(if (or (fneq (v0 3) 0.039) (fneq (v0 8) .162)) (snd-display "env-sound 4: ~A" v0))
 	(undo)
 	(env-sound '(0 0 1 2) 10 10 .05 ind0)
 	(set! v0 (channel->float-vector 10 10))
-	(if (or (fneq (v0 3) 0.133) (fneq (v0 8) .196)) (snd-display ";env-sound 05: ~A" v0)))
+	(if (or (fneq (v0 3) 0.133) (fneq (v0 8) .196)) (snd-display "env-sound 05: ~A" v0)))
       (close-sound ind0))
 
     (let ((ind0 (new-sound "fmv.snd" 2 22050 mus-bshort mus-aifc "this is a comment"))
@@ -22909,17 +22909,17 @@ EDITS: 2
 	(fill! v0 0.01)
 	(insert-samples 0 10 v0 ind1 0) 
 	(let ((val (data-max1 ind0 0)))
-	  (if (fneq val 1.0) (snd-display ";scan-chan[0,0]: ~A?" val)))
+	  (if (fneq val 1.0) (snd-display "scan-chan[0,0]: ~A?" val)))
 	(let ((val (data-max1 ind0 1)))
-	  (if (fneq val 0.1) (snd-display ";scan-chan[0,1]: ~A?" val)))
+	  (if (fneq val 0.1) (snd-display "scan-chan[0,1]: ~A?" val)))
 	(let ((val (data-max1 ind1 0)))
-	  (if (fneq val 0.01) (snd-display ";scan-chan[1,0]: ~A?" val)))
+	  (if (fneq val 0.01) (snd-display "scan-chan[1,0]: ~A?" val)))
 	(let ((val (data-max1 #f #f)))
-	  (if (fneq val 0.01) (snd-display ";scan-chans: ~A?" val)))
+	  (if (fneq val 0.01) (snd-display "scan-chans: ~A?" val)))
 	(let ((val (data-max 0 9)))
-	  (if (fneq val 1.0) (snd-display ";scan-all-chans: ~A?" val)))
+	  (if (fneq val 1.0) (snd-display "scan-all-chans: ~A?" val)))
 	(let ((val (data-max2 ind0)))
-	  (if (fneq val 1.0) (snd-display ";scan-across-sound-chans: ~A?" val))))
+	  (if (fneq val 1.0) (snd-display "scan-across-sound-chans: ~A?" val))))
       (close-sound ind0)
       (close-sound ind1))
       
@@ -22933,99 +22933,99 @@ EDITS: 2
 	    (undo)
 	    (save-sound)
 	    (if (not (= (length (marks ind0 0)) 2))
-		(snd-display ";marks after save: ~A" (marks ind0 0)))
+		(snd-display "marks after save: ~A" (marks ind0 0)))
 	    (if (not (and (mark? m1)
 			  (= (mark-sample m1) 99)))
-		(snd-display ";save-sound mark1: ~A" (mark-sample m1)))
+		(snd-display "save-sound mark1: ~A" (mark-sample m1)))
 	    (if (not (and (mark? m2)
 			  (= (mark-sample m2) 200)))
-		(snd-display ";save-sound mark2: ~A" (mark-sample m2)))
-	    (if (mark? m3) (snd-display ";save-sound mark3: ~A" m3)))))
+		(snd-display "save-sound mark2: ~A" (mark-sample m2)))
+	    (if (mark? m3) (snd-display "save-sound mark3: ~A" m3)))))
       (close-sound ind0))
       
     (let ((fd (open-sound "oboe.snd"))
 	  (m1 (add-mark 123))
 	  (sync-val (+ 1 (mark-sync-max))))
-      (if (not (mark? m1)) (snd-display ";mark?"))
-      (if (not (= (mark-sample m1) 123)) (snd-display ";add-mark: ~A? " (mark-sample m1)))
+      (if (not (mark? m1)) (snd-display "mark?"))
+      (if (not (= (mark-sample m1) 123)) (snd-display "add-mark: ~A? " (mark-sample m1)))
       (set! (mark-property :hiho m1) 123)
-      (if (not (= (mark-property :hiho m1) 123)) (snd-display ";mark-property: ~A" (mark-property :hiho m1)))
-      (if (mark-property :not-there m1) (snd-display ";mark-not-property: ~A" (mark-property :not-there m1)))
+      (if (not (= (mark-property :hiho m1) 123)) (snd-display "mark-property: ~A" (mark-property :hiho m1)))
+      (if (mark-property :not-there m1) (snd-display "mark-not-property: ~A" (mark-property :not-there m1)))
       (if (not (eq? (without-errors (add-mark 123 123)) 'no-such-sound)) 
-	  (snd-display ";add-mark err: ~A?" (without-errors (add-mark 123 123))))
+	  (snd-display "add-mark err: ~A?" (without-errors (add-mark 123 123))))
       (let ((m2 (without-errors (add-mark 12345 fd 0))))
-	(if (eq? m2 'no-such-mark) (snd-display ";add-mark failed?"))
-	(if (not (= (mark-sample m2) 12345)) (snd-display ";add-mark 0 0: ~A?" (mark-sample m2)))
-	(if (not (= (mark-sync m2) 0)) (snd-display ";init mark-sync: ~A?" (mark-sync m2)))
+	(if (eq? m2 'no-such-mark) (snd-display "add-mark failed?"))
+	(if (not (= (mark-sample m2) 12345)) (snd-display "add-mark 0 0: ~A?" (mark-sample m2)))
+	(if (not (= (mark-sync m2) 0)) (snd-display "init mark-sync: ~A?" (mark-sync m2)))
 	(set! (mark-sync m2) sync-val)
-	(if (not (= (mark-sync m2) sync-val)) (snd-display ";set-mark-sync (~A): ~A?" sync-val (mark-sync m2)))
+	(if (not (= (mark-sync m2) sync-val)) (snd-display "set-mark-sync (~A): ~A?" sync-val (mark-sync m2)))
 	
 	(let* ((chans (marks fd 0))
 	       (samps (map mark-sample chans)))
 	  (let ((syncs (syncd-marks sync-val)))
-	    (if (not (equal? syncs (list m2))) (snd-display ";syncd-marks: ~A?" syncs)))
-	  (if (not (equal? chans (list m1 m2))) (snd-display ";marks: ~A?" chans))
-	  (if (not (equal? samps (list (mark-sample m1) (mark-sample m2)))) (snd-display ";map samps: ~A?" samps))
+	    (if (not (equal? syncs (list m2))) (snd-display "syncd-marks: ~A?" syncs)))
+	  (if (not (equal? chans (list m1 m2))) (snd-display "marks: ~A?" chans))
+	  (if (not (equal? samps (list (mark-sample m1) (mark-sample m2)))) (snd-display "map samps: ~A?" samps))
 	  (delete-samples 200 100 fd 0)
 	  (set! chans (marks fd))
 	  (set! samps (map mark-sample (car chans)))
-	  (if (not (equal? samps (list (mark-sample m1 0) (- (mark-sample m2 0) 100)))) (snd-display ";map samps: ~A?" samps))
+	  (if (not (equal? samps (list (mark-sample m1 0) (- (mark-sample m2 0) 100)))) (snd-display "map samps: ~A?" samps))
 	  (let ((descr (describe-mark m2)))
 	    (if (not (list? descr))
-		(snd-display ";describe-mark: ~A?" descr)))
+		(snd-display "describe-mark: ~A?" descr)))
 	  (set! (mark-sync m1) (mark-sync m2))
 	  (move-syncd-marks sync-val 100)
 	  (let ((chans (marks fd)))
 	    (set! samps (map mark-sample (car chans))))
-	  (if (not (equal? samps (list (+ (mark-sample m1 0) 100) (mark-sample m2 0)))) (snd-display ";syncd move samps: ~A?" samps)))
+	  (if (not (equal? samps (list (+ (mark-sample m1 0) 100) (mark-sample m2 0)))) (snd-display "syncd move samps: ~A?" samps)))
 	(set! (cursor) 500)
 	(set! (mark-sync m1) #t)
-	(if (not (= (mark-sync m1) 1)) (snd-display ";mark-sync via bool: ~A" (mark-sync m1)))
+	(if (not (= (mark-sync m1) 1)) (snd-display "mark-sync via bool: ~A" (mark-sync m1)))
 	(delete-mark m1)
 	(let ((chans (marks fd 0)))
-	  (if (not (equal? chans (list m2))) (snd-display ";delete-mark? ~A" chans)))
+	  (if (not (equal? chans (list m2))) (snd-display "delete-mark? ~A" chans)))
 	(undo)
 	(let ((chans (marks fd 0)))
-	  (if (not (equal? chans (list m1 m2))) (snd-display ";delete-mark then undo? ~A" chans)))
+	  (if (not (equal? chans (list m1 m2))) (snd-display "delete-mark then undo? ~A" chans)))
 	(redo)
-	(if (not (string=? (mark-name m2) "")) (snd-display ";init mark-name: ~A?" (mark-name m2)))
+	(if (not (string=? (mark-name m2) "")) (snd-display "init mark-name: ~A?" (mark-name m2)))
 	(set! (mark-name m2) "hiho!")
-	(if (not (string=? (mark-name m2) "hiho!")) (snd-display ";set-mark-name: ~A?" (mark-name m2)))
+	(if (not (string=? (mark-name m2) "hiho!")) (snd-display "set-mark-name: ~A?" (mark-name m2)))
 	(undo)
-	(if (not (string=? (mark-name m2) "")) (snd-display ";undo mark-name: ~A?" (mark-name m2)))
+	(if (not (string=? (mark-name m2) "")) (snd-display "undo mark-name: ~A?" (mark-name m2)))
 	(redo)
-	(if (not (string=? (mark-name m2) "hiho!")) (snd-display ";redo mark-name: ~A?" (mark-name m2)))
+	(if (not (string=? (mark-name m2) "hiho!")) (snd-display "redo mark-name: ~A?" (mark-name m2)))
 	
 	(let ((m3 (find-mark "hiho!"))
 	      (m4 (find-mark (mark-sample m2))))
 	  (let ((m5 (find-mark "not-a-mark"))
 		(m6 (find-mark 123456787)))
 	    (let ((m7 (mark-name->id "hiho!")))
-	      (if (not (and (equal? m2 m3) (equal? m4 m7) (equal? m2 m4))) (snd-display ";find-mark: ~A ~A ~A ~A?" m2 m3 m4 m7)))
-	    (if (or (not (equal? m5 m6)) m5) (snd-display ";find-not-a-mark: ~A ~A?" m5 m6)))
+	      (if (not (and (equal? m2 m3) (equal? m4 m7) (equal? m2 m4))) (snd-display "find-mark: ~A ~A ~A ~A?" m2 m3 m4 m7)))
+	    (if (or (not (equal? m5 m6)) m5) (snd-display "find-not-a-mark: ~A ~A?" m5 m6)))
 	  (set! (mark-sample m2) 2000)
 	  (set! m1 (add-mark 1000))
 	  (set! m3 (add-mark 3000))
 	  (set! m4 (add-mark 4000))
 	  (insert-samples 2500 500 (make-float-vector 500) fd 0)
 	  (let ((samps (map mark-sample (marks fd 0))))
-	    (if (not (equal? samps '(1000 2000 3500 4500))) (snd-display ";insert ripple: ~A?" samps)))
+	    (if (not (equal? samps '(1000 2000 3500 4500))) (snd-display "insert ripple: ~A?" samps)))
 	  (set! (mark-sample m3) 300)
 	  (set! (cursor) 500)
 	  (let ((sd (open-sound "4.aiff")))
 	    (set! m3 (add-mark 1000 sd 2))
 	    (set! m4 (add-mark 1000 sd 3))
-	    (if (not (equal? (mark-home m3) (list sd 2))) (snd-display ";marks->sound 4: ~A?" (mark-home m3)))
+	    (if (not (equal? (mark-home m3) (list sd 2))) (snd-display "marks->sound 4: ~A?" (mark-home m3)))
 	    (close-sound sd)))
 	
 	(let ((file (save-marks fd)))
 	  (if (not (equal? file (string-append cwd "oboe.marks")))
-	      (snd-display ";save-marks -> ~A?" file)))
+	      (snd-display "save-marks -> ~A?" file)))
 	(let ((file (save-marks fd "hiho.marks")))
 	  (if (not (equal? file "hiho.marks"))
-	      (snd-display ";save-marks with arg -> ~A?" file))
+	      (snd-display "save-marks with arg -> ~A?" file))
 	  (if (not (zero? (system (format #f "diff hiho.marks \"~Aoboe.marks\"" cwd))))
-	      (snd-display ";save marks differs")))
+	      (snd-display "save marks differs")))
 	(close-sound fd)
 	(let ((s1 (open-sound "oboe.snd"))
 	      (s2 (open-sound "oboe.snd")))
@@ -23038,35 +23038,35 @@ EDITS: 2
 	  (close-sound s1)
 	  (close-sound s2))
 	(load (string-append cwd "s61.scm"))
-	(if (not *with-verbose-cursor*) (snd-display ";save-state with-verbose-cursor?"))
+	(if (not *with-verbose-cursor*) (snd-display "save-state with-verbose-cursor?"))
 	(let ((s1 (find-sound "oboe.snd" 0))
 	      (s2 (find-sound "oboe.snd" 1)))
 	  (if (not (and (sound? s1) (sound? s2)))
-	      (snd-display ";can't re-open sounds? ~A ~A" s1 s2)
+	      (snd-display "can't re-open sounds? ~A ~A" s1 s2)
 	      (let ((m1 (marks s1))
 		    (m2 (marks s2)))
 		(if (not (and (pair? m1) (null? (cdr m1))
 			      (pair? m2) (null? (cdr m2))
 			      (pair? (car m1)) (null? (cdar m1))
 			      (pair? (car m2)) (null? (cdar m2))))
-		    (snd-display ";save-marks via save-state to: ~A ~A" m1 m2)
+		    (snd-display "save-marks via save-state to: ~A ~A" m1 m2)
 		    (let ((samp1 (mark-sample (caar m1)))
 			  (samp2 (mark-sample (caar m2))))
 		      (if (not (and (= samp1 123)
 				    (= samp2 321)))
-			  (snd-display ";save-marks via save-state positions: ~A ~A" samp1 samp2))))))
+			  (snd-display "save-marks via save-state positions: ~A ~A" samp1 samp2))))))
 	  (if (sound? s1) (close-sound s1))
 	  (if (sound? s2) (close-sound s2)))
 	(let ((fd (open-sound "pistol.snd")))
 	  (let ((file (save-marks)))
 	    (if (string? file)
-		(snd-display ";save-marks no marks -> ~A?" file)))
+		(snd-display "save-marks no marks -> ~A?" file)))
 	  (close-sound fd))
 	(let ((fd (open-sound "oboe.snd")))
 	  (load (string-append cwd "oboe.marks"))
 	  (let ((mlst (marks fd 0)))
 	    (if (not (= (length mlst) 4)) 
-		(snd-display ";restore oboe.marks: ~A, marks: ~A" (file->string "oboe.marks") (marks fd 0))))
+		(snd-display "restore oboe.marks: ~A, marks: ~A" (file->string "oboe.marks") (marks fd 0))))
 	  (close-sound fd))
 	(let ((fd (open-sound "oboe.snd")))
 	  (add-mark 1000)
@@ -23075,17 +23075,17 @@ EDITS: 2
 	  (let ((ms (marks fd 0)))
 	    (src-sound -.5)
 	    (if (not (equal? (marks fd 0) (reverse (marks fd 0 0))))
-		(snd-display ";src rev marks: ~A ~A ~A" ms (marks fd 0) (reverse (marks fd 0 0))))
+		(snd-display "src rev marks: ~A ~A ~A" ms (marks fd 0) (reverse (marks fd 0 0))))
 	    (let ((ms1 (map mark-sample (marks fd 0))))
 	      (if (not (equal? ms1 '(7998 96654 99654))) ; off-by-1 somewhere...
-		  (snd-display ";src rev mark locs: ~A" ms1))))
+		  (snd-display "src rev mark locs: ~A" ms1))))
 	  (close-sound fd))
 	(let ((fd (open-sound "4.aiff")))
 	  (add-mark 1000 fd 0)
 	  (add-mark 2000 fd 1)
 	  (add-mark 3000 fd 2)
 	  (add-mark 4000 fd 3)
-	  (if (null? (marks)) (snd-display ";marks (no args): ~A" (marks)))
+	  (if (null? (marks)) (snd-display "marks (no args): ~A" (marks)))
 	  (save-marks fd)
 	  (close-sound fd))
 	(let ((fd (open-sound "4.aiff")))
@@ -23095,9 +23095,9 @@ EDITS: 2
 	      ((= i 4))
 	    (let ((mlst (marks fd i)))
 	      (if (not (= (length mlst) 1))
-		  (snd-display ";save-marks[~A]: ~A?" i mlst))
+		  (snd-display "save-marks[~A]: ~A?" i mlst))
 	      (if (not (= (mark-sample (car mlst)) (* (+ i 1) 1000)))
-		  (snd-display ";save-marks[~A] at ~A?" i (mark-sample (car mlst))))))
+		  (snd-display "save-marks[~A] at ~A?" i (mark-sample (car mlst))))))
 	  (close-sound fd))
 	))
       
@@ -23107,14 +23107,14 @@ EDITS: 2
       (set! (mark-sync m1) 1234)
       (let ((m2 (copy m1)))
 	(if (not (mark? m2)) 
-	    (snd-display "; copy mark: ~A?" m2)
+	    (snd-display " copy mark: ~A?" m2)
 	    (begin
 	      (if (not (= (mark-sample m1) (mark-sample m2) 1234))
-		  (snd-display ";copy mark sample: ~A ~A" (mark-sample m1) (mark-sample m2)))
+		  (snd-display "copy mark sample: ~A ~A" (mark-sample m1) (mark-sample m2)))
 	      (if (not (= (mark-sync m1) (mark-sync m2) 1234))
-		  (snd-display ";copy mark sync: ~A ~A" (mark-sync m1) (mark-sync m2)))
+		  (snd-display "copy mark sync: ~A ~A" (mark-sync m1) (mark-sync m2)))
 	      (if (not (string=? (mark-name m2) "1234"))
-		  (snd-display ";copy mark name: ~A?" (mark-name m2))))))
+		  (snd-display "copy mark name: ~A?" (mark-name m2))))))
       (close-sound fd))
     
     (let* ((ind (open-sound "pistol.snd"))
@@ -23124,82 +23124,82 @@ EDITS: 2
 	   (m2 (add-mark samp2)))
       (set! (mark-sync m1) 123)
       (set! (mark-sync m2) 100)
-      (if (not (= (mark-sync-max) 1234)) (snd-display ";mark-sync-max: ~A" (mark-sync-max)))
+      (if (not (= (mark-sync-max) 1234)) (snd-display "mark-sync-max: ~A" (mark-sync-max)))
       (src-sound -1)
       (if (not (= (mark-sample m1) 39788))
-	  (snd-display ";src -1 m1 -> ~A" (mark-sample m1)))
+	  (snd-display "src -1 m1 -> ~A" (mark-sample m1)))
       (if (not (= (mark-sample m2) 33277))
-	  (snd-display ";src -1 m2 -> ~A" (mark-sample m2)))
+	  (snd-display "src -1 m2 -> ~A" (mark-sample m2)))
       (undo)
       (src-sound .5)
       (if (not (= (mark-sample m1) (* 2 samp1)))
-	  (snd-display ";src .5 m1 -> ~A" (mark-sample m1)))
+	  (snd-display "src .5 m1 -> ~A" (mark-sample m1)))
       (if (not (= (mark-sample m2) (* 2 samp2)))
-	  (snd-display ";src .5 m2 -> ~A" (mark-sample m2)))
+	  (snd-display "src .5 m2 -> ~A" (mark-sample m2)))
       (undo)
       (delete-samples 1000 100)
       (if (not (= (mark-sample m1) (- samp1 100)))
-	  (snd-display ";delete 100 m1 -> ~A" (mark-sample m1)))
+	  (snd-display "delete 100 m1 -> ~A" (mark-sample m1)))
       (insert-silence 1000 100)
       (if (not (= (mark-sample m1) samp1))
-	  (snd-display ";insert 100 m1 -> ~A" (mark-sample m1)))
+	  (snd-display "insert 100 m1 -> ~A" (mark-sample m1)))
       (revert-sound ind)
       (delete-samples 2000 100)
       (if (not (= (mark-sample m1) samp1))
-	  (snd-display ";delete(2) 100 m1 -> ~A" (mark-sample m1)))
+	  (snd-display "delete(2) 100 m1 -> ~A" (mark-sample m1)))
       (if (not (= (mark-sample m2) (- samp2 100)))
-	  (snd-display ";delete(2) 100 m2 -> ~A" (mark-sample m2)))
+	  (snd-display "delete(2) 100 m2 -> ~A" (mark-sample m2)))
       (insert-silence 2000 100)
       (if (not (= (mark-sample m1) samp1))
-	  (snd-display ";insert(2) 100 m1 -> ~A" (mark-sample m1)))
+	  (snd-display "insert(2) 100 m1 -> ~A" (mark-sample m1)))
       (if (not (= (mark-sample m2) samp2))
-	  (snd-display ";insert(2) 100 m2 -> ~A" (mark-sample m2)))
+	  (snd-display "insert(2) 100 m2 -> ~A" (mark-sample m2)))
       (revert-sound ind)
       (delete-samples 10000 100)
       (if (not (= (mark-sample m1) samp1))
-	  (snd-display ";delete(3) 100 m1 -> ~A" (mark-sample m1)))
+	  (snd-display "delete(3) 100 m1 -> ~A" (mark-sample m1)))
       (if (not (= (mark-sample m2) samp2))
-	  (snd-display ";delete(3) 100 m2 -> ~A" (mark-sample m2)))
+	  (snd-display "delete(3) 100 m2 -> ~A" (mark-sample m2)))
       (insert-silence 10000 100)
       (if (not (= (mark-sample m1) samp1))
-	  (snd-display ";insert(3) 100 m1 -> ~A" (mark-sample m1)))
+	  (snd-display "insert(3) 100 m1 -> ~A" (mark-sample m1)))
       (if (not (= (mark-sample m2) samp2))
-	  (snd-display ";insert(3) 100 m2 -> ~A" (mark-sample m2)))
+	  (snd-display "insert(3) 100 m2 -> ~A" (mark-sample m2)))
       (src-sound '(0 .5 1 .5 2 1))
       (if (not (= (mark-sample m1) (* 2 samp1)))
-	  (snd-display ";src env .5 m1 -> ~A" (mark-sample m1)))
+	  (snd-display "src env .5 m1 -> ~A" (mark-sample m1)))
       (if (not (= (mark-sample m2) (* 2 samp2)))
-	  (snd-display ";src env .5 m2 -> ~A" (mark-sample m2)))
+	  (snd-display "src env .5 m2 -> ~A" (mark-sample m2)))
       (undo)
       (reverse-sound)
       (if (not (= (mark-sample m1) 39788))
-	  (snd-display ";reverse-sound m1 -> ~A" (mark-sample m1)))
+	  (snd-display "reverse-sound m1 -> ~A" (mark-sample m1)))
       (if (not (= (mark-sample m2) 33277))
-	  (snd-display ";reverse-sound m2 -> ~A" (mark-sample m2)))
+	  (snd-display "reverse-sound m2 -> ~A" (mark-sample m2)))
       (undo)
       (src-sound '(0 -.5 1 -.5 2 -1))
       (if (not (= (mark-sample m1) 68598))
-	  (snd-display ";src -env m1 -> ~A" (mark-sample m1)))
+	  (snd-display "src -env m1 -> ~A" (mark-sample m1)))
       (if (not (= (mark-sample m2) 61160))
-	  (snd-display ";src -env m2 -> ~A" (mark-sample m2)))
+	  (snd-display "src -env m2 -> ~A" (mark-sample m2)))
       (revert-sound ind)
       (src-channel (make-env '(0 .5 1 1) :length 8001) 2000 10000)
       (if (not (= (mark-sample m1) samp1))
-	  (snd-display ";src-channel(1) m1 -> ~A" (mark-sample m1)))
+	  (snd-display "src-channel(1) m1 -> ~A" (mark-sample m1)))
       (if (not (= (mark-sample m2) 11345))
-	  (snd-display ";src-channel(1) m2 -> ~A" (mark-sample m2)))
+	  (snd-display "src-channel(1) m2 -> ~A" (mark-sample m2)))
       (undo)
       (src-channel (make-env '(0 .5 1 1) :length 8001) 0 8000)
       (if (not (= (mark-sample m1) 3303))
-	  (snd-display ";src-channel(2) m1 -> ~A" (mark-sample m1)))
+	  (snd-display "src-channel(2) m1 -> ~A" (mark-sample m1)))
       (if (not (= (mark-sample m2) samp2))
-	  (snd-display ";src-channel(2) m2 -> ~A" (mark-sample m2)))
+	  (snd-display "src-channel(2) m2 -> ~A" (mark-sample m2)))
       (undo)
       (src-channel (make-env '(0 .5 1 1) :length 8001) 10000 8000)
       (if (not (= (mark-sample m1) samp1))
-	  (snd-display ";src-channel(3) m1 -> ~A" (mark-sample m1)))
+	  (snd-display "src-channel(3) m1 -> ~A" (mark-sample m1)))
       (if (not (= (mark-sample m2) samp2))
-	  (snd-display ";src-channel(3) m2 -> ~A" (mark-sample m2)))
+	  (snd-display "src-channel(3) m2 -> ~A" (mark-sample m2)))
       (close-sound ind)
       (set! ind (open-sound "2.snd"))
       (set! (sync ind) #t)
@@ -23208,10 +23208,10 @@ EDITS: 2
 	(swap-channels)
 	(if (not (and (equal? (mark-home m3) (list ind 1))
 		      (equal? (mark-home m4) (list ind 0))))
-	    (snd-display ";swapped mark homes: ~A ~A?" (mark-home m3) (mark-home m4)))
+	    (snd-display "swapped mark homes: ~A ~A?" (mark-home m3) (mark-home m4)))
 	(if (not (and (= (mark-sample m3) 1000)
 		      (= (mark-sample m4) 8000)))
-	    (snd-display ";swapped mark samples: ~A ~A?" (mark-sample m3) (mark-sample m4)))
+	    (snd-display "swapped mark samples: ~A ~A?" (mark-sample m3) (mark-sample m4)))
 	(close-sound ind))
       (set! ind (open-sound "2.snd"))
       (set! (sync ind) #t)
@@ -23219,9 +23219,9 @@ EDITS: 2
 	(delete-samples 1000 10 ind 1)
 	(swap-channels)
 	(if (not (equal? (mark-home m3) (list ind 1)))
-	    (snd-display ";edited swapped mark home: ~A?" (mark-home m3)))
+	    (snd-display "edited swapped mark home: ~A?" (mark-home m3)))
 	(if (not (= (mark-sample m3) 1000))
-	    (snd-display ";edited swapped mark sample: ~A" (mark-sample m3)))
+	    (snd-display "edited swapped mark sample: ~A" (mark-sample m3)))
 	(delete-marks))
       (close-sound ind))
     
@@ -23232,34 +23232,34 @@ EDITS: 2
       (let ((sel (selection)))
 	(if (not (and (selection?)
 		      (selection? sel)))
-	    (snd-display ";define-selection-via-marks failed?")
+	    (snd-display "define-selection-via-marks failed?")
 	    (let ((mc (selection-members)))
-	      (if (not (equal? mc (list (list ind 0)))) (snd-display ";selection-members after mark definition: ~A (should be '((~A 0)))" mc ind))
-	      (if (not (= (selection-position) 123)) (snd-display ";selection-position 123: ~A" (selection-position)))
-	      (if (not (= (selection-framples) 112)) (snd-display ";selection-framples 112: ~A" (selection-framples))))))
+	      (if (not (equal? mc (list (list ind 0)))) (snd-display "selection-members after mark definition: ~A (should be '((~A 0)))" mc ind))
+	      (if (not (= (selection-position) 123)) (snd-display "selection-position 123: ~A" (selection-position)))
+	      (if (not (= (selection-framples) 112)) (snd-display "selection-framples 112: ~A" (selection-framples))))))
       (set! m1 (add-mark 1000 ind 0))
       (set! m2 (add-mark 2000 ind 0))
       (define-selection-via-marks m1 m2)
       (if (not (selection?))
-	  (snd-display ";define-selection-via-marks repeat failed?")
+	  (snd-display "define-selection-via-marks repeat failed?")
 	  (let ((mc (selection-members)))
-	    (if (not (equal? mc (list (list ind 0)))) (snd-display ";selection-members after second mark definition: ~A (should be '((~A 0)))" mc ind))
-	    (if (not (= (selection-position) 1000)) (snd-display ";selection-position 1000: ~A" (selection-position)))
-	    (if (not (= (selection-framples) 1001)) (snd-display ";selection-framples 1001: ~A" (selection-framples)))))
+	    (if (not (equal? mc (list (list ind 0)))) (snd-display "selection-members after second mark definition: ~A (should be '((~A 0)))" mc ind))
+	    (if (not (= (selection-position) 1000)) (snd-display "selection-position 1000: ~A" (selection-position)))
+	    (if (not (= (selection-framples) 1001)) (snd-display "selection-framples 1001: ~A" (selection-framples)))))
       (set! (selection-member? #t) #f)
-      (if (selection?) (snd-display ";can't clear selection via selection-member?"))
-      (if (selection) (snd-display ";(inactive) selection returns: ~A" (selection)))
+      (if (selection?) (snd-display "can't clear selection via selection-member?"))
+      (if (selection) (snd-display "(inactive) selection returns: ~A" (selection)))
       (set! (selection-member? ind 0) #t)
       (set! (selection-position ind 0) 2000)
       (set! (selection-framples ind 0) 1234)
       (snap-marks)
       (set! m1 (find-mark 2000 ind 0))
-      (if (not (mark? m1)) (snd-display ";snap-marks start: ~A" (map mark-sample (marks ind 0))))
+      (if (not (mark? m1)) (snd-display "snap-marks start: ~A" (map mark-sample (marks ind 0))))
       (set! m2 (find-mark 3234))
-      (if (not (mark? m2)) (snd-display ";snap-marks end: ~A" (map mark-sample (marks ind 0))))
+      (if (not (mark? m2)) (snd-display "snap-marks end: ~A" (map mark-sample (marks ind 0))))
       (set! (selection-position ind 0) (+ (framples ind 0) 1123))
       (if (not (= (selection-position ind 0) (- (framples ind) 1)))
-	  (snd-display ";selection position past eof: ~A ~A" (selection-position ind 0) (- (framples ind) 1)))
+	  (snd-display "selection position past eof: ~A ~A" (selection-position ind 0) (- (framples ind) 1)))
       (revert-sound ind)
       (src-sound '(0 .5 1 1.75665))
       ;; trying to hit previous dur on the nose "by accident..."
@@ -23283,8 +23283,8 @@ EDITS: 2
 	  (if (pair? current-marks)
 	      (let ((id (current-marks (random (- (length current-marks) 1)))))
 		(if (not (equal? id (find-mark (mark-sample id)))) 
-		    (snd-display ";~A: two marks at ~A? ~A" i (mark-sample id) (map mark-sample current-marks)))
-		(if (find-mark "not-a-name") (snd-display ";find-bogus-mark: ~A" (find-mark "not-a-name")))))
+		    (snd-display "~A: two marks at ~A? ~A" i (mark-sample id) (map mark-sample current-marks)))
+		(if (find-mark "not-a-name") (snd-display "find-bogus-mark: ~A" (find-mark "not-a-name")))))
 	  
 	  (case (random 15)
 	    ((0) (let ((beg (random (framples)))
@@ -23294,9 +23294,9 @@ EDITS: 2
 		    (lambda (id old-loc)
 		      (if (> old-loc beg)
 			  (if (not (mark? id))
-			      (snd-display ";insert clobbered mark: ~A" id)
+			      (snd-display "insert clobbered mark: ~A" id)
 			      (if (not (= (mark-sample id) (+ old-loc dur)))
-				  (snd-display ";insert, mark ~D ~D -> ~D (~D)" id old-loc (mark-sample id) dur)))))
+				  (snd-display "insert, mark ~D ~D -> ~D (~D)" id old-loc (mark-sample id) dur)))))
 		    current-marks
 		    current-samples)))
 	    ((1) (if (> (car (edits ind 0)) 0) (undo)))
@@ -23304,15 +23304,15 @@ EDITS: 2
 	    ((3) 
 	     (scale-channel (if (> (maxamp ind 0) .1) .5 2.0))
 	     (if (not (equal? (marks ind 0) current-marks))
-		 (snd-display ";scaling changed marks: ~A ~A" (marks ind 0) current-marks))
+		 (snd-display "scaling changed marks: ~A ~A" (marks ind 0) current-marks))
 	     (if (not (equal? (map mark-sample (marks ind 0)) current-samples))
-		 (snd-display ";scaling changed mark locations: ~A ~A" (map mark-sample (marks ind 0)) current-samples)))
+		 (snd-display "scaling changed mark locations: ~A ~A" (map mark-sample (marks ind 0)) current-samples)))
 	    ((4) 
 	     (set! (sample (random (- (framples) 1))) .5)
 	     (if (not (equal? (marks ind 0) current-marks))
-		 (snd-display ";set-sample changed marks: ~A ~A" (marks ind 0) current-marks))
+		 (snd-display "set-sample changed marks: ~A ~A" (marks ind 0) current-marks))
 	     (if (not (equal? (map mark-sample (marks ind 0)) current-samples))
-		 (snd-display ";set-sample changed mark locations: ~A ~A" (map mark-sample (marks ind 0)) current-samples)))
+		 (snd-display "set-sample changed mark locations: ~A ~A" (map mark-sample (marks ind 0)) current-samples)))
 	    ((5) (let* ((beg (random (framples)))
 			(dur (max 1 (random 100)))
 			(end (+ beg dur)))
@@ -23320,13 +23320,13 @@ EDITS: 2
 		   (for-each
 		    (lambda (id old-loc)
 		      (cond ((and (< beg old-loc end) (mark? id))
-			     (snd-display ";delete did not clobber mark: ~A ~A [~A ~A]" id old-loc beg end))
+			     (snd-display "delete did not clobber mark: ~A ~A [~A ~A]" id old-loc beg end))
 			    ((and (> old-loc end)
 				  (not (= (mark-sample id) (- old-loc dur))))
-			     (snd-display ";delete ripple mark ~D ~D -> ~D (~D)" id old-loc (mark-sample id) dur))
+			     (snd-display "delete ripple mark ~D ~D -> ~D (~D)" id old-loc (mark-sample id) dur))
 			    ((and (< old-loc beg)
 				  (not (= (mark-sample id) old-loc)))
-			     (snd-display ";delete but mark before: ~A ~A ~A ~A" id old-loc (mark-sample id) beg))))
+			     (snd-display "delete but mark before: ~A ~A ~A ~A" id old-loc (mark-sample id) beg))))
 		    current-marks
 		    current-samples)))
 	    ((6) (revert-sound))
@@ -23335,17 +23335,17 @@ EDITS: 2
 		     (let ((id (current-marks (random (- (length current-marks) 1)))))
 		       (delete-mark id)
 		       (if (mark? id)
-			   (snd-display ";delete-mark failed? ~A" id))
+			   (snd-display "delete-mark failed? ~A" id))
 		       (if (not (= (length (marks ind 0)) (- (length current-marks) 1)))
-			   (snd-display ";delete-mark list trouble: ~A ~A ~A" id current-marks (marks ind 0))))))
+			   (snd-display "delete-mark list trouble: ~A ~A ~A" id current-marks (marks ind 0))))))
 	    ((8) (let ((rate (if (> (framples) 200000) 2.0 0.5)))
 		   (src-channel rate)
 		   (for-each
 		    (lambda (id old-loc)
 		      (if (not (mark? id))
-			  (snd-display ";src-channel clobbered mark: ~A" id)
+			  (snd-display "src-channel clobbered mark: ~A" id)
 			  (if (> (abs (- (/ old-loc rate) (mark-sample id))) 2)
-			      (snd-display ";src moved mark: ~A ~A ~A (~A -> ~A)" 
+			      (snd-display "src moved mark: ~A ~A ~A (~A -> ~A)" 
 					   id old-loc (mark-sample id) rate (- (/ old-loc rate) (mark-sample id))))))
 		    current-marks
 		    current-samples)))
@@ -23353,9 +23353,9 @@ EDITS: 2
 	     (for-each
 	      (lambda (id old-loc)
 		(if (not (mark? id))
-		    (snd-display ";reverse-channel clobbered mark: ~A" id)
+		    (snd-display "reverse-channel clobbered mark: ~A" id)
 		    (if (> (abs (- (framples) old-loc (mark-sample id))) 2)
-			(snd-display ";reverse moved mark: ~A ~A ~A (~A)" 
+			(snd-display "reverse moved mark: ~A ~A ~A (~A)" 
 				     id old-loc (- (framples) old-loc) (mark-sample id)))))
 	      current-marks
 	      current-samples))
@@ -23374,13 +23374,13 @@ EDITS: 2
 			  (= ((car val0) 5) 0)
 			  (= (val0 1) 4321)
 			  (= (val0 2) 4320)))
-		(snd-display ";describe-mark m0: ~A" val0))
+		(snd-display "describe-mark m0: ~A" val0))
 	    (if (not (and (equal? ((car val1) 0) m1)
 			  (equal? ((car val1) 2) ind)
 			  (= ((car val1) 5) 0)
 			  (not (val1 1))
 			  (= (val1 2) 1234)))
-		(snd-display ";describe-mark m1: ~A" val1))
+		(snd-display "describe-mark m1: ~A" val1))
 	    (delete-mark m0)
 	    (delete-sample 5000)
 	    (set! val0 (describe-mark m0))
@@ -23391,29 +23391,29 @@ EDITS: 2
 		    (not (= (val0 1) 4321))
 		    (val0 2)
 		    (val0 3))
-		(snd-display ";describe-mark m0 [1]: ~A" val0))
+		(snd-display "describe-mark m0 [1]: ~A" val0))
 	    (if (not (and (equal? ((car val1) 0) m1)
 			  (equal? ((car val1) 2) ind)
 			  (= ((car val1) 5) 0)
 			  (not (val1 1))
 			  (= (val1 2) 1234)
 			  (= (val1 3) 1234)))
-		(snd-display ";describe-mark m1 [1]: ~A" val1)))))
+		(snd-display "describe-mark m1 [1]: ~A" val1)))))
       (revert-sound ind)
       (hook-push draw-mark-hook (lambda (hook) #t))
       (let ((m0 (add-mark 4321)))
 	(let ((dur (/ (framples ind) (srate ind))))
 	  (pad-marks (list m0 (add-mark 1234)) .01)
 	  (if (fneq (/ (framples ind) (srate ind)) (+ dur .02))
-	      (snd-display ";pad-marks: ~A ~A" dur (/ (framples ind) (srate ind)))))
+	      (snd-display "pad-marks: ~A ~A" dur (/ (framples ind) (srate ind)))))
 	(if (not (member (mark-sample m0) '(4763 4761) =))
-	    (snd-display ";pad-marks m0 pos: ~A" (mark-sample m0)))
-	(if (fneq (sample 1235) 0.0) (snd-display ";pad-marks 1235: ~A" (sample 1235))))
+	    (snd-display "pad-marks m0 pos: ~A" (mark-sample m0)))
+	(if (fneq (sample 1235) 0.0) (snd-display "pad-marks 1235: ~A" (sample 1235))))
       (close-sound ind)))
   (set! (hook-functions draw-mark-hook) ())
 
   (let ((ind (open-sound "oboe.snd")))
-    (if (find-mark 12345) (snd-display ";find-mark when no marks: ~A" (find-mark 12345)))
+    (if (find-mark 12345) (snd-display "find-mark when no marks: ~A" (find-mark 12345)))
     (add-mark 123 ind 0)
     (delete-sample 0)
     (let ((m1 (add-mark 23 ind 0)))
@@ -23422,9 +23422,9 @@ EDITS: 2
       (let ((m00 (find-mark 123 ind 0 0))
 	    (m01 (find-mark "23"))
 	    (m02 (find-mark 121)))
-	(if (not m00) (snd-display ";can't find 00th mark"))
-	(if (not m01) (snd-display ";can't find 01th mark"))
-	(if (not m02) (snd-display ";can't find 02th mark")))
+	(if (not m00) (snd-display "can't find 00th mark"))
+	(if (not m01) (snd-display "can't find 01th mark"))
+	(if (not m02) (snd-display "can't find 02th mark")))
       (delete-mark (find-mark "23"))
       (scale-by 2.0)
       (set! m1 (add-mark 1234))
@@ -23432,11 +23432,11 @@ EDITS: 2
       (let ((m10 (find-mark "23"))
 	    (m11 (find-mark "23" ind 0 1))
 	    (m12 (find-mark "23" ind 0 2)))
-	(if (not m10) (snd-display ";can't find 10th mark")
-	    (if (not (= (mark-sample m10) 1234)) (snd-display ";mark 10th: ~A" (mark-sample m10))))
-	(if (not m11) (snd-display ";can't find 11th mark")
-	    (if (not (= (mark-sample m11 1) 23)) (snd-display ";mark 11th: ~A" (mark-sample m11 1))))
-	(if (mark? m12) (snd-display ";found 12th mark: ~A ~A ~A" m12 (mark-sample m12 2) (mark-name m12))))
+	(if (not m10) (snd-display "can't find 10th mark")
+	    (if (not (= (mark-sample m10) 1234)) (snd-display "mark 10th: ~A" (mark-sample m10))))
+	(if (not m11) (snd-display "can't find 11th mark")
+	    (if (not (= (mark-sample m11 1) 23)) (snd-display "mark 11th: ~A" (mark-sample m11 1))))
+	(if (mark? m12) (snd-display "found 12th mark: ~A ~A ~A" m12 (mark-sample m12 2) (mark-name m12))))
       (set! (mark-name m1) ""))
     (close-sound ind)
     (if (string? sf-dir)
@@ -23444,7 +23444,7 @@ EDITS: 2
 	  (mark-loops)
 	  (let ((pos (map mark-sample (marks ind 0))))
 	    (if (not (equal? pos '(24981 144332)))
-		(snd-display ";forest marked loops: ~A ~A" (marks ind 0) pos)))
+		(snd-display "forest marked loops: ~A ~A" (marks ind 0) pos)))
 	  (close-sound ind))))
   
   (let ((ind (open-sound "oboe.snd")))
@@ -23461,38 +23461,38 @@ EDITS: 2
     (load (string-append cwd "oboe.marks"))
     (let ((m (find-mark 123 ind 0)))
       (if (not (mark? m)) 
-	  (snd-display ";save marks missed 123?")
+	  (snd-display "save marks missed 123?")
 	  (begin
-	    (if (not (= (length (mark-name m)) 0)) (snd-display ";saved mark 123 name: ~A" (mark-name m)))
-	    (if (not (= (mark-sync m) 0)) (snd-display ";saved mark 123 sync: ~A" (mark-sync m))))))
+	    (if (not (= (length (mark-name m)) 0)) (snd-display "saved mark 123 name: ~A" (mark-name m)))
+	    (if (not (= (mark-sync m) 0)) (snd-display "saved mark 123 sync: ~A" (mark-sync m))))))
     (let ((m1-sync 0))
       (let ((m (find-mark 234 ind 0)))
 	(if (not (mark? m)) 
-	    (snd-display ";save marks missed 234?")
+	    (snd-display "save marks missed 234?")
 	    (begin
-	      (if (not (string=? (mark-name m) "hiho")) (snd-display ";saved mark 234 name: ~A" (mark-name m)))
-	      (if (or (= (mark-sync m) 0) (= (mark-sync m) 1)) (snd-display ";saved mark 234 sync: ~A" (mark-sync m)))
+	      (if (not (string=? (mark-name m) "hiho")) (snd-display "saved mark 234 name: ~A" (mark-name m)))
+	      (if (or (= (mark-sync m) 0) (= (mark-sync m) 1)) (snd-display "saved mark 234 sync: ~A" (mark-sync m)))
 	      (set! m1-sync (mark-sync m)))))
       (let ((m (find-mark 345 ind 0)))
 	(if (not (mark? m)) 
-	    (snd-display ";save marks missed 345?")
+	    (snd-display "save marks missed 345?")
 	    (begin
-	      (if (not (= (length (mark-name m)) 0)) (snd-display ";saved mark 345 name: ~A" (mark-name m)))
-	      (if (not (= (mark-sync m) m1-sync)) (snd-display ";saved mark 345 sync: ~A ~A" (mark-sync m) m1-sync)))))
+	      (if (not (= (length (mark-name m)) 0)) (snd-display "saved mark 345 name: ~A" (mark-name m)))
+	      (if (not (= (mark-sync m) m1-sync)) (snd-display "saved mark 345 sync: ~A ~A" (mark-sync m) m1-sync)))))
       (let ((m (find-mark 567 ind 0)))
 	(if (not (mark? m)) 
-	    (snd-display ";save marks missed 567?")
+	    (snd-display "save marks missed 567?")
 	    (begin
-	      (if (not (= (length (mark-name m)) 0)) (snd-display ";saved mark 567 name: ~A" (mark-name m)))
-	      (if (not (= (mark-sync m) m1-sync)) (snd-display ";saved mark 567 sync: ~A ~A" (mark-sync m) m1-sync)))))
+	      (if (not (= (length (mark-name m)) 0)) (snd-display "saved mark 567 name: ~A" (mark-name m)))
+	      (if (not (= (mark-sync m) m1-sync)) (snd-display "saved mark 567 sync: ~A ~A" (mark-sync m) m1-sync)))))
       (let ((m (find-mark 456 ind 0)))
 	(if (not (mark? m)) 
-	    (snd-display ";save marks missed 456?")
+	    (snd-display "save marks missed 456?")
 	    (begin
-	      (if (not (string=? (mark-name m) "a mark")) (snd-display ";saved mark 456 name: ~A" (mark-name m)))
+	      (if (not (string=? (mark-name m) "a mark")) (snd-display "saved mark 456 name: ~A" (mark-name m)))
 	      (if (or (= (mark-sync m) m1-sync) 
 		      (member (mark-sync m) '(0 1) =))
-		  (snd-display ";saved mark 456 sync: ~A ~A" (mark-sync m) m1-sync)))))
+		  (snd-display "saved mark 456 sync: ~A ~A" (mark-sync m) m1-sync)))))
       )
     (delete-file "oboe.marks")
     
@@ -23518,47 +23518,47 @@ EDITS: 2
     (let ((m1 (find-mark 1 ind 0))
 	  (m2 (find-mark 2 ind 1)))
       (if (not (and (mark? m1) (mark? m2)))
-	  (snd-display ";save-marks 2a 1,2: ~A ~A" m1 m2)
+	  (snd-display "save-marks 2a 1,2: ~A ~A" m1 m2)
 	  (if (not (= (mark-sync m1) 0 (mark-sync m2)))
-	      (snd-display ";save-marks 2a 1,2 syncs: ~A ~A" (mark-sync m1) (mark-sync m2)))))
+	      (snd-display "save-marks 2a 1,2 syncs: ~A ~A" (mark-sync m1) (mark-sync m2)))))
     (let ((m1 (find-mark 5 ind 0))
 	  (m2 (find-mark 10 ind 1)))
       (if (not (and (mark? m1) (mark? m2)))
-	  (snd-display ";save-marks 2a 5,10: ~A ~A" m1 m2)
+	  (snd-display "save-marks 2a 5,10: ~A ~A" m1 m2)
 	  (if (or (= (mark-sync m1) 0)
 		  (not (= (mark-sync m1) (mark-sync m2))))
-	      (snd-display ";save-marks 2a 5,10 syncs: ~A ~A" (mark-sync m1) (mark-sync m2)))))
+	      (snd-display "save-marks 2a 5,10 syncs: ~A ~A" (mark-sync m1) (mark-sync m2)))))
     (let ((m1 (find-mark 4 ind 0))
 	  (m2 (find-mark 8 ind 1))
 	  (m3 (find-mark 5 ind 0)))
       (if (not (and (mark? m1) (mark? m2))) 
-	  (snd-display ";save-marks 2a 4,8: ~A ~A" m1 m2)
+	  (snd-display "save-marks 2a 4,8: ~A ~A" m1 m2)
 	  (if (or (= (mark-sync m1) 0)
 		  (= (mark-sync m2) 0)
 		  (= (mark-sync m1) (mark-sync m2))
 		  (= (mark-sync m1) (mark-sync m3)))
-	      (snd-display ";save-marks 2a 4,8 syncs: ~A ~A ~A" (mark-sync m1) (mark-sync m2) (mark-sync m3)))))
+	      (snd-display "save-marks 2a 4,8 syncs: ~A ~A ~A" (mark-sync m1) (mark-sync m2) (mark-sync m3)))))
     (let ((m1 (find-mark 3 ind 0))
 	  (m2 (find-mark 6 ind 1)))
       (if (not (and (mark? m1) (mark? m2))) 
-	  (snd-display ";save-marks 2a 3,6: ~A ~A" m1 m2)
+	  (snd-display "save-marks 2a 3,6: ~A ~A" m1 m2)
 	  (begin
 	    (if (not (= (mark-sync m1) 0 (mark-sync m2)))
-		(snd-display ";save-marks 2a 3,6 syncs: ~A ~A" (mark-sync m1) (mark-sync m2)))
-	    (if (not (string=? (mark-name m1) "hi3")) (snd-display ";save-marks 2a 3 name: ~A" (mark-name m1)))
-	    (if (not (string=? (mark-name m2) "hi6")) (snd-display ";save-marks 2a 6 name: ~A" (mark-name m2))))))
+		(snd-display "save-marks 2a 3,6 syncs: ~A ~A" (mark-sync m1) (mark-sync m2)))
+	    (if (not (string=? (mark-name m1) "hi3")) (snd-display "save-marks 2a 3 name: ~A" (mark-name m1)))
+	    (if (not (string=? (mark-name m2) "hi6")) (snd-display "save-marks 2a 6 name: ~A" (mark-name m2))))))
     (let ((m1 (find-mark 4 ind 0))
 	  (m2 (find-mark 5 ind 0))
 	  (m3 (find-mark 20 ind 0))
 	  (m4 (find-mark 40 ind 1))
 	  (m5 (find-mark 60 ind 1)))
       (if (not (and (mark? m3) (mark? m4) (mark? m5)))
-	  (snd-display ";save-marks 2a 20...: ~A ~A ~A" m3 m4 m5)
+	  (snd-display "save-marks 2a 20...: ~A ~A ~A" m3 m4 m5)
 	  (if (or (= (mark-sync m3) 0)
 		  (= (mark-sync m1) (mark-sync m3))
 		  (= (mark-sync m2) (mark-sync m3))
 		  (not (= (mark-sync m3) (mark-sync m4) (mark-sync m5))))
-	      (snd-display ";save-marks 2a 10... syncs: ~A ~A ~A" (mark-sync m3) (mark-sync m4) (mark-sync m5)))))
+	      (snd-display "save-marks 2a 10... syncs: ~A ~A ~A" (mark-sync m3) (mark-sync m4) (mark-sync m5)))))
     (delete-file "test.marks")
     (close-sound ind))
   
@@ -23576,16 +23576,16 @@ EDITS: 2
     (set! (hook-functions output-comment-hook) ())
     (eval-header ind)
     (let ((ms (marks ind 0)))
-      (if (not (= (length ms) 5)) (snd-display ";eval-header + marks->string: ~A" ms))
+      (if (not (= (length ms) 5)) (snd-display "eval-header + marks->string: ~A" ms))
       (let ((samps (map mark-sample ms)))
 	(if (not (and (memv 123 samps)
 		      (memv 567 samps)))
-	    (snd-display ";eval marked header samps: ~A" samps))))
-    (if (not (find-mark 234)) (snd-display ";eval mark header no mark at 234?"))
+	    (snd-display "eval marked header samps: ~A" samps))))
+    (if (not (find-mark 234)) (snd-display "eval mark header no mark at 234?"))
     (if (mark? (find-mark 456))
 	(if (not (= (mark-sync (find-mark 456)) 2)) 
-	    (snd-display ";eval mark header sync: ~A" (mark-sync (find-mark 456))))
-	(snd-display ";no mark at 456"))
+	    (snd-display "eval mark header sync: ~A" (mark-sync (find-mark 456))))
+	(snd-display "no mark at 456"))
     (close-sound ind))
   
   (mus-sound-forget "tst.snd")
@@ -23600,27 +23600,27 @@ EDITS: 2
     (add-mark 30)
     (mark-explode)
     (if (not (file-exists? "mark-0.snd"))
-	(snd-display ";mark-explode did not write mark-0.snd?")
+	(snd-display "mark-explode did not write mark-0.snd?")
 	(let ((ind1 (open-sound "mark-0.snd")))
-	  (if (not (= (framples ind1 0) 10)) (snd-display ";mark-0 framples: ~A" (framples ind1 0)))
-	  (if (not (mus-arrays-equal? (channel->float-vector) (make-float-vector 10 .1))) (snd-display ";mark-0 vals: ~A" (channel->float-vector)))
+	  (if (not (= (framples ind1 0) 10)) (snd-display "mark-0 framples: ~A" (framples ind1 0)))
+	  (if (not (mus-arrays-equal? (channel->float-vector) (make-float-vector 10 .1))) (snd-display "mark-0 vals: ~A" (channel->float-vector)))
 	  (close-sound ind1)
 	  (delete-file "mark-0.snd")))
     (if (not (file-exists? "mark-1.snd"))
-	(snd-display ";mark-explode did not write mark-1.snd?")
+	(snd-display "mark-explode did not write mark-1.snd?")
 	(let ((ind1 (open-sound "mark-1.snd")))
-	  (if (not (= (framples ind1 0) 10)) (snd-display ";mark-1 framples: ~A" (framples ind1 0)))
-	  (if (not (mus-arrays-equal? (channel->float-vector) (make-float-vector 10 .4))) (snd-display ";mark-1 vals: ~A" (channel->float-vector)))
+	  (if (not (= (framples ind1 0) 10)) (snd-display "mark-1 framples: ~A" (framples ind1 0)))
+	  (if (not (mus-arrays-equal? (channel->float-vector) (make-float-vector 10 .4))) (snd-display "mark-1 vals: ~A" (channel->float-vector)))
 	  (close-sound ind1)
 	  (delete-file "mark-1.snd")))
     (if (not (file-exists? "mark-2.snd"))
-	(snd-display ";mark-explode did not write mark-2.snd?")
+	(snd-display "mark-explode did not write mark-2.snd?")
 	(let ((ind1 (open-sound "mark-2.snd")))
-	  (if (not (= (framples ind1 0) 10)) (snd-display ";mark-2 framples: ~A" (framples ind1 0)))
-	  (if (not (mus-arrays-equal? (channel->float-vector) (make-float-vector 10 .8))) (snd-display ";mark-2 vals: ~A" (channel->float-vector)))
+	  (if (not (= (framples ind1 0) 10)) (snd-display "mark-2 framples: ~A" (framples ind1 0)))
+	  (if (not (mus-arrays-equal? (channel->float-vector) (make-float-vector 10 .8))) (snd-display "mark-2 vals: ~A" (channel->float-vector)))
 	  (close-sound ind1)
 	  (delete-file "mark-2.snd")))
-    (if (file-exists? "mark-3.snd") (snd-display ";mark-explode wrote too many files?"))
+    (if (file-exists? "mark-3.snd") (snd-display "mark-explode wrote too many files?"))
     (clean-up-sound ind)))
 
 
@@ -23664,7 +23664,7 @@ EDITS: 2
     (help-dialog "Test" "snd-test here")
     (save-envelopes "hiho.env")
     (load (string-append cwd "hiho.env"))
-    (if (not (equal? env4 '(0.0 1.0 1.0 0.0))) (snd-display ";save-envelopes: ~A?" env4))
+    (if (not (equal? env4 '(0.0 1.0 1.0 0.0))) (snd-display "save-envelopes: ~A?" env4))
     (delete-file "hiho.env")
     (help-dialog "test2" "this is the next test" 
 		 (list "string 1{open-sound}" "{env-sound}string2" "string{close-sound}3")
@@ -23676,10 +23676,10 @@ EDITS: 2
       (dismiss-all-dialogs)
       (close-sound ind))
     (if (not (string=? (snd-url 'open-sound) "extsnd.html#opensound"))
-	(snd-display ";snd-url 'open-sound: ~A" (snd-url 'open-sound)))
+	(snd-display "snd-url 'open-sound: ~A" (snd-url 'open-sound)))
     (if (not (string=? (snd-url "open-sound") "extsnd.html#opensound"))
-	(snd-display ";snd-url \"open-sound\": ~A" (snd-url "open-sound")))
-    (if (not (list? (snd-urls))) (snd-display ";snd-urls: ~A" (snd-urls)))
+	(snd-display "snd-url \"open-sound\": ~A" (snd-url "open-sound")))
+    (if (not (list? (snd-urls))) (snd-display "snd-urls: ~A" (snd-urls)))
     (let ((str1 (snd-help open-sound))
 	  (str2 (snd-help 'open-sound))
 	  (str3 (snd-help "open-sound")))
@@ -23687,21 +23687,21 @@ EDITS: 2
 		    (string? str2)
 		    (string? str3)
 		    (string-equal-ignoring-white-space str2 str3)))
-	  (snd-display ";snd-help open-sound: ~A ~A ~A" str1 str2 str3)))
+	  (snd-display "snd-help open-sound: ~A ~A ~A" str1 str2 str3)))
 					;	(if (not (string? (snd-help 'open-soud)))
-					;	    (snd-display ";snd-help open-soud (misspelled on purpose) failed"))
+					;	    (snd-display "snd-help open-soud (misspelled on purpose) failed"))
     (if (not (string-equal-ignoring-white-space (snd-help enved-base) "(enved-base): envelope editor exponential base value (1.0)"))
-	(snd-display ";snd-help enved-base: ~A?" (snd-help enved-base)))
+	(snd-display "snd-help enved-base: ~A?" (snd-help enved-base)))
     (if (not (string-equal-ignoring-white-space (snd-help 'enved-base) "(enved-base): envelope editor exponential base value (1.0)"))
-	(snd-display ";snd-help 'enved-base: ~A?" (snd-help 'enved-base)))
+	(snd-display "snd-help 'enved-base: ~A?" (snd-help 'enved-base)))
     (if (not (string-equal-ignoring-white-space (snd-help "enved-base") "(enved-base): envelope editor exponential base value (1.0)"))
-	(snd-display ";snd-help \"enved-base\": ~A?" (snd-help "enved-base")))
+	(snd-display "snd-help \"enved-base\": ~A?" (snd-help "enved-base")))
     (let ((str1 (snd-help 'hamming-window))
 	  (str2 (snd-help "hamming-window")))
       (if (not (and (string? str1) (string? str2)
 		    (string-equal-ignoring-white-space str1 str2)
 		    (string-equal-ignoring-white-space str1 "A raised cosine")))
-	  (snd-display ";snd-help hamming-window: ~A ~A" str1 str2)))
+	  (snd-display "snd-help hamming-window: ~A ~A" str1 str2)))
 
     (do ((vals (snd-urls))
 	 (i 0 (+ i 1)))
@@ -23712,74 +23712,74 @@ EDITS: 2
     (set! *show-indices* #t)
     (let ((ind (open-sound "oboe.snd")))
       (if (< (length (sound-widgets ind)) 4)
-	  (snd-display ";sound-widgets: ~A?" (sound-widgets ind)))
+	  (snd-display "sound-widgets: ~A?" (sound-widgets ind)))
       (status-report "hi there" ind)
       (status-report "")
       (close-sound ind))
     (set! *show-indices* #f)
     
     (define-envelope test-ramp1 '(0 0 1 1))
-    (if (not (equal? test-ramp1 '(0 0 1 1))) (snd-display ";define-envelope test-ramp1: ~A" test-ramp1))
+    (if (not (equal? test-ramp1 '(0 0 1 1))) (snd-display "define-envelope test-ramp1: ~A" test-ramp1))
     (define-envelope test-ramp '(0 1 1 0))
-    (if (not (equal? test-ramp '(0 1 1 0))) (snd-display ";re-define-envelope test-ramp: ~A" test-ramp))
+    (if (not (equal? test-ramp '(0 1 1 0))) (snd-display "re-define-envelope test-ramp: ~A" test-ramp))
     
     (when with-motif
       (let ((dialog (view-files-dialog #f)))
 	(let ((vfamp (view-files-amp dialog)))
-	  (if (fneq vfamp 1.0) (snd-display ";vf amp: ~A" vfamp)))
+	  (if (fneq vfamp 1.0) (snd-display "vf amp: ~A" vfamp)))
 	(let ((vfs (view-files-speed dialog)))
-	  (if (fneq vfs 1.0) (snd-display ";vf spd: ~A" vfs)))
+	  (if (fneq vfs 1.0) (snd-display "vf spd: ~A" vfs)))
 	(let ((vfsort (view-files-sort)))
-	  (if (not (= vfsort 0)) (snd-display ";vf sort: ~A" vfsort)))
+	  (if (not (= vfsort 0)) (snd-display "vf sort: ~A" vfsort)))
 	(let ((vfsort1 (view-files-sort dialog)))
-	  (if (not (= vfsort1 0)) (snd-display ";vf sort(d): ~A" vfsort1)))
+	  (if (not (= vfsort1 0)) (snd-display "vf sort(d): ~A" vfsort1)))
 	(let ((vfe (view-files-amp-env dialog)))
-	  (if (not (feql vfe '(0.0 1.0 1.0 1.0))) (snd-display ";vf amp env: ~A" vfe)))
+	  (if (not (feql vfe '(0.0 1.0 1.0 1.0))) (snd-display "vf amp env: ~A" vfe)))
 	(let ((vffiles (view-files-files dialog)))
-	  (if (not (list? vffiles)) (snd-display ";vf files: ~A" vffiles)))
+	  (if (not (list? vffiles)) (snd-display "vf files: ~A" vffiles)))
 	(let ((vfsel (view-files-selected-files dialog)))
-	  (if (not (list? vfsel)) (snd-display ";vf selected files: ~A" vfsel)))
+	  (if (not (list? vfsel)) (snd-display "vf selected files: ~A" vfsel)))
 	(if (not (= (view-files-speed-style dialog) *speed-control-style*))
-	    (snd-display ";vf speed-style def: ~A ~A" (view-files-speed-style dialog) *speed-control-style*))
+	    (snd-display "vf speed-style def: ~A ~A" (view-files-speed-style dialog) *speed-control-style*))
 	(set! (view-files-amp dialog) 0.5)
-	(if (fneq (view-files-amp dialog) 0.5) (snd-display ";set vf amp: ~A" (view-files-amp dialog)))
+	(if (fneq (view-files-amp dialog) 0.5) (snd-display "set vf amp: ~A" (view-files-amp dialog)))
 	(set! (view-files-speed dialog) 0.5)
-	(if (fneq (view-files-speed dialog) 0.5) (snd-display ";set vf spd: ~A" (view-files-speed dialog)))
+	(if (fneq (view-files-speed dialog) 0.5) (snd-display "set vf spd: ~A" (view-files-speed dialog)))
 	(set! (view-files-speed-style dialog) speed-control-as-ratio)
 	(if (not (= (view-files-speed-style dialog) speed-control-as-ratio))
-	    (snd-display ";vf speed-style set: ~A" (view-files-speed-style dialog)))
+	    (snd-display "vf speed-style set: ~A" (view-files-speed-style dialog)))
 	(set! (view-files-sort dialog) 2)
-	(if (not (= (view-files-sort) 0)) (snd-display ";vf global sort after local set: ~A" (view-files-sort)))
-	(if (not (= (view-files-sort dialog) 2)) (snd-display ";vf local sort after local set: ~A" (view-files-sort dialog)))
+	(if (not (= (view-files-sort) 0)) (snd-display "vf global sort after local set: ~A" (view-files-sort)))
+	(if (not (= (view-files-sort dialog) 2)) (snd-display "vf local sort after local set: ~A" (view-files-sort dialog)))
 	(set! (view-files-sort) 4)
-	(if (not (= (view-files-sort) 4)) (snd-display ";vf global sort after global set: ~A" (view-files-sort)))    
-	(if (not (= (view-files-sort dialog) 2)) (snd-display ";vf local sort after global set: ~A" (view-files-sort dialog)))
+	(if (not (= (view-files-sort) 4)) (snd-display "vf global sort after global set: ~A" (view-files-sort)))    
+	(if (not (= (view-files-sort dialog) 2)) (snd-display "vf local sort after global set: ~A" (view-files-sort dialog)))
 	(set! (view-files-files dialog) (list "oboe.snd" "1a.snd" "pistol.snd" "storm.snd"))
 	(let ((vf-files (view-files-files dialog)))
 	  (if (not (and (or (member "1a.snd" vf-files)
 			    (member (string-append home-dir "/cl/1a.snd") vf-files)
-			    (member (string-append home-dir "/snd-16/1a.snd") vf-files))
+			    (member (string-append home-dir "/snd-17/1a.snd") vf-files))
 			(or (member "pistol.snd" vf-files)
 			    (member (string-append home-dir "/cl/pistol.snd") vf-files)
-			    (member (string-append home-dir "/snd-16/pistol.snd") vf-files))
+			    (member (string-append home-dir "/snd-17/pistol.snd") vf-files))
 			(= (length vf-files) 4)))
-	      (snd-display ";vf files set: ~A (~A, ~A)" vf-files (string-append home-dir "/cl/1a.snd") (length vf-files))))
+	      (snd-display "vf files set: ~A (~A, ~A)" vf-files (string-append home-dir "/cl/1a.snd") (length vf-files))))
 	(set! (hook-functions view-files-select-hook) ())
 	(let ((selected-file #f))
 	  (hook-push view-files-select-hook (lambda (hook)
 					      (if (not (string? (hook 'name)))
-						  (snd-display ";vf select hook arg: ~A" (hook 'name)))
-					      (if (not (hook 'widget)) (snd-display ";vf select hook dialog: ~A" (hook 'widget)))
+						  (snd-display "vf select hook arg: ~A" (hook 'name)))
+					      (if (not (hook 'widget)) (snd-display "vf select hook dialog: ~A" (hook 'widget)))
 					      (set! selected-file (hook 'name))))
 	  (set! (view-files-selected-files dialog) (list "1a.snd"))
 	  (if (not (or (equal? selected-file "1a.snd")
 		       (equal? selected-file (string-append home-dir "/cl/1a.snd"))
-		       (equal? selected-file (string-append home-dir "/snd-16/1a.snd"))))
-	      (snd-display ";vf set selected select hook arg: ~A" selected-file))
+		       (equal? selected-file (string-append home-dir "/snd-17/1a.snd"))))
+	      (snd-display "vf set selected select hook arg: ~A" selected-file))
 	  (if (not (or (equal? (view-files-selected-files dialog) '("1a.snd"))
 		       (equal? (view-files-selected-files dialog) (list (string-append home-dir "/cl/1a.snd")))
-		       (equal? (view-files-selected-files dialog) (list (string-append home-dir "/snd-16/1a.snd")))))
-	      (snd-display ";vf selected files set: ~A" (view-files-selected-files dialog))))
+		       (equal? (view-files-selected-files dialog) (list (string-append home-dir "/snd-17/1a.snd")))))
+	      (snd-display "vf selected files set: ~A" (view-files-selected-files dialog))))
 	(hide-widget dialog)
 	))
     (dismiss-all-dialogs)
@@ -23814,12 +23814,12 @@ EDITS: 2
 	  (s2 (open-sound snd2)))
       (if (not (and (sound? s1)
 		    (sound? s2)))
-	  (snd-display ";open-sound ~A or ~A failed?" snd1 snd2))
+	  (snd-display "open-sound ~A or ~A failed?" snd1 snd2))
       (let ((diff (spectral-difference s1 s2)))
 	(close-sound s1)
 	(close-sound s2)
 	(if (> diff maxok)
-	    (snd-display ";translate spectral difference ~A ~A: ~A > ~A?" snd1 snd2 diff maxok)))))
+	    (snd-display "translate spectral difference ~A ~A: ~A > ~A?" snd1 snd2 diff maxok)))))
   
   (if (null? (sound-file-extensions))
       (set! (sound-file-extensions) original-sound-file-extensions))
@@ -23850,13 +23850,13 @@ EDITS: 2
 	(add-sound-file-extension "wave")
 	(let ((exts (sound-file-extensions)))
 	  (if (not (member "wave" exts))
-	      (snd-display ";sound-file-extensions: ~A" exts))
+	      (snd-display "sound-file-extensions: ~A" exts))
 	  (set! (sound-file-extensions) (list))
 	  (if (pair? (sound-file-extensions))
-	      (snd-display ";sound-file-extesions set to (): ~A" (sound-file-extensions)))
+	      (snd-display "sound-file-extesions set to (): ~A" (sound-file-extensions)))
 	  (set! (sound-file-extensions) exts)
 	  (if (not (member "wave" exts))
-	      (snd-display ";sound-file-extensions reset: ~A" (sound-file-extensions))))
+	      (snd-display "sound-file-extensions reset: ~A" (sound-file-extensions))))
 	
 	(do ((clmtest 0 (+ 1 clmtest))) ((= clmtest tests)) 
 	  (log-mem clmtest)
@@ -23876,7 +23876,7 @@ EDITS: 2
 				   (or (catch #t
 					 (lambda () (view-sound name))
 					 (lambda args
-					   (snd-display ";~A ~A ~A" name ht df)
+					   (snd-display "~A ~A ~A" name ht df)
 					   -1))
 				       -1)))))
 		    (unless (eqv? fd -1)
@@ -23889,9 +23889,9 @@ EDITS: 2
 	  (if (pair? open-files) (for-each close-sound open-files))
 	  (set! open-files ())
 	  
-	  (if (pair? (sounds)) (snd-display ";active-sounds: ~A ~A?" (sounds) (map short-file-name (sounds))))
+	  (if (pair? (sounds)) (snd-display "active-sounds: ~A ~A?" (sounds) (map short-file-name (sounds))))
 	  (let ((fd (open-raw-sound :file (string-append sf-dir "addf8.nh") :channels 1 :srate 8012 :sample-type mus-mulaw)))
-	    (if (not (= (sample-type fd) mus-mulaw)) (snd-display ";open-raw-sound: ~A?" (mus-sample-type-name (sample-type fd))))
+	    (if (not (= (sample-type fd) mus-mulaw)) (snd-display "open-raw-sound: ~A?" (mus-sample-type-name (sample-type fd))))
 	    (close-sound fd))
 	  
 	  (set! (hook-functions bad-header-hook) ())
@@ -23907,18 +23907,18 @@ EDITS: 2
 	  (let* ((ind (open-sound "oboe.snd"))
 		 (hi (make-sampler 0 ind 0)))
 	    (close-sound ind)
-	    (if (not (sampler? hi)) (snd-display ";dangling reader? ~A" hi))
+	    (if (not (sampler? hi)) (snd-display "dangling reader? ~A" hi))
 	    (let ((name (object->string hi)))
-	      (if (not (string? name)) (snd-display ";dangling reader format: ~A" name)))
+	      (if (not (string? name)) (snd-display "dangling reader format: ~A" name)))
 	    (let ((val (hi))
 		  (val1 (next-sample hi))
 		  (val2 (previous-sample hi))
 		  (val3 (read-sample hi)))
 	      (if (or (fneq val 0.0) (fneq val1 0.0) (fneq val2 0.0) (fneq val3 0.0))
-		  (snd-display ";dangling read: ~A ~A ~A ~A" val val1 val2 val3)))
-	    (if (sampler-home hi) (snd-display ";dangling reader home: ~A" (sampler-home hi)))
-	    (if (not (= (sampler-position hi) 0)) (snd-display ";dangling sampler-position: ~A" (sampler-position hi)))
-	    (if (not (sampler-at-end? hi)) (snd-display ";dangling reader eof: ~A" (sampler-at-end? hi)))
+		  (snd-display "dangling read: ~A ~A ~A ~A" val val1 val2 val3)))
+	    (if (sampler-home hi) (snd-display "dangling reader home: ~A" (sampler-home hi)))
+	    (if (not (= (sampler-position hi) 0)) (snd-display "dangling sampler-position: ~A" (sampler-position hi)))
+	    (if (not (sampler-at-end? hi)) (snd-display "dangling reader eof: ~A" (sampler-at-end? hi)))
 	    (free-sampler hi))
 	  ;; same (pruned edit)
 	  (let ((ind (open-sound "oboe.snd")))
@@ -23926,17 +23926,17 @@ EDITS: 2
 	    (let ((hi (make-sampler 0 ind 0)))
 	      (revert-sound)
 	      (delete-samples 100 100)
-	      (if (not (sampler? hi)) (snd-display ";pruned dangling reader? ~A" hi))
+	      (if (not (sampler? hi)) (snd-display "pruned dangling reader? ~A" hi))
 	      (let ((name (object->string hi)))
-		(if (not (string? name)) (snd-display ";pruned dangling reader format: ~A" name)))
+		(if (not (string? name)) (snd-display "pruned dangling reader format: ~A" name)))
 	      (let ((val (hi))
 		    (val1 (next-sample hi))
 		    (val2 (previous-sample hi))
 		    (val3 (read-sample hi)))
 		(if (or (fneq val 0.0) (fneq val1 0.0) (fneq val2 0.0) (fneq val3 0.0))
-		    (snd-display ";pruned dangling read: ~A ~A ~A ~A" val val1 val2 val3)))
-	      (if (not (equal? (sampler-home hi) (list ind 0))) (snd-display ";pruned dangling reader home: ~A" (sampler-home hi)))
-	      (if (not (sampler-at-end? hi)) (snd-display ";pruned dangling reader eof: ~A" (sampler-at-end? hi)))
+		    (snd-display "pruned dangling read: ~A ~A ~A ~A" val val1 val2 val3)))
+	      (if (not (equal? (sampler-home hi) (list ind 0))) (snd-display "pruned dangling reader home: ~A" (sampler-home hi)))
+	      (if (not (sampler-at-end? hi)) (snd-display "pruned dangling reader eof: ~A" (sampler-at-end? hi)))
 	      (free-sampler hi))
 	    (close-sound ind))
 	  
@@ -23944,13 +23944,13 @@ EDITS: 2
 	  (let ((ind (open-sound "2.snd")))
 	    (set! (sync ind) 1)
 	    (let ((reg (make-region 90 220 ind #t)))
-	      (if (not (= (region-framples reg) 131)) (snd-display ";make-region framples: ~A" (region-framples reg)))
-	      (if (not (= (region-chans reg) 2)) (snd-display ";make-region chans: ~A" (region-chans reg)))
-	      (if (not (= (region-framples reg 0) 131)) (snd-display ";make-region framples[0]: ~A" (region-framples reg 0)))
-	      (if (not (= (region-framples reg 1) 131)) (snd-display ";make-region framples[1]: ~A" (region-framples reg 1)))
-	      (if (not (= (region-position reg 0) 90)) (snd-display ";make-region position[0]: ~A" (region-position reg 0)))
-	      (if (not (= (region-position reg 1) 90)) (snd-display ";make-region position[1]: ~A" (region-position reg 1)))
-	      (if (not (= (region-position reg) 90)) (snd-display ";make-region position[]: ~A" (region-position reg)))
+	      (if (not (= (region-framples reg) 131)) (snd-display "make-region framples: ~A" (region-framples reg)))
+	      (if (not (= (region-chans reg) 2)) (snd-display "make-region chans: ~A" (region-chans reg)))
+	      (if (not (= (region-framples reg 0) 131)) (snd-display "make-region framples[0]: ~A" (region-framples reg 0)))
+	      (if (not (= (region-framples reg 1) 131)) (snd-display "make-region framples[1]: ~A" (region-framples reg 1)))
+	      (if (not (= (region-position reg 0) 90)) (snd-display "make-region position[0]: ~A" (region-position reg 0)))
+	      (if (not (= (region-position reg 1) 90)) (snd-display "make-region position[1]: ~A" (region-position reg 1)))
+	      (if (not (= (region-position reg) 90)) (snd-display "make-region position[]: ~A" (region-position reg)))
 	      
 	      ;; beg = 0, chan 2 not highlighted
 	      
@@ -23959,20 +23959,20 @@ EDITS: 2
 		(let ((rd11 (copy-sampler rd1))
 		      (rd22 (copy-sampler rd2)))
 		  (if (not (and (region-sampler? rd11) (region-sampler? rd22)))
-		      (snd-display ";copy-sampler (region): ~A ~A" rd11 rd22))
+		      (snd-display "copy-sampler (region): ~A ~A" rd11 rd22))
 		  (if (or (mix-sampler? rd11) (mix-sampler? rd22)
 			  (sampler? rd11) (sampler? rd22))
-		      (snd-display ";copy (region) sampler-p trouble: ~A ~A ~A ~A"
+		      (snd-display "copy (region) sampler-p trouble: ~A ~A ~A ~A"
 				   (mix-sampler? rd11) (mix-sampler? rd22)
 				   (sampler? rd11) (sampler? rd22)))
 		  (if (not (and (equal? (sampler-home rd11) (list reg 0))
 				(equal? (sampler-home rd22) (list reg 1))))
-		      (snd-display ";copy region reader home: ~A ~A" (sampler-home rd11) (sampler-home rd22)))
+		      (snd-display "copy region reader home: ~A ~A" (sampler-home rd11) (sampler-home rd22)))
 		  (if (or (sampler-at-end? rd11) (sampler-at-end? rd22))
-		      (snd-display ";copy region reader end?: ~A ~A" (sampler-at-end? rd11) (sampler-at-end? rd22)))
+		      (snd-display "copy region reader end?: ~A ~A" (sampler-at-end? rd11) (sampler-at-end? rd22)))
 		  (if (not (and (= (sampler-position rd11) (sampler-position rd1) 0)
 				(= (sampler-position rd22) (sampler-position rd2) 100)))
-		      (snd-display ";copy region reader position: ~A ~A ~A ~A" 
+		      (snd-display "copy region reader position: ~A ~A ~A ~A" 
 				   (sampler-position rd11) (sampler-position rd1)
 				   (sampler-position rd22) (sampler-position rd2)))
 		  (free-sampler rd1)
@@ -23982,19 +23982,19 @@ EDITS: 2
 	  (let* ((ind (open-sound "oboe.snd"))
 		 (reg (make-region 1000 2000 ind 0))
 		 (rd (make-region-sampler reg 0)))
-	    (if (mix-sampler? rd) (snd-display ";region sampler: mix ~A" rd))
-	    (if (not (region-sampler? rd)) (snd-display ";region sampler: region ~A" rd))
-	    (if (sampler? rd) (snd-display ";region sampler: normal ~A" rd))
-					;(if (not (= (sampler-position rd) 0)) (snd-display ";region sampler position: ~A" (sampler-position rd)))
-	    (if (not (equal? (sampler-home rd) (list reg 0))) (snd-display ";region sampler home: ~A" (sampler-home rd)))
-	    (if (sampler-at-end? rd) (snd-display ";region sampler at end?: ~A" (sampler-at-end? rd)))
+	    (if (mix-sampler? rd) (snd-display "region sampler: mix ~A" rd))
+	    (if (not (region-sampler? rd)) (snd-display "region sampler: region ~A" rd))
+	    (if (sampler? rd) (snd-display "region sampler: normal ~A" rd))
+					;(if (not (= (sampler-position rd) 0)) (snd-display "region sampler position: ~A" (sampler-position rd)))
+	    (if (not (equal? (sampler-home rd) (list reg 0))) (snd-display "region sampler home: ~A" (sampler-home rd)))
+	    (if (sampler-at-end? rd) (snd-display "region sampler at end?: ~A" (sampler-at-end? rd)))
 	    (let ((val (rd)))
-	      (if (fneq val .0328) (snd-display ";region-sampler at start: ~A" val))
+	      (if (fneq val .0328) (snd-display "region-sampler at start: ~A" val))
 	      (close-sound ind)
 	      (forget-region reg)
 	      (set! val (read-sample rd))
-	      (if (fneq val 0.0) (snd-display ";region-sampler at end: ~A" val))
-	      (if (not (sampler-at-end? rd)) (snd-display ";region-sampler after deletion?"))
+	      (if (fneq val 0.0) (snd-display "region-sampler at end: ~A" val))
+	      (if (not (sampler-at-end? rd)) (snd-display "region-sampler after deletion?"))
 	      (free-sampler rd)))
 	  
 	  ;; mix reader
@@ -24005,16 +24005,16 @@ EDITS: 2
 			 (car (mix-region reg 0 ind 0 0))))
 		   (rd (make-mix-sampler md)))
 	      (set! (mix-property :hi md) "hi")
-	      (if (not (string=? (mix-property :hi md) "hi")) (snd-display ";mix(9)-property: ~A" (mix-property :hi md)))
+	      (if (not (string=? (mix-property :hi md) "hi")) (snd-display "mix(9)-property: ~A" (mix-property :hi md)))
 	      (let ((val (rd)))
-		(if (fneq val .0328) (snd-display ";mix-sampler at start: ~A" val)))
+		(if (fneq val .0328) (snd-display "mix-sampler at start: ~A" val)))
 	      (close-sound ind)
 	      (let ((tag (catch #t
 			   (lambda () (mix-property :hi md))
 			   (lambda args (car args)))))
-		(if (not (eq? tag 'no-such-mix)) (snd-display ";mix-property bad mix: ~A" tag)))
+		(if (not (eq? tag 'no-such-mix)) (snd-display "mix-property bad mix: ~A" tag)))
 	      (let ((str (object->string rd)))
-		(if (not (string=? str "#<mix-sampler: inactive>")) (snd-display ";mix-sampler released: ~A" str))
+		(if (not (string=? str "#<mix-sampler: inactive>")) (snd-display "mix-sampler released: ~A" str))
 		(free-sampler rd))))
 	  (set! (hook-functions mix-click-hook) ())
 	  (set! (hook-functions close-hook) ())
@@ -24032,7 +24032,7 @@ EDITS: 2
 	    (if (and (file-exists? "s24.snd")
 		     (not (and (equal? ffiles '("s24.snd"))
 			       (equal? sfiles '("s24.snd")))))
-		(snd-display ";map|for-each-sound-file(s): ~A ~A" ffiles sfiles))))))))
+		(snd-display "map|for-each-sound-file(s): ~A ~A" ffiles sfiles))))))))
 
 
 ;;; ---------------- test 13: menus, edit lists, hooks, etc ----------------
@@ -24082,7 +24082,7 @@ EDITS: 2
 	    (out-block (make-float-vector block-size))
 	    (len (framples)))
 	(let ((ra (ladspa-run-adding descriptor handle block-size)))
-	  (if ra (snd-display ";ladspa-run-adding: ~A" ra)))
+	  (if ra (snd-display "ladspa-run-adding: ~A" ra)))
 	(ladspa-set-run-adding-gain descriptor handle block-size)
 	(dynamic-wind
 	    (lambda ()
@@ -24106,7 +24106,7 @@ EDITS: 2
 		    (ladspa-run descriptor handle block-size)
 		    ;; here do something with the data
 		    ))
-		(lambda args (snd-display ";ladspa-it: ~A" args))))
+		(lambda args (snd-display "ladspa-it: ~A" args))))
 	    (lambda ()
 	      (ladspa-deactivate descriptor handle)
 	      (ladspa-cleanup descriptor handle)))))))
@@ -24121,7 +24121,7 @@ EDITS: 2
 		      (for-each 
 		       (lambda (n) 
 			 (if (pair? (hook-functions n))
-			     (snd-display ";~A not empty?" n)))
+			     (snd-display "~A not empty?" n)))
 		       (snd-hooks))))
   
 	(test-menus (lambda ()
@@ -24159,12 +24159,12 @@ EDITS: 2
 	  
 	  (let ((var (catch #t (lambda () (add-to-menu -1 "fm-violin" (lambda () #f))) (lambda args args))))
 	    (if (not (eq? (car var) 'no-such-menu))
-		(snd-display ";add-to-menu bad menu: ~A" var)))
+		(snd-display "add-to-menu bad menu: ~A" var)))
 	  (set! (cursor fd) 2000)
 	  (set! *transform-graph-type* graph-once)
 	  (set! (transform-graph? fd) #t)
 	  (unless clm_buffer_added
-	    (add-to-menu mb "not here" (lambda () (snd-display ";oops")))
+	    (add-to-menu mb "not here" (lambda () (snd-display "oops")))
 	    (remove-from-menu mb "not here")
 	    (add-to-menu 3 "Denoise" (lambda () (status-report "denoise"))))
 	  (set! clm_buffer_added #t)))
@@ -24175,18 +24175,18 @@ EDITS: 2
 			     (let ((a (hook (list-ref (hook 'args) 0)))
 				   (b (hook (list-ref (hook 'args) 1))))
 			       (if (not (string=? a "cursor-position"))
-				   (snd-display ";help-hook subject: ~A" a))
+				   (snd-display "help-hook subject: ~A" a))
 			       (if (not (string=? b "(cursor-position :optional snd chn): current cursor position (x y in pixels) in snd's channel chn"))
-				   (snd-display ";help-hook text: ~A" b))
+				   (snd-display "help-hook text: ~A" b))
 			       (set! (hook 'result) (string-append "hiho:" b)))))
       (let ((ho (snd-help 'cursor-position)))
 	(if (not (= (length ho) (+ 5 (length hi))))
-	    (snd-display ";help-hook ~A -> ~A" hi ho))
+	    (snd-display "help-hook ~A -> ~A" hi ho))
 	(set! (hook-functions help-hook) ())
 	(hook-push help-hook (lambda (hook) (set! (hook 'result) #f)))
 	(set! ho (snd-help 'cursor-position))
 	(if (not (string=? hi ho))
-	    (snd-display ";help-hook #f: ~A ~A" hi ho))
+	    (snd-display "help-hook #f: ~A ~A" hi ho))
 	(set! (hook-functions help-hook) ())))
     (set! (transform-size fd 0) 256)
     (when with-motif
@@ -24197,12 +24197,12 @@ EDITS: 2
 	 (update-transform-graph fd 0)
 	 (let ((vals (transform->float-vector fd 0)))
 	   (if (not vals) 
-	       (snd-display ";transform graph-type: ~A type: ~A -> data: ~A" dpy-type fft-type vals)
+	       (snd-display "transform graph-type: ~A type: ~A -> data: ~A" dpy-type fft-type vals)
 	       (begin
 		 (if (fneq (transform-sample 0 0 fd 0) (vals 0))
-		     (snd-display ";transform-sample ~A ~A -> ~A ~A" dpy-type fft-type (vals 0) (transform-sample 0 0 fd 0)))
+		     (snd-display "transform-sample ~A ~A -> ~A ~A" dpy-type fft-type (vals 0) (transform-sample 0 0 fd 0)))
 		 (if (< (length vals) 256)
-		     (snd-display ";transform-> float-vector size: ~A" (length vals)))))))
+		     (snd-display "transform-> float-vector size: ~A" (length vals)))))))
        (list graph-once graph-as-sonogram graph-as-spectrogram
 	     graph-once graph-as-sonogram graph-as-spectrogram)
        (list fourier-transform fourier-transform fourier-transform 
@@ -24213,7 +24213,7 @@ EDITS: 2
 		     (transform-sample 5000 0 fd 0))
 		   (lambda args (car args)))))
 	(if (not (eq? tag 'no-such-sample))
-	    (snd-display ";access invalid (bin) transform sample: ~A" tag))))
+	    (snd-display "access invalid (bin) transform sample: ~A" tag))))
     (close-sound fd))
   (set! *transform-type* fourier-transform)
     
@@ -24252,12 +24252,12 @@ EDITS: 2
 		   (fneq (ax 7) -4.0)
 		   (fneq (ax 8) (mus-sound-duration "2.snd"))
 		   (fneq (ax 9) 4.0)))
-	  (snd-display ";initial-graph-hook with ymin/max: ~A" ax))
+	  (snd-display "initial-graph-hook with ymin/max: ~A" ax))
       (set! (hook-functions initial-graph-hook) ()))
     (set! (selection-position fd 1) 1000)
     (set! (selection-framples fd 1) 10)
     (set! (selection-member? fd 1) #t)
-    (if (selection-member? fd 0) (snd-display ";chan 0 is selection-member?"))
+    (if (selection-member? fd 0) (snd-display "chan 0 is selection-member?"))
     (do ((i 0 (+ i 1))) ((= i 2))
       (set! (selection-position fd i) 1000)
       (set! (selection-framples fd i) 10)
@@ -24265,7 +24265,7 @@ EDITS: 2
     (scale-selection-to (float-vector .5 .25))
     (if (or (fneq (maxamp fd 0) .5)
 	    (fneq (maxamp fd 1) .25))
-	(snd-display ";scale-selection-to with vector: ~A" (maxamp fd #t)))
+	(snd-display "scale-selection-to with vector: ~A" (maxamp fd #t)))
     (close-sound fd))
     
   (let ((fd (open-sound "obtest.snd")))
@@ -24282,7 +24282,7 @@ EDITS: 2
     (set! (hook-functions close-hook) ())
     (for-each close-sound (sounds))
     (when (sound? fd) 
-      (snd-display ";close all didn't? ~A ~A ~A ~A ~A" fd (sound? fd) (short-file-name fd) (hook-functions close-hook) (sounds))
+      (snd-display "close all didn't? ~A ~A ~A ~A ~A" fd (sound? fd) (short-file-name fd) (hook-functions close-hook) (sounds))
       (close-sound fd)))
   
   (let ((fd (open-sound "obtest.snd")))
@@ -24307,31 +24307,31 @@ EDITS: 2
 	     (count (.PortCount ptr))
 	     (descs (.PortDescriptors ptr)))
 	(if (not (string=? label "delay_5s")) 
-	    (snd-display ";ladspa .Label: ~A" label))
+	    (snd-display "ladspa .Label: ~A" label))
 	(if (not (string=? name "Simple Delay Line")) 
-	    (snd-display ";ladspa .Name: ~A" name))
+	    (snd-display "ladspa .Name: ~A" name))
 	(if (not (string=? maker "Richard Furse (LADSPA example plugins)"))
-	    (snd-display ";ladspa .Maker: ~A" maker))
+	    (snd-display "ladspa .Maker: ~A" maker))
 	(if (not (string=? copy "None"))
-	    (snd-display ";ladspa .Copyright: ~A" copy))
-	(if (not (= id 1043)) (snd-display ";ladspa .UniqueID: ~A" id))
-	(if (not (= count 4)) (snd-display ";ladspa .PortCount: ~A" count))
-	(if (not (= props 4)) (snd-display ";ladspa .Properties: ~A" prop))
+	    (snd-display "ladspa .Copyright: ~A" copy))
+	(if (not (= id 1043)) (snd-display "ladspa .UniqueID: ~A" id))
+	(if (not (= count 4)) (snd-display "ladspa .PortCount: ~A" count))
+	(if (not (= props 4)) (snd-display "ladspa .Properties: ~A" prop))
 	(if (not (equal? names '("Delay (Seconds)" "Dry/Wet Balance" "Input" "Output")))
-	    (snd-display ";ladspa .PortNames: ~A" names))
+	    (snd-display "ladspa .PortNames: ~A" names))
 	(if (not (equal? hints '((579 0.0 5.0) (195 0.0 1.0) (0 0.0 0.0) (0 0.0 0.0))))
-	    (snd-display ";ladspa .PortRangeHints: ~A" hints))
+	    (snd-display "ladspa .PortRangeHints: ~A" hints))
 	(if (not (equal? descs '(5 5 9 10)))
-	    (snd-display ";ladspa .PortDescriptors: ~A" descs))
+	    (snd-display "ladspa .PortDescriptors: ~A" descs))
 	(if (not (= (logand (cadr (.PortDescriptors ptr)) LADSPA_PORT_INPUT) 1))
-	    (snd-display ";ladspa port hint: ~A" (logand (cadr (.PortDescriptors ptr)) LADSPA_PORT_INPUT))))
+	    (snd-display "ladspa port hint: ~A" (logand (cadr (.PortDescriptors ptr)) LADSPA_PORT_INPUT))))
       (apply-ladspa (make-sampler 0) (list "delay" "delay_5s" .3 .5) 1000 "delayed")
       (if (not (equal? (analyze-ladspa "delay" "delay_5s")
 		       '("Simple Delay Line" "Richard Furse (LADSPA example plugins)" 
 			 "None" 
 			 ("Dry/Wet Balance" "minimum" 0.0 "maximum" 1.0) 
 			 ("Delay (Seconds)" "minimum" 0.0 "maximum" 5.0))))
-	  (snd-display ";analyze-ladspa: ~A" (analyze-ladspa "delay" "delay_5s")))
+	  (snd-display "analyze-ladspa: ~A" (analyze-ladspa "delay" "delay_5s")))
       (ladspa-it "delay" "delay_5s" .3 .5)
       (if (provided? 'xm)
 	  (let ((w ((menu-widgets) 5)))
@@ -24351,40 +24351,40 @@ EDITS: 2
 		     (apply-ladspa (make-sampler 0) (list "delay" "delay_4s" .3 .5) 1000 "delayed"))
 		   (lambda args args))))
 	(if (not (eq? (car tag) 'no-such-plugin))
-	    (snd-display ";apply-ladspa bad plugin: ~A" tag)))
+	    (snd-display "apply-ladspa bad plugin: ~A" tag)))
       (let ((tag (catch #t 
 		   (lambda () 
 		     (apply-ladspa (list (make-sampler 0) (make-sampler 0)) (list "delay" "delay_5s" .3 .5) 1000 "delayed"))
 		   (lambda args args))))
 	(if (not (eq? (car tag) 'plugin-error))
-	    (snd-display ";apply-ladspa reader mismatch: ~A" tag)))
+	    (snd-display "apply-ladspa reader mismatch: ~A" tag)))
       (let ((vals (list-ladspa)))
 	(if (not (pair? vals))
-	    (snd-display ";ladspa list: ~A" vals))
+	    (snd-display "ladspa list: ~A" vals))
 	(let ((descr (analyse-ladspa "delay" "delay_5s")))
 	  (if (not (and (pair? descr)
 			(string? (car descr))
 			(string=? (car descr) "Simple Delay Line")))
-	      (snd-display ";analyse-ladspa: ~A" descr))))
+	      (snd-display "analyse-ladspa: ~A" descr))))
       (let ((tag (catch #t 
 		   (lambda () (analyse-ladspa "delay" "delay_no_delay"))
 		   (lambda args (car args)))))
-	(if (not (eq? tag 'no-such-plugin)) (snd-display ";analyse-ladspa tag: ~A" tag)))
+	(if (not (eq? tag 'no-such-plugin)) (snd-display "analyse-ladspa tag: ~A" tag)))
       (let ((tag (catch #t
 		   (lambda ()
 		     (apply-ladspa (list (make-sampler 0) (make-sampler 0)) (list #f) 1000 "delayed"))
 		   (lambda args (car args)))))
-	(if (not (eq? tag 'wrong-type-arg)) (snd-display ";apply-ladspa tag: ~A" tag)))
+	(if (not (eq? tag 'wrong-type-arg)) (snd-display "apply-ladspa tag: ~A" tag)))
       
       (set! *ladspa-dir* "/home/bil/test/ladspa/vocoder-0.3")
       (init-ladspa)
       (if (not (equal? (list-ladspa) '(("vocoder" "vocoder"))))
-	  (snd-display ";list-ladspa vocoder: ~A" (list-ladspa)))
+	  (snd-display "list-ladspa vocoder: ~A" (list-ladspa)))
       (if (not (list? (analyze-ladspa "vocoder" "vocoder")))
-	  (snd-display ";analyze-ladspa vocoder: ~A" (analyze-ladspa "vocoder" "vocoder")))
+	  (snd-display "analyze-ladspa vocoder: ~A" (analyze-ladspa "vocoder" "vocoder")))
       (let ((hi (ladspa-descriptor "vocoder" "vocoder")))
 	(if (not (string=? (.Name hi) "Vocoder"))
-	    (snd-display ";ladspa vocoder name: ~A" (.Name hi))))
+	    (snd-display "ladspa vocoder name: ~A" (.Name hi))))
       
       (let ((snd (open-sound "1a.snd")))
 	(apply-ladspa (list (make-sampler 0) (make-sampler 0)) 
@@ -24397,7 +24397,7 @@ EDITS: 2
 	(for-each (lambda (plug) (apply analyse-ladspa plug)) (list-ladspa))
 	
 	(if (not (list? (analyse-ladspa "amp_1181" "amp")))
-	    (snd-display ";analyze-ladspa can't find amp_1181"))
+	    (snd-display "analyze-ladspa can't find amp_1181"))
 	
 	(apply-ladspa (make-sampler 0) (list "amp_1181" "amp" -6) (framples) "amp")
 	(apply-ladspa (make-sampler 0) (list "amp_1181" "amp" 6) (framples) "amp")
@@ -24412,7 +24412,7 @@ EDITS: 2
 				 (list "amp_1181" "amp" 6 -6) (framples) "amp"))
 		 (lambda args (car args)))))
 	  (if (not (eq? tag 'plugin-error))
-	      (snd-display ";apply-ladspa bad inputs: ~A" tag)))
+	      (snd-display "apply-ladspa bad inputs: ~A" tag)))
 	
 	(apply-ladspa (list (make-sampler 0 snd 0) (make-sampler 0 snd 0)) 
 		      (list "ringmod_1188" "ringmod_2i1o" 1) (framples) "ringmod")
@@ -24438,9 +24438,9 @@ EDITS: 2
       (key (char->integer #\x) 4 ind)
       (key (char->integer #\z) 4 ind)
       (if (not (equal? (edit-fragment) '("smooth-channel 2000 100" "set" 2000 100)))
-	  (snd-display ";C-x C-z fragment: ~A" (edit-fragment)))
+	  (snd-display "C-x C-z fragment: ~A" (edit-fragment)))
       (if (not (mus-arrays-equal? (channel->float-vector 2010 10) (float-vector 0.064 0.063 0.063 0.062 0.062 0.061 0.060 0.059 0.059 0.058)))
-	  (snd-display ";C-x C-z samps: ~A" (channel->float-vector 2010 10)))
+	  (snd-display "C-x C-z samps: ~A" (channel->float-vector 2010 10)))
       (set! (cursor) 0)
       (select-all)
       (key (char->integer #\x) 4 ind)
@@ -24457,42 +24457,42 @@ EDITS: 2
       (set! (search-procedure) (lambda (n4) (> n4 .1)))
       (key (char->integer #\a) 4 ind 0)
       (if (not (= (cursor ind 0) 0))
-	  (snd-display ";C-a cursor: ~D?" (cursor ind 0)))
+	  (snd-display "C-a cursor: ~D?" (cursor ind 0)))
       (key (char->integer #\s) 4 ind 0)
       (key (char->integer #\s) 4 ind 0)
       (if (not (= (cursor ind 0) 4423))
-	  (snd-display ";search-procedure C-s C-s cursor: ~D?" (cursor ind 0)))
+	  (snd-display "search-procedure C-s C-s cursor: ~D?" (cursor ind 0)))
       (let ((str (object->string (procedure-source (search-procedure)) #f)))
 	(if (not (string=? str "(lambda (n4) (> n4 0.1))"))
-	    (snd-display ";search-procedure: ~A?" str)))
+	    (snd-display "search-procedure: ~A?" str)))
       
       (set! (search-procedure) (lambda (n) (> n .2)))
       (set! (cursor ind 0) 0)
       (key (char->integer #\s) 4 ind 0)
       (key (char->integer #\s) 4 ind 0)
       (if (not (= (cursor ind 0) 0))
-	  (snd-display ";search-procedure C-s C-s cursor failed: ~D?" (cursor ind 0)))
+	  (snd-display "search-procedure C-s C-s cursor failed: ~D?" (cursor ind 0)))
       (let ((str (object->string (procedure-source (search-procedure)) #f)))
 	(if (not (string=? str "(lambda (n) (> n 0.2))"))
-	    (snd-display ";search-procedure (1): ~A?" str)))
+	    (snd-display "search-procedure (1): ~A?" str)))
       
       (set! (hook-functions (edit-hook ind 0)) ())
       (hook-push (edit-hook ind 0) (lambda (hook) (set! (hook 'result) #f)))
       (let ((str (object->string (map procedure-source (hook-functions (edit-hook ind 0))) #f)))
 	(if (not (string=? str "((lambda (hook) (set! (hook 'result) #f)))"))
-	    (snd-display ";edit-hook: ~A?" str)))
+	    (snd-display "edit-hook: ~A?" str)))
       (set! (hook-functions (edit-hook ind 0)) ())
       (set! (hook-functions (after-edit-hook ind 0)) ())
       (hook-push (after-edit-hook ind 0) (lambda (hook) (set! (hook 'result) #f)))
       (let ((str (object->string (map procedure-source (hook-functions (after-edit-hook ind 0))) #f)))
 	(if (not (string=? str "((lambda (hook) (set! (hook 'result) #f)))"))
-	    (snd-display ";after-edit-hook: ~A?" str)))
+	    (snd-display "after-edit-hook: ~A?" str)))
       (set! (hook-functions (after-edit-hook ind 0)) ())
       (set! (hook-functions (undo-hook ind 0)) ())
       (hook-push (undo-hook ind 0) (lambda (hook) (set! (hook 'result) #f)))
       (let ((str (object->string (map procedure-source (hook-functions (undo-hook ind 0))) #f)))
 	(if (not (string=? str "((lambda (hook) (set! (hook 'result) #f)))"))
-	    (snd-display ";undo-hook: ~A?" str)))
+	    (snd-display "undo-hook: ~A?" str)))
       (set! (hook-functions (undo-hook ind 0)) ())
       (let ((calls 0))
 	(hook-push (undo-hook ind 0) (lambda (hook) (set! calls (+ 1 calls))))
@@ -24500,7 +24500,7 @@ EDITS: 2
 	(undo 1)
 	(redo 1)
 	(revert-sound ind)
-	(if (not (= calls 3)) (snd-display ";undo-hook called ~A times" calls)))
+	(if (not (= calls 3)) (snd-display "undo-hook called ~A times" calls)))
       (set! (hook-functions (undo-hook ind 0)) ())
       (set! (search-procedure) #f)
       (close-sound ind)))
@@ -24514,7 +24514,7 @@ EDITS: 2
 		  (= (srate ind) 22050)
 		  (= (sample-type ind) mus-bshort)
 		  (= (framples ind) 23808)))
-	(snd-display ";open-raw: ~A ~A ~A ~A" 
+	(snd-display "open-raw: ~A ~A ~A ~A" 
 		     (chans ind) (srate ind) (sample-type ind) (framples ind)))
     (set! (search-procedure) (lambda (n) (> n .2)))
     (close-sound ind))
@@ -24534,18 +24534,18 @@ EDITS: 2
 	(close-sound ind))
       (set! (hook-functions open-raw-sound-hook) ())
       (set! (hook-functions after-save-as-hook) ())
-      (if save-as-dialog (snd-display ";after-save-as-hook dialog: ~A" save-as-dialog)))
+      (if save-as-dialog (snd-display "after-save-as-hook dialog: ~A" save-as-dialog)))
     (if (not (or (string=? (string-append home-dir "/cl/test.snd") save-as-name) 
-		 (string=? (string-append home-dir "/snd-16/test.snd") save-as-name)))
-	(snd-display ";after-save-as-hook name: ~A (~A)" save-as-name (string-append home-dir "/cl/test.snd"))))
+		 (string=? (string-append home-dir "/snd-17/test.snd") save-as-name)))
+	(snd-display "after-save-as-hook name: ~A (~A)" save-as-name (string-append home-dir "/cl/test.snd"))))
   (hook-push open-raw-sound-hook 
 	     (lambda (hook)
 	       (let ((file (hook 'name))
 		     (choice (hook 'state)))
 		 (if (not (string=? (substring file (- (length file) 8)) "test.snd"))
-		     (snd-display ";open-raw-sound-hook file: ~A?" (substring file (- (length file) 8))))
+		     (snd-display "open-raw-sound-hook file: ~A?" (substring file (- (length file) 8))))
 		 (if choice
-		     (snd-display ";open-raw-sound-hook choice: ~A?" choice))
+		     (snd-display "open-raw-sound-hook choice: ~A?" choice))
 		 (set! (hook 'result) (list 2 44100 mus-mulaw)))))
   
   (let ((ind (open-sound "test.snd")))
@@ -24554,14 +24554,14 @@ EDITS: 2
 		  (= (chans ind) 2)
 		  (= (srate ind) 44100)
 		  (= (framples ind) 50828)))
-	(snd-display ";open-raw-sound-hook 1: ~A ~A ~A ~A ~A" 
+	(snd-display "open-raw-sound-hook 1: ~A ~A ~A ~A ~A" 
 		     (header-type ind) (sample-type ind) (chans ind) (srate ind) (framples ind)))
     (close-sound ind))
   
   (hook-append open-raw-sound-hook
 	       (lambda (hook)
 		 (if (not (equal? (hook 'name) "/home/bil/cl/test.snd"))
-		     (snd-display ";open-raw-sound-hook 2: ~A" (hook 'name)))
+		     (snd-display "open-raw-sound-hook 2: ~A" (hook 'name)))
 		 (set! (hook 'result) (list 1 22050 mus-lint))))
   
   (let ((ind (open-sound "test.snd")))
@@ -24570,7 +24570,7 @@ EDITS: 2
 		  (= (chans ind) 1)
 		  (= (srate ind) 22050)
 		  (= (framples ind) 25414))) ;(/ 50828 2)
-	(snd-display ";open-raw-sound-hook 3: ~A ~A ~A ~A ~A" 
+	(snd-display "open-raw-sound-hook 3: ~A ~A ~A ~A ~A" 
 		     (header-type ind) (sample-type ind) (chans ind) (srate ind) (framples ind)))
     (close-sound ind))
   
@@ -24584,7 +24584,7 @@ EDITS: 2
 		  (= (sample-type ind) mus-lint)
 		  (= (chans ind) 2)
 		  (= (srate ind) 22050)))
-	(snd-display ";open-raw-sound-hook 4: ~A ~A ~A ~A"
+	(snd-display "open-raw-sound-hook 4: ~A ~A ~A ~A"
 		     (header-type ind) (sample-type ind) (chans ind) (srate ind)))
     (close-sound ind))
   
@@ -24600,7 +24600,7 @@ EDITS: 2
 		  (= (data-location ind) 120)
 		  (= (data-size ind) 320)
 		  (= (framples ind) 160)))
-	(snd-display ";open-raw-sound-hook 5: ~A ~A ~A ~A ~A ~A ~A" 
+	(snd-display "open-raw-sound-hook 5: ~A ~A ~A ~A ~A ~A ~A" 
 		     (header-type ind) (sample-type ind) (chans ind) (srate ind)
 		     (data-location ind) (data-size ind) (/ (framples ind) 2)))
     (close-sound ind))
@@ -24616,7 +24616,7 @@ EDITS: 2
 		 (lambda (hook)
 		   (let ((filename (hook 'name)))
 		     (if (not (string=? filename (mus-expand-filename "oboe.snd")))
-			 (snd-display ";open-hook: ~A?" filename))
+			 (snd-display "open-hook: ~A?" filename))
 		     (set! op #t)
 		     (set! (hook 'result) #f))))
       (hook-push after-open-hook 
@@ -24628,21 +24628,21 @@ EDITS: 2
 			 (reason (hook 'reason)))
 		     (set! dop #t)
 		     (if (not (string=? filename (mus-expand-filename "oboe.snd")))
-			 (snd-display ";during-open-hook filename: ~A?" filename))
+			 (snd-display "during-open-hook filename: ~A?" filename))
 		     (if (not (= reason 1))
-			 (snd-display ";during-open-hook reason: ~A?" reason)))))
+			 (snd-display "during-open-hook reason: ~A?" reason)))))
       (hook-push initial-graph-hook
 		 (lambda (hook)
 		   (if (not (= (hook 'chn) 0))
-		       (snd-display ";initial-graph-hook (channel): ~A not 0?" (hook 'chn)))
+		       (snd-display "initial-graph-hook (channel): ~A not 0?" (hook 'chn)))
 		   (set! ig #t)
 		   (set! (hook 'result) #f)))
       (set! ind (open-sound "oboe.snd"))
-      (if (not op) (snd-display ";open-hook not called?"))
-      (if (not dop) (snd-display ";during-open-hook not called?"))
-      (when (and with-gui (not ig)) (snd-display ";initial-graph-hook not called?"))
-      (if (not (sound? aop)) (snd-display ";after-open-hook not called?"))
-      (if (not (equal? aop ind)) (snd-display ";after-open-hook ~A but ind: ~A?" aop ind)))
+      (if (not op) (snd-display "open-hook not called?"))
+      (if (not dop) (snd-display "during-open-hook not called?"))
+      (when (and with-gui (not ig)) (snd-display "initial-graph-hook not called?"))
+      (if (not (sound? aop)) (snd-display "after-open-hook not called?"))
+      (if (not (equal? aop ind)) (snd-display "after-open-hook ~A but ind: ~A?" aop ind)))
     
     (select-all)
     (set! (hook-functions open-hook) ())
@@ -24653,7 +24653,7 @@ EDITS: 2
     (hook-push open-hook (lambda (hook) (set! (hook 'result) #t)))
     (let ((pistol (open-sound "pistol.snd")))
       (when pistol
-	(snd-display ";open-hook #t, but open-sound -> ~A" pistol)
+	(snd-display "open-hook #t, but open-sound -> ~A" pistol)
 	(if (sound? pistol) (close-sound pistol))))
     (set! (hook-functions open-hook) ())
     
@@ -24670,9 +24670,9 @@ EDITS: 2
 		   (let ((snd (hook 'snd))
 			 (chn (hook 'chn)))
 		     (if (not (equal? snd ind))
-			 (snd-display ";graph-hook: ~A not ~A?" snd ind))
+			 (snd-display "graph-hook: ~A not ~A?" snd ind))
 		     (if (not (= chn 0))
-			 (snd-display ";graph-hook (channel): ~A not 0?" chn)))
+			 (snd-display "graph-hook (channel): ~A not 0?" chn)))
 		   (set! gr #t)
 		   (set! (hook 'result) #f)))
       (hook-push after-graph-hook
@@ -24680,9 +24680,9 @@ EDITS: 2
 		   (let ((snd (hook 'snd))
 			 (chn (hook 'chn)))
 		     (if (not (equal? snd ind))
-			 (snd-display ";after-graph-hook: ~A not ~A?" snd ind))
+			 (snd-display "after-graph-hook: ~A not ~A?" snd ind))
 		     (if (not (= chn 0))
-			 (snd-display ";after-graph-hook (channel): ~A not 0?" chn)))
+			 (snd-display "after-graph-hook (channel): ~A not 0?" chn)))
 		   (set! agr #t)))
       (hook-push before-transform-hook
 		 (lambda (hook)
@@ -24720,13 +24720,13 @@ EDITS: 2
       
       (when with-gui
 	(if (not (or gr (provided? 'snd-gtk)))
-	    (snd-display ";graph-hook not called? ~A ~A ~A ~A" (time-graph? ind) (short-file-name ind) ind (sounds)))
+	    (snd-display "graph-hook not called? ~A ~A ~A ~A" (time-graph? ind) (short-file-name ind) ind (sounds)))
 	(if (not (or agr (provided? 'snd-gtk))) 
-	    (snd-display ";after-graph-hook not called?"))
+	    (snd-display "after-graph-hook not called?"))
 	(if (not gbf) 
-	    (snd-display ";before-transform-hook not called?"))
+	    (snd-display "before-transform-hook not called?"))
 	(if (not (or abf (provided? 'snd-gtk)))
-	    (snd-display ";after-transform-hook not called?")))
+	    (snd-display "after-transform-hook not called?")))
       (set! (hook-functions before-transform-hook) ())
       (set! (transform-graph? ind 0) #f)
       (set! (hook-functions graph-hook) ())
@@ -24737,22 +24737,22 @@ EDITS: 2
 	(hook-push select-sound-hook
 		   (lambda (hook)
 		     (if (not (equal? (hook 'snd) ind))
-			 (snd-display ";select-sound-hook: ~A not ~A?" (hook 'snd) ind))
+			 (snd-display "select-sound-hook: ~A not ~A?" (hook 'snd) ind))
 		     (set! sl #t)))
 	(let ((scl #f))
 	  (hook-push select-channel-hook 
 		     (lambda (hook)
 		       (let ((snd (hook 'snd)))
 			 (if (not (equal? snd ind))
-			     (snd-display ";select-channel-hook: ~A not ~A?" snd ind)))
+			     (snd-display "select-channel-hook: ~A not ~A?" snd ind)))
 		       (let ((chn (hook 'chn)))
 			 (if (not (= chn 0))
-			     (snd-display ";select-channel-hook (channel): ~A not 0?" chn)))
+			     (snd-display "select-channel-hook (channel): ~A not 0?" chn)))
 		       (set! scl #t)))
 	  
 	  (select-sound ind)
-	  (if (not sl) (snd-display ";select-sound-hook not called?"))
-	  (if (not scl) (snd-display ";select-channel-hook not called?"))))
+	  (if (not sl) (snd-display "select-sound-hook not called?"))
+	  (if (not scl) (snd-display "select-channel-hook not called?"))))
       (set! (hook-functions select-sound-hook) ())
       (set! (hook-functions select-channel-hook) ())
       
@@ -24762,18 +24762,18 @@ EDITS: 2
 	(hook-push start-playing-hook
 		   (lambda (hook)
 		     (if (not (equal? (hook 'snd) ind))
-			 (snd-display ";start-playing-hook: ~A not ~A?" (hook 'snd) ind))
+			 (snd-display "start-playing-hook: ~A not ~A?" (hook 'snd) ind))
 		     (set! spl #t)
 		     (set! (hook 'result) #f)))
 	(hook-push stop-playing-hook
 		   (lambda (hook)
 		     (if (not (equal? (hook 'snd) ind))
-			 (snd-display ";stop-playing-hook: ~A not ~A?" (hook 'snd) ind))
+			 (snd-display "stop-playing-hook: ~A not ~A?" (hook 'snd) ind))
 		     (set! stl #t)))
 	(hook-push play-hook
 		   (lambda (hook)
 		     (if (< (hook 'size) 128)
-			 (snd-display ";play-hook samps: ~A?" (hook 'size)))
+			 (snd-display "play-hook samps: ~A?" (hook 'size)))
 		     (set! ph #t)))
 	
 	(set! (expand-control? ind) #t)
@@ -24783,9 +24783,9 @@ EDITS: 2
 	(set! (expand-control? ind) #f)
 	
 	(when with-gui
-	  (if (not spl) (snd-display ";start-playing-hook not called?"))
-	  (if (not stl) (snd-display ";stop-playing-hook not called?"))
-	  (if (not ph) (snd-display ";play-hook not called?")))
+	  (if (not spl) (snd-display "start-playing-hook not called?"))
+	  (if (not stl) (snd-display "stop-playing-hook not called?"))
+	  (if (not ph) (snd-display "play-hook not called?")))
 	(set! (hook-functions start-playing-hook) ())
 	(set! (hook-functions start-playing-selection-hook) ())
 	(set! (hook-functions stop-playing-hook) ())
@@ -24813,12 +24813,12 @@ EDITS: 2
 	    (let ((reg (select-all)))
 	      (play (selection) :wait #t)
 	      (if (region? reg) (play reg :wait #t))
-	      (if (not ss) (snd-display ";stop-playing-selection-hook: ~A" ss)))
+	      (if (not ss) (snd-display "stop-playing-selection-hook: ~A" ss)))
 	    (set! (hook-functions stop-playing-selection-hook) ())))
 	
 	(let ((pl (make-player ind 0)))
 	  (free-player pl)
-	  (if (player? pl) (snd-display ";free-player: ~A" pl)))
+	  (if (player? pl) (snd-display "free-player: ~A" pl)))
 	
 	)
       (let ((e0 #f)
@@ -24851,19 +24851,19 @@ EDITS: 2
 	;; edit of ind should be disallowed, but not other
 	(delete-sample 0 ind 0)
 	(if (not (= (edit-position ind 0) 0))
-	    (snd-display ";edit-hook #t didn't disallow edit!"))
-	(if (not e0) (snd-display ";edit-hook #t not called?"))
-	(if a0 (snd-display ";after-edit-hook 0 called?"))
+	    (snd-display "edit-hook #t didn't disallow edit!"))
+	(if (not e0) (snd-display "edit-hook #t not called?"))
+	(if a0 (snd-display "after-edit-hook 0 called?"))
 	(undo 1 ind 0)
-	(if u0 (snd-display ";undo-hook called?"))
+	(if u0 (snd-display "undo-hook called?"))
 	
 	(delete-sample 0 other 0)
 	(if (not (= (edit-position other 0) 1))
-	    (snd-display ";edit-hook #f didn't allow edit!"))
-	(if (not e1) (snd-display ";edit-hook #f not called?"))
-	(if (not a1) (snd-display ";after-edit-hook 1 not called?"))
+	    (snd-display "edit-hook #f didn't allow edit!"))
+	(if (not e1) (snd-display "edit-hook #f not called?"))
+	(if (not a1) (snd-display "after-edit-hook 1 not called?"))
 	(undo 1 other 0)
-	(if (not u1) (snd-display ";undo-hook not called?"))
+	(if (not u1) (snd-display "undo-hook not called?"))
 	
 	(set! (hook-functions (edit-hook ind 0)) ())
 	(set! (hook-functions (edit-hook other 0)) ())
@@ -24891,9 +24891,9 @@ EDITS: 2
 	(snd-error "uhoh")
 	(snd-warning "hiho")
 	
-	(if (not se) (snd-display ";snd-error-hook not called?"))
-	(if (not sw) (snd-display ";snd-warning-hook not called?"))
-	(if (not me) (snd-display ";mus-error-hook not called?"))
+	(if (not se) (snd-display "snd-error-hook not called?"))
+	(if (not sw) (snd-display "snd-warning-hook not called?"))
+	(if (not me) (snd-display "mus-error-hook not called?"))
 	(set! (hook-functions snd-error-hook) ())
 	(set! (hook-functions snd-warning-hook) ())
 	(set! (hook-functions mus-error-hook) ())
@@ -24904,7 +24904,7 @@ EDITS: 2
 	(snd-error "not an error")
 	
 	(if (not (equal? se "not an error"))
-	    (snd-display ";snd-error-hook saw: ~A" se))
+	    (snd-display "snd-error-hook saw: ~A" se))
 	(set! (hook-functions snd-error-hook) ()))
       
       (hook-push before-exit-hook (lambda (hook) (set! (hook 'result) #t)))
@@ -24920,15 +24920,15 @@ EDITS: 2
 		     (let ((snd (hook 'snd))
 			   (filename (hook 'name)))
 		       (if (not (equal? filename (mus-expand-filename "baddy.snd")))
-			   (snd-display ";save-hook filename: ~A?" filename))
+			   (snd-display "save-hook filename: ~A?" filename))
 		       (if (not (equal? snd ind))
-			   (snd-display ";save-hook snd: ~A ~A?" snd ind)))
+			   (snd-display "save-hook snd: ~A ~A?" snd ind)))
 		     (set! sh #t)
 		     (set! (hook 'result) #t)))
 	(save-sound-as "baddy.snd" ind)
-	(if (not sh) (snd-display ";save-hook not called?"))
+	(if (not sh) (snd-display "save-hook not called?"))
 	(when (file-exists? "baddy.snd")
-	  (snd-display ";save-hook didn't cancel save?")
+	  (snd-display "save-hook didn't cancel save?")
 	  (delete-file "baddy.snd"))
 	(set! (hook-functions save-hook) ()))
       
@@ -24938,11 +24938,11 @@ EDITS: 2
 	(hook-push close-hook
 		   (lambda (hook)
 		     (if (not (equal? (hook 'snd) ind))
-			 (snd-display ";close-hook: ~A not ~A?" (hook 'snd) ind))
+			 (snd-display "close-hook: ~A not ~A?" (hook 'snd) ind))
 		     (set! cl #t)))
 	
 	(close-sound ind)
-	(if (not cl) (snd-display ";close-hook not called?")))
+	(if (not cl) (snd-display "close-hook not called?")))
       (set! (hook-functions close-hook) ())
       (close-sound other)))
   
@@ -25161,11 +25161,11 @@ EDITS: 2
 	 (let ((func (cadr func-and-name)))
 	   (func))
 	 (let ((name (car func-and-name)))
-	   (if (not (= (edit-position ind 0) 0)) (snd-display ";~A: blocked edit: ~A" name (edit-position ind 0)))
-	   (if (not (= edit-hook-ctr 1)) (snd-display ";~A: edit hook calls: ~A" name edit-hook-ctr))
-	   (if (not (= after-edit-hook-ctr 0)) (snd-display ";~A: after edit hook calls: ~A" name after-edit-hook-ctr))
+	   (if (not (= (edit-position ind 0) 0)) (snd-display "~A: blocked edit: ~A" name (edit-position ind 0)))
+	   (if (not (= edit-hook-ctr 1)) (snd-display "~A: edit hook calls: ~A" name edit-hook-ctr))
+	   (if (not (= after-edit-hook-ctr 0)) (snd-display "~A: after edit hook calls: ~A" name after-edit-hook-ctr))
 	   (set! edit-hook-ctr 0)
-	   (if (not (null? (mixes ind 0))) (snd-display ";[27315] ~A: mixes: ~A" name (mixes ind 0)))))
+	   (if (not (null? (mixes ind 0))) (snd-display "[27315] ~A: mixes: ~A" name (mixes ind 0)))))
        all-tests)
       
       (set! edit-hook-ctr 0)
@@ -25185,9 +25185,9 @@ EDITS: 2
 	 (let ((func (cadr func-and-name)))
 	   (func))
 	 (let ((name (car func-and-name)))
-	   (if (<= (edit-position ind 0) 0) (snd-display ";~A: unblocked edit: ~A" name (edit-position ind 0)))
-	   (if (<= edit-hook-ctr 0) (snd-display ";~A: unblocked edit hook calls: ~A" name edit-hook-ctr))
-	   (if (<= after-edit-hook-ctr 0) (snd-display ";~A: unblocked after edit hook calls: ~A" name after-edit-hook-ctr)))
+	   (if (<= (edit-position ind 0) 0) (snd-display "~A: unblocked edit: ~A" name (edit-position ind 0)))
+	   (if (<= edit-hook-ctr 0) (snd-display "~A: unblocked edit hook calls: ~A" name edit-hook-ctr))
+	   (if (<= after-edit-hook-ctr 0) (snd-display "~A: unblocked after edit hook calls: ~A" name after-edit-hook-ctr)))
 	 (set! edit-hook-ctr 0)
 	 (set! after-edit-hook-ctr 0)
 	 (revert-sound ind))
@@ -25215,38 +25215,38 @@ EDITS: 2
     (scale-by 2.0)
     (hook-push (edit-hook ind 0) (lambda (hook) (set! (hook 'result) #t)))
     (mix-float-vector (make-float-vector 10 .1) 0)
-    (if (not (= (edit-position ind 0) 1)) (snd-display ";mix-float-vector: blocked edit: ~A" (edit-position ind 0)))
-    (if (not (null? (mixes ind 0))) (snd-display ";mix-float-vector edit-hook: mixes: ~A" (mixes ind 0)))
+    (if (not (= (edit-position ind 0) 1)) (snd-display "mix-float-vector: blocked edit: ~A" (edit-position ind 0)))
+    (if (not (null? (mixes ind 0))) (snd-display "mix-float-vector edit-hook: mixes: ~A" (mixes ind 0)))
     (mix "pistol.snd" 1000)
-    (if (not (= (edit-position ind 0) 1)) (snd-display ";mix: blocked edit: ~A" (edit-position ind 0)))
-    (if (not (null? (mixes ind 0))) (snd-display ";mix edit-hook: mixes: ~A" (mixes ind 0)))
+    (if (not (= (edit-position ind 0) 1)) (snd-display "mix: blocked edit: ~A" (edit-position ind 0)))
+    (if (not (null? (mixes ind 0))) (snd-display "mix edit-hook: mixes: ~A" (mixes ind 0)))
     (set! (hook-functions (edit-hook ind 0)) ())
     (let ((mx (mix-float-vector (make-float-vector 10 .1) 1000)))
       (when (mix? mx) ; might be no-gui case
-	(if (not (= (edit-position ind 0) 2)) (snd-display ";mix-float-vector: unblocked edit: ~A" (edit-position ind 0)))
-	(if (not (equal? (mixes ind 0) (list mx))) (snd-display ";mix-float-vector un edit-hook: mixes: ~A" (mixes ind 0)))
+	(if (not (= (edit-position ind 0) 2)) (snd-display "mix-float-vector: unblocked edit: ~A" (edit-position ind 0)))
+	(if (not (equal? (mixes ind 0) (list mx))) (snd-display "mix-float-vector un edit-hook: mixes: ~A" (mixes ind 0)))
 	(hook-push (edit-hook ind 0) (lambda (hook) (set! (hook 'result) #t)))
 	(set! (mix-amp mx) 2.0)
-	(if (not (= (edit-position ind 0) 2)) (snd-display ";mix amp: blocked edit: ~A" (edit-position ind 0)))
-	(if (fneq (mix-amp mx) 1.0) (snd-display ";mix amp: blocked edit: ~A" (mix-amp mx)))
+	(if (not (= (edit-position ind 0) 2)) (snd-display "mix amp: blocked edit: ~A" (edit-position ind 0)))
+	(if (fneq (mix-amp mx) 1.0) (snd-display "mix amp: blocked edit: ~A" (mix-amp mx)))
 	(set! (mix-amp-env mx) '(0 0 1 1 2 0))
-	(if (not (= (edit-position ind 0) 2)) (snd-display ";mix amp env: blocked edit: ~A" (edit-position ind 0)))
-	(if (pair? (mix-amp-env mx)) (snd-display ";mix amp env: blocked edit: ~A" (mix-amp-env mx)))
+	(if (not (= (edit-position ind 0) 2)) (snd-display "mix amp env: blocked edit: ~A" (edit-position ind 0)))
+	(if (pair? (mix-amp-env mx)) (snd-display "mix amp env: blocked edit: ~A" (mix-amp-env mx)))
 	(set! (mix-speed mx) 2.0)
-	(if (not (= (edit-position ind 0) 2)) (snd-display ";mix speed: blocked edit: ~A" (edit-position ind 0)))
-	(if (fneq (mix-speed mx) 1.0) (snd-display ";mix speed: blocked edit: ~A" (mix-speed mx)))
+	(if (not (= (edit-position ind 0) 2)) (snd-display "mix speed: blocked edit: ~A" (edit-position ind 0)))
+	(if (fneq (mix-speed mx) 1.0) (snd-display "mix speed: blocked edit: ~A" (mix-speed mx)))
 	(set! (mix-position mx) 2000)
-	(if (not (= (edit-position ind 0) 2)) (snd-display ";mix position: blocked edit: ~A" (edit-position ind 0)))
-	(if (not (= (mix-position mx) 1000)) (snd-display ";mix position: blocked edit: ~A" (mix-position mx)))
+	(if (not (= (edit-position ind 0) 2)) (snd-display "mix position: blocked edit: ~A" (edit-position ind 0)))
+	(if (not (= (mix-position mx) 1000)) (snd-display "mix position: blocked edit: ~A" (mix-position mx)))
 	(mix-float-vector (make-float-vector 10 .2) 0)
-	(if (not (= (edit-position ind 0) 2)) (snd-display ";mix-float-vector 1: blocked edit: ~A" (edit-position ind 0)))
-	(if (not (equal? (mixes ind 0) (list mx))) (snd-display ";mix-float-vector 1 edit-hook: mixes: ~A" (mixes ind 0)))
+	(if (not (= (edit-position ind 0) 2)) (snd-display "mix-float-vector 1: blocked edit: ~A" (edit-position ind 0)))
+	(if (not (equal? (mixes ind 0) (list mx))) (snd-display "mix-float-vector 1 edit-hook: mixes: ~A" (mixes ind 0)))
 	))
     (close-sound ind))
   
   (let ((ind (open-sound "oboe.snd")))
-    (if (pair? (hook-functions (edit-hook ind 0))) (snd-display ";edit-hook not cleared at close?"))
-    (if (pair? (hook-functions (after-edit-hook ind 0))) (snd-display ";after-edit-hook not cleared at close?"))
+    (if (pair? (hook-functions (edit-hook ind 0))) (snd-display "edit-hook not cleared at close?"))
+    (if (pair? (hook-functions (after-edit-hook ind 0))) (snd-display "after-edit-hook not cleared at close?"))
     (close-sound ind))
   
   (reset-all-hooks)
@@ -25275,11 +25275,11 @@ EDITS: 2
 			 (set! (hook 'result) #t))))))
     (let ((ind (open-sound "2.snd")))
       (save-sound-as "test.snd" :srate 44100)
-      (if (not (= (edit-position ind 0) 0)) (snd-display ";before-save-as-hook undo: ~A" (edit-position ind 0)))
-      (if (not hook-called) (snd-display ";before-save-as-hook not called?"))
+      (if (not (= (edit-position ind 0) 0)) (snd-display "before-save-as-hook undo: ~A" (edit-position ind 0)))
+      (if (not hook-called) (snd-display "before-save-as-hook not called?"))
       (close-sound ind)
       (set! ind (open-sound "test.snd"))
-      (if (not (= (srate ind) 44100)) (snd-display ";before-save-as-hook src: ~A" (srate ind)))
+      (if (not (= (srate ind) 44100)) (snd-display "before-save-as-hook src: ~A" (srate ind)))
       (close-sound ind))
     (set! (hook-functions before-save-as-hook) ()))
   
@@ -25297,10 +25297,10 @@ EDITS: 2
 		 (if need-save-as-undo (undo)))))
   (let ((ind (open-sound "oboe.snd")))
     (save-sound-as "test.snd" :srate 44100)
-    (if (not (= (edit-position ind 0) 0)) (snd-display ";after-save-as-hook undo: ~A" (edit-position ind 0)))
+    (if (not (= (edit-position ind 0) 0)) (snd-display "after-save-as-hook undo: ~A" (edit-position ind 0)))
     (close-sound ind)
     (set! ind (open-sound "test.snd"))
-    (if (not (= (srate ind) 44100)) (snd-display ";before|after-save-as-hook src: ~A" (srate ind)))
+    (if (not (= (srate ind) 44100)) (snd-display "before|after-save-as-hook src: ~A" (srate ind)))
     (close-sound ind))
   (set! (hook-functions before-save-as-hook) ())
   (set! (hook-functions after-save-as-hook) ())
@@ -25321,12 +25321,12 @@ EDITS: 2
 				 (if (and (fneq val 1.0)
 					  (fneq val 1.5)
 					  (fneq val -1.5))
-				     (snd-display ";clip-hook called upon: ~A" val))
+				     (snd-display "clip-hook called upon: ~A" val))
 				 (set! hook-called (+ 1 hook-called))
 				 (set! (hook 'result) 0.0))))
 	(save-sound index)
 	(set! (hook-functions clip-hook) ())
-	(if (not (= hook-called 3)) (snd-display ";clip-hook called ~A times" hook-called))
+	(if (not (= hook-called 3)) (snd-display "clip-hook called ~A times" hook-called))
 	(close-sound index)
 	(set! index (open-sound "test.snd"))
 	(let ((new-vals (channel->float-vector 0 10 index))
@@ -25335,7 +25335,7 @@ EDITS: 2
 	  (set! (fixed-vals 6) 0.0)
 	  (set! (fixed-vals 8) 0.0)
 	  (if (not (mus-arrays-equal? fixed-vals new-vals))
-	      (snd-display ";clip-hook results:~%    ~A~%    ~A~%    ~A" new-vals fixed-vals vals)))
+	      (snd-display "clip-hook results:~%    ~A~%    ~A~%    ~A" new-vals fixed-vals vals)))
 	(close-sound index))))
   )))
 
@@ -25369,7 +25369,7 @@ EDITS: 2
   (define (test-panel func name)
     (if (not (or (feql (func #t) (map func (sounds)))
 		 (feql (func #t) (map func (reverse (sounds))))))
-	(snd-display ";test-panel ~A: ~A ~A?" name (func #t) (map func (sounds)))))
+	(snd-display "test-panel ~A: ~A ~A?" name (func #t) (map func (sounds)))))
   
   (define (test-channel func name)
     (let ((val (flatten (func #t #t))))
@@ -25385,7 +25385,7 @@ EDITS: 2
 					     (set! chnlist (cons i chnlist))))
 					 (reverse (sounds)))
 					(list sndlist chnlist))))))
-	  (snd-display ";test-channel ~A: ~A ~A?" name val (apply map func (all-chans))))))
+	  (snd-display "test-channel ~A: ~A ~A?" name val (apply map func (all-chans))))))
   
   (define* (clone-sound-as new-name snd)
     ;; copies any edit-sounds to save-dir!
@@ -25427,7 +25427,7 @@ EDITS: 2
 			 ((= chn chns))
 		       (set! mxpos (+ mxpos (edit-position snd chn)))))
 		 (when (or (> mxpos 100) (> chns 4))
-		   (snd-display ";revert ~A at ~A" (file-name snd) mxpos)
+		   (snd-display "revert ~A at ~A" (file-name snd) mxpos)
 		   (revert-sound snd))))
 	     (sounds))))
     (log-mem test-ctr)
@@ -25449,7 +25449,7 @@ EDITS: 2
 	      (load (string-append cwd "s61.scm")))
 	    (lambda args args))
 	  (if (not (= (length (sounds)) files))
-	      (snd-display ";save state restart from ~A to ~A sounds?" files (length (sounds))))
+	      (snd-display "save state restart from ~A to ~A sounds?" files (length (sounds))))
 	  (set! open-files (sounds))))
     
     (let ((fd (let ((name (cur-dir-files (random (length cur-dir-files)))))
@@ -25480,39 +25480,39 @@ EDITS: 2
 	      (let ((xb (x-bounds curfd)))
 		(if (or (fneq (car xb) 0.0) 
 			(fneq (cadr xb) (min (duration curfd) 1.0))) 
-		    (snd-display ";x-bounds: ~A?" xb)))))
+		    (snd-display "x-bounds: ~A?" xb)))))
 	  (set! (y-bounds curfd) (list -0.5 0.5))
 	  (let ((yb (y-bounds curfd)))
 	    (when (and with-gui
 		       (or (fneq (car yb) -0.5) (fneq (cadr yb) 0.5)))
-	      (snd-display ";y-bounds: ~A?" yb)))
+	      (snd-display "y-bounds: ~A?" yb)))
 	  (set! (cursor curfd 0) curloc)
 	  (let ((cl (cursor curfd 0)))
 	    (when (and (not (= cl curloc))
 		       (> (framples curfd 0) curloc))
-	      (snd-display ";cursor ~A is not ~A (framples: ~A)?" cl curloc (framples curfd 0))
+	      (snd-display "cursor ~A is not ~A (framples: ~A)?" cl curloc (framples curfd 0))
 	      (set! curloc (cursor curfd 0))))
 	  (if (>= curloc (framples curfd 0)) (set! curloc 0))
 	  (let ((id (catch #t (lambda () (add-mark curloc curfd)) (lambda args -1))))
 	    (when (and (number? id) (not (= id -1)))
 	      (let ((cl (mark-sample id))
 		    (new-marks (length (marks curfd 0))))
-		(if (not (= cl curloc)) (snd-display ";mark ~A is not ~A?" cl curloc))
-		(if (not (= new-marks (+ 1 old-marks))) (snd-display ";marks ~A ~A?" new-marks old-marks)))
+		(if (not (= cl curloc)) (snd-display "mark ~A is not ~A?" cl curloc))
+		(if (not (= new-marks (+ 1 old-marks))) (snd-display "marks ~A ~A?" new-marks old-marks)))
 	      (let ((new-id (find-mark curloc curfd)))
 		(if (not (and (mark? new-id)
 			      (= id new-id)))
-		    (snd-display ";find-mark (by sample): ~A ~A (~A for ~A ~A)?" 
+		    (snd-display "find-mark (by sample): ~A ~A (~A for ~A ~A)?" 
 				 id new-id curloc (mark-sample id) (mark-sample new-id))))
 	      (set! (mark-name id) "hiho")
 	      (let ((new-id (find-mark "hiho" curfd)))
 		(if (not (and (mark? new-id)
 			      (= id new-id)))
-		    (snd-display ";find-mark (by name): ~A ~A?" id new-id)))
-	      (if (not (string=? (mark-name id) "hiho")) (snd-display ";mark name: ~A?" (mark-name id)))
+		    (snd-display "find-mark (by name): ~A ~A?" id new-id)))
+	      (if (not (string=? (mark-name id) "hiho")) (snd-display "mark name: ~A?" (mark-name id)))
 	      (set! (mark-sample id) (max 0 (- curloc 100)))
 	      (let ((cl (mark-sample id)))
-		(if (not (= cl (max 0 (- curloc 100)))) (snd-display ";set mark ~A is not ~A?" cl curloc))
+		(if (not (= cl (max 0 (- curloc 100)))) (snd-display "set mark ~A is not ~A?" cl curloc))
 		(delete-mark id)))
 	    (if (> (duration curfd) 1.2) (set! (x-bounds curfd) '(1.0 1.1)))
 	    (when (> (framples curfd) 25)
@@ -25527,7 +25527,7 @@ EDITS: 2
 		(set! (y-bounds curfd) '(-1.0 1.0))
 		(if (or (> (length (marks curfd 0)) 0)
 			(not (= new-marks (+ old-marks 3))))
-		    (snd-display ";delete marks: ~A ~A?" new-marks old-marks)))))))
+		    (snd-display "delete marks: ~A ~A?" new-marks old-marks)))))))
       
       (revert-sound)
       (let-temporarily ((*selection-creates-region* #t))
@@ -25538,7 +25538,7 @@ EDITS: 2
 	       (let ((r1 (region-rms (car (regions))))
 		     (r2 (selection-rms)))
 		 (if (fneq r1 r2)
-		     (snd-display ";region rms: ~A?" r1)))))))
+		     (snd-display "region rms: ~A?" r1)))))))
       
       (without-errors (if (region? (cadr (regions))) (play (cadr (regions)) :wait #t)))
       (without-errors (mix-region (car (regions))))
@@ -25660,39 +25660,39 @@ EDITS: 2
 	       (lambda (beg) (insert-silence beg 100)))))
       
       (let ((ind (open-sound "z.snd")))
-	(if (not (= (framples ind) 0)) (snd-display ";framples z.snd ~A" (framples ind)))
-	(if (samples) (snd-display ";samples of empty file (z): ~A" (samples)))
-	(if (channel->float-vector) (snd-display ";channel->float-vector of empty file (z): ~A" (channel->float-vector)))
-	(if (fneq (maxamp ind) 0.0) (snd-display ";maxamp z.snd ~A" (maxamp ind)))
-	(if (fneq (sample 100 ind) 0.0) (snd-display ";sample 100 z.snd ~A" (sample 100 ind)))
+	(if (not (= (framples ind) 0)) (snd-display "framples z.snd ~A" (framples ind)))
+	(if (samples) (snd-display "samples of empty file (z): ~A" (samples)))
+	(if (channel->float-vector) (snd-display "channel->float-vector of empty file (z): ~A" (channel->float-vector)))
+	(if (fneq (maxamp ind) 0.0) (snd-display "maxamp z.snd ~A" (maxamp ind)))
+	(if (fneq (sample 100 ind) 0.0) (snd-display "sample 100 z.snd ~A" (sample 100 ind)))
 	(scale-by 2.0)
-	(if (not (= (edit-position ind 0) 0)) (snd-display ";scale z: ~A" (edit-position ind 0)))
+	(if (not (= (edit-position ind 0) 0)) (snd-display "scale z: ~A" (edit-position ind 0)))
 	(env-sound '(0 0 1 1))
-	(if (not (= (edit-position ind 0) 0)) (snd-display ";env z: ~A" (edit-position ind 0)))
+	(if (not (= (edit-position ind 0) 0)) (snd-display "env z: ~A" (edit-position ind 0)))
 	(smooth-sound)
-	(if (not (= (edit-position ind 0) 0)) (snd-display ";smooth z: ~A" (edit-position ind 0)))
+	(if (not (= (edit-position ind 0) 0)) (snd-display "smooth z: ~A" (edit-position ind 0)))
 	(reverse-sound)
-	(if (not (= (edit-position ind 0) 0)) (snd-display ";reverse z: ~A" (edit-position ind 0)))
+	(if (not (= (edit-position ind 0) 0)) (snd-display "reverse z: ~A" (edit-position ind 0)))
 	(src-sound 2.0)
-	(if (not (= (edit-position ind 0) 0)) (snd-display ";src z: ~A" (edit-position ind 0)))
+	(if (not (= (edit-position ind 0) 0)) (snd-display "src z: ~A" (edit-position ind 0)))
 	(insert-sound "z.snd")
-	(if (not (= (edit-position ind 0) 0)) (snd-display ";insert z: ~A" (edit-position ind 0)))
+	(if (not (= (edit-position ind 0) 0)) (snd-display "insert z: ~A" (edit-position ind 0)))
 	(mix "z.snd")
-	(if (not (= (edit-position ind 0) 0)) (snd-display ";mix z: ~A" (edit-position ind 0)))
+	(if (not (= (edit-position ind 0) 0)) (snd-display "mix z: ~A" (edit-position ind 0)))
 	(filter-sound (make-one-zero :a0 2.0 :a1 0.0))
-	(if (not (= (edit-position ind 0) 0)) (snd-display ";filter z: ~A" (edit-position ind 0)))
-	(if (not (= (mus-sound-duration "z.snd") 0.0)) (snd-display ";duration z.snd: ~A" (mus-sound-duration "z.snd")))
+	(if (not (= (edit-position ind 0) 0)) (snd-display "filter z: ~A" (edit-position ind 0)))
+	(if (not (= (mus-sound-duration "z.snd") 0.0)) (snd-display "duration z.snd: ~A" (mus-sound-duration "z.snd")))
 	(catch 'IO-error
 	  (lambda () (convolve-with "z.snd" 1.0))
 	  (lambda args args))
-	(if (not (= (edit-position ind 0) 0)) (snd-display ";convolve z: ~A" (edit-position ind 0)))
+	(if (not (= (edit-position ind 0) 0)) (snd-display "convolve z: ~A" (edit-position ind 0)))
 	(let ((matches (count-matches (lambda (y) (> y .1)))))
 	  (if (and (integer? matches) (> matches 0))
-	      (snd-display ";count z: ~A" matches)))
+	      (snd-display "count z: ~A" matches)))
 	(let ((val (next-sample (make-sampler 0))))
-	  (if (fneq val 0.0) (snd-display ";sampler z.snd: ~A" val)))
-	(if (not (equal? (cursor-position) '(0 0))) (snd-display ";cursor-position z: ~A" (cursor-position)))
-	(if (not (= (cursor) 0)) (snd-display ";cursor z: ~A" (cursor)))
+	  (if (fneq val 0.0) (snd-display "sampler z.snd: ~A" val)))
+	(if (not (equal? (cursor-position) '(0 0))) (snd-display "cursor-position z: ~A" (cursor-position)))
+	(if (not (= (cursor) 0)) (snd-display "cursor z: ~A" (cursor)))
 	(let ((outer (make-player ind 0)))
 	  (let ((pl (make-player ind 0)))
 	    (add-player pl)
@@ -25706,9 +25706,9 @@ EDITS: 2
 	  (close-sound ind)
 	  (let ((tag (catch #t (lambda () (add-player outer)) (lambda args (car args)))))
 	    (if (not (eq? tag 'no-such-player))
-		(snd-display ";dangling player: ~A" tag)))))
+		(snd-display "dangling player: ~A" tag)))))
       (if (channel-amp-envs "z.snd" 0 100)
-	  (snd-display ";channel-amp-envs of empty file: ~A" (channel-amp-envs "z.snd" 0 100)))
+	  (snd-display "channel-amp-envs of empty file: ~A" (channel-amp-envs "z.snd" 0 100)))
       
       (let ((s8-snd (if (file-exists? "s8.snd") "s8.snd" "oboe.snd")))
 	(let ((zz (view-sound "z.snd")))
@@ -25720,7 +25720,7 @@ EDITS: 2
 	  (revert-sound zz)
 	  (let ((editctr (edit-position zz)))
 	    (let-temporarily ((*selection-creates-region* #t))
-	      (if (not (= (edit-position) 0)) (snd-display ";revert-sound edit-position: ~A" (edit-position)))
+	      (if (not (= (edit-position) 0)) (snd-display "revert-sound edit-position: ~A" (edit-position)))
 	      (as-one-edit 
 	       (lambda ()
 		 (mix s8-snd 24000)
@@ -25729,14 +25729,14 @@ EDITS: 2
 		     (filter-selection '(0 0 .2 1 .5 0 1 0) 40)
 		     (delete-selection)
 		     (mix-region reg)))))
-	      (if (not (= (edit-position) 1)) (snd-display ";as-one-edit mix zz: ~A -> ~A" editctr (edit-position)))
+	      (if (not (= (edit-position) 1)) (snd-display "as-one-edit mix zz: ~A -> ~A" editctr (edit-position)))
 	      (close-sound zz))))
 	(let ((s8 (view-sound s8-snd)))
 	  (select-sound s8)
 	  (when (= (channels s8) 8)
 	    (select-channel 5)
 	    (if (not (eqv? (selected-channel) 5))
-		(snd-display ";select-channel: ~A?" (selected-channel))))
+		(snd-display "select-channel: ~A?" (selected-channel))))
 	  (let ((editctr (edit-position)))
 	    (as-one-edit 
 	     (lambda ()
@@ -25751,7 +25751,7 @@ EDITS: 2
 		     (select-channel 3))
 		 (if (region? reg)
 		     (insert-region reg 80000)))))
-	    (if (not (= (edit-position) (+ 1 editctr))) (snd-display ";as-one-edit s8: ~A -> ~A" editctr (edit-position))))
+	    (if (not (= (edit-position) (+ 1 editctr))) (snd-display "as-one-edit s8: ~A -> ~A" editctr (edit-position))))
 	  (revert-sound s8)
 	  (close-sound s8)))
       
@@ -25759,7 +25759,7 @@ EDITS: 2
 	(if (> (chans cfd) 1)
 	    (let ((uval (random 3)))
 	      (set! (channel-style cfd) uval)
-	      (if (not (= uval (channel-style cfd))) (snd-display ";channel-style: ~A ~A?" uval (channel-style cfd)))))
+	      (if (not (= uval (channel-style cfd))) (snd-display "channel-style: ~A ~A?" uval (channel-style cfd)))))
 	(when (< (framples cfd) 200000)
 	  (src-sound 2.5 1.0 cfd)
 	  (src-sound -2.5 1.0 cfd)
@@ -25773,7 +25773,7 @@ EDITS: 2
 	  (filter-sound '(0 0 .1 0 .11 1 .12 0 1 0) 2048 cfd)
 	  (env-sound '(0 0 .5 1 1 0) 0 (framples cfd) 1.0 cfd)
 	  (insert-sample 1200 .1 cfd)
-	  (if (fneq (sample 1200 cfd) .1) (snd-display ";insert-sample(looped): ~A?" (sample 1200 cfd))))
+	  (if (fneq (sample 1200 cfd) .1) (snd-display "insert-sample(looped): ~A?" (sample 1200 cfd))))
 	(revert-sound cfd))
       
       (let ((cfd (open-sound "obtest.snd")))
@@ -25788,7 +25788,7 @@ EDITS: 2
 	  (if (< (framples) 100000) (play :wait #t))
 	  
 	  (if (fneq (reverb-control-decay cfd) *reverb-control-decay*)
-	      (snd-display ";reverb-control-decay local: ~A, global: ~A" (reverb-control-decay cfd) *reverb-control-decay*))
+	      (snd-display "reverb-control-decay local: ~A, global: ~A" (reverb-control-decay cfd) *reverb-control-decay*))
 	  (set! (reverb-control?) #t)
 	  (set! (reverb-control-scale) .2) 
 	  (test-panel reverb-control-scale 'reverb-control-scale)
@@ -25824,23 +25824,23 @@ EDITS: 2
 	  (swap-channels cfd 0 cfd2 0)
 	  (set! (amp-control #t) .75)
 	  (test-panel amp-control 'amp-control)
-	  (if (> (abs (- (amp-control cfd2) .75)) .05) (snd-display ";set-amp .75 #t -> ~A?" (amp-control cfd2)))
+	  (if (> (abs (- (amp-control cfd2) .75)) .05) (snd-display "set-amp .75 #t -> ~A?" (amp-control cfd2)))
 	  (set! (contrast-control-amp #t) .75)
-	  (if (fneq (contrast-control-amp cfd2) .75) (snd-display ";set-contrast-control-amp .75 #t -> ~A?" (contrast-control-amp cfd2)))
+	  (if (fneq (contrast-control-amp cfd2) .75) (snd-display "set-contrast-control-amp .75 #t -> ~A?" (contrast-control-amp cfd2)))
 	  (set! (contrast-control-bounds cfd2) (list 2.0 3.0))
 	  (if (not (feql (contrast-control-bounds cfd2) '(2.0 3.0))) 
-	      (snd-display ";cfd2 contrast-control-bounds: ~A" (contrast-control-bounds cfd2)))
+	      (snd-display "cfd2 contrast-control-bounds: ~A" (contrast-control-bounds cfd2)))
 	  (set! (expand-control-length #t) .025)
-	  (if (fneq (expand-control-length cfd2) .025) (snd-display ";set-expand-control-length .025 #t -> ~A?" (expand-control-length cfd2)))
+	  (if (fneq (expand-control-length cfd2) .025) (snd-display "set-expand-control-length .025 #t -> ~A?" (expand-control-length cfd2)))
 	  (set! (expand-control-hop #t) .025)
-	  (if (fneq (expand-control-hop cfd2) .025) (snd-display ";set-expand-control-hop .025 #t -> ~A?" (expand-control-hop cfd2)))
+	  (if (fneq (expand-control-hop cfd2) .025) (snd-display "set-expand-control-hop .025 #t -> ~A?" (expand-control-hop cfd2)))
 	  (set! (expand-control-jitter #t) .025)
-	  (if (fneq (expand-control-jitter cfd2) .025) (snd-display ";set-expand-control-jitter .025 #t -> ~A?" (expand-control-jitter cfd2)))
+	  (if (fneq (expand-control-jitter cfd2) .025) (snd-display "set-expand-control-jitter .025 #t -> ~A?" (expand-control-jitter cfd2)))
 	  (set! (expand-control-ramp #t) .025)
-	  (if (fneq (expand-control-ramp cfd2) .025) (snd-display ";set-expand-control-ramp .025 #t -> ~A?" (expand-control-ramp cfd2)))
+	  (if (fneq (expand-control-ramp cfd2) .025) (snd-display "set-expand-control-ramp .025 #t -> ~A?" (expand-control-ramp cfd2)))
 	  (let ((clone (clone-sound-as "/tmp/cloned.snd" cfd2)))
 	    (if (not (= (framples cfd2) (framples clone)))
-		(snd-display ";clone framples: ~A ~A" (framples cfd2) (framples clone)))
+		(snd-display "clone framples: ~A ~A" (framples cfd2) (framples clone)))
 	    (close-sound clone))
 	  (delete-file "/tmp/cloned.snd")
 	  (mus-sound-forget "/tmp/cloned.snd")
@@ -25849,9 +25849,9 @@ EDITS: 2
       (hook-push (edit-hook) (lambda (hook) (set! (hook 'result) #f)))
       (let ((editctr (edit-position)))
 	(as-one-edit (lambda () (set! (sample 200) .2) (set! (sample 300) .3)))
-	(if (not (= (edit-position) (+ 1 editctr))) (snd-display ";as-one-edit: ~A -> ~A" editctr (edit-position)))
+	(if (not (= (edit-position) (+ 1 editctr))) (snd-display "as-one-edit: ~A -> ~A" editctr (edit-position)))
 	(as-one-edit (lambda () #f))
-	(if (not (= (edit-position) (+ 1 editctr))) (snd-display ";as-one-edit nil: ~A -> ~A" editctr (edit-position))))
+	(if (not (= (edit-position) (+ 1 editctr))) (snd-display "as-one-edit nil: ~A -> ~A" editctr (edit-position))))
       (delete-sample 250)
       (hook-push (undo-hook) (lambda (hook) (set! (hook 'result) #f)))
       (undo)
@@ -25866,7 +25866,7 @@ EDITS: 2
       (hook-push snd-warning-hook 
 		 (lambda (hook)
 		   (let ((msg (hook 'message)))
-		     (if (not (string=? msg "hiho")) (snd-display ";snd-warning-hook: ~A?" msg))
+		     (if (not (string=? msg "hiho")) (snd-display "snd-warning-hook: ~A?" msg))
 		     (set! (hook 'result) #t))))
       (snd-warning "hiho")
       (set! (hook-functions snd-error-hook) ())
@@ -25943,10 +25943,10 @@ EDITS: 2
       (let ((maxval1 (+ (maxamp) .01)))
 	(if (not (every-sample? (lambda (y) (< y maxval1)))) 
 	    (let ((res (scan-channel (lambda (y) (>= y maxval1)))))
-	      (snd-display ";~A, every-sample: ~A ~A [~A: ~A]?" (short-file-name) maxval1 res (cursor) (sample (cursor)))
+	      (snd-display "~A, every-sample: ~A ~A [~A: ~A]?" (short-file-name) maxval1 res (cursor) (sample (cursor)))
 	      (do ((i 0 (+ i 1)))
 		  ((= i (edit-position)))
-		(snd-display ";~D: ~A ~A" i (maxamp #f 0 i) (edit-fragment i))))))
+		(snd-display "~D: ~A ~A" i (maxamp #f 0 i) (edit-fragment i))))))
       
       (map-channel (echo .5 .75) 0 60000)
       (set! (hook-functions after-transform-hook) ())
@@ -26121,19 +26121,19 @@ EDITS: 2
     (set! *sync-style* sync-none)
     (set! open-files ()))
   (set! (mus-rand-seed) 1234)
-  (if (not (= (mus-rand-seed) 1234)) (snd-display ";mus-rand-seed: ~A (1234)!" (mus-rand-seed)))
+  (if (not (= (mus-rand-seed) 1234)) (snd-display "mus-rand-seed: ~A (1234)!" (mus-rand-seed)))
   (let ((val (mus-random 1.0))
 	(val1 (mus-random 1.0)))
     (if (or (fneq val -0.7828) 
 	    (fneq val1 -0.8804))
-	(snd-display ";mus-random: ~A ~A?" val val1))
-    (if (= (mus-rand-seed) 1234) (snd-display ";mus-rand-seed: ~A!" (mus-rand-seed))))
+	(snd-display "mus-random: ~A ~A?" val val1))
+    (if (= (mus-rand-seed) 1234) (snd-display "mus-rand-seed: ~A!" (mus-rand-seed))))
   (set! (mus-rand-seed) 1234)
   (let ((val (mus-random 1.0))
 	(val1 (mus-random 1.0)))
     (if (or (fneq val -0.7828) 
 	    (fneq val1 -0.8804))
-	(snd-display ";mus-random repeated: ~A ~A?" val val1)))
+	(snd-display "mus-random repeated: ~A ~A?" val val1)))
   (set! (hook-functions after-open-hook) ())
   (set! (hook-functions close-hook) ())
   (set! (hook-functions open-hook) ())
@@ -26208,25 +26208,25 @@ EDITS: 2
 			    (equal? nv new-value)))))
       (if (not (or (equal? (flatten (func #t #t)) (apply map func (all-chans)))
 		   (equal? (flatten (func #t #t)) (apply map func (all-chans-reversed)))))
-	  (snd-display ";test-history-channel ~A[0]: ~A ~A?" name (flatten (func #t #t)) (apply map func (all-chans))))
+	  (snd-display "test-history-channel ~A[0]: ~A ~A?" name (flatten (func #t #t)) (apply map func (all-chans))))
       (let ((old-value (func)))
 	(func snd1 0)
 	(set! (func snd1 0) new-value)
 	(let ((nv (func snd1 0)))
 	  (if (not (test-equal nv new-value))
-	      (snd-display ";test-history-channel set-~A[1]: ~A ~A?" name new-value (func snd1 0))))
+	      (snd-display "test-history-channel set-~A[1]: ~A ~A?" name new-value (func snd1 0))))
 	(set! (func snd3 2) new-value)
 	(let ((nv (func snd3 2)))
 	  (if (not (test-equal nv new-value))
-	      (snd-display ";test-history-channel set-~A[2]: ~A ~A?" name new-value (func snd3 2))))
+	      (snd-display "test-history-channel set-~A[2]: ~A ~A?" name new-value (func snd3 2))))
 	(if (not (test-equal old-value new-value))
 	    (let ((nv (func snd3 1)))
 	      (if (test-equal nv new-value)
-		  (snd-display ";test-history-channel set-~A[3]: ~A ~A?" name new-value (func snd3 1)))))
+		  (snd-display "test-history-channel set-~A[3]: ~A ~A?" name new-value (func snd3 1)))))
 	(set! (func snd2 #t) new-value)
 	(let ((nv (func snd2 1)))
 	  (if (not (test-equal nv new-value))
-	      (snd-display ";test-history-channel set-~A[4]: ~A ~A?" name new-value (func snd2 1))))
+	      (snd-display "test-history-channel set-~A[4]: ~A ~A?" name new-value (func snd2 1))))
 	(set! (func) new-value)
 	(if (not (let chan-equal? ((vals (flatten (func #t #t)))
 				   (new-value new-value))
@@ -26235,7 +26235,7 @@ EDITS: 2
 			  (and (chan-equal? (car vals) new-value)
 			       (chan-equal? (cdr vals) new-value)))
 			 (else (test-equal vals new-value)))))
-	    (snd-display ";test-history-channel ~A[5]: ~A ~A?" name (flatten (func #t #t))
+	    (snd-display "test-history-channel ~A[5]: ~A ~A?" name (flatten (func #t #t))
 			 (apply map func (all-chans))))
 	(set! (func) old-value))))
   
@@ -26284,14 +26284,14 @@ EDITS: 2
 	    ((= i len))
 	  (one-pole incr (abs (- (* scaler (next-sample old-reader)) (next-sample new-reader)))))
 	(set! diff (one-pole incr 0.0))
-	(if (> diff 0.0) (snd-display ";diff (~D ~D): ~A" beg len diff))
+	(if (> diff 0.0) (snd-display "diff (~D ~D): ~A" beg len diff))
 	(set! diff 0.0)
 	(set! incr (make-one-pole 1.0 -1.0))
 	(do ((i 0 (+ i 1)))
 	    ((= i 100))
 	  (one-pole incr (abs (- (next-sample old-reader) (next-sample new-reader)))))
 	(set! diff (one-pole incr 0.0))
-	(if (> diff 0.0) (snd-display ";zdiff (~D ~D): ~A" beg len diff))
+	(if (> diff 0.0) (snd-display "zdiff (~D ~D): ~A" beg len diff))
 	(free-sampler old-reader)
 	(free-sampler new-reader))))
   
@@ -26302,7 +26302,7 @@ EDITS: 2
     (scale-selection-to maxval)
     (let ((newmax (float-vector-peak (samples beg len ind 0))))
       (if (fneq newmax maxval)
-	  (snd-display ";scale-selection-to (~D ~D) ~A: ~A?" beg len maxval newmax))))
+	  (snd-display "scale-selection-to (~D ~D) ~A: ~A?" beg len maxval newmax))))
   
   (define (play-with-amps sound . amps)
     (do ((chans (chans sound))
@@ -26310,10 +26310,10 @@ EDITS: 2
 	((= chan chans)
 	 (start-playing chans (srate sound) #f))   
       (let ((player (make-player sound chan)))
-	(if (not (player? player)) (snd-display ";player? ~A -> #f?" player))
-	(if (not (member player (players))) (snd-display ";player: ~A, but players: ~A" player (players)))
+	(if (not (player? player)) (snd-display "player? ~A -> #f?" player))
+	(if (not (member player (players))) (snd-display "player: ~A, but players: ~A" player (players)))
 	(if (not (equal? (player-home player) (list sound chan)))
-	    (snd-display ";player-home ~A ~A?" (player-home player) (list sound chan)))
+	    (snd-display "player-home ~A ~A?" (player-home player) (list sound chan)))
 	(set! (amp-control player) (amps chan))
 	(set! (speed-control player) .5)
 	(set! (expand-control? player) #t)
@@ -26343,26 +26343,26 @@ EDITS: 2
 						       (and (not (= (mus-sound-header-type file) mus-raw))
 							    (= (mus-sound-chans file) 1))))))))
 	
-	(if (not (equal? (all-chans) (list (list obi) (list 0)))) (snd-display ";all-chans: ~A?" (all-chans)))
+	(if (not (equal? (all-chans) (list (list obi) (list 0)))) (snd-display "all-chans: ~A?" (all-chans)))
 	(let ((s2i (open-sound (car (match-sound-files (lambda (file) (= (mus-sound-chans file) 2)))))))
 	  (if (not (or (equal? (all-chans) (list (list obi s2i s2i) (list 0 0 1)))
 		       (equal? (all-chans) (list (list s2i s2i obi) (list 0 1 0)))))
-	      (snd-display ";all-chans(2): ~A?" (all-chans)))
+	      (snd-display "all-chans(2): ~A?" (all-chans)))
 	  (if (not (string=? (finfo "oboe.snd") "oboe.snd: chans: 1, srate: 22050, Sun/Next, big endian short (16 bits), len: 2.305"))
-	      (snd-display ";finfo: ~A?" (finfo "oboe.snd")))
+	      (snd-display "finfo: ~A?" (finfo "oboe.snd")))
 	  (close-sound s2i))
 	(close-sound obi)
-	(if (not (equal? (all-chans) '(() ()))) (snd-display ";all-chans(0): ~A?" (all-chans)))
+	(if (not (equal? (all-chans) '(() ()))) (snd-display "all-chans(0): ~A?" (all-chans)))
 	(set! obi (open-sound "oboe.snd"))
 	(set! (cursor obi) 1000)
 	(let ((tick (locate-zero .001)))
 	  (if (not (= tick 1050)) 
-	      (snd-display ";locate-zero: ~A = ~A (second try: ~A)?" tick (sample tick) (locate-zero .001))))
+	      (snd-display "locate-zero: ~A = ~A (second try: ~A)?" tick (sample tick) (locate-zero .001))))
 	(hook-push graph-hook auto-dot)
 	(hook-push graph-hook superimpose-ffts)
 	(set! (transform-graph? obi 0) #t)
 	(let ((s2i (open-sound (car (match-sound-files (lambda (file) (= (mus-sound-chans file) 2)))))))
-	  (if (not (= (chans s2i) 2)) (snd-display ";match 2 got ~A with ~A chans" (short-file-name s2i) (chans s2i)))
+	  (if (not (= (chans s2i) 2)) (snd-display "match 2 got ~A with ~A chans" (short-file-name s2i) (chans s2i)))
 					;(update-graphs)
 	  (hook-remove graph-hook auto-dot)
 	  (hook-remove graph-hook superimpose-ffts)
@@ -26370,28 +26370,28 @@ EDITS: 2
 	  (select-sound obi)
 	  (let ((m1 (add-mark 100 obi 0)))
 	    (first-mark-in-window-at-left)
-	    (if (> (abs (- (left-sample obi 0) 100)) 1) (snd-display ";mark-in-window: ~A ~A?" (left-sample obi 0) (mark-sample m1)))
+	    (if (> (abs (- (left-sample obi 0) 100)) 1) (snd-display "mark-in-window: ~A ~A?" (left-sample obi 0) (mark-sample m1)))
 	    (delete-mark m1))
 	  (close-sound s2i))
 	(safe-make-selection obi)
 	(delete-selection-and-smooth)
 	(if (not (equal? (edit-fragment 0 obi 0) '("" "init" 0 50828))) 
-	    (snd-display ";edit-fragment(0): ~S?" (edit-fragment 0 obi 0)))
+	    (snd-display "edit-fragment(0): ~S?" (edit-fragment 0 obi 0)))
 	(if (not (equal? (edit-fragment 1 obi 0) '("delete-samples 1000 1001" "delete" 1000 1001))) 
-	    (snd-display ";edit-fragment(1): ~S?" (edit-fragment 1 obi 0)))
+	    (snd-display "edit-fragment(1): ~S?" (edit-fragment 1 obi 0)))
 	(if (not (equal? (edit-fragment 2 obi 0) '("delete-selection-and-smooth" "set" 968 64))) 
-	    (snd-display ";edit-fragment(2): ~S?" (edit-fragment 2 obi 0)))
+	    (snd-display "edit-fragment(2): ~S?" (edit-fragment 2 obi 0)))
 	
 	(let ((maxa (maxamp obi)))
 	  (normalized-mix "pistol.snd" 1000 0 obi 0)
 	  (let ((nmaxa (maxamp obi)))
-	    (if (fneq maxa nmaxa) (snd-display ";normalized-mix: ~A ~A?" maxa nmaxa)))
+	    (if (fneq maxa nmaxa) (snd-display "normalized-mix: ~A ~A?" maxa nmaxa)))
 	  (revert-sound obi))
 	(let ((s2i (open-sound (car (match-sound-files (lambda (file) 
 							 (and (= (mus-sound-chans file) 2)
 							      (not (= (mus-sound-header-type file) mus-raw))
 							      (> (mus-sound-framples file) 1000))))))))
-	  (if (not (= (chans s2i) 2)) (snd-display ";match 2+1000 got ~A with ~A chans" (short-file-name s2i) (chans s2i)))
+	  (if (not (= (chans s2i) 2)) (snd-display "match 2+1000 got ~A with ~A chans" (short-file-name s2i) (chans s2i)))
 	  (let ((o1 (sample 1000 obi 0))
 		(s1 (sample 1000 s2i 0))
 		(s2 (sample 1000 s2i 1)))
@@ -26402,7 +26402,7 @@ EDITS: 2
 	      (if (or (fneq (* 2.0 o1) o11)
 		      (fneq (* 2.0 s1) s11)
 		      (fneq (* 2.0 s2) s21))
-		  (snd-display ";do-all-chans: ~A?" (list o1 s1 s2 o11 s11 s21)))))
+		  (snd-display "do-all-chans: ~A?" (list o1 s1 s2 o11 s11 s21)))))
 	  (update-graphs)
 	  (let ((m1 (maxamp obi 0))
 		(m2 (maxamp s2i 0))
@@ -26411,7 +26411,7 @@ EDITS: 2
 	    (if (or (fneq m1 (car mc))
 		    (fneq m2 (cadr mc))
 		    (fneq m3 (caddr mc)))
-		(snd-display ";map maxamp all-chans: ~A ~A ~A ~A?" m1 m2 m3 mc))
+		(snd-display "map maxamp all-chans: ~A ~A ~A ~A?" m1 m2 m3 mc))
 	    (set! (sync obi) 1)
 	    (set! (sync s2i) 1)
 	    (do-chans (lambda (val) (* val 2.0)) "*2")
@@ -26419,7 +26419,7 @@ EDITS: 2
 	      (if (or (fneq (* 2.0 m1) (car mc1))
 		      (fneq (* 2.0 m2) (cadr mc1))
 		      (fneq (* 2.0 m3) (caddr mc1)))
-		  (snd-display ";do-chans: ~A ~A?" mc mc1))
+		  (snd-display "do-chans: ~A ~A?" mc mc1))
 	      (set! (sync obi) 0)
 	      (set! (sync s2i) 0)
 	      (select-sound s2i)
@@ -26428,12 +26428,12 @@ EDITS: 2
 		(if (or (fneq (* 2.0 m1) (car mc2))
 			(fneq m2 (cadr mc2))
 			(fneq m3 (caddr mc2)))
-		    (snd-display ";do-sound-chans: ~A ~A ~A?" mc mc1 mc2)))
-					;		  (if (every-sample? (lambda (val) (> val .5))) (snd-display ";every-sample(0)?")) 
-	      (if (not (every-sample? (lambda (val) (< val 5.0)))) (snd-display ";every-sample(1)?")) 
+		    (snd-display "do-sound-chans: ~A ~A ~A?" mc mc1 mc2)))
+					;		  (if (every-sample? (lambda (val) (> val .5))) (snd-display "every-sample(0)?")) 
+	      (if (not (every-sample? (lambda (val) (< val 5.0)))) (snd-display "every-sample(1)?")) 
 	      (select-sound obi)
 	      (let ((bins (sort-samples 32)))
-		(if (not (= (vector-ref bins 1) 4504)) (snd-display ";sort-samples: ~A?" bins)))
+		(if (not (= (vector-ref bins 1) 4504)) (snd-display "sort-samples: ~A?" bins)))
 	      ))
 	  (revert-sound s2i)
 	  (revert-sound obi)
@@ -26454,7 +26454,7 @@ EDITS: 2
 			  (fneq (+ s2 (* 0.5 o1)) s22)
 			  (fneq s21 s31)
 			  (fneq s22 s32))
-		      (snd-display ";place: ~A " (list o1 s1 s2 s21 s22 s31 s32)))))))
+		      (snd-display "place: ~A " (list o1 s1 s2 s21 s22 s31 s32)))))))
 	  (revert-sound s2i)
 	  (revert-sound obi)
 	  (set! (sync obi) 0)
@@ -26464,7 +26464,7 @@ EDITS: 2
 		  (fneq ((compand) .1) .2)
 		  (fneq ((compand) .99) .997)
 		  (fneq ((compand) .95) .984))
-	      (snd-display ";compand: ~A?" (list ((compand) 0.0) ((compand) 1.0) ((compand) .1) ((compand) .99) ((compand) .95))))
+	      (snd-display "compand: ~A?" (list ((compand) 0.0) ((compand) 1.0) ((compand) .1) ((compand) .99) ((compand) .95))))
 	  
 	  (close-sound obi)
 	  (revert-sound s2i)
@@ -26473,52 +26473,52 @@ EDITS: 2
 	    (set! (sync s2i) 4)
 	    (select-all)
 	    (unless (= (selection-chans) 2)
-	      (snd-display ";selection-chans(2): ~A?" (selection-chans))
+	      (snd-display "selection-chans(2): ~A?" (selection-chans))
 	      (for-each
 	       (lambda (snd)
 		 (do ((i 0 (+ i 1)))
 		     ((= i (chans snd)))
 		   (if (selection-member? snd i)
-		       (snd-display ";  ~A[~A] at ~A" (short-file-name snd) i (selection-position snd i)))))
+		       (snd-display "  ~A[~A] at ~A" (short-file-name snd) i (selection-position snd i)))))
 	       (sounds)))
-	    (if (not (= (selection-srate) (srate s2i))) (snd-display ";selection-srate: ~A ~A?" (selection-srate) (srate s2i)))
+	    (if (not (= (selection-srate) (srate s2i))) (snd-display "selection-srate: ~A ~A?" (selection-srate) (srate s2i)))
 	    (when (= (selection-chans) 2)
 	      (swap-selection-channels)
 	      (if (or (fneq s1 (sample 1000 s2i 1))
 		      (fneq s2 (sample 1000 s2i 0)))
-		  (snd-display ";swap-selection-channels: ~A?" (list s1 s2 (sample 1000 s2i 0) (sample 1000 s2i 1))))))
+		  (snd-display "swap-selection-channels: ~A?" (list s1 s2 (sample 1000 s2i 0) (sample 1000 s2i 1))))))
 	  (revert-sound s2i)
 	  (close-sound s2i)))
 	  
       (let ((obi (open-sound "oboe.snd")))
 	(select-all)
 	(for-each forget-region (regions))
-	(if (not (null? (regions))) (snd-display ";no regions? ~A" (regions)))
+	(if (not (null? (regions))) (snd-display "no regions? ~A" (regions)))
 	(let ((id (make-region 100 200 obi 0)))
-	  (if (not (equal? (regions) (list id))) (snd-display ";make-region regions: ~A?" (regions))))
+	  (if (not (equal? (regions) (list id))) (snd-display "make-region regions: ~A?" (regions))))
 	
 	(revert-sound obi)
 	(let ((oldlen (framples obi)))
 	  (env-sound-interp '(0 0 1 1 2 0) 2.0 obi 0)
 	  (let ((newlen (framples obi)))
 	    (if (> (abs (- (* 2 oldlen) newlen)) 3)
-		(snd-display ";env-sound-interp: ~A ~A?" oldlen newlen))))
+		(snd-display "env-sound-interp: ~A ~A?" oldlen newlen))))
 	
 	(revert-sound obi)
 	(granulated-sound-interp '(0 0 1 .1 2 1) 1.0 0.2 '(0 0 1 1 2 0))
-	(if (not (= (edit-position obi 0) 1)) (snd-display ";granulated-sound-interp no-op 1?"))
-	(if (< (maxamp obi 0) .15) (snd-display ";granulated-sound-interp 1 maxamp: ~A" (maxamp obi 0)))
-	(if (> (abs (- (framples obi 0) 50828)) 1000) (snd-display ";granulated-sound-interp 1 framples: ~A" (framples obi 0)))
+	(if (not (= (edit-position obi 0) 1)) (snd-display "granulated-sound-interp no-op 1?"))
+	(if (< (maxamp obi 0) .15) (snd-display "granulated-sound-interp 1 maxamp: ~A" (maxamp obi 0)))
+	(if (> (abs (- (framples obi 0) 50828)) 1000) (snd-display "granulated-sound-interp 1 framples: ~A" (framples obi 0)))
 	(revert-sound obi)
 	(granulated-sound-interp '(0 0 1 1) 2.0)
-	(if (not (= (edit-position obi 0) 1)) (snd-display ";granulated-sound-interp no-op 2?"))
-	(if (< (maxamp obi 0) .145) (snd-display ";granulated-sound-interp 2 maxamp: ~A" (maxamp obi 0)))
-	(if (> (abs (- (framples obi 0) 101656)) 1000) (snd-display ";granulated-sound-interp 2 framples: ~A" (framples obi 0)))
+	(if (not (= (edit-position obi 0) 1)) (snd-display "granulated-sound-interp no-op 2?"))
+	(if (< (maxamp obi 0) .145) (snd-display "granulated-sound-interp 2 maxamp: ~A" (maxamp obi 0)))
+	(if (> (abs (- (framples obi 0) 101656)) 1000) (snd-display "granulated-sound-interp 2 framples: ~A" (framples obi 0)))
 	(revert-sound obi)
 	(granulated-sound-interp '(0 0 1 .1 2 1) 1.0 0.2 '(0 0 1 1 2 0) 0.02)
-	(if (not (= (edit-position obi 0) 1)) (snd-display ";granulated-sound-interp no-op 3?"))
-	(if (< (maxamp obi 0) .2) (snd-display ";granulated-sound-interp 3 maxamp: ~A" (maxamp obi 0)))
-	(if (> (abs (- (framples obi 0) 50828)) 1000) (snd-display ";granulated-sound-interp 3 framples: ~A" (framples obi 0)))
+	(if (not (= (edit-position obi 0) 1)) (snd-display "granulated-sound-interp no-op 3?"))
+	(if (< (maxamp obi 0) .2) (snd-display "granulated-sound-interp 3 maxamp: ~A" (maxamp obi 0)))
+	(if (> (abs (- (framples obi 0) 50828)) 1000) (snd-display "granulated-sound-interp 3 framples: ~A" (framples obi 0)))
 	
 	(close-sound obi))
 	
@@ -26534,7 +26534,7 @@ EDITS: 2
 			   (sound-interp reader (* len (+ 0.5 (* 0.5 (oscil osc)))))))
 	    (if (not (mus-arrays-equal? (channel->float-vector) (float-vector 0.000 0.020 0.079 0.172 0.291 0.427 0.569 0.706 0.825 0.919 
 									      0.979 1.000 0.981 0.923 0.831 0.712 0.576 0.434 0.298 0.177)))
-		(snd-display ";sound-interp: ~A" (channel->float-vector))))
+		(snd-display "sound-interp: ~A" (channel->float-vector))))
 	  (undo)
 	  
 	  (let ((osc (make-oscil :frequency 0.5 :initial-phase (+ pi (/ pi 2))))
@@ -26547,22 +26547,22 @@ EDITS: 2
 	  (env-sound-interp '(0 0 1 1))
 	  (if (not (mus-arrays-equal? (channel->float-vector) (float-vector 0.000 0.053 0.105 0.158 0.211 0.263 0.316 0.368 0.421 0.474 
 									    0.526 0.579 0.632 0.684 0.737 0.789 0.842 0.895 0.947 1.000)))
-	      (snd-display ";env-sound-interp no change: ~A" (channel->float-vector)))
+	      (snd-display "env-sound-interp no change: ~A" (channel->float-vector)))
 	  (undo)
 	  (env-sound-interp '(0 0 1 .95 2 0) 2.0)
 	  (if (not (mus-arrays-equal? (channel->float-vector) (float-vector 0.000 0.050 0.100 0.150 0.200 0.250 0.300 0.350 0.400 0.450 
 									    0.500 0.550 0.600 0.650 0.700 0.750 0.800 0.850 0.900 0.950
 									    1.000 0.950 0.900 0.850 0.800 0.750 0.700 0.650 0.600 0.550 
 									    0.500 0.450 0.400 0.350 0.300 0.250 0.200 0.150 0.100 0.050)))
-	      (snd-display ";env-sound-interp twice len and back: ~A" (channel->float-vector)))
+	      (snd-display "env-sound-interp twice len and back: ~A" (channel->float-vector)))
 	  (revert-sound ind)
 	  (set! (sample 10) .5)
 	  (remove-clicks)
-	  (if (fneq (sample 10) 0.0) (snd-display ";remove-clicks: ~A" (channel->float-vector)))
+	  (if (fneq (sample 10) 0.0) (snd-display "remove-clicks: ~A" (channel->float-vector)))
 	  (undo)
 	  (let ((vals (scan-channel (search-for-click))))
 	    (if (not (= vals 11))
-		(snd-display ";search-for-click: ~A" vals)))
+		(snd-display "search-for-click: ~A" vals)))
 	  (close-sound ind)))
       
       (let ((ind1 (new-sound :size 20 :comment "new-sound for sound-via-sound"))
@@ -26573,62 +26573,62 @@ EDITS: 2
 	(sound-via-sound ind1 ind2)
 	(let ((vals (channel->float-vector 0 20 ind1)))
 	  (if (not (mus-arrays-equal? vals (float-vector 0.95 0.90 0.85 0.80 0.75 0.70 0.65 0.60 0.55 0.50 0.45 0.40 0.35 0.30 0.25 0.20 0.15 0.10 0.05 0.00)))
-	      (snd-display ";sound-via-sound: ~A" vals)))
+	      (snd-display "sound-via-sound: ~A" vals)))
 	(clean-up-sound ind2)
 	(revert-sound ind1)
 	(let ((val -.5)) (map-channel (lambda (y) (set! val (+ val .05)))))
 	(let ((val (scan-channel (zero+))))
 	  (if (not (eqv? val 10))
-	      (snd-display ";zero+: ~A" val)))
+	      (snd-display "zero+: ~A" val)))
 	(set! (sample 8) .8)
 	(let ((val (scan-channel (next-peak))))
 	  (if (not (eqv? val 9))
-	      (snd-display ";next-peak: ~A" val)))
+	      (snd-display "next-peak: ~A" val)))
 	(let ((val (scan-channel (search-for-click))))
 	  (if (not (eqv? val 9))
-	      (snd-display ";search-for-click: ~A" val)))
-	(if (not (= (find-click 0) 8)) (snd-display ";find-click: ~A" (find-click 0)))
+	      (snd-display "search-for-click: ~A" val)))
+	(if (not (= (find-click 0) 8)) (snd-display "find-click: ~A" (find-click 0)))
 	(clean-up-sound ind1))
       
       (let ((id (open-sound "oboe.snd")))
 	(let ((fr (framples id 0))
 	      (mx (maxamp id 0)))
 	  (set! (framples id 0) 25000)
-	  (if (not (= (framples id 0) 25000)) (snd-display ";set-framples 25000: ~A?" (framples id 0)))
-	  (if (not (= (edit-position id 0) 1)) (snd-display ";set-framples 25000 edit: ~A?" (edit-position id 0)))
+	  (if (not (= (framples id 0) 25000)) (snd-display "set-framples 25000: ~A?" (framples id 0)))
+	  (if (not (= (edit-position id 0) 1)) (snd-display "set-framples 25000 edit: ~A?" (edit-position id 0)))
 	  (set! (framples id 0) 75000)
-	  (if (not (= (framples id 0) 75000)) (snd-display ";set-framples 75000: ~A?" (framples id 0)))
-	  (if (not (= (edit-position id 0) 2)) (snd-display ";set-framples 75000 edit: ~A?" (edit-position id 0)))
-	  (if (fneq (sample 30000 id 0) 0.0) (snd-display ";set-framples 75000 zeros: ~A?" (sample 30000 id 0)))
+	  (if (not (= (framples id 0) 75000)) (snd-display "set-framples 75000: ~A?" (framples id 0)))
+	  (if (not (= (edit-position id 0) 2)) (snd-display "set-framples 75000 edit: ~A?" (edit-position id 0)))
+	  (if (fneq (sample 30000 id 0) 0.0) (snd-display "set-framples 75000 zeros: ~A?" (sample 30000 id 0)))
 	  (set! (framples id 0) 0)
-	  (if (not (= (framples id 0) 0)) (snd-display ";set-framples 0: ~A?" (framples id 0)))
+	  (if (not (= (framples id 0) 0)) (snd-display "set-framples 0: ~A?" (framples id 0)))
 	  (set! (framples id 0) 100)
-	  (if (not (= (framples id 0) 100)) (snd-display ";set-framples 100: ~A?" (framples id 0)))
+	  (if (not (= (framples id 0) 100)) (snd-display "set-framples 100: ~A?" (framples id 0)))
 	  (revert-sound)
-	  (if (fneq (sample 30000 id 0) -0.0844) (snd-display ";revert from set-framples: ~A?" (sample 30000 id 0)))
-	  (if (not (= fr (framples id 0))) (snd-display ";revert set-framples: ~A != ~A?" (framples id 0) fr))
+	  (if (fneq (sample 30000 id 0) -0.0844) (snd-display "revert from set-framples: ~A?" (sample 30000 id 0)))
+	  (if (not (= fr (framples id 0))) (snd-display "revert set-framples: ~A != ~A?" (framples id 0) fr))
 	  (set! (maxamp id 0) .5)
-	  (if (fneq (maxamp id 0) .5) (snd-display ";set-maxamp: ~A?" (maxamp id 0)))
-	  (if (not (= (edit-position id 0) 1)) (snd-display ";set-maxamp edit: ~A?" (edit-position id 0)))
+	  (if (fneq (maxamp id 0) .5) (snd-display "set-maxamp: ~A?" (maxamp id 0)))
+	  (if (not (= (edit-position id 0) 1)) (snd-display "set-maxamp edit: ~A?" (edit-position id 0)))
 	  (set! (maxamp id 0) .1)
-	  (if (fneq (maxamp id 0) .1) (snd-display ";set-maxamp .1: ~A?" (maxamp id 0)))
-	  (if (not (= (edit-position id 0) 2)) (snd-display ";set-maxamp .1 edit: ~A?" (edit-position id 0)))
+	  (if (fneq (maxamp id 0) .1) (snd-display "set-maxamp .1: ~A?" (maxamp id 0)))
+	  (if (not (= (edit-position id 0) 2)) (snd-display "set-maxamp .1 edit: ~A?" (edit-position id 0)))
 	  (revert-sound)
-	  (if (fneq (maxamp id 0) mx) (snd-display ";maxamp after set: ~A ~A?" (maxamp id 0) mx))
+	  (if (fneq (maxamp id 0) mx) (snd-display "maxamp after set: ~A ~A?" (maxamp id 0) mx))
 	  (set! (x-position-slider id 0) .1)
-	  (if (fneq (x-position-slider id 0) .1) (snd-display ";set x-position-slider .1: ~A?" (x-position-slider id 0)))
+	  (if (fneq (x-position-slider id 0) .1) (snd-display "set x-position-slider .1: ~A?" (x-position-slider id 0)))
 	  
 	  (set! (x-zoom-slider id 0) .5)
-	  (if (fneq (x-zoom-slider id 0) .5) (snd-display ";set x-zoom-slider: ~A?" (x-zoom-slider id 0)))
+	  (if (fneq (x-zoom-slider id 0) .5) (snd-display "set x-zoom-slider: ~A?" (x-zoom-slider id 0)))
 	  (if (> (abs (- fr (* 2 (- (right-sample id 0) (left-sample id 0))))) 10)
-	      (snd-display ";set x-zoom-slider: ~A ~A -> ~A?" 
+	      (snd-display "set x-zoom-slider: ~A ~A -> ~A?" 
 			   (left-sample id 0) (right-sample id 0)
 			   (abs (- fr (* 2 (right-sample id 0) (left-sample id 0))))))
 	  (set! (y-position-slider id 0) .1)
 	  (if (and (not (provided? 'snd-gtk)) (fneq (y-position-slider id 0) .1))
-	      (snd-display ";set y-position-slider .1: ~A?" (y-position-slider id 0)))
+	      (snd-display "set y-position-slider .1: ~A?" (y-position-slider id 0)))
 	  (set! (y-zoom-slider id 0) .5)
-	  (if (fneq (y-zoom-slider id 0) .5) (snd-display ";set y-zoom-slider: ~A?" (y-zoom-slider id 0)))
+	  (if (fneq (y-zoom-slider id 0) .5) (snd-display "set y-zoom-slider: ~A?" (y-zoom-slider id 0)))
 	  (let ((vals (channel-amp-envs "oboe.snd" 0 10)))
 	    (if (not (and (mus-arrays-equal? (car vals)
 					     (float-vector -4.8828125e-4 -0.104156494140625 -0.125213623046875 -0.1356201171875 -0.138916015625 
@@ -26636,84 +26636,84 @@ EDITS: 2
 			  (mus-arrays-equal? (cadr vals)
 					     (float-vector 0.0 0.10955810546875 0.130706787109375 0.14068603515625 0.141204833984375 0.147247314453125 
 							   0.145904541015625 0.140289306640625 0.126861572265625 0.08172607421875))))
-		(snd-display ";channel-amp-envs: ~A?" vals)))
+		(snd-display "channel-amp-envs: ~A?" vals)))
 	
 	  (let ((len (length (channel-properties id 0))))
 	    (if (channel-property 'hiho id 0)
-		(snd-display ";channel-property 'hiho: ~A?" (channel-property 'hiho id 0)))
+		(snd-display "channel-property 'hiho: ~A?" (channel-property 'hiho id 0)))
 	    (set! (channel-property 'hiho id 0) 123)
 	    (if (not (= (channel-property 'hiho id 0) 123))
-		(snd-display ";channel-property 'hiho (123): ~A?" (channel-property 'hiho id 0)))
+		(snd-display "channel-property 'hiho (123): ~A?" (channel-property 'hiho id 0)))
 	    (if (channel-property 'hi id 0)
-		(snd-display ";channel-property 'hi: ~A?" (channel-property 'hi id 0)))
+		(snd-display "channel-property 'hi: ~A?" (channel-property 'hi id 0)))
 	    (set! (channel-property 'hi id 0) pi)
 	    (if (fneq (channel-property 'hi id 0) pi)
-		(snd-display ";channel-property 'hi (pi): ~A?" (channel-property 'hi id 0)))
+		(snd-display "channel-property 'hi (pi): ~A?" (channel-property 'hi id 0)))
 	    (if (not (= (channel-property 'hiho id 0) 123))
-		(snd-display ";channel-property 'second hiho (123): ~A?" (channel-property 'hiho id 0)))
+		(snd-display "channel-property 'second hiho (123): ~A?" (channel-property 'hiho id 0)))
 	    (if (not (= (length (channel-properties id 0)) (+ len 2)))
-		(snd-display ";channel-properties: ~A?" (channel-properties id 0))))
+		(snd-display "channel-properties: ~A?" (channel-properties id 0))))
 	  
 	  (let ((len (length (sound-properties id))))
 	    (if (sound-property 'hiho id)
-		(snd-display ";sound-property 'hiho: ~A?" (sound-property 'hiho id)))
+		(snd-display "sound-property 'hiho: ~A?" (sound-property 'hiho id)))
 	    (set! (sound-property 'hiho id) 123)
 	    (if (not (= (sound-property 'hiho id) 123))
-		(snd-display ";sound-property 'hiho (123): ~A?" (sound-property 'hiho id)))
+		(snd-display "sound-property 'hiho (123): ~A?" (sound-property 'hiho id)))
 	    (if (sound-property 'hi id)
-		(snd-display ";sound-property 'hi: ~A?" (sound-property 'hi id)))
+		(snd-display "sound-property 'hi: ~A?" (sound-property 'hi id)))
 	    (set! (sound-property 'hi id) pi)
 	    (if (fneq (sound-property 'hi id) pi)
-		(snd-display ";sound-property 'hi (pi): ~A?" (sound-property 'hi id)))
+		(snd-display "sound-property 'hi (pi): ~A?" (sound-property 'hi id)))
 	    (if (not (= (sound-property 'hiho id) 123))
-		(snd-display ";sound-property 'second hiho (123): ~A?" (sound-property 'hiho id)))
+		(snd-display "sound-property 'second hiho (123): ~A?" (sound-property 'hiho id)))
 	    (if (not (= (length (sound-properties id)) (+ len 2)))
-		(snd-display ";sound-properties: ~A?" (sound-properties id))))
+		(snd-display "sound-properties: ~A?" (sound-properties id))))
 	  
 	  (let ((tag (catch #t (lambda () (map-channel (lambda (y) (copy "hiho")))) (lambda args args))))
-	    (if (not (memq (car tag) '(bad-type wrong-type-arg))) (snd-display ";map-channel bad val: ~A" tag)))
+	    (if (not (memq (car tag) '(bad-type wrong-type-arg))) (snd-display "map-channel bad val: ~A" tag)))
 	  
 	  (close-sound id)))
 	
       (let ((ind (open-sound "oboe.snd")))
 	(if (not (null? (edit-properties ind 0 0)))
-	    (snd-display ";initial edit-properties: ~A?" (edit-properties ind 0 0)))
+	    (snd-display "initial edit-properties: ~A?" (edit-properties ind 0 0)))
 	(let ((tag (catch #t
 		     (lambda () (edit-properties ind 0 123))
 		     (lambda args (car args)))))
 	  (if (not (eq? tag 'no-such-edit))
-	      (snd-display ";edit-properties of non-existent edit: ~A" tag)))
+	      (snd-display "edit-properties of non-existent edit: ~A" tag)))
 	(let ((tag (catch #t
 		     (lambda () (edit-properties ind 1 0))
 		     (lambda args (car args)))))
 	  (if (not (eq? tag 'no-such-channel))
-	      (snd-display ";edit-properties of non-existent channel: ~A" tag)))
+	      (snd-display "edit-properties of non-existent channel: ~A" tag)))
 	(if (edit-property 'test-key ind 0 0)
-	    (snd-display ";edit-property never set: ~A?" (edit-property ind 0 0)))
+	    (snd-display "edit-property never set: ~A?" (edit-property ind 0 0)))
 	(set! (edit-property 'test-key ind 0 0) 3210)
 	(let ((val (edit-property 'test-key ind 0 0)))
 	  (if (not (eqv? val 3210))
-	      (snd-display ";edit-property 0: ~A" val)))
+	      (snd-display "edit-property 0: ~A" val)))
 	(pad-channel 0 10 ind 0)
 	(let ((val (edit-property 'test-key ind 0 0)))
 	  (if (not (eqv? val 3210))
-	      (snd-display ";edit-property look back to 0: ~A" val)))
+	      (snd-display "edit-property look back to 0: ~A" val)))
 	(let ((val (edit-property 'test-key ind 0 1)))
-	  (if val (snd-display ";edit-property current: ~A?" val)))
+	  (if val (snd-display "edit-property current: ~A?" val)))
 	(undo)
 	(let ((val (edit-property 'test-key ind 0 0)))
 	  (if (not (eqv? val 3210))
-	      (snd-display ";edit-property go back to 0: ~A" val)))
+	      (snd-display "edit-property go back to 0: ~A" val)))
 	(close-sound ind))
       (let ((ind (open-sound "oboe.snd")))
 	(if (edit-property 'test-key ind 0 0)
-	    (snd-display ";edit-property not cleared: ~A?" (edit-property ind 0 0)))
+	    (snd-display "edit-property not cleared: ~A?" (edit-property ind 0 0)))
 	(pad-channel 0 10 ind 0)
 	(set! (edit-property 'test-key ind 0 1) 'hiho)
 	(undo)
 	(pad-channel 0 10 ind 0)
 	(let ((val (edit-property 'test-key ind 0 1)))
-	  (if val (snd-display ";edit-property not erased upon re-edit: ~A?" val)))
+	  (if val (snd-display "edit-property not erased upon re-edit: ~A?" val)))
 	(close-sound ind))
       
       (let ((id (open-sound "oboe.snd")))
@@ -26721,35 +26721,35 @@ EDITS: 2
 	(key (char->integer #\x) 4 id)
 	(key (char->integer #\b) 4 id)
 	(let ((left (left-sample id)))
-	  (if (not (= left 1000)) (snd-display ";u1000: ~A" left)))
+	  (if (not (= left 1000)) (snd-display "u1000: ~A" left)))
 	(prefix-it 0 id)
 	(key (char->integer #\x) 4 id)
 	(key (char->integer #\b) 4 id)
 	(let ((left (left-sample id)))
-	  (if (not (= left 0)) (snd-display ";u0: ~A" left)))
+	  (if (not (= left 0)) (snd-display "u0: ~A" left)))
 	(set! (cursor id) 1234)
 	(prefix-it 0 id)
 	(key (char->integer #\f) 4 id)
 	(let ((cr (cursor id)))
-	  (if (not (= cr 1234)) (snd-display ";0f: ~A" cr)))
+	  (if (not (= cr 1234)) (snd-display "0f: ~A" cr)))
 	(prefix-it 100 id)
 	(key (char->integer #\f) 4 id)
 	(let ((cr (cursor id)))
-	  (if (not (= cr 1334)) (snd-display ";100f: ~A" cr)))
+	  (if (not (= cr 1334)) (snd-display "100f: ~A" cr)))
 	(prefix-it -100 id)
 	(key (char->integer #\f) 4 id)
 	(let ((cr (cursor id)))
-	  (if (not (= cr 1234)) (snd-display ";-100f: ~A" cr)))
+	  (if (not (= cr 1234)) (snd-display "-100f: ~A" cr)))
 	(prefix-it 1 id)
 	(key (char->integer #\f) 4 id)
 	(let ((cr (cursor id)))
-	  (if (not (= cr 1235)) (snd-display ";1f: ~A" cr)))
+	  (if (not (= cr 1235)) (snd-display "1f: ~A" cr)))
 	(prefix-it 1000 id)
 	(key (char->integer #\x) 4 id)
 	(key (char->integer #\p) 4 id)
 	(let ((left (left-sample id))
 	      (right (right-sample id)))
-	  (if (> (abs (- right left 1000)) 2) (snd-display ";1000xp: ~A:~A" left right)))
+	  (if (> (abs (- right left 1000)) 2) (snd-display "1000xp: ~A:~A" left right)))
 	(prefix-it 1 id)
 	(key (char->integer #\.) 0 id)
 	(key (char->integer #\2) 0 id)
@@ -26757,41 +26757,41 @@ EDITS: 2
 	(key (char->integer #\p) 4 id)
 	(let ((left (left-sample id))
 	      (right (right-sample id)))
-	  (if (> (abs (- right left (* 22050 1.2))) 2) (snd-display ";1.2xp: ~A:~A" left right)))
+	  (if (> (abs (- right left (* 22050 1.2))) 2) (snd-display "1.2xp: ~A:~A" left right)))
 	
 	(prefix-uit 1000 id)
 	(key (char->integer #\x) 4 id)
 	(key (char->integer #\b) 4 id)
 	(let ((left (left-sample id)))
-	  (if (not (member left '(1000 1001) =)) (snd-display ";uu1000: ~A" left)))
+	  (if (not (member left '(1000 1001) =)) (snd-display "uu1000: ~A" left)))
 	(prefix-uit 0 id)
 	(key (char->integer #\x) 4 id)
 	(key (char->integer #\b) 4 id)
 	(let ((left (left-sample id)))
-	  (if (not (= left 0)) (snd-display ";uu0: ~A" left)))
+	  (if (not (= left 0)) (snd-display "uu0: ~A" left)))
 	(set! (cursor id) 1234)
 	(prefix-uit 0 id)
 	(key (char->integer #\f) 4 id)
 	(let ((cr (cursor id)))
-	  (if (not (= cr 1234)) (snd-display ";u0f: ~A" cr)))
+	  (if (not (= cr 1234)) (snd-display "u0f: ~A" cr)))
 	(prefix-uit 100 id)
 	(key (char->integer #\f) 4 id)
 	(let ((cr (cursor id)))
-	  (if (not (= cr 1334)) (snd-display ";u100f: ~A" cr)))
+	  (if (not (= cr 1334)) (snd-display "u100f: ~A" cr)))
 	(prefix-uit -100 id)
 	(key (char->integer #\f) 4 id)
 	(let ((cr (cursor id)))
-	  (if (not (= cr 1234)) (snd-display ";u-100f: ~A" cr)))
+	  (if (not (= cr 1234)) (snd-display "u-100f: ~A" cr)))
 	(prefix-uit 1 id)
 	(key (char->integer #\f) 4 id)
 	(let ((cr (cursor id)))
-	  (if (not (= cr 1235)) (snd-display ";u1f: ~A" cr)))
+	  (if (not (= cr 1235)) (snd-display "u1f: ~A" cr)))
 	(prefix-uit 1000 id)
 	(key (char->integer #\x) 4 id)
 	(key (char->integer #\p) 4 id)
 	(let ((left (left-sample id))
 	      (right (right-sample id)))
-	  (if (> (abs (- right left 1000)) 2) (snd-display ";u1000xp: ~A:~A" left right)))
+	  (if (> (abs (- right left 1000)) 2) (snd-display "u1000xp: ~A:~A" left right)))
 	(prefix-uit 1 id)
 	(key (char->integer #\.) 0 id)
 	(key (char->integer #\2) 0 id)
@@ -26799,7 +26799,7 @@ EDITS: 2
 	(key (char->integer #\p) 4 id)
 	(let ((left (left-sample id))
 	      (right (right-sample id)))
-	  (if (> (abs (- right left (* 22050 1.2))) 2) (snd-display ";u1.2xp: ~A:~A" left right)))
+	  (if (> (abs (- right left (* 22050 1.2))) 2) (snd-display "u1.2xp: ~A:~A" left right)))
 	(close-sound id))
       (let ((id (open-sound (car (match-sound-files (lambda (file) 
 						      (and (>= (mus-sound-chans file) 2)
@@ -26815,7 +26815,7 @@ EDITS: 2
 	      (x1 (x-bounds id 1)))
 	  (if (or (fneq (car x0) (car x1)) 
 		  (fneq (cadr x0) (cadr x1)))
-	      (snd-display ";C-X v: ~A ~A?" x0 x1)))
+	      (snd-display "C-X v: ~A ~A?" x0 x1)))
 	(key (char->integer #\u) 4 id)
 	(key (char->integer #\1) 0 id)
 	(key (char->integer #\x) 4 id)
@@ -26836,56 +26836,56 @@ EDITS: 2
 	(set! (time-graph-style snd3 #t) graph-filled)
 	(do ((i 0 (+ i 1))) ((= i 4)) 
 	  (if (not (= (time-graph-style snd3 i) graph-filled)) 
-	      (snd-display ";set time-graph-style ~A ~A: ~A" snd3 i (time-graph-style snd3 i))))
+	      (snd-display "set time-graph-style ~A ~A: ~A" snd3 i (time-graph-style snd3 i))))
 	(set! (time-graph-style snd3 2) graph-lines)
 	(do ((i 0 (+ i 1))) ((= i 4)) 
 	  (if (not (or (= i 2)
 		       (= (time-graph-style snd3 i) graph-filled)))
-	      (snd-display ";set (2) time-graph-style ~A ~A: ~A" snd3 i (time-graph-style snd3 i))))
+	      (snd-display "set (2) time-graph-style ~A ~A: ~A" snd3 i (time-graph-style snd3 i))))
 	(if (not (= (time-graph-style snd3 2) graph-lines)) 
-	    (snd-display ";set time-graph-style (2): ~A" (time-graph-style snd3 2)))
+	    (snd-display "set time-graph-style (2): ~A" (time-graph-style snd3 2)))
 	(set! (time-graph-style snd3 #t) graph-dots)
 	(do ((i 0 (+ i 1))) ((= i 4)) 
 	  (if (not (= (time-graph-style snd3 i) graph-dots)) 
-	      (snd-display ";set time-graph-style (all): ~A" (time-graph-style snd3 i))))
+	      (snd-display "set time-graph-style (all): ~A" (time-graph-style snd3 i))))
 	(set! *graph-style* graph-dots-and-lines)
 	(do ((i 0 (+ i 1))) ((= i 4)) 
 	  (if (not (= (time-graph-style snd3 i) graph-dots-and-lines)) 
-	      (snd-display ";set time-graph-style (dal): ~A" (time-graph-style snd3 i))))
+	      (snd-display "set time-graph-style (dal): ~A" (time-graph-style snd3 i))))
 	
 	(set! (lisp-graph-style snd3 #t) graph-filled)
 	(do ((i 0 (+ i 1))) ((= i 4)) 
 	  (if (not (= (lisp-graph-style snd3 i) graph-filled)) 
-	      (snd-display ";set lisp-graph-style ~A ~A: ~A" snd3 i (lisp-graph-style snd3 i))))
+	      (snd-display "set lisp-graph-style ~A ~A: ~A" snd3 i (lisp-graph-style snd3 i))))
 	(set! (lisp-graph-style snd3 2) graph-lines)
 	(do ((i 0 (+ i 1))) ((= i 4)) 
 	  (if (not (or (= i 2)
 		       (= (lisp-graph-style snd3 i) graph-filled)))
-	      (snd-display ";set (2) lisp-graph-style ~A ~A: ~A" snd3 i (lisp-graph-style snd3 i))))
+	      (snd-display "set (2) lisp-graph-style ~A ~A: ~A" snd3 i (lisp-graph-style snd3 i))))
 	(if (not (= (lisp-graph-style snd3 2) graph-lines)) 
-	    (snd-display ";set lisp-graph-style (2): ~A" (lisp-graph-style snd3 2)))
+	    (snd-display "set lisp-graph-style (2): ~A" (lisp-graph-style snd3 2)))
 	(set! (lisp-graph-style snd3 #t) graph-lines)
 	(do ((i 0 (+ i 1))) ((= i 4)) 
 	  (if (not (= (time-graph-style snd3 i) graph-dots-and-lines)) 
-	      (snd-display ";set lisp -> time-graph-style (dal): ~A" (time-graph-style snd3 i))))
+	      (snd-display "set lisp -> time-graph-style (dal): ~A" (time-graph-style snd3 i))))
 	
 	(set! (transform-graph-style snd3 #t) graph-filled)
 	(do ((i 0 (+ i 1))) ((= i 4)) 
 	  (if (not (= (transform-graph-style snd3 i) graph-filled)) 
-	      (snd-display ";set transform-graph-style ~A ~A: ~A" snd3 i (transform-graph-style snd3 i))))
+	      (snd-display "set transform-graph-style ~A ~A: ~A" snd3 i (transform-graph-style snd3 i))))
 	(set! (transform-graph-style snd3 2) graph-lines)
 	(do ((i 0 (+ i 1))) ((= i 4)) 
 	  (if (not (or (= i 2)
 		       (= (transform-graph-style snd3 i) graph-filled)))
-	      (snd-display ";set (2) transform-graph-style ~A ~A: ~A" snd3 i (transform-graph-style snd3 i))))
+	      (snd-display "set (2) transform-graph-style ~A ~A: ~A" snd3 i (transform-graph-style snd3 i))))
 	(if (not (= (transform-graph-style snd3 2) graph-lines)) 
-	    (snd-display ";set transform-graph-style (2): ~A" (transform-graph-style snd3 2)))
+	    (snd-display "set transform-graph-style (2): ~A" (transform-graph-style snd3 2)))
 	(do ((i 0 (+ i 1))) ((= i 4)) 
 	  (if (not (= (time-graph-style snd3 i) graph-dots-and-lines)) 
-	      (snd-display ";set fft and lisp -> time-graph-style (dal): ~A" (time-graph-style snd3 i))))
+	      (snd-display "set fft and lisp -> time-graph-style (dal): ~A" (time-graph-style snd3 i))))
 	(do ((i 0 (+ i 1))) ((= i 4)) 
 	  (if (not (= (lisp-graph-style snd3 i) graph-lines)) 
-	      (snd-display ";set fft and lisp -> lisp-graph-style (dal): ~A" (lisp-graph-style snd3 i))))
+	      (snd-display "set fft and lisp -> lisp-graph-style (dal): ~A" (lisp-graph-style snd3 i))))
 	
 	(close-sound snd3))
       
@@ -26907,55 +26907,55 @@ EDITS: 2
 	    (hook-push play-hook 
 		       (lambda (hook)
 			 (set! (amp-control player) (env e))
-			 (if (fneq (amp-control ind) 1.0) (snd-display ";amp-control snd: ~A" (amp-control ind)))
+			 (if (fneq (amp-control ind) 1.0) (snd-display "amp-control snd: ~A" (amp-control ind)))
 			 (if (> (abs (- (amp-control player) (* 1.0 (/ samp len)))) 1.0)
-			     (snd-display ";amp-control player: ~A ~A" (amp-control player) (* 1.0 (/ samp len))))
+			     (snd-display "amp-control player: ~A ~A" (amp-control player) (* 1.0 (/ samp len))))
 			 (set! samp (+ samp *dac-size*))))
 	    (start-playing 1 (srate ind))))
-	(if (find-sound "1a.snd") (snd-display ";stop proc didn't close?")))
+	(if (find-sound "1a.snd") (snd-display "stop proc didn't close?")))
       
       (let ((ind (open-sound "pistol.snd")))
 	(if (selection-member? ind 0) 
-	    (snd-display ";initial selection-member? ~A ~A?" 
+	    (snd-display "initial selection-member? ~A ~A?" 
 			 (selection-member? ind 0)
 			 (selection?)))
 	(set! (selection-member? ind 0) #t)
 	(if (not (and (selection-member? ind 0)
 		      (selection-member? ind)))
-	    (snd-display ";selection-member? ~A ~A ~A?" 
+	    (snd-display "selection-member? ~A ~A ~A?" 
 			 (selection-member? ind 0)
 			 (selection-member? ind)
 			 (selection?)))
 	(if (not (= (selection-framples) 1))
-	    (snd-display ";initial selection-framples: ~A?" (selection-framples)))
+	    (snd-display "initial selection-framples: ~A?" (selection-framples)))
 	(set! (selection-framples) 1200)
 	(if (not (= (selection-framples) 1200))
-	    (snd-display ";selection-framples: 1200 ~A?" (selection-framples)))
+	    (snd-display "selection-framples: 1200 ~A?" (selection-framples)))
 	(delete-selection)
-	(if (selection?) (snd-display ";selection active after cut?"))
+	(if (selection?) (snd-display "selection active after cut?"))
 	(undo)
-	(if (not (selection?)) (snd-display ";selection inactive after undo?"))
+	(if (not (selection?)) (snd-display "selection inactive after undo?"))
 	(if (not (and (selection-member? ind 0)
 		      (selection-member? ind)))
-	    (snd-display ";selection-member? after undo ~A ~A ~A?" 
+	    (snd-display "selection-member? after undo ~A ~A ~A?" 
 			 (selection-member? ind 0)
 			 (selection-member? ind)
 			 (selection?)))
 	(if (not (and (= (selection-framples) 1200)
 		      (= (selection-position) 0)))
-	    (snd-display ";selection after undo: '(0 1200) '(~A ~A)?" 
+	    (snd-display "selection after undo: '(0 1200) '(~A ~A)?" 
 			 (selection-position) 
 			 (selection-framples)))
 	(set! (selection-position) 1000)
 	(if (not (and (= (selection-framples) 200)
 		      (= (selection-position) 1000)))
-	    (snd-display ";selection after reposition: '(1000 200) '(~A ~A)?" 
+	    (snd-display "selection after reposition: '(1000 200) '(~A ~A)?" 
 			 (selection-position) 
 			 (selection-framples)))
 	(reverse-selection)
 	(if (not (and (= (selection-framples) 200)
 		      (= (selection-position) 1000)))
-	    (snd-display ";selection after reverse: '(1000 200) '(~A ~A)?" 
+	    (snd-display "selection after reverse: '(1000 200) '(~A ~A)?" 
 			 (selection-position) 
 			 (selection-framples)))
 	
@@ -26963,14 +26963,14 @@ EDITS: 2
 	  (src-selection .5)
 	  (if (or (> (abs (- (framples ind) 200 old-framples)) 5)
 		  (> (abs (- (selection-framples) 400)) 5))
-	      (snd-display ";selection after src .5: '(1000 400) '(~A ~A)?" 
+	      (snd-display "selection after src .5: '(1000 400) '(~A ~A)?" 
 			   (selection-position) 
 			   (selection-framples)))
 	  (undo)
 	  (redo)
 	  (if (or (> (abs (- (framples ind) 200 old-framples)) 5)
 		  (> (abs (- (selection-framples) 400)) 5))
-	      (snd-display ";selection after src .5 with undo/redo: '(1000 400) '(~A ~A)?" 
+	      (snd-display "selection after src .5 with undo/redo: '(1000 400) '(~A ~A)?" 
 			   (selection-position) 
 			   (selection-framples)))
 	  (undo 3))
@@ -26988,7 +26988,7 @@ EDITS: 2
 		(fneq (src-duration '(0 2 1 1)) (src-duration '(0 1 1 2)))
 		(fneq (src-duration '(0 1 .5 2)) (src-duration '(0 1 1 2)))
 		(fneq (src-duration '(.5 1 .75 2)) (src-duration '(0 1 1 2))))
-	    (snd-display ";src-duration test1 ~A ~A ~A ~A"
+	    (snd-display "src-duration test1 ~A ~A ~A ~A"
 			 (src-duration '(0 1 1 2))
 			 (src-duration '(0 2 1 1))
 			 (src-duration '(0 1 .5 2))
@@ -26997,58 +26997,58 @@ EDITS: 2
 		(fneq (src-duration '(0 0.5 1 1)) (src-duration '(0 1 1 0.5)))
 		(fneq (src-duration '(0 1 .5 0.5)) (src-duration '(0 1 1 0.5)))
 		(fneq (src-duration '(.5 1 .75 0.5)) (src-duration '(0 1 1 0.5))))
-	    (snd-display ";src-duration test2 ~A ~A ~A ~A"
+	    (snd-display "src-duration test2 ~A ~A ~A ~A"
 			 (src-duration '(0 1 1 0.5))
 			 (src-duration '(0 0.5 1 1))
 			 (src-duration '(0 1 .5 0.5))
 			 (src-duration '(.5 1 .75 0.5))))
 	(if (or (fneq (src-duration '(0 1 1 1)) 1.0)
 		(fneq (src-duration '(0 2 1 2)) 0.5))
-	    (snd-display ";src-duration test3: ~A ~A" (src-duration '(0 1 1 1)) (src-duration '(0 2 1 2))))
+	    (snd-display "src-duration test3: ~A ~A" (src-duration '(0 1 1 1)) (src-duration '(0 2 1 2))))
 	(if (fneq (src-duration '(0 .5 .5 3 .6 1 .7 .1 .8 1.5 1 1)) 1.02474349685432)
-	    (snd-display ";src-duration test4 ~A" (src-duration '(0 .5 .5 3 .6 1 .7 .1 .8 1.5 1 1))))
+	    (snd-display "src-duration test4 ~A" (src-duration '(0 .5 .5 3 .6 1 .7 .1 .8 1.5 1 1))))
 	(if (fneq (src-duration '(0 1 1 2 2 1)) 0.693147180559945)
-	    (snd-display ";src-duration test5: ~A" (src-duration '(0 1 1 2 2 1))))
+	    (snd-display "src-duration test5: ~A" (src-duration '(0 1 1 2 2 1))))
 	(if (fneq (src-duration '(0 1 1 1)) 1.0)
-	    (snd-display ";src-duration test6: ~A" (src-duration '(0 1 1 1))))
+	    (snd-display "src-duration test6: ~A" (src-duration '(0 1 1 1))))
 	(if (fneq (src-duration '(0 2 1 2)) 0.5)
-	    (snd-display ";src-duration test7: ~A" (src-duration '(0 2 1 2))))
+	    (snd-display "src-duration test7: ~A" (src-duration '(0 2 1 2))))
 	(if (fneq (src-duration '(0 0.5 2 0.5)) 2.0)
-	    (snd-display ";src-duration test8: ~A" (src-duration '(0 0.5 2 0.5))))
+	    (snd-display "src-duration test8: ~A" (src-duration '(0 0.5 2 0.5))))
 	
 	(if (fneq (src-duration (src-fit-envelope '(0 1 1 2) 2.0)) 2.0)
-	    (snd-display ";src-fit-envelope 2.0: ~A" (src-duration (src-fit-envelope '(0 1 1 2) 2.0))))
+	    (snd-display "src-fit-envelope 2.0: ~A" (src-duration (src-fit-envelope '(0 1 1 2) 2.0))))
 	(if (fneq (src-duration (src-fit-envelope '(0 1 1 2) 0.5)) 0.5)
-	    (snd-display ";src-fit-envelope 0.5: ~A" (src-duration (src-fit-envelope '(0 1 1 2) 0.5))))
+	    (snd-display "src-fit-envelope 0.5: ~A" (src-duration (src-fit-envelope '(0 1 1 2) 0.5))))
 	
 	
 	(if (fneq (fm-parallel-component 100 100.0 '(100.0 300.0 400.0) '(1.0 0.5 0.25) () () #t) 0.69287)
-	    (snd-display ";fm-parallel-component 100: ~A" (fm-parallel-component 100 100.0 '(100.0 300.0 400.0) '(1.0 0.5 0.25) () () #t)))
+	    (snd-display "fm-parallel-component 100: ~A" (fm-parallel-component 100 100.0 '(100.0 300.0 400.0) '(1.0 0.5 0.25) () () #t)))
 	(if (fneq (fm-parallel-component 500 100.0 '(100.0 300.0 400.0) '(1.0 0.5 0.25) () () #t) 0.17047)
-	    (snd-display ";fm-parallel-component 500: ~A" (fm-parallel-component 500 100.0 '(100.0 300.0 400.0) '(1.0 0.5 0.25) () () #t)))
+	    (snd-display "fm-parallel-component 500: ~A" (fm-parallel-component 500 100.0 '(100.0 300.0 400.0) '(1.0 0.5 0.25) () () #t)))
 	
 	(if (fneq (cheby-hka 3 0.25 (float-vector 0 0 0 0 1.0 1.0)) -0.0732421875)
-	    (snd-display ";cheby-hka 0: ~A" (cheby-hka 3 0.25 (float-vector 0 0 0 0 1.0 1.0))))
+	    (snd-display "cheby-hka 0: ~A" (cheby-hka 3 0.25 (float-vector 0 0 0 0 1.0 1.0))))
 	(if (fneq (cheby-hka 2 0.25 (float-vector 0 0 0 0 1.0 1.0)) -0.234375)
-	    (snd-display ";cheby-hka 1: ~A" (cheby-hka 2 0.25 (float-vector 0 0 0 0 1.0 1.0))))
+	    (snd-display "cheby-hka 1: ~A" (cheby-hka 2 0.25 (float-vector 0 0 0 0 1.0 1.0))))
 	(if (fneq (cheby-hka 1 0.25 (float-vector 0 0 0 0 1.0 1.0)) 1.025390625)
-	    (snd-display ";cheby-hka 2: ~A" (cheby-hka 1 0.25 (float-vector 0 0 0 0 1.0 1.0))))
+	    (snd-display "cheby-hka 2: ~A" (cheby-hka 1 0.25 (float-vector 0 0 0 0 1.0 1.0))))
 	(if (fneq (cheby-hka 0 0.25 (float-vector 0 0 0 0 1.0 1.0)) 1.5234375)
-	    (snd-display ";cheby-hka 3: ~A" (cheby-hka 0 0.25 (float-vector 0 0 0 0 1.0 1.0))))
+	    (snd-display "cheby-hka 3: ~A" (cheby-hka 0 0.25 (float-vector 0 0 0 0 1.0 1.0))))
 	
 	(map-channel (lambda (y) (* .5 (oscil osc))))
 	(let ((vals (freq-peak 0 ind 8192)))
 	  (if (or (f4neq (car vals) 500.0)
 		  (fneq (cadr vals) 1.0))
-	      (snd-display ";src no-test: ~A" vals)))
+	      (snd-display "src no-test: ~A" vals)))
 	(for-each
 	 (lambda (sr dur)
 	   (src-sound sr 1.0 ind 0)
-	   (if (fneq (/ (framples ind 0) 10000.0) dur) (snd-display ";src-sound ~A: ~A (~A)" sr (/ (framples ind 0) 10000.0) dur))
+	   (if (fneq (/ (framples ind 0) 10000.0) dur) (snd-display "src-sound ~A: ~A (~A)" sr (/ (framples ind 0) 10000.0) dur))
 	   (let ((vals (freq-peak 0 ind 8192)))
 	     (if (or (f4neq (car vals) (* 500 sr))
 		     (fneq (cadr vals) 1.0))
-		 (snd-display ";src ~A freq: ~A" sr vals)))
+		 (snd-display "src ~A freq: ~A" sr vals)))
 	   (undo))
 	 '(2.0 0.5 5.0 0.2)
 	 '(0.5 2.0 0.2 5.0))
@@ -27056,14 +27056,14 @@ EDITS: 2
 	 (lambda (e f0 f1)
 	   (src-sound e 1.0 ind 0)
 	   (if (fneq (/ (framples ind 0) 10000.0) (src-duration e))
-	       (snd-display ";src-sound (env) ~A: ~A (~A)" 
+	       (snd-display "src-sound (env) ~A: ~A (~A)" 
 			    e (/ (framples ind 0) 10000.0) (src-duration e)))
 	   (let ((vals (freq-peak 0 ind 256)))
 	     (if (f5neq (car vals) f0)
-		 (snd-display ";src (env) 0 ~A freq: ~A" f0 vals)))
+		 (snd-display "src (env) 0 ~A freq: ~A" f0 vals)))
 	   (let ((vals (freq-peak (- (floor (* (src-duration e) 10000.0)) 256) ind 256)))
 	     (if (f5neq (car vals) f1)
-		 (snd-display ";src (env) 1 ~A freq: ~A" f1 vals)))
+		 (snd-display "src (env) 1 ~A freq: ~A" f1 vals)))
 	   (undo))
 	 '((0 1 1 2) (0 2 1 1) (0 1 1 2 2 1) (0 0.5 1 1) (0 0.5 1 2))
 	 '(500.0 1000.0 500.0 250.0 250.0)
@@ -27072,14 +27072,14 @@ EDITS: 2
 	 (lambda (e f0 f1)
 	   (src-sound (make-env e :length (framples)) 1.0 ind 0)
 	   (if (fneq (/ (framples ind 0) 10000.0) (src-duration e))
-	       (snd-display ";src-sound (make-env) ~A: ~A (~A)" 
+	       (snd-display "src-sound (make-env) ~A: ~A (~A)" 
 			    e (/ (framples ind 0) 10000.0) (src-duration e)))
 	   (let ((vals (freq-peak 0 ind 256)))
 	     (if (f5neq (car vals) f0)
-		 (snd-display ";src (make-env) 0 ~A freq: ~A" f0 vals)))
+		 (snd-display "src (make-env) 0 ~A freq: ~A" f0 vals)))
 	   (let ((vals (freq-peak (- (floor (* (src-duration e) 10000.0)) 256) ind 256)))
 	     (if (f5neq (car vals) f1)
-		 (snd-display ";src (env) 1 ~A freq: ~A" f1 vals)))
+		 (snd-display "src (env) 1 ~A freq: ~A" f1 vals)))
 	   (undo))
 	 '((0 1 1 2) (0 2 1 1) (0 1 1 2 2 1) (0 0.5 1 1) (0 0.5 1 2))
 	 '(500.0 1000.0 500.0 250.0 250.0)
@@ -27088,11 +27088,11 @@ EDITS: 2
 	(for-each
 	 (lambda (sr dur)
 	   (src-channel sr)
-	   (if (fneq (/ (framples ind 0) 10000.0) dur) (snd-display ";src-channel ~A: ~A (~A)" sr (/ (framples ind 0) 10000.0) dur))
+	   (if (fneq (/ (framples ind 0) 10000.0) dur) (snd-display "src-channel ~A: ~A (~A)" sr (/ (framples ind 0) 10000.0) dur))
 	   (let ((vals (freq-peak 0 ind 8192)))
 	     (if (or (f4neq (car vals) (* 500 sr))
 		     (fneq (cadr vals) 1.0))
-		 (snd-display ";src ~A freq: ~A" sr vals)))
+		 (snd-display "src ~A freq: ~A" sr vals)))
 	   (undo))
 	 '(2.0 0.5 5.0 0.2)
 	 '(0.5 2.0 0.2 5.0))
@@ -27100,14 +27100,14 @@ EDITS: 2
 	 (lambda (e f0 f1)
 	   (src-channel e)
 	   (if (fneq (/ (framples ind 0) 10000.0) (src-duration e))
-	       (snd-display ";src-channel (env) ~A: ~A (~A)" 
+	       (snd-display "src-channel (env) ~A: ~A (~A)" 
 			    e (/ (framples ind 0) 10000.0) (src-duration e)))
 	   (let ((vals (freq-peak 0 ind 256)))
 	     (if (f5neq (car vals) f0)
-		 (snd-display ";src-channel (env f0) ~A: ~A" f0 vals)))
+		 (snd-display "src-channel (env f0) ~A: ~A" f0 vals)))
 	   (let ((vals (freq-peak (- (floor (* (src-duration e) 10000.0)) 256) ind 256)))
 	     (if (f5neq (car vals) f1)
-		 (snd-display ";src-channel (env f1) ~A: ~A" f1 vals)))
+		 (snd-display "src-channel (env f1) ~A: ~A" f1 vals)))
 	   (undo))
 	 '((0 1 1 2) (0 2 1 1) (0 1 1 2 2 1) (0 0.5 1 1) (0 0.5 1 2))
 	 '(500.0 1000.0 500.0 250.0 250.0)
@@ -27117,16 +27117,16 @@ EDITS: 2
 	 (lambda (sr dur)
 	   (src-channel sr 1000 2500)
 	   (if (f4neq (framples ind 0) (+ 7500 (* dur 2500))) 
-	       (snd-display ";src-channel section: ~A ~A" (framples) (+ 7500 (* dur 2500))))
+	       (snd-display "src-channel section: ~A ~A" (framples) (+ 7500 (* dur 2500))))
 	   (let ((vals (freq-peak 0 ind 512)))
 	     (if (f5neq (car vals) 500.0)
-		 (snd-display ";src-channel section 0 ~A freq: ~A" sr vals)))
+		 (snd-display "src-channel section 0 ~A freq: ~A" sr vals)))
 	   (let ((vals (freq-peak (- (+ 7500 (floor (* dur 2500))) 512) ind 512)))
 	     (if (f5neq (car vals) 500.0)
-		 (snd-display ";src-channel section 8000 ~A freq: ~A" sr vals)))
+		 (snd-display "src-channel section 8000 ~A freq: ~A" sr vals)))
 	   (let ((vals (freq-peak 1000 ind 512)))
 	     (if (f5neq (car vals) (* sr 500.0))
-		 (snd-display ";src-channel section ~A freq: ~A" sr vals)))
+		 (snd-display "src-channel section ~A freq: ~A" sr vals)))
 	   (undo))
 	 '(2.0 0.5 5.0 0.2)
 	 '(0.5 2.0 0.2 5.0))
@@ -27135,14 +27135,14 @@ EDITS: 2
 	 (lambda (e)
 	   (src-channel (make-env e :length 2500) 1000 2500)
 	   (if (f3neq (framples ind 0) (+ 7500 (* (src-duration e) 2500)))
-	       (snd-display ";src-channel section (make-env duration) ~A: ~A (~A ~A)" 
+	       (snd-display "src-channel section (make-env duration) ~A: ~A (~A ~A)" 
 			    e (src-duration e) (framples) (+ 7500 (* (src-duration e) 2500))))
 	   (let ((vals (freq-peak 0 ind 256)))
 	     (if (f5neq (car vals) 500.0)
-		 (snd-display ";src-channel section (make-env e) ~A: ~A" e vals)))
+		 (snd-display "src-channel section (make-env e) ~A: ~A" e vals)))
 	   (let ((vals (freq-peak (- (+ 7500 (floor (* (src-duration e) 2500))) 256) ind 256)))
 	     (if (f5neq (car vals) 500.0)
-		 (snd-display ";src-channel section (make-env e) ~A: ~A" e vals)))
+		 (snd-display "src-channel section (make-env e) ~A: ~A" e vals)))
 	   (undo))
 	 '((0 1 1 2) (0 2 1 1) (0 1 1 2 2 1) (0 0.5 1 1) (0 0.5 1 2)))
 	
@@ -27151,16 +27151,16 @@ EDITS: 2
 	 (lambda (sr dur)
 	   (src-selection sr)
 	   (if (f3neq (framples ind 0) (+ 7500 (* dur 2500))) 
-	       (snd-display ";src-selection section: ~A ~A" (framples) (+ 7500 (* dur 2500))))
+	       (snd-display "src-selection section: ~A ~A" (framples) (+ 7500 (* dur 2500))))
 	   (let ((vals (freq-peak 0 ind 512)))
 	     (if (f5neq (car vals) 500.0)
-		 (snd-display ";src-selection section 0 ~A freq: ~A" sr vals)))
+		 (snd-display "src-selection section 0 ~A freq: ~A" sr vals)))
 	   (let ((vals (freq-peak (- (+ 7500 (floor (* dur 2500))) 512) ind 512)))
 	     (if (f5neq (car vals) 500.0)
-		 (snd-display ";src-selection section 8000 ~A freq: ~A" sr vals)))
+		 (snd-display "src-selection section 8000 ~A freq: ~A" sr vals)))
 	   (let ((vals (freq-peak 1000 ind 512)))
 	     (if (f5neq (car vals) (* sr 500.0))
-		 (snd-display ";src-selection section ~A freq: ~A" sr vals)))
+		 (snd-display "src-selection section ~A freq: ~A" sr vals)))
 	   (undo))
 	 '(2.0 0.5 5.0 0.2)
 	 '(0.5 2.0 0.2 5.0))
@@ -27169,14 +27169,14 @@ EDITS: 2
 	 (lambda (e)
 	   (src-selection (make-env e :length 2500))
 	   (if (f3neq (framples ind 0) (+ 7500 (* (src-duration e) 2500)))
-	       (snd-display ";src-selection section (make-env duration) ~A: ~A (~A ~A)" 
+	       (snd-display "src-selection section (make-env duration) ~A: ~A (~A ~A)" 
 			    e (src-duration e) (framples) (+ 7500 (* (src-duration e) 2500))))
 	   (let ((vals (freq-peak 0 ind 256)))
 	     (if (f5neq (car vals) 500.0)
-		 (snd-display ";src-selection section (make-env e) ~A: ~A" e vals)))
+		 (snd-display "src-selection section (make-env e) ~A: ~A" e vals)))
 	   (let ((vals (freq-peak (- (+ 7500 (floor (* (src-duration e) 2500))) 256) ind 256)))
 	     (if (f5neq (car vals) 500.0)
-		 (snd-display ";src-selection section (make-env e) ~A: ~A" e vals)))
+		 (snd-display "src-selection section (make-env e) ~A: ~A" e vals)))
 	   (undo))
 	 '((0 1 1 2) (0 2 1 1) (0 1 1 2 2 1) (0 0.5 1 1) (0 0.5 1 2)))
 	
@@ -27184,14 +27184,14 @@ EDITS: 2
 	 (lambda (e)
 	   (src-selection e)
 	   (if (f3neq (framples ind 0) (+ 7500 (* (src-duration e) 2500)))
-	       (snd-display ";src-selection section (env duration) ~A: ~A (~A ~A)" 
+	       (snd-display "src-selection section (env duration) ~A: ~A (~A ~A)" 
 			    e (src-duration e) (framples) (+ 7500 (* (src-duration e) 2500))))
 	   (let ((vals (freq-peak 0 ind 256)))
 	     (if (f5neq (car vals) 500.0)
-		 (snd-display ";src-selection section (env e) ~A: ~A" e vals)))
+		 (snd-display "src-selection section (env e) ~A: ~A" e vals)))
 	   (let ((vals (freq-peak (- (+ 7500 (floor (* (src-duration e) 2500))) 256) ind 256)))
 	     (if (f5neq (car vals) 500.0)
-		 (snd-display ";src-selection section (env f1) ~A: ~A" e vals)))
+		 (snd-display "src-selection section (env f1) ~A: ~A" e vals)))
 	   (undo))
 	 '((0 1 1 2) (0 2 1 1) (0 1 1 2 2 1) (0 0.5 1 1) (0 0.5 1 2)))
 	
@@ -27206,7 +27206,7 @@ EDITS: 2
 	(set! (sample 10 ind) 1.0)
 	(smooth-selection)
 	(if (not (mus-arrays-equal? (float-vector-subseq (channel->float-vector 0 11 ind) 0 9) (float-vector-subseq (smoother 0.0 1.0) 0 9)))
-	    (snd-display ";smooth-selection: ~A ~A?" (channel->float-vector 0 11 ind) (smoother 0.0 1.0)))
+	    (snd-display "smooth-selection: ~A ~A?" (channel->float-vector 0 11 ind) (smoother 0.0 1.0)))
 	(revert-sound)
 	(do ((i 0 (+ i 1)))
 	    ((= i 10)) 
@@ -27215,7 +27215,7 @@ EDITS: 2
 	(set! (sample 10 ind) 0.0)
 	(smooth-selection)
 	(if (not (mus-arrays-equal? (float-vector-subseq (channel->float-vector 0 11 ind) 0 9) (float-vector-subseq (smoother 1.0 0.0) 0 9)))
-	    (snd-display ";smooth-selection back: ~A ~A?" (channel->float-vector 0 11 ind) (smoother 1.0 0.0)))
+	    (snd-display "smooth-selection back: ~A ~A?" (channel->float-vector 0 11 ind) (smoother 1.0 0.0)))
 	(close-sound ind))
       
       (let ((ind (new-sound "hi.snd")))
@@ -27225,7 +27225,7 @@ EDITS: 2
 	(set! (sample 10 ind) 1.0)
 	(smooth-sound 0 10 ind)
 	(if (not (mus-arrays-equal? (float-vector-subseq (channel->float-vector 0 11 ind) 0 9) (float-vector-subseq (smoother 0.0 1.0) 0 9)))
-	    (snd-display ";smooth-sound: ~A ~A?" (channel->float-vector 0 11 ind) (smoother 0.0 1.0)))
+	    (snd-display "smooth-sound: ~A ~A?" (channel->float-vector 0 11 ind) (smoother 0.0 1.0)))
 	(revert-sound)
 	(do ((i 0 (+ i 1)))
 	    ((= i 10)) 
@@ -27233,7 +27233,7 @@ EDITS: 2
 	(set! (sample 10 ind) 0.0)
 	(smooth-sound 0 10 ind)
 	(if (not (mus-arrays-equal? (float-vector-subseq (channel->float-vector 0 11 ind) 0 9) (float-vector-subseq (smoother 1.0 0.0) 0 9)))
-	    (snd-display ";smooth-sound back: ~A ~A?" (channel->float-vector 0 11 ind) (smoother 1.0 0.0)))
+	    (snd-display "smooth-sound back: ~A ~A?" (channel->float-vector 0 11 ind) (smoother 1.0 0.0)))
 	(close-sound ind))
       (if (file-exists? "hi.snd") (delete-file "hi.snd"))
       
@@ -27246,9 +27246,9 @@ EDITS: 2
 	(key (char->integer #\0) 0 ind)
 	(key (char->integer #\o) 4 ind)
 	(if (not (= (framples ind) (+ 100 len)))
-	    (snd-display ";C-o len: ~A? " (framples)))
+	    (snd-display "C-o len: ~A? " (framples)))
 	(let ((data (float-vector-peak (channel->float-vector 1200 100 ind))))
-	  (if (fneq data 0.0) (snd-display ";C-o: ~A?" data)))
+	  (if (fneq data 0.0) (snd-display "C-o: ~A?" data)))
 	(revert-sound ind)
 	(set! (cursor ind) 1200)
 	(key (char->integer #\u) 4 ind)
@@ -27257,16 +27257,16 @@ EDITS: 2
 	(key (char->integer #\0) 0 ind)
 	(key (char->integer #\z) 4 ind)
 	(if (not (= (framples ind) len))
-	    (snd-display ";C-z len: ~A? " (framples)))
+	    (snd-display "C-z len: ~A? " (framples)))
 	(let ((data (float-vector-peak (channel->float-vector 1200 100 ind))))
-	  (if (fneq data 0.0) (snd-display ";C-z: ~A?" data)))
+	  (if (fneq data 0.0) (snd-display "C-z: ~A?" data)))
 	(set! (cursor ind) 0)
 	(key (char->integer #\u) 4 ind)
 	(key (char->integer #\3) 0 ind)
 	(key (char->integer #\.) 0 ind)
 	(key (char->integer #\0) 0 ind)
 	(key (char->integer #\z) 4 ind)
-	(if (fneq (maxamp ind 0) 0.0) (snd-display ";C-z full: ~A" (maxamp)))
+	(if (fneq (maxamp ind 0) 0.0) (snd-display "C-z full: ~A" (maxamp)))
 	(revert-sound ind)
 	(set! (cursor ind) 1200)
 	(key (char->integer #\u) 4 ind)
@@ -27275,9 +27275,9 @@ EDITS: 2
 	(key (char->integer #\0) 0 ind)
 	(key (char->integer #\o) 4 ind)
 	(if (not (= (framples ind) (+ (srate ind) len)))
-	    (snd-display ";C-o 1.0 len: ~A? " (framples)))
+	    (snd-display "C-o 1.0 len: ~A? " (framples)))
 	(let ((data (float-vector-peak (channel->float-vector 1200 (srate ind) ind))))
-	  (if (fneq data 0.0) (snd-display ";C-o 1.0: ~A?" data)))
+	  (if (fneq data 0.0) (snd-display "C-o 1.0: ~A?" data)))
 	(revert-sound ind)
 	(set! (cursor ind) 1200)
 	(key (char->integer #\u) 4 ind)
@@ -27286,9 +27286,9 @@ EDITS: 2
 	(key (char->integer #\0) 0 ind)
 	(key (char->integer #\z) 4 ind)
 	(if (not (= (framples ind) len))
-	    (snd-display ";C-z 1.0 len: ~A? " (framples)))
+	    (snd-display "C-z 1.0 len: ~A? " (framples)))
 	(let ((data (float-vector-peak (channel->float-vector 1200 (srate ind) ind))))
-	  (if (fneq data 0.0) (snd-display ";C-z 1.0: ~A?" data)))
+	  (if (fneq data 0.0) (snd-display "C-z 1.0: ~A?" data)))
 	(close-sound ind))
       
       (let ((ind (open-sound "2.snd")))
@@ -27302,7 +27302,7 @@ EDITS: 2
 		      (= (selection-position ind 1) 0)
 		      (= (selection-framples ind 0) (framples ind 0))
 		      (= (selection-framples ind 1) (framples ind 1))))
-	    (snd-display ";sync selection via <-: ~A ~A ~A ~A ~A ~A"
+	    (snd-display "sync selection via <-: ~A ~A ~A ~A ~A ~A"
 			 (selection-member? ind 0) (selection-member? ind 1)
 			 (selection-position ind 0) (selection-position ind 1)
 			 (selection-framples ind 0) (selection-framples ind 1)))
@@ -27314,35 +27314,35 @@ EDITS: 2
 		      (= (selection-position ind 1) 0)
 		      (= (selection-framples ind 0) (framples ind 0))
 		      (= (selection-framples ind 1) (framples ind 1))))
-	    (snd-display ";sync selection via ->: ~A ~A ~A ~A ~A ~A"
+	    (snd-display "sync selection via ->: ~A ~A ~A ~A ~A ~A"
 			 (selection-member? ind 0) (selection-member? ind 1)
 			 (selection-position ind 0) (selection-position ind 1)
 			 (selection-framples ind 0) (selection-framples ind 1)))
 	(set! (cursor ind 1) 0)
 	(set! (cursor ind 0) 1000)
-	(if (not (= (cursor ind 1) 1000)) (snd-display ";syncd cursors: ~A ~A" (cursor ind 0) (cursor ind 1)))
+	(if (not (= (cursor ind 1) 1000)) (snd-display "syncd cursors: ~A ~A" (cursor ind 0) (cursor ind 1)))
 	(close-sound ind))
       
       (let ((ind (open-sound "2a.snd")))
 	(let ((reg (make-region 100 200 ind #t)))
 	  (if (not (= (region-chans reg) 2))
-	      (snd-display ";make-region #t for chan in 2a.snd: ~A chans" (region-chans reg)))
+	      (snd-display "make-region #t for chan in 2a.snd: ~A chans" (region-chans reg)))
 	  (mix-region reg 1000)
 	  (if (not (and (= (edit-position ind 0) 1)
 			(= (edit-position ind 1) 0)))
-	      (snd-display ";mix-region default mix: ~A ~A" (edit-position ind 0) (edit-position ind 1)))
+	      (snd-display "mix-region default mix: ~A ~A" (edit-position ind 0) (edit-position ind 1)))
 	  (undo)
 	  (set! (sync ind) 1)
 	  (mix-region reg 1000)
 	  (if (not (and (= (edit-position ind 0) 1)
 			(= (edit-position ind 1) 1)))
-	      (snd-display ";mix-region sync mix: ~A ~A" (edit-position ind 0) (edit-position ind 1)))
+	      (snd-display "mix-region sync mix: ~A ~A" (edit-position ind 0) (edit-position ind 1)))
 	  (undo)
 	  (set! (sync ind) 0)
 	  (mix-region reg 1000 ind 1)
 	  (if (not (and (= (edit-position ind 0) 0)
 			(= (edit-position ind 1) 1)))
-	      (snd-display ";mix-region mix -> chan 1: ~A ~A" (edit-position ind 0) (edit-position ind 1)))
+	      (snd-display "mix-region mix -> chan 1: ~A ~A" (edit-position ind 0) (edit-position ind 1)))
 	  (revert-sound ind))
 	
 	(set! (selection-member? #t #t) #f)
@@ -27353,24 +27353,24 @@ EDITS: 2
 	(set! (selection-framples ind 0) 100)
 	(set! (selection-framples ind 1) 100)
 	(if (not (= (selection-chans) 2))
-	    (snd-display ";laboriously make 2 chan selection: ~A" (selection-chans)))
+	    (snd-display "laboriously make 2 chan selection: ~A" (selection-chans)))
 	
 	(mix-selection 100)
 	(if (not (and (= (edit-position ind 0) 1)
 		      (= (edit-position ind 1) 0)))
-	    (snd-display ";mix-selection default mix: ~A ~A" (edit-position ind 0) (edit-position ind 1)))
+	    (snd-display "mix-selection default mix: ~A ~A" (edit-position ind 0) (edit-position ind 1)))
 	(undo)
 	(set! (sync ind) 1)
 	(mix-selection 100)
 	(if (not (and (= (edit-position ind 0) 1)
 		      (= (edit-position ind 1) 1)))
-	    (snd-display ";mix-selection sync mix: ~A ~A" (edit-position ind 0) (edit-position ind 1)))
+	    (snd-display "mix-selection sync mix: ~A ~A" (edit-position ind 0) (edit-position ind 1)))
 	(undo)
 	(set! (sync ind) 0)
 	(mix-selection 100 ind 1)
 	(if (not (and (= (edit-position ind 0) 0)
 		      (= (edit-position ind 1) 1)))
-	    (snd-display ";mix-selection mix -> chan 1: ~A ~A" (edit-position ind 0) (edit-position ind 1)))
+	    (snd-display "mix-selection mix -> chan 1: ~A ~A" (edit-position ind 0) (edit-position ind 1)))
 	
 	(close-sound ind))
       
@@ -27389,28 +27389,28 @@ EDITS: 2
 	
 	(revert-sound ind)
 	(make-selection 1200 1200)
-	(if (not (selection?)) (snd-display ";no selection from 1 samp region?"))
-	(if (not (= (selection-framples) 1)) (snd-display ";1 samp selection: ~A samps?" (selection-framples)))
+	(if (not (selection?)) (snd-display "no selection from 1 samp region?"))
+	(if (not (= (selection-framples) 1)) (snd-display "1 samp selection: ~A samps?" (selection-framples)))
 	(scale-selection-to 1.0)
-	(if (fneq (sample 1200 ind 0) 1.0) (snd-display ";scale 1 samp selection: ~A?" (sample 1200 ind 0)))
+	(if (fneq (sample 1200 ind 0) 1.0) (snd-display "scale 1 samp selection: ~A?" (sample 1200 ind 0)))
 	
 	(revert-sound ind)
 	(let ((id (make-region 500 1000)))
 	  (src-selection .5)
-	  (if (> (abs (- (region-framples id) 500)) 1) (snd-display ";region-framples after src-selection: ~A?" (region-framples id)))
+	  (if (> (abs (- (region-framples id) 500)) 1) (snd-display "region-framples after src-selection: ~A?" (region-framples id)))
 	  (let ((reg-mix-id (car (mix-region id 1500 ind 0))))
 	    (if (not (= (mix-length reg-mix-id) (region-framples id)))
-		(snd-display ";mix-region: ~A != ~A?" (region-framples id) (mix-length reg-mix-id)))
+		(snd-display "mix-region: ~A != ~A?" (region-framples id) (mix-length reg-mix-id)))
 	    (if (not (equal? (mix-home reg-mix-id) (list ind 0 #f 0)))
-		(snd-display ";mix-region mix-home ~A (~A 0 #f 0)?" (mix-home reg-mix-id) ind))
+		(snd-display "mix-region mix-home ~A (~A 0 #f 0)?" (mix-home reg-mix-id) ind))
 	    (let ((sel-mix-id (car (mix-selection 2500 ind 0))))
 	      (if (not (= (selection-framples) (mix-length sel-mix-id)))
-		  (snd-display ";mix-selection framples: ~A != ~A?" (selection-framples) (mix-length sel-mix-id)))
+		  (snd-display "mix-selection framples: ~A != ~A?" (selection-framples) (mix-length sel-mix-id)))
 	      (if (> (abs (- (* 2 (mix-length reg-mix-id)) (mix-length sel-mix-id))) 3)
-		  (snd-display ";mix selection and region: ~A ~A (~A ~A)?" 
+		  (snd-display "mix selection and region: ~A ~A (~A ~A)?" 
 			       (mix-length reg-mix-id) (mix-length sel-mix-id) (region-framples id) (selection-framples)))
 	      (if (not (equal? (mix-home sel-mix-id) (list ind 0 #f 0)))
-		  (snd-display ";mix-selection mix-home: ~A (~A 0 #f 0)?" (mix-home sel-mix-id) ind)))))
+		  (snd-display "mix-selection mix-home: ~A (~A 0 #f 0)?" (mix-home sel-mix-id) ind)))))
 	(insert-selection 3000 ind 0)
 	(insert-selection 3000 ind)
 	(mix-selection 3000 ind)
@@ -27440,171 +27440,171 @@ EDITS: 2
 	     (sr (* 2 (srate oboe))))
 	(save-sound-as "test.aif" oboe :header-type mus-aifc)
 	(let ((oboe-aif (open-sound "test.aif")))
-	  (if (not (= (header-type oboe-aif) mus-aifc)) (snd-display ";oboe-aif header: ~A?" (mus-header-type-name (header-type oboe-aif))))
+	  (if (not (= (header-type oboe-aif) mus-aifc)) (snd-display "oboe-aif header: ~A?" (mus-header-type-name (header-type oboe-aif))))
 	  (set! (srate oboe-aif) (* sr 2))
-	  (if (fneq (* 2 sr) (srate oboe-aif)) (snd-display ";set! srate: ~A ~A" sr (srate oboe-aif)))
+	  (if (fneq (* 2 sr) (srate oboe-aif)) (snd-display "set! srate: ~A ~A" sr (srate oboe-aif)))
 	  (set! (header-type oboe-aif) mus-next)
-	  (if (not (= (header-type oboe-aif) mus-next)) (snd-display ";set! header: ~A?" (mus-header-type-name (header-type oboe-aif))))
+	  (if (not (= (header-type oboe-aif) mus-next)) (snd-display "set! header: ~A?" (mus-header-type-name (header-type oboe-aif))))
 	  (set! (data-location oboe-aif) 28)
-	  (if (not (= (data-location oboe-aif) 28)) (snd-display ";set! data-location: ~A?" (data-location oboe-aif)))
+	  (if (not (= (data-location oboe-aif) 28)) (snd-display "set! data-location: ~A?" (data-location oboe-aif)))
 	  (set! (sample-type oboe-aif) mus-mulaw)
-	  (if (not (= (sample-type oboe-aif) mus-mulaw)) (snd-display ";set! format: ~A?" (mus-sample-type-name (sample-type oboe-aif))))
+	  (if (not (= (sample-type oboe-aif) mus-mulaw)) (snd-display "set! format: ~A?" (mus-sample-type-name (sample-type oboe-aif))))
 	  (save-sound-as "test.aif" oboe-aif 22050 mus-bshort mus-aifc 0)
 	  (close-sound oboe-aif)
 	  (delete-file "test.aif")
 	  (set! (selected-sound) a4)
-	  (if (not (equal? (selected-sound) a4)) (snd-display ";set! selected-sound: ~A ~A?" (selected-sound) a4))
+	  (if (not (equal? (selected-sound) a4)) (snd-display "set! selected-sound: ~A ~A?" (selected-sound) a4))
 	  (set! (selected-channel) 2)
-	  (if (not (= (selected-channel a4) 2)) (snd-display ";set! selected-channel: ~A?" (selected-channel a4)))
+	  (if (not (= (selected-channel a4) 2)) (snd-display "set! selected-channel: ~A?" (selected-channel a4)))
 	  (set! (selected-channel a4) 3)
-	  (if (not (= (selected-channel a4) 3)) (snd-display ";set! selected-channel a4: ~A?" (selected-channel a4)))
+	  (if (not (= (selected-channel a4) 3)) (snd-display "set! selected-channel a4: ~A?" (selected-channel a4)))
 	  (close-sound a4)
 	  (close-sound oboe)))
       
       (let ((v1 (envelope-interp 1.0 '(0 0 2.0 1.0))))
-	(if (fneq v1 0.5) (snd-display ";envelope-interp(1): ~F (0.5)?" v1)))
+	(if (fneq v1 0.5) (snd-display "envelope-interp(1): ~F (0.5)?" v1)))
       (let ((v2 (envelope-interp 1.0 '(0 0.0 1 1.0 2 0.0))))
-	(if (fneq v2 1.0) (snd-display ";envelope-interp(2): ~F (1.0)?" v2)))
+	(if (fneq v2 1.0) (snd-display "envelope-interp(2): ~F (1.0)?" v2)))
       (let ((v3 (envelope-interp 2.0 '(0 0.0 1 1.0))))
-	(if (fneq v3 1.0) (snd-display ";envelope-interp(3): ~F (1.0)?" v3)))
+	(if (fneq v3 1.0) (snd-display "envelope-interp(3): ~F (1.0)?" v3)))
       (let ((v4 (envelope-interp 0.0 '(1 .5 2 0))))
-	(if (fneq v4 0.5) (snd-display ";envelope-interp(4): ~F (0.5)?" v4)))
+	(if (fneq v4 0.5) (snd-display "envelope-interp(4): ~F (0.5)?" v4)))
       
       (let ((v1 (envelope-interp 0.0 '(-1 0  0 1  1 -1))))
-	(if (fneq v1 1.0) (snd-display ";envelope-interp(1a): ~A" v1)))
+	(if (fneq v1 1.0) (snd-display "envelope-interp(1a): ~A" v1)))
       (let ((v2 (envelope-interp -0.5 '(-1 0  0 1  1 -1))))
-	(if (fneq v2 0.5) (snd-display ";envelope-interp(2a): ~A" v2)))
+	(if (fneq v2 0.5) (snd-display "envelope-interp(2a): ~A" v2)))
       (let ((v3 (envelope-interp -0.5 '(-1 -1  0 1  1 -1))))
-	(if (fneq v3 0.0) (snd-display ";envelope-interp(3a): ~A" v3)))
+	(if (fneq v3 0.0) (snd-display "envelope-interp(3a): ~A" v3)))
       (let ((v4 (envelope-interp -0.5 '(-1 -1  1 1))))
-	(if (fneq v4 -0.5) (snd-display ";envelope-interp(4a): ~A" v4)))
+	(if (fneq v4 -0.5) (snd-display "envelope-interp(4a): ~A" v4)))
       (let ((v5 (envelope-interp -1.5 '(-1 -1  1 1))))
-	(if (fneq v5 -1.0) (snd-display ";envelope-interp(5a): ~A" v5)))
+	(if (fneq v5 -1.0) (snd-display "envelope-interp(5a): ~A" v5)))
       (let ((v6 (envelope-interp 1.5 '(-1 -1  1 1))))
-	(if (fneq v6 1.0) (snd-display ";envelope-interp(6a): ~A" v6)))
+	(if (fneq v6 1.0) (snd-display "envelope-interp(6a): ~A" v6)))
       
       (let ((v1 (multiply-envelopes '(0.0 0.0 2.0 0.5) '(0.0 0.0 1.0 2.0 2.0 1.0)))
 	    (v2 (window-envelope 1.0 3.0 '(0.0 0.0 5.0 1.0))))
-	(if (not (feql v1 '(0.0 0.0 0.5 0.5 1.0 0.5))) (snd-display ";multiply-envelopes: ~A?" v1))
-	(if (not (feql v2 '(1.0 0.2 3.0 0.6))) (snd-display ";window-envelope: ~A?" v2)))
+	(if (not (feql v1 '(0.0 0.0 0.5 0.5 1.0 0.5))) (snd-display "multiply-envelopes: ~A?" v1))
+	(if (not (feql v2 '(1.0 0.2 3.0 0.6))) (snd-display "window-envelope: ~A?" v2)))
       
       (if (fneq (envelope-interp .1 '(0 0 1 1)) 0.1) 
-	  (snd-display ";envelope-interp .1 -> ~A?" (envelope-interp .1 '(0 0 1 1))))
+	  (snd-display "envelope-interp .1 -> ~A?" (envelope-interp .1 '(0 0 1 1))))
       (if (fneq (envelope-interp .1 '(0 0 1 1) 32.0) 0.01336172) 
-	  (snd-display ";envelope-interp .013 -> ~A?" (envelope-interp .1 '(0 0 1 1) 32.0)))
+	  (snd-display "envelope-interp .013 -> ~A?" (envelope-interp .1 '(0 0 1 1) 32.0)))
       (if (fneq (envelope-interp .1 '(0 0 1 1) .012) 0.36177473) 
-	  (snd-display ";envelope-interp .361 -> ~A?" (envelope-interp .1 '(0 0 1 1) .012))) 
+	  (snd-display "envelope-interp .361 -> ~A?" (envelope-interp .1 '(0 0 1 1) .012))) 
       (if (fneq (envelope-interp .3 '(0 0 .5 1 1 0)) .6)
-	  (snd-display ";envelope-interp .3 '(0 0 .5 1 1 0)) -> ~A" (envelope-interp .3 '(0 0 .5 1 1 0))))
+	  (snd-display "envelope-interp .3 '(0 0 .5 1 1 0)) -> ~A" (envelope-interp .3 '(0 0 .5 1 1 0))))
       
       (if (fneq (envelope-interp .9 '(0 0 1 1)) 0.9) 
-	  (snd-display ";envelope-interp .9 -> ~A?" (envelope-interp .9 '(0 0 1 1))))
+	  (snd-display "envelope-interp .9 -> ~A?" (envelope-interp .9 '(0 0 1 1))))
       (if (fneq (envelope-interp .9 '(0 0 1 1) 32.0) 0.698) 
-	  (snd-display ";envelope-interp .698 -> ~A?" (envelope-interp .9 '(0 0 1 1) 32.0)))
+	  (snd-display "envelope-interp .698 -> ~A?" (envelope-interp .9 '(0 0 1 1) 32.0)))
       (if (fneq (envelope-interp .9 '(0 0 1 1) .012) 0.993) 
-	  (snd-display ";envelope-interp .993 -> ~A?" (envelope-interp .9 '(0 0 1 1) .012))) 
+	  (snd-display "envelope-interp .993 -> ~A?" (envelope-interp .9 '(0 0 1 1) .012))) 
       
       (if (fneq (envelope-interp 1.1 '(0 0 1 0 2 1)) 0.1) 
-	  (snd-display ";envelope-interp .1 (2) -> ~A?" (envelope-interp 1.1 '(0 0 1 0 2 1))))
+	  (snd-display "envelope-interp .1 (2) -> ~A?" (envelope-interp 1.1 '(0 0 1 0 2 1))))
       (if (fneq (envelope-interp 1.1 '(0 0 1 0 2 1) 32.0) 0.01336172) 
-	  (snd-display ";envelope-interp .013 (2) -> ~A?" (envelope-interp 1.1 '(0 0 1 0 2 1) 32.0)))
+	  (snd-display "envelope-interp .013 (2) -> ~A?" (envelope-interp 1.1 '(0 0 1 0 2 1) 32.0)))
       (if (fneq (envelope-interp 1.1 '(0 0 1 0 2 1) .012) 0.36177473) 
-	  (snd-display ";envelope-interp .361 (2) -> ~A?" (envelope-interp 1.1 '(0 0 1 0 2 1) .012))) 
+	  (snd-display "envelope-interp .361 (2) -> ~A?" (envelope-interp 1.1 '(0 0 1 0 2 1) .012))) 
       
       (if (fneq (envelope-interp 1.9 '(0 0 1 0 2 1)) 0.9) 
-	  (snd-display ";envelope-interp .9 (2) -> ~A?" (envelope-interp 1.9 '(0 0 1 0 2 1))))
+	  (snd-display "envelope-interp .9 (2) -> ~A?" (envelope-interp 1.9 '(0 0 1 0 2 1))))
       (if (fneq (envelope-interp 1.9 '(0 0 1 0 2 1) 32.0) 0.698) 
-	  (snd-display ";envelope-interp .698 (2) -> ~A?" (envelope-interp 1.9 '(0 0 1 0 2 1) 32.0)))
+	  (snd-display "envelope-interp .698 (2) -> ~A?" (envelope-interp 1.9 '(0 0 1 0 2 1) 32.0)))
       (if (fneq (envelope-interp 1.9 '(0 0 1 0 2 1) .012) 0.993) 
-	  (snd-display ";envelope-interp .993 (2) -> ~A?" (envelope-interp 1.9 '(0 0 1 0 2 1) .012))) 
+	  (snd-display "envelope-interp .993 (2) -> ~A?" (envelope-interp 1.9 '(0 0 1 0 2 1) .012))) 
       
       (if (fneq (envelope-interp 1.1 '(0 0 0.5 1 1 0 2 1)) 0.1) 
-	  (snd-display ";envelope-interp .1 (3) -> ~A?" (envelope-interp 1.1 '(0 0 0.5 1 1 0 2 1))))
+	  (snd-display "envelope-interp .1 (3) -> ~A?" (envelope-interp 1.1 '(0 0 0.5 1 1 0 2 1))))
       (if (fneq (envelope-interp 1.1 '(0 0 0.5 1 1 0 2 1) 32.0) 0.01336172) 
-	  (snd-display ";envelope-interp .013 (3) -> ~A?" (envelope-interp 1.1 '(0 0 0.5 1 1 0 2 1) 32.0)))
+	  (snd-display "envelope-interp .013 (3) -> ~A?" (envelope-interp 1.1 '(0 0 0.5 1 1 0 2 1) 32.0)))
       (if (fneq (envelope-interp 1.1 '(0 0 0.5 1 1 0 2 1) .012) 0.36177473) 
-	  (snd-display ";envelope-interp .361 (3) -> ~A?" (envelope-interp 1.1 '(0 0 0.5 1 1 0 2 1) .012))) 
+	  (snd-display "envelope-interp .361 (3) -> ~A?" (envelope-interp 1.1 '(0 0 0.5 1 1 0 2 1) .012))) 
       
       (if (fneq (envelope-interp 1.9 '(0 0 0.5 1 1 0 2 1)) 0.9) 
-	  (snd-display ";envelope-interp .9 (3) -> ~A?" (envelope-interp 1.9 '(0 0 0.5 1 1 0 2 1))))
+	  (snd-display "envelope-interp .9 (3) -> ~A?" (envelope-interp 1.9 '(0 0 0.5 1 1 0 2 1))))
       (if (fneq (envelope-interp 1.9 '(0 0 0.5 1 1 0 2 1) 32.0) 0.698) 
-	  (snd-display ";envelope-interp .698 (3) -> ~A?" (envelope-interp 1.9 '(0 0 0.5 1 1 0 2 1) 32.0)))
+	  (snd-display "envelope-interp .698 (3) -> ~A?" (envelope-interp 1.9 '(0 0 0.5 1 1 0 2 1) 32.0)))
       (if (fneq (envelope-interp 1.9 '(0 0 0.5 1 1 0 2 1) .012) 0.993) 
-	  (snd-display ";envelope-interp .993 (3) -> ~A?" (envelope-interp 1.9 '(0 0 0.5 1 1 0 2 1) .012))) 
+	  (snd-display "envelope-interp .993 (3) -> ~A?" (envelope-interp 1.9 '(0 0 0.5 1 1 0 2 1) .012))) 
       
       (if (not (feql (window-envelope 1.0 3.0 '(0.0 0.0 5.0 1.0)) '(1.0 0.2 3.0 0.6))) 
-	  (snd-display ";window-envelope: ~A?" (window-envelope 1.0 3.0 '(0.0 0.0 5.0 1.0))))
+	  (snd-display "window-envelope: ~A?" (window-envelope 1.0 3.0 '(0.0 0.0 5.0 1.0))))
       (if (not (feql (multiply-envelopes '(0 0 1 1) '(0 0 1 1 2 0)) '(0 0 0.5 0.5 1 0))) 
-	  (snd-display ";multiply-envelopes: ~A?" (multiply-envelopes '(0 0 1 1) '(0 0 1 1 2 0))))
+	  (snd-display "multiply-envelopes: ~A?" (multiply-envelopes '(0 0 1 1) '(0 0 1 1 2 0))))
       (if (fneq (max-envelope '(0 0 1 1 2 3 4 0)) 3.0)
-	  (snd-display ";max-envelope: ~A?" (max-envelope '(0 0 1 1 2 3 4 0))))
+	  (snd-display "max-envelope: ~A?" (max-envelope '(0 0 1 1 2 3 4 0))))
       (if (fneq (max-envelope '(0 1)) 1.0)
-	  (snd-display ";1 max-envelope: ~A?" (max-envelope '(0 1))))
+	  (snd-display "1 max-envelope: ~A?" (max-envelope '(0 1))))
       (if (fneq (max-envelope '(0 1 1 1 2 2)) 2.0)
-	  (snd-display ";2 max-envelope: ~A?" (max-envelope '(0 1 1 1 2 2))))
+	  (snd-display "2 max-envelope: ~A?" (max-envelope '(0 1 1 1 2 2))))
       (if (fneq (max-envelope '(0 -1 1 -2)) -1.0)
-	  (snd-display ";3 max-envelope: ~A?" (max-envelope '(0 -1 1 -2))))
+	  (snd-display "3 max-envelope: ~A?" (max-envelope '(0 -1 1 -2))))
       (if (fneq (max-envelope '(0 -2 1 -1)) -1.0)
-	  (snd-display ";4 max-envelope: ~A?" (max-envelope '(0 -2 1 -1))))
+	  (snd-display "4 max-envelope: ~A?" (max-envelope '(0 -2 1 -1))))
       (if (fneq (min-envelope '(0 0 1 1 2 3 4 0)) 0.0)
-	  (snd-display ";min-envelope: ~A?" (min-envelope '(0 0 1 1 2 3 4 0))))
+	  (snd-display "min-envelope: ~A?" (min-envelope '(0 0 1 1 2 3 4 0))))
       (if (fneq (min-envelope '(0 1)) 1.0)
-	  (snd-display ";1 min-envelope: ~A?" (min-envelope '(0 1))))
+	  (snd-display "1 min-envelope: ~A?" (min-envelope '(0 1))))
       (if (fneq (min-envelope '(0 1 1 1 2 2)) 1.0)
-	  (snd-display ";2 min-envelope: ~A?" (min-envelope '(0 1 1 1 2 2))))
+	  (snd-display "2 min-envelope: ~A?" (min-envelope '(0 1 1 1 2 2))))
       (if (fneq (min-envelope '(0 -1 1 -2)) -2.0)
-	  (snd-display ";3 min-envelope: ~A?" (min-envelope '(0 -1 1 -2))))
+	  (snd-display "3 min-envelope: ~A?" (min-envelope '(0 -1 1 -2))))
       (if (fneq (min-envelope '(0 -2 1 -1)) -2.0)
-	  (snd-display ";4 min-envelope: ~A?" (min-envelope '(0 -2 1 -1))))
+	  (snd-display "4 min-envelope: ~A?" (min-envelope '(0 -2 1 -1))))
       (if (fneq (integrate-envelope '(0 0 1 1)) 0.5) 
-	  (snd-display ";integrate-envelope: ~A?" (integrate-envelope '(0 0 1 1))))
+	  (snd-display "integrate-envelope: ~A?" (integrate-envelope '(0 0 1 1))))
       (if (fneq (integrate-envelope '(0 1 1 1)) 1.0) 
-	  (snd-display ";integrate-envelope: ~A?" (integrate-envelope '(0 1 1 1))))
+	  (snd-display "integrate-envelope: ~A?" (integrate-envelope '(0 1 1 1))))
       (if (fneq (integrate-envelope '(0 0 1 1 2 .5)) 1.25) 
-	  (snd-display ";integrate-envelope: ~A?" (integrate-envelope '(0 0 1 1 2 .5))))
+	  (snd-display "integrate-envelope: ~A?" (integrate-envelope '(0 0 1 1 2 .5))))
       (if (not (feql (stretch-envelope '(0 0 1 1) .1 .2) '(0 0 0.2 0.1 1.0 1))) 
-	  (snd-display ";stretch-envelope att: ~A?" (stretch-envelope '(0 0 1 1) .1 .2)))
+	  (snd-display "stretch-envelope att: ~A?" (stretch-envelope '(0 0 1 1) .1 .2)))
       (if (not (feql (stretch-envelope '(0 0 1 1 2 0) .1 .2 1.5 1.6) '(0 0 0.2 0.1 1.1 1 1.6 0.5 2.0 0))) 
-	  (snd-display ";stretch-envelope dec: ~A?" (stretch-envelope '(0 0 1 1 2 0) .1 .2 1.5 1.6)))
+	  (snd-display "stretch-envelope dec: ~A?" (stretch-envelope '(0 0 1 1 2 0) .1 .2 1.5 1.6)))
       (if (not (feql (add-envelopes '(0 0 1 1 2 0) '(0 0 1 1)) '(0 0 0.5 1.5 1 1)))
-	  (snd-display ";add-envelopes: ~A" (add-envelopes '(0 0 1 1 2 0) '(0 0 1 1))))
+	  (snd-display "add-envelopes: ~A" (add-envelopes '(0 0 1 1 2 0) '(0 0 1 1))))
       (if (not (feql (scale-envelope '(0 0 1 1) 2) '(0 0 1 2)))
-	  (snd-display ";scale-envelope: ~A" (scale-envelope '(0 0 1 1) 2)))
+	  (snd-display "scale-envelope: ~A" (scale-envelope '(0 0 1 1) 2)))
       (if (not (feql (scale-envelope '(0 0 1 1) 2 1) '(0 1 1 3)))
-	  (snd-display ";scale-envelope off: ~A" (scale-envelope '(0 0 1 1) 2 1)))
+	  (snd-display "scale-envelope off: ~A" (scale-envelope '(0 0 1 1) 2 1)))
       (if (not (feql (reverse-envelope '(0 0 1 1)) '(0 1 1 0)))
-	  (snd-display ";reverse-envelope ramp: ~A" (reverse-envelope '(0 0 1 1))))
+	  (snd-display "reverse-envelope ramp: ~A" (reverse-envelope '(0 0 1 1))))
       (if (not (feql (reverse-envelope '(0 0 .5 1 2 0)) '(0 0 1.5 1 2 0)))
-	  (snd-display ";reverse-envelope ramp 2: ~A" (reverse-envelope '(0 0 .5 1 2 0))))
+	  (snd-display "reverse-envelope ramp 2: ~A" (reverse-envelope '(0 0 .5 1 2 0))))
       (if (not (feql (reverse-envelope '(0 0 .5 1 2 1)) '(0 1 1.5 1 2 0)))
-	  (snd-display ";reverse-envelope ramp 2: ~A" (reverse-envelope '(0 0 .5 1 2 1))))
+	  (snd-display "reverse-envelope ramp 2: ~A" (reverse-envelope '(0 0 .5 1 2 1))))
       (if (not (feql (concatenate-envelopes '(0 0 1 1) '(0 1 1 0)) '(0.0 0 1.0 1 2.0 0)))
-	  (snd-display ";concatenate-envelopes: ~A" (concatenate-envelopes '(0 0 1 1) '(0 1 1 0))))
+	  (snd-display "concatenate-envelopes: ~A" (concatenate-envelopes '(0 0 1 1) '(0 1 1 0))))
       (if (not (feql (concatenate-envelopes '(0 0 1 1.5) '(0 1 1 0)) '(0.0 0 1.0 1.5 1.01 1 2.01 0)))
-	  (snd-display ";concatenate-envelopes: ~A" (concatenate-envelopes '(0 0 1 1.5) '(0 1 1 0))))
+	  (snd-display "concatenate-envelopes: ~A" (concatenate-envelopes '(0 0 1 1.5) '(0 1 1 0))))
       (if (not (feql (repeat-envelope '(0 0 1 100) 2) '(0 0 1 100 1.01 0 2.01 100)))
-	  (snd-display ";repeat-envelope 0: ~A" (repeat-envelope '(0 0 1 100) 2)))
+	  (snd-display "repeat-envelope 0: ~A" (repeat-envelope '(0 0 1 100) 2)))
       (if (not (feql (repeat-envelope '(0 0 1.5 1 2 0) 2) '(0 0 1.5 1 2.0 0 3.5 1 4.0 0)))
-	  (snd-display ";repeat-envelope 1: ~A" (repeat-envelope '(0 0 1.5 1 2 0) 2)))
+	  (snd-display "repeat-envelope 1: ~A" (repeat-envelope '(0 0 1.5 1 2 0) 2)))
       (if (not (feql (repeat-envelope '(0 0 1.5 1 2 0) 2 #f #t) '(0.0 0 0.75 1 1.0 0 1.75 1 2.0 0)))
-	  (snd-display ";repeat-envelope 2: ~A" (repeat-envelope '(0 0 1.5 1 2 0) 2 #f #t)))
+	  (snd-display "repeat-envelope 2: ~A" (repeat-envelope '(0 0 1.5 1 2 0) 2 #f #t)))
       (if (not (feql (repeat-envelope '(0 0 1.5 1 2 0) 2 #t) '(0 0 1.5 1 2.0 0 2.5 1 4.0 0)))
-	  (snd-display ";repeat-envelope 3: ~A" (repeat-envelope '(0 0 1.5 1 2 0) 2 #t)))
+	  (snd-display "repeat-envelope 3: ~A" (repeat-envelope '(0 0 1.5 1 2 0) 2 #t)))
       (if (not (feql (repeat-envelope '(0 0 1.5 1 2 0) 3) '(0 0 1.5 1 2.0 0 3.5 1 4.0 0 5.5 1 6.0 0)))
-	  (snd-display ";repeat-envelope 4: ~A" (repeat-envelope '(0 0 1.5 1 2 0) 3)))
+	  (snd-display "repeat-envelope 4: ~A" (repeat-envelope '(0 0 1.5 1 2 0) 3)))
       (if (not (feql (normalize-envelope '(0 0 1 1.5 2.0 1.0)) '(0 0.0 1 1.0 2.0 0.667)))
-	  (snd-display ";normalize-envelope: ~A" (normalize-envelope '(0 0 1 1.5 2.0 1.0))))
+	  (snd-display "normalize-envelope: ~A" (normalize-envelope '(0 0 1 1.5 2.0 1.0))))
       (if (not (feql (normalize-envelope '(0 0 1 .5 2 -.8)) '(0 0.0 1 0.625 2 -1.0)))
-	  (snd-display ";normalize-envelope: ~A" (normalize-envelope '(0 0 1 .5 2 -.8))))
+	  (snd-display "normalize-envelope: ~A" (normalize-envelope '(0 0 1 .5 2 -.8))))
       
       (let ((val (envelope-exp '(0 0 1 1) 2.0 10)))
 	(if (not (feql val '(0.000 0.000 0.100 0.010 0.200 0.040 0.300 0.090 0.400 0.160 
 				   0.500 0.250 0.600 0.360 0.700 0.490 0.800 0.640 0.900 0.810 1.000 1.000)))
-	    (snd-display ";envelope-exp: ~A" val))
+	    (snd-display "envelope-exp: ~A" val))
 	(set! val (envelope-exp '(0 0 1 1 2 0) 1.0 10))
 	(if (not (feql val '(0.000 0.000 0.200 0.200 0.400 0.400 0.600 0.600 0.800 0.800 
 				   1.000 1.000 1.200 0.800 1.400 0.600 1.600 0.400 1.800 0.200 2.000 0.000)))
-	    (snd-display ";envelope exp 2: ~A" val)))
+	    (snd-display "envelope exp 2: ~A" val)))
       
       (let ((ind (new-sound "fmv.snd")))
 	(float-vector->channel (make-float-vector 20 1.0))
@@ -27612,14 +27612,14 @@ EDITS: 2
 	(make-selection 5 9 ind 0)
 	(scale-selection-to 0.5)
 	(insert-selection 15 ind)
-	(if (not (= (framples ind) 25)) (snd-display ";insert-selection 5: ~A" (framples ind)))
+	(if (not (= (framples ind) 25)) (snd-display "insert-selection 5: ~A" (framples ind)))
 	(if (not (mus-arrays-equal? (channel->float-vector 0 25) (float-vector 1.0 1.0 1.0 1.0 1.0 0.5 0.5 0.5 0.5 0.5 
 									       1.0 1.0 1.0 1.0 1.0 0.5 0.5 0.5 0.5 0.5
 									       1.0 1.0 1.0 1.0 1.0)))
-	    (snd-display ";insert-selection: ~A" (channel->float-vector 0 25)))
+	    (snd-display "insert-selection: ~A" (channel->float-vector 0 25)))
 	(mix-selection 1 ind 0) ; this is being confused by clipping settings
 	(if (not (mus-arrays-equal? (channel->float-vector 0 10 ind 0) (float-vector 1.000 1.500 1.500 1.500 1.500 1.000 0.500 0.500 0.500 0.500)))
-	    (snd-display ";mix-selection vals: ~A" (channel->float-vector 0 10 ind 0)))
+	    (snd-display "mix-selection vals: ~A" (channel->float-vector 0 10 ind 0)))
 	(close-sound ind))
       
       (let ((ind (new-sound "fmv.snd")))
@@ -27640,11 +27640,11 @@ EDITS: 2
 	  (let ((data (transform->float-vector)))
 	    (let ((peak (float-vector-peak data))
 		  (val (transform-sample 0)))
-	      (if (= peak 0.0) (snd-display ";transform selection peak: ~A" peak))
-	      (if (fneq val (data 0)) (snd-display ";transform-sample: ~A, data: ~A" val (data 0)))
+	      (if (= peak 0.0) (snd-display "transform selection peak: ~A" peak))
+	      (if (fneq val (data 0)) (snd-display "transform-sample: ~A, data: ~A" val (data 0)))
 	      (if (and (>= (length data) 64)
 		       (> (* .5 peak) (data 51)))
-		  (snd-display ";transform selection at 51: ~A, peak: ~A" (data 51) peak))))
+		  (snd-display "transform selection at 51: ~A, peak: ~A" (data 51) peak))))
 	  (for-each
 	   (lambda (pad)
 	     (set! *zero-pad* pad)
@@ -27653,20 +27653,20 @@ EDITS: 2
 		    (peak (float-vector-peak data))
 		    (pval (data (floor (* .1 (length data))))))
 	       (if (> (* .5 peak) pval)
-		   (snd-display ";transform selection padded ~D: ~A, peak: ~A" pad pval peak))))
+		   (snd-display "transform selection padded ~D: ~A, peak: ~A" pad pval peak))))
 	   '(1 0 3 31))
 	  (set! *zero-pad* 100000)
 	  (if (> *zero-pad* 1000)
-	      (snd-display ";zero-pad: ~A" *zero-pad*))
+	      (snd-display "zero-pad: ~A" *zero-pad*))
 	  (close-sound ind)))
       
       (let ((ind (open-sound "storm.snd"))
 	    (maxes (float-vector 0.8387 0.5169 0.3318 0.2564 0.1982 0.1532)))
 	(do ((i 0 (+ i 1)))
 	    ((= i 5))
-	  (if (fneq (maxamp) (maxes i)) (snd-display ";enving storm ~D: ~A ~A" i (maxes i) (maxamp)))
+	  (if (fneq (maxamp) (maxes i)) (snd-display "enving storm ~D: ~A ~A" i (maxes i) (maxamp)))
 	  (env-sound '(0 0 1 1 2 0))
-	  (if (fneq (maxamp) (maxes (+ i 1))) (snd-display ";enving storm ~D: ~A ~A" (+ i 1) (maxes (+ i 1)) (maxamp))))
+	  (if (fneq (maxamp) (maxes (+ i 1))) (snd-display "enving storm ~D: ~A ~A" (+ i 1) (maxes (+ i 1)) (maxamp))))
 	(close-sound ind)))
     
     ;; --------------------------------------------------------------------------------
@@ -27680,12 +27680,12 @@ EDITS: 2
 	    (reg (length (make-region 0 100)))
 	    (dly (length (make-delay 32)))
 	    (ply (length (make-player snd 0))))
-	(if (not (= (length snd) 50828)) (snd-display ";length of sound: ~A" (length snd)))
-	(if (not (= sd 10)) (snd-display ";length of vector2: ~A" sd))
-	(if (not (= mxv 3)) (snd-display ";length of mix: ~A" mxv))
-	(if (not (= reg 101)) (snd-display ";length of region: ~A" reg))
-	(if (not (= dly 32)) (snd-display ";length of delay: ~A" dly))
-	(if (not (= ply 50828)) (snd-display ";length of player: ~A" ply)))
+	(if (not (= (length snd) 50828)) (snd-display "length of sound: ~A" (length snd)))
+	(if (not (= sd 10)) (snd-display "length of vector2: ~A" sd))
+	(if (not (= mxv 3)) (snd-display "length of mix: ~A" mxv))
+	(if (not (= reg 101)) (snd-display "length of region: ~A" reg))
+	(if (not (= dly 32)) (snd-display "length of delay: ~A" dly))
+	(if (not (= ply 50828)) (snd-display "length of player: ~A" ply)))
       (close-sound snd))
     
     ;; srate as generic: mus-sound-srate region-srate srate 
@@ -27693,11 +27693,11 @@ EDITS: 2
     (let ((snd (open-sound "oboe.snd")))
       (let ((reg (srate (make-region 0 100)))
 	    (ply (srate (make-player snd 0))))
-	(if (not (= (srate snd) 22050)) (snd-display ";srate of sound: ~A" (srate snd)))
+	(if (not (= (srate snd) 22050)) (snd-display "srate of sound: ~A" (srate snd)))
 	(let ((str (srate "oboe.snd")))
-	  (if (not (= str 22050)) (snd-display ";srate of string: ~A" str)))
-	(if (not (= reg 22050)) (snd-display ";srate of region: ~A" reg))
-	(if (not (= ply 22050)) (snd-display ";srate of player: ~A" ply)))
+	  (if (not (= str 22050)) (snd-display "srate of string: ~A" str)))
+	(if (not (= reg 22050)) (snd-display "srate of region: ~A" reg))
+	(if (not (= ply 22050)) (snd-display "srate of player: ~A" ply)))
       (close-sound snd))
     
     ;; channels as generic: mus-sound-chans region-chans chans mus-channels mix/etc
@@ -27708,14 +27708,14 @@ EDITS: 2
       (let ((mxv (channels (mix-float-vector v 1000)))
 	    (reg (channels (make-region 0 100)))
 	    (ply (channels (make-player snd 0))))
-	(if (not (= (channels snd) 1)) (snd-display ";channels of sound: ~A" (channels snd)))
-	(if (not (= (channels v) 1)) (snd-display ";channels of float-vector: ~A" (channels v)))
+	(if (not (= (channels snd) 1)) (snd-display "channels of sound: ~A" (channels snd)))
+	(if (not (= (channels v) 1)) (snd-display "channels of float-vector: ~A" (channels v)))
 	(let ((str (channels "oboe.snd")))
-	  (if (not (= str 1)) (snd-display ";channels of string: ~A" str)))
-	(if (not (= sd 2)) (snd-display ";channels of vector2: ~A" sd))
-	(if (not (= mxv 1)) (snd-display ";channels of mix: ~A" mxv))
-	(if (not (= reg 1)) (snd-display ";channels of region: ~A" reg))
-	(if (not (= ply 1)) (snd-display ";channels of player: ~A" ply))
+	  (if (not (= str 1)) (snd-display "channels of string: ~A" str)))
+	(if (not (= sd 2)) (snd-display "channels of vector2: ~A" sd))
+	(if (not (= mxv 1)) (snd-display "channels of mix: ~A" mxv))
+	(if (not (= reg 1)) (snd-display "channels of region: ~A" reg))
+	(if (not (= ply 1)) (snd-display "channels of player: ~A" ply))
 	)
       (close-sound snd))
     
@@ -27728,15 +27728,15 @@ EDITS: 2
 	    (reg (framples (make-region 0 100)))
 	    (dly (framples (make-delay 32)))
 	    (ply (framples (make-player snd 0))))
-	(if (not (= (framples snd) 50828)) (snd-display ";framples of sound: ~A" (framples snd)))
-	(if (not (= (framples v) 3)) (snd-display ";framples of float-vector: ~A" (framples v)))
+	(if (not (= (framples snd) 50828)) (snd-display "framples of sound: ~A" (framples snd)))
+	(if (not (= (framples v) 3)) (snd-display "framples of float-vector: ~A" (framples v)))
 	(let ((str (framples "oboe.snd")))
-	  (if (not (= str 50828)) (snd-display ";framples of string: ~A" str)))
-	(if (not (= sd 10)) (snd-display ";framples of vector2: ~A" sd))
-	(if (not (= mxv 3)) (snd-display ";framples of mix: ~A" mxv))
-	(if (not (= reg 101)) (snd-display ";framples of region: ~A" reg))
-	(if (not (= dly 32)) (snd-display ";framples of delay: ~A" dly))
-	(if (not (= ply 50828)) (snd-display ";framples of player: ~A" ply)))
+	  (if (not (= str 50828)) (snd-display "framples of string: ~A" str)))
+	(if (not (= sd 10)) (snd-display "framples of vector2: ~A" sd))
+	(if (not (= mxv 3)) (snd-display "framples of mix: ~A" mxv))
+	(if (not (= reg 101)) (snd-display "framples of region: ~A" reg))
+	(if (not (= dly 32)) (snd-display "framples of delay: ~A" dly))
+	(if (not (= ply 50828)) (snd-display "framples of player: ~A" ply)))
       (close-sound snd))
     
     ;; file-name as generic
@@ -27746,13 +27746,13 @@ EDITS: 2
 	  (prt (open-output-file "tst.dat")))
       (let ((mxv (file-name (car (mix "pistol.snd" 1000))))
 	    (reg (file-name (make-region 0 100))))
-	(if (not (string=? (file-name snd) (string-append (getcwd) "/oboe.snd"))) (snd-display ";file-name of sound: ~A" (file-name snd)))
+	(if (not (string=? (file-name snd) (string-append (getcwd) "/oboe.snd"))) (snd-display "file-name of sound: ~A" (file-name snd)))
 	(let ((str (file-name "oboe.snd")))
-	  (if (not (string=? str (string-append (getcwd) "/oboe.snd"))) (snd-display ";file-name of string: ~A" str)))
-	(if (not (string=? (file-name frm) "oboe.snd")) (snd-display ";file-name of file->sample: ~A" (file-name frm)))
-	(if (not (string=? (file-name prt) "tst.dat")) (snd-display ";file-name of output port: ~A" (file-name prt)))
-	(if (not (string=? mxv (string-append (getcwd) "/pistol.snd"))) (snd-display ";file-name of mix: ~A" mxv))
-	(if (not (string=? reg "oboe.snd")) (snd-display ";file-name of region: ~A" reg)))
+	  (if (not (string=? str (string-append (getcwd) "/oboe.snd"))) (snd-display "file-name of string: ~A" str)))
+	(if (not (string=? (file-name frm) "oboe.snd")) (snd-display "file-name of file->sample: ~A" (file-name frm)))
+	(if (not (string=? (file-name prt) "tst.dat")) (snd-display "file-name of output port: ~A" (file-name prt)))
+	(if (not (string=? mxv (string-append (getcwd) "/pistol.snd"))) (snd-display "file-name of mix: ~A" mxv))
+	(if (not (string=? reg "oboe.snd")) (snd-display "file-name of region: ~A" reg)))
       (close-output-port prt)
       (mus-close frm)
       (close-sound snd))
@@ -27762,17 +27762,17 @@ EDITS: 2
     (let ((snd (open-sound "oboe.snd")))
       (let ((mrk (add-mark 123))
 	    (mx (mix-float-vector (float-vector .1 .2 .3))))
-	(if (not (= (sync snd) 0)) (snd-display ";sync of sound (0): ~A" (sync snd)))
-	(if (not (= (sync mrk) 0)) (snd-display ";sync of mark (0): ~A" (sync mrk)))
-	(if (not (= (sync mx) 0)) (snd-display ";sync of mx (0): ~A" (sync mx)))
+	(if (not (= (sync snd) 0)) (snd-display "sync of sound (0): ~A" (sync snd)))
+	(if (not (= (sync mrk) 0)) (snd-display "sync of mark (0): ~A" (sync mrk)))
+	(if (not (= (sync mx) 0)) (snd-display "sync of mx (0): ~A" (sync mx)))
 	
 	(set! (sync snd) 12)
 	(set! (sync mrk) 24)
 	(set! (sync mx) 36)
 	
-	(if (not (= (sync snd) 12)) (snd-display ";sync of sound (12): ~A" (sync snd)))
-	(if (not (= (sync mrk) 24)) (snd-display ";sync of mark (24): ~A" (sync mrk)))
-	(if (not (= (sync mx) 36)) (snd-display ";sync of mx (36): ~A" (sync mx))))
+	(if (not (= (sync snd) 12)) (snd-display "sync of sound (12): ~A" (sync snd)))
+	(if (not (= (sync mrk) 24)) (snd-display "sync of mark (24): ~A" (sync mrk)))
+	(if (not (= (sync mx) 36)) (snd-display "sync of mx (36): ~A" (sync mx))))
       (close-sound snd))
     
     ;; maxamp as generic
@@ -27781,23 +27781,23 @@ EDITS: 2
 	  (v (float-vector .1 .2 .3)))
       (let ((mxv (maxamp (mix-float-vector v 1000)))
 	    (reg (maxamp (make-region 0 900))))
-	(if (fneq (maxamp snd) .334) (snd-display ";maxamp of sound: ~A" (maxamp snd)))
-	(if (fneq (maxamp snd 0) .334) (snd-display ";maxamp of sound (0): ~A" (maxamp snd)))
-	(if (fneq (maxamp snd 0 0) .14724) (snd-display ";maxamp of sound (0 0): ~A" (maxamp snd)))
-	(if (fneq (maxamp v) .3) (snd-display ";maxamp of float-vector: ~A" (maxamp v)))
+	(if (fneq (maxamp snd) .334) (snd-display "maxamp of sound: ~A" (maxamp snd)))
+	(if (fneq (maxamp snd 0) .334) (snd-display "maxamp of sound (0): ~A" (maxamp snd)))
+	(if (fneq (maxamp snd 0 0) .14724) (snd-display "maxamp of sound (0 0): ~A" (maxamp snd)))
+	(if (fneq (maxamp v) .3) (snd-display "maxamp of float-vector: ~A" (maxamp v)))
 	(let ((vc (maxamp #(.1 .2 .3 .4))))
-	  (if (fneq vc .4) (snd-display ";maxamp of vector: ~A" vc)))
+	  (if (fneq vc .4) (snd-display "maxamp of vector: ~A" vc)))
 	(let ((str (maxamp "pistol.snd"))) ; can't use oboe.snd since we messed with mus-sound-maxamp above
-	  (if (fneq str .49267) (snd-display ";maxamp of string: ~A" str)))
+	  (if (fneq str .49267) (snd-display "maxamp of string: ~A" str)))
 	(let ((sd (make-float-vector '(1 10))))
 	  (set! (sd 0 1) .1)
-	  (if (fneq (maxamp sd) 0.1) (snd-display ";maxamp of vector2: ~A" (maxamp sd))))
-	(if (fneq mxv .3) (snd-display ";maxamp of mix: ~A" mxv))
-	(if (fneq reg .02139) (snd-display ";maxamp of region: ~A" reg))
+	  (if (fneq (maxamp sd) 0.1) (snd-display "maxamp of vector2: ~A" (maxamp sd))))
+	(if (fneq mxv .3) (snd-display "maxamp of mix: ~A" mxv))
+	(if (fneq reg .02139) (snd-display "maxamp of region: ~A" reg))
 	(let ((dly (make-delay 32)))
 	  (delay dly .1)
 	  (delay dly .2)
-	  (if (fneq (maxamp dly) .2) (snd-display ";maxamp of delay: ~A" (maxamp dly)))))
+	  (if (fneq (maxamp dly) .2) (snd-display "maxamp of delay: ~A" (maxamp dly)))))
       (close-sound snd))
     
     ))
@@ -27838,26 +27838,26 @@ EDITS: 2
 		 (scale-channel scaler 0 (framples cursnd curchn) cursnd curchn)
 		 (if (not (or (= (edit-position cursnd curchn) (+ 1 cur-edit)) 
 			      (= (edit-position cursnd curchn) cur-edit)))
-		     (snd-display ";scale-channel ~A[~A] edit pos: ~A ~A" (short-file-name cursnd) curchn (edit-position cursnd curchn) cur-edit))
+		     (snd-display "scale-channel ~A[~A] edit pos: ~A ~A" (short-file-name cursnd) curchn (edit-position cursnd curchn) cur-edit))
 		 (if (not (= (framples cursnd curchn) cur-frame))
-		     (snd-display ";scale-channel ~A[~A] framples: ~A ~A" (short-file-name cursnd) curchn (framples cursnd curchn) cur-frame))
+		     (snd-display "scale-channel ~A[~A] framples: ~A ~A" (short-file-name cursnd) curchn (framples cursnd curchn) cur-frame))
 		 (if (fneq (maxamp cursnd curchn) (* scaler cur-amp))
-		     (snd-display ";scale-channel ~A[~A] maxamp: ~A ~A (~A, scaler: ~A)" 
+		     (snd-display "scale-channel ~A[~A] maxamp: ~A ~A (~A, scaler: ~A)" 
 				  (short-file-name cursnd) curchn (maxamp cursnd curchn) (* scaler cur-amp)
 				  (abs (- (maxamp cursnd curchn) (* scaler cur-amp)))
 				  scaler))
 		 (if (fneq (sample cur-loc cursnd curchn) (* scaler cur-samp))
-		     (snd-display ";scale-channel ~A[~A] cur-samp: ~A ~A" (short-file-name cursnd) curchn (sample cur-loc cursnd curchn) (* scaler cur-samp)))
+		     (snd-display "scale-channel ~A[~A] cur-samp: ~A ~A" (short-file-name cursnd) curchn (sample cur-loc cursnd curchn) (* scaler cur-samp)))
 		 (for-each
 		  (lambda (s c amp ed fr)
 		    (unless (and (equal? s cursnd)
 				 (= c curchn))
 		      (if (not (= (edit-position s c) ed))
-			  (snd-display ";scale-channel ~A[~A] wrong edit pos: ~A ~A" (short-file-name s) c (edit-position s c) ed))
+			  (snd-display "scale-channel ~A[~A] wrong edit pos: ~A ~A" (short-file-name s) c (edit-position s c) ed))
 		      (if (not (= (framples s c) fr))
-			  (snd-display ";scale-channel ~A[~A] wrong framples: ~A ~A" (short-file-name s) c (framples s c) fr))
+			  (snd-display "scale-channel ~A[~A] wrong framples: ~A ~A" (short-file-name s) c (framples s c) fr))
 		      (if (fneq (maxamp s c) amp)
-			  (snd-display ";scale-channel ~A[~A] wrong maxamp: ~A ~A" (short-file-name s) c (maxamp s c) amp))))
+			  (snd-display "scale-channel ~A[~A] wrong maxamp: ~A ~A" (short-file-name s) c (maxamp s c) amp))))
 		  (car chan-list)
 		  (cadr chan-list)
 		  cur-maxamps
@@ -27876,19 +27876,19 @@ EDITS: 2
 			    (not (= (sync s) (sync cursnd))))
 			(begin
 			  (if (not (= (edit-position s c) ed))
-			      (snd-display ";scale-by ~A[~A] wrong edit pos: ~A ~A" (short-file-name s) c (edit-position s c) ed))
+			      (snd-display "scale-by ~A[~A] wrong edit pos: ~A ~A" (short-file-name s) c (edit-position s c) ed))
 			  (if (not (= (framples s c) fr))
-			      (snd-display ";scale-by ~A[~A] wrong framples: ~A ~A" (short-file-name s) c (framples s c) fr))
+			      (snd-display "scale-by ~A[~A] wrong framples: ~A ~A" (short-file-name s) c (framples s c) fr))
 			  (if (fneq (maxamp s c) amp)
-			      (snd-display ";scale-by ~A[~A] wrong maxamp: ~A ~A" (short-file-name s) c (maxamp s c) amp)))
+			      (snd-display "scale-by ~A[~A] wrong maxamp: ~A ~A" (short-file-name s) c (maxamp s c) amp)))
 			(begin
 			  (if (not (or (= (edit-position s c) (+ 1 ed))
 				       (= (edit-position s c) ed)))
-			      (snd-display ";scale-by ~A[~A] edit pos: ~A ~A" (short-file-name s) c (edit-position s c) ed))
+			      (snd-display "scale-by ~A[~A] edit pos: ~A ~A" (short-file-name s) c (edit-position s c) ed))
 			  (if (not (= (framples s c) fr))
-			      (snd-display ";scale-by ~A[~A] framples: ~A ~A" (short-file-name s) c (framples s c) fr))
+			      (snd-display "scale-by ~A[~A] framples: ~A ~A" (short-file-name s) c (framples s c) fr))
 			  (if (fneq (maxamp s c) (* scaler amp))
-			      (snd-display ";scale-by ~A[~A] maxamp: ~A ~A" (short-file-name s) c (maxamp s c) (* scaler amp))))))
+			      (snd-display "scale-by ~A[~A] maxamp: ~A ~A" (short-file-name s) c (maxamp s c) (* scaler amp))))))
 		  (car chan-list)
 		  (cadr chan-list)
 		  cur-maxamps
@@ -27905,16 +27905,16 @@ EDITS: 2
 			(begin
 			  (if (not (or (= (edit-position s c) (+ 1 ed)) 
 				       (= (edit-position s c) ed)))
-			      (snd-display ";scale-sound-by ~A[~A] edit pos: ~A ~A" (short-file-name s) c (edit-position s c) ed))
+			      (snd-display "scale-sound-by ~A[~A] edit pos: ~A ~A" (short-file-name s) c (edit-position s c) ed))
 			  (if (not (= (framples s c) fr))
-			      (snd-display ";scale-sound-by ~A[~A] framples: ~A ~A" (short-file-name s) c (framples s c) fr)))
+			      (snd-display "scale-sound-by ~A[~A] framples: ~A ~A" (short-file-name s) c (framples s c) fr)))
 			(begin
 			  (if (not (= (edit-position s c) ed))
-			      (snd-display ";scale-sound-by ~A[~A] wrong edit pos: ~A ~A" (short-file-name s) c (edit-position s c) ed))
+			      (snd-display "scale-sound-by ~A[~A] wrong edit pos: ~A ~A" (short-file-name s) c (edit-position s c) ed))
 			  (if (not (= (framples s c) fr))
-			      (snd-display ";scale-sound-by ~A[~A] wrong framples: ~A ~A" (short-file-name s) c (framples s c) fr))
+			      (snd-display "scale-sound-by ~A[~A] wrong framples: ~A ~A" (short-file-name s) c (framples s c) fr))
 			  (if (fneq (maxamp s c) amp)
-			      (snd-display ";scale-sound-by ~A[~A] wrong maxamp: ~A ~A" (short-file-name s) c (maxamp s c) amp)))))
+			      (snd-display "scale-sound-by ~A[~A] wrong maxamp: ~A ~A" (short-file-name s) c (maxamp s c) amp)))))
 		  (car chan-list)
 		  (cadr chan-list)
 		  cur-maxamps
@@ -28003,7 +28003,7 @@ EDITS: 2
 			(when (> (abs (- val0 val1)) .005)
 			  (if (file-exists? "baddy.scm") (delete-file "baddy.scm"))
 			  (save-state "baddy.scm")
-			  (snd-display ";read env off by ~A: ~%    (~A) at ~A: ~%    ~A ~A (~A ~A) [~A ~A]:~%    ~A" 
+			  (snd-display "read env off by ~A: ~%    (~A) at ~A: ~%    ~A ~A (~A ~A) [~A ~A]:~%    ~A" 
 				       (abs (- val0 val1))
 				       e i val0 val1
 				       reader0 reader1 e0 val00
@@ -28034,19 +28034,19 @@ EDITS: 2
 	       (env-channel e 0 (framples cursnd curchn) cursnd curchn))) ; can be a no-op
 	   (if (not (or (= (edit-position cursnd curchn) (+ 1 cur-edit))
 			(= (edit-position cursnd curchn) cur-edit)))
-	       (snd-display ";env-channel ~A[~A] edit pos: ~A ~A" (short-file-name cursnd) curchn (edit-position cursnd curchn) cur-edit))
+	       (snd-display "env-channel ~A[~A] edit pos: ~A ~A" (short-file-name cursnd) curchn (edit-position cursnd curchn) cur-edit))
 	   (if (not (= (framples cursnd curchn) cur-frame))
-	       (snd-display ";env-channel ~A[~A] framples: ~A ~A" (short-file-name cursnd) curchn (framples cursnd curchn) cur-frame))
+	       (snd-display "env-channel ~A[~A] framples: ~A ~A" (short-file-name cursnd) curchn (framples cursnd curchn) cur-frame))
 	   (for-each
 	    (lambda (s c amp ed fr)
 	      (unless (and (equal? s cursnd)
 			   (= c curchn))
 		(if (not (= (edit-position s c) ed))
-		    (snd-display ";env-channel ~A[~A] wrong edit pos: ~A ~A" (short-file-name s) c (edit-position s c) ed))
+		    (snd-display "env-channel ~A[~A] wrong edit pos: ~A ~A" (short-file-name s) c (edit-position s c) ed))
 		(if (not (= (framples s c) fr))
-		    (snd-display ";env-channel ~A[~A] wrong framples: ~A ~A" (short-file-name s) c (framples s c) fr))
+		    (snd-display "env-channel ~A[~A] wrong framples: ~A ~A" (short-file-name s) c (framples s c) fr))
 		(if (fneq (maxamp s c) amp)
-		    (snd-display ";env-channel ~A[~A] wrong maxamp: ~A ~A" (short-file-name s) c (maxamp s c) amp))))
+		    (snd-display "env-channel ~A[~A] wrong maxamp: ~A ~A" (short-file-name s) c (maxamp s c) amp))))
 	    (car chan-list)
 	    (cadr chan-list)
 	    cur-maxamps
@@ -28094,17 +28094,17 @@ EDITS: 2
 			    (not (= (sync s) (sync cursnd))))
 			(begin
 			  (if (not (= (edit-position s c) ed))
-			      (snd-display ";env-sound ~A[~A] wrong edit pos: ~A ~A" (short-file-name s) c (edit-position s c) ed))
+			      (snd-display "env-sound ~A[~A] wrong edit pos: ~A ~A" (short-file-name s) c (edit-position s c) ed))
 			  (if (not (= (framples s c) fr))
-			      (snd-display ";env-sound ~A[~A] wrong framples: ~A ~A" (short-file-name s) c (framples s c) fr))
+			      (snd-display "env-sound ~A[~A] wrong framples: ~A ~A" (short-file-name s) c (framples s c) fr))
 			  (if (fneq (maxamp s c) amp)
-			      (snd-display ";env-sound ~A[~A] wrong maxamp: ~A ~A" (short-file-name s) c (maxamp s c) amp)))
+			      (snd-display "env-sound ~A[~A] wrong maxamp: ~A ~A" (short-file-name s) c (maxamp s c) amp)))
 			(begin
 			  (if (not (or (= (edit-position s c) (+ 1 ed))
 				       (= (edit-position s c) ed)))
-			      (snd-display ";env-sound ~A[~A] edit pos: ~A ~A" (short-file-name s) c (edit-position s c) ed))
+			      (snd-display "env-sound ~A[~A] edit pos: ~A ~A" (short-file-name s) c (edit-position s c) ed))
 			  (if (not (= (framples s c) fr))
-			      (snd-display ";env-sound ~A[~A] framples: ~A ~A" (short-file-name s) c (framples s c) fr)))))
+			      (snd-display "env-sound ~A[~A] framples: ~A ~A" (short-file-name s) c (framples s c) fr)))))
 		  (car chan-list)
 		  (cadr chan-list)
 		  cur-maxamps
@@ -28128,7 +28128,7 @@ EDITS: 2
 		 (if (not (and (integer? inc0) 
 			       (integer? inc1)))
 		     (begin
-		       (snd-display ";lens: ~A ~A" len0 len1)
+		       (snd-display "lens: ~A ~A" len0 len1)
 		       #f)
 		     (do ((i 0 (+ i 1))
 			  (max0 -1.0 -1.0)
@@ -28148,7 +28148,7 @@ EDITS: 2
 			       ((= j inc1))
 			     (set! max1 (max max1 (e1 j1)))))
 		       (when (> (abs (- max0 max1)) df)
-			 (snd-display ";amp-env ~A: ~A ~A" i max0 max1)
+			 (snd-display "amp-env ~A: ~A ~A" i max0 max1)
 			 (set! happy #f))))))))))
   
   (define* (edit-difference s1 c1 e1 e2 (offset 0))
@@ -28201,12 +28201,12 @@ EDITS: 2
     (let* ((current-vals (channel->float-vector))
 	   (len (length current-vals)))
       (if (and expected-vals (not (= len (length expected-vals))))
-	  (snd-display ";~A (from ~A): lengths differ: ~A ~A" name line len (length expected-vals))
+	  (snd-display "~A (from ~A): lengths differ: ~A ~A" name line len (length expected-vals))
 	  (if (and expected-vals (not (mus-arrays-equal? current-vals expected-vals)))
-	      (snd-display ";checking ~A (from ~A), vals disagree (loc cur expect): ~A" name line (mus-arrays-equal?-at current-vals expected-vals))
+	      (snd-display "checking ~A (from ~A), vals disagree (loc cur expect): ~A" name line (mus-arrays-equal?-at current-vals expected-vals))
 	      (let ((bad-data (edits-not-equal? (edit-tree) expected-tree 0)))
 		(if bad-data
-		    (snd-display ";checking ~A (from ~A), trees disagree (loc cur expect): ~A~%  in~%~A" name line bad-data (edit-tree)))
+		    (snd-display "checking ~A (from ~A), trees disagree (loc cur expect): ~A~%  in~%~A" name line bad-data (edit-tree)))
 		(if (> len 5)
 		    (let* ((split-loc (+ 2 (random (- len 3))))
 			   (fread (make-sampler split-loc))
@@ -28219,7 +28219,7 @@ EDITS: 2
 			  ((< i 0))
 			(float-vector-set! split-vals i (read-sample bread)))
 		      (if (and expected-vals (not (mus-arrays-equal? split-vals expected-vals)))
-			  (snd-display ";checking ~A (from ~A), split vals disagree (loc cur expect): ~A"
+			  (snd-display "checking ~A (from ~A), split vals disagree (loc cur expect): ~A"
 				       name line (mus-arrays-equal?-at split-vals expected-vals))))))))))
   
   (define (zigzag-check name snd chn)
@@ -28229,12 +28229,12 @@ EDITS: 2
 	  ((= i 8))
 	(let ((val (next-sample sf)))
 	  (if (fneq (data i) val)
-	      (snd-display ";~A: forward data[~D]: ~A ~A" name i val (data i)))))
+	      (snd-display "~A: forward data[~D]: ~A ~A" name i val (data i)))))
       (do ((i 7 (- i 1)))
 	  ((= i 0))
 	(let ((val (previous-sample sf)))
 	  (if (fneq (data i) val)
-	      (snd-display ";~A: backward data[~D]: ~A ~A" name i val (data i)))))))
+	      (snd-display "~A: backward data[~D]: ~A ~A" name i val (data i)))))))
   
   (define (init-sound val dur chans)
     (let ((ind (new-sound "test.snd" chans 22050 mus-ldouble mus-next)))
@@ -28257,18 +28257,18 @@ EDITS: 2
     (let ((happy #t))
       (unless (mus-arrays-equal? v (channel->float-vector 0 (framples) ind 0))
 	(set! happy #f)
-	(snd-display ";~A forth:~%     current: ~A~%     expected: ~A" name (channel->float-vector 0 (framples) ind 0) v))
+	(snd-display "~A forth:~%     current: ~A~%     expected: ~A" name (channel->float-vector 0 (framples) ind 0) v))
       (unless (mus-arrays-equal? v (reversed-read ind 0))
 	(set! happy #f)
-	(snd-display ";~A back: ~A ~A" name (reversed-read ind 0) v))
+	(snd-display "~A back: ~A ~A" name (reversed-read ind 0) v))
       happy))
   
   
   (define (check-both-chans ind name f0 f1)
     (let ((c0 (scan-channel f0 0 (framples) ind 0))
 	  (c1 (scan-channel f1 0 (framples) ind 1)))
-      (if c0 (snd-display ";~A swap c0: ~A" name c0))
-      (if c1 (snd-display ";~A swap c1: ~A" name c1))))
+      (if c0 (snd-display "~A swap c0: ~A" name c0))
+      (if c1 (snd-display "~A swap c1: ~A" name c1))))
   
   
   (define (convolve-coeffs v1 v2)
@@ -28294,7 +28294,7 @@ EDITS: 2
        (lambda (func name)
 	 (func)
 	 (if (not (= (edit-position oboe) 0))
-	     (snd-display ";dur:0 ~A? ~A ~A" name (edit-position oboe) (edit-fragment))))
+	     (snd-display "dur:0 ~A? ~A ~A" name (edit-position oboe) (edit-fragment))))
        (list 
 	(lambda () (scale-channel 2.0 0 0 oboe))
 	(lambda () (env-channel (make-env '(0 0 1 1) :length 124) 0 0 oboe))
@@ -28320,9 +28320,9 @@ EDITS: 2
 		      func
 		      (lambda args (car args)))))
 	   (if (not (eq? tag 'no-such-sample))
-	       (snd-display ";~A beg -1->~A" name tag))
+	       (snd-display "~A beg -1->~A" name tag))
 	   (if (not (= (edit-position oboe) 0))
-	       (snd-display ";beg:-1 ~A? ~A ~A" name (edit-position oboe) (edit-fragment)))))
+	       (snd-display "beg:-1 ~A? ~A ~A" name (edit-position oboe) (edit-fragment)))))
        (list 
 	(lambda () (scale-channel 2.0 -1 123 oboe))
 	(lambda () (env-channel (make-env '(0 0 1 1) :length 124) -1 123 oboe))
@@ -28344,121 +28344,121 @@ EDITS: 2
       
       (scale-channel 2.0 12345678 123 oboe)
       (if (not (= (edit-position oboe) 0))
-	  (snd-display ";beg:12345678 scale-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
+	  (snd-display "beg:12345678 scale-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
       (env-channel (make-env '(0 0 1 1) :length 124) 12345678 123 oboe)
       (if (not (= (edit-position oboe) 0))
-	  (snd-display ";beg:12345678 env-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
+	  (snd-display "beg:12345678 env-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
       (smooth-channel 12345678 123 oboe)
       (if (not (= (edit-position oboe) 0))
-	  (snd-display ";beg:12345678 smooth-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
+	  (snd-display "beg:12345678 smooth-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
       (src-channel 2.0 12345678 123 oboe)
       (if (not (= (edit-position oboe) 0))
-	  (snd-display ";beg:12345678 src-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
+	  (snd-display "beg:12345678 src-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
       (reverse-channel 12345678 123 oboe)
       (if (not (= (edit-position oboe) 0))
-	  (snd-display ";beg:12345678 reverse-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
+	  (snd-display "beg:12345678 reverse-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
       (play oboe :start 12345678 :end 12345801) ;(+ 12345678 123)
       
       (scale-channel 2.0 0 123 oboe 0)
       (if (not (= (edit-position oboe) 1))
-	  (snd-display ";oboe scale-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
+	  (snd-display "oboe scale-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
       (env-channel (make-env '(0 0 1 1) :length 124) 0 123 oboe 0)
       (if (not (= (edit-position oboe) 2))
-	  (snd-display ";oboe env-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
+	  (snd-display "oboe env-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
       (clm-channel (make-oscil) 0 123 oboe 0)
       (if (not (= (edit-position oboe) 3))
-	  (snd-display ";oboe clm-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
+	  (snd-display "oboe clm-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
       (float-vector->channel (make-float-vector 3) 0 123 oboe 0)
       (if (not (= (edit-position oboe) 4))
-	  (snd-display ";oboe float-vector->channel? ~A ~A" (edit-position oboe) (edit-fragment)))
+	  (snd-display "oboe float-vector->channel? ~A ~A" (edit-position oboe) (edit-fragment)))
       (smooth-channel 0 123 oboe 0)
       (if (not (= (edit-position oboe) 5))
-	  (snd-display ";oboe smooth-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
+	  (snd-display "oboe smooth-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
       (pad-channel 0 123 oboe 0)
       (if (not (= (edit-position oboe) 6))
-	  (snd-display ";oboe pad-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
+	  (snd-display "oboe pad-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
       (src-channel 2.0 0 123 oboe 0)
       (if (not (= (edit-position oboe) 7))
-	  (snd-display ";oboe src-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
+	  (snd-display "oboe src-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
       (mix-channel "pistol.snd" 0 123 oboe 0)
       (if (not (= (edit-position oboe) 8))
-	  (snd-display ";oboe mix-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
+	  (snd-display "oboe mix-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
       (insert-channel "pistol.snd" 0 123 oboe 0)
       (if (not (= (edit-position oboe) 9))
-	  (snd-display ";oboe insert-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
+	  (snd-display "oboe insert-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
       (reverse-channel 0 123 oboe 0)
       (if (not (= (edit-position oboe) 10))
-	  (snd-display ";oboe reverse-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
+	  (snd-display "oboe reverse-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
       (let ((sr (make-src :srate 2.0 
 			  :input (let ((rd (make-sampler 0)))
 				   (lambda (dir) 
 				     (read-sample rd))))))
 	(clm-channel sr 0 12345 oboe 0)
 	(if (not (= (edit-position oboe) 11))
-	    (snd-display ";oboe clm-channel src? ~A ~A" (edit-position oboe) (edit-fragment))))
+	    (snd-display "oboe clm-channel src? ~A ~A" (edit-position oboe) (edit-fragment))))
       (let ((sr (make-granulate :expansion 2.0 
 				:input (let ((rd (make-sampler 0)))
 					 (lambda (dir) 
 					   (read-sample rd))))))
 	(clm-channel sr 0 12345 oboe 0)
 	(if (not (= (edit-position oboe) 12))
-	    (snd-display ";oboe clm-channel granulate? ~A ~A" (edit-position oboe) (edit-fragment))))
+	    (snd-display "oboe clm-channel granulate? ~A ~A" (edit-position oboe) (edit-fragment))))
       (let ((sr (make-convolve :input (let ((rd (make-sampler 0)))
 					(lambda (dir) 
 					  (read-sample rd)))
 			       :filter (float-vector 1.0 0.0 0.0 0.0))))
 	(clm-channel sr 0 12345 oboe 0)
 	(if (not (= (edit-position oboe) 13))
-	    (snd-display ";oboe clm-channel convolve? ~A ~A" (edit-position oboe) (edit-fragment))))
+	    (snd-display "oboe clm-channel convolve? ~A ~A" (edit-position oboe) (edit-fragment))))
       (let ((sr (make-phase-vocoder :input (let ((rd (make-sampler 0)))
 					     (lambda (dir) 
 					       (read-sample rd))))))
 	(clm-channel sr 0 12345 oboe 0)
 	(if (not (= (edit-position oboe) 14))
-	    (snd-display ";oboe clm-channel phase-vocoder? ~A ~A" (edit-position oboe) (edit-fragment))))
+	    (snd-display "oboe clm-channel phase-vocoder? ~A ~A" (edit-position oboe) (edit-fragment))))
       (revert-sound)
       
       (catch #t (lambda () (env-channel (make-env '(0 0 1 1) :length 124) 0 123 oboe 0 123)) (lambda args (car args)))
       (if (not (= (edit-position oboe) 0))
-	  (snd-display ";edpos 123 env-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
+	  (snd-display "edpos 123 env-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
       (catch #t (lambda () (clm-channel (make-oscil) 0 123 oboe 0 123)) (lambda args (car args)))
       (if (not (= (edit-position oboe) 0))
-	  (snd-display ";edpos 123 clm-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
+	  (snd-display "edpos 123 clm-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
       (catch #t (lambda () (float-vector->channel (make-float-vector 3) 0 123 oboe 0 123)) (lambda args (car args)))
       (if (not (= (edit-position oboe) 0))
-	  (snd-display ";edpos 123 float-vector->channel? ~A ~A" (edit-position oboe) (edit-fragment)))
+	  (snd-display "edpos 123 float-vector->channel? ~A ~A" (edit-position oboe) (edit-fragment)))
       (catch #t (lambda () (smooth-channel 0 123 oboe 0 123)) (lambda args (car args)))
       (if (not (= (edit-position oboe) 0))
-	  (snd-display ";edpos 123 smooth-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
+	  (snd-display "edpos 123 smooth-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
       (catch #t (lambda () (pad-channel 0 123 oboe 0 123)) (lambda args (car args)))
       (if (not (= (edit-position oboe) 0))
-	  (snd-display ";edpos 123 pad-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
+	  (snd-display "edpos 123 pad-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
       (catch #t (lambda () (src-channel 2.0 0 123 oboe 0 123)) (lambda args (car args)))
       (if (not (= (edit-position oboe) 0))
-	  (snd-display ";edpos 123 src-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
+	  (snd-display "edpos 123 src-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
       (catch #t (lambda () (mix-channel "pistol.snd" 0 123 oboe 0 123)) (lambda args (car args)))
       (if (not (= (edit-position oboe) 0))
-	  (snd-display ";edpos 123 mix-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
+	  (snd-display "edpos 123 mix-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
       (catch #t (lambda () (insert-channel "pistol.snd" 0 123 oboe 0 123)) (lambda args (car args)))
       (if (not (= (edit-position oboe) 0))
-	  (snd-display ";edpos 123 insert-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
+	  (snd-display "edpos 123 insert-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
       (catch #t (lambda () (reverse-channel 0 123 oboe 0 123)) (lambda args (car args)))
       (if (not (= (edit-position oboe) 0))
-	  (snd-display ";edpos 123 reverse-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
+	  (snd-display "edpos 123 reverse-channel? ~A ~A" (edit-position oboe) (edit-fragment)))
       (revert-sound oboe)
       
       (let ((oldv (channel->float-vector 1000 10 oboe)))
 	(mix-channel "oboe.snd" 0)
 	(float-vector-scale! oldv 2.0)
 	(if (not (mus-arrays-equal? oldv (channel->float-vector 1000 10 oboe)))
-	    (snd-display ";mix-channel at 0: ~A ~A" oldv (channel->float-vector 1000 10 oboe)))
+	    (snd-display "mix-channel at 0: ~A ~A" oldv (channel->float-vector 1000 10 oboe)))
 	(revert-sound oboe)
 	(float-vector-scale! oldv 0.5)
 	(insert-channel "oboe.snd" 0)
 	(if (not (mus-arrays-equal? oldv (channel->float-vector 1000 10 oboe)))
-	    (snd-display ";insert-channel at 0: ~A ~A" oldv (channel->float-vector 1000 10 oboe)))
+	    (snd-display "insert-channel at 0: ~A ~A" oldv (channel->float-vector 1000 10 oboe)))
 	(if (not (= (framples oboe 0) (* 2 (framples oboe 0 0))))
-	    (snd-display ";insert-channel framples: ~A ~A" (framples oboe 0) (framples oboe 0 0)))
+	    (snd-display "insert-channel framples: ~A ~A" (framples oboe 0) (framples oboe 0 0)))
 	(revert-sound oboe))
       (close-sound oboe)
       
@@ -28469,44 +28469,44 @@ EDITS: 2
 	(revert-sound ind)
 	(let ((val (mix-channel "fmv.snd")))
 	  (if (mix? val)
-	      (snd-display ";mix-channel returned a mix: ~A?" val)))
+	      (snd-display "mix-channel returned a mix: ~A?" val)))
 	(if (not (mus-arrays-equal? (channel->float-vector 0 #f ind 1) (make-float-vector 10)))
-	    (snd-display ";mix-channel mixed channel 1: ~A?" (channel->float-vector 0 #f ind 1)))
+	    (snd-display "mix-channel mixed channel 1: ~A?" (channel->float-vector 0 #f ind 1)))
 	(if (not (mus-arrays-equal? (channel->float-vector 0 #f ind 0) (float-vector 0 0 0 .5 0 0 0 0 0 0)))
-	    (snd-display ";mix-channel chan 0: ~A" (channel->float-vector 0 #f ind 0)))
+	    (snd-display "mix-channel chan 0: ~A" (channel->float-vector 0 #f ind 0)))
 	(revert-sound ind)
 	(let ((val (mix-channel (list "fmv.snd" 2 1) 0 #f ind 0)))
 	  (if (mix? val)
-	      (snd-display ";mix-channel 2 returned a mix: ~A?" val)))
+	      (snd-display "mix-channel 2 returned a mix: ~A?" val)))
 	(if (not (mus-arrays-equal? (channel->float-vector 0 #f ind 1) (make-float-vector 10)))
-	    (snd-display ";mix-channel mixed channel 1a: ~A?" (channel->float-vector 0 #f ind 1)))
+	    (snd-display "mix-channel mixed channel 1a: ~A?" (channel->float-vector 0 #f ind 1)))
 	(if (not (mus-arrays-equal? (channel->float-vector 0 #f ind 0) (float-vector -.4 0 0 0 0 0 0 0 0 0)))
-	    (snd-display ";mix-channel chan 0a: ~A" (channel->float-vector 0 #f ind 0)))
+	    (snd-display "mix-channel chan 0a: ~A" (channel->float-vector 0 #f ind 0)))
 	(revert-sound ind)
 	(set! (sample 2 ind 1) -.4)
 	(let ((val (mix-channel (list ind 2 1) 0 #f ind 0 -1 #t)))
 	  (if (not (mix? val))
-	      (snd-display ";mix-channel with-tag: ~A" val)))
+	      (snd-display "mix-channel with-tag: ~A" val)))
 	(if (not (mus-arrays-equal? (channel->float-vector 0 #f ind 1) (float-vector 0 0 -.4 0 0 0 0 0 0 0)))
-	    (snd-display ";mix-channel mixed channel 1b: ~A?" (channel->float-vector 0 #f ind 1)))
+	    (snd-display "mix-channel mixed channel 1b: ~A?" (channel->float-vector 0 #f ind 1)))
 	(if (not (mus-arrays-equal? (channel->float-vector 0 #f ind 0) (float-vector -.4 0 0 0 0 0 0 0 0 0)))
-	    (snd-display ";mix-channel chan 0b: ~A" (channel->float-vector 0 #f ind 0)))
+	    (snd-display "mix-channel chan 0b: ~A" (channel->float-vector 0 #f ind 0)))
 	(revert-sound ind)
 	(let ((val (car (mix-channel (list "fmv.snd" 2 1) 0 #f ind 0 -1 #t))))
 	  (if (not (mix? val))
-	      (snd-display ";mix-channel file with-tag: ~A" val)))
+	      (snd-display "mix-channel file with-tag: ~A" val)))
 	(if (not (mus-arrays-equal? (channel->float-vector 0 #f ind 1) (make-float-vector 10)))
-	    (snd-display ";mix-channel mixed channel 1c: ~A?" (channel->float-vector 0 #f ind 1)))
+	    (snd-display "mix-channel mixed channel 1c: ~A?" (channel->float-vector 0 #f ind 1)))
 	(if (not (mus-arrays-equal? (channel->float-vector 0 #f ind 0) (float-vector -.4 0 0 0 0 0 0 0 0 0)))
-	    (snd-display ";mix-channel chan 0c: ~A" (channel->float-vector 0 #f ind 0)))
+	    (snd-display "mix-channel chan 0c: ~A" (channel->float-vector 0 #f ind 0)))
 	(revert-sound ind)
 	(let ((val (car (mix-channel (list "fmv.snd") 0 #f ind 1 -1 #t))))
 	  (if (not (mix? val))
-	      (snd-display ";mix-channel file 1 with-tag: ~A" val)))
+	      (snd-display "mix-channel file 1 with-tag: ~A" val)))
 	(if (not (mus-arrays-equal? (channel->float-vector 0 #f ind 0) (make-float-vector 10)))
-	    (snd-display ";mix-channel mixed channel 0d: ~A?" (channel->float-vector 0 #f ind 1)))
+	    (snd-display "mix-channel mixed channel 0d: ~A?" (channel->float-vector 0 #f ind 1)))
 	(if (not (mus-arrays-equal? (channel->float-vector 0 #f ind 1) (float-vector 0 0 0 .5 0 0 0 0 0 0)))
-	    (snd-display ";mix-channel chan 1d: ~A" (channel->float-vector 0 #f ind 1)))
+	    (snd-display "mix-channel chan 1d: ~A" (channel->float-vector 0 #f ind 1)))
 	(revert-sound ind)
 	(if (file-exists? "fmv.snd") (delete-file "fmv.snd"))
 	(close-sound ind))
@@ -28514,47 +28514,47 @@ EDITS: 2
       (if (not (= *default-output-chans* 1)) (set! *default-output-chans* 1))
       (let ((ind (new-sound "fmv.snd")))
 	(float-vector->channel (make-float-vector 20 1.0))
-	(if (not (= (framples) 20)) (snd-display ";float-vector->channel new 20: ~A" (framples)))
-	(if (fneq (maxamp) 1.0) (snd-display ";float-vector 1->new: ~A" (maxamp)))
+	(if (not (= (framples) 20)) (snd-display "float-vector->channel new 20: ~A" (framples)))
+	(if (fneq (maxamp) 1.0) (snd-display "float-vector 1->new: ~A" (maxamp)))
 	
 	(env-channel (make-env '(0 0 1 1 2 1) :base 0 :length 20))
 	(let ((v1 (channel->float-vector)))
 	  (if (not (mus-arrays-equal? v1 (float-vector 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1)))
-	      (snd-display ";env-channel step 1: ~A" v1)))
+	      (snd-display "env-channel step 1: ~A" v1)))
 	(undo)
 	(env-channel (make-env '(0 0 1 1 2 1) :base 0 :length 20) 8)
 	(let ((v1 (channel->float-vector)))
 	  (if (not (mus-arrays-equal? v1 (float-vector 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1)))
-	      (snd-display ";env-channel step 1 at 8: ~A" v1)))
+	      (snd-display "env-channel step 1 at 8: ~A" v1)))
 	(undo)
 	(env-channel (make-env '(0 0 1 1 2 1) :base 0 :length 12))
 	(let ((v1 (channel->float-vector)))
 	  (if (not (mus-arrays-equal? v1 (float-vector 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1)))
-	      (snd-display ";env-channel step 1 at 0: ~A" v1)))
+	      (snd-display "env-channel step 1 at 0: ~A" v1)))
 	(undo)
 	(env-channel (make-env '(0 0 1 1 2 1) :base 0 :length 12) 4)
 	(let ((v1 (channel->float-vector)))
 	  (if (not (mus-arrays-equal? v1 (float-vector 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1)))
-	      (snd-display ";env-channel step 1 at 4: ~A" v1)))
+	      (snd-display "env-channel step 1 at 4: ~A" v1)))
 	(undo)
 	(env-channel (make-env '(0 0 1 1 2 1) :base 0 :length 12) 4 3)
 	(let ((v1 (channel->float-vector)))
 	  (if (not (mus-arrays-equal? v1 (float-vector 1 1 1 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1)))
-	      (snd-display ";env-channel step 1 at 4 by 3: ~A" v1)))
+	      (snd-display "env-channel step 1 at 4 by 3: ~A" v1)))
 	(undo)
 	(env-channel (make-env '(0 1 1 0 2 0) :base 0 :length 8) 0 12)
 	(let ((v1 (channel->float-vector)))
 	  (if (not (mus-arrays-equal? v1 (float-vector 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1)))
-	      (snd-display ";env-channel step 1 at 0 for 7: ~A" v1)))
+	      (snd-display "env-channel step 1 at 0 for 7: ~A" v1)))
 	(undo)
 	(env-channel (make-env '(0 0 1 1 2 1 3 0 4 0) :base 0 :length 20))
 	(let ((v1 (channel->float-vector)))
 	  (if (not (mus-arrays-equal? v1 (float-vector 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0)))
-	      (snd-display ";env-channel step 1: ~A" v1)))
+	      (snd-display "env-channel step 1: ~A" v1)))
 	(env-channel (make-env '(0 0 1 .5 2 .25 3 0 4 0) :base 0 :length 21))
 	(let ((v1 (channel->float-vector)))
 	  (if (not (mus-arrays-equal? v1 (float-vector 0 0 0 0 0 0 .5 .5 .5 .5 .5 .25 .25 .25 .25 0 0 0 0 0)))
-	      (snd-display ";env-channel step 1 (.5): ~A" v1)))
+	      (snd-display "env-channel step 1 (.5): ~A" v1)))
 	(close-sound ind))
       
       (set! *x-axis-style* x-axis-as-percentage)
@@ -28565,17 +28565,17 @@ EDITS: 2
 	  (set! (sync ind) 64)
 	  (insert-sound "2.snd")
 	  (insert-sound "2.snd")
-	  (if (not (= (framples) (* 3 fr))) (snd-display ";2.snd 3x = ~A ~A" fr (framples)))
-	  (if (not (= (framples ind 0) (framples ind 1))) (snd-display ";insert sync'd: ~A ~A" (framples ind 0) (framples ind 1)))
+	  (if (not (= (framples) (* 3 fr))) (snd-display "2.snd 3x = ~A ~A" fr (framples)))
+	  (if (not (= (framples ind 0) (framples ind 1))) (snd-display "insert sync'd: ~A ~A" (framples ind 0) (framples ind 1)))
 	  (swap-channels)
 	  (if (or (fneq m0 (maxamp ind 1)) (fneq m1 (maxamp ind 0)))
-	      (snd-display ";swapped: ~A ~A -> ~A ~A" m0 m1 (maxamp ind 0) (maxamp ind 1)))
+	      (snd-display "swapped: ~A ~A -> ~A ~A" m0 m1 (maxamp ind 0) (maxamp ind 1)))
 	  (close-sound ind)))
       (set! *x-axis-style* x-axis-in-seconds)
       (let ((new-snd (mono-files->stereo "test.snd" "oboe.snd" "pistol.snd")))
-	(if (not (= (channels new-snd) 2)) (snd-display ";mono-files->stereo not stereo? ~A" (channels new-snd)))
-	(if (not (string=? (short-file-name new-snd) "test.snd")) (snd-display ";mono-files->stereo filename: ~A" (short-file-name new-snd)))
-	(if (not (= (framples new-snd) 50828)) (snd-display ";mono-files->stereo framples: ~A" (framples new-snd)))
+	(if (not (= (channels new-snd) 2)) (snd-display "mono-files->stereo not stereo? ~A" (channels new-snd)))
+	(if (not (string=? (short-file-name new-snd) "test.snd")) (snd-display "mono-files->stereo filename: ~A" (short-file-name new-snd)))
+	(if (not (= (framples new-snd) 50828)) (snd-display "mono-files->stereo framples: ~A" (framples new-snd)))
 	(close-sound new-snd))
       
       (let ((oboe0 (open-sound "oboe.snd"))
@@ -28585,7 +28585,7 @@ EDITS: 2
 	  (func0 #f #f oboe0)
 	  (func1 #f #f oboe1)
 	  (if (not (mus-arrays-equal? (channel->float-vector 1000 100 oboe0) (channel->float-vector 1000 100 oboe1)))
-	      (snd-display ";~A via #f: ~A ~A" name (channel->float-vector 1000 100 oboe0) (channel->float-vector 1000 100 oboe1)))
+	      (snd-display "~A via #f: ~A ~A" name (channel->float-vector 1000 100 oboe0) (channel->float-vector 1000 100 oboe1)))
 	  (revert-sound oboe0)
 	  (revert-sound oboe1)
 	  (select-sound oboe0)
@@ -28593,13 +28593,13 @@ EDITS: 2
 	  (select-sound oboe1)
 	  (func1)
 	  (if (not (mus-arrays-equal? (channel->float-vector 1000 100 oboe0) (channel->float-vector 1000 100 oboe1)))
-	      (snd-display ";~A via none: ~A ~A" name (channel->float-vector 1000 100 oboe0) (channel->float-vector 1000 100 oboe1)))
+	      (snd-display "~A via none: ~A ~A" name (channel->float-vector 1000 100 oboe0) (channel->float-vector 1000 100 oboe1)))
 	  (revert-sound oboe0)
 	  (revert-sound oboe1)
 	  (func0 0 (framples oboe0) oboe0)
 	  (func1 0 (framples oboe1) oboe1)
 	  (if (not (mus-arrays-equal? (channel->float-vector 1000 100 oboe0) (channel->float-vector 1000 100 oboe1)))
-	      (snd-display ";~A via framples: ~A ~A" name (channel->float-vector 1000 100 oboe0) (channel->float-vector 1000 100 oboe1)))
+	      (snd-display "~A via framples: ~A ~A" name (channel->float-vector 1000 100 oboe0) (channel->float-vector 1000 100 oboe1)))
 	  (revert-sound oboe0)
 	  (revert-sound oboe1))
 	
@@ -28664,10 +28664,10 @@ EDITS: 2
 	    (load (string-append cwd "hiho.scm"))
 	    (set! ind (find-sound "oboe.snd"))
 	    (if (not (sound? ind))
-		(snd-display ";save hiho failed?")
+		(snd-display "save hiho failed?")
 		(let ((new-vals (channel->float-vector 12295 200 ind 0)))
 		  (if (not (mus-arrays-equal? vals new-vals))
-		      (snd-display ";save state hiho vals: ~A ~A" vals new-vals))))
+		      (snd-display "save state hiho vals: ~A ~A" vals new-vals))))
 	    (close-sound ind))))
       
       (let ((ind (new-sound "test.snd")))
@@ -28683,7 +28683,7 @@ EDITS: 2
 	(reverse-channel 500000 1000000)
 	(set! (sample 0 ind 0 current-edit-position) .1)
 	(if (fneq (sample 0 ind 0 current-edit-position) .1) 
-	    (snd-display ";set sample + edpos: ~A" (sample 0 ind 0 current-edit-position)))
+	    (snd-display "set sample + edpos: ~A" (sample 0 ind 0 current-edit-position)))
 	(close-sound ind))
       (set! *x-axis-style* x-axis-in-seconds)
       
@@ -28708,10 +28708,10 @@ EDITS: 2
 		(lambda (posfunc)
 		  (let ((chn (min (random (+ 1 out-chans)) (- out-chans 1))))
 		    (if (not (mus-arrays-equal? (channel->float-vector 0 (framples ind chn) ind chn 0) (float-vector 0.0)))
-			(snd-display ";start bad: ~A" (channel->float-vector 0 (framples ind chn) ind chn 0)))
+			(snd-display "start bad: ~A" (channel->float-vector 0 (framples ind chn) ind chn 0)))
 		    (set! (sample 0 ind chn) .1)
 		    (if (not (mus-arrays-equal? (channel->float-vector 0 (framples ind chn) ind chn) (float-vector 0.1)))
-			(snd-display ";set bad: ~A" (channel->float-vector 0 (framples ind chn) ind chn)))
+			(snd-display "set bad: ~A" (channel->float-vector 0 (framples ind chn) ind chn)))
 		    (pad-channel 0 1 ind chn (posfunc))
 		    (let ((pos (posfunc)))
 		      (if (procedure? pos)
@@ -28724,7 +28724,7 @@ EDITS: 2
 				     (not (mus-arrays-equal? data (float-vector 0.0 0.1))))			  
 				(and (= pos (- (edit-position ind chn) 1))
 				     (not (mus-arrays-equal? data (float-vector 0.0 0.0)))))
-			    (snd-display ";pos[~A]: edpos ~A of ~A, pad result[~A, ~A]: ~A" 
+			    (snd-display "pos[~A]: edpos ~A of ~A, pad result[~A, ~A]: ~A" 
 					 chn pos (edit-position ind chn) (framples ind chn pos) (framples ind chn) data))
 			(if (> (chans ind) 1)
 			    (do ((i 0 (+ i 1)))
@@ -28732,7 +28732,7 @@ EDITS: 2
 			      (if (not (= i chn))
 				  (let ((data (channel->float-vector 0 (framples ind i) ind i)))
 				    (if (not (mus-arrays-equal? data (float-vector 0.0)))
-					(snd-display ";pad[~A / ~A] empty: ~A" i chn data))))))))))
+					(snd-display "pad[~A / ~A] empty: ~A" i chn data))))))))))
 		(lambda (posfunc)
 		  (let ((chn (min (random (+ 1 out-chans)) (- out-chans 1))))
 		    (set! (sample 0 ind chn) .1)
@@ -28747,7 +28747,7 @@ EDITS: 2
 				     (not (mus-arrays-equal? data (float-vector 0.2))))			  
 				(and (= pos (- (edit-position ind chn) 1))
 				     (not (mus-arrays-equal? data (float-vector 0.0)))))
-			    (snd-display ";pos[~A]: edpos ~A of ~A, set *2 result[~A, ~A]: ~A" 
+			    (snd-display "pos[~A]: edpos ~A of ~A, set *2 result[~A, ~A]: ~A" 
 					 chn pos (edit-position ind chn) (framples ind chn pos) (framples ind chn) data))
 			(if (> (chans ind) 1)
 			    (do ((i 0 (+ i 1)))
@@ -28755,34 +28755,34 @@ EDITS: 2
 			      (if (not (= i chn))
 				  (let ((data (channel->float-vector 0 (framples ind i) ind i)))
 				    (if (not (mus-arrays-equal? data (float-vector 0.0)))
-					(snd-display ";scale[~A / ~A] empty: ~A" i chn data)))))))))))))
+					(snd-display "scale[~A / ~A] empty: ~A" i chn data)))))))))))))
 	    '("2a.snd" "1a.snd" "4a.snd"))
 	   (close-sound ind)))
        '(1 2 4))
       
       (let ((ind (open-sound "oboe.snd")))
 	(map-channel (lambda (y) #f))
-	(if (not (= (framples ind) 0)) (snd-display ";map-channel #f framples: ~A" (framples ind)))
-	(if (equal? (edits ind) '(0 0)) (snd-display ";map-channel #f edits backed up"))
+	(if (not (= (framples ind) 0)) (snd-display "map-channel #f framples: ~A" (framples ind)))
+	(if (equal? (edits ind) '(0 0)) (snd-display "map-channel #f edits backed up"))
 	(undo 1 ind)
-	(if (= (framples ind) 0) (snd-display ";map-channel #f framples after undo: ~A" (framples ind)))
+	(if (= (framples ind) 0) (snd-display "map-channel #f framples after undo: ~A" (framples ind)))
 	(let ((tag (catch #t (lambda () (map-channel (lambda (y) (copy "hiho")))) (lambda args (car args)))))
-	  (if (not (memq tag '(bad-type wrong-type-arg))) (snd-display ";map-channel bad-type: ~A" tag)))
+	  (if (not (memq tag '(bad-type wrong-type-arg))) (snd-display "map-channel bad-type: ~A" tag)))
 	(let* ((ctr 0)
 	       (tag (catch #t (lambda () (scan-channel (lambda (y) (set! ctr (+ ctr 1)) (asdf)))) (lambda args (car args)))))
-	  (if (not (= ctr 1)) (snd-display ";scan-channel error exit: ~A" ctr))
+	  (if (not (= ctr 1)) (snd-display "scan-channel error exit: ~A" ctr))
 	  (if (not (memq tag '(unbound-variable syntax-error error)))
-	      (snd-display ";scan-channel unbound: ~A" tag)))
-	(let ((val (scan-channel (lambda (y) #f)))) (if val (snd-display ";scan-channel func #f: ~A" val)))
-	(let ((val (scan-channel (lambda (y) #f) 1234))) (if val (snd-display ";scan-channel func #f with beg: ~A" val)))
-	(let ((val (scan-channel (lambda (y) #f) 1234 4321))) (if val (snd-display ";scan-channel func #f with beg+dur: ~A" val)))
+	      (snd-display "scan-channel unbound: ~A" tag)))
+	(let ((val (scan-channel (lambda (y) #f)))) (if val (snd-display "scan-channel func #f: ~A" val)))
+	(let ((val (scan-channel (lambda (y) #f) 1234))) (if val (snd-display "scan-channel func #f with beg: ~A" val)))
+	(let ((val (scan-channel (lambda (y) #f) 1234 4321))) (if val (snd-display "scan-channel func #f with beg+dur: ~A" val)))
 	(revert-sound ind)
 	(clm-channel (make-delay 1000) 0 (framples) ind 0 0 2000) ; chn=0, edpos=0, overlap=2000?
 	(let ((len (framples)))
 	  (if (not (= len 52828))
-	      (snd-display ";clm-channel overlap length: ~A ~A" len (framples)))
+	      (snd-display "clm-channel overlap length: ~A ~A" len (framples)))
 	  (if (not (equal? (edit-tree) '((0 1 0 52827 1.0 0.0 0.0 0) (52828 -2 0 0 0.0 0.0 0.0 0))))
-	      (snd-display ";clm-channel overlaps: ~A" (edit-tree)))
+	      (snd-display "clm-channel overlaps: ~A" (edit-tree)))
 	  (let ((reader (make-sampler 0))
 		(preader (make-sampler 0 ind 0 1 0))
 		(happy #t))
@@ -28790,7 +28790,7 @@ EDITS: 2
 		((or (not happy) (= i 1000)))
 	      (let ((val (reader)))
 		(when (fneq val 0.0)
-		  (snd-display ";clm-channel overlap delayed: ~A: ~A" i val)
+		  (snd-display "clm-channel overlap delayed: ~A: ~A" i val)
 		  (set! happy #f))))
 	    (let ((v0 (make-float-vector len))
 		  (v1 (make-float-vector len)))
@@ -28801,11 +28801,11 @@ EDITS: 2
 		  ((= i len))
 		(float-vector-set! v1 i (read-sample reader)))
 	      (if (not (mus-arrays-equal? v0 v1))
-		  (snd-display ";clm-channel overlap main: ~A ~A" v0 v1)))
+		  (snd-display "clm-channel overlap main: ~A ~A" v0 v1)))
 	    (do ((i 0 (+ i 1)))
 		((or (not happy) (= i 1000)))
 	      (when (fneq (reader) 0.0)
-		(snd-display ";clm-channel overlap trailing garbage")
+		(snd-display "clm-channel overlap trailing garbage")
 		(set! happy #f)))))
 	(close-sound ind))
       
@@ -28834,7 +28834,7 @@ EDITS: 2
 	  ;; can't use maxamp here because it may be set by scaling process
 	  (if (or (fneq oldamp (* .1 amp))
 		  (not (= loc oldloc)))
-	      (snd-display ";reverse edpos screwup: ~A at ~A,  ~A at ~A" oldamp oldloc amp loc)))
+	      (snd-display "reverse edpos screwup: ~A at ~A,  ~A at ~A" oldamp oldloc amp loc)))
 	(undo)
 	(reverse-channel 0 #f ind 0 2)
 	(let ((amp 0.0)
@@ -28849,7 +28849,7 @@ EDITS: 2
 	  ;; can't use maxamp here because it may be set by scaling process
 	  (if (or (fneq oldamp amp)
 		  (not (= loc oldloc)))
-	      (snd-display ";reverse unscaled edpos screwup: ~A at ~A,  ~A at ~A" oldamp oldloc amp loc)))
+	      (snd-display "reverse unscaled edpos screwup: ~A at ~A,  ~A at ~A" oldamp oldloc amp loc)))
 	
 	(close-sound ind))
       
@@ -28883,7 +28883,7 @@ EDITS: 2
 			 vals "env-channel 15 10 a")
 	(select-all)
 	(if (fneq (selection-maxamp) 1.0)
-	    (snd-display ";selection-maxamp in checker: ~A" (selection-maxamp)))
+	    (snd-display "selection-maxamp in checker: ~A" (selection-maxamp)))
 	(scale-selection-to 1.0)
 	(check-edit-tree '((0 1 0 9 1.0 0.0 0.0 0) (10 1 10 14 0.5 0.0 0.0 0) (15 1 15 24 0.5 0.0 0.1 1)
 			   (25 1 25 29 0.5 0.0 0.0 0) (30 1 30 99 1.0 0.0 0.0 0) (100 -2 0 0 0.0 0.0 0.0 0)) 
@@ -28916,7 +28916,7 @@ EDITS: 2
 			   (21 1 21 24 0.5 0.6 0.1 4) (25 1 25 29 0.5 0.0 0.0 0) 
 			   (30 1 30 99 1.0 0.0 0.0 0) (100 -2 0 0 0.0 0.0 0.0 0))
 			 vals "reverse-channel 5 10")
-	(if (fneq (selection-maxamp) .5) (snd-display ";selection-maxamp before: ~A" (selection-maxamp)))
+	(if (fneq (selection-maxamp) .5) (snd-display "selection-maxamp before: ~A" (selection-maxamp)))
 	(let ((mixvals (make-float-vector 10 .1))
 	      (old-sample4 (sample 4))
 	      (old-sample5 (sample 5)))
@@ -28946,11 +28946,11 @@ EDITS: 2
 			     (25 1 25 27 0.5 0.0 0.0 0) (28 -1 0 11 0.0 0.0 0.0 2) 
 			     (40 1 40 99 1.0 0.0 0.0 0) (100 -2 0 0 0.0 0.0 0.0 0))
 			   vals "delete/insert")
-	  (if (fneq (selection-maxamp) .6) (snd-display ";selection-maxamp after: ~A" (selection-maxamp)))
+	  (if (fneq (selection-maxamp) .6) (snd-display "selection-maxamp after: ~A" (selection-maxamp)))
 	  (set! (selection-position) 50)
 	  (set! (selection-framples) 10)
 	  (scale-selection-by .1)
-	  (if (fneq (selection-maxamp) .1) (snd-display ";re-selection-maxamp: ~A" (selection-maxamp)))
+	  (if (fneq (selection-maxamp) .1) (snd-display "re-selection-maxamp: ~A" (selection-maxamp)))
 	  (do ((i 50 (+ i 1)))
 	      ((= i 60))
 	    (set! (vals i) .1))
@@ -29024,7 +29024,7 @@ EDITS: 2
 	(set! (selection-position) 20)
 	(set! (selection-framples) 70)
 	(env-selection '(0 0 1 1))
-	(if (fneq (selection-maxamp ind 0) 1.0) (snd-display ";selection-maxamp after env-selection: ~A" (selection-maxamp ind 0)))
+	(if (fneq (selection-maxamp ind 0) 1.0) (snd-display "selection-maxamp after env-selection: ~A" (selection-maxamp ind 0)))
 	(do ((i 20 (+ i 1))
 	     (x 0.0)
 	     (incr (/ 1.0 69.0)))
@@ -29047,7 +29047,7 @@ EDITS: 2
 			   (71 1 71 74 0.0 0.0 0.0 2) (75 6 0 9 0.5 0.797101438045502 0.014492753893137 4) 
 			   (85 1 85 89 0.5 0.942028999328613 0.014492753893137 4) (90 1 90 99 0.5 0.0 0.0 0) (100 -2 0 0 0.0 0.0 0.0 0))
 			 vals "scale-to")
-	(if (fneq (selection-maxamp) .5) (snd-display ";selection-maxamp after scale: ~A" (selection-maxamp)))
+	(if (fneq (selection-maxamp) .5) (snd-display "selection-maxamp after scale: ~A" (selection-maxamp)))
 	(delete-samples 0 100)
 	(insert-silence 0 100)
 	(fill! vals 0.0)
@@ -29099,7 +29099,7 @@ EDITS: 2
 					;	  (load (string-append cwd "hiho.scm"))
 					;	  (check-edit-tree '((0 14 0 24 1.0 0.0 0.0 0) (25 12 25 49 1.0 0.0 0.0 0) (50 13 0 0 1.0 0.0 0.0 0) (51 12 51 74 1.0 0.0 0.0 0) (75 15 0 24 1.0 0.0 0.0 0) (100 -2 0 0 0.0 0.0 0.0 0))
 					;			   vals "reload edits")
-					;	  (if (not (equal? (edits) (list 27 0))) (snd-display ";edits after reload: ~A" (edits)))
+					;	  (if (not (equal? (edits) (list 27 0))) (snd-display "edits after reload: ~A" (edits)))
 					;	  (delete-file "hiho.scm")
 	
 	(env-channel (make-env '(0 1 1 0 2 1) :length 20) 50 20)
@@ -29163,7 +29163,7 @@ EDITS: 2
 			   ((= i dur))
 			 (float-vector-set! v1 i (e)))))
 	       (if (not (mus-arrays-equal? v0 v1))
-		   (snd-display ";~A env check [~A]: ~A ~A" name r rv ev))))
+		   (snd-display "~A env check [~A]: ~A ~A" name r rv ev))))
 	   
 	   (float-vector->channel v)
 	   (env-sound '(0 0 1 1))
@@ -29257,7 +29257,7 @@ EDITS: 2
 	     (float-vector->channel v1 3 3)
 	     (let ((vals (channel->float-vector 0 10)))
 	       (if (not (mus-arrays-equal? vals (float-vector 0.0 (/ 1.111 dur) (/ 2.222 dur) 1 1 1 (/ 6.66  dur) (/ 7.77  dur) (/ 8.88  dur) (/ 10.0 dur))))
-		   (snd-display "; 1 vals: ~A" vals))))
+		   (snd-display " 1 vals: ~A" vals))))
 	   (undo 2)
 	   (env-sound '(0 0 1 1))
 	   (let ((v1 (make-float-vector 3 1.0)))
@@ -29265,7 +29265,7 @@ EDITS: 2
 	     (insert-samples 3 3 v1)
 	     (let ((vals (channel->float-vector 0 10)))
 	       (if (not (mus-arrays-equal? vals (float-vector 0.0 (/ 1.111 dur) (/ 2.222 dur) 1 1 1 (/ 6.66  dur) (/ 7.77  dur) (/ 8.88  dur) (/ 10.0 dur))))
-		   (snd-display "; 2 vals: ~A" vals))))
+		   (snd-display " 2 vals: ~A" vals))))
 	   (undo 3)
 	   (env-sound '(0 0 1 1))
 	   (let ((v1 (make-float-vector 3 1.0)))
@@ -29280,13 +29280,13 @@ EDITS: 2
 		   (float-vector->channel v1 3 3)
 		   (let ((vals (channel->float-vector 0 10)))
 		     (if (not (mus-arrays-equal? vals (float-vector 0.0 .2 .4 1 1 1 .75 .5 .25 0)))
-			 (snd-display "; 4 vals (~A): ~A" dur vals))))
+			 (snd-display " 4 vals (~A): ~A" dur vals))))
 		 (begin
 		   (fill! v1 0.0)
 		   (float-vector->channel v1 4998 3)
 		   (let ((vals (channel->float-vector 4995 10)))
 		     (if (not (mus-arrays-equal? vals (float-vector 0.999 0.999 1.000 0.000 0.000 0.000 1.000 0.999 0.999 0.999)))
-			 (snd-display "; 4 vals big: ~A" vals))))))
+			 (snd-display " 4 vals big: ~A" vals))))))
 	   (undo 2)
 	   (when (= dur 10)
 	     (env-sound '(0 0 1 1 2 0))
@@ -29295,21 +29295,21 @@ EDITS: 2
 	       (insert-samples 3 3 v1)
 	       (let ((vals (channel->float-vector 0 10)))
 		 (if (not (mus-arrays-equal? vals (float-vector 0.0 .2 .4 1 1 1 .75 .5 .25 0)))
-		     (snd-display "; 2 vals: ~A" vals))))
+		     (snd-display " 2 vals: ~A" vals))))
 	     (undo 3)
 	     (env-sound '(0 0 1 1 2 0))
 	     (let ((v1 (make-float-vector 3 1.0)))
 	       (float-vector->channel v1 0 3)
 	       (let ((vals (channel->float-vector 0 10)))
 		 (if (not (mus-arrays-equal? vals (float-vector 1.000 1.000 1.000 0.600 0.800 1.000 0.750 0.500 0.250 0.000)))
-		     (snd-display "; 4 vals: ~A" vals))))
+		     (snd-display " 4 vals: ~A" vals))))
 	     (undo 2)
 	     (env-sound '(0 0 1 1 2 0))
 	     (let ((v1 (make-float-vector 3 1.0)))
 	       (float-vector->channel v1 7 3)
 	       (let ((vals (channel->float-vector 0 10)))
 		 (if (not (mus-arrays-equal? vals (float-vector 0.000 0.200 0.400 0.600 0.800 1.000 0.750 1.000 1.000 1.000)))
-		     (snd-display "; 5 vals: ~A" vals))))
+		     (snd-display " 5 vals: ~A" vals))))
 	     (undo 2))
 	   (clean-up-sound i1)))
        '(10 10000))
@@ -29414,7 +29414,7 @@ EDITS: 2
 			   (+ (next-sample reader) y)))
 	    (check-edit-tree '((0 2 0 99999 1.0 0.0 0.0 0) (100000 -2 0 0 0.0 0.0 0.0 0))
 			     (make-float-vector 100000) "invert and add")
-	    (if (fneq (maxamp) 0.0) (snd-display ";invert-and-add maxamp: ~A" (maxamp))))
+	    (if (fneq (maxamp) 0.0) (snd-display "invert-and-add maxamp: ~A" (maxamp))))
 	  
 	  (undo 1)
 	  (ramp-channel -1.0 1.0 50000 30000)
@@ -29427,8 +29427,8 @@ EDITS: 2
 	  (env-sound '(0 0 1 1))
 	  (reverse-channel)
 	  (delete-samples 1 99999)
-	  (if (fneq (sample 0) -1.0) (snd-display ";sample at end: ~A" (sample 0)))
-	  (if (not (= (framples) 1)) (snd-display ";length at end: ~A" (framples)))
+	  (if (fneq (sample 0) -1.0) (snd-display "sample at end: ~A" (sample 0)))
+	  (if (not (= (framples) 1)) (snd-display "length at end: ~A" (framples)))
 	  (check-edit-tree '((0 2 0 0 1.0 0.0 0.0 0) (1 -2 0 0 0.0 0.0 0.0 0))
 			   (make-float-vector 1 -1.0) "at end")
 	(close-sound ind)))
@@ -29440,7 +29440,7 @@ EDITS: 2
 	(let ((val (sample 50827)))
 	  (if (or (not (number? val))
 		  (fneq val 0.0))
-	      (snd-display ";round-off env: ~A" val)))
+	      (snd-display "round-off env: ~A" val)))
 	(check-edit-tree '((0 0 0 15111 1.0 0.984011590480804 -5.77709688514005e-5 4) (15112 0 15112 27516 1.0 0.110976688563824 2.20663678192068e-5 4) (27517 0 27517 29482 1.0 0.384709984064102 8.4813182184007e-5 4) (29483 0 29483 33763 1.0 0.551452696323395 6.82959798723459e-5 4) (33764 0 33764 50827 1.0 0.843827784061432 -3.61598467861768e-5 4) (50828 -2 0 0 0.0 0.0 0.0 0))
 			 #f "round-off test")
 	(revert-sound ind)
@@ -29449,7 +29449,7 @@ EDITS: 2
 	(scale-channel .5 1000 1000)
 	(let ((val (sample 800)))
 	  (if (fneq val .0314)
-	      (snd-display ";scl on env trouble: ~A" val)))
+	      (snd-display "scl on env trouble: ~A" val)))
 	(check-edit-tree '((0 1 0 999 1.0 0.0 3.93483896914404e-5 4) (1000 1 1000 1999 0.5 0.0393483899533749 3.93483896914404e-5 4) (2000 1 2000 25413 1.0 0.0786967799067497 3.93483896914404e-5 4) (25414 1 25414 50827 1.0 1.0 -3.93499394704122e-5 4) (50828 -2 0 0 0.0 0.0 0.0 0))
 			 #f "scl on env")
 	(revert-sound ind)
@@ -29459,7 +29459,7 @@ EDITS: 2
 	(ramp-channel 0.0 1.0)
 	(let ((val (sample 20000)))
 	  (if (fneq val (expt (/ 20000.0 50828) 3))
-	      (snd-display ";ramp-channels piled up: ~A" val)))
+	      (snd-display "ramp-channels piled up: ~A" val)))
 	(check-edit-tree '((0 1 0 50827 1.0 0.0 1.96745822904631e-5 10) (50828 -2 0 0 0.0 0.0 0.0 0))
 			 #f "ramp upon ramp")
 	(revert-sound ind)
@@ -29472,7 +29472,7 @@ EDITS: 2
 	      (val3 (let ((ratio (/ 20000.0 50828)))
 		      (* (+ 0.5 (* 0.5 ratio)) 0.5 ratio (+ 0.1 (* ratio 0.3))))))
 	  (if (fneq val val3)
-	      (snd-display ";ramp-channels piled up (2): ~A ~A" val val3)))
+	      (snd-display "ramp-channels piled up (2): ~A ~A" val val3)))
 	
 	(revert-sound ind)
 	(env-channel '(0 0 1 1 2 0))
@@ -29532,7 +29532,7 @@ EDITS: 2
 			 ((= i dur))
 		       (float-vector-set! v1 i (r))))
 		 (if (not (mus-arrays-equal? v0 v1))
-		     (snd-display ";~A env check: ~A ~A" name v0 v1))))
+		     (snd-display "~A env check: ~A ~A" name v0 v1))))
 	     (check-env (format #f "~A-1-0" name) (r-maker i1 0) (e-maker))
 	     (check-env (format #f "~A-2-0" name) (r-maker i2 0) (e-maker))
 	     (check-env (format #f "~A-2-1" name) (r-maker i2 1) (e-maker)))
@@ -29573,13 +29573,13 @@ EDITS: 2
 	     (float-vector->channel v1 3 3 i2 1)
 	     (let ((vals (channel->float-vector 0 10 i1 0)))
 	       (if (not (mus-arrays-equal? vals (float-vector 0.0 (/ 1.111 dur) (/ 2.222 dur) 1 1 1 (/ 6.66  dur) (/ 7.77  dur) (/ 8.88  dur) (/ 10.0 dur))))
-		   (snd-display "; 1 0 vals: ~A" vals))
+		   (snd-display " 1 0 vals: ~A" vals))
 	       (set! vals (channel->float-vector 0 10 i2 0))
 	       (if (not (mus-arrays-equal? vals (float-vector 0.0 (/ 1.111 dur) (/ 2.222 dur) 1 1 1 (/ 6.66  dur) (/ 7.77  dur) (/ 8.88  dur) (/ 10.0 dur))))
-		   (snd-display "; 2 0 vals: ~A" vals))
+		   (snd-display " 2 0 vals: ~A" vals))
 	       (set! vals (channel->float-vector 0 10 i2 1))
 	       (if (not (mus-arrays-equal? vals (float-vector 0.0 (/ 1.111 dur) (/ 2.222 dur) 1 1 1 (/ 6.66  dur) (/ 7.77  dur) (/ 8.88  dur) (/ 10.0 dur))))
-		   (snd-display "; 2 1 vals: ~A" vals))))
+		   (snd-display " 2 1 vals: ~A" vals))))
 	   (clean-up-sound i1)
 	   (close-sound i2)
 	   ))
@@ -29619,12 +29619,12 @@ EDITS: 2
 		   (let ((away (string-append home-dir "/test/sound/away.snd")))
 		     (list "1a.snd" "oboe.snd" "storm.snd" (if (file-exists? away) away "lola.snd"))))))
 	
-	(snd-display ";         scl    rev    env    map    scn    pad    wrt    clm    mix    src    del")
-	(snd-display ";1a:   ~{~A ~}" (map (lambda (a) (if (< a .005) (copy "   0.0") (format #f "~6,2F" a))) (car data)))
-	(snd-display ";oboe: ~{~A ~}" (map (lambda (a) (if (< a .005) (copy "   0.0") (format #f "~6,2F" a))) (cdar data)))
-	(snd-display ";storm:~{~A ~}" (map (lambda (a) (if (< a .005) (copy "   0.0") (format #f "~6,2F" a))) (caddr data)))
+	(snd-display "         scl    rev    env    map    scn    pad    wrt    clm    mix    src    del")
+	(snd-display "1a:   ~{~A ~}" (map (lambda (a) (if (< a .005) (copy "   0.0") (format #f "~6,2F" a))) (car data)))
+	(snd-display "oboe: ~{~A ~}" (map (lambda (a) (if (< a .005) (copy "   0.0") (format #f "~6,2F" a))) (cdar data)))
+	(snd-display "storm:~{~A ~}" (map (lambda (a) (if (< a .005) (copy "   0.0") (format #f "~6,2F" a))) (caddr data)))
 	(if (pair? (cadddr data))
-	    (snd-display ";away: ~{~A ~}" (map (lambda (a) (if (< a .005) (copy "   0.0") (format #f "~6,2F" a))) (cadddr data)))))
+	    (snd-display "away: ~{~A ~}" (map (lambda (a) (if (< a .005) (copy "   0.0") (format #f "~6,2F" a))) (cadddr data)))))
       
       (when with-big-file
 	(when all-args
@@ -29643,11 +29643,11 @@ EDITS: 2
 			      (list (lambda () 
 				      (let ((ma (maxamp)))
 					(scale-channel 2.0)
-					(if (fneq (maxamp) (* 2 ma)) (snd-display ";bigger scale max: ~A ~A" ma (maxamp)))))
+					(if (fneq (maxamp) (* 2 ma)) (snd-display "bigger scale max: ~A ~A" ma (maxamp)))))
 				    (lambda () 
 				      (let ((ma (maxamp)))
 					(env-channel '(0 0 1 1))
-					(if (fneq (maxamp) ma) (snd-display ";bigger env max: ~A ~A" ma (maxamp)))))
+					(if (fneq (maxamp) ma) (snd-display "bigger env max: ~A ~A" ma (maxamp)))))
 				    (lambda () (pad-channel 0 2000))
 				    (lambda () (pad-channel 1336909605 297671280))
 				    (lambda () (insert-silence (+ (framples ind) 100) 100))
@@ -29660,7 +29660,7 @@ EDITS: 2
 				    (lambda () (delete-samples (- (framples ind) 100) 10))
 				    ))))
 		  (set! (squelch-update ind) #f)
-		  (snd-display ";big:  ~{~6,2F~}" times)
+		  (snd-display "big:  ~{~6,2F~}" times)
 		  ))
 	      (lambda args (set! (squelch-update) #f)))
 	    (close-sound ind)))
@@ -29688,21 +29688,21 @@ EDITS: 2
 		(select-channel 0)
 		(set! (squelch-update) #t)
 		(if (not (fieql (edit-tree) (list (list 0 0 0 (- big-file-framples 1) 1.0 0.0 0.0 0) (list big-file-framples -2 0 0 0.0 0.0 0.0 0))))
-		    (snd-display ";bigger initial tree: ~A" (edit-tree)))
+		    (snd-display "bigger initial tree: ~A" (edit-tree)))
 		(fill! vals 1.0)
 		(let ((maxa (maxamp)))
 		  (scale-channel 0.5)
 		  (set! old-vals (channel->float-vector (- (* (floor *clm-srate*) 50000) 50) 200))
-		  (if (fneq (maxamp) (* 0.5 maxa)) (snd-display ";bigger scale: ~A ~A" maxa (maxamp)))))
+		  (if (fneq (maxamp) (* 0.5 maxa)) (snd-display "bigger scale: ~A ~A" maxa (maxamp)))))
 	      (set! (samples (* (floor *clm-srate*) 50000) 100) vals)
 	      (if (not (fieql (edit-tree) (list (list 0 0 0 2204999999 0.5 0.0 0.0 0) 
 						(list 2205000000 1 0 99 1.0 0.0 0.0 0) 
 						(list 2205000100 0 2205000100 (- big-file-framples 1) 0.5 0.0 0.0 0) 
 						(list big-file-framples -2 0 0 0.0 0.0 0.0 0))))
-		  (snd-display ";bigger set tree: ~A" (edit-tree)))
+		  (snd-display "bigger set tree: ~A" (edit-tree)))
 	      (let ((new-vals (channel->float-vector (- (* (floor *clm-srate*) 50000) 50) 200)))
 		(do ((i 50 (+ i 1))) ((= i 150)) (set! (old-vals i) 1.0))
-		(if (not (mus-arrays-equal? new-vals old-vals)) (snd-display ";bigger set ~A ~A" old-vals new-vals))))
+		(if (not (mus-arrays-equal? new-vals old-vals)) (snd-display "bigger set ~A ~A" old-vals new-vals))))
 	    (env-channel (make-env '(0 0 1 1) :length (* (floor *clm-srate*) 60000)) 1000 (* (floor *clm-srate*) 60000))
 	    (if (not (fieql (edit-tree) (list (list 0 0 0 999 0.5 0.0 0.0 0) 
 					      (list 1000 0 1000 2204999999 0.5 1.12130420080871e-17 0.83333295583725 1) 
@@ -29710,7 +29710,7 @@ EDITS: 2
 					      (list 2205000100 0 2205000100 2646000999 0.5 0.833333015441895 1.0 1) 
 					      (list 2646001000 0 2646001000 (- big-file-framples 1) 0.5 0.0 0.0 0) 
 					      (list big-file-framples -2 0 0 0.0 0.0 0.0 0))))
-		(snd-display ";bigger with env: ~A" (edit-tree)))
+		(snd-display "bigger with env: ~A" (edit-tree)))
 	    (revert-sound ind)
 	    (env-channel (make-env '(0 0 1 1 2 0) :length 101) (* (floor *clm-srate*) 50000) 100)
 	    (if (not (fieql (edit-tree) (list (list 0 0 0 2204999999 1.0 0.0 0.0 0) 
@@ -29718,72 +29718,72 @@ EDITS: 2
 					      (list 2205000051 0 2205000051 2205000099 1.0 0.979591846466064 -5.55111512312578e-17 2) 
 					      (list 2205000100 0 2205000100 (- big-file-framples 1) 1.0 0.0 0.0 0) 
 					      (list big-file-framples -2 0 0 0.0 0.0 0.0 0))))
-		(snd-display ";bigger short env: ~A" (edit-tree)))
+		(snd-display "bigger short env: ~A" (edit-tree)))
 	    (let ((r (make-sampler (+ 75 (* (floor *clm-srate*) 50000))))
 		  (v (make-float-vector 10)))
 	      (do ((i 0 (+ i 1)))
 		  ((= i 10))
 		(set! (v i) (read-sample r)))
 	      (if (not (mus-arrays-equal? v (float-vector -0.021 -0.020 -0.020 -0.019 -0.018 -0.017 -0.016 -0.016 -0.015 -0.014)))
-		  (snd-display ";bigger short env vals: ~A" v)))
+		  (snd-display "bigger short env vals: ~A" v)))
 	    (revert-sound)
 	    
 	    (let ((v (channel->float-vector (+ 75 (* (floor *clm-srate*) 50000)) 10)))
 	      (if (not (mus-arrays-equal? v (float-vector -0.042 -0.043 -0.044 -0.045 -0.045 -0.045 -0.045 -0.045 -0.045 -0.046)))
-		  (snd-display ";bigger no env vals: ~A" v)))
+		  (snd-display "bigger no env vals: ~A" v)))
 	    (scale-to 1.0)
-	    (if (fneq (maxamp) 1.0) (snd-display ";bigger scale-to 1.0 maxamp: ~A" (maxamp)))
+	    (if (fneq (maxamp) 1.0) (snd-display "bigger scale-to 1.0 maxamp: ~A" (maxamp)))
 	    (set! (sample (* (floor *clm-srate*) 51000)) 0.0)
 	    (if (not (fieql (edit-tree) (list (list 0 0 0 2249099999 1.18574941158295 0.0 0.0 0) 
 					      (list 2249100000 1 0 0 1.0 0.0 0.0 0) 
 					      (list 2249100001 0 2249100001 (- big-file-framples 1) 1.18574941158295 0.0 0.0 0) 
 					      (list big-file-framples -2 0 0 0.0 0.0 0.0 0))))
-		(snd-display ";bigger set 0 samp: ~A" (edit-tree)))
-	    (if (fneq (sample (* (floor *clm-srate*) 51000)) 0.0) (snd-display ";bigger 0 samp: ~A" (sample (* (floor *clm-srate*) 51000))))
+		(snd-display "bigger set 0 samp: ~A" (edit-tree)))
+	    (if (fneq (sample (* (floor *clm-srate*) 51000)) 0.0) (snd-display "bigger 0 samp: ~A" (sample (* (floor *clm-srate*) 51000))))
 	    (delete-samples (* (floor *clm-srate*) 52000) 100)
 	    (if (not (= (framples) (- big-file-framples 100))) 
-		(snd-display ";bigger deletion framples: ~A (~A)" (framples) (- big-file-framples 100)))
+		(snd-display "bigger deletion framples: ~A (~A)" (framples) (- big-file-framples 100)))
 	    (if (not (= (framples ind 0 0) big-file-framples)) 
-		(snd-display ";bigger edpos deletion framples: ~A (~A)" (framples ind 0 0) big-file-framples))
+		(snd-display "bigger edpos deletion framples: ~A (~A)" (framples ind 0 0) big-file-framples))
 	    (if (not (= (framples ind 0 (edit-position)) (- big-file-framples 100))) 
-		(snd-display ";bigger ed deletion framples: ~A (~A)" (framples ind 0 (edit-position)) (- big-file-framples 100)))
+		(snd-display "bigger ed deletion framples: ~A (~A)" (framples ind 0 (edit-position)) (- big-file-framples 100)))
 	    (if (not (fieql (edit-tree) (list (list 0 0 0 2249099999 1.18574941158295 0.0 0.0 0) 
 					      (list 2249100000 1 0 0 1.0 0.0 0.0 0) 
 					      (list 2249100001 0 2249100001 2293199999 1.18574941158295 0.0 0.0 0) 
 					      (list 2293200000 0 2293200100 (- big-file-framples 1) 1.18574941158295 0.0 0.0 0) 
 					      (list (- big-file-framples 100) -2 0 0 0.0 0.0 0.0 0))))
-		(snd-display ";bigger deletion: ~A" (edit-tree)))
+		(snd-display "bigger deletion: ~A" (edit-tree)))
 	    (delete-samples 954624868 67)
 	    (revert-sound)
 	    
 	    (delete-samples 1000 (* (floor *clm-srate*) 50000))
-	    (if (not (= (framples) (- big-file-framples (* (floor *clm-srate*) 50000)))) (snd-display ";bigger big deletion: ~A" (framples)))
+	    (if (not (= (framples) (- big-file-framples (* (floor *clm-srate*) 50000)))) (snd-display "bigger big deletion: ~A" (framples)))
 	    (if (not (fieql (edit-tree) (list (list 0 0 0 999 1.0 0.0 0.0 0) 
 					      (list 1000 0 1085232704 (- big-file-framples 1) 1.0 0.0 0.0 0) 
 					      (list 970200000 -2 0 0 0.0 0.0 0.0 0))))
-		(snd-display ";bigger big delete: ~A" (edit-tree)))
+		(snd-display "bigger big delete: ~A" (edit-tree)))
 	    (insert-silence 0 (* (floor *clm-srate*) 50000))
-	    (if (not (= (framples) big-file-framples)) (snd-display ";bigger silence: ~A (~A)" (framples) big-file-framples))
+	    (if (not (= (framples) big-file-framples)) (snd-display "bigger silence: ~A (~A)" (framples) big-file-framples))
 	    (if (not (fieql (edit-tree) (list (list 0 -1 0 2204999999 0.0 0.0 0.0 0) 
 					      (list 2205000000 0 0 999 1.0 0.0 0.0 0) 
 					      (list 2205001000 0 1085232704 (- big-file-framples 1) 1.0 0.0 0.0 0) 
 					      (list big-file-framples -2 0 0 0.0 0.0 0.0 0))))
-		(snd-display ";bigger pad: ~A" (edit-tree)))
+		(snd-display "bigger pad: ~A" (edit-tree)))
 	    (revert-sound)
 	    
 	    (pad-channel (* (floor *clm-srate*) 50000) 100)
 	    (if (fneq (sample (+ (* (floor *clm-srate*) 50000) 10)) 0.0) 
-		(snd-display ";bigger pad samp: ~A" (sample (+ (* (floor *clm-srate*) 50000) 10))))
+		(snd-display "bigger pad samp: ~A" (sample (+ (* (floor *clm-srate*) 50000) 10))))
 	    (if (not (= (framples) (+ big-file-framples 100))) 
-		(snd-display ";bigger pad framples: ~A (~A)" (framples) (+ big-file-framples 100)))
+		(snd-display "bigger pad framples: ~A (~A)" (framples) (+ big-file-framples 100)))
 	    (map-channel (lambda (y) (+ y .2)) (* (floor *clm-srate*) 50000) 10)
-	    (if (fneq (sample (+ (* (floor *clm-srate*) 50000) 1)) 0.2) (snd-display ";bigger map samp: ~A" (sample (+ (* (floor *clm-srate*) 50000) 1))))
+	    (if (fneq (sample (+ (* (floor *clm-srate*) 50000) 1)) 0.2) (snd-display "bigger map samp: ~A" (sample (+ (* (floor *clm-srate*) 50000) 1))))
 	    (if (not (fieql (edit-tree) (list (list 0 0 0 2204999999 1.0 0.0 0.0 0) 
 					      (list 2205000000 1 0 9 1.0 0.0 0.0 0) 
 					      (list 2205000010 -1 10 99 0.0 0.0 0.0 0) 
 					      (list 2205000100 0 2205000000 (- big-file-framples 1) 1.0 0.0 0.0 0) 
 					      (list (+ big-file-framples 100) -2 0 0 0.0 0.0 0.0 0))))
-		(snd-display ";bigger map: ~A" (edit-tree)))
+		(snd-display "bigger map: ~A" (edit-tree)))
 	    (save-edit-history "hiho.scm")
 	    (revert-sound)
 	    
@@ -29794,13 +29794,13 @@ EDITS: 2
 					      (list 2205000010 -1 10 99 0.0 0.0 0.0 0) 
 					      (list 2205000100 0 2205000000 (- big-file-framples 1) 1.0 0.0 0.0 0) 
 					      (list (+ big-file-framples 100) -2 0 0 0.0 0.0 0.0 0))))
-		(snd-display ";bigger reload: ~A" (edit-tree)))
+		(snd-display "bigger reload: ~A" (edit-tree)))
 	    (delete-file "hiho.scm")
 	    
 	    (let* ((flt (make-one-zero 0.5 0.5))
 		   (lvals (channel->float-vector (+ 1000 (* (floor *clm-srate*) 65000)) 10 ind 0 0)))
 	      (if (not (mus-arrays-equal? lvals (float-vector -0.006 0.052 0.103 0.146 0.182 0.210 0.232 0.249 0.262 0.272)))
-		  (snd-display ";bigger (orig) vals: ~A" lvals))
+		  (snd-display "bigger (orig) vals: ~A" lvals))
 	      (clm-channel flt (+ (* (floor *clm-srate*) 65000) 1000) 10)
 	      (if (not (fieql (edit-tree) (list (list 0 0 0 2204999999 1.0 0.0 0.0 0) 
 						(list 2205000000 1 0 9 1.0 0.0 0.0 0) 
@@ -29809,10 +29809,10 @@ EDITS: 2
 						(list 2866500000 2 0 9 1.0 0.0 0.0 0) 
 						(list 2866500010 0 2866499910 (- big-file-framples 1) 1.0 0.0 0.0 0) 
 						(list (+ big-file-framples 100) -2 0 0 0.0 0.0 0.0 0))))
-		  (snd-display ";bigger clm: ~A" (edit-tree)))
+		  (snd-display "bigger clm: ~A" (edit-tree)))
 	      (if (not (mus-arrays-equal? (channel->float-vector (+ 1000 (* (floor *clm-srate*) 65000)) 10) 
 			       (float-vector -0.006 0.015 0.065 0.107 0.142 0.169 0.190 0.205 0.216 0.222)))
-		  (snd-display ";bigger clm vals: ~A" (channel->float-vector (+ 1000 (* (floor *clm-srate*) 65000)) 10)))
+		  (snd-display "bigger clm vals: ~A" (channel->float-vector (+ 1000 (* (floor *clm-srate*) 65000)) 10)))
 	      
 	      (let ((r (make-readin big-file-name :start (+ 1000 (* (floor *clm-srate*) 65000))))
 		    (v (make-float-vector 10)))
@@ -29820,11 +29820,11 @@ EDITS: 2
 		    ((= i 10))
 		  (set! (v i) (readin r)))
 		(if (not (mus-arrays-equal? v lvals))
-		    (snd-display ";bigger (orig) readin vals: ~A (~A)" v lvals))))
+		    (snd-display "bigger (orig) readin vals: ~A (~A)" v lvals))))
 	    (revert-sound)
 	    (let ((found (scan-channel (lambda (y) (> y .5)) (* (floor *clm-srate*) 50000))))
 	      (if (not (equal? found '(#t 2205000925)))
-		  (snd-display ";bigger scan: ~A" found)))
+		  (snd-display "bigger scan: ~A" found)))
 	    (set! (squelch-update) #f)
 	    (close-sound ind))))
       
@@ -29832,23 +29832,23 @@ EDITS: 2
 	(set! *sinc-width* 10)
 	(pad-channel 0 1000 ind)
 	(set! (sample 100) 0.5)
-	(if (fneq (sample 100 ind 0 2) 0.5) (snd-display ";sample 100 (2): ~A" (sample 100 ind 0 2)))
-	(if (fneq (sample 100 ind 0 1) 0.0) (snd-display ";sample 100 (1): ~A" (sample 100 ind 0 1)))
+	(if (fneq (sample 100 ind 0 2) 0.5) (snd-display "sample 100 (2): ~A" (sample 100 ind 0 2)))
+	(if (fneq (sample 100 ind 0 1) 0.0) (snd-display "sample 100 (1): ~A" (sample 100 ind 0 1)))
 	(src-channel 0.5)
 	(let ((mx (maxamp ind 0)))
-	  (if (fneq mx 0.5) (snd-display ";src-channel max .5: ~A" mx)))
-	(if (fneq (sample 200) 0.5) (snd-display ";src-channel 0.5 200: ~A" (sample 200)))
+	  (if (fneq mx 0.5) (snd-display "src-channel max .5: ~A" mx)))
+	(if (fneq (sample 200) 0.5) (snd-display "src-channel 0.5 200: ~A" (sample 200)))
 	(if (not (mus-arrays-equal? (channel->float-vector 180 40 ind 0)
 			 (float-vector 0.000 -0.000 0.000 0.001 -0.000 -0.003 0.000 0.007 -0.000 -0.012
 				       0.000 0.020 -0.000 -0.033 0.000 0.054 -0.000 -0.100 -0.000 0.316
 				       0.500 0.316 -0.000 -0.100 -0.000 0.054 0.000 -0.033 -0.000 0.020
 				       0.000 -0.012 -0.000 0.007 0.000 -0.003 -0.000 0.001 0.000 -0.000)))
-	    (snd-display ";src-channel 0.5 -> ~A" (channel->float-vector 180 40 ind 0)))
+	    (snd-display "src-channel 0.5 -> ~A" (channel->float-vector 180 40 ind 0)))
 	(undo 1 ind 0)
 	(src-channel 0.25)
 	(let ((mx (maxamp ind 0)))
-	  (if (fneq mx 0.5) (snd-display ";src-channel max .25: ~A" mx)))
-	(if (fneq (sample 400) 0.5) (snd-display ";src-channel 0.25 400: ~A" (sample 400)))
+	  (if (fneq mx 0.5) (snd-display "src-channel max .25: ~A" mx)))
+	(if (fneq (sample 400) 0.5) (snd-display "src-channel 0.25 400: ~A" (sample 400)))
 	(if (not (mus-arrays-equal? (channel->float-vector 360 80 ind 0)
 			 (float-vector 0.000 -0.000 -0.000 -0.000 0.000 0.000 0.001 0.001 -0.000 -0.002
 				       -0.003 -0.003 0.000 0.004 0.007 0.006 -0.000 -0.008 -0.012 -0.010
@@ -29858,14 +29858,14 @@ EDITS: 2
 				       0.054 0.034 0.000 -0.026 -0.033 -0.021 -0.000 0.016 0.020 0.013
 				       0.000 -0.010 -0.012 -0.008 -0.000 0.006 0.007 0.004 0.000 -0.003
 				       -0.003 -0.002 -0.000 0.001 0.001 0.000 0.000 -0.000 -0.000 -0.000)))
-	    (snd-display ";src-channel 0.25 -> ~A" (channel->float-vector 360 80 ind 0)))
+	    (snd-display "src-channel 0.25 -> ~A" (channel->float-vector 360 80 ind 0)))
 	(undo 2 ind 0)
 	(let ((e (make-env '(0.0 0.0 1.0 1.0) :scaler (* .01 pi (- (framples) 1.0)) :length (framples))))
 	  (map-channel (lambda (y) (* .5 (sin (env e))))))
 	(for-each
 	 (lambda (sr df)
 	   (src-channel sr)
-	   (if (> (abs (- (maxamp ind 0) .5)) df) (snd-display ";src-channel sine ~A: ~A" sr (maxamp ind 0)))
+	   (if (> (abs (- (maxamp ind 0) .5)) df) (snd-display "src-channel sine ~A: ~A" sr (maxamp ind 0)))
 	   (if (integer? sr)
 	       (let ((r0 (make-sampler 0))
 		     (r1 (make-sampler 0 ind 0 1 (- (edit-position) 1)))
@@ -29873,7 +29873,7 @@ EDITS: 2
 		 (do ((i 0 (+ i 1)))
 		     ((= i 500))
 		   (let ((diff (abs (- (r0) (r1)))))
-		     (if (> diff df) (snd-display ";src-channel ~A diff ~D: ~A" sr i diff))
+		     (if (> diff df) (snd-display "src-channel ~A diff ~D: ~A" sr i diff))
 		     (do ((j 1 (+ j 1)))
 			 ((= j sri))
 		       (r1))))))
@@ -29882,8 +29882,8 @@ EDITS: 2
 	     (let ((s1 (sample i ind 0 (edit-position)))
 		   (s2 (sample (round (* sr i)) ind 0 (- (edit-position) 1)))
 		   (s3 (sample i ind 0 1)))
-	       (if (> (abs (- s1 s2)) df) (snd-display ";sample ~D src(~A): ~A ~A" i sr s1 s2))
-	       (if (fneq s3 0.0) (snd-display ";sample ~D (1): ~A" i s3))))
+	       (if (> (abs (- s1 s2)) df) (snd-display "sample ~D src(~A): ~A ~A" i sr s1 s2))
+	       (if (fneq s3 0.0) (snd-display "sample ~D (1): ~A" i s3))))
 	   (undo 1 ind 0))
 	 '(2.0 1.5 3.0 3.14)
 	 '(0.008 0.01 0.015 0.025))
@@ -29893,7 +29893,7 @@ EDITS: 2
 	  (for-each
 	   (lambda (sr df)
 	     (src-channel sr)
-	     (if (> (abs (- (maxamp ind 0) orig-max)) df) (snd-display ";src-channel oboe ~A: ~A ~A" sr orig-max (maxamp ind 0)))
+	     (if (> (abs (- (maxamp ind 0) orig-max)) df) (snd-display "src-channel oboe ~A: ~A ~A" sr orig-max (maxamp ind 0)))
 	     (if (integer? sr)
 		 (let ((r0 (make-sampler 0))
 		       (r1 (make-sampler 0 ind 0 1 (- (edit-position) 1)))
@@ -29901,7 +29901,7 @@ EDITS: 2
 		   (do ((i 0 (+ i 1)))
 		       ((= i 5000))
 		     (let ((diff (abs (- (r0) (r1)))))
-		       (if (> diff df) (snd-display ";src-channel oboe ~A diff ~D: ~A" sr i diff))
+		       (if (> diff df) (snd-display "src-channel oboe ~A diff ~D: ~A" sr i diff))
 		       (do ((j 1 (+ j 1)))
 			   ((= j sri))
 			 (r1))))))
@@ -29912,13 +29912,13 @@ EDITS: 2
 	  (for-each
 	   (lambda (sr df)
 	     (src-channel sr)
-	     (if (> (abs (- (maxamp ind 0) orig-max)) df) (snd-display ";src-channel oboe ~A: ~A ~A" sr orig-max (maxamp ind 0)))
+	     (if (> (abs (- (maxamp ind 0) orig-max)) df) (snd-display "src-channel oboe ~A: ~A ~A" sr orig-max (maxamp ind 0)))
 	     (do ((i 0 (+ i 1)))
 		 ((= i 50))
 	       (let* ((samp (* i 100))
 		      (s1 (sample samp ind 0 (edit-position)))
 		      (s2 (sample (floor (* sr samp)) ind 0 (- (edit-position) 1))))
-		 (if (> (abs (- s1 s2)) df) (snd-display ";sample ~D oboe src(~A): ~A ~A" i sr s1 s2))))
+		 (if (> (abs (- s1 s2)) df) (snd-display "sample ~D oboe src(~A): ~A ~A" i sr s1 s2))))
 	     (undo 1 ind 0)
 	     (amp-envs-equal? ind 0 (edit-position) (+ 1 (edit-position)) .01))
 	   '(0.5 0.25 0.9 0.1)
@@ -29936,20 +29936,20 @@ EDITS: 2
 	 (lambda (n)
 	   (let ((val (scan-channel (lambda (y) (scan-channel (lambda (n5) (> n5 .1)))))))
 	     (if (not (eqv? val 0))
-		 (snd-display ";scan-channel in scan-channel (opt ~A): ~A" n val)))
+		 (snd-display "scan-channel in scan-channel (opt ~A): ~A" n val)))
 	   (let ((hi (make-float-vector 3)))
 	     (fill-float-vector hi (if (scan-channel (lambda (y) (> y .1)))
 				       1.0 0.0))
-	     (if (not (mus-arrays-equal? hi (float-vector 1.0 1.0 1.0))) (snd-display ";fill-float-vector with scan-channel (opt ~A): ~A" n hi)))
+	     (if (not (mus-arrays-equal? hi (float-vector 1.0 1.0 1.0))) (snd-display "fill-float-vector with scan-channel (opt ~A): ~A" n hi)))
 	   (let ((val (scan-channel (lambda (y) (scan-channel (lambda (n6) (> n6 .1)))))))
-	     (if (not (= val 0)) (snd-display ";find with find: ~A" val)))
+	     (if (not (= val 0)) (snd-display "find with find: ~A" val)))
 	   (let ((val (scan-channel (lambda (y) (scan-channel (lambda (n7) (> n7 .1)))))))
-	     (if (not (= val 0)) (snd-display ";find with scan-channel: ~A" val)))
+	     (if (not (= val 0)) (snd-display "find with scan-channel: ~A" val)))
 	   (let ((mx (maxamp ind 0)))
 	     (let ((val (scan-channel (lambda (y) (map-channel (lambda (n) (* n 2.0))) #t))))
-	       (if (not (eqv? val 0)) (snd-display ";scan-channel with map-channel: ~A" val)))
-	     (if (fneq mx (/ (maxamp ind 0) 2)) (snd-display ";scan+map max: ~A ~A" mx (maxamp ind 0)))
-	     (if (not (= (edit-position ind 0) 1)) (snd-display ";scan+map edit-pos: ~A" (edit-position ind 0)))
+	       (if (not (eqv? val 0)) (snd-display "scan-channel with map-channel: ~A" val)))
+	     (if (fneq mx (/ (maxamp ind 0) 2)) (snd-display "scan+map max: ~A ~A" mx (maxamp ind 0)))
+	     (if (not (= (edit-position ind 0) 1)) (snd-display "scan+map edit-pos: ~A" (edit-position ind 0)))
 	     (revert-sound ind)
 	     (map-channel (let ((ctr 0)) 
 			    (lambda (y) 
@@ -29957,9 +29957,9 @@ EDITS: 2
 			      (set! ctr 1) 
 			      y))
 			  0 3)
-	     (if (fneq mx (maxamp ind 0)) (snd-display ";map+map max 2: ~A ~A" mx (maxamp ind 0)))
-	     (if (not (= (edit-position ind 0) 2)) (snd-display ";map+map edit-pos: ~A" (edit-position ind 0)))
-	     (if (fneq mx (/ (maxamp ind 0 1) 2)) (snd-display ";map+map max 1: ~A ~A" mx (maxamp ind 0 1))))
+	     (if (fneq mx (maxamp ind 0)) (snd-display "map+map max 2: ~A ~A" mx (maxamp ind 0)))
+	     (if (not (= (edit-position ind 0) 2)) (snd-display "map+map edit-pos: ~A" (edit-position ind 0)))
+	     (if (fneq mx (/ (maxamp ind 0 1) 2)) (snd-display "map+map max 1: ~A ~A" mx (maxamp ind 0 1))))
 	   (revert-sound ind))
 	 '(0 5))
 	(close-sound ind))
@@ -29970,7 +29970,7 @@ EDITS: 2
 	   (let ((old-len (framples ind)))
 	     (func beg dur)
 	     (if (not (= (framples ind) len)) 
-		 (snd-display ";(~A ~A ~A) with ~A -> ~A (~A)?" func beg dur old-len (framples ind) len))))
+		 (snd-display "(~A ~A ~A) with ~A -> ~A (~A)?" func beg dur old-len (framples ind) len))))
 	 (list (lambda (beg dur) (env-channel '(0 0 1 1) beg dur))
 	       (lambda (beg dur) (map-channel (lambda (y) (* y .5)) beg dur))
 	       reverse-channel
@@ -29991,7 +29991,7 @@ EDITS: 2
 	   (let ((old-len (framples ind)))
 	     (pad-channel beg dur)
 	     (if (not (= (framples ind) len))
-		 (snd-display ";(pad-channel ~A ~A) with ~A -> ~A (~A)?" beg dur old-len (framples ind) len))))
+		 (snd-display "(pad-channel ~A ~A) with ~A -> ~A (~A)?" beg dur old-len (framples ind) len))))
 	 '(1000 60000 0 62000 62000 62004)
 	 '(1000 1000 1000 1 2 1)
 	 '(51828 61000 62000 62001 62003 62005))
@@ -30003,7 +30003,7 @@ EDITS: 2
 	   (let ((old-len (framples ind)))
 	     (func (+ old-len 100) dur)
 	     (if (not (= (framples ind) len)) 
-		 (snd-display ";(~A ~A) with ~A -> ~A (~A)?" func dur old-len (framples ind) len))))
+		 (snd-display "(~A ~A) with ~A -> ~A (~A)?" func dur old-len (framples ind) len))))
 	 (list (lambda (beg dur) (env-channel '(0 0 1 1) beg dur))
 	       reverse-channel
 	       (lambda (beg dur) (scale-channel 2.0 beg dur))
@@ -30038,11 +30038,11 @@ EDITS: 2
 
       (define (check-oboe mx pos)
 	(if (fneq (maxamp) mx)
-	    (snd-display ";oboe max: ~A (should be ~A)~%" (maxamp) mx))
+	    (snd-display "oboe max: ~A (should be ~A)~%" (maxamp) mx))
 	(if (not (= (maxamp-position) pos))
-	    (snd-display ";oboe max pos: ~A (should be ~A)~%" (maxamp-position) pos))
+	    (snd-display "oboe max pos: ~A (should be ~A)~%" (maxamp-position) pos))
 	(if (fneq (abs (sample (maxamp-position))) (maxamp))
-	    (snd-display ";oboe maxes: ~A ~A~%" (maxamp) (abs (sample (maxamp-position))))))
+	    (snd-display "oboe maxes: ~A ~A~%" (maxamp) (abs (sample (maxamp-position))))))
 
       (let ((ind (open-sound "oboe.snd")))
 	(check-oboe 0.14724731445312 24971)
@@ -30214,7 +30214,7 @@ EDITS: 2
 	      (set! (sync ind2) (random 3))
 	      (opt-test (random 22))))
 	  (lambda args
-	    (snd-display ";caught mus-error")
+	    (snd-display "caught mus-error")
 	    #f))
 	(set! (squelch-update ind0 #t) #f)
 	(set! (squelch-update ind1 #t) #f)
@@ -30231,11 +30231,11 @@ EDITS: 2
 	    (swap-channels)
 	    (update-time-graph)
 	    (let ((tm (- (real-time) start)))
-	      (if (> tm .1) (snd-display ";swap-channels not optimized? ~A" tm)))
+	      (if (> tm .1) (snd-display "swap-channels not optimized? ~A" tm)))
 	    (let ((new-mxs (maxamp ind #t)))
 	      (if (or (fneq (car mxs) (cadr new-mxs))
 		      (fneq (cadr mxs) (car new-mxs)))
-		  (snd-display ";swap-channels amps: ~A -> ~A" mxs new-mxs)))
+		  (snd-display "swap-channels amps: ~A -> ~A" mxs new-mxs)))
 	    (revert-sound ind)
 	    (close-sound ind)))
 	(lambda args args)) ; away.snd may not exist
@@ -30266,20 +30266,20 @@ EDITS: 2
 	      (m2 (add-mark 5 ind 1)))
 	  (scale-channel 0.5)
 	  (swap-channels)
-	  (if (not (= (mark-sample m0) 3)) (snd-display ";swapped m0: ~A" (mark-sample m0)))
-	  (if (not (= (mark-sample m1) 4)) (snd-display ";swapped m1: ~A" (mark-sample m1)))
-	  (if (not (= (mark-sample m2) 5)) (snd-display ";swapped m2: ~A" (mark-sample m2)))
-	  (if (not (equal? (mark-home m0) (list ind 1))) (snd-display ";mark-home m0: ~A" (mark-home m0)))
-	  (if (not (equal? (mark-home m1) (list ind 0))) (snd-display ";mark-home m1: ~A" (mark-home m1)))
-	  (if (not (equal? (mark-home m2) (list ind 0))) (snd-display ";mark-home m2: ~A" (mark-home m2)))
+	  (if (not (= (mark-sample m0) 3)) (snd-display "swapped m0: ~A" (mark-sample m0)))
+	  (if (not (= (mark-sample m1) 4)) (snd-display "swapped m1: ~A" (mark-sample m1)))
+	  (if (not (= (mark-sample m2) 5)) (snd-display "swapped m2: ~A" (mark-sample m2)))
+	  (if (not (equal? (mark-home m0) (list ind 1))) (snd-display "mark-home m0: ~A" (mark-home m0)))
+	  (if (not (equal? (mark-home m1) (list ind 0))) (snd-display "mark-home m1: ~A" (mark-home m1)))
+	  (if (not (equal? (mark-home m2) (list ind 0))) (snd-display "mark-home m2: ~A" (mark-home m2)))
 	  (undo 1 ind 0)
 	  (undo 1 ind 1)
-	  (if (not (= (mark-sample m0) 3)) (snd-display ";swapped m0 2: ~A" (mark-sample m0)))
-	  (if (not (= (mark-sample m1) 4)) (snd-display ";swapped m1 2: ~A" (mark-sample m1)))
-	  (if (not (= (mark-sample m2) 5)) (snd-display ";swapped m2 2: ~A" (mark-sample m2)))
-	  (if (not (equal? (mark-home m0) (list ind 0))) (snd-display ";mark-home m0 2: ~A" (mark-home m0)))
-	  (if (not (equal? (mark-home m1) (list ind 1))) (snd-display ";mark-home m1 2: ~A" (mark-home m1)))
-	  (if (not (equal? (mark-home m2) (list ind 1))) (snd-display ";mark-home m2 2: ~A" (mark-home m2))))
+	  (if (not (= (mark-sample m0) 3)) (snd-display "swapped m0 2: ~A" (mark-sample m0)))
+	  (if (not (= (mark-sample m1) 4)) (snd-display "swapped m1 2: ~A" (mark-sample m1)))
+	  (if (not (= (mark-sample m2) 5)) (snd-display "swapped m2 2: ~A" (mark-sample m2)))
+	  (if (not (equal? (mark-home m0) (list ind 0))) (snd-display "mark-home m0 2: ~A" (mark-home m0)))
+	  (if (not (equal? (mark-home m1) (list ind 1))) (snd-display "mark-home m1 2: ~A" (mark-home m1)))
+	  (if (not (equal? (mark-home m2) (list ind 1))) (snd-display "mark-home m2 2: ~A" (mark-home m2))))
 	(close-sound ind)
 	(delete-file "test.snd"))
       
@@ -30290,7 +30290,7 @@ EDITS: 2
 	(swap-channels ind 1 ind 2)
 	(let ((maxs (maxamp ind #t)))
 	  (if (or (fneq (maxs 0) 0.5) (fneq (maxs 1) 0.125) (fneq (maxs 2) 0.25) (fneq (maxs 3) 0.0625))
-	      (snd-display ";swap midchans: ~A" maxs))
+	      (snd-display "swap midchans: ~A" maxs))
 	  (close-sound ind)))
       
       (let ((ind0 (open-sound "oboe.snd"))
@@ -30298,8 +30298,8 @@ EDITS: 2
 	(let ((mx0 (maxamp ind0 0))
 	      (mx1 (maxamp ind1 0)))
 	  (swap-channels ind0 0 ind1 0)
-	  (if (fneq (maxamp ind0 0) mx1) (snd-display ";maxamp cross swap 0: ~A" (maxamp ind0 0)))
-	  (if (fneq (maxamp ind1 0) mx0) (snd-display ";maxamp cross swap 1: ~A" (maxamp ind1 0))))
+	  (if (fneq (maxamp ind0 0) mx1) (snd-display "maxamp cross swap 0: ~A" (maxamp ind0 0)))
+	  (if (fneq (maxamp ind1 0) mx0) (snd-display "maxamp cross swap 1: ~A" (maxamp ind1 0))))
 	(close-sound ind1)
 	(if (not (string=? (display-edits) (string-append "
 EDITS: 1
@@ -30312,7 +30312,7 @@ EDITS: 1
    (at 0, cp->sounds[1][0:41622, 1.000]) [file: " cwd "pistol.snd[0]]
    (at 41623, end_mark)
 ")))
-	    (snd-display ";cross swap state: ~A" (display-edits)))
+	    (snd-display "cross swap state: ~A" (display-edits)))
 	(close-sound ind0))
       
       (let ((ind (init-sound 1.0 10 1)))
@@ -30459,10 +30459,10 @@ EDITS: 1
       
       (when (and all-args (= test-16 0))
 	(let ((tries 256))
-	  (snd-display ";framples: ~,2F ~,2F" 
+	  (snd-display "framples: ~,2F ~,2F" 
 		       (* 1.0 (/ (mus-sound-framples "1.snd") (mus-sound-framples "oboe.snd")))
 		       (* 1.0 (/ (mus-sound-framples "1.snd") (mus-sound-framples "1a.snd"))))
-	  (snd-display ";~12T~A~28T~A~44T~A~56T(1/oboe, 1/1a)" "1.snd" "oboe.snd" "1a.snd")
+	  (snd-display "~12T~A~28T~A~44T~A~56T(1/oboe, 1/1a)" "1.snd" "oboe.snd" "1a.snd")
 	  (for-each
 	   (lambda (name func)
 	     (let ((ind (open-sound "1.snd"))
@@ -30501,7 +30501,7 @@ EDITS: 1
 			     (set! (squelch-update ind 0) #f)
 			     (close-sound ind)
 			     (let ((end-time (real-time)))
-			       (snd-display ";~A:~12T~A~18T~A~28T~A~34T~A~44T~A~50T~A~56T(~,2F, ~,2F)" 
+			       (snd-display "~A:~12T~A~18T~A~28T~A~34T~A~44T~A~50T~A~56T(~,2F, ~,2F)" 
 					    name 
 					    
 					    (hundred (- mid-time-1 start-time-1)) (hundred (- end-time-1 mid-time-1))
@@ -30568,70 +30568,70 @@ EDITS: 1
 	  
 	  ;; -------- no-ops
 	  (src-channel 1)
-	  (if (not (= (edit-position ind 0) edpos)) (snd-display ";src-channel 1 as no-op: ~A ~A" edpos (edit-position ind 0)))
+	  (if (not (= (edit-position ind 0) edpos)) (snd-display "src-channel 1 as no-op: ~A ~A" edpos (edit-position ind 0)))
 	  (src-sound 1)
-	  (if (not (= (edit-position ind 0) edpos)) (snd-display ";src-sound 1 as no-op: ~A ~A" edpos (edit-position ind 0)))
+	  (if (not (= (edit-position ind 0) edpos)) (snd-display "src-sound 1 as no-op: ~A ~A" edpos (edit-position ind 0)))
 	  (select-all)
 	  (src-selection 1)
-	  (if (not (= (edit-position ind 0) edpos)) (snd-display ";src-selection 1 as no-op: ~A ~A" edpos (edit-position ind 0)))
+	  (if (not (= (edit-position ind 0) edpos)) (snd-display "src-selection 1 as no-op: ~A ~A" edpos (edit-position ind 0)))
 	  
 	  (filter-channel (float-vector 1.0))
-	  (if (not (= (edit-position ind 0) edpos)) (snd-display ";filter-channel 1 as no-op: ~A ~A" edpos (edit-position ind 0)))
+	  (if (not (= (edit-position ind 0) edpos)) (snd-display "filter-channel 1 as no-op: ~A ~A" edpos (edit-position ind 0)))
 	  
 	  (env-channel '(0 1 1 1))
-	  (if (not (= (edit-position ind 0) edpos)) (snd-display ";env-channel 1 as no-op: ~A ~A" edpos (edit-position ind 0)))
+	  (if (not (= (edit-position ind 0) edpos)) (snd-display "env-channel 1 as no-op: ~A ~A" edpos (edit-position ind 0)))
 	  (env-sound '(0 1 1 1))
-	  (if (not (= (edit-position ind 0) edpos)) (snd-display ";env-sound 1 as no-op: ~A ~A" edpos (edit-position ind 0)))
+	  (if (not (= (edit-position ind 0) edpos)) (snd-display "env-sound 1 as no-op: ~A ~A" edpos (edit-position ind 0)))
 	  (env-selection '(0 1 1 1))
-	  (if (not (= (edit-position ind 0) edpos)) (snd-display ";env-selection 1 as no-op: ~A ~A" edpos (edit-position ind 0)))
+	  (if (not (= (edit-position ind 0) edpos)) (snd-display "env-selection 1 as no-op: ~A ~A" edpos (edit-position ind 0)))
 	  
 	  (scale-channel 1)
-	  (if (not (= (edit-position ind 0) edpos)) (snd-display ";scale-channel 1 as no-op: ~A ~A" edpos (edit-position ind 0)))
+	  (if (not (= (edit-position ind 0) edpos)) (snd-display "scale-channel 1 as no-op: ~A ~A" edpos (edit-position ind 0)))
 	  (scale-by 1)
-	  (if (not (= (edit-position ind 0) edpos)) (snd-display ";scale-by 1 as no-op: ~A ~A" edpos (edit-position ind 0)))
+	  (if (not (= (edit-position ind 0) edpos)) (snd-display "scale-by 1 as no-op: ~A ~A" edpos (edit-position ind 0)))
 	  (scale-selection-by 1)
-	  (if (not (= (edit-position ind 0) edpos)) (snd-display ";scale-selection 1 as no-op: ~A ~A" edpos (edit-position ind 0)))
+	  (if (not (= (edit-position ind 0) edpos)) (snd-display "scale-selection 1 as no-op: ~A ~A" edpos (edit-position ind 0)))
 	  
 	  ;; -------- other special cases
 	  (src-channel -1)
 	  (reverse-channel)
 	  (let ((diff (edit-difference ind 0 edpos (edit-position ind 0))))
-	    (if diff (snd-display ";src -1 and reverse diff: ~A" diff)))
+	    (if diff (snd-display "src -1 and reverse diff: ~A" diff)))
 	  
 	  (set! (edit-position ind 0) edpos)
 	  (scale-by 2)
 	  (filter-channel (float-vector 2) 1 0 #f ind 0 edpos)
 	  (let ((diff (edit-difference ind 0 (+ 1 edpos) (+ edpos 2))))
-	    (if diff (snd-display ";scale and filter 2 diff: ~A" diff)))
+	    (if diff (snd-display "scale and filter 2 diff: ~A" diff)))
 	  
 	  ;; -------- not no-ops!
 	  (scale-channel 1.0 0 #f ind 0 edpos)
 	  (let ((diff (edit-difference ind 0 edpos (edit-position ind 0))))
-	    (if diff (snd-display ";edpos scale 1 diff: ~A" diff)))
-	  (if (fneq (maxamp ind 0) 0.5) (snd-display ";scale 1 of original: ~A" (maxamp ind 0)))
+	    (if diff (snd-display "edpos scale 1 diff: ~A" diff)))
+	  (if (fneq (maxamp ind 0) 0.5) (snd-display "scale 1 of original: ~A" (maxamp ind 0)))
 	  (if (= (edit-position ind 0) (+ edpos 2)) 
-	      (snd-display ";edpos scl copy opted out?")
+	      (snd-display "edpos scl copy opted out?")
 	      (undo))
 	  
 	  (filter-channel (float-vector 1) 1 0 #f ind 0 edpos)
 	  (let ((diff (edit-difference ind 0 edpos (edit-position ind 0))))
-	    (if diff (snd-display ";edpos flt 1 diff: ~A" diff)))
+	    (if diff (snd-display "edpos flt 1 diff: ~A" diff)))
 	  (if (= (edit-position ind 0) (+ edpos 2)) 
-	      (snd-display ";edpos flt copy opted out?")
+	      (snd-display "edpos flt copy opted out?")
 	      (undo))
 	  
 	  (env-channel '(0 1 1 1) 0 #f ind 0 edpos)
 	  (let ((diff (edit-difference ind 0 edpos (edit-position ind 0))))
-	    (if diff (snd-display ";edpos env 1 diff: ~A" diff)))
+	    (if diff (snd-display "edpos env 1 diff: ~A" diff)))
 	  (if (= (edit-position ind 0) (+ edpos 2)) 
-	      (snd-display ";edpos env copy opted out?")
+	      (snd-display "edpos env copy opted out?")
 	      (undo))
 	  
 	  (src-channel 1.0 0 #f ind 0 edpos)
 	  (let ((diff (edit-difference ind 0 edpos (edit-position ind 0))))
-	    (if (and (pair? diff) (> (car diff) .0001)) (snd-display ";edpos src 1 diff: ~A" diff)))
+	    (if (and (pair? diff) (> (car diff) .0001)) (snd-display "edpos src 1 diff: ~A" diff)))
 	  (if (= (edit-position ind 0) (+ edpos 2)) 
-	      (snd-display ";edpos src copy opted out?")
+	      (snd-display "edpos src copy opted out?")
 	      (undo)))
 	  
 	(let ((edpos (edit-position ind 0))
@@ -30640,50 +30640,50 @@ EDITS: 1
 	    
 	    (scale-channel 1.0 0 #f ind 0 edpos)
 	    (let ((diff (edit-difference ind 0 edpos (edit-position ind 0))))
-	      (if diff (snd-display ";1 edpos scale 1 diff: ~A" diff)))
+	      (if diff (snd-display "1 edpos scale 1 diff: ~A" diff)))
 	    (if (not (= (framples ind 0) len))
-		(snd-display ";scl len edpos: ~A ~A" len (framples ind 0)))
+		(snd-display "scl len edpos: ~A ~A" len (framples ind 0)))
 	    (undo)
 	    
 	    (filter-channel (float-vector 1) 1 0 #f ind 0 edpos)
 	    (let ((diff (edit-difference ind 0 edpos (edit-position ind 0))))
-	      (if diff (snd-display ";1 edpos flt 1 diff: ~A" diff)))
+	      (if diff (snd-display "1 edpos flt 1 diff: ~A" diff)))
 	    (if (not (= (framples ind 0) len))
-		(snd-display ";flt len edpos: ~A ~A" len (framples ind 0)))
+		(snd-display "flt len edpos: ~A ~A" len (framples ind 0)))
 	    (undo)
 	    
 	    (env-channel '(0 1 1 1) 0 #f ind 0 edpos)
 	    (let ((diff (edit-difference ind 0 edpos (edit-position ind 0))))
-	      (if diff (snd-display ";1 edpos env 1 diff: ~A" diff)))
+	      (if diff (snd-display "1 edpos env 1 diff: ~A" diff)))
 	    (if (not (= (framples ind 0) len))
-		(snd-display ";env len edpos: ~A ~A" len (framples ind 0)))
+		(snd-display "env len edpos: ~A ~A" len (framples ind 0)))
 	    (undo)
 	    
 	    (reverse-channel 0 #f ind 0 edpos)
 	    (reverse-channel 0 #f ind 0)
 	    (let ((diff (edit-difference ind 0 edpos (edit-position ind 0))))
-	      (if diff (snd-display ";1 edpos rev 1 diff: ~A" diff)))
+	      (if diff (snd-display "1 edpos rev 1 diff: ~A" diff)))
 	    (if (not (= (framples ind 0) len))
-		(snd-display ";rev len edpos: ~A ~A" len (framples ind 0)))
+		(snd-display "rev len edpos: ~A ~A" len (framples ind 0)))
 	    (undo 2)
 	    
 	    (src-channel 1.0 0 #f ind 0 edpos)
 	    (let ((diff (edit-difference ind 0 edpos (edit-position ind 0))))
-	      (if (and (pair? diff) (> (car diff) .0001)) (snd-display ";1 edpos src 1 diff: ~A" diff)))
+	      (if (and (pair? diff) (> (car diff) .0001)) (snd-display "1 edpos src 1 diff: ~A" diff)))
 	    (if (> (abs (- (framples ind 0) len)) 2)
-		(snd-display ";src len edpos: ~A ~A" len (framples ind 0)))
+		(snd-display "src len edpos: ~A ~A" len (framples ind 0)))
 	    (undo)
 	    
 	    (smooth-channel 0 len ind 0 edpos)
 	    (if (not (= (framples ind 0) len))
-		(snd-display ";smooth len edpos: ~A ~A" len (framples ind 0)))
+		(snd-display "smooth len edpos: ~A ~A" len (framples ind 0)))
 	    (undo)
 	    
 	    (clm-channel (make-one-zero 1.0 0.0) 0 #f ind 0 edpos)
 	    (let ((diff (edit-difference ind 0 edpos (edit-position ind 0))))
-	      (if diff (snd-display ";1 edpos clm 1 diff: ~A" diff)))
+	      (if diff (snd-display "1 edpos clm 1 diff: ~A" diff)))
 	    (if (not (= (framples ind 0) len))
-		(snd-display ";clm len edpos: ~A ~A" len (framples ind 0)))
+		(snd-display "clm len edpos: ~A ~A" len (framples ind 0)))
 	    (undo))
 	  
 	;; dur of 0 is ignored no matter what -- else I have a million special cases
@@ -30707,58 +30707,58 @@ EDITS: 1
 	  (set! (samples 20 10 ind 0) (make-float-vector 10 -.75))
 	  
 	  (pad-channel 0 10 ind 0 edpos)
-	  (if (not (= (framples ind 0) 20)) (snd-display ";pad edpos len: ~A" (framples ind 0)))
-	  (if (fneq (maxamp ind 0) .09) (snd-display ";pad edpos max: ~A" (maxamp ind 0)))
+	  (if (not (= (framples ind 0) 20)) (snd-display "pad edpos len: ~A" (framples ind 0)))
+	  (if (fneq (maxamp ind 0) .09) (snd-display "pad edpos max: ~A" (maxamp ind 0)))
 	  (undo)
 	  
 	  (delete-samples 0 5 ind 0 edpos)
-	  (if (not (= (framples ind 0) 5)) (snd-display ";del edpos len: ~A" (framples ind 0)))
-	  (if (fneq (maxamp ind 0) .09) (snd-display ";del edpos max: ~A" (maxamp ind 0)))
+	  (if (not (= (framples ind 0) 5)) (snd-display "del edpos len: ~A" (framples ind 0)))
+	  (if (fneq (maxamp ind 0) .09) (snd-display "del edpos max: ~A" (maxamp ind 0)))
 	  (undo)
 	  
 	  (set! (samples 5 5 ind 0 #f "set" 0 edpos) (make-float-vector 5))
-	  (if (not (= (framples ind 0) 10)) (snd-display ";set edpos len: ~A" (framples ind 0)))
-	  (if (fneq (maxamp ind 0) .04) (snd-display ";set edpos max: ~A" (maxamp ind 0)))
+	  (if (not (= (framples ind 0) 10)) (snd-display "set edpos len: ~A" (framples ind 0)))
+	  (if (fneq (maxamp ind 0) .04) (snd-display "set edpos max: ~A" (maxamp ind 0)))
 	  (undo)
 	  
 	  (ramp-channel 0.0 1.0 0 5 ind 0 edpos)
-	  (if (not (= (framples ind 0) 10)) (snd-display ";rmp edpos len: ~A" (framples ind 0)))
-	  (if (fneq (maxamp ind 0) .09) (snd-display ";rmp edpos max: ~A" (maxamp ind 0)))
+	  (if (not (= (framples ind 0) 10)) (snd-display "rmp edpos len: ~A" (framples ind 0)))
+	  (if (fneq (maxamp ind 0) .09) (snd-display "rmp edpos max: ~A" (maxamp ind 0)))
 	  (undo)
 	  
 	  (xramp-channel 0.0 1.0 32.0 5 5 ind 0 edpos)
-	  (if (not (= (framples ind 0) 10)) (snd-display ";xrmp edpos len: ~A" (framples ind 0)))
-	  (if (fneq (maxamp ind 0) .09) (snd-display ";xrmp edpos max: ~A" (maxamp ind 0)))
+	  (if (not (= (framples ind 0) 10)) (snd-display "xrmp edpos len: ~A" (framples ind 0)))
+	  (if (fneq (maxamp ind 0) .09) (snd-display "xrmp edpos max: ~A" (maxamp ind 0)))
 	  (undo)
 	  
 	  (env-channel '(0 0 1 1) 0 5 ind 0 edpos)
-	  (if (not (= (framples ind 0) 10)) (snd-display ";env edpos len: ~A" (framples ind 0)))
-	  (if (fneq (maxamp ind 0) .09) (snd-display ";env edpos max: ~A" (maxamp ind 0)))
+	  (if (not (= (framples ind 0) 10)) (snd-display "env edpos len: ~A" (framples ind 0)))
+	  (if (fneq (maxamp ind 0) .09) (snd-display "env edpos max: ~A" (maxamp ind 0)))
 	  (undo)
 	  
 	  (smooth-channel 0 5 ind 0 edpos)
-	  (if (not (= (framples ind 0) 10)) (snd-display ";smooth edpos len: ~A" (framples ind 0)))
-	  (if (fneq (maxamp ind 0) .09) (snd-display ";smooth edpos max: ~A" (maxamp ind 0)))
+	  (if (not (= (framples ind 0) 10)) (snd-display "smooth edpos len: ~A" (framples ind 0)))
+	  (if (fneq (maxamp ind 0) .09) (snd-display "smooth edpos max: ~A" (maxamp ind 0)))
 	  (undo)
 	  
 	  (src-channel 0.5 0 5 ind 0 edpos)
-	  (if (not (= (framples ind 0) 16)) (snd-display ";src edpos len: ~A" (framples ind 0)))
-	  (if (fneq (maxamp ind 0) .09) (snd-display ";src edpos max: ~A" (maxamp ind 0)))
+	  (if (not (= (framples ind 0) 16)) (snd-display "src edpos len: ~A" (framples ind 0)))
+	  (if (fneq (maxamp ind 0) .09) (snd-display "src edpos max: ~A" (maxamp ind 0)))
 	  (undo)
 	  
 	  (reverse-channel 0 5 ind 0 edpos)
-	  (if (not (= (framples ind 0) 10)) (snd-display ";rev edpos len: ~A" (framples ind 0)))
-	  (if (fneq (maxamp ind 0) .09) (snd-display ";rev edpos max: ~A" (maxamp ind 0)))
+	  (if (not (= (framples ind 0) 10)) (snd-display "rev edpos len: ~A" (framples ind 0)))
+	  (if (fneq (maxamp ind 0) .09) (snd-display "rev edpos max: ~A" (maxamp ind 0)))
 	  (undo)
 	  
 	  (filter-channel (float-vector .1 .2 .1) 3 0 5 ind 0 edpos #t) ; truncate
-	  (if (not (= (framples ind 0) 10)) (snd-display ";flt edpos len: ~A" (framples ind 0)))
-	  (if (fneq (maxamp ind 0) .09) (snd-display ";flt edpos max: ~A" (maxamp ind 0)))
+	  (if (not (= (framples ind 0) 10)) (snd-display "flt edpos len: ~A" (framples ind 0)))
+	  (if (fneq (maxamp ind 0) .09) (snd-display "flt edpos max: ~A" (maxamp ind 0)))
 	  (undo)
 	  
 	  (scale-channel 1.5 0 5 ind 0 edpos)
-	  (if (not (= (framples ind 0) 10)) (snd-display ";scl edpos len: ~A" (framples ind 0)))
-	  (if (fneq (maxamp ind 0) .09) (snd-display ";scl edpos max: ~A" (maxamp ind 0)))
+	  (if (not (= (framples ind 0) 10)) (snd-display "scl edpos len: ~A" (framples ind 0)))
+	  (if (fneq (maxamp ind 0) .09) (snd-display "scl edpos max: ~A" (maxamp ind 0)))
 	  (undo)
 	  
 	  (close-sound ind)))
@@ -30768,18 +30768,18 @@ EDITS: 1
 	(let ((edpos (edit-position ind 0)))
 	  (delete-samples 5 10)
 	  (delete-samples 15 5 ind 0 edpos)
-	  (if (not (= (framples ind 0) 15)) (snd-display ";delete-samples edpos len: ~A" (framples ind 0)))
+	  (if (not (= (framples ind 0) 15)) (snd-display "delete-samples edpos len: ~A" (framples ind 0)))
 	  (undo)
 	  (float-vector->channel (make-float-vector 5 0.5) 15 5 ind 0 edpos)
-	  (if (not (= (framples ind 0) 20)) (snd-display ";delete-samples edpos len: ~A" (framples ind 0)))
+	  (if (not (= (framples ind 0) 20)) (snd-display "delete-samples edpos len: ~A" (framples ind 0)))
 	  (if (not (mus-arrays-equal? (channel->float-vector 10 10) (float-vector 1.0 1.0 1.0 1.0 1.0 0.5 0.5 0.5 0.5 0.5)))
-	      (snd-display ";set samples edpos: ~A" (channel->float-vector 10 10)))
+	      (snd-display "set samples edpos: ~A" (channel->float-vector 10 10)))
 	  (undo)
 	  (env-channel '(0 0 1 1) 0 #f ind 0 edpos)
-	  (if (not (= (framples ind 0) 20)) (snd-display ";env edpos len: ~A" (framples ind 0)))
+	  (if (not (= (framples ind 0) 20)) (snd-display "env edpos len: ~A" (framples ind 0)))
 	  (if (not (mus-arrays-equal? (channel->float-vector 0 20) 
 				      (float-vector 0.000 0.053 0.105 0.158 0.211 0.263 0.316 0.368 0.421 0.474 0.526 0.579 0.632 0.684 0.737 0.789 0.842 0.895 0.947 1.000)))
-	      (snd-display ";env edpos: ~A" (channel->float-vector 0 20)))
+	      (snd-display "env edpos: ~A" (channel->float-vector 0 20)))
 	  (undo)
 	  (close-sound ind)))
       
@@ -30794,7 +30794,7 @@ EDITS: 1
 	    (filter-channel v)
 	    (let ((vdata (channel->float-vector 0 20)))
 	      (if (not (mus-arrays-equal? data vdata)) 
-		  (snd-display ";filter convolved: ~%  standard: ~A~%   virtual: ~A~%" data vdata)))
+		  (snd-display "filter convolved: ~%  standard: ~A~%   virtual: ~A~%" data vdata)))
 	    (undo)))
 	(let ((v1 (make-float-vector 8))
 	      (v2 (make-float-vector 5)))
@@ -30808,7 +30808,7 @@ EDITS: 1
 	      (filter-channel v)
 	      (let ((vdata (channel->float-vector 0 20)))
 		(if (not (mus-arrays-equal? data vdata)) 
-		    (snd-display ";random filter convolved: ~%  standard: ~A~%   virtual: ~A~%" data vdata)))
+		    (snd-display "random filter convolved: ~%  standard: ~A~%   virtual: ~A~%" data vdata)))
 	      (undo))))
 	(let ((v1 (make-float-vector 18))
 	      (v2 (make-float-vector 15)))
@@ -30822,7 +30822,7 @@ EDITS: 1
 	      (filter-channel v)
 	      (let ((vdata (channel->float-vector 0 20)))
 		(if (not (mus-arrays-equal? data vdata)) 
-		    (snd-display ";big random filter convolved: ~%  standard: ~A~%   virtual: ~A~%" data vdata)))
+		    (snd-display "big random filter convolved: ~%  standard: ~A~%   virtual: ~A~%" data vdata)))
 	      (undo))))
 	(close-sound ind))
       
@@ -30833,13 +30833,13 @@ EDITS: 1
 	(src-channel -1.001)
 	(src-channel '(0 -1.0 1 -1.0) 0 #f ind 0 2)
 	(let ((dis (edit-distance ind 0 3 4)))
-	  (if (> dis .2) (snd-display ";src-channel -1, distance: ~A" dis)))
+	  (if (> dis .2) (snd-display "src-channel -1, distance: ~A" dis)))
 	(undo 2)
 	
 	(src-channel 1.001)
 	(src-channel '(0 1.0 1 1.0) 0 #f ind 0 2)
 	(let ((dis (edit-distance ind 0 3 4)))
-	  (if (> dis .2) (snd-display ";src-channel 1, distance: ~A" dis)))
+	  (if (> dis .2) (snd-display "src-channel 1, distance: ~A" dis)))
 	(undo 2)
 	
 	(for-each
@@ -30847,7 +30847,7 @@ EDITS: 1
 	   (src-channel rate)
 	   (src-channel (list 0 rate 1 rate) 0 #f ind 0 2)
 	   (let ((dis (edit-distance ind 0 3 4)))
-	     (if (> dis .2) (snd-display ";src-channel ~A, distance: ~A" rate dis)))
+	     (if (> dis .2) (snd-display "src-channel ~A, distance: ~A" rate dis)))
 	   (undo 2))
 	 '(2.0 -2.0 0.5 -0.5 1.5 -1.5 3.0 -3.0 0.2 -0.2))
 	
@@ -30855,13 +30855,13 @@ EDITS: 1
 	(src-sound -1.001)
 	(src-sound '(0 -1.0 1 -1.0) 1.0 ind 0 2)
 	(let ((dis (edit-distance ind 0 3 4)))
-	  (if (> dis .2) (snd-display ";src-sound -1, distance: ~A" dis)))
+	  (if (> dis .2) (snd-display "src-sound -1, distance: ~A" dis)))
 	(undo 2)
 	
 	(src-sound 1.001)
 	(src-sound '(0 1.0 1 1.0) 1.0 ind 0 2)
 	(let ((dis (edit-distance ind 0 3 4)))
-	  (if (> dis .2) (snd-display ";src-sound 1, distance: ~A" dis)))
+	  (if (> dis .2) (snd-display "src-sound 1, distance: ~A" dis)))
 	(undo 2)
 	
 	(for-each
@@ -30869,7 +30869,7 @@ EDITS: 1
 	   (src-sound rate)
 	   (src-sound (list 0 rate 1 rate) 1.0 ind 0 2)
 	   (let ((dis (edit-distance ind 0 3 4)))
-	     (if (> dis .2) (snd-display ";src-sound ~A, distance: ~A" rate dis)))
+	     (if (> dis .2) (snd-display "src-sound ~A, distance: ~A" rate dis)))
 	   (undo 2))
 	 '(2.0 -2.0 0.5 -0.5 1.5 -1.5 3.0 -3.0 0.2 -0.2))
 	
@@ -30884,57 +30884,57 @@ EDITS: 1
 	(env-selection '(0 0.5 1 0.5))
 	(let ((data (channel->float-vector)))
 	  (if (not (mus-arrays-equal? data (float-vector .4 .4 .4 .2 .2 .2 .2 .2 .4 .4)))
-	      (snd-display ";env-selection constant: ~A" data)))
+	      (snd-display "env-selection constant: ~A" data)))
 	(undo)
 	(let ((edpos (edit-position ind 0)))
 	  (smooth-channel 10 10 ind 0)
 	  (if (not (= (edit-position ind 0) edpos))
-	      (snd-display ";smooth past end: ~A ~A" (edit-position ind 0) edpos)))
+	      (snd-display "smooth past end: ~A ~A" (edit-position ind 0) edpos)))
 	  
 	(let ((ctr 0))
 	  (map-channel (lambda (y) (set! ctr (+ ctr 1)) (or (> ctr 3) (* y 2)))))
 	(if (not (= (framples ind 0) 3)) 
-	    (snd-display ";map-channel -> #t at 3: ~A" (framples ind 0))
+	    (snd-display "map-channel -> #t at 3: ~A" (framples ind 0))
 	    (if (not (mus-arrays-equal? (channel->float-vector) (float-vector 0.8 0.8 0.8)))
-		(snd-display ";map-channel #t result: ~A" (channel->float-vector))))
+		(snd-display "map-channel #t result: ~A" (channel->float-vector))))
 	
 	(undo)
 	(let ((ctr 0))
 	  (map-channel (lambda (y) (set! ctr (+ ctr 1)) (if (= ctr 3) (make-float-vector 5 .1) (* y .5)))))
 	(if (not (= (framples ind 0) 14)) 
-	    (snd-display ";map-channel -> float-vector at 3: ~A" (framples ind 0))
+	    (snd-display "map-channel -> float-vector at 3: ~A" (framples ind 0))
 	    (if (not (mus-arrays-equal? (channel->float-vector) (float-vector 0.200 0.200 0.100 0.100 0.100 0.100 0.100 0.200 0.200 0.200 0.200 0.200 0.200 0.200)))
-		(snd-display ";map-channel float-vector result: ~A" (channel->float-vector))))
+		(snd-display "map-channel float-vector result: ~A" (channel->float-vector))))
 	
 	(undo)
 	(let ((data (make-float-vector 2)))
 	  (map-channel (lambda (y) (float-vector-set! data 0 y) data)))
 	(if (not (= (framples ind 0) 20))
-	    (snd-display ";map-channel -> float-vector: ~A" (framples ind 0))
+	    (snd-display "map-channel -> float-vector: ~A" (framples ind 0))
 	    (if (not (mus-arrays-equal? (channel->float-vector) 
 					(float-vector 0.400 0.000 0.400 0.000 0.400 0.000 0.400 0.000 0.400 0.000 0.400 0.000 0.400 0.000 0.400 0.000 0.400 0.000 0.400 0.000)))
-		(snd-display ";map-channel float-vector result: ~A" (channel->float-vector))))
+		(snd-display "map-channel float-vector result: ~A" (channel->float-vector))))
 	(undo)
 	
 	(set! (amp-control ind) 2.0)
 	(apply-controls ind 1 0)
-	(if (> (abs (- (maxamp ind 0) .8)) .01) (snd-display ";apply-controls 10: ~A" (channel->float-vector)))
+	(if (> (abs (- (maxamp ind 0) .8)) .01) (snd-display "apply-controls 10: ~A" (channel->float-vector)))
 	(undo)
 	(set! (amp-control ind) 2.0)
 	(apply-controls ind 1 5)
 	(if (not (mus-arrays-equal? (channel->float-vector 0 5) (make-float-vector 5 0.4)))
-	    (snd-display ";apply controls from 5: ~A" (channel->float-vector)))
-	(if (ffneq (sample 5) .8) (snd-display ";apply-controls at 5: ~A" (sample 5)))
+	    (snd-display "apply controls from 5: ~A" (channel->float-vector)))
+	(if (ffneq (sample 5) .8) (snd-display "apply-controls at 5: ~A" (sample 5)))
 	(let ((tag (catch 'no-such-edit
 		     (lambda ()
 		       (save-sound-as "nope.snd" :edit-position 21))
 		     (lambda args (car args)))))
-	  (if (not (eq? tag 'no-such-edit)) (snd-display ";save-sound-as at bad edpos: ~A" tag)))
+	  (if (not (eq? tag 'no-such-edit)) (snd-display "save-sound-as at bad edpos: ~A" tag)))
 	(let ((tag (catch 'no-such-file
 		     (lambda ()
 		       (channel-amp-envs "/baddy/hiho"))
 		     (lambda args (car args)))))
-	  (if (not (eq? tag 'no-such-file)) (snd-display ";channel-amp-envs bad file: ~A" tag)))
+	  (if (not (eq? tag 'no-such-file)) (snd-display "channel-amp-envs bad file: ~A" tag)))
 	
 	(close-sound ind))
       
@@ -30943,25 +30943,25 @@ EDITS: 1
 	(let ((ctr 0))
 	  (map-channel (lambda (y) (or (> (set! ctr (+ ctr 1)) 3) (* y 2)))))
 	(if (not (= (framples ind 0) 3)) 
-	    (snd-display ";map-channel oboe -> #t at 3: ~A" (framples ind 0))
+	    (snd-display "map-channel oboe -> #t at 3: ~A" (framples ind 0))
 	    (if (not (mus-arrays-equal? (channel->float-vector) (float-vector 0.0 -.001 -.001)))
-		(snd-display ";map-channel #t oboe result: ~A" (channel->float-vector))))
+		(snd-display "map-channel #t oboe result: ~A" (channel->float-vector))))
 	
 	(undo)
 	(let ((ctr 0))
 	  (map-channel (lambda (y) (if (= (set! ctr (+ ctr 1)) 3) (make-float-vector 5 .1) (* y .5)))))
 	(if (not (= (framples ind 0) 50832))
-	    (snd-display ";map-channel oboe -> float-vector at 3: ~A" (framples ind 0))
+	    (snd-display "map-channel oboe -> float-vector at 3: ~A" (framples ind 0))
 	    (if (not (mus-arrays-equal? (channel->float-vector 0 10) (float-vector 0.000 -0.000 0.100 0.100 0.100 0.100 0.100 -0.000 -0.000 -0.000)))
-		(snd-display ";map-channel float-vector result: ~A" (channel->float-vector 0 10))))
+		(snd-display "map-channel float-vector result: ~A" (channel->float-vector 0 10))))
 	
 	(undo)
 	(let ((data (make-float-vector 2)))
 	  (map-channel (lambda (y) (set! (data 0) y) data)))
 	(if (not (= (framples ind 0) 101656))
-	    (snd-display ";map-channel oboe -> float-vector: ~A" (framples ind 0))
+	    (snd-display "map-channel oboe -> float-vector: ~A" (framples ind 0))
 	    (if (not (mus-arrays-equal? (channel->float-vector 0 10) (make-float-vector 10)))
-		(snd-display ";map-channel float-vector result: ~A" (channel->float-vector 0 10))))
+		(snd-display "map-channel float-vector result: ~A" (channel->float-vector 0 10))))
 	(revert-sound)
 	(close-sound ind))
       
@@ -30977,7 +30977,7 @@ EDITS: 1
 	  (let ((mxs1 (maxamp ind #t)))
 	    (if (or (fneq (car mxs) (* 2.0 (car mxs1)))
 		    (fneq (cadr mxs) (* 2.0 (cadr mxs1))))
-		(snd-display ";env-sound sync'd maxes: ~A -> ~A" mxs mxs1)))
+		(snd-display "env-sound sync'd maxes: ~A -> ~A" mxs mxs1)))
 	  (undo 1))
 	(close-sound ind))
       
@@ -30995,15 +30995,15 @@ EDITS: 1
 	  (let ((mxs1 (maxamp ind #t)))
 	    (if (or (fneq (car mxs) (* 2.0 (car mxs1)))
 		    (fneq (cadr mxs) (* 2.0 (cadr mxs1))))
-		(snd-display ";env-sound sync'd maxes buf: ~A -> ~A" mxs mxs1)))
+		(snd-display "env-sound sync'd maxes buf: ~A -> ~A" mxs mxs1)))
 	  (undo 1))
 	(let ((name (file-name ind)))
 	  (if (not (= (srate ind) *default-output-srate*))
-	      (snd-display ";new-sound default srate: ~A ~A" (srate ind) *default-output-srate*))
+	      (snd-display "new-sound default srate: ~A ~A" (srate ind) *default-output-srate*))
 	  (close-sound ind)
 	  (if (file-exists? name)
 	      (delete-file name)
-	      (snd-display ";new-sound temp? ~A" name))))
+	      (snd-display "new-sound temp? ~A" name))))
       
       (let ((ind (new-sound "test.snd" :size 40000)))
 	(let ((gen (make-triangle-wave 10.0 0.5)))
@@ -31017,7 +31017,7 @@ EDITS: 1
 	  
 	  (let ((dist (channel-distance ind 0 ind1 0)))
 	    (if (> dist 0.5)
-		(snd-display ";src 2/2.0001: ~A" dist)))
+		(snd-display "src 2/2.0001: ~A" dist)))
 	  
 	  (close-sound ind)
 	  (close-sound ind1)))
@@ -31030,7 +31030,7 @@ EDITS: 1
 	  (let ((v (channel->float-vector)))
 	    (if (not (vmus-arrays-equal? v (float-vector -0.05016523320247118 0.1581800948824515 0.1581800948824515 
 					      -0.05016523320247118 0.02716944826115516 -0.01652926966015632)))
-		(snd-display ";src 2, 10 3 10: ~A" v)))
+		(snd-display "src 2, 10 3 10: ~A" v)))
 	  (close-sound res))
 	
 	(let ((res (new-sound :size 10)))
@@ -31038,7 +31038,7 @@ EDITS: 1
 	  (src-channel 2.0)
 	  (let ((v (channel->float-vector)))
 	    (if (not (vmus-arrays-equal? v (float-vector 0.0 0.25 0.0 0.0 0.0 0.0)))
-		(snd-display ";src 2, 10 2 10: ~A" v)))
+		(snd-display "src 2, 10 2 10: ~A" v)))
 	  (close-sound res))
 	
 	(let ((res (new-sound :size 10)))
@@ -31046,7 +31046,7 @@ EDITS: 1
 	  (src-channel 2.0)
 	  (let ((v (channel->float-vector)))
 	    (if (not (vmus-arrays-equal? v (float-vector 0.25 0.0 0.0 0.0 0.0 0.0)))
-		(snd-display ";src 2, 10 0 10: ~A" v)))
+		(snd-display "src 2, 10 0 10: ~A" v)))
 	  (close-sound res))
 	
 	(let ((res (new-sound :size 11)))
@@ -31055,7 +31055,7 @@ EDITS: 1
 	  (let ((v (channel->float-vector)))
 	    (if (not (vmus-arrays-equal? v (float-vector -0.05016523320247118 0.1581800948824515 0.1581800948824515 
 					      -0.05016523320247118 0.02716944826115516 -0.01652926966015632 0.01022512563738671)))
-		(snd-display ";src 2, 11 3 10: ~A" v)))
+		(snd-display "src 2, 11 3 10: ~A" v)))
 	  (close-sound res))
 	
 	(let ((res (new-sound :size 11)))
@@ -31063,7 +31063,7 @@ EDITS: 1
 	  (src-channel 2.0)
 	  (let ((v (channel->float-vector)))
 	    (if (not (vmus-arrays-equal? v (float-vector 0.0 0.25 0.0 0.0 0.0 0.0 0.0)))
-		(snd-display ";src 2, 11 2 10: ~A" v)))
+		(snd-display "src 2, 11 2 10: ~A" v)))
 	  (close-sound res))
 	
 	(let ((res (new-sound :size 11)))
@@ -31071,7 +31071,7 @@ EDITS: 1
 	  (src-channel 2.0)
 	  (let ((v (channel->float-vector)))
 	    (if (not (vmus-arrays-equal? v (float-vector 0.25 0.0 0.0 0.0 0.0 0.0 0.0)))
-		(snd-display ";src 2, 11 0 10: ~A" v)))
+		(snd-display "src 2, 11 0 10: ~A" v)))
 	  (close-sound res))
 	
 	(let ((res (new-sound :size 40)))
@@ -31096,7 +31096,7 @@ EDITS: 1
 	  (let ((v (channel->float-vector)))
 	    (if (not (vmus-arrays-equal? v (float-vector -0.05103248958541851 0.1584755057631961 0.1584755057631961 
 					      -0.05103248958541851 0.02854464095499105 -0.01828991864619797 0.01222560572178551 -0.008180460967128276 0.0)))
-		(snd-display ";src 2, 15 3 11: ~A" v)))
+		(snd-display "src 2, 15 3 11: ~A" v)))
 	  (close-sound res))
 	
 	(let ((res (new-sound :size 15)))
@@ -31104,7 +31104,7 @@ EDITS: 1
 	  (src-channel 2.0)
 	  (let ((v (channel->float-vector)))
 	    (if (not (vmus-arrays-equal? v (float-vector 0.25 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0)))
-		(snd-display ";src 2, 15 0 11: ~A" v)))
+		(snd-display "src 2, 15 0 11: ~A" v)))
 	  (close-sound res)))
       
       (let-temporarily ((*sinc-width* 10))
@@ -31266,7 +31266,7 @@ EDITS: 1
 	  
 	  (let ((dist (channel-distance ind 0 ind1 0)))
 	    (if (> dist 0.5)
-		(snd-display ";src 0.5/0.5001: ~A" dist)))
+		(snd-display "src 0.5/0.5001: ~A" dist)))
 	  
 	  (close-sound ind)
 	  (close-sound ind1)))
@@ -31362,7 +31362,7 @@ EDITS: 1
 		    (not (pair? wids3))
 		    (and (provided? 'snd-motif)
 			 (not (= (length wids1) 11 (length wids2)))))
-		(snd-display ";channel-widgets confused: ~A ~A ~A ~A ~A" wids wids1 wids2 wids3 wids4)))
+		(snd-display "channel-widgets confused: ~A ~A ~A ~A ~A" wids wids1 wids2 wids3 wids4)))
 	  (hide-widget (car (channel-widgets)))
 	  (show-widget (car (channel-widgets)))
 	  (close-sound ind1))
@@ -31371,10 +31371,10 @@ EDITS: 1
     (start-enveloping)
     (let ((nind (open-sound "oboe.snd")))
       (if (not (equal? (channel-envelope nind 0) '(0.0 1.0 1.0 1.0)))
-	  (snd-display ";channel-envelope: ~A?" (channel-envelope nind 0)))
+	  (snd-display "channel-envelope: ~A?" (channel-envelope nind 0)))
       (set! (channel-envelope nind 0) '(0 0 1 1 2 0))
       (if (not (equal? (channel-envelope nind 0) '(0 0 1 1 2 0)))
-	  (snd-display ";set channel-envelope: ~A?" (channel-envelope nind 0)))
+	  (snd-display "set channel-envelope: ~A?" (channel-envelope nind 0)))
       (close-sound nind)
       (stop-enveloping)))
   (reset-all-hooks))
@@ -31506,29 +31506,29 @@ EDITS: 1
       (load (string-append cwd *save-state-file*))
       (let ((ind (find-sound "oboe.snd")))
 	(if (not (sound? ind))
-	    (snd-display ";can't restore oboe.snd from ~A?" *save-state-file*)
+	    (snd-display "can't restore oboe.snd from ~A?" *save-state-file*)
 	    (begin
 	      (if (or (> (abs (- (car old-bounds) (car (x-bounds ind 0)))) .05)
 		      (> (abs (- (cadr old-bounds) (cadr (x-bounds ind 0)))) .05))
-		  (snd-display ";save bounds: ~A" (x-bounds ind 0)))
+		  (snd-display "save bounds: ~A" (x-bounds ind 0)))
 	      (if (not (= (length (marks ind 0)) 1))
-		  (snd-display ";save marks: ~A (~A)?" (marks ind 0) *save-state-file*)
+		  (snd-display "save marks: ~A (~A)?" (marks ind 0) *save-state-file*)
 		  (begin
 		    (if (not (= (mark-sample (car (marks ind 0))) 122))
-			(snd-display ";save mark: ~A?" (mark-sample (car (marks ind 0)))))
+			(snd-display "save mark: ~A?" (mark-sample (car (marks ind 0)))))
 		    (if (not (= (edit-position ind 0) 1))
-			(snd-display ";save edit-position: ~A" (edit-position ind 0)))))
+			(snd-display "save edit-position: ~A" (edit-position ind 0)))))
 	      (if (not (equal? (edit-fragment 1 ind 0) '("delete-samples 12 1" "delete" 12 1)))
-		  (snd-display ";save edits: ~A" (edit-fragment 1 ind 0)))
+		  (snd-display "save edits: ~A" (edit-fragment 1 ind 0)))
 	      (if (not (equal? (edit-tree ind 0) '((0 0 0 11 1.0 0.0 0.0 0) (12 0 13 50827 1.0 0.0 0.0 0) (50827 -2 0 0 0.0 0.0 0.0 0))))
-		  (snd-display ";save edit tree: ~A" (edit-tree ind 0)))
+		  (snd-display "save edit tree: ~A" (edit-tree ind 0)))
 	      (if (not (eqv? (sound-property 'ho ind) 1234))
-		  (snd-display ";sound-property saved: 1234 -> ~A" (sound-property 'ho ind)))
+		  (snd-display "sound-property saved: 1234 -> ~A" (sound-property 'ho ind)))
 	      (if (not (equal? (sound-property :hi ind) "hi"))
-		  (snd-display ";sound-property saved: hi -> ~A" (sound-property :hi ind)))
+		  (snd-display "sound-property saved: hi -> ~A" (sound-property :hi ind)))
 	      (if (or (not (number? (channel-property :ha ind 0)))
 		      (fneq (channel-property :ha ind 0) 3.14))
-		  (snd-display ";channel-property saved: 3.14 -> ~A" (channel-property :ha ind 0)))
+		  (snd-display "channel-property saved: 3.14 -> ~A" (channel-property :ha ind 0)))
 	      (close-sound ind))))
       (set! (hook-functions after-save-state-hook) ())
       (set! (hook-functions before-save-state-hook) ())
@@ -31537,13 +31537,13 @@ EDITS: 1
 		   (lambda () 
 		     (save-state "/bad/bad.save"))
 		   (lambda args 12345))))
-	(if (not (= err 12345)) (snd-display ";save-state err: ~A?" err)))
+	(if (not (= err 12345)) (snd-display "save-state err: ~A?" err)))
       
       (let ((err (catch 'cannot-save
 		   (lambda () 
 		     (save-listener "/bad/bad.save"))
 		   (lambda args 12345))))
-	(if (not (= err 12345)) (snd-display ";save-listener err: ~A?" err)))
+	(if (not (= err 12345)) (snd-display "save-listener err: ~A?" err)))
       )
     (set! nind (open-sound "oboe.snd"))
     (set! (sample 1) .5)
@@ -31555,21 +31555,21 @@ EDITS: 1
     (revert-sound nind)
     (set! sfile nind)
     (load (string-append cwd "hiho.scm"))
-    (if (not (equal? (edit-fragment 1) '("set-sample 1 0.5000" "set" 1 1))) (snd-display ";save-edit-history 1: ~A?" (edit-fragment 1)))
-    (if (not (equal? (edit-fragment 2) '("delete-samples 100 1" "delete" 100 1))) (snd-display ";save-edit-history 2: ~A?" (edit-fragment 2)))
-    (if (not (equal? (edit-fragment 3) '("insert-sample 10 0.5000" "insert" 10 1))) (snd-display ";save-edit-history 3: ~A?" (edit-fragment 3)))
-    (if (not (equal? (edit-fragment 4) '("scale-channel 2.000 0 #f" "scale" 0 50828))) (snd-display ";save-edit-history 4: ~A?" (edit-fragment 4)))
-    (if (not (equal? (edit-fragment 5) '("pad-channel" "zero" 100 20))) (snd-display ";save-edit-history 5: ~A?" (edit-fragment 5)))
+    (if (not (equal? (edit-fragment 1) '("set-sample 1 0.5000" "set" 1 1))) (snd-display "save-edit-history 1: ~A?" (edit-fragment 1)))
+    (if (not (equal? (edit-fragment 2) '("delete-samples 100 1" "delete" 100 1))) (snd-display "save-edit-history 2: ~A?" (edit-fragment 2)))
+    (if (not (equal? (edit-fragment 3) '("insert-sample 10 0.5000" "insert" 10 1))) (snd-display "save-edit-history 3: ~A?" (edit-fragment 3)))
+    (if (not (equal? (edit-fragment 4) '("scale-channel 2.000 0 #f" "scale" 0 50828))) (snd-display "save-edit-history 4: ~A?" (edit-fragment 4)))
+    (if (not (equal? (edit-fragment 5) '("pad-channel" "zero" 100 20))) (snd-display "save-edit-history 5: ~A?" (edit-fragment 5)))
     (save-edit-history "hiho.scm" nind 0)
     (scale-sound-to 1.0 0 (framples nind 0) nind 0)
     (let ((eds (edit-position nind 0))
 	  (val (insert-sound "zero.snd")))
       (if (not (and (= 0 val)
 		    (= eds (edit-position nind 0))))
-	  (snd-display ";insert-sound zero.snd was an edit? ~A ~A ~A" val eds (edit-position nind 0))))
+	  (snd-display "insert-sound zero.snd was an edit? ~A ~A ~A" val eds (edit-position nind 0))))
     (revert-sound nind)
     (scale-sound-to 0.5 0 (framples nind 0) nind 0)
-    (if (fneq (maxamp nind 0) 0.5) (snd-display ";scale-sound-to 0.5: ~A" (maxamp nind)))
+    (if (fneq (maxamp nind 0) 0.5) (snd-display "scale-sound-to 0.5: ~A" (maxamp nind)))
     (close-sound nind)
     
     (let ((nind (open-sound "oboe.snd")))
@@ -31580,15 +31580,15 @@ EDITS: 1
       (set! sfile nind)
       (load (string-append cwd "hiho.scm"))
       (if (not (equal? (edit-fragment 1) '("ramp-channel 0.000 1.000 0 #f" "env" 0 50828)))
-	  (snd-display ";save-edit-history ramp 1: ~A?" (edit-fragment 1)))
+	  (snd-display "save-edit-history ramp 1: ~A?" (edit-fragment 1)))
       (if (not (equal? (edit-fragment 2) '("xramp-channel 0.000 1.000 32.000 0 #f" "env" 0 50828)))
-	  (snd-display ";save-edit-history xramp 2: ~A?" (edit-fragment 2)))
+	  (snd-display "save-edit-history xramp 2: ~A?" (edit-fragment 2)))
       (revert-sound nind)
       (let ((str (file->string "hiho.scm")))
 	(if (not (string=? str "      (ramp-channel 0.000 1.000 0 #f sfile 0 #f)
       (xramp-channel 0.000 1.000 32.000 0 #f sfile 0 #f)
 "))
-	    (snd-display ";file->string: ~A" str)))
+	    (snd-display "file->string: ~A" str)))
       (close-sound nind))
     
     (for-each add-sound-file-extension '("ogg" "OGG" "sf" "SF2" "mp3" "MP3" "W01" "W02" "W03" "W04" "W05" "W06" "W07" 
@@ -31607,7 +31607,7 @@ EDITS: 1
 	(load (string-append cwd "t1.scm"))
 	(set! ind (find-sound "fmv.snd"))
 	(if (not (sound? ind))
-	    (snd-display ";save-state restored but no sound?"))
+	    (snd-display "save-state restored but no sound?"))
 	(do ((i 3 (+ i 1)))
 	    ((= i 6))
 	  (set! (sample i) (* i .1))
@@ -31619,7 +31619,7 @@ EDITS: 1
 	  (load (string-append cwd "t1.scm"))
 	  (set! ind (find-sound "fmv.snd"))
 	  (if (not (sound? ind))
-	      (snd-display ";save-state ~A restored but no sound?" i))))
+	      (snd-display "save-state ~A restored but no sound?" i))))
       (close-sound ind)
       (delete-file "t1.scm"))
     
@@ -31651,7 +31651,7 @@ EDITS: 1
 	  (ind1 (find-sound "fmv1.snd")))
       (if (not (and (sound? ind)
 		    (sound? ind1)))
-	  (snd-display ";save-state(2) restored but no sound? ~A ~A" ind ind1))
+	  (snd-display "save-state(2) restored but no sound? ~A ~A" ind ind1))
       (close-sound ind)
       (close-sound ind1))
     (delete-file "t1.scm")
@@ -31686,36 +31686,36 @@ EDITS: 1
 	  (close-sound ind)
 	  (for-each forget-region (regions))
 	  (load (string-append cwd "s61.scm"))
-	  (if (fneq *clm-srate* 48000.0) (snd-display ";save/restore mus-srate: ~A" *clm-srate*))
-	  (if (not (= *clm-file-buffer-size* 4096)) (snd-display ";save/restore mus-file-buffer-size: ~A" *clm-file-buffer-size*))
-	  (if (not (= *mus-array-print-length* 24)) (snd-display ";save/restore mus-array-print-length: ~A" *mus-array-print-length*))
-	  (if (not (= *clm-table-size* 256)) (snd-display ";save/restore clm-table-size: ~A" *clm-table-size*)))
+	  (if (fneq *clm-srate* 48000.0) (snd-display "save/restore mus-srate: ~A" *clm-srate*))
+	  (if (not (= *clm-file-buffer-size* 4096)) (snd-display "save/restore mus-file-buffer-size: ~A" *clm-file-buffer-size*))
+	  (if (not (= *mus-array-print-length* 24)) (snd-display "save/restore mus-array-print-length: ~A" *mus-array-print-length*))
+	  (if (not (= *clm-table-size* 256)) (snd-display "save/restore clm-table-size: ~A" *clm-table-size*)))
 	(set! ind (find-sound "oboe.snd"))
-	(if (not (= (show-axes ind 0) show-no-axes)) (snd-display ";save show-no-axes: ~A" (show-axes ind 0)))
-	(if (not (= *zoom-focus-style* zoom-focus-middle)) (snd-display ";save zoom-focus-middle: ~A" *zoom-focus-style*))
-	(if (not (= (transform-normalization ind 0) dont-normalize)) (snd-display ";save dont-normalize: ~A" (transform-normalization ind 0)))
-	(if (not (= (graph-style ind 0) graph-filled)) (snd-display ";save graph-filled: ~A" (graph-style ind 0)))
-	(if (not (= (transform-graph-type ind 0) graph-as-spectrogram)) (snd-display ";save graph-as-spectrogram: ~A" (transform-graph-type ind 0)))
-	(if (not (= (time-graph-type ind 0) graph-as-wavogram)) (snd-display ";save graph-as-wavogram: ~A" (time-graph-type ind 0)))
-	(if (not (= (x-axis-style ind 0) x-axis-as-percentage)) (snd-display ";save x-axis-as-percentage: ~A" (x-axis-style ind 0)))
-	(if (not (= (speed-control-style ind) speed-control-as-semitone)) (snd-display ";save speed-control-style: ~A" (speed-control-style ind)))
-	(if (not (= (cursor ind 0) 1234)) (snd-display ";save cursor 1234: ~A" (cursor ind 0)))
-	(if (not (string=? *eps-file* "hiho.eps")) (snd-display ";save eps-file: ~A" *eps-file*))
+	(if (not (= (show-axes ind 0) show-no-axes)) (snd-display "save show-no-axes: ~A" (show-axes ind 0)))
+	(if (not (= *zoom-focus-style* zoom-focus-middle)) (snd-display "save zoom-focus-middle: ~A" *zoom-focus-style*))
+	(if (not (= (transform-normalization ind 0) dont-normalize)) (snd-display "save dont-normalize: ~A" (transform-normalization ind 0)))
+	(if (not (= (graph-style ind 0) graph-filled)) (snd-display "save graph-filled: ~A" (graph-style ind 0)))
+	(if (not (= (transform-graph-type ind 0) graph-as-spectrogram)) (snd-display "save graph-as-spectrogram: ~A" (transform-graph-type ind 0)))
+	(if (not (= (time-graph-type ind 0) graph-as-wavogram)) (snd-display "save graph-as-wavogram: ~A" (time-graph-type ind 0)))
+	(if (not (= (x-axis-style ind 0) x-axis-as-percentage)) (snd-display "save x-axis-as-percentage: ~A" (x-axis-style ind 0)))
+	(if (not (= (speed-control-style ind) speed-control-as-semitone)) (snd-display "save speed-control-style: ~A" (speed-control-style ind)))
+	(if (not (= (cursor ind 0) 1234)) (snd-display "save cursor 1234: ~A" (cursor ind 0)))
+	(if (not (string=? *eps-file* "hiho.eps")) (snd-display "save eps-file: ~A" *eps-file*))
 	(when with-gui
 	  (if (not (string=? (x-axis-label ind 0 time-graph) "time-x"))
-	      (snd-display ";save x-axis-label: ~A" (x-axis-label ind 0 time-graph)))
+	      (snd-display "save x-axis-label: ~A" (x-axis-label ind 0 time-graph)))
 	  (if (not (string=? (y-axis-label ind 0 time-graph) "amp-y"))
-	      (snd-display ";save y-axis-label: ~A" (y-axis-label ind 0 time-graph))))
+	      (snd-display "save y-axis-label: ~A" (y-axis-label ind 0 time-graph))))
 	(if (not (feql (amp-control-bounds ind) '(0 2.5))) 
-	    (snd-display ";save amp-control-bounds: ~A" (amp-control-bounds ind)))
+	    (snd-display "save amp-control-bounds: ~A" (amp-control-bounds ind)))
 	(if (not (feql (speed-control-bounds ind) '(1.0 2.5))) 
-	    (snd-display ";save speed-control-bounds: ~A" (speed-control-bounds ind)))
+	    (snd-display "save speed-control-bounds: ~A" (speed-control-bounds ind)))
 	(if (not (feql (contrast-control-bounds ind) '(0 2.5))) 
-	    (snd-display ";save contrast-control-bounds: ~A" (contrast-control-bounds ind)))
+	    (snd-display "save contrast-control-bounds: ~A" (contrast-control-bounds ind)))
 	(if (not (feql (reverb-control-scale-bounds ind) '(0 2.5))) 
-	    (snd-display ";save reverb-control-scale-bounds: ~A" (reverb-control-scale-bounds ind)))
+	    (snd-display "save reverb-control-scale-bounds: ~A" (reverb-control-scale-bounds ind)))
 	(if (not (feql (reverb-control-length-bounds ind) '(0 2.5))) 
-	    (snd-display ";save reverb-control-length-bounds: ~A" (reverb-control-length-bounds ind)))
+	    (snd-display "save reverb-control-length-bounds: ~A" (reverb-control-length-bounds ind)))
 	(delete-file "s61.scm")
 	(close-sound ind)))
     
@@ -31732,19 +31732,19 @@ EDITS: 1
 	(close-sound ind)
 	(for-each forget-region (regions))
 	(load (string-append cwd "s61.scm"))
-	(if (not (string=? *tiny-font* "8x13")) (snd-display ";save tiny-font: ~A" *tiny-font*))
-	(if (not (string=? *peaks-font* "8x13")) (snd-display ";save peaks-font: ~A" *peaks-font*))
-	(if (not (string=? *bold-peaks-font* "8x13")) (snd-display ";save bold-peaks-font: ~A" *bold-peaks-font*))
+	(if (not (string=? *tiny-font* "8x13")) (snd-display "save tiny-font: ~A" *tiny-font*))
+	(if (not (string=? *peaks-font* "8x13")) (snd-display "save peaks-font: ~A" *peaks-font*))
+	(if (not (string=? *bold-peaks-font* "8x13")) (snd-display "save bold-peaks-font: ~A" *bold-peaks-font*))
 	(if (not (feql (amp-control-bounds) '(0 2.5))) 
-	    (snd-display ";save amp-control-bounds: ~A" (amp-control-bounds)))
+	    (snd-display "save amp-control-bounds: ~A" (amp-control-bounds)))
 	(if (not (feql (speed-control-bounds) '(1.0 2.5))) 
-	    (snd-display ";save speed-control-bounds: ~A" (speed-control-bounds)))
+	    (snd-display "save speed-control-bounds: ~A" (speed-control-bounds)))
 	(if (not (feql (contrast-control-bounds) '(0 2.5))) 
-	    (snd-display ";save contrast-control-bounds: ~A" (contrast-control-bounds)))
+	    (snd-display "save contrast-control-bounds: ~A" (contrast-control-bounds)))
 	(if (not (feql (reverb-control-scale-bounds) '(0 2.5))) 
-	    (snd-display ";save reverb-control-scale-bounds: ~A" (reverb-control-scale-bounds)))
+	    (snd-display "save reverb-control-scale-bounds: ~A" (reverb-control-scale-bounds)))
 	(if (not (feql (reverb-control-length-bounds) '(0 2.5))) 
-	    (snd-display ";save reverb-control-length-bounds: ~A" (reverb-control-length-bounds)))
+	    (snd-display "save reverb-control-length-bounds: ~A" (reverb-control-length-bounds)))
 	(delete-file "s61.scm")
 	(close-sound ind)))
     
@@ -31781,11 +31781,11 @@ EDITS: 1
 	  (for-each (lambda (func func-name global local)
 		      (if (not (and (local-eq? (func) global)
 				    (local-eq? (func ind 0) local)))
-			  (snd-display "; save ~A reversed: ~A [~A] ~A [~A]" 
+			  (snd-display " save ~A reversed: ~A [~A] ~A [~A]" 
 				       func-name (func) global (func ind 0) local)))
 		    funcs func-names new-globals new-locals))
 	(if (not (= (channel-style ind) channels-separate))
-	    (snd-display ";save channel-style reversed: ~A ~A" *channel-style* (channel-style ind)))
+	    (snd-display "save channel-style reversed: ~A ~A" *channel-style* (channel-style ind)))
 	(for-each (lambda (func val) (set! (func) val)) funcs old-globals)
 	(close-sound ind)
 	(set! *zoom-focus-style* zoom-focus-active)
@@ -31795,9 +31795,9 @@ EDITS: 1
     (let ((ind0 (open-sound "oboe.snd"))
 	  (ind1 (open-sound "oboe.snd")))
       (if (not (member (find-sound "oboe.snd" 0) (list ind0 ind1)))
-	  (snd-display ";find-sound 0: ~A ~A" (list ind0 ind1) (find-sound "oboe.snd" 0)))
+	  (snd-display "find-sound 0: ~A ~A" (list ind0 ind1) (find-sound "oboe.snd" 0)))
       (if (not (member (find-sound "oboe.snd" 1) (list ind0 ind1)))
-	  (snd-display ";find-sound 1: ~A ~A" (list ind0 ind1) (find-sound "oboe.snd" 1)))
+	  (snd-display "find-sound 1: ~A ~A" (list ind0 ind1) (find-sound "oboe.snd" 1)))
       (add-mark 123 ind0)
       (add-mark 321 ind1)
       (if (file-exists? "s61.scm") (delete-file "s61.scm"))
@@ -31807,11 +31807,11 @@ EDITS: 1
     (load (string-append cwd "s61.scm"))
     (let ((ind0 (find-sound "oboe.snd" 0))
 	  (ind1 (find-sound "oboe.snd" 1)))
-      (if (not (and ind0 ind1)) (snd-display ";saved 2oboes, found: ~A" (map short-file-name (sounds))))
-      (if (not (find-mark 123 ind0)) (snd-display ";saved 2oboes mark 0?"))
-      (if (find-mark 123 ind1) (snd-display ";saved 2oboes mark 1->0?"))
-      (if (not (find-mark 321 ind1)) (snd-display ";saved 2oboes mark 1?"))
-      (if (find-mark 321 ind0) (snd-display ";saved 2oboes mark 0->1?"))
+      (if (not (and ind0 ind1)) (snd-display "saved 2oboes, found: ~A" (map short-file-name (sounds))))
+      (if (not (find-mark 123 ind0)) (snd-display "saved 2oboes mark 0?"))
+      (if (find-mark 123 ind1) (snd-display "saved 2oboes mark 1->0?"))
+      (if (not (find-mark 321 ind1)) (snd-display "saved 2oboes mark 1?"))
+      (if (find-mark 321 ind0) (snd-display "saved 2oboes mark 0->1?"))
       (close-sound ind0)
       (close-sound ind1))
     
@@ -31826,7 +31826,7 @@ EDITS: 1
 	   (load (string-append cwd "s61.scm"))
 	   (set! ind (find-sound "test.snd"))
 	   (if (not (sound? ind)) 
-	       (snd-display ";save-state test ~D no test.snd?" ctr)
+	       (snd-display "save-state test ~D no test.snd?" ctr)
 	       (begin
 		 (test ind)
 		 (close-sound ind)))
@@ -31881,64 +31881,64 @@ EDITS: 1
        (list
 	;; basic cases
 	(lambda (ind)
-	  (if (fneq (sample 10) .5) (snd-display ";insert-sample save-state: ~A" (channel->float-vector 5 10 ind 0)))
-	  (if (not (= (framples ind 0) 101)) (snd-display ";insert-sample save-state len: ~A" (framples ind 0))))
+	  (if (fneq (sample 10) .5) (snd-display "insert-sample save-state: ~A" (channel->float-vector 5 10 ind 0)))
+	  (if (not (= (framples ind 0) 101)) (snd-display "insert-sample save-state len: ~A" (framples ind 0))))
 	(lambda (ind)
-	  (if (fneq (sample 10) 0.0) (snd-display ";delete-sample save-state: ~A" (channel->float-vector 5 10 ind 0)))
-	  (if (not (= (framples ind 0) 99)) (snd-display ";delete-sample save-state len: ~A" (framples ind 0))))
+	  (if (fneq (sample 10) 0.0) (snd-display "delete-sample save-state: ~A" (channel->float-vector 5 10 ind 0)))
+	  (if (not (= (framples ind 0) 99)) (snd-display "delete-sample save-state len: ~A" (framples ind 0))))
 	(lambda (ind)
-	  (if (fneq (sample 10) .5) (snd-display ";set sample save-state: ~A" (channel->float-vector 5 10 ind 0)))
-	  (if (not (= (framples ind 0) 100)) (snd-display ";set sample save-state len: ~A" (framples ind 0))))
+	  (if (fneq (sample 10) .5) (snd-display "set sample save-state: ~A" (channel->float-vector 5 10 ind 0)))
+	  (if (not (= (framples ind 0) 100)) (snd-display "set sample save-state len: ~A" (framples ind 0))))
 	(lambda (ind)
-	  (if (fneq (sample 10) .25) (snd-display ";scl sample save-state: ~A" (channel->float-vector 5 10 ind 0)))
-	  (if (not (= (framples ind 0) 100)) (snd-display ";scl sample save-state len: ~A" (framples ind 0)))
-	  (if (not (= (edit-position ind 0) 2)) (snd-display ";scl sample save-state edpos: ~A" (edit-position ind 0))))
+	  (if (fneq (sample 10) .25) (snd-display "scl sample save-state: ~A" (channel->float-vector 5 10 ind 0)))
+	  (if (not (= (framples ind 0) 100)) (snd-display "scl sample save-state len: ~A" (framples ind 0)))
+	  (if (not (= (edit-position ind 0) 2)) (snd-display "scl sample save-state edpos: ~A" (edit-position ind 0))))
 	(lambda (ind)
-	  (if (not (= (framples ind 0) 105)) (snd-display ";pad sample save-state len: ~A" (framples ind 0)))
-	  (if (not (= (edit-position ind 0) 2)) (snd-display ";pad sample save-state edpos: ~A" (edit-position ind 0)))
+	  (if (not (= (framples ind 0) 105)) (snd-display "pad sample save-state len: ~A" (framples ind 0)))
+	  (if (not (= (edit-position ind 0) 2)) (snd-display "pad sample save-state edpos: ~A" (edit-position ind 0)))
 	  (if (not (mus-arrays-equal? (float-vector .5 .5 0 0 0 0 0 .5 .5 .5) (channel->float-vector 10 10 ind 0)))
-	      (snd-display ";pad sample save-state: ~A" (channel->float-vector 10 10 ind 0))))
+	      (snd-display "pad sample save-state: ~A" (channel->float-vector 10 10 ind 0))))
 	(lambda (ind)
-	  (if (not (= (framples ind 0) 100)) (snd-display ";env sample save-state len: ~A" (framples ind 0)))
-	  (if (not (= (edit-position ind 0) 2)) (snd-display ";env sample save-state edpos: ~A" (edit-position ind 0)))
+	  (if (not (= (framples ind 0) 100)) (snd-display "env sample save-state len: ~A" (framples ind 0)))
+	  (if (not (= (edit-position ind 0) 2)) (snd-display "env sample save-state edpos: ~A" (edit-position ind 0)))
 	  (if (not (mus-arrays-equal? (float-vector 0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1.0 1.0 1.0 1.0 1.0) (channel->float-vector 0 15 ind 0)))
-	      (snd-display ";env sample save-state: ~A" (channel->float-vector 0 15 ind 0))))
+	      (snd-display "env sample save-state: ~A" (channel->float-vector 0 15 ind 0))))
 	(lambda (ind)
-	  (if (not (= (framples ind 0) 100)) (snd-display "; sample save-state len: ~A" (framples ind 0)))
-	  (if (not (= (edit-position ind 0) 1)) (snd-display "; sample save-state edpos: ~A" (edit-position ind 0)))
-	  (if (fneq (maxamp ind 0) .1) (snd-display "; save-state max: ~A" (maxamp ind 0)))
-	  (if (not (mus-arrays-equal? (make-float-vector 10 .1) (channel->float-vector 0 10))) (snd-display "; save-state vals: ~A" (channel->float-vector 0 10 ind 0))))
+	  (if (not (= (framples ind 0) 100)) (snd-display " sample save-state len: ~A" (framples ind 0)))
+	  (if (not (= (edit-position ind 0) 1)) (snd-display " sample save-state edpos: ~A" (edit-position ind 0)))
+	  (if (fneq (maxamp ind 0) .1) (snd-display " save-state max: ~A" (maxamp ind 0)))
+	  (if (not (mus-arrays-equal? (make-float-vector 10 .1) (channel->float-vector 0 10))) (snd-display " save-state vals: ~A" (channel->float-vector 0 10 ind 0))))
 	
 	;; map-channel as backup
 	(lambda (ind)
-	  (if (not (= (framples ind 0) 50)) (snd-display ";map #f save-state len: ~A" (framples ind 0)))
-	  (if (not (= (edit-position ind 0) 1)) (snd-display ";map #f save-state edpos: ~A" (edit-position ind 0)))
-	  (if (fneq (maxamp ind 0) .1) (snd-display ";map #f save-state max: ~A" (maxamp ind 0)))
-	  (if (not (mus-arrays-equal? (make-float-vector 10 .1) (channel->float-vector 0 10))) (snd-display ";map #f save-state vals: ~A" (channel->float-vector 0 10 ind 0))))
+	  (if (not (= (framples ind 0) 50)) (snd-display "map #f save-state len: ~A" (framples ind 0)))
+	  (if (not (= (edit-position ind 0) 1)) (snd-display "map #f save-state edpos: ~A" (edit-position ind 0)))
+	  (if (fneq (maxamp ind 0) .1) (snd-display "map #f save-state max: ~A" (maxamp ind 0)))
+	  (if (not (mus-arrays-equal? (make-float-vector 10 .1) (channel->float-vector 0 10))) (snd-display "map #f save-state vals: ~A" (channel->float-vector 0 10 ind 0))))
 	
 	;; as-one-edit
 	(lambda (ind)
-	  (if (not (= (edit-position ind 0) 1)) (snd-display ";save-state backup 2 float-vectors edpos: ~A" (edit-position ind 0)))
+	  (if (not (= (edit-position ind 0) 1)) (snd-display "save-state backup 2 float-vectors edpos: ~A" (edit-position ind 0)))
 	  (if (not (mus-arrays-equal? (channel->float-vector 0 10 ind 0) (float-vector .1 .2 .3 .4 .5 .6 .7 .8 .9 1.0)))
-	      (snd-display ";as-one-edit save-state 1: ~A" (channel->float-vector 0 10 ind 0)))
+	      (snd-display "as-one-edit save-state 1: ~A" (channel->float-vector 0 10 ind 0)))
 	  (if (not (mus-arrays-equal? (channel->float-vector 20 10 ind 0) (float-vector .1 .2 .3 .4 .5 .6 .7 .8 .9 1.0)))
-	      (snd-display ";as-one-edit save-state 2: ~A" (channel->float-vector 0 10 ind 0))))
+	      (snd-display "as-one-edit save-state 2: ~A" (channel->float-vector 0 10 ind 0))))
 	
 	(lambda (ind)
-	  (if (not (= (edit-position ind 0) 1)) (snd-display ";save-state backup float-vector+scl edpos: ~A" (edit-position ind 0)))
+	  (if (not (= (edit-position ind 0) 1)) (snd-display "save-state backup float-vector+scl edpos: ~A" (edit-position ind 0)))
 	  (if (not (mus-arrays-equal? (channel->float-vector 0 10 ind 0) (float-vector-scale! (float-vector .1 .2 .3 .4 .5 .6 .7 .8 .9 1.0) .5)))
-	      (snd-display ";as-one-edit save-state 3: ~A" (channel->float-vector 0 10 ind 0))))
+	      (snd-display "as-one-edit save-state 3: ~A" (channel->float-vector 0 10 ind 0))))
 	
 	(lambda (ind)
-	  (if (not (= (edit-position ind 0) 1)) (snd-display ";save-state backup float-vector+del edpos: ~A" (edit-position ind 0)))
+	  (if (not (= (edit-position ind 0) 1)) (snd-display "save-state backup float-vector+del edpos: ~A" (edit-position ind 0)))
 	  (if (not (mus-arrays-equal? (channel->float-vector 0 10 ind 0) (float-vector .1 .2 .3 .4 .5 0 0 0 0 0)))
-	      (snd-display ";as-one-edit save-state 4: ~A" (channel->float-vector 0 10 ind 0))))
+	      (snd-display "as-one-edit save-state 4: ~A" (channel->float-vector 0 10 ind 0))))
 	
 	(lambda (ind)
-	  (if (not (= (edit-position ind 0) 1)) (snd-display ";save-state backup del+insert edpos: ~A" (edit-position ind 0)))
+	  (if (not (= (edit-position ind 0) 1)) (snd-display "save-state backup del+insert edpos: ~A" (edit-position ind 0)))
 	  (if (not (mus-arrays-equal? (channel->float-vector 0 10 ind 0) (float-vector 0 0 0 0 0 .1 .2 0 0 0)))
-	      (snd-display ";as-one-edit save-state 5: ~A" (channel->float-vector 0 10 ind 0)))
-	  (if (not (= (framples ind 0) 97)) (snd-display ";save-state backup del+insert len: ~A" (framples ind 0))))
+	      (snd-display "as-one-edit save-state 5: ~A" (channel->float-vector 0 10 ind 0)))
+	  (if (not (= (framples ind 0) 97)) (snd-display "save-state backup del+insert len: ~A" (framples ind 0))))
 	
 	)))
 
@@ -31950,175 +31950,175 @@ EDITS: 1
       ;; ---- simple scale
       (let ((mx0 (maxamp)))
 	(scale-channel 2.0)
-	(if (fneq (* 2 mx0) (maxamp)) (snd-display ";edit-list->function off to a bad start: ~A" (maxamp)))
+	(if (fneq (* 2 mx0) (maxamp)) (snd-display "edit-list->function off to a bad start: ~A" (maxamp)))
 	(let ((func (edit-list->function)))
 	  (if (not (procedure? func)) 
-	      (snd-display ";edit-list->function 1: ~A" func))
+	      (snd-display "edit-list->function 1: ~A" func))
 	  (if (not (equal? (procedure-source func) '(lambda (snd chn) (scale-channel 2.0 0 #f snd chn))))
-	      (snd-display ";edit-list->function 1: ~A" (procedure-source func)))
+	      (snd-display "edit-list->function 1: ~A" (procedure-source func)))
 	  (func ind 0)
 	  (let ((mx (maxamp)))
-	    (if (fneq (* 4 mx0) mx) (snd-display ";edit-list->function called (1): ~A ~A" mx mx0)))))
+	    (if (fneq (* 4 mx0) mx) (snd-display "edit-list->function called (1): ~A ~A" mx mx0)))))
       (revert-sound ind)
       
       (scale-by 2.0)
       (let ((func (edit-list->function)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 1a: ~A" func))
+	    (snd-display "edit-list->function 1a: ~A" func))
 	(if (not (equal? (procedure-source func) '(lambda (snd chn) (scale-channel 2.0 0 #f snd chn))))
-	    (snd-display ";edit-list->function 1a: ~A" (procedure-source func))))
+	    (snd-display "edit-list->function 1a: ~A" (procedure-source func))))
       (revert-sound ind)
       (normalize-channel 1.0)
       (let ((func (edit-list->function)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 1c: ~A" func))
+	    (snd-display "edit-list->function 1c: ~A" func))
 	(if (not (equal? (procedure-source func) '(lambda (snd chn) (normalize-channel 1.0 0 #f snd chn))))
-	    (snd-display ";edit-list->function 1c: ~A" (procedure-source func))))
+	    (snd-display "edit-list->function 1c: ~A" (procedure-source func))))
       (revert-sound ind)
       
       ;; ---- simple delete
       (delete-samples 10 100)
-      (if (not (= (framples) (- frs 100))) (snd-display ";edit-list->function delete: ~A ~A" frs (framples)))
+      (if (not (= (framples) (- frs 100))) (snd-display "edit-list->function delete: ~A ~A" frs (framples)))
       (let ((func (edit-list->function)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 2: ~A" func))
+	    (snd-display "edit-list->function 2: ~A" func))
 	(if (not (equal? (procedure-source func) '(lambda (snd chn) (delete-samples 10 100 snd chn))))
-	    (snd-display ";edit-list->function 2: ~A" (procedure-source func)))
+	    (snd-display "edit-list->function 2: ~A" (procedure-source func)))
 	(func ind 0)
-	(if (not (= (framples) (- frs 200))) (snd-display ";edit-list->function called (2): ~A ~A" frs (framples))))
+	(if (not (= (framples) (- frs 200))) (snd-display "edit-list->function called (2): ~A ~A" frs (framples))))
       (revert-sound ind)
       
       ;; ---- simple delete (a)
       (delete-sample 100)
-      (if (not (= (framples) (- frs 1))) (snd-display ";edit-list->function delete (2a): ~A ~A" frs (framples)))
+      (if (not (= (framples) (- frs 1))) (snd-display "edit-list->function delete (2a): ~A ~A" frs (framples)))
       (let ((func (edit-list->function)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 2a: ~A" func))
+	    (snd-display "edit-list->function 2a: ~A" func))
 	(if (not (equal? (procedure-source func) '(lambda (snd chn) (delete-samples 100 1 snd chn))))
-	    (snd-display ";edit-list->function 2a: ~A" (procedure-source func)))
+	    (snd-display "edit-list->function 2a: ~A" (procedure-source func)))
 	(func ind 0)
-	(if (not (= (framples) (- frs 2))) (snd-display ";edit-list->function called (2a): ~A ~A" frs (framples))))
+	(if (not (= (framples) (- frs 2))) (snd-display "edit-list->function called (2a): ~A ~A" frs (framples))))
       (revert-sound ind)
       
       ;; ---- simple zero pad
       (pad-channel 10 100)
-      (if (not (= (framples) (+ frs 100))) (snd-display ";edit-list->function pad: ~A ~A" frs (framples)))
+      (if (not (= (framples) (+ frs 100))) (snd-display "edit-list->function pad: ~A ~A" frs (framples)))
       (let ((func (edit-list->function)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 3: ~A" func))
+	    (snd-display "edit-list->function 3: ~A" func))
 	(if (not (equal? (procedure-source func) '(lambda (snd chn) (pad-channel 10 100 snd chn))))
-	    (snd-display ";edit-list->function 3: ~A" (procedure-source func)))
+	    (snd-display "edit-list->function 3: ~A" (procedure-source func)))
 	(func ind 0)
-	(if (not (= (framples) (+ frs 200))) (snd-display ";edit-list->function called (3): ~A ~A" frs (framples))))
+	(if (not (= (framples) (+ frs 200))) (snd-display "edit-list->function called (3): ~A ~A" frs (framples))))
       (revert-sound ind)
       
       ;; ---- simple zero pad (a)
       (insert-silence 10 100)
-      (if (not (= (framples) (+ frs 100))) (snd-display ";edit-list->function pad (3a): ~A ~A" frs (framples)))
+      (if (not (= (framples) (+ frs 100))) (snd-display "edit-list->function pad (3a): ~A ~A" frs (framples)))
       (let ((func (edit-list->function)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 3a: ~A" func))
+	    (snd-display "edit-list->function 3a: ~A" func))
 	(if (not (equal? (procedure-source func) '(lambda (snd chn) (pad-channel 10 100 snd chn))))
-	    (snd-display ";edit-list->function 3a: ~A" (procedure-source func)))
+	    (snd-display "edit-list->function 3a: ~A" (procedure-source func)))
 	(func ind 0)
-	(if (not (= (framples) (+ frs 200))) (snd-display ";edit-list->function called (3a): ~A ~A" frs (framples))))
+	(if (not (= (framples) (+ frs 200))) (snd-display "edit-list->function called (3a): ~A ~A" frs (framples))))
       (revert-sound ind)
       
       ;; --- simple ramp
       (ramp-channel 0.2 0.9)
-      (if (fneq (maxamp) 0.0899) (snd-display ";edit-list ramp: ~A" (maxamp)))
+      (if (fneq (maxamp) 0.0899) (snd-display "edit-list ramp: ~A" (maxamp)))
       (let ((func (edit-list->function)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 4: ~A" func))
+	    (snd-display "edit-list->function 4: ~A" func))
 	(if (not (equal? (procedure-source func) '(lambda (snd chn) (ramp-channel 0.2 0.9 0 #f snd chn))))
-	    (snd-display ";edit-list->function 4: ~A" (procedure-source func)))
+	    (snd-display "edit-list->function 4: ~A" (procedure-source func)))
 	(func ind 0)
 	(let ((mx (maxamp)))
-	  (if (fneq mx 0.061) (snd-display ";edit-list->function called (4): ~A" mx))))
+	  (if (fneq mx 0.061) (snd-display "edit-list->function called (4): ~A" mx))))
       (revert-sound ind)
       
       ;; --- simple xramp
       (xramp-channel 0.2 0.9 32.0)
-      (if (and (fneq (maxamp) 0.055) (fneq (maxamp) .056)) (snd-display ";edit-list xramp: ~A" (maxamp)))
+      (if (and (fneq (maxamp) 0.055) (fneq (maxamp) .056)) (snd-display "edit-list xramp: ~A" (maxamp)))
       (let ((func (edit-list->function)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 5: ~A" func))
+	    (snd-display "edit-list->function 5: ~A" func))
 	(if (not (equal? (procedure-source func) '(lambda (snd chn) (xramp-channel 0.2 0.9 32.0 0 #f snd chn))))
-	    (snd-display ";edit-list->function 5: ~A" (procedure-source func)))
+	    (snd-display "edit-list->function 5: ~A" (procedure-source func)))
 	(func ind 0)
 	(let ((mx (maxamp)))
-	  (if (fneq mx 0.0266) (snd-display ";edit-list->function called (5): ~A" mx))))
+	  (if (fneq mx 0.0266) (snd-display "edit-list->function called (5): ~A" mx))))
       (revert-sound ind)
       
       
       ;; ---- simple env
       (env-sound '(0 0 1 1))
-      (if (fneq (maxamp) 0.0906) (snd-display ";edit-list env: ~A" (maxamp)))
+      (if (fneq (maxamp) 0.0906) (snd-display "edit-list env: ~A" (maxamp)))
       (let ((func (edit-list->function)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 6: ~A" func))
+	    (snd-display "edit-list->function 6: ~A" func))
 	(if (not (equal? (procedure-source func)
 			 '(lambda (snd chn) (env-channel '(0.0 0.0 1.0 1.0) 0 #f snd chn))))
-	    (snd-display ";edit-list->function 6: ~A" (procedure-source func)))
+	    (snd-display "edit-list->function 6: ~A" (procedure-source func)))
 	(func ind 0)
 	(let ((mx (maxamp)))
-	  (if (fneq mx 0.0634) (snd-display ";edit-list->function called (6): ~A" mx))))
+	  (if (fneq mx 0.0634) (snd-display "edit-list->function called (6): ~A" mx))))
       (revert-sound ind)
       
       ;; ---- less simple env
       (env-sound '(0 0 1 .3 2 .8 3 0))
-      (if (fneq (maxamp) 0.107) (snd-display ";edit-list env: ~A" (maxamp)))
+      (if (fneq (maxamp) 0.107) (snd-display "edit-list env: ~A" (maxamp)))
       (let ((func (edit-list->function)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 7: ~A" func))
+	    (snd-display "edit-list->function 7: ~A" func))
 	(if (not (equal? (procedure-source func) 
 			 '(lambda (snd chn) (env-channel '(0.0 0.0 1.0 0.3 2.0 0.8 3.0 0.0) 0 #f snd chn))))
-	    (snd-display ";edit-list->function 7: ~A" (procedure-source func)))
+	    (snd-display "edit-list->function 7: ~A" (procedure-source func)))
 	(func ind 0)
 	(let ((mx (maxamp)))
-	  (if (fneq mx 0.0857) (snd-display ";edit-list->function called (7): ~A" mx))))
+	  (if (fneq mx 0.0857) (snd-display "edit-list->function called (7): ~A" mx))))
       (revert-sound ind)
       
       (env-channel '(0 0 1 .3 2 .8 3 0))
       (let ((func (edit-list->function)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 7a: ~A" func))
+	    (snd-display "edit-list->function 7a: ~A" func))
 	(if (not (equal? (procedure-source func) 
 			 '(lambda (snd chn) (env-channel '(0.0 0.0 1.0 0.3 2.0 0.8 3.0 0.0) 0 #f snd chn))))
-	    (snd-display ";edit-list->function 7a: ~A" (procedure-source func))))
+	    (snd-display "edit-list->function 7a: ~A" (procedure-source func))))
       (revert-sound ind)
       
       (env-channel '(0 0 1 .3 2 .8 3 0) 1000 2000)
       (let ((func (edit-list->function)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 7b: ~A" func))
+	    (snd-display "edit-list->function 7b: ~A" func))
 	(if (not (equal? (procedure-source func) 
 			 '(lambda (snd chn) (env-channel (make-env '(0.0 0.0 1.0 0.3 2.0 0.8 3.0 0.0) :base 1.0 :end 1999) 1000 2000 snd chn))))
-	    (snd-display ";edit-list->function 7b: ~A" (procedure-source func))))
+	    (snd-display "edit-list->function 7b: ~A" (procedure-source func))))
       (revert-sound ind)
       
       (env-channel (make-env '(0.0 0.0 1.0 0.3 2.0 0.8 3.0 0.0) :base 32.0 :length 2000) 1000 2000)
       (let ((func (edit-list->function))
 	    (mxenv0 (maxamp)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 7c: ~A" func))
+	    (snd-display "edit-list->function 7c: ~A" func))
 	(if (not (equal? (procedure-source func) 
 			 '(lambda (snd chn) (env-channel (make-env '(0.0 0.0 1.0 0.3 2.0 0.8 3.0 0.0) :base 32.0 :end 1999) 1000 2000 snd chn))))
-	    (snd-display ";edit-list->function 7c: ~A" (procedure-source func)))
+	    (snd-display "edit-list->function 7c: ~A" (procedure-source func)))
 	(revert-sound ind)
 	
 	(env-channel (make-env '(0.0 0.0 1.0 0.3 2.0 0.8 3.0 0.0) :length 2000 :offset 2.0 :scaler 3.0) 1000 2000)
 	(let ((func (edit-list->function))
 	      (mxenv1 (maxamp)))
 	  (if (not (procedure? func)) 
-	      (snd-display ";edit-list->function 7d: ~A" func))
+	      (snd-display "edit-list->function 7d: ~A" func))
 	  (if (not (equal? (procedure-source func) 
 			   '(lambda (snd chn) (env-channel (make-env '(0.0 2.0 1.0 2.9 2.0 4.4 3.0 2.0) :base 1.0 :end 1999) 1000 2000 snd chn))))
-	      (snd-display ";edit-list->function 7d: ~A" (procedure-source func)))
+	      (snd-display "edit-list->function 7d: ~A" (procedure-source func)))
 	  (revert-sound ind)
 	  (func ind 0)
 	  (let ((nmx (maxamp)))
-	    (if (fneq nmx mxenv1) (snd-display ";edit-list->function 7d max: ~A ~A ~A" nmx mxenv1 mxenv0)))))
+	    (if (fneq nmx mxenv1) (snd-display "edit-list->function 7d max: ~A ~A ~A" nmx mxenv1 mxenv0)))))
       (revert-sound ind)
       
       (do ((i 0 (+ i 1)))
@@ -32126,147 +32126,147 @@ EDITS: 1
 	(env-channel '(0 0 1 1 2 0)))
       (let ((func (edit-list->function)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 7e: ~A" func))
+	    (snd-display "edit-list->function 7e: ~A" func))
 	(if (not (equal? (procedure-source func) 
 			 '(lambda (snd chn) (env-channel '(0.0 0.0 1.0 1.0 2.0 0.0) 0 #f snd chn) (env-channel '(0.0 0.0 1.0 1.0 2.0 0.0) 0 #f snd chn) (env-channel '(0.0 0.0 1.0 1.0 2.0 0.0) 0 #f snd chn) (env-channel '(0.0 0.0 1.0 1.0 2.0 0.0) 0 #f snd chn) (env-channel '(0.0 0.0 1.0 1.0 2.0 0.0) 0 #f snd chn))))
-	    (snd-display ";edit-list->function 7e: ~A" (procedure-source func)))
+	    (snd-display "edit-list->function 7e: ~A" (procedure-source func)))
 	(revert-sound ind)
 	(func ind 0)
-	(if (fneq (maxamp) 0.1459) (snd-display ";edit-list->function 7e max: ~A" (maxamp)))
-	(if (not (= (edit-position) 5)) (snd-display ";edit-list->function 7e edpos: ~A" (edit-position))))
+	(if (fneq (maxamp) 0.1459) (snd-display "edit-list->function 7e max: ~A" (maxamp)))
+	(if (not (= (edit-position) 5)) (snd-display "edit-list->function 7e edpos: ~A" (edit-position))))
       (revert-sound ind)
       
       (env-sound '(0 0 1 1 2 0) 0 (framples) 32.0)
-      (if (fneq (maxamp) 0.146) (snd-display ";edit-list env 7f: ~A" (maxamp)))
+      (if (fneq (maxamp) 0.146) (snd-display "edit-list env 7f: ~A" (maxamp)))
       (let ((func (edit-list->function)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 7f: ~A" func))
+	    (snd-display "edit-list->function 7f: ~A" func))
 	(if (not (equal? (procedure-source func) 
 			 '(lambda (snd chn) (env-channel-with-base '(0.0 0.0 1.0 1.0 2.0 0.0) 32.0 0 #f snd chn))))
-	    (snd-display ";edit-list->function 7f: ~A" (procedure-source func)))
+	    (snd-display "edit-list->function 7f: ~A" (procedure-source func)))
 	(revert-sound ind)
 	(func ind 0)
 	(let ((mx (maxamp)))
-	  (if (fneq mx 0.146) (snd-display ";edit-list->function called (7f): ~A" mx))))
+	  (if (fneq mx 0.146) (snd-display "edit-list->function called (7f): ~A" mx))))
       (revert-sound ind)
       
       (env-sound '(0 0 1 1 2 1 3 0) 0 (framples) 0.0)
-      (if (fneq (sample 4000) 0.0) (snd-display ";edit-list env 7g: ~A" (sample 4000)))
+      (if (fneq (sample 4000) 0.0) (snd-display "edit-list env 7g: ~A" (sample 4000)))
       (let ((func (edit-list->function)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 7g: ~A" func))
+	    (snd-display "edit-list->function 7g: ~A" func))
 	(if (not (equal? (procedure-source func) 
 			 '(lambda (snd chn) (env-channel-with-base '(0.0 0.0 1.0 1.0 2.0 1.0 3.0 0.0) 0.0 0 #f snd chn))))
-	    (snd-display ";edit-list->function 7g: ~A" (procedure-source func)))
+	    (snd-display "edit-list->function 7g: ~A" (procedure-source func)))
 	(revert-sound ind)
 	(func ind 0)
-	(if (fneq (sample 4000) 0.0) (snd-display ";edit-list function 7g: ~A" (sample 4000))))
+	(if (fneq (sample 4000) 0.0) (snd-display "edit-list function 7g: ~A" (sample 4000))))
       (revert-sound ind)
       
       ;; ---- simple 1 sample insert
       (insert-sample 100 .1)
-      (if (not (= (framples) (+ frs 1))) (snd-display ";edit-list->function insert-sample: ~A ~A" frs (framples)))
+      (if (not (= (framples) (+ frs 1))) (snd-display "edit-list->function insert-sample: ~A ~A" frs (framples)))
       (let ((func (edit-list->function)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 9: ~A" func))
+	    (snd-display "edit-list->function 9: ~A" func))
 	(if (not (equal? (procedure-source func) '(lambda (snd chn) (insert-sample 100 0.1 snd chn))))
-	    (snd-display ";edit-list->function 9: ~A" (procedure-source func)))
+	    (snd-display "edit-list->function 9: ~A" (procedure-source func)))
 	(func ind 0)
 	(if (not (mus-arrays-equal? (channel->float-vector 99 4) (float-vector 0.0 0.1 0.1 0.0)))
-	    (snd-display ";edit-list->function func 9: ~A" (channel->float-vector 99 4)))
-	(if (not (= (framples) (+ frs 2))) (snd-display ";edit-list->function called (9): ~A ~A" frs (framples))))
+	    (snd-display "edit-list->function func 9: ~A" (channel->float-vector 99 4)))
+	(if (not (= (framples) (+ frs 2))) (snd-display "edit-list->function called (9): ~A ~A" frs (framples))))
       (revert-sound ind)
       
       ;; ---- insert-samples with data
       (insert-samples 0 100 (make-float-vector 100 .1))
-      (if (not (= (framples) (+ frs 100))) (snd-display ";edit-list->function insert-samples (100): ~A ~A" frs (framples)))
+      (if (not (= (framples) (+ frs 100))) (snd-display "edit-list->function insert-samples (100): ~A ~A" frs (framples)))
       (let ((func (edit-list->function)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 9a: ~A" func))
+	    (snd-display "edit-list->function 9a: ~A" func))
 	(func ind 0))
-      (if (not (= (framples) (+ frs 200))) (snd-display ";edit-list->function insert-samples (200): ~A ~A" frs (framples)))
+      (if (not (= (framples) (+ frs 200))) (snd-display "edit-list->function insert-samples (200): ~A ~A" frs (framples)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 5) (make-float-vector 5 0.1)))
-	  (snd-display ";edit-list->function func 9a: ~A" (channel->float-vector 0 5)))
+	  (snd-display "edit-list->function func 9a: ~A" (channel->float-vector 0 5)))
       (revert-sound ind)
       
       ;; ---- set-samples with data
       (set! (samples 0 100) (make-float-vector 100 .1))
-      (if (not (= (framples) frs)) (snd-display ";edit-list->function set-samples (1): ~A ~A" frs (framples)))
+      (if (not (= (framples) frs)) (snd-display "edit-list->function set-samples (1): ~A ~A" frs (framples)))
       (let ((func (edit-list->function)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 9b: ~A" func))
+	    (snd-display "edit-list->function 9b: ~A" func))
 	(func ind 0))
-      (if (not (= (framples) frs)) (snd-display ";edit-list->function set-samples (2): ~A ~A" frs (framples)))
+      (if (not (= (framples) frs)) (snd-display "edit-list->function set-samples (2): ~A ~A" frs (framples)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 5) (make-float-vector 5 0.1)))
-	  (snd-display ";edit-list->function func 9b: ~A" (channel->float-vector 0 5)))
+	  (snd-display "edit-list->function func 9b: ~A" (channel->float-vector 0 5)))
       (revert-sound ind)
       
       ;; ---- simple 1 sample set
       (let ((val (sample 100)))
 	(set! (sample 100) .1)
-	(if (not (= (framples) frs)) (snd-display ";edit-list->function set-sample framples: ~A ~A" frs (framples)))
-	(if (fneq (sample 100) .1) (snd-display ";edit-list->function set-sample val: ~A ~A" val (sample 100)))
+	(if (not (= (framples) frs)) (snd-display "edit-list->function set-sample framples: ~A ~A" frs (framples)))
+	(if (fneq (sample 100) .1) (snd-display "edit-list->function set-sample val: ~A ~A" val (sample 100)))
 	(let ((func (edit-list->function)))
 	  (revert-sound)
-	  (if (fneq val (sample 100)) (snd-display ";edit-list->function unset-sample val: ~A ~A" val (sample 100)))
+	  (if (fneq val (sample 100)) (snd-display "edit-list->function unset-sample val: ~A ~A" val (sample 100)))
 	  (if (not (procedure? func)) 
-	      (snd-display ";edit-list->function 10: ~A" func))
+	      (snd-display "edit-list->function 10: ~A" func))
 	  (if (not (equal? (procedure-source func) '(lambda (snd chn) (set-sample 100 0.1 snd chn))))
-	      (snd-display ";edit-list->function 10: ~A" (procedure-source func)))
+	      (snd-display "edit-list->function 10: ~A" (procedure-source func)))
 	  (func ind 0)
 	  (if (not (mus-arrays-equal? (channel->float-vector 99 4) (float-vector 0.0 0.1 0.0 0.0)))
-	      (snd-display ";edit-list->function func 10: ~A" (channel->float-vector 99 4)))))
+	      (snd-display "edit-list->function func 10: ~A" (channel->float-vector 99 4)))))
       (revert-sound ind)
       
       
       (let ((pfrs (mus-sound-framples "pistol.snd")))
 	(insert-sound "pistol.snd" 1000)
-	(if (not (= (framples) (+ frs pfrs))) (snd-display ";edit-list->function insert-sound: ~A ~A" frs (framples)))
+	(if (not (= (framples) (+ frs pfrs))) (snd-display "edit-list->function insert-sound: ~A ~A" frs (framples)))
 	(let ((func (edit-list->function)))
 	  (if (not (procedure? func)) 
-	      (snd-display ";edit-list->function 10a: ~A" func))
+	      (snd-display "edit-list->function 10a: ~A" func))
 	  (if (not (member (procedure-source func) 
 			   '((lambda (snd chn) (insert-sound "/home/bil/cl/pistol.snd" 1000 0 snd chn))
-			     (lambda (snd chn) (insert-sound "/home/bil/snd-16/pistol.snd" 1000 0 snd chn)))))
-	      (snd-display ";edit-list->function 10a: ~A" (procedure-source func)))
+			     (lambda (snd chn) (insert-sound "/home/bil/snd-17/pistol.snd" 1000 0 snd chn)))))
+	      (snd-display "edit-list->function 10a: ~A" (procedure-source func)))
 	  (revert-sound ind)
 	  (func ind 0)
-	  (if (not (= (framples) (+ frs pfrs))) (snd-display ";edit-list->function called (10): ~A ~A" frs (framples)))))
+	  (if (not (= (framples) (+ frs pfrs))) (snd-display "edit-list->function called (10): ~A ~A" frs (framples)))))
       (revert-sound ind)
       
       (let ((pfrs (mus-sound-framples "pistol.snd")))
 	(insert-samples 1000 pfrs "pistol.snd")
-	(if (not (= (framples) (+ frs pfrs))) (snd-display ";edit-list->function insert-samples: ~A ~A" frs (framples)))
+	(if (not (= (framples) (+ frs pfrs))) (snd-display "edit-list->function insert-samples: ~A ~A" frs (framples)))
 	(let ((func (edit-list->function)))
 	  (if (not (procedure? func)) 
-	      (snd-display ";edit-list->function 11: ~A" func))
+	      (snd-display "edit-list->function 11: ~A" func))
 	  (if (not (member (procedure-source func) 
 			   '((lambda (snd chn) (insert-samples 1000 41623 "/home/bil/cl/pistol.snd" snd chn))
-			     (lambda (snd chn) (insert-samples 1000 41623 "/home/bil/snd-16/pistol.snd" snd chn)))))
-	      (snd-display ";edit-list->function 11: ~A" (procedure-source func)))
+			     (lambda (snd chn) (insert-samples 1000 41623 "/home/bil/snd-17/pistol.snd" snd chn)))))
+	      (snd-display "edit-list->function 11: ~A" (procedure-source func)))
 	  (revert-sound ind)
 	  (func ind 0)
-	  (if (not (= (framples) (+ frs pfrs))) (snd-display ";edit-list->function called (11): ~A ~A" frs (framples)))))
+	  (if (not (= (framples) (+ frs pfrs))) (snd-display "edit-list->function called (11): ~A ~A" frs (framples)))))
       (revert-sound ind)
       
       (smooth-channel 1000 100)
       (let ((func (edit-list->function))
 	    (val (sample 1050)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 12: ~A" func))
+	    (snd-display "edit-list->function 12: ~A" func))
 	(if (not (equal? (procedure-source func) '(lambda (snd chn) (smooth-channel 1000 100 snd chn))))
-	    (snd-display ";edit-list->function 12: ~A" (procedure-source func)))
+	    (snd-display "edit-list->function 12: ~A" (procedure-source func)))
 	(revert-sound ind)
 	(func ind 0)
-	(if (fneq (sample 1050) val) (snd-display ";edit-list->function 12: ~A ~A" (sample 1050) val)))
+	(if (fneq (sample 1050) val) (snd-display "edit-list->function 12: ~A ~A" (sample 1050) val)))
       (revert-sound ind)
       
       (smooth-sound 1000 100)
       (let ((func (edit-list->function)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 12a: ~A" func))
+	    (snd-display "edit-list->function 12a: ~A" func))
 	(if (not (equal? (procedure-source func) '(lambda (snd chn) (smooth-channel 1000 100 snd chn))))
-	    (snd-display ";edit-list->function 12a: ~A" (procedure-source func))))
+	    (snd-display "edit-list->function 12a: ~A" (procedure-source func))))
       (revert-sound ind)
       
       ;; ---- selection stuff
@@ -32274,35 +32274,35 @@ EDITS: 1
       (scale-selection-by 2.0)
       (let ((func (edit-list->function)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 13: ~A" func))
+	    (snd-display "edit-list->function 13: ~A" func))
 	(if (not (equal? (procedure-source func) '(lambda (snd chn) (scale-channel 2.0 1000 10001 snd chn))))
-	    (snd-display ";edit-list->function 13: ~A" (procedure-source func)))
+	    (snd-display "edit-list->function 13: ~A" (procedure-source func)))
 	(revert-sound ind)
 	(func ind 0)
 	(let ((mx (maxamp)))
-	  (if (fneq mx .269) (snd-display ";edit-list->function called (13): ~A" mx))))
+	  (if (fneq mx .269) (snd-display "edit-list->function called (13): ~A" mx))))
       (revert-sound ind)
       
       (scale-selection-to 1.0)
       (let ((func (edit-list->function)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 13a: ~A" func))
+	    (snd-display "edit-list->function 13a: ~A" func))
 	(if (not (equal? (procedure-source func) 
 			 '(lambda (snd chn) (normalize-channel 1.0 1000 10001 snd chn))))
-	    (snd-display ";edit-list->function 13a: ~A" (procedure-source func))))
+	    (snd-display "edit-list->function 13a: ~A" (procedure-source func))))
       (revert-sound ind)
       
       (env-selection '(0 0 1 1 2 0))
       (let ((func (edit-list->function)))
-	(if (fneq (sample 4000) 0.0173) (snd-display ";edit-list->function 14 samp: ~A" (sample 4000)))
+	(if (fneq (sample 4000) 0.0173) (snd-display "edit-list->function 14 samp: ~A" (sample 4000)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 14: ~A" func))
+	    (snd-display "edit-list->function 14: ~A" func))
 	(if (not (equal? (procedure-source func) 
 			 '(lambda (snd chn) (env-channel (make-env '(0.0 0.0 1.0 1.0 2.0 0.0) :base 1.0 :end 10000) 1000 10001 snd chn))))
-	    (snd-display ";edit-list->function 14: ~A" (procedure-source func)))
+	    (snd-display "edit-list->function 14: ~A" (procedure-source func)))
 	(revert-sound ind)
 	(func ind 0)
-	(if (fneq (sample 4000) 0.0173) (snd-display ";edit-list->function 14 re-samp: ~A" (sample 4000))))
+	(if (fneq (sample 4000) 0.0173) (snd-display "edit-list->function 14 re-samp: ~A" (sample 4000))))
       (revert-sound ind)
       
       (make-selection 1000 1100)
@@ -32310,20 +32310,20 @@ EDITS: 1
       (let ((func (edit-list->function))
 	    (val (sample 1050)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 14a: ~A" func))
+	    (snd-display "edit-list->function 14a: ~A" func))
 	(if (not (equal? (procedure-source func) '(lambda (snd chn) (smooth-channel 1000 101 snd chn))))
-	    (snd-display ";edit-list->function 14a: ~A" (procedure-source func)))
+	    (snd-display "edit-list->function 14a: ~A" (procedure-source func)))
 	(revert-sound ind)
 	(func ind 0)
-	(if (fneq (sample 1050) val) (snd-display ";edit-list->function 14a: ~A ~A" (sample 1050) val)))
+	(if (fneq (sample 1050) val) (snd-display "edit-list->function 14a: ~A ~A" (sample 1050) val)))
       (revert-sound ind)
       
       (reverse-selection)
       (let ((func (edit-list->function)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 14b: ~A" func))
+	    (snd-display "edit-list->function 14b: ~A" func))
 	(if (not (equal? (procedure-source func) '(lambda (snd chn) (reverse-channel 1000 101 snd chn))))
-	    (snd-display ";edit-list->function 14b: ~A" (procedure-source func)))
+	    (snd-display "edit-list->function 14b: ~A" (procedure-source func)))
 	(revert-sound ind)
 	(func ind 0))
       (revert-sound ind)
@@ -32331,9 +32331,9 @@ EDITS: 1
       (delete-selection)
       (let ((func (edit-list->function)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 14c: ~A" func))
+	    (snd-display "edit-list->function 14c: ~A" func))
 	(if (not (equal? (procedure-source func) '(lambda (snd chn) (delete-samples 1000 101 snd chn))))
-	    (snd-display ";edit-list->function 14c: ~A" (procedure-source func)))
+	    (snd-display "edit-list->function 14c: ~A" (procedure-source func)))
 	(revert-sound ind)
 	(func ind 0))
       (revert-sound ind)
@@ -32347,7 +32347,7 @@ EDITS: 1
 	(func ind 0)
 	(let ((data (channel->float-vector)))
 	  (if (not (mus-arrays-equal? data (float-vector 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 0.889 0.778 0.667 0.556 0.444 0.333 0.222 0.111 0.0)))
-	      (snd-display ";edit-list->function env reapply: ~A" data)))
+	      (snd-display "edit-list->function env reapply: ~A" data)))
 	(close-sound ind)
 	(set! ind (open-sound "oboe.snd")))
       
@@ -32357,10 +32357,10 @@ EDITS: 1
 	(let ((func (edit-list->function))
 	      (val (sample 2050)))
 	  (if (not (procedure? func)) 
-	      (snd-display ";edit-list->function 16: ~A" func))
+	      (snd-display "edit-list->function 16: ~A" func))
 	  (revert-sound ind)
 	  (func ind 0)
-	  (if (fneq (sample 2050) val) (snd-display ";edit-list->function 16: ~A ~A" (sample 2050) val))))
+	  (if (fneq (sample 2050) val) (snd-display "edit-list->function 16: ~A ~A" (sample 2050) val))))
       (revert-sound ind)
       
       ;; ---- reverse
@@ -32368,82 +32368,82 @@ EDITS: 1
       (let ((func (edit-list->function))
 	    (val (sample 2000)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 17: ~A" func))
+	    (snd-display "edit-list->function 17: ~A" func))
 	(if (not (equal? (procedure-source func) '(lambda (snd chn) (reverse-channel 0 #f snd chn))))
-	    (snd-display ";edit-list->function 17: ~A" (procedure-source func)))
-	(if (fneq val -.002) (snd-display ";edit-list->function val: ~A" val))
+	    (snd-display "edit-list->function 17: ~A" (procedure-source func)))
+	(if (fneq val -.002) (snd-display "edit-list->function val: ~A" val))
 	(revert-sound ind)
 	(func ind 0)
-	(if (fneq val -.002) (snd-display ";edit-list->function 17 re-val: ~A" val)))
+	(if (fneq val -.002) (snd-display "edit-list->function 17 re-val: ~A" val)))
       (revert-sound ind)
       
       (reverse-sound)
       (let ((func (edit-list->function))
 	    (val (sample 2000)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 17a: ~A" func))
+	    (snd-display "edit-list->function 17a: ~A" func))
 	(if (not (equal? (procedure-source func) '(lambda (snd chn) (reverse-channel 0 #f snd chn))))
-	    (snd-display ";edit-list->function 17a: ~A" (procedure-source func)))
-	(if (fneq val -.002) (snd-display ";edit-list->function 17a val: ~A" val)))
+	    (snd-display "edit-list->function 17a: ~A" (procedure-source func)))
+	(if (fneq val -.002) (snd-display "edit-list->function 17a val: ~A" val)))
       (revert-sound ind)
       
       (reverse-channel 1000 500)
       (let ((func (edit-list->function)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 17b: ~A" func))
+	    (snd-display "edit-list->function 17b: ~A" func))
 	(if (not (equal? (procedure-source func) '(lambda (snd chn) (reverse-channel 1000 500 snd chn))))
-	    (snd-display ";edit-list->function 17b: ~A" (procedure-source func))))
+	    (snd-display "edit-list->function 17b: ~A" (procedure-source func))))
       (revert-sound ind)
       
       ;; ---- src
       (src-sound 2.0)
-      (if (> (abs (- (framples) 25415)) 2) (snd-display ";edit-list->function 18 len: ~A" (framples)))
+      (if (> (abs (- (framples) 25415)) 2) (snd-display "edit-list->function 18 len: ~A" (framples)))
       (let ((func (edit-list->function)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 18: ~A" func))
+	    (snd-display "edit-list->function 18: ~A" func))
 	(if (not (equal? (procedure-source func) '(lambda (snd chn) (src-channel 2.0 0 #f snd chn))))
-	    (snd-display ";edit-list->function 18: ~A" (procedure-source func)))
+	    (snd-display "edit-list->function 18: ~A" (procedure-source func)))
 	(revert-sound ind)
 	(func ind 0)
-	(if (> (abs (- (framples) 25415)) 2) (snd-display ";edit-list->function 18 re-len: ~A" (framples))))
+	(if (> (abs (- (framples) 25415)) 2) (snd-display "edit-list->function 18 re-len: ~A" (framples))))
       (revert-sound ind)
       
       (src-channel 2.0 1000 500)
       (let ((func (edit-list->function))
 	    (frs (framples)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 18a: ~A" func))
+	    (snd-display "edit-list->function 18a: ~A" func))
 	(if (not (equal? (procedure-source func) '(lambda (snd chn) (src-channel 2.0 1000 500 snd chn))))
-	    (snd-display ";edit-list->function 18a: ~A" (procedure-source func)))
+	    (snd-display "edit-list->function 18a: ~A" (procedure-source func)))
 	(revert-sound ind)
 	(func ind 0)
-	(if (not (= frs (framples))) (snd-display ";edit-list->function 18a re-len: ~A ~A" frs (framples))))
+	(if (not (= frs (framples))) (snd-display "edit-list->function 18a re-len: ~A ~A" frs (framples))))
       (revert-sound)
       
       (src-sound '(0 1 1 2 2 1))
       (let ((func (edit-list->function))
 	    (frs (framples)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 18b: ~A" func))
+	    (snd-display "edit-list->function 18b: ~A" func))
 	(if (not (equal? (procedure-source func) 
 			 '(lambda (snd chn) (src-channel '(0.0 1.0 1.0 2.0 2.0 1.0) 0 #f snd chn))))
-	    (snd-display ";edit-list->function 18b: ~A" (procedure-source func)))
+	    (snd-display "edit-list->function 18b: ~A" (procedure-source func)))
 	(revert-sound ind)
 	(func ind 0)
-	(if (not (= frs (framples))) (snd-display ";edit-list->function 18b re-len: ~A ~A" frs (framples))))
+	(if (not (= frs (framples))) (snd-display "edit-list->function 18b re-len: ~A ~A" frs (framples))))
       (revert-sound)
       
       (src-channel '(0 1 1 2) 1000 500)
       (let ((func (edit-list->function))
 	    (frs (framples)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 18c: ~A" func))
+	    (snd-display "edit-list->function 18c: ~A" func))
 	(if (not (equal? (procedure-source func) 
 			 '(lambda (snd chn) (src-channel '(0.0 1.0 1.0 2.0) 1000 500 snd chn))))
-	    (snd-display ";edit-list->function 18c: ~A" (procedure-source func)))
+	    (snd-display "edit-list->function 18c: ~A" (procedure-source func)))
 	(revert-sound ind)
 	(func ind 0)
-	(if (not (= frs (framples))) (snd-display ";edit-list->function 18c re-len: ~A ~A" frs (framples))))
+	(if (not (= frs (framples))) (snd-display "edit-list->function 18c re-len: ~A ~A" frs (framples))))
       (revert-sound)
       
       ;; ---- filter-channel
@@ -32451,13 +32451,13 @@ EDITS: 1
       (let ((func (edit-list->function))
 	    (mx (maxamp)))
 	(if (not (procedure? func)) 
-	    (snd-display ";edit-list->function 19: ~A" func))
+	    (snd-display "edit-list->function 19: ~A" func))
 	(if (not (equal? (procedure-source func) 
 			 '(lambda (snd chn) (filter-channel '(0.0 1.0 1.0 0.0) 10 0 #f snd chn))))
-	    (snd-display ";edit-list->function 19: ~A" (procedure-source func)))
+	    (snd-display "edit-list->function 19: ~A" (procedure-source func)))
 	(revert-sound ind)
 	(func ind 0)
-	(if (fneq mx (maxamp)) (snd-display ";edit-list->function 19 re-filter: ~A ~A" mx (maxamp))))
+	(if (fneq mx (maxamp)) (snd-display "edit-list->function 19 re-filter: ~A ~A" mx (maxamp))))
       (revert-sound)
       
       (filter-fft (make-one-zero .5 .5))
@@ -32476,7 +32476,7 @@ EDITS: 1
 	  (if (not (mus-arrays-equal? vals (float-vector -0.000 0.500 0.000 -0.500 0.000 0.500 0.000 -0.500 0.000 0.500 -0.000 
 					      -0.500 -0.000 0.500 -0.000 -0.500 -0.000 0.500 0.000 -0.500 0.000 0.500 
 					      0.000 -0.500 0.000 0.500 -0.000 -0.500 -0.000 0.500 -0.000 -0.500)))
-	      (snd-display ";fft-env-data: ~A" vals)))
+	      (snd-display "fft-env-data: ~A" vals)))
 	(let ((hilbert-transform-via-fft
 	       (let ((documentation "same as FIR version but use FFT and change phases by hand"))
 		 (lambda* (snd chn)
@@ -32505,7 +32505,7 @@ EDITS: 1
 				    0.000 -0.500 -0.000 0.500 -0.000 -0.500 -0.000 0.500 -0.000 -0.500 0.000 
 				    0.500 0.000 -0.500 0.000 0.500 0.000 -0.500 -0.000 0.500 -0.000)))
 	  (if (not (mus-arrays-equal? vals nvals))
-	      (snd-display ";hilbert via dft: ~A" vals)))
+	      (snd-display "hilbert via dft: ~A" vals)))
 	(revert-sound ind)
 	(map-channel (lambda (y) 1.0))
 	
@@ -32514,7 +32514,7 @@ EDITS: 1
 	  (if (not (mus-arrays-equal? vals (float-vector 0.000 0.107 0.206 0.298 0.384 0.463 0.536 0.605 0.668 0.727 0.781 0.832 0.879 
 					      0.922 0.963 1.000 1.000 0.787 0.618 0.484 0.377 0.293 0.226 0.173 0.130 0.097 
 					      0.070 0.049 0.032 0.019 0.008 0.000)))
-	      (snd-display ";powenv-channel: ~A" vals)))
+	      (snd-display "powenv-channel: ~A" vals)))
 	(undo)
 	(revert-sound ind)
 	(map-channel (lambda (y) 1.0))
@@ -32522,21 +32522,21 @@ EDITS: 1
 	(set! (cursor ind 0) 10)
 	(make-selection 0 7 ind 0)
 	(if (not (selection?))
-	    (snd-display ";make-selection failed??")
+	    (snd-display "make-selection failed??")
 	    (begin
 	      (replace-with-selection)
 	      (let ((vals (channel->float-vector)))
 		(if (not (mus-arrays-equal? vals (float-vector 0.000 0.032 0.065 0.097 0.129 0.161 0.194 0.226 0.258 0.290 0.000 0.032 0.065 
 						    0.097 0.129 0.161 0.194 0.226 0.581 0.613 0.645 0.677 0.710 0.742 0.774 0.806 
 						    0.839 0.871 0.903 0.935 0.968 1.000)))
-		    (snd-display ";replace-with-selection: ~A" vals)))))
+		    (snd-display "replace-with-selection: ~A" vals)))))
 	(set! (cursor ind 0) 2)
 	(replace-with-selection)
 	(let ((vals (channel->float-vector)))
 	  (if (not (mus-arrays-equal? vals (float-vector 0.000 0.032 0.000 0.032 0.065 0.097 0.129 0.161 0.194 0.226 0.000 0.032 0.065 
 					      0.097 0.129 0.161 0.194 0.226 0.581 0.613 0.645 0.677 0.710 0.742 0.774 0.806 
 					      0.839 0.871 0.903 0.935 0.968 1.000)))
-	      (snd-display ";replace-with-selection (at 2): ~A" vals)))
+	      (snd-display "replace-with-selection (at 2): ~A" vals)))
 	(revert-sound ind)
 	(map-channel (lambda (y) 1.0))
 	(env-sound '(0 0 1 1))
@@ -32549,7 +32549,7 @@ EDITS: 1
 	    (if (not (mus-arrays-equal? vals (float-vector 0.000 0.032 0.065 0.097 0.129 0.161 0.194 0.226 0.258 0.290 0.323 0.387 0.452 
 						0.516 0.581 0.645 0.710 0.774 0.839 0.903 0.645 0.677 0.710 0.742 0.774 0.806 
 						0.839 0.871 0.903 0.935 0.968 1.000)))
-		(snd-display ";fit-selection-between-marks: ~A" vals))))
+		(snd-display "fit-selection-between-marks: ~A" vals))))
 	
 	(revert-sound ind)
 	(map-channel (lambda (y) 1.0))
@@ -32559,10 +32559,10 @@ EDITS: 1
 	  (let ((vals (channel->float-vector 0 20)))
 	    (if (not (mus-arrays-equal? vals (float-vector 0.100 0.200 0.300 0.400 0.500 0.600 0.700 0.800 0.900 1.000 1.0
 						1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000)))
-		(snd-display ";make-ramp: ~A" vals))))
+		(snd-display "make-ramp: ~A" vals))))
 	(revert-sound ind)
 	(float-vector->channel (with-sound ((make-float-vector 44100)) (cross-fade 0 2 1.0 "oboe.snd" "trumpet.snd" 0.5 1.0 0 .1 256 2)))
-	(if (and (ffneq (maxamp) .142) (ffneq (maxamp) .155)) (snd-display ";cross fade maxamp: ~A" (maxamp)))
+	(if (and (ffneq (maxamp) .142) (ffneq (maxamp) .155)) (snd-display "cross fade maxamp: ~A" (maxamp)))
 	(revert-sound)
 	(float-vector->channel (with-sound ((make-float-vector 44100)) (dissolve-fade 0 2 1.0 "oboe.snd" "trumpet.snd" 512 2 2 #f)))
 	(clean-up-sound ind))	
@@ -32570,7 +32570,7 @@ EDITS: 1
       (let ((vals (apply float-vector (rms-envelope "oboe.snd" :rfreq 4))))
 	(if (not (mus-arrays-equal? vals (float-vector 0.0 0.0430 0.25 0.0642 0.5 0.0695 0.75 0.0722 1.0 0.0738 1.25 0.0713 
 					    1.5 0.065 1.75 0.0439 2.0 0.01275 2.25 0.007)))
-	    (snd-display ";rms-envelope: ~A" vals)))
+	    (snd-display "rms-envelope: ~A" vals)))
       
       (let ((ind (open-sound "2a.snd")))
 	(hook-push graph-hook display-correlation)
@@ -32580,19 +32580,19 @@ EDITS: 1
 	(let ((hi1 (find-sound "hi1.snd"))
 	      (hi2 (find-sound "hi2.snd")))
 	  (if (not (and hi1 hi2 (= (chans hi1) 1) (= (chans hi2) 1)))
-	      (snd-display ";stereo->mono: ~A ~A" (map file-name (sounds)) (map chans (sounds)))
+	      (snd-display "stereo->mono: ~A ~A" (map file-name (sounds)) (map chans (sounds)))
 	      (let ((dist1 (channel-distance ind 0 hi1 0))
 		    (dist2 (channel-distance ind 1 hi2 0)))
 		(if (or (fneq dist1 0.0) (fneq dist2 0.0))
-		    (snd-display ";stereo->mono distances: ~A ~A" dist1 dist2))
+		    (snd-display "stereo->mono distances: ~A ~A" dist1 dist2))
 		(mono->stereo "ho2.snd" hi1 0 hi2 0)
 		(let ((ho2 (find-sound "ho2.snd")))
 		  (if (not (and ho2 (= (chans ho2) 2)))
-		      (snd-display ";mono->stereo: ~A" (map file-name (sounds)))
+		      (snd-display "mono->stereo: ~A" (map file-name (sounds)))
 		      (let ((dist1 (channel-distance ho2 0 ind 0))
 			    (dist2 (channel-distance ho2 1 ind 1)))
 			(if (or (fneq dist1 0.0) (fneq dist2 0.0))
-			    (snd-display ";stereo->mono->stereo distances: ~A ~A" dist1 dist2))))
+			    (snd-display "stereo->mono->stereo distances: ~A ~A" dist1 dist2))))
 		  (close-sound ho2))))
 	  (close-sound hi1)
 	  (close-sound hi2))
@@ -32610,7 +32610,7 @@ EDITS: 1
 						  0.341 0.308 0.281 0.262 0.251 0.251 0.261 0.280))
 		       (mus-arrays-equal? vals (float-vector 0.375 0.393 0.410 0.427 0.442 0.457 0.469 0.480 0.489 0.495 0.499 0.500 
 						  0.499 0.495 0.489 0.480 0.470 0.457 0.443 0.428))))
-	      (snd-display ";no vibro? ~A" vals)))
+	      (snd-display "no vibro? ~A" vals)))
 	(clean-up-sound ind))
       
       (let ((ind (open-sound "pistol.snd")))
@@ -32627,7 +32627,7 @@ EDITS: 1
       
       (let ((val 0)) 
 	(tree-for-each (lambda (n) (set! val (+ val n))) (list (list 1 0) (list 2) 3))
-	(if (not (= val 6)) (snd-display ";tree-for-each: ~A" val)))
+	(if (not (= val 6)) (snd-display "tree-for-each: ~A" val)))
       
       (let ((ind (new-sound :channels 4 :size 32)))
 	(set! (sample 0 ind 0) 0.5)
@@ -32639,7 +32639,7 @@ EDITS: 1
 		(fneq (sample 10 ind 3) .25)
 		(fneq (sample 20 ind 1) .125)
 		(fneq (sample 30 ind 0) .0625))
-	    (snd-display ";scramble-channels: ~A ~A ~A ~A (~A ~A ~A ~A)" 
+	    (snd-display "scramble-channels: ~A ~A ~A ~A (~A ~A ~A ~A)" 
 			 (sample 0 ind 2) (sample 10 ind 3) (sample 20 ind 1) (sample 30 ind 2)
 			 (sample 0 ind 0) (sample 10 ind 1) (sample 20 ind 2) (sample 30 ind 3)))
 	(do ((i 0 (+ i 1))) ((= i 4)) (set! (edit-position ind i) 1))
@@ -32648,7 +32648,7 @@ EDITS: 1
 		(fneq (sample 10 ind 2) .25)
 		(fneq (sample 20 ind 3) .125)
 		(fneq (sample 30 ind 0) .0625))
-	    (snd-display ";scramble-channels (1): ~A ~A ~A ~A (~A ~A ~A ~A)" 
+	    (snd-display "scramble-channels (1): ~A ~A ~A ~A (~A ~A ~A ~A)" 
 			 (sample 0 ind 1) (sample 10 ind 2) (sample 20 ind 3) (sample 30 ind 0)
 			 (sample 0 ind 0) (sample 10 ind 1) (sample 20 ind 2) (sample 30 ind 3)))
 	(do ((i 0 (+ i 1))) ((= i 4)) (set! (edit-position ind i) 1))
@@ -32657,7 +32657,7 @@ EDITS: 1
 		(fneq (sample 10 ind 1) .25)
 		(fneq (sample 20 ind 3) .125)
 		(fneq (sample 30 ind 2) .0625))
-	    (snd-display ";scramble-channels (2): ~A ~A ~A ~A (~A ~A ~A ~A)" 
+	    (snd-display "scramble-channels (2): ~A ~A ~A ~A (~A ~A ~A ~A)" 
 			 (sample 0 ind 0) (sample 10 ind 1) (sample 20 ind 3) (sample 30 ind 2)
 			 (sample 0 ind 0) (sample 10 ind 1) (sample 20 ind 2) (sample 30 ind 3)))
 	(do ((i 0 (+ i 1))) ((= i 4)) (set! (edit-position ind i) 1))
@@ -32666,7 +32666,7 @@ EDITS: 1
 		(fneq (sample 10 ind 0) .25)
 		(fneq (sample 20 ind 1) .125)
 		(fneq (sample 30 ind 2) .0625))
-	    (snd-display ";scramble-channels (3): ~A ~A ~A ~A (~A ~A ~A ~A)" 
+	    (snd-display "scramble-channels (3): ~A ~A ~A ~A (~A ~A ~A ~A)" 
 			 (sample 0 ind 3) (sample 10 ind 0) (sample 20 ind 1) (sample 30 ind 2)
 			 (sample 0 ind 0) (sample 10 ind 1) (sample 20 ind 2) (sample 30 ind 3)))
 	(do ((i 0 (+ i 1))) ((= i 4)) (set! (edit-position ind i) 1))
@@ -32683,7 +32683,7 @@ EDITS: 1
 		(fneq (sample 6 ind 5) .5)
 		(fneq (sample 5 ind 6) .5)
 		(fneq (sample 0 ind 7) .5))
-	    (snd-display ";scramble-channels 8 ways: ~A"
+	    (snd-display "scramble-channels 8 ways: ~A"
 			 (list (sample 1 ind 0) (sample 2 ind 1) (sample 3 ind 2) (sample 4 ind 3)
 			       (sample 7 ind 4) (sample 6 ind 5) (sample 5 ind 6) (sample 0 ind 7))))
 	(clean-up-sound ind))
@@ -32697,7 +32697,7 @@ EDITS: 1
 	     (func1)
 	     (let ((func (edit-list->function)))
 	       (if (not (equal? (procedure-source func) descr))
-		   (snd-display ";edit-list->function 20[~D]:~%;  [~A]~%;  [~A]" ctr descr (procedure-source func)))
+		   (snd-display "edit-list->function 20[~D]:~%;  [~A]~%;  [~A]" ctr descr (procedure-source func)))
 	       (revert-sound ind)
 	       (func ind 0))
 	     (set! ctr (+ ctr 1))
@@ -32842,91 +32842,91 @@ EDITS: 1
       (let ((original-maxamp (maxamp)))
 	(reset-controls)
 	(controls->channel '(2.0))
-	(if (fneq (amp-control ind) 1.0) (snd-display ";controls->channel amp: ~A" (amp-control ind)))
-	(if (fneq (maxamp) (* 2 original-maxamp)) (snd-display ";controls->channel maxamp: ~A" (maxamp))))
+	(if (fneq (amp-control ind) 1.0) (snd-display "controls->channel amp: ~A" (amp-control ind)))
+	(if (fneq (maxamp) (* 2 original-maxamp)) (snd-display "controls->channel maxamp: ~A" (maxamp))))
       (let ((func (edit-list->function)))
 	(if (not (equal? (procedure-source func) '(lambda (snd chn) (scale-channel 2.0 0 #f snd chn))))
-	    (snd-display ";edit-list->function controls->channel 1: ~A" (procedure-source func)))
+	    (snd-display "edit-list->function controls->channel 1: ~A" (procedure-source func)))
 	(func ind 0)
 	(revert-sound ind))
       
       (controls->channel '(#f 2.0))
       (let ((pk (float-vector-peak (channel->float-vector 22000 22100))))
-	(if (fneq pk 0.0479) (snd-display ";dp->end screwed up again!?!: ~A" pk)))
+	(if (fneq pk 0.0479) (snd-display "dp->end screwed up again!?!: ~A" pk)))
       (let ((func (edit-list->function)))
 	(if (not (equal? (procedure-source func) '(lambda (snd chn) (controls->channel '(#f 2.0) 0 #f snd chn))))
-	    (snd-display ";edit-list->function controls->channel 2: ~A" (procedure-source func)))
+	    (snd-display "edit-list->function controls->channel 2: ~A" (procedure-source func)))
 	(revert-sound ind)
 	(func ind 0)
 	(revert-sound ind)
-	(if (fneq (speed-control ind) 1.0) (snd-display ";controls->channel speed: ~A" (speed-control ind))))
+	(if (fneq (speed-control ind) 1.0) (snd-display "controls->channel speed: ~A" (speed-control ind))))
       
       (controls->channel (list #f #f (list 0.5)))
       (let ((func (edit-list->function)))
 	(if (not (equal? (procedure-source func) '(lambda (snd chn) (controls->channel '(#f #f (0.5)) 0 #f snd chn))))
-	    (snd-display ";edit-list->function controls->channel 3: ~A" (procedure-source func)))
+	    (snd-display "edit-list->function controls->channel 3: ~A" (procedure-source func)))
 	(revert-sound ind)
 	(func ind 0)
 	(revert-sound ind)
-	(if (fneq (contrast-control ind) 0.0) (snd-display ";controls->channel contrast: ~A" (contrast-control ind))))
+	(if (fneq (contrast-control ind) 0.0) (snd-display "controls->channel contrast: ~A" (contrast-control ind))))
       
       (controls->channel (list #f #f (list 0.5 2.0)))
       (let ((func (edit-list->function)))
 	(if (not (equal? (procedure-source func) '(lambda (snd chn) (controls->channel '(#f #f (0.5 2.0)) 0 #f snd chn))))
-	    (snd-display ";edit-list->function controls->channel 3a: ~A" (procedure-source func)))
+	    (snd-display "edit-list->function controls->channel 3a: ~A" (procedure-source func)))
 	(revert-sound ind)
 	(func ind 0)
 	(revert-sound ind)
-	(if (fneq (contrast-control ind) 0.0) (snd-display ";controls->channel contrast 3a: ~A" (contrast-control ind))))
+	(if (fneq (contrast-control ind) 0.0) (snd-display "controls->channel contrast 3a: ~A" (contrast-control ind))))
       
       (controls->channel (list #f #f #f (list 0.5)))
       (let ((func (edit-list->function)))
 	(if (not (equal? (procedure-source func) '(lambda (snd chn) (controls->channel '(#f #f #f (0.5)) 0 #f snd chn))))
-	    (snd-display ";edit-list->function controls->channel 4: ~A" (procedure-source func)))
+	    (snd-display "edit-list->function controls->channel 4: ~A" (procedure-source func)))
 	(revert-sound ind)
 	(func ind 0)
 	(revert-sound ind)
-	(if (ffneq (expand-control ind) 1.0) (snd-display ";controls->channel expand: ~A" (expand-control ind))))
+	(if (ffneq (expand-control ind) 1.0) (snd-display "controls->channel expand: ~A" (expand-control ind))))
       
       (controls->channel (list #f #f #f (list 0.5 .1 .2 .06 0.0)))
       (let ((func (edit-list->function)))
 	(if (not (equal? (procedure-source func) 
 			 '(lambda (snd chn) (controls->channel '(#f #f #f (0.5 0.1 0.2 0.06 0.0)) 0 #f snd chn))))
-	    (snd-display ";edit-list->function controls->channel 4a: ~A" (procedure-source func)))
+	    (snd-display "edit-list->function controls->channel 4a: ~A" (procedure-source func)))
 	(revert-sound ind)
 	(func ind 0)
 	(revert-sound ind)
-	(if (ffneq (expand-control ind) 1.0) (snd-display ";controls->channel expand 4a: ~A" (expand-control ind))))
+	(if (ffneq (expand-control ind) 1.0) (snd-display "controls->channel expand 4a: ~A" (expand-control ind))))
       
       (controls->channel (list #f #f #f #f (list 0.1)))
       (let ((func (edit-list->function)))
 	(if (not (equal? (procedure-source func) '(lambda (snd chn) (controls->channel '(#f #f #f #f (0.1)) 0 #f snd chn))))
-	    (snd-display ";edit-list->function controls->channel 5: ~A" (procedure-source func)))
+	    (snd-display "edit-list->function controls->channel 5: ~A" (procedure-source func)))
 	(revert-sound ind)
 	(func ind 0)
 	(revert-sound ind)
-	(if (fneq (reverb-control-scale ind) 0.0) (snd-display ";controls->channel reverb: ~A" (reverb-control-scale ind))))
+	(if (fneq (reverb-control-scale ind) 0.0) (snd-display "controls->channel reverb: ~A" (reverb-control-scale ind))))
       
       (controls->channel (list #f #f #f #f (list 0.1 1.2 0.9 0.9 2.0)))
       (let ((func (edit-list->function)))
 	(if (not (equal? (procedure-source func) 
 			 '(lambda (snd chn) (controls->channel '(#f #f #f #f (0.1 1.2 0.9 0.9 2.0)) 0 #f snd chn))))
-	    (snd-display ";edit-list->function controls->channel 5a: ~A" (procedure-source func)))
+	    (snd-display "edit-list->function controls->channel 5a: ~A" (procedure-source func)))
 	(revert-sound ind)
 	(func ind 0)
 	(revert-sound ind)
-	(if (fneq (reverb-control-scale ind) 0.0) (snd-display ";controls->channel reverb 5a: ~A" (reverb-control-scale ind))))
+	(if (fneq (reverb-control-scale ind) 0.0) (snd-display "controls->channel reverb 5a: ~A" (reverb-control-scale ind))))
       
       (let ((order (filter-control-order ind)))
 	(controls->channel (list #f #f #f #f #f (list 10 '(0 0 1 1))))
 	(let ((func (edit-list->function)))
 	  (if (not (equal? (procedure-source func) 
 			   '(lambda (snd chn) (controls->channel '(#f #f #f #f #f (10 (0 0 1 1))) 0 #f snd chn))))
-	      (snd-display ";edit-list->function controls->channel 6: ~A" (procedure-source func)))
+	      (snd-display "edit-list->function controls->channel 6: ~A" (procedure-source func)))
 	  (revert-sound ind)
 	  (func ind 0)
 	  (revert-sound ind)
-	  (if (not (= (filter-control-order ind) order)) (snd-display ";controls->channel filter: ~A" (filter-control-order ind)))))
+	  (if (not (= (filter-control-order ind) order)) (snd-display "controls->channel filter: ~A" (filter-control-order ind)))))
       
       (close-sound ind))
     
@@ -32935,23 +32935,23 @@ EDITS: 1
       (save-sound-as "test.snd")
       (close-sound ind)
       (set! ind (open-sound "test.snd"))
-      (if (not (= (chans ind) 2)) (snd-display ";src-sound/save-sound-as-> ~D chans" (chans ind)))
+      (if (not (= (chans ind) 2)) (snd-display "src-sound/save-sound-as-> ~D chans" (chans ind)))
       (let ((tag (scan-channel (lambda (y) (> (abs y) 0.0)) 8000 #f)))
-	(if tag (snd-display ";src-sound/save-sound-as not zeros: ~A ~A" tag (sample (cadr tag) ind 0))))
+	(if tag (snd-display "src-sound/save-sound-as not zeros: ~A ~A" tag (sample (cadr tag) ind 0))))
       (close-sound ind))
     
     (let ((ind (open-sound "oboe.snd")))
       (let ((tag (catch #t (lambda () (save-sound-as "test.snd" :edit-position 1)) (lambda args args))))
 	(if (not (and (pair? tag) (eq? (car tag) 'no-such-edit)))
-	    (snd-display ";save-sound-as bad edpos: ~A" tag)))
+	    (snd-display "save-sound-as bad edpos: ~A" tag)))
       (let ((tag (catch #t (lambda () (save-sound-as "test.snd" :channel 1 :edit-position 1)) (lambda args args))))
 	(if (not (and (pair? tag) (eq? (car tag) 'no-such-channel)))
-	    (snd-display ";save-sound-as bad chan: ~A" tag)))
+	    (snd-display "save-sound-as bad chan: ~A" tag)))
       (save-sound-as "test.snd" :comment "this is a comment")
       (close-sound ind)
       (set! ind (open-sound "test.snd"))
       (if (not (string=? (comment ind) "this is a comment"))
-	  (snd-display ";save-sound-as with comment: ~A" (comment ind)))
+	  (snd-display "save-sound-as with comment: ~A" (comment ind)))
       (close-sound ind))
 
     (mus-sound-prune)
@@ -32985,13 +32985,13 @@ EDITS: 1
     (for-each 
      (lambda (x)
        (if (fneq (bes-j0 x) (bes-j0-1 x))
-	   (snd-display ";(bes-j0 ~A) -> ~A ~A" x (bes-j0 x) (bes-j0-1 x))))
+	   (snd-display "(bes-j0 ~A) -> ~A ~A" x (bes-j0 x) (bes-j0-1 x))))
      '(0.0 0.5 1.0 2.0 20.0))
     (do ((i 0 (+ i 1)))
 	((= i 10))
       (let ((x (random 100.0)))
 	(if (fneq (bes-j0 x) (bes-j0-1 x))
-	    (snd-display ";(bes-j0 ~A) -> ~A ~A" x (bes-j0 x) (bes-j0-1 x))))))
+	    (snd-display "(bes-j0 ~A) -> ~A ~A" x (bes-j0 x) (bes-j0-1 x))))))
   
   
   (define (bes-j1-1 x)				;returns J1(x) for any real x
@@ -33020,13 +33020,13 @@ EDITS: 1
     (for-each 
      (lambda (x)
        (if (fneq (bes-j1 x) (bes-j1-1 x))
-	   (snd-display ";(bes-j1 ~A) -> ~A ~A" x (bes-j1 x) (bes-j1-1 x))))
+	   (snd-display "(bes-j1 ~A) -> ~A ~A" x (bes-j1 x) (bes-j1-1 x))))
      '(0.0 0.5 1.0 2.0 20.0))
     (do ((i 0 (+ i 1)))
 	((= i 10))
       (let ((x (random 100.0)))
 	(if (fneq (bes-j1 x) (bes-j1-1 x))
-	    (snd-display ";(bes-j1 ~A) -> ~A ~A" x (bes-j1 x) (bes-j1-1 x))))))
+	    (snd-display "(bes-j1 ~A) -> ~A ~A" x (bes-j1 x) (bes-j1-1 x))))))
   
   (define (test-jn)
     (define (bes-jn-1 nn x)				;return Jn(x) for any integer n, real x
@@ -33086,7 +33086,7 @@ EDITS: 1
 	  ((= i 10))
 	(let ((x (random 100.0)))
 	  (if (fneq (bes-jn k x) (bes-jn-1 k x))
-	      (snd-display ";(bes-jn ~A ~A) -> ~A ~A" k x (bes-jn k x) (bes-jn-1 k x)))))))
+	      (snd-display "(bes-jn ~A ~A) -> ~A ~A" k x (bes-jn k x) (bes-jn-1 k x)))))))
   
   
   (define (bes-y0-1 x)				;Bessel function Y0(x)
@@ -33111,13 +33111,13 @@ EDITS: 1
     (for-each 
      (lambda (x)
        (if (fneq (bes-y0 x) (bes-y0-1 x))
-	   (snd-display ";(bes-y0 ~A) -> ~A ~A" x (bes-y0 x) (bes-y0-1 x))))
+	   (snd-display "(bes-y0 ~A) -> ~A ~A" x (bes-y0 x) (bes-y0-1 x))))
      '(0.5 1.0 2.0 20.0))
     (do ((i 0 (+ i 1)))
 	((= i 10))
       (let ((x (random 100.0)))
 	(if (fneq (bes-y0 x) (bes-y0-1 x))
-	    (snd-display ";(bes-y0 ~A) -> ~A ~A" x (bes-y0 x) (bes-y0-1 x))))))
+	    (snd-display "(bes-y0 ~A) -> ~A ~A" x (bes-y0 x) (bes-y0-1 x))))))
   
   (define (bes-y1-1 x)				;Bessel function Y1(x)
     (if (= x 0.0)
@@ -33143,13 +33143,13 @@ EDITS: 1
     (for-each 
      (lambda (x)
        (if (fneq (bes-y1 x) (bes-y1-1 x))
-	   (snd-display ";(bes-y1 ~A) -> ~A ~A" x (bes-y1 x) (bes-y1-1 x))))
+	   (snd-display "(bes-y1 ~A) -> ~A ~A" x (bes-y1 x) (bes-y1-1 x))))
      '(0.01 0.5 1.0 2.0 20.0))
     (do ((i 0 (+ i 1)))
 	((= i 10))
       (let ((x (random 100.0)))
 	(if (ffneq (bes-y1 x) (bes-y1-1 x))
-	    (snd-display ";(bes-y1 ~A) -> ~A ~A" x (bes-y1 x) (bes-y1-1 x))))))
+	    (snd-display "(bes-y1 ~A) -> ~A ~A" x (bes-y1 x) (bes-y1-1 x))))))
   
   (define (test-yn)
     (define (bes-yn-1 n x)				;return Yn(x) for any integer n, real x
@@ -33172,7 +33172,7 @@ EDITS: 1
 	  ((= i 10))
 	(let ((x (random 100.0)))
 	  (if (ffneq (/ (bes-yn k x) (bes-yn-1 k x)) 1.0)
-	      (snd-display ";(bes-yn ~A ~A) -> ~A ~A" k x (bes-yn k x) (bes-yn-1 k x)))))))
+	      (snd-display "(bes-yn ~A ~A) -> ~A ~A" k x (bes-yn k x) (bes-yn-1 k x)))))))
   
   
   (define (test-i0)
@@ -33195,13 +33195,13 @@ EDITS: 1
     (for-each 
      (lambda (x)
        (if (fneq (bes-i0 x) (bes-i0-1 x))
-	   (snd-display ";(bes-i0 ~A) -> ~A ~A" x (bes-i0 x) (bes-i0-1 x))))
+	   (snd-display "(bes-i0 ~A) -> ~A ~A" x (bes-i0 x) (bes-i0-1 x))))
      '(0.0 0.5 1.0 2.0 0.01))
     (do ((i 0 (+ i 1)))
 	((= i 10))
       (let ((x (random 1.0)))
 	(if (fneq (bes-i0 x) (bes-i0-1 x))
-	    (snd-display ";(bes-i0 ~A) -> ~A ~A" x (bes-i0 x) (bes-i0-1 x))))))
+	    (snd-display "(bes-i0 ~A) -> ~A ~A" x (bes-i0 x) (bes-i0-1 x))))))
   
   (define (bes-i1 x)				;I1(x)
     (if (< (abs x) 3.75)
@@ -33221,10 +33221,10 @@ EDITS: 1
 	    (/ (* (exp ax) ans2 sign) (sqrt ax))))))
   
   (define (test-i1)
-    (if (fneq (bes-i1 1.0) 0.565159) (snd-display ";bes-i1 1.0: ~A" (bes-i1 1.0)))
-    (if (fneq (bes-i1 2.0) 1.59063685) (snd-display ";bes-i1 2.0: ~A" (bes-i1 2.0)))
-    (if (fneq (bes-i1 5.0) 24.33564) (snd-display ";bes-i1 5.0: ~A" (bes-i1 5.0)))
-    (if (fneq (bes-i1 10.0) 2670.9883) (snd-display ";bes-i1 10.0: ~A" (bes-i1 10.0))))
+    (if (fneq (bes-i1 1.0) 0.565159) (snd-display "bes-i1 1.0: ~A" (bes-i1 1.0)))
+    (if (fneq (bes-i1 2.0) 1.59063685) (snd-display "bes-i1 2.0: ~A" (bes-i1 2.0)))
+    (if (fneq (bes-i1 5.0) 24.33564) (snd-display "bes-i1 5.0: ~A" (bes-i1 5.0)))
+    (if (fneq (bes-i1 10.0) 2670.9883) (snd-display "bes-i1 10.0: ~A" (bes-i1 10.0))))
   
   (define (test-in)
     (define (bes-in n x)			;return In(x) for any integer n, real x
@@ -33255,23 +33255,23 @@ EDITS: 1
 	       (* ans (/ (bes-i0 x) bi))))))
     
     (unless (provided? 'solaris)
-      (if (fneq (bes-in 1 1.0) 0.565159) (snd-display ";bes-in 1 1.0: ~A" (bes-in 1 1.0)))
-      (if (fneq (bes-in 2 1.0) 0.13574767) (snd-display ";bes-in 2 1.0: ~A" (bes-in 2 1.0)))
-      (if (fneq (bes-in 3 1.0) 0.02216842) (snd-display ";bes-in 3 1.0: ~A" (bes-in 3 1.0)))
-      (if (fneq (bes-in 5 1.0) 2.71463e-4) (snd-display ";bes-in 5 1.0: ~A" (bes-in 5 1.0)))
-      (if (fneq (bes-in 10 1.0) 2.752948e-10) (snd-display ";bes-in 10 1.0: ~A" (bes-in 10 1.0)))
-      
-      (if (fneq (bes-in 1 2.0) 1.5906368) (snd-display ";bes-in 1 2.0: ~A" (bes-in 1 2.0)))
-      (if (fneq (bes-in 2 2.0) 0.6889484) (snd-display ";bes-in 2 2.0: ~A" (bes-in 2 2.0)))
-      (if (fneq (bes-in 3 2.0) 0.21273995) (snd-display ";bes-in 3 2.0: ~A" (bes-in 3 2.0)))
-      (if (fneq (bes-in 5 2.0) 0.009825679) (snd-display ";bes-in 5 2.0: ~A" (bes-in 5 2.0)))
-      (if (fneq (bes-in 10 2.0) 3.016963e-7) (snd-display ";bes-in 10 2.0: ~A" (bes-in 10 2.0)))
-      
-      (if (fneq (bes-in 1 5.0) 24.33564) (snd-display ";bes-in 1 5.0: ~A" (bes-in 1 5.0)))
-      (if (fneq (bes-in 2 5.0) 17.505615) (snd-display ";bes-in 2 5.0: ~A" (bes-in 2 5.0)))
-      (if (fneq (bes-in 3 5.0) 10.331150) (snd-display ";bes-in 3 5.0: ~A" (bes-in 3 5.0)))
-      (if (fneq (bes-in 5 5.0) 2.157974) (snd-display ";bes-in 5 5.0: ~A" (bes-in 5 5.0)))
-      (if (fneq (bes-in 10 5.0) 0.004580044) (snd-display ";bes-in 10 5.0: ~A" (bes-in 10 5.0)))))
+      (if (fneq (bes-in 1 1.0) 0.565159) (snd-display "bes-in 1 1.0: ~A" (bes-in 1 1.0)))
+      (if (fneq (bes-in 2 1.0) 0.13574767) (snd-display "bes-in 2 1.0: ~A" (bes-in 2 1.0)))
+      (if (fneq (bes-in 3 1.0) 0.02216842) (snd-display "bes-in 3 1.0: ~A" (bes-in 3 1.0)))
+      (if (fneq (bes-in 5 1.0) 2.71463e-4) (snd-display "bes-in 5 1.0: ~A" (bes-in 5 1.0)))
+      (if (fneq (bes-in 10 1.0) 2.752948e-10) (snd-display "bes-in 10 1.0: ~A" (bes-in 10 1.0)))
+      
+      (if (fneq (bes-in 1 2.0) 1.5906368) (snd-display "bes-in 1 2.0: ~A" (bes-in 1 2.0)))
+      (if (fneq (bes-in 2 2.0) 0.6889484) (snd-display "bes-in 2 2.0: ~A" (bes-in 2 2.0)))
+      (if (fneq (bes-in 3 2.0) 0.21273995) (snd-display "bes-in 3 2.0: ~A" (bes-in 3 2.0)))
+      (if (fneq (bes-in 5 2.0) 0.009825679) (snd-display "bes-in 5 2.0: ~A" (bes-in 5 2.0)))
+      (if (fneq (bes-in 10 2.0) 3.016963e-7) (snd-display "bes-in 10 2.0: ~A" (bes-in 10 2.0)))
+      
+      (if (fneq (bes-in 1 5.0) 24.33564) (snd-display "bes-in 1 5.0: ~A" (bes-in 1 5.0)))
+      (if (fneq (bes-in 2 5.0) 17.505615) (snd-display "bes-in 2 5.0: ~A" (bes-in 2 5.0)))
+      (if (fneq (bes-in 3 5.0) 10.331150) (snd-display "bes-in 3 5.0: ~A" (bes-in 3 5.0)))
+      (if (fneq (bes-in 5 5.0) 2.157974) (snd-display "bes-in 5 5.0: ~A" (bes-in 5 5.0)))
+      (if (fneq (bes-in 10 5.0) 0.004580044) (snd-display "bes-in 10 5.0: ~A" (bes-in 10 5.0)))))
   
   (define (bes-k0 x)				;K0(x)
     (if (<= x 2.0)
@@ -33289,9 +33289,9 @@ EDITS: 1
 		(* y (- (* y (+ 0.02189568 (* y (- (* y (+ 0.00587872 (* y (- (* y -0.00053208) 0.0025154)))) 0.01062446)))) 0.0783)))))))
 
   (define (test-k0)
-    (if (fneq (bes-k0 1.0) 0.4210244) (snd-display ";bes-k0 1.0: ~A" (bes-k0 1.0)))
-    (if (fneq (bes-k0 2.0) 0.1138938) (snd-display ";bes-k0 2.0: ~A" (bes-k0 2.0)))
-    (if (fneq (bes-k0 10.0) 1.7780e-5) (snd-display ";bes-k0 10.0: ~A" (bes-k0 10.0))))
+    (if (fneq (bes-k0 1.0) 0.4210244) (snd-display "bes-k0 1.0: ~A" (bes-k0 1.0)))
+    (if (fneq (bes-k0 2.0) 0.1138938) (snd-display "bes-k0 2.0: ~A" (bes-k0 2.0)))
+    (if (fneq (bes-k0 10.0) 1.7780e-5) (snd-display "bes-k0 10.0: ~A" (bes-k0 10.0))))
   
   (define (bes-k1 x)				;K1(x)
     (if (<= x 2.0)
@@ -33308,9 +33308,9 @@ EDITS: 1
 			(* y (- (* y (+ 0.01504268 (* y (- (* y (+ 0.00325614 (* y -0.00068245))) 0.00780353)))) 0.0365562)))))))))
   
   (define (test-k1)
-    (if (fneq (bes-k1 1.0) 0.60190723) (snd-display ";bes-k1 1.0: ~A" (bes-k1 1.0)))
-    (if (fneq (bes-k1 2.0) 0.1398658) (snd-display ";bes-k1 2.0: ~A" (bes-k1 2.0)))
-    (if (fneq (bes-k1 10.0) 1.86487e-5) (snd-display ";bes-k1 10.0: ~A" (bes-k1 10.0))))
+    (if (fneq (bes-k1 1.0) 0.60190723) (snd-display "bes-k1 1.0: ~A" (bes-k1 1.0)))
+    (if (fneq (bes-k1 2.0) 0.1398658) (snd-display "bes-k1 2.0: ~A" (bes-k1 2.0)))
+    (if (fneq (bes-k1 10.0) 1.86487e-5) (snd-display "bes-k1 10.0: ~A" (bes-k1 10.0))))
   
   
   (define (test-kn)
@@ -33329,20 +33329,20 @@ EDITS: 1
 	   (set! bkm bk)
 	   (set! bk bkp)))))
     
-    (if (fneq (bes-kn 1 1.0) 0.6019072) (snd-display ";bes-kn 1 1.0: ~A" (bes-kn 1 1.0)))
-    (if (fneq (bes-kn 2 1.0) 1.6248389) (snd-display ";bes-kn 2 1.0: ~A" (bes-kn 2 1.0)))
-    (if (fneq (bes-kn 3 1.0) 7.1012629) (snd-display ";bes-kn 3 1.0: ~A" (bes-kn 3 1.0)))
-    (if (fneq (bes-kn 5 1.0) 360.96059) (snd-display ";bes-kn 5 1.0: ~A" (bes-kn 5 1.0)))
+    (if (fneq (bes-kn 1 1.0) 0.6019072) (snd-display "bes-kn 1 1.0: ~A" (bes-kn 1 1.0)))
+    (if (fneq (bes-kn 2 1.0) 1.6248389) (snd-display "bes-kn 2 1.0: ~A" (bes-kn 2 1.0)))
+    (if (fneq (bes-kn 3 1.0) 7.1012629) (snd-display "bes-kn 3 1.0: ~A" (bes-kn 3 1.0)))
+    (if (fneq (bes-kn 5 1.0) 360.96059) (snd-display "bes-kn 5 1.0: ~A" (bes-kn 5 1.0)))
     
-    (if (fneq (bes-kn 1 2.0) 0.139865) (snd-display ";bes-kn 1 2.0: ~A" (bes-kn 1 2.0)))
-    (if (fneq (bes-kn 2 2.0) 0.2537597) (snd-display ";bes-kn 2 2.0: ~A" (bes-kn 2 2.0)))
-    (if (fneq (bes-kn 3 2.0) 0.6473854) (snd-display ";bes-kn 3 2.0: ~A" (bes-kn 3 2.0)))
-    (if (fneq (bes-kn 5 2.0) 9.431049) (snd-display ";bes-kn 5 2.0: ~A" (bes-kn 5 2.0)))
+    (if (fneq (bes-kn 1 2.0) 0.139865) (snd-display "bes-kn 1 2.0: ~A" (bes-kn 1 2.0)))
+    (if (fneq (bes-kn 2 2.0) 0.2537597) (snd-display "bes-kn 2 2.0: ~A" (bes-kn 2 2.0)))
+    (if (fneq (bes-kn 3 2.0) 0.6473854) (snd-display "bes-kn 3 2.0: ~A" (bes-kn 3 2.0)))
+    (if (fneq (bes-kn 5 2.0) 9.431049) (snd-display "bes-kn 5 2.0: ~A" (bes-kn 5 2.0)))
     
-    (if (fneq (bes-kn 1 5.0) 0.00404461) (snd-display ";bes-kn 1 5.0: ~A" (bes-kn 1 5.0)))
-    (if (fneq (bes-kn 2 5.0) 0.0053089) (snd-display ";bes-kn 2 5.0: ~A" (bes-kn 2 5.0)))
-    (if (fneq (bes-kn 3 5.0) 0.0082917) (snd-display ";bes-kn 3 5.0: ~A" (bes-kn 3 5.0)))
-    (if (fneq (bes-kn 5 5.0) 0.0327062) (snd-display ";bes-kn 5 5.0: ~A" (bes-kn 5 5.0))))
+    (if (fneq (bes-kn 1 5.0) 0.00404461) (snd-display "bes-kn 1 5.0: ~A" (bes-kn 1 5.0)))
+    (if (fneq (bes-kn 2 5.0) 0.0053089) (snd-display "bes-kn 2 5.0: ~A" (bes-kn 2 5.0)))
+    (if (fneq (bes-kn 3 5.0) 0.0082917) (snd-display "bes-kn 3 5.0: ~A" (bes-kn 3 5.0)))
+    (if (fneq (bes-kn 5 5.0) 0.0327062) (snd-display "bes-kn 5 5.0: ~A" (bes-kn 5 5.0))))
   
   
   (define (test-lgamma)
@@ -33362,17 +33362,17 @@ EDITS: 1
 	((= i 10))
       (let ((x (random 100.0)))
 	(if (fneq (lgamma x) (gammln x))
-	    (snd-display ";(lgamma ~A) -> ~A ~A" x (lgamma x) (gammln x))))))
+	    (snd-display "(lgamma ~A) -> ~A ~A" x (lgamma x) (gammln x))))))
   
   (define (test-erf)
-    (if (fneq (erf 0.0) 0.0) (snd-display ";erf 0.0: ~A" (erf 0.0)))
-    (if (fneq (erf 0.5) 0.5204998) (snd-display ";erf 0.5: ~A" (erf 0.5)))
-    (if (fneq (erf 1.0) 0.8427007) (snd-display ";erf 0.0: ~A" (erf 1.0)))
+    (if (fneq (erf 0.0) 0.0) (snd-display "erf 0.0: ~A" (erf 0.0)))
+    (if (fneq (erf 0.5) 0.5204998) (snd-display "erf 0.5: ~A" (erf 0.5)))
+    (if (fneq (erf 1.0) 0.8427007) (snd-display "erf 0.0: ~A" (erf 1.0)))
     (do ((i 0 (+ i 1)))
 	((= i 10))
       (let ((val (random 2.0)))
 	(if (fneq (+ (erf val) (erfc val)) 1.0)
-	    (snd-display ";erf+erfc: ~A (~A + ~A)" 
+	    (snd-display "erf+erfc: ~A (~A + ~A)" 
 			 (+ (erf val) (erfc val))
 			 (erf val)
 			 (erfc val))))))
@@ -33596,7 +33596,7 @@ EDITS: 1
       (do ((i 0 (+ i 1)))
 	  ((= i 16))
 	(if (fneq (d0 i) 1.0)
-	    (snd-display ";fourier (1.0) [~D]: ~A?" i (d0 i)))))
+	    (snd-display "fourier (1.0) [~D]: ~A?" i (d0 i)))))
     
     (let ((d0 (make-float-vector 19)))
       (set! (d0 0) 1.0)
@@ -33605,18 +33605,18 @@ EDITS: 1
 	   (i 0 (+ i 1)))
 	  ((or (not happy) (= i 16)))
 	(when (fneq (d0 i) 1.0)
-	  (snd-display ";fourier (1.0) [~D]: ~A?" i (d0 i))
+	  (snd-display "fourier (1.0) [~D]: ~A?" i (d0 i))
 	  (set! happy #f)))
       
       (snd-transform fourier-transform d0 0)
       (if (and (fneq (d0 0) 256.0)
 	       (fneq (d0 0) 361.0)) ; fftw funny length 
-	  (snd-display ";fourier (256.0): ~A?" (d0 0)))
+	  (snd-display "fourier (256.0): ~A?" (d0 0)))
       (do ((happy #t)
 	   (i 1 (+ i 1)))
 	  ((or (not happy) (= i 16)))
 	(when (fneq (d0 i) 0.0)
-	  (snd-display ";fourier (0.0) [~D]: ~A?" i (d0 i))
+	  (snd-display "fourier (0.0) [~D]: ~A?" i (d0 i))
 	  (set! happy #f))))
     
     (let ((r0 (make-float-vector 8))
@@ -33640,7 +33640,7 @@ EDITS: 1
       (float-vector-add! i0 i1)
       (if (not (and (mus-arrays-equal? r0 r2)
 		    (mus-arrays-equal? i0 i2)))
-	  (snd-display ";fft additions/scaling: ~A ~A: ~A ~A" r2 i2 r0 i0)))
+	  (snd-display "fft additions/scaling: ~A ~A: ~A ~A" r2 i2 r0 i0)))
     
     (let ((d0 (make-float-vector 8))
 	  (d1 (make-float-vector 8)))
@@ -33648,22 +33648,22 @@ EDITS: 1
       (mus-fft d0 d1 8 1)
       (if (not (and (mus-arrays-equal? d0 (float-vector 1.000 0.000 -1.000 0.000 1.000 0.000 -1.000 0.000))
 		    (mus-arrays-equal? d1 (float-vector 0.000 1.000 0.000 -1.000 0.000 1.000 0.000 -1.000))))
-	  (snd-display ";mus-fft 1: ~A ~A?" d0 d1))
+	  (snd-display "mus-fft 1: ~A ~A?" d0 d1))
       (mus-fft d0 d1 8 -1)
       (if (not (and (mus-arrays-equal? d0 (float-vector 0.000 0.000 8.000 0.000 0.000 0.000 0.000 0.000))
 		    (mus-arrays-equal? d1 (make-float-vector 8))))
-	  (snd-display ";mus-fft -1: ~A ~A?" d0 d1))
+	  (snd-display "mus-fft -1: ~A ~A?" d0 d1))
       
       (fill! d0 1.0)
       (fill! d1 0.0)
       (mus-fft d0 d1 8)
       (if (not (and (mus-arrays-equal? d0 (float-vector 8.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000))
 		    (mus-arrays-equal? d1 (make-float-vector 8))))
-	  (snd-display ";mus-fft 2: ~A ~A?" d0 d1))
+	  (snd-display "mus-fft 2: ~A ~A?" d0 d1))
       (mus-fft d0 d1 8 -1)
       (if (not (and (mus-arrays-equal? d0 (make-float-vector 8 8.0))
 		    (mus-arrays-equal? d1 (make-float-vector 8))))
-	  (snd-display ";mus-fft -2: ~A ~A?" d0 d1))
+	  (snd-display "mus-fft -2: ~A ~A?" d0 d1))
       
       (fill! d1 0.0)
       (fill-float-vector d0 (random 1.0))
@@ -33672,7 +33672,7 @@ EDITS: 1
 	(mus-fft d0 d1 8 -1)
 	(float-vector-scale! d0 (/ 1.0 8.0))
 	(if (not (mus-arrays-equal? d0 fn))
-	    (snd-display ";mus-fft 3: ~A ~A?" d0 fn)))
+	    (snd-display "mus-fft 3: ~A ~A?" d0 fn)))
       
       (let ((d0 (make-float-vector 8))
 	    (d1 (make-float-vector 8)))
@@ -33695,17 +33695,17 @@ EDITS: 1
 	  (do ((i 0 (+ i 1))) ; one sample rotation here
 	      ((= i 7))
 	    (if (fneq (d0 (+ i 1)) (reversed-d0 i))
-		(snd-display ";mus-fft d0 reversed: ~A ~A" d0 reversed-d0))
+		(snd-display "mus-fft d0 reversed: ~A ~A" d0 reversed-d0))
 	    (if (fneq (d1 (+ i 1)) (reversed-d1 i))
-		(snd-display ";mus-fft d1 reversed: ~A ~A" d1 reversed-d1)))
+		(snd-display "mus-fft d1 reversed: ~A ~A" d1 reversed-d1)))
 	  (mus-fft d0 d1 8)
 	  (mus-fft d0 d1 8)
 	  (float-vector-scale! d0 .125)
 	  (float-vector-scale! d1 .125)
 	  (if (not (mus-arrays-equal? d0 save-d0))
-	      (snd-display ";mus-fft d0 saved: ~A ~A" d0 save-d0))
+	      (snd-display "mus-fft d0 saved: ~A ~A" d0 save-d0))
 	  (if (not (mus-arrays-equal? d1 save-d1))
-	      (snd-display ";mus-fft d1 saved: ~A ~A" d1 save-d1)))))
+	      (snd-display "mus-fft d1 saved: ~A ~A" d1 save-d1)))))
     
     (for-each 
      (lambda (size)
@@ -33713,22 +33713,22 @@ EDITS: 1
 	 (set! (d0 0) 1.0)
 	 (let ((dcopy (copy d0))
 	       (d1 (snd-spectrum d0 rectangular-window size)))
-	   (if (not (mus-arrays-equal? d0 dcopy)) (snd-display ";snd-spectrum not in-place? ~A ~A" d0 dcopy))
+	   (if (not (mus-arrays-equal? d0 dcopy)) (snd-display "snd-spectrum not in-place? ~A ~A" d0 dcopy))
 	   (do ((happy #t)
 		(i 0 (+ i 1)))
 	       ((or (not happy) (= i (/ size 2))))
 	     (when (fneq (d1 i) 1.0)
-	       (snd-display ";snd-spectrum (1.0) [~D: ~D]: ~A?" i size (d1 i))
+	       (snd-display "snd-spectrum (1.0) [~D: ~D]: ~A?" i size (d1 i))
 	       (set! happy #f)))))
        
        (let ((d1 (snd-spectrum (make-float-vector size 1.0) rectangular-window)))
 	 (if (fneq (d1 0) 1.0)
-	     (snd-display ";snd-spectrum back (1.0 ~D): ~A?" size (d1 0)))
+	     (snd-display "snd-spectrum back (1.0 ~D): ~A?" size (d1 0)))
 	 (do ((happy #t)
 	      (i 1 (+ i 1)))
 	     ((or (not happy) (= i (/ size 2))))
 	   (when (fneq (d1 i) 0.0)
-	     (snd-display ";snd-spectrum (0.0) [~D: ~D]: ~A?" i size (d1 i))
+	     (snd-display "snd-spectrum (0.0) [~D: ~D]: ~A?" i size (d1 i))
 	     (set! happy #f))))
        
        (let* ((d0 (make-float-vector size))
@@ -33738,68 +33738,68 @@ EDITS: 1
 	      (i 0 (+ i 1)))
 	     ((or (not happy) (= i (/ size 2))))
 	   (when (fneq (d1 i) 0.0)
-	     (snd-display ";snd-spectrum dB (0.0) [~D: ~D]: ~A?" i size (d1 i))
+	     (snd-display "snd-spectrum dB (0.0) [~D: ~D]: ~A?" i size (d1 i))
 	     (set! happy #f))))
        
        (let ((d1 (snd-spectrum (make-float-vector size 1.0) rectangular-window size #f)))
 	 (if (fneq (d1 0) 0.0)
-	     (snd-display ";snd-spectrum dB back (0.0 ~D): ~A?" size (d1 0)))
+	     (snd-display "snd-spectrum dB back (0.0 ~D): ~A?" size (d1 0)))
 	 (do ((happy #t)
 	      (i 1 (+ i 1)))
 	     ((or (not happy) (= i (/ size 2))))
 	   (when (fneq (d1 i) -90.0) ; currently ignores min-dB (snd-sig.c 5023)
-	     (snd-display ";snd-spectrum dB (1.0) [~D: ~D]: ~A?" i size (d1 i))
+	     (snd-display "snd-spectrum dB (1.0) [~D: ~D]: ~A?" i size (d1 i))
 	     (set! happy #f))))
        
        (let ((d0 (make-float-vector size)))
 	 (set! (d0 0) 1.0)
 	 (let ((dcopy (copy d0))
 	       (d1 (snd-spectrum d0 rectangular-window size #t 1.0 #t))) ; in-place 
-	   (if (mus-arrays-equal? d0 dcopy) (snd-display ";snd-spectrum in-place? ~A ~A" d0 dcopy))
-	   (if (not (mus-arrays-equal? d0 d1)) (snd-display ";snd-spectrum returns in-place? ~A ~A" d0 d1))
+	   (if (mus-arrays-equal? d0 dcopy) (snd-display "snd-spectrum in-place? ~A ~A" d0 dcopy))
+	   (if (not (mus-arrays-equal? d0 d1)) (snd-display "snd-spectrum returns in-place? ~A ~A" d0 d1))
 	   (do ((happy #t)
 		(i 0 (+ i 1)))
 	       ((or (not happy) (= i (/ size 2))))
 	     (when (fneq (d1 i) 1.0)
-	       (snd-display ";snd-spectrum (1.0 #t) [~D: ~D]: ~A?" i size (d1 i))
+	       (snd-display "snd-spectrum (1.0 #t) [~D: ~D]: ~A?" i size (d1 i))
 	       (set! happy #f)))))
        
        (let ((d0 (make-float-vector size)))
 	 (set! (d0 0) 1.0)
 	 (let ((dcopy (copy d0))
 	       (d1 (snd-spectrum d0 rectangular-window size #f 1.0 #t))) ; in-place dB
-	   (if (mus-arrays-equal? d0 dcopy) (snd-display ";snd-spectrum dB in-place? ~A ~A" d0 dcopy))
-	   (if (not (mus-arrays-equal? d0 d1)) (snd-display ";snd-spectrum dB returns in-place? ~A ~A" d0 d1))
+	   (if (mus-arrays-equal? d0 dcopy) (snd-display "snd-spectrum dB in-place? ~A ~A" d0 dcopy))
+	   (if (not (mus-arrays-equal? d0 d1)) (snd-display "snd-spectrum dB returns in-place? ~A ~A" d0 d1))
 	   (do ((happy #t)
 		(i 0 (+ i 1)))
 	       ((or (not happy) (= i (/ size 2))))
 	     (when (fneq (d1 i) 0.0)
-	       (snd-display ";snd-spectrum dB (1.0 #t) [~D: ~D]: ~A?" i size (d1 i))
+	       (snd-display "snd-spectrum dB (1.0 #t) [~D: ~D]: ~A?" i size (d1 i))
 	       (set! happy #f)))))
        
        (let ((d1 (snd-spectrum (make-float-vector size 1.0) rectangular-window size #t 0.0 #f #f))) ; linear (in-place) not normalized
-	 (if (fneq (d1 0) size) (snd-display ";snd-spectrum no norm 0: ~A" d1))
+	 (if (fneq (d1 0) size) (snd-display "snd-spectrum no norm 0: ~A" d1))
 	 (do ((happy #t)
 	      (i 1 (+ i 1)))
 	     ((or (not happy) (= i (/ size 2))))
 	   (when (fneq (d1 i) 0.0)
-	     (snd-display ";snd-spectrum no norm (0.0) [~D: ~D]: ~A?" i size (d1 i))
+	     (snd-display "snd-spectrum no norm (0.0) [~D: ~D]: ~A?" i size (d1 i))
 	     (set! happy #f))))
        
        (let ((d1 (snd-spectrum (make-float-vector size 1.0) blackman2-window size)))
 	 (if (not (or (mus-arrays-equal? d1 (float-vector 1.000 0.721 0.293 0.091))
 		      (mus-arrays-equal? d1 (float-vector 1.000 0.647 0.173 0.037 0.024 0.016 0.011 0.005))))
-	     (snd-display ";blackman2 snd-spectrum: ~A~%" d1)))
+	     (snd-display "blackman2 snd-spectrum: ~A~%" d1)))
        
        (let ((d1 (snd-spectrum (make-float-vector size 1.0) gaussian-window size #t 0.5)))
 	 (if (not (or (mus-arrays-equal? d1 (float-vector 1.000 0.900 0.646 0.328))
 		      (mus-arrays-equal? d1 (float-vector 1.000 0.870 0.585 0.329 0.177 0.101 0.059 0.028))))
-	     (snd-display ";gaussian 0.5 snd-spectrum: ~A~%" d1)))
+	     (snd-display "gaussian 0.5 snd-spectrum: ~A~%" d1)))
        
        (let ((d1 (snd-spectrum (make-float-vector size 1.0) gaussian-window size #t 0.85)))
 	 (if (not (or (mus-arrays-equal? d1 (float-vector 1.000 0.924 0.707 0.383))
 		      (mus-arrays-equal? d1 (float-vector 1.000 0.964 0.865 0.725 0.566 0.409 0.263 0.128))))
-	     (snd-display ";gaussian 0.85 snd-spectrum: ~A~%" d1))))
+	     (snd-display "gaussian 0.85 snd-spectrum: ~A~%" d1))))
      
      '(8 16))
     
@@ -33814,11 +33814,11 @@ EDITS: 1
 	      (i 0 (+ i 1)))
 	     ((or (not happy) (= i len2)))
 	   (when (fneq (rl i) (xrl i))
-	     (snd-display ";flat fft: ~A at ~A: ~A ~A" len i (rl i) (xrl i))
+	     (snd-display "flat fft: ~A at ~A: ~A ~A" len i (rl i) (xrl i))
 	     (set! happy #f)))
-	 (if (fneq (rl 0) (* len len)) (snd-display ";snd-transform ~A at 0: ~A" len (rl 0)))
+	 (if (fneq (rl 0) (* len len)) (snd-display "snd-transform ~A at 0: ~A" len (rl 0)))
 	 (set! (rl 0) 0.0)
-	 (if (> (float-vector-peak rl) .001) (snd-display ";snd-transform ~A impulse: ~A" len (float-vector-peak rl)))))
+	 (if (> (float-vector-peak rl) .001) (snd-display "snd-transform ~A impulse: ~A" len (float-vector-peak rl)))))
      '(16 128 512 1024))
     
     (for-each
@@ -33834,9 +33834,9 @@ EDITS: 1
 	      (i 0 (+ i 1)))
 	     ((or (not happy) (= i len2)))
 	   (when (fneq (rl i) (xrl i))
-	     (snd-display ";impulse fft: ~A at ~A: ~A ~A" len i (rl i) (xrl i))
+	     (snd-display "impulse fft: ~A at ~A: ~A ~A" len i (rl i) (xrl i))
 	     (set! happy #f)))
-	 (if (fneq (rl 0) 1.0) (snd-display ";flat ~A at 0: ~A" len (rl 0)))))
+	 (if (fneq (rl 0) 1.0) (snd-display "flat ~A at 0: ~A" len (rl 0)))))
      '(16 128 512 1024))
     
     (for-each
@@ -33852,7 +33852,7 @@ EDITS: 1
 	 (snd-transform fourier-transform xrl #t)
 	 (float-vector-scale! xrl (/ 1.0 len))
 	 (if (not (mus-arrays-equal? rl xrl))
-	     (snd-display ";random fft: ~A: ~A ~A" len rl xrl))))
+	     (snd-display "random fft: ~A: ~A ~A" len rl xrl))))
      '(16 128 512 1024 4096))
     
     (for-each
@@ -33869,7 +33869,7 @@ EDITS: 1
 	 (snd-transform fourier-transform xrl #t)
 	 (float-vector-scale! xrl (/ 1.0 len))
 	 (if (not (mus-arrays-equal? rl xrl))
-	     (snd-display ";random fft: ~A: ~A ~A" len rl xrl))))
+	     (snd-display "random fft: ~A: ~A ~A" len rl xrl))))
      '(16 128 512 1024 4096))
     
     ;; -------- autocorrelation
@@ -33878,21 +33878,21 @@ EDITS: 1
       (set! (rl 0) 1.0)
       (autocorrelate rl)
       (if (not (mus-arrays-equal? rl (float-vector 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)))
-	  (snd-display ";autocorrelate 1: ~A" rl)))
+	  (snd-display "autocorrelate 1: ~A" rl)))
     
     (let ((rl (make-float-vector 16)))
       (set! (rl 0) 1.0)
       (set! (rl 1) -1.0)
       (autocorrelate rl)
       (if (not (mus-arrays-equal? rl (float-vector 2 -1 0 0 0 0 0 0 0 0 0 0 0 0 0 0)))
-	  (snd-display ";autocorrelate 1 -1: ~A" rl)))
+	  (snd-display "autocorrelate 1 -1: ~A" rl)))
     
     (let ((rl (make-float-vector 16)))
       (set! (rl 0) 1.0)
       (set! (rl 4) -1.0)
       (autocorrelate rl)
       (if (not (mus-arrays-equal? rl (float-vector 2 0 0 0 -1 0 0 0 0 0 0 0 0 0 0 0)))
-	  (snd-display ";autocorrelate 1 0 0 0 -1: ~A" rl)))
+	  (snd-display "autocorrelate 1 0 0 0 -1: ~A" rl)))
     
     (let ((rl (make-float-vector 16))
 	  (rl1 (make-float-vector 16)))
@@ -33903,7 +33903,7 @@ EDITS: 1
       (let ((nr (float-vector-subseq (corr rl rl 16 16) 0 15)))
 	(autocorrelate rl1)
 	(if (not (mus-arrays-equal? rl1 nr))
-	    (snd-display ";autocorrelate/corr (ramp):~%;  ~A~%;  ~A" rl1 nr))))
+	    (snd-display "autocorrelate/corr (ramp):~%;  ~A~%;  ~A" rl1 nr))))
     
     (let ((rl (make-float-vector 16))
 	  (rl1 (make-float-vector 16)))
@@ -33914,7 +33914,7 @@ EDITS: 1
       (let ((nr (float-vector-subseq (corr rl rl 16 16) 0 15)))
 	(autocorrelate rl1)
 	(if (not (mus-arrays-equal? rl1 nr))
-	    (snd-display ";autocorrelate/corr:~%;  ~A~%;  ~A" rl1 nr))))
+	    (snd-display "autocorrelate/corr:~%;  ~A~%;  ~A" rl1 nr))))
     
     (let ((ind0 (new-sound "test.snd" :size 16))
 	  (ind1 (new-sound "fmv.snd" :size 16)))
@@ -33923,13 +33923,13 @@ EDITS: 1
       (let ((data0 (cross-correlate-1 ind0 0 ind1 0))
 	    (data1 (cross-correlate-2 ind0 0 ind1 0)))
 	(if (not (mus-arrays-equal? data0 data1))
-	    (snd-display ";cross-correlate: ~A ~A" data0 data1)))
+	    (snd-display "cross-correlate: ~A ~A" data0 data1)))
       (set! (sample 3 ind0 0) 0.0)
       (set! (sample 8 ind0 0) 1.0)
       (let ((data0 (cross-correlate-1 ind0 0 ind1 0))
 	    (data1 (cross-correlate-2 ind0 0 ind1 0)))
 	(if (not (mus-arrays-equal? data0 data1))
-	    (snd-display ";cross-correlate 1: ~A ~A" data0 data1)))
+	    (snd-display "cross-correlate 1: ~A ~A" data0 data1)))
       (close-sound ind0)
       (close-sound ind1))
     
@@ -33944,7 +33944,7 @@ EDITS: 1
       (set! v1 (cross-correlate-3 v1 v2 16))
       (set! v3 (correlate v3 v4))
       (if (not (mus-arrays-equal? v1 v3))
-	  (snd-display ";correlate 16:~%;  ~A~%;  ~A" v1 v3)))
+	  (snd-display "correlate 16:~%;  ~A~%;  ~A" v1 v3)))
     
     (let ((v1 (make-float-vector 128))
 	  (v2 (make-float-vector 128))
@@ -33957,7 +33957,7 @@ EDITS: 1
       (set! v1 (cross-correlate-3 v1 v2 128))
       (set! v3 (correlate v3 v4))
       (if (not (mus-arrays-equal? v1 v3))
-	  (snd-display ";correlate 128:~%;  ~A~%;  ~A" v1 v3)))
+	  (snd-display "correlate 128:~%;  ~A~%;  ~A" v1 v3)))
     
     (let ((v1 (make-float-vector 128))
 	  (v2 (make-float-vector 128))
@@ -33972,7 +33972,7 @@ EDITS: 1
       (set! v1 (cross-correlate-3 v1 v2 128))
       (set! v3 (correlate v3 v4))
       (if (not (mus-arrays-equal? v1 v3))
-	  (snd-display ";correlate 128 at random:~%;  ~A~%;  ~A" v1 v3)))
+	  (snd-display "correlate 128 at random:~%;  ~A~%;  ~A" v1 v3)))
     
     (let ((v1 (make-float-vector 16))
 	  (v2 (make-float-vector 16)))
@@ -33981,7 +33981,7 @@ EDITS: 1
       (set! v1 (correlate v1 (copy v1)))
       (set! v2 (autocorrelate v2))
       (if (not (mus-arrays-equal? v1 v2))
-	  (snd-display ";auto/correlate 16:~%;  ~A~%;  ~A" v1 v2)))
+	  (snd-display "auto/correlate 16:~%;  ~A~%;  ~A" v1 v2)))
     
     (for-each
      (lambda (len)
@@ -33993,14 +33993,14 @@ EDITS: 1
 	 (set! (rl 0) 1.0)
 	 (set! (rl 4) 1.0)
 	 (snd-transform autocorrelation rl 0) ; this is exactly the same as (autocorrelate rl)
-	 (if (fneq (rl 0) 2.0) (snd-display ";autocorrelation ~A 0: ~A" len (rl 0)))
-	 (if (fneq (rl 4) 1.0) (snd-display ";autocorrelation ~A 4: ~A" len (rl 4)))
+	 (if (fneq (rl 0) 2.0) (snd-display "autocorrelation ~A 0: ~A" len (rl 0)))
+	 (if (fneq (rl 4) 1.0) (snd-display "autocorrelation ~A 4: ~A" len (rl 4)))
 	 
 	 (set! (rla 0) 1.0)
 	 (set! (rla 4) 1.0)
 	 (autocorrelate rla)
-	 (if (fneq (rla 0) 2.0) (snd-display ";autocorrelate ~A 0: ~A" len (rla 0)))
-	 (if (fneq (rla 4) 1.0) (snd-display ";autocorrelate ~A 4: ~A" len (rla 4)))
+	 (if (fneq (rla 0) 2.0) (snd-display "autocorrelate ~A 0: ~A" len (rla 0)))
+	 (if (fneq (rla 4) 1.0) (snd-display "autocorrelate ~A 4: ~A" len (rla 4)))
 	 
 	 (set! (xrl 0) 1.0)
 	 (set! (xrl 4) 1.0)
@@ -34016,12 +34016,12 @@ EDITS: 1
 	      (i 0 (+ i 1)))
 	     ((or (not happy) (= i len2)))
 	   (when (fneq (rl i) (xrl i))
-	     (snd-display ";mus-fft? ~A at ~A: ~A ~A" len i (rl i) (xrl i))
+	     (snd-display "mus-fft? ~A at ~A: ~A ~A" len i (rl i) (xrl i))
 	     (set! happy #f)))
 	 (set! (rl 0) 0.0)
 	 (set! (rl 4) 0.0)
 	 (fill! rl 0.0 len2 len)
-	 (if (> (float-vector-peak rl) .001) (snd-display ";autocorrelate peak: ~A" (float-vector-peak rl)))))
+	 (if (> (float-vector-peak rl) .001) (snd-display "autocorrelate peak: ~A" (float-vector-peak rl)))))
      '(16 64 256 512))
     
     (for-each
@@ -34053,7 +34053,7 @@ EDITS: 1
 	      (i 0 (+ i 1)))
 	     ((or (not happy) (= i len2)))
 	   (when (fneq (rl i) (xrl i))
-	     (snd-display ";random ~A at ~A: ~A ~A" len i (rl i) (xrl i))
+	     (snd-display "random ~A at ~A: ~A ~A" len i (rl i) (xrl i))
 	     (set! happy #f)))))
      '(16 64 256 512))
     
@@ -34068,13 +34068,13 @@ EDITS: 1
 	(if (not (mus-arrays-equal? nrl (float-vector  1.3994950   0.1416877   0.0952407   0.0052814  -0.0613192   0.0082986  -0.0233993
 						       -0.0476585   0.0259498  -0.0476585  -0.0233993   0.0082986  -0.0613192   0.0052814
 						       0.0952407   0.1416877)))
-	    (snd-display ";cepstrum 16: ~A" nrl))))
+	    (snd-display "cepstrum 16: ~A" nrl))))
     
     (let ((rl (make-float-vector 16)))
       (do ((i 0 (+ i 1))) ((= i 16)) (set! (rl i) i))
       (let ((nrl (float-vector-scale! (snd-transform cepstrum rl 0) 2.72)))
 	(if (not (mus-arrays-equal? nrl (float-vector 2.720 0.452 0.203 0.122 0.082 0.061 0.048 0.041 0.039 0.041 0.048 0.061 0.082 0.122 0.203 0.452)))
-	    (snd-display ";cepstrum 16 by ones: ~A" nrl))))
+	    (snd-display "cepstrum 16 by ones: ~A" nrl))))
     
     (for-each
      (lambda (len)
@@ -34096,7 +34096,7 @@ EDITS: 1
 	 (mus-fft xrl xim len -1)
 	 (float-vector-scale! xrl (/ 1.0 (float-vector-peak xrl)))
 	 (if (not (mus-arrays-equal? rl xrl))
-	     (snd-display ";mus-fft?? ~A: ~A ~A" len rl xrl))))
+	     (snd-display "mus-fft?? ~A: ~A ~A" len rl xrl))))
      '(16 64 256 512))
     
     
@@ -34106,29 +34106,29 @@ EDITS: 1
       (set! (d0 0) 1.0)
       (snd-transform walsh-transform d0)
       (if (not (mus-arrays-equal? d0 (make-float-vector 8 1.0)))
-	  (snd-display ";walsh 1: ~A" d0))
+	  (snd-display "walsh 1: ~A" d0))
       (snd-transform walsh-transform d0)
       (if (not (mus-arrays-equal? d0 (float-vector 8.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";walsh -1: ~A" d0)))
+	  (snd-display "walsh -1: ~A" d0)))
     
     (let ((d0 (make-float-vector 8)))
       (set! (d0 1) 1.0)
       (snd-transform walsh-transform d0)
       (if (not (mus-arrays-equal? d0 (float-vector 1.000 -1.000 1.000 -1.000 1.000 -1.000 1.000 -1.000)))
-	  (snd-display ";walsh 2: ~A" d0))
+	  (snd-display "walsh 2: ~A" d0))
       (snd-transform walsh-transform d0)
       (if (not (mus-arrays-equal? d0 (float-vector 0.000 8.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";walsh -2: ~A" d0)))
+	  (snd-display "walsh -2: ~A" d0)))
     
     (let ((d0 (make-float-vector 8)))
       (set! (d0 1) 1.0)
       (set! (d0 0) 0.5)
       (snd-transform walsh-transform d0)
       (if (not (mus-arrays-equal? d0 (float-vector 1.500 -0.500 1.500 -0.500 1.500 -0.500 1.500 -0.500)))
-	  (snd-display ";walsh 3: ~A" d0))
+	  (snd-display "walsh 3: ~A" d0))
       (snd-transform walsh-transform d0)
       (if (not (mus-arrays-equal? d0 (float-vector 4.000 8.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";walsh -3: ~A" d0)))
+	  (snd-display "walsh -3: ~A" d0)))
     
     (let ((d0 (make-float-vector 8)))
       (fill-float-vector d0 (random 1.0))
@@ -34137,20 +34137,20 @@ EDITS: 1
 	(snd-transform walsh-transform d0)
 	(float-vector-scale! d0 (/ 1.0 8.0))
 	(if (not (mus-arrays-equal? d0 d1))
-	    (snd-display ";walsh 4: ~A ~A" d0 d1))))
+	    (snd-display "walsh 4: ~A ~A" d0 d1))))
     
     (let ((d1 (snd-transform walsh-transform (float-vector 1 1 1 -1 1 1 1 -1 1 1 1 -1 -1 -1 -1 1))))
       (if (not (mus-arrays-equal? d1 (float-vector 4.00 4.00 4.00 -4.00 4.00 4.00 4.00 -4.00 4.00 4.00 4.00 -4.00 -4.00 -4.00 -4.00 4.00)))
-	  (snd-display ";walsh 5: ~A" d1)))
+	  (snd-display "walsh 5: ~A" d1)))
     
     (let ((d1 (snd-transform walsh-transform (float-vector 1 0 0 -1 0 0 0 0 0 0 0 0 0 0 0 0))))
       (if (not (mus-arrays-equal? d1 (float-vector 0.000 2.000 2.000 0.000 0.000 2.000 2.000 0.000 0.000 2.000 2.000 0.000 0.000 2.000 2.000 0.000)))
-	  (snd-display ";walsh 6: ~A" d1)))
+	  (snd-display "walsh 6: ~A" d1)))
     
     (let ((d1 (snd-transform walsh-transform 
 			     (float-vector 0.174 -0.880 -0.555 -0.879 0.038 0.696 -0.612 0.006 -0.613 0.334 -0.111 -0.821 0.130 0.030 -0.229 0.170))))
       (if (not (mus-arrays-equal? d1 (float-vector -3.122 -0.434 2.940 -0.468 -3.580 2.716 -0.178 -1.386 -0.902 0.638 1.196 1.848 -0.956 2.592 -1.046 2.926)))
-	  (snd-display ";walsh 7: ~A" d1)))
+	  (snd-display "walsh 7: ~A" d1)))
     
     
     ;; -------- haar
@@ -34159,33 +34159,33 @@ EDITS: 1
       (set! (d0 2) 1.0)
       (snd-transform haar-transform d0)
       (if (not (mus-arrays-equal? d0 (float-vector 0.354 0.354 -0.500 0.000 0.000 0.707 0.000 0.000)))
-	  (snd-display ";haar 1: ~A" d0))
+	  (snd-display "haar 1: ~A" d0))
       (inverse-haar d0)
       (if (not (mus-arrays-equal? d0 (float-vector 0.000 0.000 1.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";inverse haar 1: ~A" d0)))
+	  (snd-display "inverse haar 1: ~A" d0)))
     
     (let ((d0 (make-float-vector 8)))
       (set! (d0 0) 1.0)
       (snd-transform haar-transform d0)
       (if (not (mus-arrays-equal? d0 (float-vector 0.354 0.354 0.500 0.000 0.707 0.000 0.000 0.000)))
-	  (snd-display ";haar 2: ~A" d0))
+	  (snd-display "haar 2: ~A" d0))
       (inverse-haar d0)
       (if (not (mus-arrays-equal? d0 (float-vector 1.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";inverse haar 2: ~A" d0)))
+	  (snd-display "inverse haar 2: ~A" d0)))
     
     (let ((d0 (snd-transform haar-transform (float-vector -0.483 0.174 -0.880 -0.555 -0.879 0.038 0.696 -0.612))))
       (if (not (mus-arrays-equal? d0 (float-vector -0.884 -0.349 0.563 -0.462 -0.465 -0.230 -0.648 0.925)))
-	  (snd-display ";haar 3: ~A" d0)))
+	  (snd-display "haar 3: ~A" d0)))
     
     ;; from "A Primer on Wavelets"
     (let ((sq2 (sqrt 2.0))
 	  (d0 (snd-transform haar-transform (float-vector 4 6 10 12 8 6 5 5))))
       (if (not (mus-arrays-equal? d0 (float-vector (* 14 sq2) (* 2 sq2) -6 2 (- sq2) (- sq2) sq2 0)))
-	  (snd-display ";haar 4: ~A" d0))
+	  (snd-display "haar 4: ~A" d0))
       
       (set! d0 (snd-transform haar-transform (float-vector 2 4 6 8 10 12 14 16)))
       (if (not (mus-arrays-equal? d0 (float-vector (* 18 sq2) (* -8 sq2) -4 -4 (- sq2) (- sq2) (- sq2) (- sq2))))
-	  (snd-display ";haar 5: ~A" d0)))
+	  (snd-display "haar 5: ~A" d0)))
     
     (let ((d0 (make-float-vector 8))
 	  (d1 (make-float-vector 8)))
@@ -34196,7 +34196,7 @@ EDITS: 1
       (snd-transform haar-transform d0)
       (inverse-haar d0)
       (if (not (mus-arrays-equal? d0 d1))
-	  (snd-display ";inverse haar 6: ~A ~A" d0 d1)))
+	  (snd-display "inverse haar 6: ~A ~A" d0 d1)))
     
     
     (let* ((SQRT2 1.41421356237309504880168872420969808)
@@ -34262,7 +34262,7 @@ EDITS: 1
 	;; test against fxt output
 	(let ((d0 (snd-transform wavelet-transform (float-vector 1 1 0 0 0 0 0 0) 0))) ;"daub4"
 	  (if (not (mus-arrays-equal? d0 (float-vector 0.625 0.375 -0.217 1.083 -0.354 0.000 0.000 0.354)))
-	      (snd-display ";fxt wavelet 1: ~A" d0)))
+	      (snd-display "fxt wavelet 1: ~A" d0)))
 	
 	(let ((wts (list 
 		    daub4 daub6 daub8 daub10 daub12 daub14 daub16 daub18 daub20
@@ -34279,7 +34279,7 @@ EDITS: 1
 		 (wavelet d1 size 0 pwt (wts i))
 		 (snd-transform wavelet-transform d2 i)
 		 (if (not (mus-arrays-equal? d1 d2))
-		     (snd-display ";wavelet ~D: ~A ~A" i d1 d2))
+		     (snd-display "wavelet ~D: ~A ~A" i d1 d2))
 		 (wavelet d2 size -1 pwt (wts i))
 		 (fill! d1 0.0)
 		 (set! (d1 2) 1.0)
@@ -34288,13 +34288,13 @@ EDITS: 1
 			 (begin
 			   (set! (d2 2) 0.0)
 			   (if (> (float-vector-peak d2) .1)
-			       (snd-display ";inverse wavelet ~D: ~A ~A" i d1 d2)))
+			       (snd-display "inverse wavelet ~D: ~A ~A" i d1 d2)))
 			 (if (> i 14)
 			     (let ((pk (d2 2)))
 			       (set! (d2 2) 0.0)
 			       (if (> (float-vector-peak d2) pk)
-				   (snd-display ";inverse wavelet ~D: ~A ~A" i d1 d2)))
-			     (snd-display ";inverse wavelet ~D: ~A ~A" i d1 d2))))))
+				   (snd-display "inverse wavelet ~D: ~A ~A" i d1 d2)))
+			     (snd-display "inverse wavelet ~D: ~A ~A" i d1 d2))))))
 	     (do ((i 0 (+ i 1)))
 		 ((= i 9))
 	       (let ((d1 #f)
@@ -34304,7 +34304,7 @@ EDITS: 1
 		 (snd-transform wavelet-transform d2 i)
 		 (wavelet d2 size -1 pwt (wts i))
 		 (if (not (mus-arrays-equal? d1 d2))
-		     (snd-display ";random wavelet ~D: ~A ~A" i d1 d2)))))
+		     (snd-display "random wavelet ~D: ~A ~A" i d1 d2)))))
 	   '(16 64)))))
     
     (set! *max-transform-peaks* 100)
@@ -34315,7 +34315,7 @@ EDITS: 1
 								:xcoeffs (make-float-vector 8 0.125)))
 					  (v (make-float-vector len)))
 				      (fill-float-vector v (fir-filter flt (read-sample fd))))))))
-	(if (not (transform? ftype)) (snd-display ";transform added: ~A?" ftype))
+	(if (not (transform? ftype)) (snd-display "transform added: ~A?" ftype))
 	(set! *transform-normalization* dont-normalize)
 	(set! (transform-type ind 0) ftype))
       (set! (transform-size ind 0) 16)
@@ -34344,18 +34344,18 @@ EDITS: 1
 	(do ((i 0 (+ i 1)))
 	    ((or (not happy) (= i 256)))
 	  (when (fneq (samps i) (orig i))
-	    (snd-display ";add-transform same (~A): ~D ~A ~A" ftype i (samps i) (orig i))
+	    (snd-display "add-transform same (~A): ~D ~A ~A" ftype i (samps i) (orig i))
 	    (set! happy #f))))
       (set! (dot-size ind 0) 60)
       (set! (graph-style ind 0) graph-lollipops)
       (set! (x-bounds) (list 2.579 2.580))
       (update-time-graph)
       (delete-transform ftype)
-      (if (transform? ftype) (snd-display ";transform deleted: ~A" ftype))
-      (if (transform? -1) (snd-display ";transform? -1"))
-      (if (transform? (integer->transform 123)) (snd-display ";transform? 123"))
+      (if (transform? ftype) (snd-display "transform deleted: ~A" ftype))
+      (if (transform? -1) (snd-display "transform? -1"))
+      (if (transform? (integer->transform 123)) (snd-display "transform? 123"))
       (if (not (equal? (transform-type ind 0) fourier-transform)) 
-	  (snd-display ";after delete-transform ~A -> ~A" ftype (transform-type ind 0)))
+	  (snd-display "after delete-transform ~A -> ~A" ftype (transform-type ind 0)))
       (close-sound ind))
     
     (when (defined? 'bignum-fft)
@@ -34390,13 +34390,13 @@ EDITS: 1
 	      (cim (bignum-vector -1.000 (- (sqrt (bignum "2"))) -1.000 0.000 1.000 (sqrt (bignum "2")) 1.000 0.000)))
 	  (if (not (and (vectors-equal? rl crl)
 			(vectors-equal? im cim)))
-	      (snd-display ";big-fft -1 -1 at 1:~%rl: ~A~%    ~A~%im: ~A~%    ~A~%" rl crl im cim)))
+	      (snd-display "big-fft -1 -1 at 1:~%rl: ~A~%    ~A~%im: ~A~%    ~A~%" rl crl im cim)))
 	(bignum-fft rl im 8 -1)
 	(let ((crl (bignum-vector 0.0 -8.0 0.0 0.0 0.0 0.0 0.0 0.0))
 	      (cim (bignum-vector 0.0 -8.0 0.0 0.0 0.0 0.0 0.0 0.0)))
 	  (if (not (and (vectors-equal? rl crl)
 			(vectors-equal? im cim)))
-	      (snd-display ";big-fft -1 -1 at 1 inverse:~%rl: ~A~%    ~A~%im: ~A~%    ~A~%" rl crl im cim))
+	      (snd-display "big-fft -1 -1 at 1 inverse:~%rl: ~A~%    ~A~%im: ~A~%    ~A~%" rl crl im cim))
 	  (set! (rl 1) (bignum "-1.0"))
 	  (set! (im 1) (bignum "-1.0"))
 	  (do ((i 0 (+ i 1)))
@@ -34406,7 +34406,7 @@ EDITS: 1
 	  (set! (cim 1) (bignum "-64.0"))
 	  (if (not (and (vectors-equal? rl crl)
 			(vectors-equal? im cim)))
-	      (snd-display ";big-fft -1 -1 at 1 rotate:~%rl: ~A~%    ~A~%im: ~A~%    ~A~%" rl crl im cim))))
+	      (snd-display "big-fft -1 -1 at 1 rotate:~%rl: ~A~%    ~A~%im: ~A~%    ~A~%" rl crl im cim))))
       
       ;; -------- -1 1 at 3
       (let ((rl (make-vector 8))
@@ -34422,7 +34422,7 @@ EDITS: 1
 	      (cim (bignum-vector 1.000 (- (sqrt (bignum "2"))) 1.000 0.000 -1.000 (sqrt (bignum "2")) -1.000 0.000)))
 	  (if (not (and (vectors-equal? rl crl)
 			(vectors-equal? im cim)))
-	      (snd-display ";big-fft -1 1 at 3:~%rl: ~A~%    ~A~%im: ~A~%    ~A~%" rl crl im cim))))
+	      (snd-display "big-fft -1 1 at 3:~%rl: ~A~%    ~A~%im: ~A~%    ~A~%" rl crl im cim))))
       
       ;; -------- 1 0 at 0 with bignum arg to make-vector (so it should copy)
       (let ((rl (make-vector 8 (bignum "0.0")))
@@ -34433,7 +34433,7 @@ EDITS: 1
 	      (cim (bignum-vector 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0)))
 	  (if (not (and (vectors-equal? rl crl)
 			(vectors-equal? im cim)))
-	      (snd-display ";big-fft 1 0 at 0 (and copied fill):~%rl: ~A~%    ~A~%im: ~A~%    ~A~%" rl crl im cim))))
+	      (snd-display "big-fft 1 0 at 0 (and copied fill):~%rl: ~A~%    ~A~%im: ~A~%    ~A~%" rl crl im cim))))
       
       ;; -------- cos/sin
       (let ((rl (make-vector 64))
@@ -34453,7 +34453,7 @@ EDITS: 1
 	    (set! happy (and (< cerr 1e-30)
 			     (< serr 1e-30)))
 	    (if (not happy)
-		(snd-display ";big fft 1 at 0 (sin/cos) differs by ~A in ~A at ~A (~A ~A)~%"
+		(snd-display "big fft 1 at 0 (sin/cos) differs by ~A in ~A at ~A (~A ~A)~%"
 			     (max cerr serr)
 			     (if (> cerr serr) "cos" "sin")
 			     i
@@ -34468,7 +34468,7 @@ EDITS: 1
 	  (set! (crl 1) (bignum "64"))
 	  (if (not (and (vectors-equal? rl crl)
 			(vectors-equal? im cim)))
-	      (snd-display ";big-fft 1 at 0 fill cos/sin inverse:~%rl: ~A~%    ~A~%im: ~A~%    ~A~%" rl crl im cim))))
+	      (snd-display "big-fft 1 at 0 fill cos/sin inverse:~%rl: ~A~%    ~A~%im: ~A~%    ~A~%" rl crl im cim))))
       
       ;; -------- random 
       (let ((rl (make-vector 64))
@@ -34486,7 +34486,7 @@ EDITS: 1
 	(bignum-fft rl im 64 1)
 	(if (or (vectors-equal? rl crl)
 		(vectors-equal? im cim))
-	    (snd-display ";big-fft random not copied?:~%rl: ~A~%    ~A~%im: ~A~%    ~A~%" rl crl im cim))
+	    (snd-display "big-fft random not copied?:~%rl: ~A~%    ~A~%im: ~A~%    ~A~%" rl crl im cim))
 	
 	(bignum-fft rl im 64 -1)
 	(do ((i 0 (+ i 1)))
@@ -34495,7 +34495,7 @@ EDITS: 1
 	  (set! (im i) (/ (vector-ref im i) 64.0)))
 	(if (not (and (vectors-equal? rl crl)
 		      (vectors-equal? im cim)))
-	    (snd-display ";big-fft random:~%rl: ~A~%    ~A~%im: ~A~%    ~A~%" rl crl im cim))))
+	    (snd-display "big-fft random:~%rl: ~A~%    ~A~%im: ~A~%    ~A~%" rl crl im cim))))
     
     
     (let ((ind1 (open-sound "oboe.snd")))
@@ -34509,7 +34509,7 @@ EDITS: 1
 	(let ((size (transform-framples ind1 0)))
 	  (if (or (number? size)
 		  (not (= (length size) 3)))
-	      (snd-display ";transform-framples of sonogram: ~A" size))))
+	      (snd-display "transform-framples of sonogram: ~A" size))))
       (graph->ps "aaa.eps")
       (if (and (defined? 'integer->colormap)
 	       (integer? *colormap*))
@@ -34568,7 +34568,7 @@ EDITS: 1
     
     (let ((v (dolph 16 2.5)))
       (if (not (mus-arrays-equal? v (float-vector 0.097 0.113 0.221 0.366 0.536 0.709 0.860 0.963 1.000 0.963 0.860 0.709 0.536 0.366 0.221 0.113)))
-	  (snd-display ";dolph 16 2.5 (dsp.scm): ~A" v)))
+	  (snd-display "dolph 16 2.5 (dsp.scm): ~A" v)))
     
     (let ((v (make-float-vector 8)))
       (let ((v0 (make-float-vector 8)))
@@ -34578,29 +34578,29 @@ EDITS: 1
 	  (set! (v0 i) (float-vector-ref v i)))
 	(set! v (float-vector-scale! (dht (dht v)) (/ 1.0 8.0)))
 	(if (not (vmus-arrays-equal? v v0))
-	    (snd-display ";dht twice: ~A ~A" v v0)))
+	    (snd-display "dht twice: ~A ~A" v v0)))
       (fill! v 0.0)
       (set! (v 1) 1.0)
       (set! v (dht v))
       (if (not (mus-arrays-equal? v (float-vector 1.000 1.414 1.000 0.000 -1.000 -1.414 -1.000 0.000)))
-	  (snd-display ";dht of pulse: ~A" v)))
+	  (snd-display "dht of pulse: ~A" v)))
     
     (let ((ind (open-sound "oboe.snd")))
       (let ((val1 (car (find-sine 553.0 2000 3000 ind)))
 	    (val2 (car (find-sine 620.0 2000 3000 ind))))
 	(if (or (fneq val1 .03835)
 		(fneq val2 .0012))
-	    (snd-display ";find-sine: ~A ~A" val1 val2)))
+	    (snd-display "find-sine: ~A ~A" val1 val2)))
       (let ((frq (spot-freq 2000 ind 0)))
 	(if (not (= (round frq) 553))
-	    (snd-display ";spot-freq: ~A" frq)))
+	    (snd-display "spot-freq: ~A" frq)))
       (down-oct 2)
       (let ((frq (spot-freq 2000 ind 0)))
 	(if (not (member (round frq) '(276 277) =))
-	    (snd-display ";spot-freq down oct: ~A" frq)))
+	    (snd-display "spot-freq down oct: ~A" frq)))
       (undo)
       (zero-phase)
-      (if (fneq (sample 0) .1472) (snd-display ";zero-phase: ~A" (sample 0)))
+      (if (fneq (sample 0) .1472) (snd-display "zero-phase: ~A" (sample 0)))
       (undo)
       (rotate-phase (lambda (x) x))
       (undo)
@@ -34618,68 +34618,68 @@ EDITS: 1
 	   (valg2 (* 2 (/ (goertzel 440.0 0 (framples) ind) (framples))))
 	   (valf3 (car (find-sine 437.0 0 (framples) ind)))
 	   (valg3 (* 2 (/ (goertzel 437.0 0 (framples) ind) (framples)))))
-      (if (fneq valf valg) (snd-display ";goertzel 0: ~A ~A" valf valg))
-      (if (fneq valf1 valg1) (snd-display ";goertzel 1: ~A ~A" valf1 valg1))
-      (if (fneq valf2 valg2) (snd-display ";goertzel 2: ~A ~A" valf2 valg2))
-      (if (fneq valf3 valg3) (snd-display ";goertzel 3: ~A ~A" valf3 valg3))
+      (if (fneq valf valg) (snd-display "goertzel 0: ~A ~A" valf valg))
+      (if (fneq valf1 valg1) (snd-display "goertzel 1: ~A ~A" valf1 valg1))
+      (if (fneq valf2 valg2) (snd-display "goertzel 2: ~A ~A" valf2 valg2))
+      (if (fneq valf3 valg3) (snd-display "goertzel 3: ~A ~A" valf3 valg3))
       (close-sound ind))
     
     (let ((v (float-vector-polynomial (float-vector 0.0 2.0) (float-vector 1.0 2.0))))
       (if (not (mus-arrays-equal? v (float-vector 1.0 5.0)))
-	  (snd-display ";float-vector-polynomial 0: ~A" v)))
+	  (snd-display "float-vector-polynomial 0: ~A" v)))
     (let ((v (float-vector-polynomial (float-vector 0 1 2) (float-vector 0 2 1))))
       (if (not (mus-arrays-equal? v (float-vector 0.000 3.000 8.000)))
-	  (snd-display ";float-vector-polynomial 1: ~A" v)))
+	  (snd-display "float-vector-polynomial 1: ~A" v)))
     (let ((v (float-vector-polynomial (float-vector 0 1 2) (float-vector 0 2 1 .5))))
       (if (not (mus-arrays-equal? v (float-vector 0.000 3.500 12.000)))
-	  (snd-display ";float-vector-polynomial 2: ~A" v)))
+	  (snd-display "float-vector-polynomial 2: ~A" v)))
     (let ((v (float-vector-polynomial (float-vector 0 1 2) (float-vector 1))))
       (if (not (mus-arrays-equal? v (float-vector 1 1 1)))
-	  (snd-display ";float-vector-polynomial 3: ~A" v)))
+	  (snd-display "float-vector-polynomial 3: ~A" v)))
     (let ((ind (open-sound "pistol.snd")))
       (let ((mx (maxamp ind 0)))
 	(channel-polynomial (float-vector 0.0 2.0) ind 0)
 	(if (fneq (maxamp) (* mx 2))
-	    (snd-display ";channel-polynomial 2: ~A" (maxamp))))
+	    (snd-display "channel-polynomial 2: ~A" (maxamp))))
       (undo)
       (channel-polynomial (float-vector 0.0 0.5 0.25 0.25) ind 0)
       (if (fneq (maxamp) .222)
-	  (snd-display ";channel-polynomial 3: ~A" (maxamp)))
+	  (snd-display "channel-polynomial 3: ~A" (maxamp)))
       (undo)
       (channel-polynomial (float-vector 0.0 0.0 1.0) ind 0)
       (let ((pos (scan-channel (lambda (y) (< y 0.0)))))
 	(if pos
-	    (snd-display ";channel-polynomial squares: ~A" pos)))
+	    (snd-display "channel-polynomial squares: ~A" pos)))
       (undo)
       (channel-polynomial (float-vector 0.5 1.0) ind 0)
       (let ((pos (scan-channel (lambda (y) (< y 0.0)))))
 	(if pos
-	    (snd-display ";channel-polynomial offset: ~A" pos)))
+	    (snd-display "channel-polynomial offset: ~A" pos)))
       (if (fneq (maxamp) .8575)
-	  (snd-display ";channel-polynomial off mx: ~A" (maxamp)))
+	  (snd-display "channel-polynomial off mx: ~A" (maxamp)))
       (undo)
       (spectral-polynomial (float-vector 0.0 1.0) ind 0)
       (if (fneq (maxamp) .493)
-	  (snd-display ";spectral-polynomial 0 mx: ~A" (maxamp)))
+	  (snd-display "spectral-polynomial 0 mx: ~A" (maxamp)))
       (if (not (= (framples ind 0) 41623))
-	  (snd-display ";spectral-polynomial 0 len: ~A" (framples)))
+	  (snd-display "spectral-polynomial 0 len: ~A" (framples)))
       (undo)
       (spectral-polynomial (float-vector 0.0 0.5 0.5) ind 0)
       (if (fneq (maxamp) .493)
-	  (snd-display ";spectral-polynomial 1: ~A" (maxamp)))
+	  (snd-display "spectral-polynomial 1: ~A" (maxamp)))
       (if (not (= (framples ind 0) 83246)) ;(* 2 41623)
-	  (snd-display ";spectral-polynomial 1 len: ~A" (framples)))
+	  (snd-display "spectral-polynomial 1 len: ~A" (framples)))
       (undo)
       (spectral-polynomial (float-vector 0.0 0.0 0.0 1.0) ind 0)
       (if (fneq (maxamp) .493)
-	  (snd-display ";spectral-polynomial 2: ~A" (maxamp)))
+	  (snd-display "spectral-polynomial 2: ~A" (maxamp)))
       (if (not (= (framples ind 0) 124869)) ;(* 3 41623)
-	  (snd-display ";spectral-polynomial 1 len: ~A" (framples)))
+	  (snd-display "spectral-polynomial 1 len: ~A" (framples)))
       (close-sound ind))
     
     (let ((vals (scentroid "oboe.snd")))
       (if (or (fneq (vals 0) 1876.085) (fneq (vals 1) 1447.004))
-	  (snd-display ";scentroid: ~A" vals)))
+	  (snd-display "scentroid: ~A" vals)))
     
     (let ((flt (make-fir-filter 3 (float-vector 0.5 0.25 0.125)))
 	  (data (make-float-vector 10))
@@ -34694,7 +34694,7 @@ EDITS: 1
 	    ((= i 10))
 	  (set! (undata i) (fir-filter flt (undata i))))
 	(if (not (mus-arrays-equal? undata data))
-	    (snd-display ";invert-filter: ~A" undata))))
+	    (snd-display "invert-filter: ~A" undata))))
     
     (let ((coeffs (make-float-vector 6)))
       (do ((i 0 (+ i 1))
@@ -34714,7 +34714,7 @@ EDITS: 1
 	      ((= i 20))
 	    (set! (undata i) (fir-filter flt (undata i))))
 	  (if (not (mus-arrays-equal? undata data))
-	      (snd-display ";invert-filter (6): ~A" undata)))))
+	      (snd-display "invert-filter (6): ~A" undata)))))
     
     (let ((flt (make-volterra-filter (float-vector 1.0 .4) (float-vector .3 .2 .1)))
 	  (data (make-float-vector 10))
@@ -34724,7 +34724,7 @@ EDITS: 1
 	(set! (data i) (volterra-filter flt x))
 	(set! x (if (= i 0) 0.5 0.0)))
       (if (not (mus-arrays-equal? data (float-vector 0.000 0.575 0.250 0.025 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";volterra-filter: ~A" data)))
+	  (snd-display "volterra-filter: ~A" data)))
     
     (let ((flt (make-volterra-filter (float-vector 1.0) (float-vector 1.0)))
 	  (data (make-float-vector 10)))
@@ -34733,7 +34733,7 @@ EDITS: 1
 	  ((= i 10))
 	(set! (data i) (volterra-filter flt x)))
       (if (not (mus-arrays-equal? data (float-vector 2.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";volterra-filter x + x^2: ~A" data)))
+	  (snd-display "volterra-filter x + x^2: ~A" data)))
     
     (let ((flt (make-volterra-filter (float-vector 1.0) (float-vector 1.0)))
 	  (data (make-float-vector 10)))
@@ -34742,7 +34742,7 @@ EDITS: 1
 	  ((= i 10))
 	(set! (data i) (volterra-filter flt x)))
       (if (not (mus-arrays-equal? data (float-vector 2.000 1.710 1.440 1.190 0.960 0.750 0.560 0.390 0.240 0.110)))
-	  (snd-display ";volterra-filter x + x^2 by -0.1: ~A" data)))
+	  (snd-display "volterra-filter x + x^2 by -0.1: ~A" data)))
     
     (let ((flt (make-volterra-filter (float-vector 1.0 0.5) (float-vector 1.0)))
 	  (data (make-float-vector 10)))
@@ -34751,7 +34751,7 @@ EDITS: 1
 	  ((= i 10))
 	(set! (data i) (volterra-filter flt x)))
       (if (not (mus-arrays-equal? data (float-vector 2.000 0.500 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";volterra-filter x + .5x(n-1) + x^2: ~A" data)))
+	  (snd-display "volterra-filter x + .5x(n-1) + x^2: ~A" data)))
     
     (let ((flt (make-volterra-filter (float-vector 1.0 0.5) (float-vector 1.0 0.6)))
 	  (data (make-float-vector 10)))
@@ -34760,14 +34760,14 @@ EDITS: 1
 	  ((= i 10))
 	(set! (data i) (volterra-filter flt x)))
       (if (not (mus-arrays-equal? data (float-vector 1.710 0.936 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	  (snd-display ";volterra-filter x + .5x(n-1) + x^2 + 0.6: ~A" data)))
+	  (snd-display "volterra-filter x + .5x(n-1) + x^2 + 0.6: ~A" data)))
     
     
     (let ((ind (new-sound "test.snd" :size 100)))
       (let ((gen (make-oscil 440.0)))
 	(map-channel (lambda (y) (oscil gen))))
       (down-oct 2)
-      (if (not (= (framples) 200)) (snd-display ";down-oct new len: ~A" (framples)))
+      (if (not (= (framples) 200)) (snd-display "down-oct new len: ~A" (framples)))
       (let ((r1 (make-sampler 0 ind 0 1 1))
 	    (r2 (make-sampler 0 ind 0 1 2)))
 	(do ((i 0 (+ i 2)))
@@ -34777,7 +34777,7 @@ EDITS: 1
 		(val3 (r2)))
 	    (if (and (fneq val1 val2)
 		     (fneq val1 val3))
-		(snd-display ";down-oct: ~A ~A ~A ~A" i val1 val2 val3)))))
+		(snd-display "down-oct: ~A ~A ~A ~A" i val1 val2 val3)))))
       
       (kalman-filter-channel) ; just make sure it runs
       
@@ -34789,7 +34789,7 @@ EDITS: 1
       (let ((vals (fractional-fourier-transform d0 d1 8 1.0)))
 	(if (not (and (mus-arrays-equal? (car vals) (float-vector 1.000 0.000 -1.000 -0.000 1.000 0.000 -1.000 -0.000))
 		      (mus-arrays-equal? (cadr vals) (float-vector 0.000 1.000 0.000 -1.000 0.000 1.000 0.000 -1.000))))
-	    (snd-display ";fractional-fft: ~A?" vals))))
+	    (snd-display "fractional-fft: ~A?" vals))))
     
     (let ((d0 (make-float-vector 8))
 	  (d1 (make-float-vector 8)))
@@ -34800,49 +34800,49 @@ EDITS: 1
 	  (set! (d1 i) (imag-part (vector-ref val i))))
 	(if (not (and (mus-arrays-equal? d0 (float-vector 1.000 0.000 -1.000 -0.000 1.000 0.000 -1.000 -0.000))
 		      (mus-arrays-equal? d1 (float-vector 0.000 1.000 0.000 -1.000 0.000 1.000 0.000 -1.000))))
-	    (snd-display ";z-transform: ~A ~A?" d0 d1))))
+	    (snd-display "z-transform: ~A ~A?" d0 d1))))
     
     (let ((v1 (make-float-vector 16)))
       (set! (v1 0) 1.0)
       (let ((res (z-transform v1 16 0.5)))
 	(if (not (mus-arrays-equal? res (make-float-vector 16 1.0)))
-	    (snd-display ";z 0.5 0=1: ~A" res)))
+	    (snd-display "z 0.5 0=1: ~A" res)))
       (let ((res (z-transform v1 16 -1.0)))
 	(if (not (mus-arrays-equal? res (make-float-vector 16 1.0)))
-	    (snd-display ";z -1.0 0=1: ~A" res)))
+	    (snd-display "z -1.0 0=1: ~A" res)))
       (set! (v1 0) 0.0)
       (set! (v1 1) 1.0)
       (let ((res (z-transform v1 16 0.5)))
 	(if (not (mus-arrays-equal? res (float-vector 1.000 0.500 0.250 0.125 0.062 0.031 0.016 0.008 0.004 0.002 0.001 0.0 0.0 0.0 0.0 0.0)))
-	    (snd-display ";z 0.5 1=1: ~A" res)))
+	    (snd-display "z 0.5 1=1: ~A" res)))
       (let ((res (z-transform v1 16 2.0)))
 	(if (not (mus-arrays-equal? res (float-vector 1.0 2.0 4.0 8.0 16.0 32.0 64.0 128.0 256.0 512.0 1024.0 
 						      2048.0 4096.0 8192.0 16384.0 32768.0)))
-	    (snd-display ";z 2.0 1=1: ~A" res)))
+	    (snd-display "z 2.0 1=1: ~A" res)))
       (set! (v1 2) 1.0)
       (let ((res (z-transform v1 16 0.5)))
 	(if (not (mus-arrays-equal? res (float-vector 2.0 0.75 0.3125 0.140 0.0664 0.0322 0.0158 0.00787 0.0039 0.0019 0 0 0 0 0 0)))
-	    (snd-display ";z 0.5 1=1 2=1: ~A" res)))
+	    (snd-display "z 0.5 1=1 2=1: ~A" res)))
       (let ((res (z-transform v1 16 2.0)))
 	(if (not (mus-arrays-equal? res (float-vector 2.0 6.0 20.0 72.0 272.0 1056.0 4160.0 16512.0 65792.0 
 						      262656.0 1049600.0 4196352.0 16781312.0 67117056.0 268451840.0 1073774592.0)))
-	    (snd-display ";z 2.0 1=1 2=1: ~A" res)))
+	    (snd-display "z 2.0 1=1 2=1: ~A" res)))
       (do ((i 0 (+ i 1))
 	   (j 1.0 (* j 0.4)))
 	  ((= i 16))
 	(float-vector-set! v1 i j))
       (let ((res (z-transform v1 16 1.0)))
 	(if (not (mus-arrays-equal? res (make-float-vector 16 (/ 1.0 (- 1.0 0.4))))) ; this is confusing
-	    (snd-display ";z 1 0.4g: ~A" res))))
+	    (snd-display "z 1 0.4g: ~A" res))))
     
     (let ((ind (open-sound "oboe.snd")))
       (do ((i 0 (+ i 1))) ((= i 4)) (automorph 0.0+1.0i 0 0 1))
       (let ((mxdiff (float-vector-peak (float-vector-subtract! (channel->float-vector 0 #f ind 0 0) (channel->float-vector 0 #f ind 0) ))))
-	(if (> mxdiff .003) (snd-display ";automorph rotation: ~A" mxdiff)))
+	(if (> mxdiff .003) (snd-display "automorph rotation: ~A" mxdiff)))
       
       (revert-sound ind)
       (periodogram 256)
-      (if (not (lisp-graph? ind)) (snd-display ";periodogram not graphed?"))
+      (if (not (lisp-graph? ind)) (snd-display "periodogram not graphed?"))
       (close-sound ind)))
   
   (define* (cfft! data n (dir 1))
@@ -34950,7 +34950,7 @@ EDITS: 1
 	    ((= m len)
 	     (if (or (> mx 1e-6)
 		     (> sum 1e-6))
-		 (snd-display ";cfft! ~A: ~A ~A~%" len mx sum)))
+		 (snd-display "cfft! ~A: ~A ~A~%" len mx sum)))
 	  (let ((diffr (abs (- (v0 m) (real-part (v2 m)))))
 		(diffi (abs (- (v1 m) (imag-part (v2 m))))))
 	    (set! sum (+ sum diffr diffi))
@@ -34962,7 +34962,7 @@ EDITS: 1
 	    (> (magnitude (val 3)) 1e-12)
 	    (fneq 16.0 (real-part (val 1)))
 	    (fneq 16.0 (imag-part (val 1))))
-	(snd-display ";cfft! 4x: ~A" val)))
+	(snd-display "cfft! 4x: ~A" val)))
   
   (do ((i 0 (+ i 1)))
       ((= i 10))
@@ -34985,7 +34985,7 @@ EDITS: 1
 	    ((= m len)
 	     (if (or (> mx 1e-6)
 		     (> sum 1e-6))
-		 (snd-display ";fft! ~A: ~A ~A~%" len mx sum)))
+		 (snd-display "fft! ~A: ~A ~A~%" len mx sum)))
 	  (let ((diffr (abs (- (v0 m) (v2 m))))
 		(diffi (abs (- (v1 m) (v3 m)))))
 	    (set! sum (+ sum diffr diffi))
@@ -35029,7 +35029,7 @@ EDITS: 1
 		       (draw-string text (- xpos (/ text-width 2)) 18 snd chn time-graph cr)
 		       (free-cairo cr)))
 		   (lambda args
-		     (snd-display ";draw error: ~A" args))))))))
+		     (snd-display "draw error: ~A" args))))))))
        comments)))
   
   (define display-samps-in-red 
@@ -35071,7 +35071,7 @@ EDITS: 1
 			  (free-cairo cr)
 			  (set! (foreground-color snd chn) old-color))))))))
 	  (lambda args
-	    (snd-display ";draw error: ~A" args))))))
+	    (snd-display "draw error: ~A" args))))))
   
   (define* (show-greeting (snd 0) (chn 0))
     (let ((ls (left-sample snd chn))
@@ -35088,34 +35088,34 @@ EDITS: 1
   (do ((test-ctr 0 (+ 1 test-ctr))) ((= test-ctr tests)) 
     (log-mem test-ctr)
     
-    (if (not (sound-file? "oboe.snd")) (snd-display ";oboe.snd not a sound file?"))
-    (if (not (sound-file? "4.aiff")) (snd-display ";4.aiff not a sound file?"))
-    (if (sound-file? "snd.h") (snd-display ";snd.h is a sound-file?"))
+    (if (not (sound-file? "oboe.snd")) (snd-display "oboe.snd not a sound file?"))
+    (if (not (sound-file? "4.aiff")) (snd-display "4.aiff not a sound file?"))
+    (if (sound-file? "snd.h") (snd-display "snd.h is a sound-file?"))
     
     (let ((ind1 (open-sound "oboe.snd")))
       (save-sound-as "test.snd" ind1)
       (let ((ind2 (open-sound "test.snd")))
 	(if (not (channels-equal? ind1 0 ind2 0))
-	    (snd-display ";channels-equal? of copy"))
+	    (snd-display "channels-equal? of copy"))
 	(if (not (channels=? ind1 0 ind2 0))
-	    (snd-display ";channels=? of copy"))
+	    (snd-display "channels=? of copy"))
 	(pad-channel (framples ind2 0) 100)
 	(if (channels-equal? ind1 0 ind2 0)
-	    (snd-display ";channels-equal? of pad"))
+	    (snd-display "channels-equal? of pad"))
 	(if (not (channels=? ind1 0 ind2 0))
-	    (snd-display ";channels=? of pad"))
+	    (snd-display "channels=? of pad"))
 	(set! (sample 50900 ind2 0) .1)
 	(if (channels-equal? ind1 0 ind2 0)
-	    (snd-display ";channels-equal? of pad+set"))
+	    (snd-display "channels-equal? of pad+set"))
 	(if (channels=? ind1 0 ind2 0)
-	    (snd-display ";channels=? of pad+set 0 err"))
+	    (snd-display "channels=? of pad+set 0 err"))
 	(if (not (channels=? ind1 0 ind2 0 .2))
-	    (snd-display ";channels=? of pad+set .2 err"))
+	    (snd-display "channels=? of pad+set .2 err"))
 	(when with-gui
 	  (add-comment 1234 "sample 1234" ind1 0)
 	  (let ((comments (show-comments ind1 0)))
 	    (update-time-graph)
-	    (if (null? comments) (snd-display ";add-comment failed?")))
+	    (if (null? comments) (snd-display "add-comment failed?")))
 	  (display-samps-in-red ind1 0)
 	  (update-time-graph)
 	  (catch #t (lambda () (show-greeting ind1 0)) (lambda args args))
@@ -35127,7 +35127,7 @@ EDITS: 1
 	  (revert-sound ind1)
 	  (make-selection 10000 20000 ind1 0)
 	  (if (not (selection?))
-	      (snd-display ";make-selection for show failed?")
+	      (snd-display "make-selection for show failed?")
 	      (begin
 		(show-selection)
 		(let ((vals (x-bounds ind1 0)))
@@ -35135,7 +35135,7 @@ EDITS: 1
 			   (pair? (cdr vals))
 			   (or (fneq (car vals) (/ 10000.0 (srate ind1)))
 			       (fneq (cadr vals) (/ 20000.0 (srate ind1)))))
-		      (snd-display ";show-selection: ~A (~A)" vals (list (/ 10000.0 (srate ind1)) (/ 20000.0 (srate ind1))))))))
+		      (snd-display "show-selection: ~A (~A)" vals (list (/ 10000.0 (srate ind1)) (/ 20000.0 (srate ind1))))))))
 	  (hook-push graph-hook zoom-spectrum)
 	  (set! (transform-graph? ind1 0) #t)
 	  (let ((ind3 (open-sound "pistol.snd")))
@@ -35155,7 +35155,7 @@ EDITS: 1
       (set! (selection-framples ns 0) 3000)
       (show-selection)
       (if (not (equal? (list (left-sample ns 0) (right-sample ns 0)) '(1000 3999)))
-	  (snd-display ";show-selection 1.snd: ~A ~A" (left-sample ns 0) (right-sample ns 0)))
+	  (snd-display "show-selection 1.snd: ~A ~A" (left-sample ns 0) (right-sample ns 0)))
       (unselect-all)
       (let ((ns1 (open-sound "1234.snd")))
 	(set! (sync ns1) 0)
@@ -35175,17 +35175,17 @@ EDITS: 1
 		      (memv (right-sample ns1 0) '(39999 39998))
 		      (eqv? (left-sample ns1 1) 10000)
 		      (memv (right-sample ns1 1) '(39999 39998))))
-	    (snd-display ";show-selection 1234.snd: ~A" (list (left-sample ns 0) (right-sample ns 0) 
+	    (snd-display "show-selection 1234.snd: ~A" (list (left-sample ns 0) (right-sample ns 0) 
 							      (left-sample ns1 0) (right-sample ns1 0) 
 							      (left-sample ns1 1) (right-sample ns1 1))))
 	(close-sound ns1)
 	(close-sound ns)))
     
     (let ((pe (make-power-env '(0 0 32.0 1 1 32.0 2 0 0.0) :duration .1)))
-      (if (not (penv? pe)) (snd-display ";penv? ~A" pe))
-      (let ((x (power-env pe))) (if (fneq x 0.0) (snd-display ";power-env start: ~A" x)))
-      (if (> (abs (- (pe 'current-pass) 2203)) 2) (snd-display ";power-env pass: ~A" (pe 'current-pass))) ; 4410/2 - 1 because x1=2
-      (if (not (= (pe 'current-env) 0)) (snd-display ";power-env seg: ~A" (pe 'current-env)))
+      (if (not (penv? pe)) (snd-display "penv? ~A" pe))
+      (let ((x (power-env pe))) (if (fneq x 0.0) (snd-display "power-env start: ~A" x)))
+      (if (> (abs (- (pe 'current-pass) 2203)) 2) (snd-display "power-env pass: ~A" (pe 'current-pass))) ; 4410/2 - 1 because x1=2
+      (if (not (= (pe 'current-env) 0)) (snd-display "power-env seg: ~A" (pe 'current-env)))
       )
     
     (let-temporarily ((*clm-srate* 22050))
@@ -35202,7 +35202,7 @@ EDITS: 1
 				 (float-vector 0.000 0.008 0.019 0.032 0.049 0.070 0.097 0.130 0.173 0.226 0.293 
 					       0.377 0.484 0.618 0.787 1.000 0.992 0.981 0.968 0.951 0.930 0.903 
 					       0.870 0.828 0.774 0.707 0.623 0.516 0.382 0.213 0.000 0.000 0.000))))
-	      (snd-display ";power-env: ~A" (channel->float-vector))))
+	      (snd-display "power-env: ~A" (channel->float-vector))))
 	(map-channel (lambda (y) 1.0))
 	(let ((pe (make-power-env '(0 0 1.0  1 1 0.0  2 0 1  3 0 1) :duration (/ 34.0 22050.0))))
 	  (map-channel (lambda (y) (* y (power-env pe))))
@@ -35210,7 +35210,7 @@ EDITS: 1
 			    (float-vector 0.000 0.100 0.200 0.300 0.400 0.500 0.600 0.700 0.800 0.900 1.000 
 					  1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 0.000 0.000 
 					  0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	      (snd-display ";power-env 0 and 1: ~A" (channel->float-vector))))
+	      (snd-display "power-env 0 and 1: ~A" (channel->float-vector))))
 	(map-channel (lambda (y) 1.0))
 	(let ((pe (make-power-env '(0 0 .01 1 1 1) :duration (/ 34.0 22050.0))))
 	  (map-channel (lambda (y) (* y (power-env pe))))
@@ -35222,7 +35222,7 @@ EDITS: 1
 				 (float-vector 0.000 0.135 0.253 0.354 0.442 0.518 0.584 0.641 0.691 0.733 0.771 
 					       0.803 0.830 0.855 0.875 0.893 0.909 0.923 0.934 0.945 0.953 0.961 
 					       0.968 0.973 0.978 0.982 0.986 0.987 0.990 0.992 0.995 0.997 0.998))))
-	      (snd-display ";power-env .01: ~A" (channel->float-vector))))
+	      (snd-display "power-env .01: ~A" (channel->float-vector))))
 	(clean-up-sound ind)))
     
     (let ((ind (new-sound "tmp.snd" 1 22050 mus-ldouble mus-next :size 50)))
@@ -35230,22 +35230,22 @@ EDITS: 1
       (filter-channel (float-vector .5 1.0 .5) 3)
       (let ((data (channel->float-vector 0 10)))
 	(if (not (mus-arrays-equal? data (float-vector 0.000 0.000 0.000 0.500 1.000 0.500 0.000 0.000 0.000 0.000)))
-	    (snd-display ";filter (sym 3): ~A" data)))
+	    (snd-display "filter (sym 3): ~A" data)))
       (undo)
       (filter-channel (float-vector .5 1.0 .25) 3)
       (let ((data (channel->float-vector 0 10)))
 	(if (not (mus-arrays-equal? data (float-vector 0.000 0.000 0.000 0.500 1.000 0.250 0.000 0.000 0.000 0.000)))
-	    (snd-display ";filter (3): ~A" data)))
+	    (snd-display "filter (3): ~A" data)))
       (undo)
       (filter-channel (float-vector .5 1.0 1.0 .5) 4)
       (let ((data (channel->float-vector 0 10)))
 	(if (not (mus-arrays-equal? data (float-vector 0.000 0.000 0.000 0.500 1.000 1.000 0.500 0.000 0.000 0.000)))
-	    (snd-display ";filter (sym 4): ~A" data)))
+	    (snd-display "filter (sym 4): ~A" data)))
       (undo)
       (filter-channel (float-vector .5 1.0 1.0 .25) 4)
       (let ((data (channel->float-vector 0 10)))
 	(if (not (mus-arrays-equal? data (float-vector 0.000 0.000 0.000 0.500 1.000 1.000 0.250 0.000 0.000 0.000)))
-	    (snd-display ";filter (4): ~A" data)))
+	    (snd-display "filter (4): ~A" data)))
       (undo)
       (close-sound ind))
     
@@ -35253,11 +35253,11 @@ EDITS: 1
     (set! (sample 10) 0.5)
     (filter-sound (float-vector 1.0 0.0 1.0) 3)
     (if (not (mus-arrays-equal? (channel->float-vector 5 10) (float-vector 0.000 0.000 0.000 0.000 0.000 0.500 0.000 0.500 0.000 0.000)))
-	(snd-display ";filter-sound 1 0 1: ~A" (channel->float-vector 5 10)))
+	(snd-display "filter-sound 1 0 1: ~A" (channel->float-vector 5 10)))
     (undo)
     (filter-channel (float-vector 1.0 0.0 1.0) 3)
     (if (not (mus-arrays-equal? (channel->float-vector 5 10) (float-vector 0.000 0.000 0.000 0.000 0.000 0.500 0.000 0.500 0.000 0.000)))
-	(snd-display ";filter-channel (v) 1 0 1: ~A" (channel->float-vector 5 10)))
+	(snd-display "filter-channel (v) 1 0 1: ~A" (channel->float-vector 5 10)))
     (undo)
     (filter-sound '(0 1 1 1) 100)
     (let ((coeffs (make-fir-coeffs 100 (make-float-vector 100 0.5)))
@@ -35266,58 +35266,58 @@ EDITS: 1
       (do ((i 0 (+ i 1)))
 	  ((or (not happy) (= i 100)))
 	(when (fneq (data i) (coeffs i))
-	  (snd-display ";coeffs '(0 1 1 1): ~A ~A ~A" i (coeffs i) (data i))
+	  (snd-display "coeffs '(0 1 1 1): ~A ~A ~A" i (coeffs i) (data i))
 	  (set! happy #f))))
     (undo)
     (filter-sound '(0 1 1 1) 1000)
     (if (not (mus-arrays-equal? (channel->float-vector 5 10) (float-vector 0.000 0.000 0.000 0.000 0.000 0.500 0.000 0.000 0.000 0.000)))
-	(snd-display ";filter-sound 1 (1000): ~A" (channel->float-vector 5 10)))
+	(snd-display "filter-sound 1 (1000): ~A" (channel->float-vector 5 10)))
     (undo)
     (make-selection 5 15)
     (filter-selection '(0 1 1 1) 100)
     (if (not (member (edit-fragment 2) 
 		     '(("filter-selection '(0.000 1.000 1.000 1.000) 100" "set" 5 11)
 		       ("filter-selection '(0.000 1.000 1.000 1.000) 100" "set" 5 111))))
-	(snd-display ";filter-selection truncated: ~S" (edit-fragment 2)))
+	(snd-display "filter-selection truncated: ~S" (edit-fragment 2)))
     (undo)
     (filter-selection '(0 1 1 1) 100 #f)  
     (if (not (equal? (edit-fragment 2) '("filter-selection '(0.000 1.000 1.000 1.000) 100" "set" 5 111)))
-	(snd-display ";filter-selection not truncated: ~S" (edit-fragment 2)))
+	(snd-display "filter-selection not truncated: ~S" (edit-fragment 2)))
     (if (not (mus-arrays-equal? (channel->float-vector 50 10) (float-vector -0.016 0.018 -0.021 0.024 -0.029 0.035 -0.045 0.064 -0.106 0.318)))
-	(snd-display ";filter-selection no trunc: ~A" (channel->float-vector 50 10)))
+	(snd-display "filter-selection no trunc: ~A" (channel->float-vector 50 10)))
     (undo)
     (filter-selection '(0 1 1 1) 1024 #t)
     (if (not (equal? (edit-fragment 2) '("filter-selection '(0.000 1.000 1.000 1.000) 1024" "set" 5 11)))
-	(snd-display ";filter-selection truncated (1000): ~S" (edit-fragment 2)))
-    (if (fneq (maxamp) 0.0) (snd-display ";filter-selection 1000 untrunc? ~A" (maxamp)))
+	(snd-display "filter-selection truncated (1000): ~S" (edit-fragment 2)))
+    (if (fneq (maxamp) 0.0) (snd-display "filter-selection 1000 untrunc? ~A" (maxamp)))
     (undo)
     (filter-selection '(0 1 1 1) 1024 #f)
     (if (not (equal? (edit-fragment 2) '("filter-selection '(0.000 1.000 1.000 1.000) 1024" "set" 5 1035)))
-	(snd-display ";filter-selection not truncated (1000): ~S" (edit-fragment 2)))
-    (if (fneq (maxamp) 0.318) (snd-display ";filter-selection 1000 no trunc? ~A" (maxamp)))
+	(snd-display "filter-selection not truncated (1000): ~S" (edit-fragment 2)))
+    (if (fneq (maxamp) 0.318) (snd-display "filter-selection 1000 no trunc? ~A" (maxamp)))
     (if (not (mus-arrays-equal? (channel->float-vector 517 10) (float-vector 0.035 -0.045 0.064 -0.106 0.318 0.318 -0.106 0.064 -0.045 0.035)))
-	(snd-display ";filter-selection 1000 no trunc: ~A" (channel->float-vector 505 10)))
+	(snd-display "filter-selection 1000 no trunc: ~A" (channel->float-vector 505 10)))
     
     (undo)
     (filter-channel '(0 1 1 1) 10)
     (if (not (mus-arrays-equal? (channel->float-vector 10 10) (float-vector 0.008 -0.025 0.050 -0.098 0.316 0.316 -0.098 0.050 -0.025 0.008)))
-	(snd-display ";filter-channel 10: ~A" (channel->float-vector 10 10)))
+	(snd-display "filter-channel 10: ~A" (channel->float-vector 10 10)))
     (undo)
     (filter-channel '(0 1 1 1) 1000)
     (if (not (mus-arrays-equal? (channel->float-vector 5 10) (float-vector 0.000 0.000 0.000 0.000 0.000 0.500 0.000 0.000 0.000 0.000)))
-	(snd-display ";filter-channel 1 (1000): ~A" (channel->float-vector 5 10)))
+	(snd-display "filter-channel 1 (1000): ~A" (channel->float-vector 5 10)))
     (undo)
     (filter-channel '(0 1 1 0) 10)
     (if (not (mus-arrays-equal? (channel->float-vector 0 30) (float-vector 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
 								0.005 0.010 0.006 0.038 0.192 0.192 0.038 0.006 0.010 0.005
 								0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	(snd-display ";filter-channel lp: ~A ~A ~A" (channel->float-vector 0 10) (channel->float-vector 10 10) (channel->float-vector 20 10)))
+	(snd-display "filter-channel lp: ~A ~A ~A" (channel->float-vector 0 10) (channel->float-vector 10 10) (channel->float-vector 20 10)))
     (undo)
     (filter-channel '(0 1 1 0) 10 0 20 #f #f #f #f)
     (if (not (mus-arrays-equal? (channel->float-vector 0 30) (float-vector 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
 								0.005 0.010 0.006 0.038 0.192 0.192 0.038 0.006 0.010 0.005
 								0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000)))
-	(snd-display ";filter-channel lp no trunc: ~A ~A ~A" (channel->float-vector 0 10) (channel->float-vector 10 10) (channel->float-vector 20 10)))
+	(snd-display "filter-channel lp no trunc: ~A ~A ~A" (channel->float-vector 0 10) (channel->float-vector 10 10) (channel->float-vector 20 10)))
     (undo)
     (close-sound)
     
@@ -35327,45 +35327,45 @@ EDITS: 1
       (set! (sync ind) 1)
       (filter-sound (float-vector 1.0 0.0 1.0) 3)
       (if (not (mus-arrays-equal? (channel->float-vector 5 10 ind 0) (float-vector 0.000 0.000 0.000 0.000 0.000 0.500 0.000 0.500 0.000 0.000)))
-	  (snd-display ";(2) filter-sound 1 0 1: ~A" (channel->float-vector 5 10)))
+	  (snd-display "(2) filter-sound 1 0 1: ~A" (channel->float-vector 5 10)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 10 ind 1) (float-vector 0.000 0.000 0.000 0.000 0.000 -0.500 0.000 -0.500 0.000 0.000)))
-	  (snd-display ";(2) filter-sound 1 0 2: ~A" (channel->float-vector 0 10 ind 1)))
+	  (snd-display "(2) filter-sound 1 0 2: ~A" (channel->float-vector 0 10 ind 1)))
       (undo)
       (filter-sound '(0 1 1 1) 1000)
       (if (not (mus-arrays-equal? (channel->float-vector 5 10 ind 0) (float-vector 0.000 0.000 0.000 0.000 0.000 0.500 0.000 0.000 0.000 0.000)))
-	  (snd-display ";(2) filter-sound 1 (1000): ~A" (channel->float-vector 5 10)))
+	  (snd-display "(2) filter-sound 1 (1000): ~A" (channel->float-vector 5 10)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 10 ind 1) (float-vector 0.000 0.000 0.000 0.000 0.000 -0.500 0.000 0.000 0.000 0.000)))
-	  (snd-display ";(2) filter-sound 2 (1000): ~A" (channel->float-vector 0 10)))
+	  (snd-display "(2) filter-sound 2 (1000): ~A" (channel->float-vector 0 10)))
       (undo)
       (make-selection 0 20)
       (filter-selection (float-vector 1.0 0.0 1.0) 3)
       (if (not (mus-arrays-equal? (channel->float-vector 5 10 ind 0) (float-vector 0.000 0.000 0.000 0.000 0.000 0.500 0.000 0.500 0.000 0.000)))
-	  (snd-display ";(2) filter-selection 1 0 1: ~A" (channel->float-vector 5 10)))
+	  (snd-display "(2) filter-selection 1 0 1: ~A" (channel->float-vector 5 10)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 10 ind 1) (float-vector 0.000 0.000 0.000 0.000 0.000 -0.500 0.000 -0.500 0.000 0.000)))
-	  (snd-display ";(2) filter-selection 1 0 2: ~A" (channel->float-vector 0 10 ind 1)))
+	  (snd-display "(2) filter-selection 1 0 2: ~A" (channel->float-vector 0 10 ind 1)))
       (undo)
       (set! (sync ind) 0)
       (filter-selection (float-vector 1.0 0.0 1.0) 3)
       (if (not (mus-arrays-equal? (channel->float-vector 5 10 ind 0) (float-vector 0.000 0.000 0.000 0.000 0.000 0.500 0.000 0.500 0.000 0.000)))
-	  (snd-display ";(2) filter-selection 1 0 1 (no sync): ~A" (channel->float-vector 5 10)))
+	  (snd-display "(2) filter-selection 1 0 1 (no sync): ~A" (channel->float-vector 5 10)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 10 ind 1) (float-vector 0.000 0.000 0.000 0.000 0.000 -0.500 0.000 -0.500 0.000 0.000)))
-	  (snd-display ";(2) filter-selection 1 0 2 (no sync): ~A" (channel->float-vector 0 10 ind 1)))
+	  (snd-display "(2) filter-selection 1 0 2 (no sync): ~A" (channel->float-vector 0 10 ind 1)))
       (undo 1 ind 0)
       (undo 1 ind 1)
-      (if (not (= (edit-position ind 0) 1)) (snd-display ";edpos filter-sel undo: ~A" (edit-position ind 0)))
-      (if (not (= (edit-position ind 1) 1)) (snd-display ";edpos filter-sel undo 1: ~A" (edit-position ind 1)))
+      (if (not (= (edit-position ind 0) 1)) (snd-display "edpos filter-sel undo: ~A" (edit-position ind 0)))
+      (if (not (= (edit-position ind 1) 1)) (snd-display "edpos filter-sel undo 1: ~A" (edit-position ind 1)))
       (filter-sound (float-vector 1.0 0.0 1.0) 3)
       (if (not (mus-arrays-equal? (channel->float-vector 5 10 ind 0) (float-vector 0.000 0.000 0.000 0.000 0.000 0.500 0.000 0.500 0.000 0.000)))
-	  (snd-display ";(2) filter-sound 1 0 1 no sync: ~A" (channel->float-vector 5 10)))
+	  (snd-display "(2) filter-sound 1 0 1 no sync: ~A" (channel->float-vector 5 10)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 10 ind 1) (float-vector 0.000 0.000 0.000 0.000 0.000 -0.500 0.000 0.000 0.000 0.000)))
-	  (snd-display ";(2) filter-sound 1 0 2 no sync: ~A" (channel->float-vector 0 10 ind 1)))
+	  (snd-display "(2) filter-sound 1 0 2 no sync: ~A" (channel->float-vector 0 10 ind 1)))
       (undo 1 ind 0)
       (filter-channel '(0 1 1 0) 10 #f #f ind 1)
       (if (not (mus-arrays-equal? (channel->float-vector 0 30 ind 1) (float-vector 0.000 0.000 0.000 0.000 0.000; 0.000 0.000 0.000 0.000 0.000
 									-0.005 -0.010 -0.006 -0.038 -0.192 -0.192 -0.038 -0.006 -0.010 -0.005
 									0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
 									0 0 0 0 0)))
-	  (snd-display ";filter-channel lp: ~A ~A ~A" (channel->float-vector 0 10 ind 1) (channel->float-vector 10 10 ind 1) (channel->float-vector 20 10 ind 1)))
+	  (snd-display "filter-channel lp: ~A ~A ~A" (channel->float-vector 0 10 ind 1) (channel->float-vector 10 10 ind 1) (channel->float-vector 20 10 ind 1)))
       (undo 1 ind 1)
       (close-sound ind))
     
@@ -35373,15 +35373,15 @@ EDITS: 1
       (set! (sample 10) 0.5)
       (set! (sample 20) -0.5)
       (scale-to 1.0)
-      (if (fneq (sample 10) .999) (snd-display ";scale-to 1.0 short (10): ~A" (sample 10)))
-      (if (fneq (sample 20) -.999) (snd-display ";scale-to 1.0 short (20): ~A" (sample 10)))
+      (if (fneq (sample 10) .999) (snd-display "scale-to 1.0 short (10): ~A" (sample 10)))
+      (if (fneq (sample 20) -.999) (snd-display "scale-to 1.0 short (20): ~A" (sample 10)))
       (close-sound ind))
     (let ((ind (new-sound "tmp.snd" 1 22050 mus-byte mus-next :size 100)))
       (set! (sample 10) 0.5)
       (set! (sample 20) -0.5)
       (scale-to 1.0)
-      (if (fneq (sample 10) .992) (snd-display ";scale-to 1.0 byte (10): ~A" (sample 10)))
-      (if (fneq (sample 20) -.992) (snd-display ";scale-to 1.0 byte (20): ~A" (sample 10)))
+      (if (fneq (sample 10) .992) (snd-display "scale-to 1.0 byte (10): ~A" (sample 10)))
+      (if (fneq (sample 20) -.992) (snd-display "scale-to 1.0 byte (20): ~A" (sample 10)))
       (close-sound ind))
     
     (when with-gui
@@ -35415,46 +35415,46 @@ EDITS: 1
 			 (old-2 (func ind-2))
 			 (caller (if channel "channel" "sound")))
 		    (if (not (eq-func old-val old-default))
-			(snd-display ";~A sound-func: no arg: ~A, #f: ~A" name old-val old-default))
+			(snd-display "~A sound-func: no arg: ~A, #f: ~A" name old-val old-default))
 		    (if (not (or (leq-func old-vals (list old-1 old-2))
 				 (leq-func old-vals (list old-2 old-1))))
-			(snd-display ";~A sound-func #t: ~A, sep: ~A" name old-vals (list old-1 old-2)))
+			(snd-display "~A sound-func #t: ~A, sep: ~A" name old-vals (list old-1 old-2)))
 		    (when settable
 		      (let* ((sel-snd (selected-sound))
 			     (unsel-snd (if (equal? sel-snd ind-1) ind-2 ind-1)))
 			(set! (func) new-val)
 			(if (not (eq-func (func) new-val))
-			    (snd-display ";~A set no arg: ~A ~A" name (func) new-val))
+			    (snd-display "~A set no arg: ~A ~A" name (func) new-val))
 			(if (not (eq-func (func) (func sel-snd)))
-			    (snd-display ";~A set no arg sel: ~A ~A" name (func) (func sel-snd)))
+			    (snd-display "~A set no arg sel: ~A ~A" name (func) (func sel-snd)))
 			(if (not (eq? (not global) (not (eq-func (func) (func unsel-snd)))))
-			    (snd-display ";~A set no arg unsel: ~A ~A (sel: ~A)" name (func) (func unsel-snd) (func sel-snd)))
+			    (snd-display "~A set no arg unsel: ~A ~A (sel: ~A)" name (func) (func unsel-snd) (func sel-snd)))
 			(if (not (or (leq-func (func #t) (list (func sel-snd) (func unsel-snd)))
 				     (leq-func (func #t) (list (func unsel-snd) (func sel-snd)))))
-			    (snd-display ";~A ~A-func #t set: ~A, sep: ~A" name caller (func #t) (list (func sel-snd) (func unsel-snd)))))
+			    (snd-display "~A ~A-func #t set: ~A, sep: ~A" name caller (func #t) (list (func sel-snd) (func unsel-snd)))))
 		      (set! (func) old-val)
 		      (set! (func ind-1) new-val)
 		      (if (not (eq-func (func ind-1) new-val))
-			  (snd-display ";~A set arg: ~A ~A" name (func ind-1) new-val))
+			  (snd-display "~A set arg: ~A ~A" name (func ind-1) new-val))
 		      (if (eq-func (func ind-2) new-val)
-			  (snd-display ";~A set arg (2): ~A ~A" name (func ind-2) new-val))
+			  (snd-display "~A set arg (2): ~A ~A" name (func ind-2) new-val))
 		      (if (not (or (leq-func (func #t) (list (func ind-1) (func ind-2)))
 				   (leq-func (func #t) (list (func ind-2) (func ind-1)))))
-			  (snd-display ";~A ~A-func arg set: ~A, sep: ~A" name caller (func #t) (list (func ind-1) (func ind-2))))
+			  (snd-display "~A ~A-func arg set: ~A, sep: ~A" name caller (func #t) (list (func ind-1) (func ind-2))))
 		      (set! (func ind-1) old-1)
 		      (set! (func #t) new-val)
 		      (if (not (leq-func (func #t) (list new-val new-val)))
-			  (snd-display ";~A ~A-func arg set #t: ~A, sep: ~A" name caller (func #t) (list new-val new-val)))
+			  (snd-display "~A ~A-func arg set #t: ~A, sep: ~A" name caller (func #t) (list new-val new-val)))
 		      (if (not (eq-func (func ind-1) new-val))
-			  (snd-display ";~A set arg #t: ~A ~A" name (func ind-1) new-val))
+			  (snd-display "~A set arg #t: ~A ~A" name (func ind-1) new-val))
 		      (if (not (eq-func (func ind-2) new-val))
-			  (snd-display ";~A set arg #t (2): ~A ~A" name (func ind-2) new-val))
+			  (snd-display "~A set arg #t (2): ~A ~A" name (func ind-2) new-val))
 		      (set! (func ind-1) old-1)
 		      (set! (func ind-2) old-2)
 		      (if (not (eq-func (func ind-1) old-1))
-			  (snd-display ";~A set arg #t old: ~A ~A" name (func ind-1) old-1))
+			  (snd-display "~A set arg #t old: ~A ~A" name (func ind-1) old-1))
 		      (if (not (eq-func (func ind-2) old-2))
-			  (snd-display ";~A set arg #t (2): ~A ~A" name (func ind-2) old-2))))))
+			  (snd-display "~A set arg #t (2): ~A ~A" name (func ind-2) old-2))))))
 	       (test-sound-func (lambda (func name ind-1 ind-2 new-val eq-func leq-func settable)
 				  (test-sound-func-1 func name ind-1 ind-2 new-val eq-func leq-func settable #f #f))))
 	
@@ -35498,7 +35498,7 @@ EDITS: 1
 	  (restore-controls #t)
 	  (reset-controls #t)
 	  (close-sound #t)
-	  (if (not (null? (sounds))) (snd-display ";sounds after close-sound #t: ~A" (sounds)))
+	  (if (not (null? (sounds))) (snd-display "sounds after close-sound #t: ~A" (sounds)))
 	  
 	  ;; snd chn cases
 	  (letrec ((test-channel-func-1 
@@ -35509,29 +35509,29 @@ EDITS: 1
 			    (old-1-all (func ind-1 #t))
 			    (old-2-all (func ind-2 #t))
 			    (old-all-all (func #t #t)))
-			(if (not (eq-func old-1-0 (car old-1-all))) (snd-display ";~A channel-func old 1/#t: ~A ~A" name old-1-0 old-1-all))
-			(if (not (eq-func old-2-0 (car old-2-all))) (snd-display ";~A channel-func old 2/#t: ~A ~A" name old-2-0 old-2-all))
-			(if (not (eq-func old-2-1 (cadr old-2-all))) (snd-display ";~A channel-func old 2-2/#t: ~A ~A" name old-2-1 old-2-all))
-			(if (not (leq-func old-1-all (list old-1-0))) (snd-display ";~A channel-func #t list: ~A ~A" name old-1-all old-1-0))
+			(if (not (eq-func old-1-0 (car old-1-all))) (snd-display "~A channel-func old 1/#t: ~A ~A" name old-1-0 old-1-all))
+			(if (not (eq-func old-2-0 (car old-2-all))) (snd-display "~A channel-func old 2/#t: ~A ~A" name old-2-0 old-2-all))
+			(if (not (eq-func old-2-1 (cadr old-2-all))) (snd-display "~A channel-func old 2-2/#t: ~A ~A" name old-2-1 old-2-all))
+			(if (not (leq-func old-1-all (list old-1-0))) (snd-display "~A channel-func #t list: ~A ~A" name old-1-all old-1-0))
 			(if (not (leq-func old-2-all (list old-2-0 old-2-1))) 
-			    (snd-display ";~A channel-func (2) #t list: ~A ~A ~A" name old-2-all old-2-0 old-2-1))
+			    (snd-display "~A channel-func (2) #t list: ~A ~A ~A" name old-2-all old-2-0 old-2-1))
 			(if (not (and (or (leq-func (car old-all-all) old-1-all)
 					  (leq-func (car old-all-all) old-2-all))
 				      (or (leq-func (cadr old-all-all) old-1-all)
 					  (leq-func (cadr old-all-all) old-2-all))))
-			    (snd-display ";~A channel-func #t #t: ~A ~A ~A" name old-all-all old-1-all old-2-all))
+			    (snd-display "~A channel-func #t #t: ~A ~A ~A" name old-all-all old-1-all old-2-all))
 			(when settable
 			  (set! (func ind-1 0) new-val)
-			  (if (not (eq-func (func ind-1 0) new-val)) (snd-display ";~A set channel-func: ~A ~A" name (func ind-1 0) new-val))
-			  (if (eq-func (func ind-2 0) new-val) (snd-display ";~A set 2 channel-func: ~A ~A" name (func ind-2 0) new-val))
+			  (if (not (eq-func (func ind-1 0) new-val)) (snd-display "~A set channel-func: ~A ~A" name (func ind-1 0) new-val))
+			  (if (eq-func (func ind-2 0) new-val) (snd-display "~A set 2 channel-func: ~A ~A" name (func ind-2 0) new-val))
 			  (set! (func ind-1 0) old-1-0)
 			  (set! (func ind-2 1) new-val)
-			  (if (eq-func (func ind-1 0) new-val) (snd-display ";~A set (2) channel-func: ~A ~A" name (func ind-1 0) new-val))
-			  (if (not (eq-func (func ind-2 1) new-val)) (snd-display ";~A set (2) 2 channel-func: ~A ~A" name (func ind-2 0) new-val))
+			  (if (eq-func (func ind-1 0) new-val) (snd-display "~A set (2) channel-func: ~A ~A" name (func ind-1 0) new-val))
+			  (if (not (eq-func (func ind-2 1) new-val)) (snd-display "~A set (2) 2 channel-func: ~A ~A" name (func ind-2 0) new-val))
 			  (set! (func ind-2 0) new-val)
 			  (set! (func ind-2 #t) old-2-0)
-			  (if (not (eq-func (func ind-2 0) old-2-0)) (snd-display ";~A set (#t 0) 2 channel-func: ~A ~A" name (func ind-2 0) old-2-0))
-			  (if (not (eq-func (func ind-2 1) old-2-0)) (snd-display ";~A set (#t 1) 2 channel-func: ~A ~A" name (func ind-2 1) old-2-0))
+			  (if (not (eq-func (func ind-2 0) old-2-0)) (snd-display "~A set (#t 0) 2 channel-func: ~A ~A" name (func ind-2 0) old-2-0))
+			  (if (not (eq-func (func ind-2 1) old-2-0)) (snd-display "~A set (#t 1) 2 channel-func: ~A ~A" name (func ind-2 1) old-2-0))
 			  (set! (func ind-2 0) old-2-0)
 			  (set! (func ind-2 1) old-2-1))
 			)))
@@ -35612,7 +35612,7 @@ EDITS: 1
 	    
 	    (close-sound #f)
 	    (close-sound #f)
-	    (if (not (null? (sounds))) (snd-display ";sounds after close-sound #t: ~A" (sounds)))))
+	    (if (not (null? (sounds))) (snd-display "sounds after close-sound #t: ~A" (sounds)))))
 	
 	(let ((test-sound-func-2
 	       (lambda (func name ind-1 ind-2 new-val eq-func leq-func)
@@ -35624,43 +35624,43 @@ EDITS: 1
 			  (unsel-snd (if (equal? sel-snd ind-1) ind-2 ind-1)))
 		     (if (not (or (leq-func old-vals (list old-1 old-2))
 				  (leq-func old-vals (list old-2 old-1))))
-			 (snd-display ";~A sound-func #t: ~A, sep: ~A" name old-vals (list old-1 old-2)))
+			 (snd-display "~A sound-func #t: ~A, sep: ~A" name old-vals (list old-1 old-2)))
 		     (set! (func) new-val)
 		     (if (not (eq-func (func) new-val))
-			 (snd-display ";~A global set no arg: ~A ~A" name (func) new-val))
+			 (snd-display "~A global set no arg: ~A ~A" name (func) new-val))
 		     (if (not (eq-func (func) (func sel-snd)))
-			 (snd-display ";~A global set no arg sel: ~A ~A" name (func) (func sel-snd)))
+			 (snd-display "~A global set no arg sel: ~A ~A" name (func) (func sel-snd)))
 		     (if (not (eq-func (func) (func unsel-snd)))
-			 (snd-display ";~A set global no arg unsel: ~A ~A (sel: ~A)" name (func) (func unsel-snd) (func sel-snd)))
+			 (snd-display "~A set global no arg unsel: ~A ~A (sel: ~A)" name (func) (func unsel-snd) (func sel-snd)))
 		     (if (not (or (leq-func (func #t) (list (func sel-snd) (func unsel-snd)))
 				  (leq-func (func #t) (list (func unsel-snd) (func sel-snd)))))
-			 (snd-display ";~A func #t set: ~A, sep: ~A" name (func #t) (list (func sel-snd) (func unsel-snd)))))
+			 (snd-display "~A func #t set: ~A, sep: ~A" name (func #t) (list (func sel-snd) (func unsel-snd)))))
 		   
 		   (set! (func) old-global-val)
 		   (set! (func ind-1) new-val)
 		   (if (not (eq-func (func ind-1) new-val))
-		       (snd-display ";~A set arg: ~A ~A" name (func ind-1) new-val))
+		       (snd-display "~A set arg: ~A ~A" name (func ind-1) new-val))
 		   (if (eq-func (func ind-2) new-val)
-		       (snd-display ";~A set arg (2): ~A ~A" name (func ind-2) new-val))
+		       (snd-display "~A set arg (2): ~A ~A" name (func ind-2) new-val))
 		   (if (not (or (leq-func (func #t) (list (func ind-1) (func ind-2)))
 				(leq-func (func #t) (list (func ind-2) (func ind-1)))))
-		       (snd-display ";~A func arg set: ~A, sep: ~A" name (func #t) (list (func ind-1) (func ind-2))))
+		       (snd-display "~A func arg set: ~A, sep: ~A" name (func #t) (list (func ind-1) (func ind-2))))
 		   (set! (func ind-1) old-1)
 		   (set! (func #t) new-val)
 		   (if (not (leq-func (func #t) (list new-val new-val)))
-		       (snd-display ";~A func arg set #t: ~A, sep: ~A" name (func #t) (list new-val new-val)))
+		       (snd-display "~A func arg set #t: ~A, sep: ~A" name (func #t) (list new-val new-val)))
 		   (if (not (eq-func (func ind-1) new-val))
-		       (snd-display ";~A set arg #t: ~A ~A" name (func ind-1) new-val))
+		       (snd-display "~A set arg #t: ~A ~A" name (func ind-1) new-val))
 		   (if (not (eq-func (func ind-2) new-val))
-		       (snd-display ";~A set arg #t (2): ~A ~A" name (func ind-2) new-val))
+		       (snd-display "~A set arg #t (2): ~A ~A" name (func ind-2) new-val))
 		   (if (eq-func (func) new-val)
-		       (snd-display ";~A overwrote global: ~A ~A" name (func) new-val))
+		       (snd-display "~A overwrote global: ~A ~A" name (func) new-val))
 		   (set! (func ind-1) old-1)
 		   (set! (func ind-2) old-2)
 		   (if (not (eq-func (func ind-1) old-1))
-		       (snd-display ";~A set arg #t old: ~A ~A" name (func ind-1) old-1))
+		       (snd-display "~A set arg #t old: ~A ~A" name (func ind-1) old-1))
 		   (if (not (eq-func (func ind-2) old-2))
-		       (snd-display ";~A set arg #t (2): ~A ~A" name (func ind-2) old-2))))))
+		       (snd-display "~A set arg #t (2): ~A ~A" name (func ind-2) old-2))))))
 	  
 	  (let ((ind-1 (new-sound "test-1.snd" 1 22050 mus-ldouble mus-next "mono testing" 100))
 		(ind-2 (new-sound "test-2.snd" 2 44100 mus-bshort mus-aifc "stereo testing" 300)))
@@ -35711,21 +35711,21 @@ EDITS: 1
       (if (not (and (transform-graph? ind 0)
 		    (show-transform-peaks ind 0)
 		    (show-y-zero ind 0)))
-	  (snd-display ";remember-sound-state: ~A ~A ~A" (transform-graph? ind 0) (show-transform-peaks ind 0) (show-y-zero ind 0)))
+	  (snd-display "remember-sound-state: ~A ~A ~A" (transform-graph? ind 0) (show-transform-peaks ind 0) (show-y-zero ind 0)))
       (close-sound ind))
     (reset-all-hooks)
     (set! *remember-sound-state* #f)
     (if (file-exists? "remembered-oboe.snd.scm")
 	(delete-file "remembered-oboe.snd.scm"))
     
-    (map-sound-files (lambda (n) (if (> (mus-sound-duration n) 1000.0) (snd-display ";~A is pretty long! ~A" n (mus-sound-duration n)))))
+    (map-sound-files (lambda (n) (if (> (mus-sound-duration n) 1000.0) (snd-display "~A is pretty long! ~A" n (mus-sound-duration n)))))
     (if (string? sf-dir)
 	(map-sound-files 
 	 (lambda (n)
 	   (catch #t
 	     (lambda ()
 	       (if (> (mus-sound-duration (string-append sf-dir n)) 1000.0) 
-		   (snd-display ";~A is pretty long! ~A" 
+		   (snd-display "~A is pretty long! ~A" 
 				n 
 				(mus-sound-duration (string-append sf-dir n)))))
 	     (lambda args #f))
@@ -35738,77 +35738,77 @@ EDITS: 1
       (env-channel-with-base '(0 0 1 1) 1.0)
       (let ((data (channel->float-vector 0 20)))
 	(if (not (mus-arrays-equal? data (float-vector 0.0 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95)))
-	    (snd-display ";env-chan 1.0: ~A" data)))
+	    (snd-display "env-chan 1.0: ~A" data)))
       (undo)
       (env-channel-with-base '(0 0 1 1 2 1 3 0) 0.0)
       (let ((data (channel->float-vector 0 20)))
 	(if (not (mus-arrays-equal? data (float-vector 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0)))
-	    (snd-display ";env-chan 0.0: ~A" data)))
+	    (snd-display "env-chan 0.0: ~A" data)))
       (undo)
       (env-channel-with-base '(0 0 1 1) 100.0)
       (let ((data (channel->float-vector 0 20)))
 	(if (not (mus-arrays-equal? data (float-vector 0.0 0.003 0.006 0.010 0.015 0.022 0.030 0.041 0.054 0.070 0.091 0.117 0.150 0.191 0.244 0.309 0.392 0.496 0.627 0.792)))
-	    (snd-display ";env-chan 100.0: ~A" data)))
+	    (snd-display "env-chan 100.0: ~A" data)))
       (undo)
       (env-channel-with-base '(0 0 1 1) 0.01)
       (let ((data (channel->float-vector 0 20)))
 	(if (not (mus-arrays-equal? data (float-vector 0.0 0.208 0.373 0.504 0.608 0.691 0.756 0.809 0.850 0.883 0.909 0.930 0.946 0.959 0.970 0.978 0.985 0.990 0.994 0.997)))
-	    (snd-display ";env-chan 0.01: ~A" data)))
+	    (snd-display "env-chan 0.01: ~A" data)))
       (undo)
       
       (env-channel-with-base '(0 0 1 1) 1.0 5 10)
       (let ((data (channel->float-vector 0 20)))
 	(if (not (mus-arrays-equal? data (float-vector 1.0 1.0 1.0 1.0 1.0 0.0 0.111 0.222 0.333 0.444 0.556 0.667 0.778 0.889 1.0 1.0 1.0 1.0 1.0 1.0)))
-	    (snd-display ";env-chan 1.0 seg: ~A" data)))
+	    (snd-display "env-chan 1.0 seg: ~A" data)))
       (undo)
       (env-channel-with-base '(0 0 1 1 2 1 3 0) 0.0 5 10)
       (let ((data (channel->float-vector 0 20)))
 	(if (not (mus-arrays-equal? data (float-vector 1.0 1.0 1.0 1.0 1.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0)))
-	    (snd-display ";env-chan 0.0 seg: ~A" data)))
+	    (snd-display "env-chan 0.0 seg: ~A" data)))
       (undo)
       (env-channel-with-base '(0 0 1 1) 100.0 5 10)
       (let ((data (channel->float-vector 0 20)))
 	(if (not (mus-arrays-equal? data (float-vector 1.0 1.0 1.0 1.0 1.0 0.0 0.007 0.018 0.037 0.068 0.120 0.208 0.353 0.595 1.0 1.0 1.0 1.0 1.0 1.0)))
-	    (snd-display ";env-chan 100.0 seg: ~A" data)))
+	    (snd-display "env-chan 100.0 seg: ~A" data)))
       (undo)
       (env-channel-with-base '(0 0 1 1) 0.01 5 10)
       (let ((data (channel->float-vector 0 20)))
 	(if (not (mus-arrays-equal? data (float-vector 1.0 1.0 1.0 1.0 1.0 0.0 0.405 0.647 0.792 0.880 0.932 0.963 0.982 0.993 1.0 1.0 1.0 1.0 1.0 1.0)))
-	    (snd-display ";env-chan 0.01 seg: ~A" data)))
+	    (snd-display "env-chan 0.01 seg: ~A" data)))
       (undo)
       (close-sound snd))
     
     (let ((ind2 (open-sound "oboe.snd")))
       (let ((ind1 (open-sound "now.snd")))
 	(let ((val (channel-mean ind1 0)))
-	  (if (fneq val 5.02560673308833e-5) (snd-display ";channel-mean: ~A" val)))
+	  (if (fneq val 5.02560673308833e-5) (snd-display "channel-mean: ~A" val)))
 	(let ((val (channel-total-energy ind1 0)))
-	  (if (fneq val 50.7153476262465) (snd-display ";channel-total-energy: ~A" val)))
+	  (if (fneq val 50.7153476262465) (snd-display "channel-total-energy: ~A" val)))
 	(let ((val (channel-average-power ind1 0)))
-	  (if (fneq val 0.00155078578803922) (snd-display ";channel-average-power: ~A" val)))
+	  (if (fneq val 0.00155078578803922) (snd-display "channel-average-power: ~A" val)))
 	(let ((val (channel-rms ind1 0)))
-	  (if (fneq val 0.039380017623653) (snd-display ";channel-rms: ~A" val)))
+	  (if (fneq val 0.039380017623653) (snd-display "channel-rms: ~A" val)))
 	(let ((val (channel-norm ind1 0)))
-	  (if (fneq val 7.12147088923675) (snd-display ";channel-norm: ~A" val)))
+	  (if (fneq val 7.12147088923675) (snd-display "channel-norm: ~A" val)))
 	(let ((val (channel-variance ind1 0)))
-	  (if (fneq val 50.7153476237207) (snd-display ";channel-variance: ~A" val)))
+	  (if (fneq val 50.7153476237207) (snd-display "channel-variance: ~A" val)))
 	(let ((val (channel-lp 2 ind1 0)))
-	  (if (fneq val 7.12147088923675) (snd-display ";channel-lp 2: ~A" val)))
+	  (if (fneq val 7.12147088923675) (snd-display "channel-lp 2: ~A" val)))
 	(let ((val (channel-lp 1 ind1 0)))
-	  (if (fneq val 775.966033935547) (snd-display ";channel-lp 1: ~A" val)))
+	  (if (fneq val 775.966033935547) (snd-display "channel-lp 1: ~A" val)))
 	(let ((val (channel2-inner-product ind1 0 ind2 0)))
-	  (if (fneq val 1.52892031334341) (snd-display ";channel2-inner-product: ~A" val)))
+	  (if (fneq val 1.52892031334341) (snd-display "channel2-inner-product: ~A" val)))
 	(let ((val (channel2-angle ind1 0 ind2 0)))
-	  (if (fneq val 1.55485084385627) (snd-display ";channel2-angle: ~A" val)))
+	  (if (fneq val 1.55485084385627) (snd-display "channel2-angle: ~A" val)))
 	(let ((val (channel2-orthogonal? ind1 0 ind2 0)))
-	  (if val (snd-display ";channel2-orthogonal: ~A" val)))
+	  (if val (snd-display "channel2-orthogonal: ~A" val)))
 	(let ((val (channel2-coefficient-of-projection ind1 0 ind2 0)))
-	  (if (fneq val 0.0301470932351876) (snd-display ";channel2-coefficient-of-projection: ~A" val)))
+	  (if (fneq val 0.0301470932351876) (snd-display "channel2-coefficient-of-projection: ~A" val)))
 	(close-sound ind1))
       (let ((ind1 (open-sound "oboe.snd")))
 	(scale-by .99 ind1 0)
 	(let ((dist (channel-distance ind1 0 ind2 0)))
-	  (if (fneq dist .1346) (snd-display ";channel-distance: ~A" dist)))
+	  (if (fneq dist .1346) (snd-display "channel-distance: ~A" dist)))
 	(close-sound ind1))
       (close-sound ind2))
     
@@ -35824,7 +35824,7 @@ EDITS: 1
 	  (if (not (and (= (chans ind) (mus-sound-chans loboe))
 			(= (srate ind) (mus-sound-srate loboe))
 			(= (framples ind) (mus-sound-framples loboe))))
-	      (snd-display ";copy oboe -> test seems to have failed? ~A ~A ~A"
+	      (snd-display "copy oboe -> test seems to have failed? ~A ~A ~A"
 			   (chans ind) (srate ind) (framples ind))
 	      (with-local-hook
 	       update-hook
@@ -35836,19 +35836,19 @@ EDITS: 1
 		     ((= i 10))
 		   (let ((v (channel->float-vector)))
 		     (if (not (float-vector? v))
-			 (snd-display ";channel->float-vector of oboe copy is null??")
+			 (snd-display "channel->float-vector of oboe copy is null??")
 			 (array->file ltest v fr sr chns)))
 		   (update-sound ind)
 		   (let ((mx1 (maxamp ind 0)))
 		     (if (fneq mx mx1)
-			 (snd-display ";update-sound looped maxamp: ~A ~A ~A ~A ~A (~A)" i ind (framples ind) mx1 mx (/ mx1 mx))))
-		   (if (not (= (chans ind) chns)) (snd-display ";update-sound looped chans: ~A ~A" chns (chans ind)))
-		   (if (not (= (srate ind) sr)) (snd-display ";update-sound looped srate: ~A ~A" sr (srate ind)))
-		   (if (not (= (framples ind) fr)) (snd-display ";update-sound looped framples: ~A ~A" fr (framples ind 0))))
+			 (snd-display "update-sound looped maxamp: ~A ~A ~A ~A ~A (~A)" i ind (framples ind) mx1 mx (/ mx1 mx))))
+		   (if (not (= (chans ind) chns)) (snd-display "update-sound looped chans: ~A ~A" chns (chans ind)))
+		   (if (not (= (srate ind) sr)) (snd-display "update-sound looped srate: ~A ~A" sr (srate ind)))
+		   (if (not (= (framples ind) fr)) (snd-display "update-sound looped framples: ~A ~A" fr (framples ind 0))))
 		 (let ((old-ind (open-sound "oboe.snd")))
 		   (let ((mxdiff (float-vector-peak (float-vector-subtract! (channel->float-vector 0 #f ind 0 0) (channel->float-vector 0 #f old-ind 0)))))
 		     (if (fneq mxdiff 0.0) 
-			 (snd-display ";update-sound looped overall max diff: ~A, sounds: ~A, ind: ~A, old-ind: ~A, rd: ~A" 
+			 (snd-display "update-sound looped overall max diff: ~A, sounds: ~A, ind: ~A, old-ind: ~A, rd: ~A" 
 				      mxdiff (sounds) ind old-ind home)))
 		   (close-sound old-ind)))))
 	  (close-sound ind))))
@@ -35864,7 +35864,7 @@ EDITS: 1
 	  (let ((d2 (samples 0 len ind 0)))
 	    (float-vector-subtract! d2 data)
 	    (let ((diff (float-vector-peak d2)))
-	      (if (fneq diff 0.0) (snd-display ";arr->file->array overall max diff: ~A" diff))))))
+	      (if (fneq diff 0.0) (snd-display "arr->file->array overall max diff: ~A" diff))))))
       
       ;; now clear sono bins if possible 
       (set! *colormap-size* 16)
@@ -35878,10 +35878,10 @@ EDITS: 1
       (set! *zoom-focus-style* (lambda (s c z x0 x1 range)
 				 0))
       (if (not (procedure? *zoom-focus-style*))
-	  (snd-display ";zoom-focus-style as func: ~A" *zoom-focus-style*))
+	  (snd-display "zoom-focus-style as func: ~A" *zoom-focus-style*))
       (set! *zoom-focus-style* zoom-focus-right)
       (if (not (= *zoom-focus-style* zoom-focus-right))
-	  (snd-display ";unset zoom-focus-style as func: ~A" *zoom-focus-style*))
+	  (snd-display "unset zoom-focus-style as func: ~A" *zoom-focus-style*))
       (close-sound ind))
     
     (if (file-exists? "test.snd") (delete-file "test.snd"))
@@ -35914,7 +35914,7 @@ EDITS: 1
 			(set! ctr (+ ctr 1))
 			;; if this happens it is almost certainly a problem with mus-sound-forget above
 			#f))
-	(if (fneq diff 0.0) (snd-display ";file->sample->file overall max diff: ~A" diff))
+	(if (fneq diff 0.0) (snd-display "file->sample->file overall max diff: ~A" diff))
 	(close-sound ind1)))
     
     (let ((ind (open-sound "1a.snd"))
@@ -35927,7 +35927,7 @@ EDITS: 1
 	   (if (and (fneq (/ (maxamp) mx) 2.0)
 		    (not (eq? name 'set-samples))
 		    (not (eq? name 'coroutines)))
-	       (snd-display ";silly scalers: ~A ~A" name (/ (maxamp) mx)))
+	       (snd-display "silly scalers: ~A ~A" name (/ (maxamp) mx)))
 	   (revert-sound)))
        (list
 	(list 'scale-by (lambda () (scale-by 2.0)))
@@ -35988,43 +35988,43 @@ EDITS: 1
 	  (data2 (file->floats "2a.snd")))
       (let ((ind1 (open-sound "1a.snd")))
 	(if (not (equal? data1 (channel->float-vector 0 #f ind1 0)))
-	    (snd-display ";file->floats 1a.snd")))
+	    (snd-display "file->floats 1a.snd")))
       (let ((ind2 (open-sound "2a.snd")))
 	(if (not (equal? data2 (channel->float-vector 0 #f ind2 0)))
-	    (snd-display ";file->floats 2a.snd")))
+	    (snd-display "file->floats 2a.snd")))
       (floats->file data1 "tmp.snd")
       (let ((ind3 (open-sound "tmp.snd")))
 	(if (not (equal? data1 (channel->float-vector 0 #f ind3 0)))
-	    (snd-display ";floats->file 1a"))
+	    (snd-display "floats->file 1a"))
 	(close-sound ind3))
       (mus-sound-forget "tmp.snd")
       (floats->file data2 "tmp.snd" 44100 "this is a comment"))
     (let ((ind3 (open-sound "tmp.snd")))
       (if (not (= (srate ind3) 44100))
-	  (snd-display ";floats->file srate: ~A" (srate ind3)))
+	  (snd-display "floats->file srate: ~A" (srate ind3)))
       (close-sound ind3))
     (mus-sound-forget "tmp.snd")
     (let ((tag (catch #t (lambda () (floats->file 32 "tmp.snd")) (lambda args (car args)))))
-      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";floats->file bad arg: ~A" tag)))
+      (if (not (eq? tag 'wrong-type-arg)) (snd-display "floats->file bad arg: ~A" tag)))
     
     (for-each close-sound (sounds))
     
     (let ((ind (new-sound "test.snd" 1 22050 mus-ldouble mus-next "insert-* tests" 10)))
       (map-channel (lambda (y) 1.0) 0 10 ind 0)
       (insert-float-vector (make-float-vector 5 .1) 2)
-      (if (not (= (framples ind) 15)) (snd-display ";insert-float-vector len: ~A" (framples ind)))
+      (if (not (= (framples ind) 15)) (snd-display "insert-float-vector len: ~A" (framples ind)))
       (let ((vals (channel->float-vector 0 #f ind 0)))
 	(if (not (mus-arrays-equal? vals (float-vector 1 1 .1 .1 .1 .1 .1 1 1 1 1 1 1 1 1)))
-	    (snd-display ";insert-float-vector vals: ~A" vals))) 
+	    (snd-display "insert-float-vector vals: ~A" vals))) 
       
       (let ((tag (catch #t (lambda () (insert-float-vector 32)) (lambda args (car args)))))
-	(if (not (eq? tag 'wrong-type-arg)) (snd-display ";insert-float-vector bad arg: ~A" tag)))
+	(if (not (eq? tag 'wrong-type-arg)) (snd-display "insert-float-vector bad arg: ~A" tag)))
       
       (insert-float-vector (make-float-vector 1 1.5) 0 1 ind 0)
-      (if (not (= (framples ind) 16)) (snd-display ";insert-float-vector 1 len: ~A" (framples ind)))
+      (if (not (= (framples ind) 16)) (snd-display "insert-float-vector 1 len: ~A" (framples ind)))
       (let ((vals (channel->float-vector 0 #f ind 0)))
 	(if (not (mus-arrays-equal? vals (float-vector 1.5 1 1 .1 .1 .1 .1 .1 1 1 1 1 1 1 1 1)))
-	    (snd-display ";insert-float-vector 1 vals: ~A" vals)))
+	    (snd-display "insert-float-vector 1 vals: ~A" vals)))
       (close-sound ind))
     
     (let ((ind (new-sound "test.snd" 4 22050 mus-ldouble mus-next "insert-* tests" 5)))
@@ -36034,29 +36034,29 @@ EDITS: 1
       (map-channel (lambda (y) 0.7) 0 5 ind 3)
       
       (insert-float-vector (make-float-vector 20 .1) 2 2 ind 2)
-      (if (not (= (framples ind 0) 5)) (snd-display ";4chn insert-float-vector (0) len: ~A" (framples ind 0)))
-      (if (not (= (framples ind 2) 7)) (snd-display ";4chn insert-float-vector (2) len: ~A" (framples ind 2)))
+      (if (not (= (framples ind 0) 5)) (snd-display "4chn insert-float-vector (0) len: ~A" (framples ind 0)))
+      (if (not (= (framples ind 2) 7)) (snd-display "4chn insert-float-vector (2) len: ~A" (framples ind 2)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 7 ind 0) (float-vector .4 .4 .4 .4 .4 0 0)))
-	  (snd-display ";4chn insert-float-vector 0: ~A" (channel->float-vector 0 7 ind 0)))
+	  (snd-display "4chn insert-float-vector 0: ~A" (channel->float-vector 0 7 ind 0)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 7 ind 1) (float-vector .5 .5 .5 .5 .5 0 0)))
-	  (snd-display ";4chn insert-float-vector 1: ~A" (channel->float-vector 0 7 ind 1)))
+	  (snd-display "4chn insert-float-vector 1: ~A" (channel->float-vector 0 7 ind 1)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 7 ind 2) (float-vector .6 .6 .1 .1 .6 .6 .6)))
-	  (snd-display ";4chn insert-float-vector 2: ~A" (channel->float-vector 0 7 ind 2)))
+	  (snd-display "4chn insert-float-vector 2: ~A" (channel->float-vector 0 7 ind 2)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 7 ind 3) (float-vector .7 .7 .7 .7 .7 0 0)))
-	  (snd-display ";4chn insert-float-vector 3: ~A" (channel->float-vector 0 7 ind 3)))
+	  (snd-display "4chn insert-float-vector 3: ~A" (channel->float-vector 0 7 ind 3)))
       
       (insert-float-vector (make-float-vector 20 .2) 0 2 ind 0)
-      (if (not (= (framples ind 0) 7)) (snd-display ";4chn insert-float-vector (0 0) len: ~A" (framples ind 0)))
-      (if (not (= (framples ind 1) 5)) (snd-display ";4chn insert-float-vector (0 1) len: ~A" (framples ind 1)))
-      (if (not (= (framples ind 2) 7)) (snd-display ";4chn insert-float-vector (2 2) len: ~A" (framples ind 2)))
+      (if (not (= (framples ind 0) 7)) (snd-display "4chn insert-float-vector (0 0) len: ~A" (framples ind 0)))
+      (if (not (= (framples ind 1) 5)) (snd-display "4chn insert-float-vector (0 1) len: ~A" (framples ind 1)))
+      (if (not (= (framples ind 2) 7)) (snd-display "4chn insert-float-vector (2 2) len: ~A" (framples ind 2)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 7 ind 0) (float-vector .2 .2 .4 .4 .4 .4 .4)))
-	  (snd-display ";4chn insert-float-vector 1 0: ~A" (channel->float-vector 0 7 ind 0)))
+	  (snd-display "4chn insert-float-vector 1 0: ~A" (channel->float-vector 0 7 ind 0)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 7 ind 1) (float-vector .5 .5 .5 .5 .5 0 0)))
-	  (snd-display ";4chn insert-float-vector 1 1: ~A" (channel->float-vector 0 7 ind 1)))
+	  (snd-display "4chn insert-float-vector 1 1: ~A" (channel->float-vector 0 7 ind 1)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 7 ind 2) (float-vector .6 .6 .1 .1 .6 .6 .6)))
-	  (snd-display ";4chn insert-float-vector 1 2: ~A" (channel->float-vector 0 7 ind 2)))
+	  (snd-display "4chn insert-float-vector 1 2: ~A" (channel->float-vector 0 7 ind 2)))
       (if (not (mus-arrays-equal? (channel->float-vector 0 7 ind 3) (float-vector .7 .7 .7 .7 .7 0 0)))
-	  (snd-display ";4chn insert-float-vector 1 3: ~A" (channel->float-vector 0 7 ind 3)))
+	  (snd-display "4chn insert-float-vector 1 3: ~A" (channel->float-vector 0 7 ind 3)))
       
       (revert-sound ind)
       (map-channel (lambda (y) 0.4) 0 5 ind 0)
@@ -36089,22 +36089,22 @@ EDITS: 1
     ;; check 0 cases
     (let ((ind (open-sound "oboe.snd")))
       (scale-by 0.0)
-      (if (fneq (maxamp) 0.0) (snd-display ";scale-by 0 amp: ~A" (maxamp)))
+      (if (fneq (maxamp) 0.0) (snd-display "scale-by 0 amp: ~A" (maxamp)))
       (scale-by 3.0)
-      (if (not (= (edit-position) 1)) (snd-display ";scale-by over 0: ~A" (edit-position)))
+      (if (not (= (edit-position) 1)) (snd-display "scale-by over 0: ~A" (edit-position)))
       (scale-to 1.0)
-      (if (not (= (edit-position) 1)) (snd-display ";scale-to 1.0 over 0: ~A" (edit-position)))
-      (if (fneq (maxamp) 0.0) (snd-display ";scale-to 1.0 over 0 amp: ~A" (maxamp)))  
+      (if (not (= (edit-position) 1)) (snd-display "scale-to 1.0 over 0: ~A" (edit-position)))
+      (if (fneq (maxamp) 0.0) (snd-display "scale-to 1.0 over 0 amp: ~A" (maxamp)))  
       (ramp-channel 0 1)
-      (if (not (= (edit-position) 1)) (snd-display ";ramp over 0: ~A" (edit-position)))  
+      (if (not (= (edit-position) 1)) (snd-display "ramp over 0: ~A" (edit-position)))  
       (env-channel '(0 0 1 1 2 0))
-      (if (not (= (edit-position) 1)) (snd-display ";ramp over 0: ~A" (edit-position)))  
+      (if (not (= (edit-position) 1)) (snd-display "ramp over 0: ~A" (edit-position)))  
       (if (not (string=? (car (edit-fragment 1)) "scale-channel 0.000 0 #f"))
-	  (snd-display ";ramp over 0 clobbered origin: ~A" (edit-fragment 1)))
+	  (snd-display "ramp over 0 clobbered origin: ~A" (edit-fragment 1)))
       (xramp-channel 0 1 32.0)
-      (if (not (= (edit-position) 1)) (snd-display ";ramp over 0: ~A" (edit-position)))  
+      (if (not (= (edit-position) 1)) (snd-display "ramp over 0: ~A" (edit-position)))  
       (env-channel-with-base '(0 0 1 1 2 0 3 1) 0.0)  
-      (if (not (= (edit-position) 1)) (snd-display ";ramp over 0: ~A" (edit-position)))
+      (if (not (= (edit-position) 1)) (snd-display "ramp over 0: ~A" (edit-position)))
       (close-sound ind))
     
     ;; snddiff.scm
@@ -36112,12 +36112,12 @@ EDITS: 1
 	  (ind1 (open-sound "oboe.snd")))
       (let ((diff (snddiff ind0 0 ind1 0)))
 	(if (not (eq? diff 'no-difference))
-	    (snd-display ";snddiff of same sound: ~A" diff)))
+	    (snd-display "snddiff of same sound: ~A" diff)))
       (scale-channel 2.0 0 #f ind1)
       (let ((diff (snddiff ind0 0 ind1 0)))
 	(if (or (not (eq? (car diff) 'scale))
 		(fneq (cadr diff) 2.0))
-	    (snd-display ";snddiff scale by 2: ~A" diff)))
+	    (snd-display "snddiff scale by 2: ~A" diff)))
       (revert-sound ind1)
       (set! (sample 100 ind0 0) 1.0)
       (let* ((diff (snddiff ind0 0 ind1 0))
@@ -36127,7 +36127,7 @@ EDITS: 1
 		(not (= (car info) 100))
 		(fneq (cadr info) 1.0)
 		(fneq (caddr info) -3.051e-4))
-	    (snd-display ";snddiff change sample 100: ~A" diff)))
+	    (snd-display "snddiff change sample 100: ~A" diff)))
       (revert-sound ind0)
       (pad-channel 0 100 ind0 0)
       (let ((diff (snddiff ind0 0 ind1 0)))
@@ -36138,7 +36138,7 @@ EDITS: 1
 		(diff 4)
 		(diff 5)
 		(diff 6))
-	    (snd-display ";snddiff + lag: ~A" diff)))
+	    (snd-display "snddiff + lag: ~A" diff)))
       (revert-sound ind0)
       (filter-channel (float-vector 1.0 0.5 0.25) 3 0 #f ind1 0)
       (let* ((diff (snddiff ind0 0 ind1 0))
@@ -36152,7 +36152,7 @@ EDITS: 1
 		(not (= (cadar info) 0))
 		(not (= (cadadr info) 1))
 		(not (= (cadr (caddr info)) 1)))
-	    (snd-display ";snddiff filter: ~A ~A" diff info)))
+	    (snd-display "snddiff filter: ~A ~A" diff info)))
       (revert-sound ind1)
       
       (close-sound ind0)
@@ -36161,7 +36161,7 @@ EDITS: 1
     (let ((ind (open-sound "oboe.snd")))
       (let ((g550 (goertzel-channel 550.0))
 	    (g1700 (goertzel-channel 1700.0)))
-	(if (> (* 1000 g1700) g550) (snd-display ";goertzel-channel oboe: ~A ~A" g550 g1700))
+	(if (> (* 1000 g1700) g550) (snd-display "goertzel-channel oboe: ~A ~A" g550 g1700))
 	(close-sound ind)))
     
     ))
@@ -38735,7 +38735,7 @@ EDITS: 1
 		      (fm-violin 100 .1 440 .1)
 		      (fm-violin 250 .1 440 .1))))))
 	 (if (ffneq mx .1) ; mus-byte -> 0.093
-	     (snd-display ";max: ~A, format: ~A" mx (mus-sample-type->string type)))))
+	     (snd-display "max: ~A, format: ~A" mx (mus-sample-type->string type)))))
      (list mus-bshort   mus-lshort   mus-mulaw   mus-alaw   mus-byte  
 	   mus-lfloat   mus-bint     mus-lint    mus-b24int mus-l24int
 	   mus-ubshort  mus-ulshort  mus-ubyte   mus-bfloat mus-bdouble 
@@ -38744,135 +38744,135 @@ EDITS: 1
     (with-sound () (fm-violin 0 .1 440 .1))
     (with-sound (:continue-old-file #t) (fm-violin .2 .1 660 .04))
     (let ((ind (find-sound "test.snd")))
-      (if (fneq (maxamp ind 0) .1) (snd-display ";maxamp after continued sound: ~A" (maxamp ind 0)))
-      (if (fneq (/ (framples ind) (srate ind)) .3) (snd-display ";duration after continued sound: ~A" (/ (framples ind) (srate ind))))
+      (if (fneq (maxamp ind 0) .1) (snd-display "maxamp after continued sound: ~A" (maxamp ind 0)))
+      (if (fneq (/ (framples ind) (srate ind)) .3) (snd-display "duration after continued sound: ~A" (/ (framples ind) (srate ind))))
       (close-sound ind))
     
     (with-sound (:srate 22050 :channels 2 :output "test1.snd") (fm-violin 0 .1 440 .1 :degree 45.0))
     (let ((ind (find-sound "test1.snd")))
-      (if (not ind) (snd-display ";with-sound (1): ~A" (map file-name (sounds))))
+      (if (not ind) (snd-display "with-sound (1): ~A" (map file-name (sounds))))
       (let ((mx (maxamp)))
-	(if (fneq mx .05) (snd-display ";with-sound max (1): ~A" (maxamp))))
+	(if (fneq mx .05) (snd-display "with-sound max (1): ~A" (maxamp))))
       (if (not (= (srate ind) 22050 (mus-sound-srate "test1.snd")))
-	  (snd-display ";with-sound srate (1): ~A (~A, ~A)" (srate ind) *clm-srate* (mus-sound-srate "test1.snd")))
+	  (snd-display "with-sound srate (1): ~A (~A, ~A)" (srate ind) *clm-srate* (mus-sound-srate "test1.snd")))
       (if (not (member (framples ind) '(2205 2206) =))
-	  (snd-display ";with-sound framples (1): ~A" (framples ind)))
+	  (snd-display "with-sound framples (1): ~A" (framples ind)))
       (if (not (= (chans ind) 2 (mus-sound-chans "test1.snd")))
-	  (snd-display ";with-sound chans (1): ~A" (chans ind)))
+	  (snd-display "with-sound chans (1): ~A" (chans ind)))
       (close-sound ind)
       (delete-file "test1.snd"))
     
     (with-sound (:srate 48000 :channels 2 :header-type mus-riff :sample-type mus-lshort :output "test1.snd") (fm-violin 0 .1 440 .1))
     (let ((ind (find-sound "test1.snd")))
       (if (not (= (srate ind) 48000 (mus-sound-srate "test1.snd")))
-	  (snd-display ";with-sound srate (48000, r): ~A (~A, ~A)" (srate ind) *clm-srate* (mus-sound-srate "test1.snd")))
-      (if (not (= (header-type ind) mus-riff)) (snd-display ";with-sound type (~A, r): ~A" mus-riff (header-type ind)))
-      (if (not (= (chans ind) 2)) (snd-display ";with-sound chans (2, r): ~A" (chans ind)))
+	  (snd-display "with-sound srate (48000, r): ~A (~A, ~A)" (srate ind) *clm-srate* (mus-sound-srate "test1.snd")))
+      (if (not (= (header-type ind) mus-riff)) (snd-display "with-sound type (~A, r): ~A" mus-riff (header-type ind)))
+      (if (not (= (chans ind) 2)) (snd-display "with-sound chans (2, r): ~A" (chans ind)))
       (close-sound ind)
       (delete-file "test1.snd"))
     
     (with-sound (:srate 48000 :channels 2 :header-type mus-rf64 :sample-type mus-lshort :output "test1.snd") (fm-violin 0 .1 440 .1))
     (let ((ind (find-sound "test1.snd")))
       (if (not (= (srate ind) 48000 (mus-sound-srate "test1.snd")))
-	  (snd-display ";with-sound srate (48000, r): ~A (~A, ~A)" (srate ind) *clm-srate* (mus-sound-srate "test1.snd")))
-      (if (not (= (header-type ind) mus-rf64)) (snd-display ";with-sound type (~A, r): ~A" mus-rf64 (header-type ind)))
-      (if (not (= (chans ind) 2)) (snd-display ";with-sound chans (2, r): ~A" (chans ind)))
+	  (snd-display "with-sound srate (48000, r): ~A (~A, ~A)" (srate ind) *clm-srate* (mus-sound-srate "test1.snd")))
+      (if (not (= (header-type ind) mus-rf64)) (snd-display "with-sound type (~A, r): ~A" mus-rf64 (header-type ind)))
+      (if (not (= (chans ind) 2)) (snd-display "with-sound chans (2, r): ~A" (chans ind)))
       (close-sound ind)
       (delete-file "test1.snd"))
     
     (with-sound (:srate 48000 :channels 2 :header-type mus-caff :sample-type mus-lshort :output "test1.snd") (fm-violin 0 .1 440 .1))
     (let ((ind (find-sound "test1.snd")))
       (if (not (= (srate ind) 48000 (mus-sound-srate "test1.snd")))
-	  (snd-display ";with-sound mus-caff srate (48000, r): ~A (~A, ~A)" (srate ind) *clm-srate* (mus-sound-srate "test1.snd")))
-      (if (not (= (header-type ind) mus-caff)) (snd-display ";with-sound type (~A, r): ~A" mus-caff (header-type ind)))
-      (if (not (= (chans ind) 2)) (snd-display ";with-sound mus-caff chans (2, r): ~A" (chans ind)))
+	  (snd-display "with-sound mus-caff srate (48000, r): ~A (~A, ~A)" (srate ind) *clm-srate* (mus-sound-srate "test1.snd")))
+      (if (not (= (header-type ind) mus-caff)) (snd-display "with-sound type (~A, r): ~A" mus-caff (header-type ind)))
+      (if (not (= (chans ind) 2)) (snd-display "with-sound mus-caff chans (2, r): ~A" (chans ind)))
       (close-sound ind)
       (delete-file "test1.snd"))
     
     (with-sound (:srate 8000 :channels 3 :header-type mus-next :output "test1.snd") (fm-violin 0 .1 440 .1))
     (let ((ind (find-sound "test1.snd")))
-      (if (not (= (srate ind) 8000)) (snd-display ";with-sound srate (8000, s): ~A (~A, ~A)" 
+      (if (not (= (srate ind) 8000)) (snd-display "with-sound srate (8000, s): ~A (~A, ~A)" 
 						  (srate ind) *clm-srate* (mus-sound-srate "test1.snd")))
-      (if (not (= (header-type ind) mus-next)) (snd-display ";with-sound type (~A, s): ~A" mus-next (header-type ind)))
-      (if (not (= (chans ind) 3)) (snd-display ";with-sound chans (3, s): ~A" (chans ind)))
+      (if (not (= (header-type ind) mus-next)) (snd-display "with-sound type (~A, s): ~A" mus-next (header-type ind)))
+      (if (not (= (chans ind) 3)) (snd-display "with-sound chans (3, s): ~A" (chans ind)))
       (close-sound ind)
       (delete-file "test1.snd"))
     
     (with-sound (:srate 96000 :channels 4 :header-type mus-aifc :output "test1.snd") (fm-violin 0 .1 440 .1))
     (let ((ind (find-sound "test1.snd")))
-      (if (not (= (srate ind) 96000)) (snd-display ";with-sound srate (96000, t): ~A (~A, ~A)" 
+      (if (not (= (srate ind) 96000)) (snd-display "with-sound srate (96000, t): ~A (~A, ~A)" 
 						   (srate ind) *clm-srate* (mus-sound-srate "test1.snd")))
-      (if (not (= (header-type ind) mus-aifc)) (snd-display ";with-sound type (~A, t): ~A" mus-aifc (header-type ind)))
-      (if (not (= (chans ind) 4)) (snd-display ";with-sound chans (4, t): ~A" (chans ind)))
+      (if (not (= (header-type ind) mus-aifc)) (snd-display "with-sound type (~A, t): ~A" mus-aifc (header-type ind)))
+      (if (not (= (chans ind) 4)) (snd-display "with-sound chans (4, t): ~A" (chans ind)))
       (close-sound ind)
       (delete-file "test1.snd"))
     
     (with-sound (:srate 22050 :channels 1 :header-type mus-raw :output "test1.snd") (fm-violin 0 .1 440 .1))
     (let ((ind (find-sound "test1.snd")))
-      (if (not (= (srate ind) 22050)) (snd-display ";with-sound srate (22050, u): ~A (~A, ~A)" 
+      (if (not (= (srate ind) 22050)) (snd-display "with-sound srate (22050, u): ~A (~A, ~A)" 
 						   (srate ind) *clm-srate* (mus-sound-srate "test1.snd")))
-      (if (not (= (header-type ind) mus-raw)) (snd-display ";with-sound type (~A, u): ~A" mus-raw (header-type ind)))
-      (if (not (= (chans ind) 1)) (snd-display ";with-sound chans (1, u): ~A" (chans ind)))
+      (if (not (= (header-type ind) mus-raw)) (snd-display "with-sound type (~A, u): ~A" mus-raw (header-type ind)))
+      (if (not (= (chans ind) 1)) (snd-display "with-sound chans (1, u): ~A" (chans ind)))
       (close-sound ind)
       (delete-file "test1.snd"))
     
     (with-sound (:srate 22050 :channels 2 :output "test1.snd" :reverb jc-reverb) 
       (if (not (= (mus-sound-srate (mus-file-name *output*)) 22050))
-	  (snd-display ";srate file *output*: ~A" (mus-sound-srate (mus-file-name *output*))))
+	  (snd-display "srate file *output*: ~A" (mus-sound-srate (mus-file-name *output*))))
       (if (not (= (mus-sound-srate (mus-file-name *reverb*)) 22050))
-	  (snd-display ";srate file *reverb*: ~A" (mus-sound-srate (mus-file-name *reverb*))))
+	  (snd-display "srate file *reverb*: ~A" (mus-sound-srate (mus-file-name *reverb*))))
       (fm-violin 0 .1 440 .1 :degree 45.0))
     (let ((ind (find-sound "test1.snd")))
-      (if (not ind) (snd-display ";with-sound (2): ~A" (map file-name (sounds)))
-	  (if (> (framples ind) 24256) (snd-display ";with-sound reverbed framples (2): ~A" (framples ind))))
+      (if (not ind) (snd-display "with-sound (2): ~A" (map file-name (sounds)))
+	  (if (> (framples ind) 24256) (snd-display "with-sound reverbed framples (2): ~A" (framples ind))))
       (close-sound ind))
     
     (with-sound (:srate 22050 :comment "Snd+Run!" :scaled-to .5) (fm-violin 0 .1 440 .1))
     (let ((ind (find-sound "test.snd")))
-      (if (not ind) (snd-display ";with-sound: ~A" (map file-name (sounds))))
+      (if (not ind) (snd-display "with-sound: ~A" (map file-name (sounds))))
       (let ((mx (maxamp)))
-	(if (fneq mx .5) (snd-display ";with-sound scaled-to: ~A" (maxamp)))
-	(if (not (string=? (comment ind) "Snd+Run!")) (snd-display ";with-sound comment: ~A (~A)" (comment ind) (mus-sound-comment "test.snd"))))
+	(if (fneq mx .5) (snd-display "with-sound scaled-to: ~A" (maxamp)))
+	(if (not (string=? (comment ind) "Snd+Run!")) (snd-display "with-sound comment: ~A (~A)" (comment ind) (mus-sound-comment "test.snd"))))
       (close-sound ind))
     
     (with-sound (:scaled-to .9 :channels 2) (fm-violin 0 .1 440 1.5 :degree 90))
     (let ((ind (find-sound "test.snd")))
-      (if (not ind) (snd-display ";with-sound: ~A" (map file-name (sounds))))
+      (if (not ind) (snd-display "with-sound: ~A" (map file-name (sounds))))
       (let ((mx0 (maxamp ind 0))
 	    (mx1 (maxamp ind 1)))
 	(if (> (max mx0 mx1) .9)
-	    (snd-display ";with-sound scaled-to: ~A" (maxamp))))
+	    (snd-display "with-sound scaled-to: ~A" (maxamp))))
       (close-sound ind))
     
     (with-sound (:scaled-to .9 :channels 2) (fm-violin 0 .1 440 1.5 :degree 0))
     (let ((ind (find-sound "test.snd")))
-      (if (not ind) (snd-display ";with-sound: ~A" (map file-name (sounds))))
+      (if (not ind) (snd-display "with-sound: ~A" (map file-name (sounds))))
       (let ((mx0 (maxamp ind 0))
 	    (mx1 (maxamp ind 1)))
 	(if (> (max mx0 mx1) .9)
-	    (snd-display ";with-sound scaled-to: ~A" (maxamp))))
+	    (snd-display "with-sound scaled-to: ~A" (maxamp))))
       (close-sound ind))
     
     (with-sound (:srate 22050 :scaled-by .5 :header-type mus-aifc :sample-type mus-bfloat) (fm-violin 0 .1 440 .1))
     (let ((ind (find-sound "test.snd")))
-      (if (not ind) (snd-display ";with-sound: ~A" (map file-name (sounds))))
+      (if (not ind) (snd-display "with-sound: ~A" (map file-name (sounds))))
       (let ((mx (maxamp)))
-	(if (fneq mx .05) (snd-display ";with-sound scaled-by: ~A" (maxamp)))
-	(if (not (= (header-type ind) mus-aifc)) (snd-display ";with-sound type: ~A (~A)" (header-type ind) (mus-header-type-name (header-type ind))))
-	(if (not (= (sample-type ind) mus-bfloat)) (snd-display ";with-sound format: ~A (~A)" (sample-type ind) (mus-sample-type-name (sample-type ind)))))
+	(if (fneq mx .05) (snd-display "with-sound scaled-by: ~A" (maxamp)))
+	(if (not (= (header-type ind) mus-aifc)) (snd-display "with-sound type: ~A (~A)" (header-type ind) (mus-header-type-name (header-type ind))))
+	(if (not (= (sample-type ind) mus-bfloat)) (snd-display "with-sound format: ~A (~A)" (sample-type ind) (mus-sample-type-name (sample-type ind)))))
       (close-sound ind))
     
     (hook-push open-raw-sound-hook (lambda (hook) (set! (hook 'result) (list 1 22050 mus-bshort))))
     (with-sound (:header-type mus-raw) (fm-violin 0 1 440 .1))
     (set! (hook-functions open-raw-sound-hook) ())
     (let ((ind (find-sound "test.snd")))
-      (if (not ind) (snd-display ";with-sound (raw out): ~A" (map file-name (sounds))))
+      (if (not ind) (snd-display "with-sound (raw out): ~A" (map file-name (sounds))))
       (if (not (= (header-type ind) mus-raw)) 
-	  (snd-display ";with-sound type raw: ~A (~A)" (header-type ind) (mus-header-type-name (header-type ind))))
+	  (snd-display "with-sound type raw: ~A (~A)" (header-type ind) (mus-header-type-name (header-type ind))))
       (if (not (or (= (sample-type ind) mus-bshort)
 		   (= (sample-type ind) mus-bfloat)
 		   (= (sample-type ind) mus-lfloat)))
-	  (snd-display ";with-sound format raw: ~A (~A)" (sample-type ind) (mus-sample-type-name (sample-type ind))))
+	  (snd-display "with-sound format raw: ~A (~A)" (sample-type ind) (mus-sample-type-name (sample-type ind))))
       (close-sound ind))
     
     (with-sound (:srate 44100 :statistics #t) (ws-sine 1000))
@@ -38900,9 +38900,9 @@ EDITS: 1
     
     (let ((ind (find-sound "test.snd")))
       (if (> (abs (- (framples ind) 144100)) 2)
-	  (snd-display ";with-sound make-oscil framples: ~A" (framples)))
+	  (snd-display "with-sound make-oscil framples: ~A" (framples)))
       (if (fneq (maxamp ind) .1)
-	  (snd-display ";with-sound make-oscil maxamp: ~A" (maxamp ind)))
+	  (snd-display "with-sound make-oscil maxamp: ~A" (maxamp ind)))
       (close-sound ind))
     
     (for-each close-sound (sounds))
@@ -38914,39 +38914,39 @@ EDITS: 1
       (delete-file "test.rev"))
     
     (let ((var (make-st1 :one 1 :two 2)))
-      (if (not (= (var 'one) 1)) (snd-display ";st1-one: ~A" (var 'one)))
-      (if (not (= (var 'two) 2)) (snd-display ";st1-two: ~A" (var 'two)))
-      (if (not (st1? var)) (snd-display ";st1? ~A (~A)" (st1? var) var))
+      (if (not (= (var 'one) 1)) (snd-display "st1-one: ~A" (var 'one)))
+      (if (not (= (var 'two) 2)) (snd-display "st1-two: ~A" (var 'two)))
+      (if (not (st1? var)) (snd-display "st1? ~A (~A)" (st1? var) var))
       (set! (var 'one) 321)
       (set! (var 'two) "hiho")
-      (if (not (= (var 'one) 321)) (snd-display ";st1-one (321): ~A" (var 'one)))
-      (if (not (string=? (var 'two) "hiho")) (snd-display ";st1-two (hiho): ~A" (var 'two))))
+      (if (not (= (var 'one) 321)) (snd-display "st1-one (321): ~A" (var 'one)))
+      (if (not (string=? (var 'two) "hiho")) (snd-display "st1-two (hiho): ~A" (var 'two))))
     (let ((var (make-st1)))
-      (if (fneq (var 'one) 0.0) (snd-display ";st1-one #f: ~A" (var 'one)))
-      (if (fneq (var 'two) 0.0) (snd-display ";st1-two #f: ~A" (var 'two))))
+      (if (fneq (var 'one) 0.0) (snd-display "st1-one #f: ~A" (var 'one)))
+      (if (fneq (var 'two) 0.0) (snd-display "st1-two #f: ~A" (var 'two))))
     (let ((var (make-st1 :two 3)))
-      (if (fneq (var 'one) 0.0) (snd-display ";st1-one #f (def): ~A" (var 'one)))  
-      (if (not (= (var 'two) 3)) (snd-display ";st1-two (3): ~A" (var 'two))))
+      (if (fneq (var 'one) 0.0) (snd-display "st1-one #f (def): ~A" (var 'one)))  
+      (if (not (= (var 'two) 3)) (snd-display "st1-two (3): ~A" (var 'two))))
     
     (let ((var (make-st2 :one 1 :two 2)))
-      (if (not (= (var 'one) 1)) (snd-display ";st2-one: ~A" (var 'one)))
-      (if (not (= (var 'two) 2)) (snd-display ";st2-two: ~A" (var 'two)))
-      (if (not (st2? var)) (snd-display ";st2? ~A (~A)" (st1? var) var))
-      (if (st1? var) (snd-display ";st1? (not ~A): ~A" (st1? var) var))
+      (if (not (= (var 'one) 1)) (snd-display "st2-one: ~A" (var 'one)))
+      (if (not (= (var 'two) 2)) (snd-display "st2-two: ~A" (var 'two)))
+      (if (not (st2? var)) (snd-display "st2? ~A (~A)" (st1? var) var))
+      (if (st1? var) (snd-display "st1? (not ~A): ~A" (st1? var) var))
       (set! (var 'one) 321)
       (set! (var 'two) "hiho")
-      (if (not (= (var 'one) 321)) (snd-display ";st2-one (321): ~A" (var 'one)))
-      (if (not (string=? (var 'two) "hiho")) (snd-display ";st2-two (hiho): ~A" (var 'two))))
+      (if (not (= (var 'one) 321)) (snd-display "st2-one (321): ~A" (var 'one)))
+      (if (not (string=? (var 'two) "hiho")) (snd-display "st2-two (hiho): ~A" (var 'two))))
     (let ((var (make-st2)))
-      (if (not (= (var 'one) 11)) (snd-display ";st2-one 11: ~A" (var 'one)))
-      (if (not (= (var 'two) 22)) (snd-display ";st2-two 22: ~A" (var 'two))))
+      (if (not (= (var 'one) 11)) (snd-display "st2-one 11: ~A" (var 'one)))
+      (if (not (= (var 'two) 22)) (snd-display "st2-two 22: ~A" (var 'two))))
     (let ((var (make-st2 :two 3)))
-      (if (not (= (var 'one) 11)) (snd-display ";st2-one 11 (def): ~A" (var 'one)))  
-      (if (not (= (var 'two) 3)) (snd-display ";st2-two (3): ~A" (var 'two))))
+      (if (not (= (var 'one) 11)) (snd-display "st2-one 11 (def): ~A" (var 'one)))  
+      (if (not (= (var 'two) 3)) (snd-display "st2-two (3): ~A" (var 'two))))
     
     (let ((gad (make-grab-bag)))
       (if (not (= (gad 'i) 0))
-	  (snd-display ";grab-bag-i: ~A" (gad 'i)))
+	  (snd-display "grab-bag-i: ~A" (gad 'i)))
       (set! (gad 'flt) 123.0)
       (set! (gad 'v) (float-vector .1 .2 .3))
       (set! (gad 'fvect) (vector .1 .2 .3))
@@ -38957,10 +38957,10 @@ EDITS: 1
 	(vector-set! (gad 'cvect) i (make-oscil 440.0)))
       (set! (gad 'gen) (make-oscil 440.0))
       (let ((val (gad 'flt)))
-	(if (fneq val 123.0) (snd-display ";defgenerator flt: ~A ~A" val (gad 'flt))))
-      (if (fneq (gad 'flt1) 1.0) (snd-display ";defgenerator flt1: ~A" (gad 'flt1)))
-      (if (not (= (gad 'i) 0)) (snd-display ";defgenerator i: ~A" (gad 'i)))
-      (if (not (= (gad 'i1) 123)) (snd-display ";defgenerator i1: ~A" (gad 'i1))))
+	(if (fneq val 123.0) (snd-display "defgenerator flt: ~A ~A" val (gad 'flt))))
+      (if (fneq (gad 'flt1) 1.0) (snd-display "defgenerator flt1: ~A" (gad 'flt1)))
+      (if (not (= (gad 'i) 0)) (snd-display "defgenerator i: ~A" (gad 'i)))
+      (if (not (= (gad 'i1) 123)) (snd-display "defgenerator i1: ~A" (gad 'i1))))
     
     (let ()
       (defgenerator (g1 :methods (list (cons 'g1-method (lambda (g) 440)))))
@@ -38977,11 +38977,11 @@ EDITS: 1
 		   (sound-let ((a () (fm-violin 0 .1 440 .1))) 
 			      (mus-file-mix *output* a)))))
       (if (not (string=? outer "test.snd"))
-	  (snd-display ";with-sound returns: ~A" outer))
+	  (snd-display "with-sound returns: ~A" outer))
       (let ((ind (find-sound outer)))
 	(if (not (and (sound? ind)
 		      (<= (- (framples ind) (floor (* *clm-srate* .1))) 1)))
-	    (snd-display ";sound-let: ~A ~A" (framples ind) (floor (* *clm-srate* .1))))
+	    (snd-display "sound-let: ~A ~A" (framples ind) (floor (* *clm-srate* .1))))
 	(close-sound ind)))
     
     (if (file-exists? "test.snd") (delete-file "test.snd"))
@@ -38992,54 +38992,54 @@ EDITS: 1
 			      (sound-let ((c (:channels 1 :output "temp.snd") (fm-violin 0 .1 110.0 .1)))
 					 (mus-file-mix *output* c))))))
       (if (not (string=? outer "test.snd"))
-	  (snd-display ";with-sound (2) returns: ~A" outer))
+	  (snd-display "with-sound (2) returns: ~A" outer))
       (let ((ind (find-sound outer)))
 	(if (or (not (sound? ind))
 		(> (- (framples ind) 100 (floor (* *clm-srate* .1))) 1))
-	    (snd-display ";sound-let (2): ~A ~A" (framples ind) (+ 100 (floor (* *clm-srate* .1)))))
+	    (snd-display "sound-let (2): ~A ~A" (framples ind) (+ 100 (floor (* *clm-srate* .1)))))
 	(if (file-exists? "temp.snd")
-	    (snd-display ";sound-let explicit output exists?"))
+	    (snd-display "sound-let explicit output exists?"))
 	(close-sound ind)))
     
     (let ((w (init-with-sound)))
       (fm-violin 0 1 440 .1)
       (let ((outer (finish-with-sound w)))
 	(if (not (string=? outer "test.snd"))
-	    (snd-display ";finish-with-sound returns: ~A" outer))
+	    (snd-display "finish-with-sound returns: ~A" outer))
 	(let ((ind (find-sound outer)))
 	  (if (not (sound? ind))
-	      (snd-display ";init-with-sound: ~A" (map short-file-name (sounds)))
+	      (snd-display "init-with-sound: ~A" (map short-file-name (sounds)))
 	      (begin
 		(if (fneq (maxamp ind 0) .1)
-		    (snd-display ";init-with-sound max: ~A" (maxamp ind 0)))
+		    (snd-display "init-with-sound max: ~A" (maxamp ind 0)))
 		(close-sound ind))))))
     
     (let ((w (init-with-sound :output "test.aiff" :header-type mus-aifc :scaled-to .5)))
       (fm-violin 0 1 440 .1)
       (let ((outer (finish-with-sound w)))
 	(if (not (string=? outer "test.aiff"))
-	    (snd-display ";finish-with-sound (2) returns: ~A ~A" outer w))
+	    (snd-display "finish-with-sound (2) returns: ~A ~A" outer w))
 	(let ((ind (find-sound outer)))
 	  (if (not (sound? ind))
-	      (snd-display ";init-with-sound (2): ~A" (map short-file-name (sounds)))
+	      (snd-display "init-with-sound (2): ~A" (map short-file-name (sounds)))
 	      (begin
 		(if (fneq (maxamp ind 0) .5)
-		    (snd-display ";init-with-sound scaled-to: ~A ~A" (maxamp ind 0) w))
+		    (snd-display "init-with-sound scaled-to: ~A ~A" (maxamp ind 0) w))
 		(if (not (= (header-type ind) mus-aifc))
-		    (snd-display ";init-with-sound type: ~A ~A" (header-type ind) w))
+		    (snd-display "init-with-sound type: ~A ~A" (header-type ind) w))
 		(close-sound ind))))))
     
     (with-sound ("test1.snd" :reverb freeverb :reverb-data '(:output-gain 3.0)) (fm-violin 0 .1 440 .1 :reverb-amount .1))
     (let ((ind (find-sound "test1.snd")))
-      (if (not ind) (snd-display ";with-sound (freeverb): ~A" (map file-name (sounds))))
-      (if (<= (maxamp ind) .1) (snd-display ";freeverb 3.0: ~A" (maxamp ind)))
+      (if (not ind) (snd-display "with-sound (freeverb): ~A" (map file-name (sounds))))
+      (if (<= (maxamp ind) .1) (snd-display "freeverb 3.0: ~A" (maxamp ind)))
       (close-sound ind)
       (delete-file "test1.snd"))
     
     (with-sound ("test1.snd" :reverb freeverb :reverb-data '(:output-gain 3.0 :global 0.5)) (fm-violin 0 .1 440 .1 :reverb-amount .1))
     (let ((ind (find-sound "test1.snd")))
-      (if (not ind) (snd-display ";with-sound (freeverb): ~A" (map file-name (sounds))))
-      (if (<= (maxamp ind) .16) (snd-display ";freeverb 3.0 global 0.5: ~A" (maxamp ind)))
+      (if (not ind) (snd-display "with-sound (freeverb): ~A" (map file-name (sounds))))
+      (if (<= (maxamp ind) .16) (snd-display "freeverb 3.0 global 0.5: ~A" (maxamp ind)))
       (close-sound ind)
       (delete-file "test1.snd"))
     
@@ -39251,31 +39251,31 @@ EDITS: 1
     (with-sound (:channels 2) 
       (fullmix "4.aiff" 0.0 0.1 36.4 '((0.0 0.0) (0.0 0.0) (1.0 0.0) (0.0 1.0))))
     (let ((ind (find-sound "test.snd")))
-      (if (fneq (maxamp) 0.8865) (snd-display ";4->2(0) fullmix: ~A" (maxamp)))
+      (if (fneq (maxamp) 0.8865) (snd-display "4->2(0) fullmix: ~A" (maxamp)))
       (close-sound ind))
     
     (with-sound (:channels 1) 
       (fullmix "4.aiff" 0.0 0.1 36.4 '((1.0) (0.0) (0.0) (0.0))))
     (let ((ind (find-sound "test.snd")))
-      (if (fneq (maxamp) 0.221649169921875) (snd-display ";4->1(0) fullmix: ~A" (maxamp)))
+      (if (fneq (maxamp) 0.221649169921875) (snd-display "4->1(0) fullmix: ~A" (maxamp)))
       (close-sound ind))
     
     (with-sound (:channels 1) 
       (fullmix "4.aiff" 0.0 0.1 36.4 '((0.0) (1.0) (0.0) (0.0))))
     (let ((ind (find-sound "test.snd")))
-      (if (fneq (maxamp) 0.44329833984375) (snd-display ";4->1(1) fullmix: ~A" (maxamp)))
+      (if (fneq (maxamp) 0.44329833984375) (snd-display "4->1(1) fullmix: ~A" (maxamp)))
       (close-sound ind))
     
     (with-sound (:channels 1) 
       (fullmix "4.aiff" 0.0 0.1 36.4 '((0.0) (0.0) (1.0) (0.0))))
     (let ((ind (find-sound "test.snd")))
-      (if (fneq (maxamp) 0.664947509765625) (snd-display ";4->1(2) fullmix: ~A" (maxamp)))
+      (if (fneq (maxamp) 0.664947509765625) (snd-display "4->1(2) fullmix: ~A" (maxamp)))
       (close-sound ind))
     
     (with-sound (:channels 1) 
       (fullmix "4.aiff" 0.0 0.1 36.4 '((0.0) (0.0) (0.0) (1.0))))
     (let ((ind (find-sound "test.snd")))
-      (if (fneq (maxamp) 0.8865966796875) (snd-display ";4->1(3) fullmix: ~A" (maxamp)))
+      (if (fneq (maxamp) 0.8865966796875) (snd-display "4->1(3) fullmix: ~A" (maxamp)))
       (close-sound ind))
     
     (with-sound (:channels 2) 
@@ -39284,7 +39284,7 @@ EDITS: 1
 	   (mxs (maxamp ind #t)))
       (if (or (fneq (car mxs) 0.664947509765625)
 	      (fneq (cadr mxs) 0.8865966796875))
-	  (snd-display ";4->2(1) fullmix: ~A" mxs))
+	  (snd-display "4->2(1) fullmix: ~A" mxs))
       (close-sound ind))
     
     (with-sound (:channels 2) 
@@ -39293,7 +39293,7 @@ EDITS: 1
 	   (mxs (maxamp ind #t)))
       (if (or (fneq (car mxs) 0.8865966796875)
 	      (fneq (cadr mxs) 0.664947509765625))
-	  (snd-display ";4->2(2) fullmix: ~A" mxs))
+	  (snd-display "4->2(2) fullmix: ~A" mxs))
       (close-sound ind))
     
     (with-sound (:channels 2 :reverb nrev) 
@@ -39310,24 +39310,24 @@ EDITS: 1
       (fullmix "pistol.snd")
       (fullmix "oboe.snd" 1 2 0 (list (list .1 (make-env '(0 0 1 1) :duration 2 :scaler .5)))))
     (let ((ind (find-sound "test.snd")))
-      (if (sound? ind) (close-sound ind) (snd-display ";fullmix.scm no output?")))
+      (if (sound? ind) (close-sound ind) (snd-display "fullmix.scm no output?")))
     
     (with-sound (:channels 2) 
       (fullmix "4.aiff" 0.0 0.1 36.4 '((0.0 0.0) (0.0 0.0) (1.0 0.0) (0.0 1.0))))
     (let ((ind (find-sound "test.snd")))
-      (if (fneq (maxamp) 0.8865) (snd-display ";4->2(0) fullmix.scm: ~A" (maxamp)))
+      (if (fneq (maxamp) 0.8865) (snd-display "4->2(0) fullmix.scm: ~A" (maxamp)))
       (close-sound ind))
     
     (with-sound (:channels 1) 
       (fullmix "4.aiff" 0.0 0.1 36.4 '((1.0) (0.0) (0.0) (0.0))))
     (let ((ind (find-sound "test.snd")))
-      (if (fneq (maxamp) 0.221649169921875) (snd-display ";4->1(0) fullmix.scm: ~A" (maxamp)))
+      (if (fneq (maxamp) 0.221649169921875) (snd-display "4->1(0) fullmix.scm: ~A" (maxamp)))
       (close-sound ind))
     
     (with-sound (:statistics #t :scaled-to .5 :srate 44100 :channels 1) 
       (cnvrev "oboe.snd" "fyow.snd"))
     (let ((ind (find-sound "test.snd")))
-      (if (sound? ind) (close-sound ind) (snd-display ";cnvrev no output?")))
+      (if (sound? ind) (close-sound ind) (snd-display "cnvrev no output?")))
     
     
     (with-sound ()
@@ -39337,9 +39337,9 @@ EDITS: 1
 		 (mus-file-mix *output* temp-1 0) 
 		 (mus-file-mix *output* temp-2 22050)))
     (let ((ind (find-sound "test.snd")))
-      (if (not (sound? ind)) (snd-display ";with-sound+sound-lets init: no test.snd?"))
-      (if (not (>= 0.2 (maxamp ind) 0.15)) (snd-display ";with-mix+sound-lets maxamp: ~A" (maxamp ind)))
-      (if (fneq 3.0 (/ (framples ind) (srate ind))) (snd-display ";with-sound+sound-lets dur: ~A" (/ (framples ind) (srate ind))))
+      (if (not (sound? ind)) (snd-display "with-sound+sound-lets init: no test.snd?"))
+      (if (not (>= 0.2 (maxamp ind) 0.15)) (snd-display "with-mix+sound-lets maxamp: ~A" (maxamp ind)))
+      (if (fneq 3.0 (/ (framples ind) (srate ind))) (snd-display "with-sound+sound-lets dur: ~A" (/ (framples ind) (srate ind))))
       (close-sound ind))
     
     (with-sound (:srate 44100 :play #f) (bigbird 0 2 60 0 .5 '(0 0 1 1) '(0 0 1 1 2 1 3 0) '(1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1)))
@@ -39348,15 +39348,15 @@ EDITS: 1
 	(notch-sound (do ((freqs ()) (i 60 (+ i 60))) ((= i 3000) (reverse freqs)) (set! freqs (cons i freqs))))
 	(if (or (fneq mx .5)
 		(ffneq (maxamp) .027))
-	    (snd-display ";notch 60 Hz: ~A to ~A" mx (maxamp))))
+	    (snd-display "notch 60 Hz: ~A to ~A" mx (maxamp))))
       (undo)
       (notch-sound (do ((freqs ()) (i 60 (+ i 60))) ((= i 3000) (reverse freqs)) (set! freqs (cons i freqs))) #f ind 0 10)
       (if (ffneq (maxamp) .011)
-	  (snd-display ";notch-sound 60 hz 2: ~A" (maxamp)))
+	  (snd-display "notch-sound 60 hz 2: ~A" (maxamp)))
       (undo)
       (notch-channel (do ((freqs ()) (i 60 (+ i 60))) ((= i 3000) (reverse freqs)) (set! freqs (cons i freqs))) #f #f #f ind 0 #f #f 10)
       (if (ffneq (maxamp) .004)
-	  (snd-display ";notch-channel 60 hz 2: ~A" (maxamp)))
+	  (snd-display "notch-channel 60 hz 2: ~A" (maxamp)))
       (undo)
       (make-selection 10000 11000)
       (notch-selection (do ((freqs ()) (i 60 (+ i 60))) ((= i 3000) (reverse freqs)) (set! freqs (cons i freqs))) #f 10)
@@ -39366,7 +39366,7 @@ EDITS: 1
     (let ((ind (find-sound "test.snd")))
       (notch-sound (do ((freqs ()) (i 60 (+ i 60))) ((= i 3000) (reverse freqs)) (set! freqs (cons i freqs))) #f ind 0 10)
       (if (ffneq (maxamp) .011)
-	  (snd-display ";notch-sound 60 hz 2 60: ~A" (maxamp)))
+	  (snd-display "notch-sound 60 hz 2 60: ~A" (maxamp)))
       (close-sound ind))
     
     (play-sine 440 .1)
@@ -39429,57 +39429,57 @@ EDITS: 1
     (let ((ind (open-sound "oboe.snd")))
       (with-sound ("test1.snd" :to-snd #f) (fm-violin 0 .1 440 .1))
       (set-samples 0 2205 "test1.snd" ind 0 #f "set-samples auto-delete test" 0 #f #t)
-      (if (not (file-exists? "test1.snd")) (snd-display ";oops: auto-delete test1.snd?"))
+      (if (not (file-exists? "test1.snd")) (snd-display "oops: auto-delete test1.snd?"))
       (undo 1 ind)
       (with-sound ("test2.snd" :to-snd #f) (fm-violin 0 .1 440 .1))
       (insert-sound "test2.snd" 0 0 ind 0 #f #t)
-      (if (file-exists? "test1.snd") (snd-display ";auto-delete set-samples?"))
+      (if (file-exists? "test1.snd") (snd-display "auto-delete set-samples?"))
       (undo 1 ind)
       (with-sound ("test3.snd" :to-snd #f) (fm-violin 0 .1 440 .1))
       (insert-samples 0 2205 "test3.snd" ind 0 #f #t)  
-      (if (file-exists? "test2.snd") (snd-display ";auto-delete insert-sound?"))
+      (if (file-exists? "test2.snd") (snd-display "auto-delete insert-sound?"))
       (undo 1 ind)
       (with-sound ("test4.snd" :to-snd #f) (fm-violin 0 .1 440 .1))
       (mix "test4.snd" 0 0 ind 0 #f #t)
-      (if (file-exists? "test3.snd") (snd-display ";auto-delete insert-samples?"))
+      (if (file-exists? "test3.snd") (snd-display "auto-delete insert-samples?"))
       (undo 1 ind)
       (delete-sample 100)
-      (if (file-exists? "test4.snd") (snd-display ";auto-delete mix?"))
+      (if (file-exists? "test4.snd") (snd-display "auto-delete mix?"))
       (with-sound ("test5.snd" :to-snd #f) (fm-violin 0 .1 440 .1))
       (mix "test5.snd" 0 0 ind 0 #t #t)
       (revert-sound ind)
       (close-sound ind)
-      (if (file-exists? "test5.snd") (snd-display ";auto-delete mix (with-tag)?")))
+      (if (file-exists? "test5.snd") (snd-display "auto-delete mix (with-tag)?")))
     )        
   
   (let ((o2 (optkey-1 1)))
-    (if (not (eqv? o2 1)) (snd-display ";optkey-1: ~A" o2)))
+    (if (not (eqv? o2 1)) (snd-display "optkey-1: ~A" o2)))
   (let ((o2 (optkey-1 :a 1)))
-    (if (not (eqv? o2 1)) (snd-display ";optkey-1 1: ~A" o2)))
+    (if (not (eqv? o2 1)) (snd-display "optkey-1 1: ~A" o2)))
   (let ((o2 (optkey-1)))
-    (if o2 (snd-display ";optkey-1 2: ~A" o2)))
+    (if o2 (snd-display "optkey-1 2: ~A" o2)))
   (let ((o2 (optkey-2 1 2)))
-    (if (not (equal? o2 '(1 2))) (snd-display ";optkey-2: ~A" o2)))
+    (if (not (equal? o2 '(1 2))) (snd-display "optkey-2: ~A" o2)))
   (let ((o2 (optkey-2 :a 1 :b 2)))
-    (if (not (equal? o2 '(1 2))) (snd-display ";optkey-2 1: ~A" o2)))
+    (if (not (equal? o2 '(1 2))) (snd-display "optkey-2 1: ~A" o2)))
   (let ((o2 (optkey-2)))
-    (if (not (equal? o2 '(3 #f))) (snd-display ";optkey-2 2: ~A" o2)))
+    (if (not (equal? o2 '(3 #f))) (snd-display "optkey-2 2: ~A" o2)))
   (let ((o2 (optkey-2 1 :b 2)))
-    (if (not (equal? o2 '(1 2))) (snd-display ";optkey-2 3: ~A" o2)))
+    (if (not (equal? o2 '(1 2))) (snd-display "optkey-2 3: ~A" o2)))
   (let ((o2 (optkey-3 1 2 3)))
-    (if (not (equal? o2 '(1 2 3))) (snd-display ";optkey-3: ~A" o2)))
+    (if (not (equal? o2 '(1 2 3))) (snd-display "optkey-3: ~A" o2)))
   (let ((o2 (optkey-3 1 :b 2 :c 3)))
-    (if (not (equal? o2 '(1 2 3))) (snd-display ";optkey-3 1: ~A" o2)))
+    (if (not (equal? o2 '(1 2 3))) (snd-display "optkey-3 1: ~A" o2)))
   (let ((o2 (optkey-3 1 2 :c 3)))
-    (if (not (equal? o2 '(1 2 3))) (snd-display ";optkey-3 2: ~A" o2)))
+    (if (not (equal? o2 '(1 2 3))) (snd-display "optkey-3 2: ~A" o2)))
   (let ((o2 (optkey-4)))
-    (if (not (equal? o2 '(1 2 3 #f))) (snd-display ";optkey-4: ~A" o2)))
+    (if (not (equal? o2 '(1 2 3 #f))) (snd-display "optkey-4: ~A" o2)))
   (let ((o2 (optkey-4 1 :b 3 :c 4 :d 5)))
-    (if (not (equal? o2 '(1 3 4 5))) (snd-display ";optkey-4 1: ~A 1" o2)))
+    (if (not (equal? o2 '(1 3 4 5))) (snd-display "optkey-4 1: ~A 1" o2)))
   (let ((o2 (optkey-4 1 :d 5 :c 4 :b 3)))
-    (if (not (equal? o2 '(1 3 4 5))) (snd-display ";optkey-4 2: ~A 1" o2)))
+    (if (not (equal? o2 '(1 3 4 5))) (snd-display "optkey-4 2: ~A 1" o2)))
   (let ((o2 (optkey-4 1 3 4 5)))
-    (if (not (equal? o2 '(1 3 4 5))) (snd-display ";optkey-4 3: ~A 2" o2)))
+    (if (not (equal? o2 '(1 3 4 5))) (snd-display "optkey-4 3: ~A 2" o2)))
   
   (when (and (or (provided? 'snd-motif)
 		 (and (provided? 'snd-gtk) (defined? 'gtk_box_new)))
@@ -39492,7 +39492,7 @@ EDITS: 1
 	    ((= i 1000))
 	  (variable-display (variable-display (* (variable-display (sin (* (variable-display i wid1) .1)) wid3) .5) wid2) wid4)))
       (let ((tag (catch #t (lambda () (set! (sample 0 (car wid3) 0) .5)) (lambda args (car args)))))
-	(if (> (edit-position (car wid3) 0) 0) (snd-display ";edited variable graph? ~A ~A" tag (edit-position (car wid3) 0))))
+	(if (> (edit-position (car wid3) 0) 0) (snd-display "edited variable graph? ~A ~A" tag (edit-position (car wid3) 0))))
       ((if (provided? 'snd-motif)
 	  (*motif* 'XtUnmanageChild)
 	  (*gtk* 'gtk_widget_hide))
@@ -39500,18 +39500,18 @@ EDITS: 1
       (close-sound (car wid3))
       (close-sound (car wid4))))
   
-  (if (not (= *clm-srate* *default-output-srate*)) (snd-display ";*clm-srate*: ~A ~A" *clm-srate* *default-output-srate*))
-  (if (not (= *clm-channels* *default-output-chans*)) (snd-display ";*clm-channels*: ~A ~A" *clm-channels* *default-output-chans*))
-  (if (not (= *clm-header-type* *default-output-header-type*)) (snd-display ";*clm-header-type*: ~A ~A" *clm-header-type* *default-output-header-type*))
-					;	(if (not (= *clm-sample-type* *default-output-sample-type*)) (snd-display ";*clm-sample-type*: ~A ~A" *clm-sample-type* *default-output-sample-type*))
-  (if (not (= *clm-reverb-channels* 1)) (snd-display ";*clm-reverb-channels*: ~A" *clm-reverb-channels*))
-  (if (not (string=? *clm-file-name* "test.snd")) (snd-display ";*clm-file-name*: ~A" *clm-file-name*))
-  (if *clm-play* (snd-display ";*clm-play*: ~A" *clm-play*))
-  (if *clm-verbose* (snd-display ";*clm-verbose*: ~A" *clm-verbose*))
-  (if *clm-statistics* (snd-display ";*clm-statistics*: ~A" *clm-statistics*))
-  (if *clm-reverb* (snd-display ";*clm-reverb*: ~A" *clm-reverb*))
-  (if (pair? *clm-reverb-data*) (snd-display ";*clm-reverb-data*: ~A?" *clm-reverb-data*))
-  (if *clm-delete-reverb* (snd-display ";*clm-delete-reverb*: ~A" *clm-delete-reverb*))
+  (if (not (= *clm-srate* *default-output-srate*)) (snd-display "*clm-srate*: ~A ~A" *clm-srate* *default-output-srate*))
+  (if (not (= *clm-channels* *default-output-chans*)) (snd-display "*clm-channels*: ~A ~A" *clm-channels* *default-output-chans*))
+  (if (not (= *clm-header-type* *default-output-header-type*)) (snd-display "*clm-header-type*: ~A ~A" *clm-header-type* *default-output-header-type*))
+					;	(if (not (= *clm-sample-type* *default-output-sample-type*)) (snd-display "*clm-sample-type*: ~A ~A" *clm-sample-type* *default-output-sample-type*))
+  (if (not (= *clm-reverb-channels* 1)) (snd-display "*clm-reverb-channels*: ~A" *clm-reverb-channels*))
+  (if (not (string=? *clm-file-name* "test.snd")) (snd-display "*clm-file-name*: ~A" *clm-file-name*))
+  (if *clm-play* (snd-display "*clm-play*: ~A" *clm-play*))
+  (if *clm-verbose* (snd-display "*clm-verbose*: ~A" *clm-verbose*))
+  (if *clm-statistics* (snd-display "*clm-statistics*: ~A" *clm-statistics*))
+  (if *clm-reverb* (snd-display "*clm-reverb*: ~A" *clm-reverb*))
+  (if (pair? *clm-reverb-data*) (snd-display "*clm-reverb-data*: ~A?" *clm-reverb-data*))
+  (if *clm-delete-reverb* (snd-display "*clm-delete-reverb*: ~A" *clm-delete-reverb*))
   
   (let-temporarily ((*clm-statistics* #t))
     (set! *clm-channels* 2)
@@ -39529,24 +39529,24 @@ EDITS: 1
     
     (let ((ind (find-sound "test.wav")))
       (if (not (sound? ind))
-	  (snd-display ";default output in ws: ~A" (map file-name (sounds)))
+	  (snd-display "default output in ws: ~A" (map file-name (sounds)))
 	  (begin
-	    (if (not (= (srate ind) 44100)) (snd-display ";default srate in ws: ~A ~A" (srate ind) *clm-srate*))
-	    (if (not (= (channels ind) 2)) (snd-display ";default chans in ws: ~A ~A" (channels ind) *clm-channels*))
-	    (if (not (= (sample-type ind) mus-mulaw)) (snd-display ";default format in ws: ~A ~A" (sample-type ind) *clm-sample-type*))
-	    (if (not (= (header-type ind) mus-riff)) (snd-display ";default type in ws: ~A ~A" (header-type ind) *clm-header-type*))
-	    (if (> (abs (- (framples ind) 88200)) 1) (snd-display ";reverb+1 sec out in ws: ~A" (framples ind)))
-	    (if (file-exists? "test.rev") (snd-display ";perhaps reverb not deleted in ws?"))
+	    (if (not (= (srate ind) 44100)) (snd-display "default srate in ws: ~A ~A" (srate ind) *clm-srate*))
+	    (if (not (= (channels ind) 2)) (snd-display "default chans in ws: ~A ~A" (channels ind) *clm-channels*))
+	    (if (not (= (sample-type ind) mus-mulaw)) (snd-display "default format in ws: ~A ~A" (sample-type ind) *clm-sample-type*))
+	    (if (not (= (header-type ind) mus-riff)) (snd-display "default type in ws: ~A ~A" (header-type ind) *clm-header-type*))
+	    (if (> (abs (- (framples ind) 88200)) 1) (snd-display "reverb+1 sec out in ws: ~A" (framples ind)))
+	    (if (file-exists? "test.rev") (snd-display "perhaps reverb not deleted in ws?"))
 	    (close-sound ind))))
     
     (let ((val 0))
       (let-temporarily ((*clm-notehook* (lambda args (set! val 1))))
 	(with-sound () (fm-violin 0 .1 440 .1))
-	(if (not (= val 1)) (snd-display ";*clm-notehook*: ~A ~A" val *clm-notehook*))
+	(if (not (= val 1)) (snd-display "*clm-notehook*: ~A ~A" val *clm-notehook*))
 	(with-sound (:notehook (lambda args (set! val 2))) (fm-violin 0 .1 440 .1))
-	(if (not (= val 2)) (snd-display ";:notehook: ~A" val))
+	(if (not (= val 2)) (snd-display ":notehook: ~A" val))
 	(with-sound () (fm-violin 0 .1 440 .1))
-	(if (not (= val 1)) (snd-display ";*clm-notehook* (1): ~A ~A" val *clm-notehook*))))
+	(if (not (= val 1)) (snd-display "*clm-notehook* (1): ~A ~A" val *clm-notehook*))))
     
     (set! *clm-channels* 1)
     (set! *clm-srate* 22050)
@@ -39698,27 +39698,27 @@ EDITS: 1
 		 (fm-violin 0 .1 440 pi)))
 	 (ind (find-sound file))
 	 (mx (maxamp ind)))
-    (if (fneq mx pi) (snd-display ";clipped #f: ~A" mx))
+    (if (fneq mx pi) (snd-display "clipped #f: ~A" mx))
     (close-sound ind)
     (set! file (with-sound (:clipped #t :sample-type mus-lfloat :header-type mus-next)
 		 (fm-violin 0 .1 440 pi)))
     (set! ind (find-sound file))
     (set! mx (maxamp ind))
-    (if (fneq mx 1.0) (snd-display ";clipped #t: ~A" mx))
+    (if (fneq mx 1.0) (snd-display "clipped #t: ~A" mx))
     
     (close-sound ind)
     (set! file (with-sound (:sample-type mus-lfloat :header-type mus-next :scaled-by .1 :clipped #f)
 		 (fm-violin 0 .1 440 pi)))
     (set! ind (find-sound file))
     (set! mx (maxamp ind))
-    (if (fneq mx .314159) (snd-display ";scaled-by ~A" mx))
+    (if (fneq mx .314159) (snd-display "scaled-by ~A" mx))
     
     (close-sound ind)
     (set! file (with-sound (:sample-type mus-lfloat :header-type mus-next :scaled-to .1 :clipped #f)
 		 (fm-violin 0 .1 440 pi)))
     (set! ind (find-sound file))
     (set! mx (maxamp ind))
-    (if (fneq mx .1) (snd-display ";scaled-to ~A" mx))
+    (if (fneq mx .1) (snd-display "scaled-to ~A" mx))
     
     (close-sound ind)
     (let-temporarily ((*clm-file-buffer-size* 1048576)
@@ -39732,9 +39732,9 @@ EDITS: 1
 		     (set! arrp *mus-array-print-length*)
 		     (fm-violin 0 .1 440 .1)))
 	(set! ind (find-sound file))
-	(if (not (= mx 1048576)) (snd-display ";*clm-file-buffer-size*: ~A" mx))
-	(if (not (= tsize 256)) (snd-display ";*clm-table-size*: ~A" tsize))
-	(if (not (= arrp 123)) (snd-display ";*clm-array-print-length*: ~A" arrp))
+	(if (not (= mx 1048576)) (snd-display "*clm-file-buffer-size*: ~A" mx))
+	(if (not (= tsize 256)) (snd-display "*clm-table-size*: ~A" tsize))
+	(if (not (= arrp 123)) (snd-display "*clm-array-print-length*: ~A" arrp))
 	(close-sound ind)))
     
     (set! file (with-sound () (fm-violin 0 3.0 440 .1)))
@@ -39743,12 +39743,12 @@ EDITS: 1
     (set! (x-bounds ind 0) (list 1.0 2.0))
     (set! file (with-sound () (fm-violin 0 4.0 440 .1)))
     (set! ind (find-sound file))
-    (if (fneq (amp-control ind) .5) (snd-display ";update ws amp: ~A" (amp-control ind)))
+    (if (fneq (amp-control ind) .5) (snd-display "update ws amp: ~A" (amp-control ind)))
     (if (or (fneq (car (x-bounds ind 0)) 1.0)
 	    (fneq (cadr (x-bounds ind 0)) 2.0))
-	(snd-display ";update ws bounds: ~A" (x-bounds ind)))
+	(snd-display "update ws bounds: ~A" (x-bounds ind)))
     
-    (if (not (= (->sample 1.0) (srate))) (snd-display ";1.0->sample: ~A" (->sample 1.0)))
+    (if (not (= (->sample 1.0) (srate))) (snd-display "1.0->sample: ~A" (->sample 1.0)))
     (close-sound ind)
     
     (set! file (with-sound (:reverb jc-reverb) (fm-violin 0 .1 440 .1 :reverb-amount .1)))
@@ -39756,12 +39756,12 @@ EDITS: 1
     (set! mx (maxamp ind))
     (set! file (with-sound (:reverb jc-reverb :reverb-data '(#f 12.0 (0 0 1 1 20 1 21 0))) (fm-violin 0 .1 440 .1 :reverb-amount .1)))
     (set! ind (find-sound file))
-    (if (<= (maxamp ind) mx) (snd-display ";reverb-data: ~A ~A" mx (maxamp ind)))
+    (if (<= (maxamp ind) mx) (snd-display "reverb-data: ~A ~A" mx (maxamp ind)))
     (close-sound ind))
   
   (let ((ind (open-sound "oboe.snd")))
     (step-src)
-    (if (> (abs (- (framples) 24602)) 100) (snd-display ";step-src framples: ~A (~A)" (framples) (edits)))
+    (if (> (abs (- (framples) 24602)) 100) (snd-display "step-src framples: ~A (~A)" (framples) (edits)))
     (close-sound ind))
   
   (let ((ind (find-sound
@@ -39779,11 +39779,11 @@ EDITS: 1
 		       (outa i (balance rg sig (env e2)))
 		       (outb i (balance rg1 sig (env e1)))
 		       (outc i (balance rg2 (* .1 (oscil o)) (env e2)))))
-		   (if (fneq (gain-avg rg) 1.4227) (snd-display ";rmsgain gain-avg: ~A" (gain-avg rg)))
-		   (if (not (= (rg2 'avgc) base-length)) (snd-display ";rmsgain count: ~A" (rg2 'avgc))))))))
+		   (if (fneq (gain-avg rg) 1.4227) (snd-display "rmsgain gain-avg: ~A" (gain-avg rg)))
+		   (if (not (= (rg2 'avgc) base-length)) (snd-display "rmsgain count: ~A" (rg2 'avgc))))))))
     (if (sound? ind)
 	(close-sound ind)
-	(snd-display ";with-sound balance?")))
+	(snd-display "with-sound balance?")))
   
   (let ((mg (make-oscil 100.0))
 	(gen (make-ssb-fm 1000))
@@ -39796,9 +39796,9 @@ EDITS: 1
   (if (not (provided? 'snd-dlocsig.scm))
       (catch #t 
 	(lambda () (load "dlocsig.scm"))
-	(lambda args (snd-display ";load dlocsig: ~A" args))))
+	(lambda args (snd-display "load dlocsig: ~A" args))))
   (if (not (defined? 'make-spiral-path))
-      (snd-display ";make-spiral-path is not defined, dlocsig is ~Aloaded"
+      (snd-display "make-spiral-path is not defined, dlocsig is ~Aloaded"
 		   (if (provided? 'snd-dlocsig.scm) "" "not "))
       (begin
 	
@@ -39866,7 +39866,7 @@ EDITS: 1
 	    ((= i c) v)
 	  (set! (v i) (sample n ind i)))))
     (if (not (vmus-arrays-equal? (frample 2438) (make-float-vector 5))) 
-	(snd-display ";freeverb 2438: ~A" (frample 2438)))
+	(snd-display "freeverb 2438: ~A" (frample 2438)))
     (if (not (vmus-arrays-equal? (frample 2439) (float-vector 0.04276562482118607 -0.0009843750158324838 0.00995312537997961 -0.0009843750158324838 0.001750000054016709)))
 	(format *stderr* ";freeverb 2439: ~A" (frample 2439)))
     (if (not (vmus-arrays-equal? (frample 4305) (float-vector 0.03010422177612782 -0.00203015236184001 0.007028832100331783 -0.001004761666990817 0.00125998433213681)))
@@ -39874,17 +39874,17 @@ EDITS: 1
     (close-sound))
   
   (let ((a4 (->frequency 'a4)))
-    (if (fneq a4 440.0) (snd-display ";a4->frequency: ~A" a4)))
+    (if (fneq a4 440.0) (snd-display "a4->frequency: ~A" a4)))
   (let ((a440 (->frequency 440.0)))
-    (if (fneq a440 440.0) (snd-display ";a440->frequency: ~A" a440)))
+    (if (fneq a440 440.0) (snd-display "a440->frequency: ~A" a440)))
   (let ((cs5 (->frequency 'cs5)))
-    (if (fneq cs5 554.365) (snd-display ";cs5->frequency: ~A" cs5)))
+    (if (fneq cs5 554.365) (snd-display "cs5->frequency: ~A" cs5)))
   (let ((df3 (->frequency 'df3)))
-    (if (fneq df3 138.591) (snd-display ";df3->frequency: ~A" df3)))
+    (if (fneq df3 138.591) (snd-display "df3->frequency: ~A" df3)))
   (let ((c1 (->frequency 'cn1)))
-    (if (fneq c1 32.703) (snd-display ";c1->frequency: ~A" c1)))
+    (if (fneq c1 32.703) (snd-display "c1->frequency: ~A" c1)))
   (let ((b8 (->frequency 'b8)))
-    (if (fneq b8 7902.132) (snd-display ";b8->frequency: ~A" b8)))
+    (if (fneq b8 7902.132) (snd-display "b8->frequency: ~A" b8)))
   
   (let ((violins (make-sample->file "violins.snd" 1 mus-ldouble mus-next))
 	(cellos (make-sample->file "cellos.snd" 1 mus-ldouble mus-next)))
@@ -39920,7 +39920,7 @@ EDITS: 1
 		      (c (csr))
 		      (f (fsr)))
 		  (if (fneq f (+ c v))
-		      (snd-display ";multi temp output: ~A != ~A + ~A" f v c))))
+		      (snd-display "multi temp output: ~A != ~A + ~A" f v c))))
 	      
 	      (free-sampler vsr)
 	      (free-sampler csr)
@@ -39931,71 +39931,71 @@ EDITS: 1
 	(if (file-exists? "cellos.snd") (delete-file "cellos.snd")))))
   
   (let ((v1 (with-sound ((make-float-vector 2210)) (fm-violin 0 .1 440 .1 :random-vibrato-amplitude 0.0))))
-    (if (fneq (float-vector-peak v1) .1) (snd-display ";with-sound -> float-vector fm-violin maxamp (opt): ~A" (float-vector-peak v1)))
+    (if (fneq (float-vector-peak v1) .1) (snd-display "with-sound -> float-vector fm-violin maxamp (opt): ~A" (float-vector-peak v1)))
     (let ((v2 (with-sound ((make-float-vector 2210)) (fm-violin 0 .1 440 .1 :random-vibrato-amplitude 0.0))))
-      (if (fneq (float-vector-peak v2) .1) (snd-display ";with-sound -> float-vector fm-violin maxamp: ~A" (float-vector-peak v2)))
-      (if (not (mus-arrays-equal? v1 v2)) (snd-display ";with-sound -> float-vector v1 v2 not equal?")))
+      (if (fneq (float-vector-peak v2) .1) (snd-display "with-sound -> float-vector fm-violin maxamp: ~A" (float-vector-peak v2)))
+      (if (not (mus-arrays-equal? v1 v2)) (snd-display "with-sound -> float-vector v1 v2 not equal?")))
     (sound-let ((tmp () (fm-violin 0 .1 440 .1 :random-vibrato-amplitude 0.0)))
 	       (let ((v3 (make-float-vector 2210)))
 		 (file->array tmp 0 0 2205 v3)
-		 (if (not (mus-arrays-equal? v1 v3)) (snd-display ";with-sound -> float-vector v1 v3 not equal?"))))
+		 (if (not (mus-arrays-equal? v1 v3)) (snd-display "with-sound -> float-vector v1 v3 not equal?"))))
     (with-sound (v1)
       (fm-violin 0 .1 440 .1 :random-vibrato-amplitude 0.0)
       (fm-violin 0 .1 440 .1 :random-vibrato-amplitude 0.0))
-    (if (fneq (float-vector-peak v1) .2) (snd-display ";with-sound -> float-vector fm-violin maxamp (opt 2): ~A" (float-vector-peak v1))))
+    (if (fneq (float-vector-peak v1) .2) (snd-display "with-sound -> float-vector fm-violin maxamp (opt 2): ~A" (float-vector-peak v1))))
   
   (let ((v1 (with-sound ((make-float-vector '(1 2210))) (fm-violin 0 .1 440 .1 :random-vibrato-amplitude 0.0))))
-    (if (fneq (maxamp v1) .1) (snd-display ";with-sound -> vector2 fm-violin maxamp (opt): ~A" (maxamp v1)))
+    (if (fneq (maxamp v1) .1) (snd-display "with-sound -> vector2 fm-violin maxamp (opt): ~A" (maxamp v1)))
     (let ((v2 (with-sound ((make-float-vector '(1 2210))) (fm-violin 0 .1 440 .1 :random-vibrato-amplitude 0.0))))
-      (if (fneq (maxamp v2) .1) (snd-display ";with-sound -> vector2 fm-violin maxamp: ~A" (maxamp v2)))
-      (if (not (mus-arrays-equal? v1 v2)) (snd-display ";with-sound -> vector2 v1 v2 not equal?")))
+      (if (fneq (maxamp v2) .1) (snd-display "with-sound -> vector2 fm-violin maxamp: ~A" (maxamp v2)))
+      (if (not (mus-arrays-equal? v1 v2)) (snd-display "with-sound -> vector2 v1 v2 not equal?")))
     (with-sound (v1)
       (fm-violin 0 .1 440 .1 :random-vibrato-amplitude 0.0)
       (fm-violin 0 .1 440 .1 :random-vibrato-amplitude 0.0))
-    (if (fneq (maxamp v1) .2) (snd-display ";with-sound -> vector2 fm-violin maxamp (opt 2): ~A" (maxamp v1))))
+    (if (fneq (maxamp v1) .2) (snd-display "with-sound -> vector2 fm-violin maxamp (opt 2): ~A" (maxamp v1))))
   
   (set! (locsig-type) mus-interp-linear)
   (let ((v1 (with-sound ((make-float-vector '(2 2210)))
-	      (if (not (= (mus-channels *output*) 2)) (snd-display ";with-sound *output* chans: ~A" (mus-channels *output*)))
+	      (if (not (= (mus-channels *output*) 2)) (snd-display "with-sound *output* chans: ~A" (mus-channels *output*)))
 	      (fm-violin 0 .1 440 .1 :degree 45 :random-vibrato-amplitude 0.0))))
     (when (fneq (maxamp v1) .05) 
-      (snd-display ";with-sound -> vector2 fm-violin maxamp (1 opt): ~A" (maxamp v1)))
+      (snd-display "with-sound -> vector2 fm-violin maxamp (1 opt): ~A" (maxamp v1)))
     (let ((v2 (with-sound ((make-float-vector '(2 2210))) 
 		(fm-violin 0 .1 440 .1 :degree 45 :random-vibrato-amplitude 0.0))))
       (when (fneq (maxamp v2) .05)
-	(snd-display ";with-sound -> vector2 fm-violin maxamp (2): ~A" (maxamp v2)))
-      (if (not (mus-arrays-equal? v1 v2)) (snd-display ";with-sound (2 chans) -> vector2 v1 v2 not equal?")))
+	(snd-display "with-sound -> vector2 fm-violin maxamp (2): ~A" (maxamp v2)))
+      (if (not (mus-arrays-equal? v1 v2)) (snd-display "with-sound (2 chans) -> vector2 v1 v2 not equal?")))
     (with-sound (v1)
       (fm-violin 0 .1 440 .1 :degree 0 :random-vibrato-amplitude 0.0)
       (fm-violin 0 .1 440 .1 :degree 0 :random-vibrato-amplitude 0.0))
-    (if (fneq (maxamp v1) .2) (snd-display ";with-sound -> vector2 fm-violin maxamp (opt 2): ~A" (maxamp v1))))
+    (if (fneq (maxamp v1) .2) (snd-display "with-sound -> vector2 fm-violin maxamp (opt 2): ~A" (maxamp v1))))
   
   (define (violin-note) (fm-violin 0 .1 440 .1 :random-vibrato-amplitude 0.0))
 
   (let ((v1 (with-sound ((make-float-vector 2210) :scaled-to .3) (violin-note))))
     (if (fneq (float-vector-peak v1) .3) 
-	(snd-display ";with-sound -> float-vector fm-violin maxamp (opt, scaled-to): ~A" (float-vector-peak v1)))
+	(snd-display "with-sound -> float-vector fm-violin maxamp (opt, scaled-to): ~A" (float-vector-peak v1)))
     (let ((v2 (with-sound ((make-float-vector 2210) :scaled-to .3) (violin-note))))
       (if (fneq (float-vector-peak v2) .3) 
-	  (snd-display ";with-sound -> float-vector fm-violin maxamp scaled-to: ~A" (float-vector-peak v2)))
-      (if (not (mus-arrays-equal? v1 v2)) (snd-display ";with-sound (scaled-to) -> float-vector v1 v2 not equal?")))
+	  (snd-display "with-sound -> float-vector fm-violin maxamp scaled-to: ~A" (float-vector-peak v2)))
+      (if (not (mus-arrays-equal? v1 v2)) (snd-display "with-sound (scaled-to) -> float-vector v1 v2 not equal?")))
     (with-sound (v1 :scaled-by 2.0)
       (violin-note)
       (violin-note))
-    (if (fneq (float-vector-peak v1) .4) (snd-display ";with-sound -> float-vector fm-violin maxamp (opt 2 scaled-by): ~A" (float-vector-peak v1))))
+    (if (fneq (float-vector-peak v1) .4) (snd-display "with-sound -> float-vector fm-violin maxamp (opt 2 scaled-by): ~A" (float-vector-peak v1))))
   
   (let ((v1 (with-sound ((make-float-vector '(1 2210)) :scaled-to .5) (violin-note))))
     (if (fneq (maxamp v1) .5) 
-	(snd-display ";with-sound -> vector2 fm-violin maxamp (opt, scaled-to): ~A" (maxamp v1)))
+	(snd-display "with-sound -> vector2 fm-violin maxamp (opt, scaled-to): ~A" (maxamp v1)))
     (let ((v2 (with-sound ((make-float-vector '(1 2210)) :scaled-to .5) (violin-note))))
       (if (fneq (maxamp v2) .5) 
-	  (snd-display ";with-sound -> vector2 fm-violin maxamp scaled-to: ~A" (maxamp v2)))
-      (if (not (mus-arrays-equal? v1 v2)) (snd-display ";with-sound scaled-to -> vector2 v1 v2 not equal?")))
+	  (snd-display "with-sound -> vector2 fm-violin maxamp scaled-to: ~A" (maxamp v2)))
+      (if (not (mus-arrays-equal? v1 v2)) (snd-display "with-sound scaled-to -> vector2 v1 v2 not equal?")))
     (with-sound (v1 :scaled-by 0.5)
       (violin-note)
       (violin-note))
     (if (fneq (maxamp v1) .1) 
-	(snd-display ";with-sound -> vector2 fm-violin maxamp (opt 2 scaled-by): ~A" (maxamp v1))))
+	(snd-display "with-sound -> vector2 fm-violin maxamp (opt 2 scaled-by): ~A" (maxamp v1))))
   
   (let ((stats-string ""))
     (with-sound ((make-float-vector 2210) :statistics (lambda (str) (set! stats-string str)))
@@ -40008,7 +40008,7 @@ EDITS: 1
 				    "\n;vector:\n  maxamp: 0.09999998\n  compute time: 0.000\n"
 				    "\n;vector:\n  maxamp: 0.1000\n  compute time: 0.180\n")
 		     string=?))
-	(snd-display ";with-sound to float-vector stats: [~A]" stats-string))
+	(snd-display "with-sound to float-vector stats: [~A]" stats-string))
     (with-sound ((make-float-vector '(1 2210)) :scaled-to .5 :statistics (lambda (str) (set! stats-string str)))
       (violin-note))
     (if (not (member stats-string '("\n;vector:\n  maxamp (before scaling): 0.1000\n  compute time: 0.000\n"
@@ -40019,7 +40019,7 @@ EDITS: 1
 				    "\n;vector:\n  maxamp (before scaling): 0.09999998\n  compute time: 0.000\n"
 				    "\n;vector:\n  maxamp (before scaling): 0.1000\n  compute time: 0.009\n")
 		     string=?))
-	(snd-display ";with-sound to float-vector stats: [~A]" stats-string))
+	(snd-display "with-sound to float-vector stats: [~A]" stats-string))
     
     (with-sound ((make-float-vector '(4 2210)) :channels 4 :statistics (lambda (str) (set! stats-string str)))
       (fm-violin 0 .1 440 .1 :degree 0 :random-vibrato-amplitude 0.0)
@@ -40034,11 +40034,11 @@ EDITS: 1
      ;; testing overwrites here -- just hope we don't crash...
      (let ((v1 (with-sound ((make-float-vector 20) :channels 1)
 		 (violin-note))))
-       (if (fneq (v1 0) 0.0) (snd-display ";overwrite float-vector with-sound: ~A (~A)" (v1 0) (float-vector-peak v1))))
+       (if (fneq (v1 0) 0.0) (snd-display "overwrite float-vector with-sound: ~A (~A)" (v1 0) (float-vector-peak v1))))
      
      (let ((v1 (with-sound ((make-float-vector 20) 4)
 		 (fm-violin 0 .1 440 .1 :degree 45 :random-vibrato-amplitude 0.0))))
-       (if (fneq (v1 0) 0.0) (snd-display ";overwrite float-vector with-sound (4): ~A (~A)" (v1 0) (float-vector-peak v1))))
+       (if (fneq (v1 0) 0.0) (snd-display "overwrite float-vector with-sound (4): ~A (~A)" (v1 0) (float-vector-peak v1))))
      
      (let ((v1 (with-sound ((make-float-vector '(4 20)) :channels 4)
 		 (fm-violin 0 .1 440 .1 :degree 0 :random-vibrato-amplitude 0.0)
@@ -40046,7 +40046,7 @@ EDITS: 1
 		 (fm-violin 0 .1 440 .3 :degree 180 :random-vibrato-amplitude 0.0)
 		 (fm-violin 0 .1 440 .4 :degree 270 :random-vibrato-amplitude 0.0))))
        (do ((i 0 (+ i 1))) ((= i 4))
-	 (if (fneq (v1 i 0) 0.0) (snd-display ";overwrite sd ~D with-sound: ~A" i (v1 i 0)))))
+	 (if (fneq (v1 i 0) 0.0) (snd-display "overwrite sd ~D with-sound: ~A" i (v1 i 0)))))
      
      (let ((v1 (with-sound ((make-float-vector '(2 20)) 4)
 		 (fm-violin 0 .1 440 .1 :degree 0 :random-vibrato-amplitude 0.0)
@@ -40054,7 +40054,7 @@ EDITS: 1
 		 (fm-violin 0 .1 440 .3 :degree 180 :random-vibrato-amplitude 0.0)
 		 (fm-violin 0 .1 440 .4 :degree 270 :random-vibrato-amplitude 0.0))))
        (do ((i 0 (+ i 1))) ((= i 2))
-	 (if (fneq (v1 i 0) 0.0) (snd-display ";overwrite sd (2) ~D with-sound: ~A" i (v1 i 0)))))
+	 (if (fneq (v1 i 0) 0.0) (snd-display "overwrite sd (2) ~D with-sound: ~A" i (v1 i 0)))))
      
      (let ((v1 (with-sound ((make-float-vector '(4 20)) :channels 1)
 		 (fm-violin 0 .1 440 .1 :degree 0 :random-vibrato-amplitude 0.0)
@@ -40062,174 +40062,174 @@ EDITS: 1
 		 (fm-violin 0 .1 440 .3 :degree 180 :random-vibrato-amplitude 0.0)
 		 (fm-violin 0 .1 440 .4 :degree 270 :random-vibrato-amplitude 0.0))))
        (do ((i 0 (+ i 1))) ((= i 4))
-	 (if (fneq (v1 i 0) 0.0) (snd-display ";overwrite sd (4) ~D with-sound: ~A" i (v1 i 0)))))
+	 (if (fneq (v1 i 0) 0.0) (snd-display "overwrite sd (4) ~D with-sound: ~A" i (v1 i 0)))))
      )
    '(0 3 6))
   
   ;; reverb cases parallel to above
   (let ((v1 (with-sound ((make-float-vector 44100) :reverb jc-reverb)
-	      (if (not (= (mus-length *output*) 44100)) (snd-display ";ws mus-length float-vector: ~A" (mus-length *output*)))
+	      (if (not (= (mus-length *output*) 44100)) (snd-display "ws mus-length float-vector: ~A" (mus-length *output*)))
 	      (fm-violin 0 .1 440 .1 :random-vibrato-amplitude 0.0 :reverb-amount 0.9))))
     (let ((v4 (with-sound ((make-float-vector 44100)) 
 		(violin-note))))
-      (if (mus-arrays-equal? v1 v4) (snd-display ";reverb output not written to float-vector?")))
+      (if (mus-arrays-equal? v1 v4) (snd-display "reverb output not written to float-vector?")))
     (if (< (float-vector-peak v1) .28)
-	(snd-display ";rev with-sound -> float-vector fm-violin maxamp (opt): ~A" (float-vector-peak v1)))
+	(snd-display "rev with-sound -> float-vector fm-violin maxamp (opt): ~A" (float-vector-peak v1)))
     (let ((v2 (float-vector-peak (with-sound ((make-float-vector 44100) :reverb jc-reverb) (fm-violin 0 .1 440 .1 :reverb-amount 0.9)))))
       (if (< v2 .28) 
-	  (snd-display ";rev with-sound -> float-vector fm-violin maxamp: ~A" v2)))
+	  (snd-display "rev with-sound -> float-vector fm-violin maxamp: ~A" v2)))
     (with-sound (v1 :channels 1 :reverb jc-reverb)
       (fm-violin 0 .1 440 .1 :reverb-amount 0.9)
       (fm-violin 0 .1 440 .1 :reverb-amount 0.9))
     (if (< (float-vector-peak v1) .28) 
-	(snd-display ";rev with-sound -> float-vector fm-violin maxamp (opt 2): ~A" (float-vector-peak v1))))
+	(snd-display "rev with-sound -> float-vector fm-violin maxamp (opt 2): ~A" (float-vector-peak v1))))
   
   (let ((v1 (with-sound ((make-float-vector '(1 44100)) :reverb jc-reverb) 
-	      (if (not (= (mus-length *output*) 44100)) (snd-display ";ws mus-length sd: ~A" (mus-length *output*)))
+	      (if (not (= (mus-length *output*) 44100)) (snd-display "ws mus-length sd: ~A" (mus-length *output*)))
 	      (fm-violin 0 .1 440 .1 :reverb-amount 0.9 :random-vibrato-amplitude 0.0))))
     (let ((v4 (with-sound ((make-float-vector '(1 44100))) 
 		(violin-note))))
-      (if (mus-arrays-equal? v1 v4) (snd-display ";reverb output not written to sd?")))
+      (if (mus-arrays-equal? v1 v4) (snd-display "reverb output not written to sd?")))
     (if (< (maxamp v1) .23) 
-	(snd-display ";rev with-sound -> vector2 fm-violin maxamp (opt): ~A" (maxamp v1)))
+	(snd-display "rev with-sound -> vector2 fm-violin maxamp (opt): ~A" (maxamp v1)))
     (let ((v2 (maxamp (with-sound ((make-float-vector '(1 44100)) :reverb jc-reverb) (fm-violin 0 .1 440 .1 :reverb-amount 0.9)))))
       (if (< v2 .23) 
-	  (snd-display ";rev with-sound -> vector2 fm-violin maxamp: ~A" v2)))
+	  (snd-display "rev with-sound -> vector2 fm-violin maxamp: ~A" v2)))
     (with-sound (v1 :reverb jc-reverb)
       (fm-violin 0 .1 440 .1 :reverb-amount 0.9)
       (fm-violin 0 .1 440 .1 :reverb-amount 0.9))
     (if (< (maxamp v1) .52) 
-	(snd-display ";with-sound -> vector2 fm-violin maxamp (opt 2): ~A" (maxamp v1))))
+	(snd-display "with-sound -> vector2 fm-violin maxamp (opt 2): ~A" (maxamp v1))))
   
   (set! (locsig-type) mus-interp-linear)
   (let ((v1 (with-sound ((make-float-vector '(2 44100)) :reverb jc-reverb)
 	      (if (not (= (mus-channels *output*) 2)) 
-		  (snd-display ";rev with-sound *output* chans: ~A" (mus-channels *output*)))
+		  (snd-display "rev with-sound *output* chans: ~A" (mus-channels *output*)))
 	      (fm-violin 0 .1 440 .1 :degree 45 :reverb-amount 0.9))))
     (when (< (maxamp v1) .23) 
-      (snd-display ";rev with-sound -> vector2 fm-violin maxamp (1 opt): ~A" (maxamp v1))
-      (snd-display ";rev with-sound -> vector2 fm-violin maxamp (2 opt): ~A" (maxamp v1)))
+      (snd-display "rev with-sound -> vector2 fm-violin maxamp (1 opt): ~A" (maxamp v1))
+      (snd-display "rev with-sound -> vector2 fm-violin maxamp (2 opt): ~A" (maxamp v1)))
     
     (let ((v2 (maxamp (with-sound ((make-float-vector '(2 44100)) :reverb jc-reverb) 
 			(fm-violin 0 .1 440 .1 :degree 45 :reverb-amount 0.9)))))
       (when (< v2 .23) 
-	(snd-display ";rev with-sound -> vector2 fm-violin maxamp (2): ~A" v2)
-	(snd-display ";rev with-sound -> vector2 fm-violin maxamp (2 2): ~A" v2)))
+	(snd-display "rev with-sound -> vector2 fm-violin maxamp (2): ~A" v2)
+	(snd-display "rev with-sound -> vector2 fm-violin maxamp (2 2): ~A" v2)))
     (with-sound (v1 :reverb jc-reverb)
       (fm-violin 0 .1 440 .1 :degree 0 :reverb-amount 0.9)
       (fm-violin 0 .1 440 .1 :degree 0 :reverb-amount 0.9))
     (if (< (maxamp v1) .5) 
-	(snd-display ";rev with-sound -> vector2 fm-violin maxamp (opt 2): ~A" (maxamp v1))))
+	(snd-display "rev with-sound -> vector2 fm-violin maxamp (opt 2): ~A" (maxamp v1))))
   
   (let ((v1 (with-sound ((make-float-vector 44100) :revfile (make-float-vector 44100) :reverb jc-reverb)
-	      (if (not (= (mus-length *output*) 44100)) (snd-display ";1 ws mus-length float-vector: ~A" (mus-length *output*)))
-	      (if (not (= (mus-length *reverb*) 44100)) (snd-display ";1 ws mus-length float-vector rev: ~A" (mus-length *reverb*)))
+	      (if (not (= (mus-length *output*) 44100)) (snd-display "1 ws mus-length float-vector: ~A" (mus-length *output*)))
+	      (if (not (= (mus-length *reverb*) 44100)) (snd-display "1 ws mus-length float-vector rev: ~A" (mus-length *reverb*)))
 	      (fm-violin 0 .1 440 .1 :random-vibrato-amplitude 0.0 :reverb-amount 0.9))))
     (let ((v4 (with-sound ((make-float-vector 44100)) 
 		(violin-note))))
-      (if (mus-arrays-equal? v1 v4) (snd-display ";1 reverb output not written to float-vector?")))
+      (if (mus-arrays-equal? v1 v4) (snd-display "1 reverb output not written to float-vector?")))
     (if (< (float-vector-peak v1) .28)
-	(snd-display ";1 rev with-sound -> float-vector fm-violin maxamp (opt): ~A" (float-vector-peak v1)))
+	(snd-display "1 rev with-sound -> float-vector fm-violin maxamp (opt): ~A" (float-vector-peak v1)))
     (let ((v2 (with-sound ((make-float-vector 44100) :revfile (make-float-vector 44100) :reverb jc-reverb) 
 		(fm-violin 0 .1 440 .1 :reverb-amount 0.9))))
       (if (< (float-vector-peak v2) .28) 
-	  (snd-display ";1 rev with-sound -> float-vector fm-violin maxamp: ~A" (float-vector-peak v2)))
+	  (snd-display "1 rev with-sound -> float-vector fm-violin maxamp: ~A" (float-vector-peak v2)))
       (with-sound (v1 :revfile v2 :channels 1 :reverb jc-reverb)
 	(fm-violin 0 .1 440 .1 :reverb-amount 0.9)
 	(fm-violin 0 .1 440 .1 :reverb-amount 0.9))
       (if (< (float-vector-peak v1) .28) 
-	  (snd-display ";1 rev with-sound -> float-vector fm-violin maxamp (opt 2): ~A" (float-vector-peak v1)))))
+	  (snd-display "1 rev with-sound -> float-vector fm-violin maxamp (opt 2): ~A" (float-vector-peak v1)))))
   
   (let ((v1 (with-sound ((make-float-vector '(1 44100)) :revfile (make-float-vector '(1 44100)) :reverb jc-reverb) 
-	      (if (not (= (mus-length *output*) 44100)) (snd-display ";ws mus-length sd: ~A" (mus-length *output*)))
+	      (if (not (= (mus-length *output*) 44100)) (snd-display "ws mus-length sd: ~A" (mus-length *output*)))
 	      (fm-violin 0 .1 440 .1 :reverb-amount 0.9 :random-vibrato-amplitude 0.0))))
     (let ((v4 (with-sound ((make-float-vector '(1 44100))) 
 		(violin-note))))
-      (if (mus-arrays-equal? v1 v4) (snd-display ";2 reverb output not written to sd?")))
+      (if (mus-arrays-equal? v1 v4) (snd-display "2 reverb output not written to sd?")))
     (if (< (maxamp v1) .28) 
-	(snd-display ";2 rev with-sound -> vector2 fm-violin maxamp (opt): ~A" (maxamp v1)))
+	(snd-display "2 rev with-sound -> vector2 fm-violin maxamp (opt): ~A" (maxamp v1)))
     (let ((v2 (with-sound ((make-float-vector '(1 44100)) :revfile (make-float-vector '(1 44100)) :reverb jc-reverb) 
 		(fm-violin 0 .1 440 .1 :reverb-amount 0.9))))
       (if (< (maxamp v2) .28) 
-	  (snd-display ";2 rev with-sound -> vector2 fm-violin maxamp: ~A" (maxamp v2)))
+	  (snd-display "2 rev with-sound -> vector2 fm-violin maxamp: ~A" (maxamp v2)))
       (with-sound (v1 :revfile v2 :reverb jc-reverb)
 	(fm-violin 0 .1 440 .1 :reverb-amount 0.9)
 	(fm-violin 0 .1 440 .1 :reverb-amount 0.9))
       (if (< (maxamp v1) .5) 
-	  (snd-display ";2 with-sound -> vector2 fm-violin maxamp (opt 2): ~A" (maxamp v1)))))
+	  (snd-display "2 with-sound -> vector2 fm-violin maxamp (opt 2): ~A" (maxamp v1)))))
   
   (set! (locsig-type) mus-interp-linear)
   (let ((v1 (with-sound ((make-float-vector '(2 44100)) :revfile (make-float-vector '(1 44100)) :reverb jc-reverb)
 	      (if (not (= (mus-channels *output*) 2)) 
-		  (snd-display ";3 rev with-sound *output* chans: ~A" (mus-channels *output*)))
+		  (snd-display "3 rev with-sound *output* chans: ~A" (mus-channels *output*)))
 	      (fm-violin 0 .1 440 .1 :degree 45 :reverb-amount 0.9))))
     (when (< (maxamp v1) .23) 
-      (snd-display ";3 rev with-sound -> vector2 fm-violin maxamp (1 opt): ~A" (maxamp v1))
-      (snd-display ";3 rev with-sound -> vector2 fm-violin maxamp (2 opt): ~A" (maxamp v1)))
+      (snd-display "3 rev with-sound -> vector2 fm-violin maxamp (1 opt): ~A" (maxamp v1))
+      (snd-display "3 rev with-sound -> vector2 fm-violin maxamp (2 opt): ~A" (maxamp v1)))
     (let ((v2 (with-sound ((make-float-vector '(2 44100)) :revfile (make-float-vector '(1 44100)) :reverb jc-reverb) 
 		(fm-violin 0 .1 440 .1 :degree 45 :reverb-amount 0.9))))
       (when (< (maxamp v2) .23) 
-	(snd-display ";3 rev with-sound -> vector2 fm-violin maxamp (2): ~A" (maxamp v2))
-	(snd-display ";3 rev with-sound -> vector2 fm-violin maxamp (2 2): ~A" (maxamp v2)))
+	(snd-display "3 rev with-sound -> vector2 fm-violin maxamp (2): ~A" (maxamp v2))
+	(snd-display "3 rev with-sound -> vector2 fm-violin maxamp (2 2): ~A" (maxamp v2)))
       (with-sound (v1 :revfile v2 :reverb jc-reverb)
 	(fm-violin 0 .1 440 .1 :degree 0 :reverb-amount 0.9)
 	(fm-violin 0 .1 440 .1 :degree 0 :reverb-amount 0.9))
       (if (< (maxamp v1) .55) 
-	  (snd-display ";3 rev with-sound -> vector2 fm-violin maxamp (opt 2): ~A" (maxamp v1)))))
+	  (snd-display "3 rev with-sound -> vector2 fm-violin maxamp (opt 2): ~A" (maxamp v1)))))
   
   (for-each
    (lambda (n)
      (let ((v2 (float-vector-peak (with-sound ((make-float-vector 400))
 				    (simple-outn 0 .01 440 .1 .2 .3 .4 0.0 0.0)))))
-       (if (fneq v2 0.1) (snd-display ";outa tests 2 ~A: ~A" n v2)))
+       (if (fneq v2 0.1) (snd-display "outa tests 2 ~A: ~A" n v2)))
      (let ((v3 (float-vector-peak (with-sound ((make-float-vector 400))
 				    (simple-outn 0 .01 440 0.0 .5 0.0 0.0 0.0 0.0)))))
-       (if (fneq v3 0.0) (snd-display ";outa tests 3 ~A: ~A" n v3)))
+       (if (fneq v3 0.0) (snd-display "outa tests 3 ~A: ~A" n v3)))
      (let ((v4 (float-vector-peak (with-sound ((make-float-vector 4410) :reverb jc-reverb)
 				    (simple-outn 0 .01 440 0.2 0.0 0.0 0.0 0.05 0.0)))))
-       (if (fneq v4 0.2) (snd-display ";outa tests 4 ~A: ~A" n v4)))
+       (if (fneq v4 0.2) (snd-display "outa tests 4 ~A: ~A" n v4)))
      (let ((v5 (float-vector-peak (with-sound ((make-float-vector 4410) :reverb simple-in-rev :reverb-data '(0.0 1.0 1.0 0.0))
 				    (simple-outn 0 .01 440 0.0 0.0 0.0 0.0 0.5 0.0)))))
-       (if (fneq v5 0.5) (snd-display ";outa tests 5 ~A: ~A" n v5)))
+       (if (fneq v5 0.5) (snd-display "outa tests 5 ~A: ~A" n v5)))
      (let ((v6 (float-vector-peak (with-sound ((make-float-vector 400))
 				    (simple-outn 0 .01 440 0.5 0.0 0.0 0.0 0.0 0.0)
 				    (simple-outn 0 .01 440 0.2 0.0 0.0 0.0 0.0 0.0)))))
-       (if (fneq v6 0.7) (snd-display ";outa tests 11 ~A: ~A" n v6)))
+       (if (fneq v6 0.7) (snd-display "outa tests 11 ~A: ~A" n v6)))
      (let ((mx1 (maxamp
 		 (with-sound ((make-float-vector '(1 4410)))
 		   (simple-outn 0 .01 440 .1 .2 .3 .4 0.0 0.0)))))
-       (if (fneq mx1 .1) (snd-display ";outa tests 6 ~A: ~A" n mx1)))
+       (if (fneq mx1 .1) (snd-display "outa tests 6 ~A: ~A" n mx1)))
      (let ((mx3 (maxamp
 		 (with-sound ((make-float-vector '(2 4410)))
 		   (simple-outn 0 .01 440 0.0 0.0 .3 .4 0.0 0.0)))))
-       (if (fneq mx3 0.0) (snd-display ";outa tests 8 ~A: ~A" n mx3)))
+       (if (fneq mx3 0.0) (snd-display "outa tests 8 ~A: ~A" n mx3)))
      (let ((mx4 (maxamp 
 		 (with-sound ((make-float-vector '(4 4410)) :reverb simple-in-rev :reverb-channels 2 :reverb-data '(0.0 1.0 1.0 1.0))
 		   (simple-outn 0 .01 440 0.0 0.0 0.0 0.0 0.5 0.25)))))
-       (if (fneq mx4 0.5) (snd-display ";outa tests 9 ~A: ~A" n mx4)))
+       (if (fneq mx4 0.5) (snd-display "outa tests 9 ~A: ~A" n mx4)))
      (let ((mx5 (maxamp
 		 (with-sound ((make-float-vector '(4 4410)) :reverb simple-in-rev :reverb-channels 1 :reverb-data '(0.0 1.0 1.0 1.0))
 		   (simple-outn 0 .01 440 0.0 0.0 0.0 0.0 0.5 0.25)))))
-       (if (fneq mx5 0.5) (snd-display ";outa tests 10 ~A: ~A" n mx5)))
+       (if (fneq mx5 0.5) (snd-display "outa tests 10 ~A: ~A" n mx5)))
      (let ((mx6 (maxamp
 		  (with-sound ((make-float-vector '(4 4410)))
 		   (simple-outn 0 .01 440 .1 .2 .3 .4 0.0 0.0)
 		   (simple-outn 0 .01 440 .1 .2 .3 .4 0.0 0.0)))))
-       (if (fneq mx6 .8) (snd-display ";outa tests 12 ~A: ~A" n mx6)))
+       (if (fneq mx6 .8) (snd-display "outa tests 12 ~A: ~A" n mx6)))
      (let ((v1 (with-sound ((make-float-vector 4410))
 		 (simple-outn 0 .01 440 .1 .2 .3 .4 0.0 0.0))))
-       (if (fneq (float-vector-peak v1) 0.1) (snd-display ";outa tests 1 ~A: ~A" n (float-vector-peak v1)))
+       (if (fneq (float-vector-peak v1) 0.1) (snd-display "outa tests 1 ~A: ~A" n (float-vector-peak v1)))
        (with-sound (v1 :continue-old-file #t)
 	 (simple-outn 0 .1 440 .1 .2 .3 .4 0.0 0.0))
-       (if (fneq (float-vector-peak v1) 0.2) (snd-display ";outa tests 13 ~A: ~A" n (float-vector-peak v1)))
+       (if (fneq (float-vector-peak v1) 0.2) (snd-display "outa tests 13 ~A: ~A" n (float-vector-peak v1)))
        (let ((sd2 (with-sound ((make-float-vector '(4 4410)))
 		    (simple-outn 0 .01 440 .1 .2 .3 .4 0.0 0.0))))
 	 (let ((mx2 (maxamp sd2)))
-	   (if (fneq mx2 .4) (snd-display ";outa tests 7 ~A: ~A" n mx2)))
+	   (if (fneq mx2 .4) (snd-display "outa tests 7 ~A: ~A" n mx2)))
 	 (with-sound (sd2 :continue-old-file #t)
 	   (simple-outn 0 .1 440 .1 .2 .3 .4 0.0 0.0))
 	 (let ((mx7 (maxamp sd2)))
-	   (if (fneq mx7 .8) (snd-display ";outa tests 14 ~A: ~A" n mx7))))))
+	   (if (fneq mx7 .8) (snd-display "outa tests 14 ~A: ~A" n mx7))))))
    '(0 6))
   
   (let ((ind (find-sound
@@ -40244,11 +40244,11 @@ EDITS: 1
 		     (outa i (+ (v1 i) (sd1 0 i)))))
 		 (fm-violin 0 .1 220.0 .1 :random-vibrato-amplitude 0.0)))))
     (if (not (sound? ind))
-	(snd-display ";can't find mixed with-sound output")
+	(snd-display "can't find mixed with-sound output")
 	(let ((mx (maxamp ind 0)))
-	  (if (< mx .35) (snd-display ";mixed with-sound max: ~A" mx))
+	  (if (< mx .35) (snd-display "mixed with-sound max: ~A" mx))
 	  (if (not (mus-arrays-equal? (channel->float-vector 1000 10) (float-vector 0.255 0.275 0.316 0.364 0.391 0.379 0.337 0.283 0.228 0.170)))
-	      (snd-display ";mixed with-sound: ~A" (channel->float-vector 1000 10)))
+	      (snd-display "mixed with-sound: ~A" (channel->float-vector 1000 10)))
 	  (close-sound ind))))
   
   (let ((ind (find-sound
@@ -40266,48 +40266,48 @@ EDITS: 1
 			      (outa i (+ (v1 i) (sd1 0 i)))))
 		 (fm-violin 0 .1 220.0 .1 :random-vibrato-amplitude 0.0)))))
     (if (not (sound? ind))
-	(snd-display ";can't find mixed with-sound sound-let output")
+	(snd-display "can't find mixed with-sound sound-let output")
 	(let ((mx (maxamp ind 0)))
-	  (if (< mx .375) (snd-display ";mixed with-sound max: ~A" mx))
+	  (if (< mx .375) (snd-display "mixed with-sound max: ~A" mx))
 	  (if (not (mus-arrays-equal? (channel->float-vector 1000 10) (float-vector 0.349 0.370 0.412 0.461 0.489 0.478 0.436 0.383 0.328 0.270)))
-	      (snd-display ";mixed with-sound via sound-let: ~A" (channel->float-vector 1000 10)))
+	      (snd-display "mixed with-sound via sound-let: ~A" (channel->float-vector 1000 10)))
 	  (close-sound ind))))
   
   
   (let ((snd (find-sound (with-mixed-sound () (fm-violin 0 .1 440 .1)))))
-    (if (not (sound? snd)) (snd-display ";with-mixed-sound (1): ~A?" res))
+    (if (not (sound? snd)) (snd-display "with-mixed-sound (1): ~A?" res))
     (let ((mxs (mixes snd 0))
 	  (info (sound-property 'with-mixed-sound-info snd)))
       (if (not (pair? mxs))
-	  (snd-display ";with-mixed-sound (1) mixes: ~A" mxs))
+	  (snd-display "with-mixed-sound (1) mixes: ~A" mxs))
       (if (not (and (equal? (car (info 0)) (car mxs))
 		    (= (cadr (info 0)) 0)
 		    (= (caddr (info 0)) 1)))
-	  (snd-display ";with-mixed-sound info (1) 0: ~A" (info 0))))
+	  (snd-display "with-mixed-sound info (1) 0: ~A" (info 0))))
     (if (ffneq (maxamp snd) .1)
-	(snd-display ";with-mixed-sound (1) 0: ~A" (maxamp snd)))
+	(snd-display "with-mixed-sound (1) 0: ~A" (maxamp snd)))
     (close-sound snd))
   
   (let ((snd (find-sound (with-mixed-sound (:srate 44100) 
 					   (fm-violin 0 .1 440 .1) 
 					   (fm-violin 1 .1 660 .1)))))
-    (if (not (sound? snd)) (snd-display ";with-mixed-sound (2): ~A?" res))
+    (if (not (sound? snd)) (snd-display "with-mixed-sound (2): ~A?" res))
     (let ((mxs (mixes snd 0))
 	  (info (sound-property 'with-mixed-sound-info snd)))
       (if (not (and (pair? mxs)
 		    (= (length mxs) 2)))
-	  (snd-display ";with-mixed-sound mixes (2): ~A" mxs))
+	  (snd-display "with-mixed-sound mixes (2): ~A" mxs))
       (if (not (and (equal? (car (info 0)) (car mxs))
 		    (= (cadr (info 0)) 0)
 		    (= (caddr (info 0)) 1)))
-	  (snd-display ";with-mixed-sound info (2) 0: ~A" (info 0)))
+	  (snd-display "with-mixed-sound info (2) 0: ~A" (info 0)))
       (if (not (and (equal? (car (info 1)) (cadr mxs))
 		    (= (cadr (info 1)) 44100)
 		    (= (caddr (info 1)) 1)))
-	  (snd-display ";with-mixed-sound info (2) 1: ~A" (info 1)))
+	  (snd-display "with-mixed-sound info (2) 1: ~A" (info 1)))
       (if (or (not (member (framples snd) '(48510 48511) =))
 	      (fneq (maxamp snd) .1))
-	  (snd-display ";with-mixed-sound 0 (2): ~A ~A" (framples snd) (maxamp snd)))
+	  (snd-display "with-mixed-sound 0 (2): ~A ~A" (framples snd) (maxamp snd)))
       (close-sound snd)))
   
   (let ((snd (find-sound (with-mixed-sound (:channels 2 :srate 44100) 
@@ -40319,7 +40319,7 @@ EDITS: 1
 		    (= (length (car mxs)) 2)
 		    (= (length info) 2)
 		    (equal? (caar info) (caar mxs))))
-	  (snd-display ";with-mixed-sound (3) 1: ~A ~A" mxs info))
+	  (snd-display "with-mixed-sound (3) 1: ~A ~A" mxs info))
       (close-sound snd)))
   
   (let* ((snd (find-sound (with-marked-sound () 
@@ -40327,12 +40327,12 @@ EDITS: 1
 					     (fm-violin 1 .1 660 .1))))
 	 (mxs (marks snd 0)))
     (if (not (= (length mxs) 2))
-	(snd-display ";with-marked-sound marks: ~A " mxs)
+	(snd-display "with-marked-sound marks: ~A " mxs)
 	(begin
 	  (if (not (string=? (mark-name (car mxs)) "fm-violin 0 0.1"))
-	      (snd-display ";with-marked-sound name: ~A" (mark-name (car mxs))))
+	      (snd-display "with-marked-sound name: ~A" (mark-name (car mxs))))
 	  (if (fneq (maxamp snd) .1)
-	      (snd-display ";with-marked-sound maxamp: ~A" (maxamp snd)))))
+	      (snd-display "with-marked-sound maxamp: ~A" (maxamp snd)))))
     (close-sound snd))
   
   (set! (hook-functions mark-click-hook) ())
@@ -40347,8 +40347,8 @@ EDITS: 1
 				 (i 0 (+ i 1)))
 				((= i base-length))
 			      (outa i (ercos gen)))))))
-    (if (not (sound? snd)) (snd-display ";ercos: ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";ercos max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "ercos: ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "ercos max: ~A" (maxamp snd))))
     
   (let ((snd (find-sound (with-sound (:clipped #f)  
 			   (let ((gen (make-ercos 100 :r 0.1)))
@@ -40365,48 +40365,48 @@ EDITS: 1
 				   (set! offset (/ (- 1.0 exp-t) (* 2.0 exp-t)))
 				   (set! scaler (* (sinh r) offset)))
 				 (outa i (ercos g)))))))))
-    (if (not (sound? snd)) (snd-display ";ercos 1: ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";ercos 1 max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "ercos 1: ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "ercos 1 max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-erssb 1000.0 0.1 1.0))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (erssb gen)))))))
-    (if (not (sound? snd)) (snd-display ";erssb: ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";erssb max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "erssb: ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "erssb max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-noddsin 100 :n 10))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (noddsin gen)))))))
-    (if (not (sound? snd)) (snd-display ";noddsin: ~A" snd))
-    (if (ffneq (maxamp snd) 1.0) (snd-display ";noddsin max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "noddsin: ~A" snd))
+    (if (ffneq (maxamp snd) 1.0) (snd-display "noddsin max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-noddcos 100 :n 10))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (noddcos gen)))))))
-    (if (not (sound? snd)) (snd-display ";noddcos: ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";noddcos max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "noddcos: ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "noddcos max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-noddssb 1000.0 0.1 5))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (noddssb gen)))))))
-    (if (not (sound? snd)) (snd-display ";noddssb: ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";noddssb max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "noddssb: ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "noddssb max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f) 
 			   (do ((gen (make-asyfm 2000.0 :ratio .1))
 				(i 0 (+ i 1)))
 			       ((= i 1000))
 			     (outa i (asyfm-J gen)))))))
-    (if (not (sound? snd)) (snd-display ";asyfm-J ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";asyfm-J max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "asyfm-J ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "asyfm-J max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f) 
 			   (do ((gen (make-asyfm 2000.0 :ratio .1 :index 1))
@@ -40415,24 +40415,24 @@ EDITS: 1
 			       ((= i base-length))
 			     (set! (gen 'r) (env r-env))
 			     (outa i (asyfm-J gen)))))))
-    (if (not (sound? snd)) (snd-display ";asyfm-J1 ~A" snd))
-    (if (ffneq (maxamp snd) 1.0) (snd-display ";asyfm-J1 max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "asyfm-J1 ~A" snd))
+    (if (ffneq (maxamp snd) 1.0) (snd-display "asyfm-J1 max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f) 
 			   (do ((gen (make-asyfm 2000.0 :ratio .1))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (asyfm-I gen)))))))
-    (if (not (sound? snd)) (snd-display ";asyfm-I ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";asyfm-I max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "asyfm-I ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "asyfm-I max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f :statistics #t)
 			   (do ((gen (make-nrcos 400.0 :n 5 :r 0.5))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (nrcos gen)))))))
-    (if (not (sound? snd)) (snd-display ";nrcos ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";nrcos max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "nrcos ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "nrcos max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((samps base-length)
@@ -40440,8 +40440,8 @@ EDITS: 1
 				(i 0 (+ i 1)))
 			       ((= i samps))
 			     (outa i (noid gen)))))))
-    (if (not (sound? snd)) (snd-display ";noid ~A" snd))
-    (if (ffneq (maxamp snd) 0.6599) (snd-display ";noid min-peak max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "noid ~A" snd))
+    (if (ffneq (maxamp snd) 0.6599) (snd-display "noid min-peak max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((samps base-length)
@@ -40449,8 +40449,8 @@ EDITS: 1
 				(i 0 (+ i 1)))
 			       ((= i samps))
 			     (outa i (noid gen)))))))
-    (if (not (sound? snd)) (snd-display ";noid ~A" snd))
-    (if (ffneq (maxamp snd) 1.0) (snd-display ";noid max-peak max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "noid ~A" snd))
+    (if (ffneq (maxamp snd) 1.0) (snd-display "noid max-peak max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (let ((gen (make-nrcos 100 :n 15 :r 0.5))
@@ -40460,7 +40460,7 @@ EDITS: 1
 				   ((= i base-length))
 				 (set-nrcos-scaler gen (env indr))
 				 (outa i (nrcos gen)))))))))
-    (if (not (sound? snd)) (snd-display ";nrcos with scaler ~A" snd))
+    (if (not (sound? snd)) (snd-display "nrcos with scaler ~A" snd))
     ;; this is not a new problem -- was the scaler supposed to fix maxamp?
     )
   
@@ -40469,48 +40469,48 @@ EDITS: 1
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (ncos2 gen)))))))
-    (if (not (sound? snd)) (snd-display ";ncos2 ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";ncos2 max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "ncos2 ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "ncos2 max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-ncos4 100.0 :n 10))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (ncos4 gen)))))))
-    (if (not (sound? snd)) (snd-display ";ncos4 ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";ncos4 max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "ncos4 ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "ncos4 max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-npcos 100.0 :n 10))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (npcos gen)))))))
-    (if (not (sound? snd)) (snd-display ";npcos ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";npcos max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "npcos ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "npcos max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-n1cos 100.0 :n 10))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (n1cos gen)))))))
-    (if (not (sound? snd)) (snd-display ";n1cos ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";n1cos max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "n1cos ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "n1cos max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-rcos 100.0 :r 0.5))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (rcos gen)))))))
-    (if (not (sound? snd)) (snd-display ";rcos ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";rcos max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "rcos ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "rcos max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-bess 100.0 :n 0))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (bess gen)))))))
-    (if (not (sound? snd)) (snd-display ";bess ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";bess max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "bess ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "bess max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen1 (make-bess 400.0 :n 1))
@@ -40519,8 +40519,8 @@ EDITS: 1
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (bess gen1 (* (env vol) (bess gen2 0.0)))))))))
-    (if (not (sound? snd)) (snd-display ";bess 1 ~A" snd))
-    (if (ffneq (maxamp snd) 1.0) (snd-display ";bess 1 max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "bess 1 ~A" snd))
+    (if (ffneq (maxamp snd) 1.0) (snd-display "bess 1 max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen1 (make-bess 400.0 :n 1))
@@ -40529,16 +40529,16 @@ EDITS: 1
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (bess gen1 (* (env vol) (oscil gen2 0.0)))))))))
-    (if (not (sound? snd)) (snd-display ";bess 2 ~A" snd))
-    (if (ffneq (maxamp snd) 1.0) (snd-display ";bess 2 max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "bess 2 ~A" snd))
+    (if (ffneq (maxamp snd) 1.0) (snd-display "bess 2 max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-eoddcos 400.0 :r 1.0))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (eoddcos gen)))))))
-    (if (not (sound? snd)) (snd-display ";eoddcos ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";eoddcos max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "eoddcos ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "eoddcos max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-eoddcos 400.0 :r 0.0))
@@ -40547,8 +40547,8 @@ EDITS: 1
 			       ((= i base-length))
 			     (set! (gen 'r) (env a-env))
 			     (outa i (eoddcos gen)))))))
-    (if (not (sound? snd)) (snd-display ";eoddcos 1 ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";eoddcos 1 max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "eoddcos 1 ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "eoddcos 1 max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (let ((gen1 (make-eoddcos 400.0 :r 0.0))
@@ -40558,16 +40558,16 @@ EDITS: 1
 				 ((= i base-length))
 			       (set! (gen1 'r) (env a-env))
 			       (outa i (eoddcos gen1 (* .1 (oscil gen2))))))))))
-    (if (not (sound? snd)) (snd-display ";eoddcos 2 ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";eoddcos 2 max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "eoddcos 2 ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "eoddcos 2 max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-nssb 2000.0 0.05 3))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (* .3 (nssb gen))))))))
-    (if (not (sound? snd)) (snd-display ";nssb ~A" snd))
-    (if (fneq (maxamp snd) 0.3) (snd-display ";nssb max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "nssb ~A" snd))
+    (if (fneq (maxamp snd) 0.3) (snd-display "nssb max: ~A" (maxamp snd))))
   
   (let ()
     (define (test-nssb-0)
@@ -40578,11 +40578,11 @@ EDITS: 1
 	  (let ((v1 (nssb g1 1.0))
 		(v2 (nssb g2 1.0)))
 	    (if (> (abs (- v1 v2)) 1e-6)
-		(snd-display ";nssb ~D (0): ~A ~A" i v1 v2)))
+		(snd-display "nssb ~D (0): ~A ~A" i v1 v2)))
 	  (let ((v1 (nssb g1 0.0))
 		(v2 (nssb g2)))
 	    (if (> (abs (- v1 v2)) 1e-6)
-		(snd-display ";nssb ~D (1): ~A ~A" i v1 v2))))))
+		(snd-display "nssb ~D (1): ~A ~A" i v1 v2))))))
     
     (test-nssb-0)
     (test-nssb-0)
@@ -40590,13 +40590,13 @@ EDITS: 1
     (define (test-nssb-1)
       (let ((g1 (make-nssb 10.0 1.0 1.0)))
 	(nssb g1 1.0)
-	(if (not (= (g1 'fm) 1.0)) (snd-display ";nssb 1: ~A" (g1 'fm)))
+	(if (not (= (g1 'fm) 1.0)) (snd-display "nssb 1: ~A" (g1 'fm)))
 	(nssb g1 0.0)
-	(if (not (= (g1 'fm) 0.0)) (snd-display ";nssb 2: ~A" (g1 'fm)))
+	(if (not (= (g1 'fm) 0.0)) (snd-display "nssb 2: ~A" (g1 'fm)))
 	(nssb g1 1.0)
-	(if (not (= (g1 'fm) 1.0)) (snd-display ";nssb 3: ~A" (g1 'fm)))
+	(if (not (= (g1 'fm) 1.0)) (snd-display "nssb 3: ~A" (g1 'fm)))
 	(nssb g1)
-	(if (not (= (g1 'fm) 0.0)) (snd-display ";nssb 4: ~A" (g1 'fm)))
+	(if (not (= (g1 'fm) 0.0)) (snd-display "nssb 4: ~A" (g1 'fm)))
 	))
     
     (test-nssb-1)
@@ -40607,80 +40607,80 @@ EDITS: 1
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (nrssb gen)))))))
-    (if (not (sound? snd)) (snd-display ";nrssb ~A" snd))
-    (if (fneq (maxamp snd) 0.777) (snd-display ";nrssb max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "nrssb ~A" snd))
+    (if (fneq (maxamp snd) 0.777) (snd-display "nrssb max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-rkcos 440.0 :r 0.5))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (rkcos gen)))))))
-    (if (not (sound? snd)) (snd-display ";rkcos ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";rkcos max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "rkcos ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "rkcos max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-rk!cos 440.0 :r 0.5))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (rk!cos gen)))))))
-    (if (not (sound? snd)) (snd-display ";rk!cos ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";rk!cos max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "rk!cos ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "rk!cos max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-r2k!cos 440.0 :r 0.5 :k 3.0))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (r2k!cos gen)))))))
-    (if (not (sound? snd)) (snd-display ";r2k!cos ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";r2k!cos max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "r2k!cos ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "r2k!cos max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-k2sin 440.0))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (k2sin gen)))))))
-    (if (not (sound? snd)) (snd-display ";k2sin ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";k2sin max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "k2sin ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "k2sin max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-k2cos 440.0))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (k2cos gen)))))))
-    (if (not (sound? snd)) (snd-display ";k2cos ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";k2cos max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "k2cos ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "k2cos max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-k2ssb 1000.0 0.1))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (k2ssb gen)))))))
-    (if (not (sound? snd)) (snd-display ";k2ssb ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";k2ssb max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "k2ssb ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "k2ssb max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-rssb 1000 0.1 0.5))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (rssb gen)))))))
-    (if (not (sound? snd)) (snd-display ";rssb ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";rssb max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "rssb ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "rssb max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-dblsum 100 0.5))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (* .47 (dblsum gen)))))))) ; k starts at 0, so maxamp would be 2 except something else is wrong
-    (if (not (sound? snd)) (snd-display ";dblsum ~A" snd))
-    (if (> (maxamp snd) 1.0) (snd-display ";dblsum max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "dblsum ~A" snd))
+    (if (> (maxamp snd) 1.0) (snd-display "dblsum max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-nkssb 1000.0 0.1 5))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (nkssb gen)))))))
-    (if (not (sound? snd)) (snd-display ";nkssb ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";nkssb max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "nkssb ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "nkssb max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (let ((gen (make-nkssb 1000.0 0.1 5))
@@ -40688,8 +40688,8 @@ EDITS: 1
 			     (do ((i 0 (+ i 1)))
 				 ((= i base-length))
 			       (outa i (nkssb gen (polywave vib)))))))))
-    (if (not (sound? snd)) (snd-display ";nkssb 1 ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";nkssb 1 max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "nkssb 1 ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "nkssb 1 max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (let ((gen (make-nkssb 1000.0 0.1 5))
@@ -40698,150 +40698,150 @@ EDITS: 1
 			     (do ((i 0 (+ i 1)))
 				 ((= i base-length))
 			       (outa i (nkssb-interp gen (polywave vib) (env move)))))))))
-    (if (not (sound? snd)) (snd-display ";nkssb 2 ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";nkssb 2 max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "nkssb 2 ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "nkssb 2 max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-rkoddssb 1000.0 0.1 0.5))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (rkoddssb gen)))))))
-    (if (not (sound? snd)) (snd-display ";rkoddssb ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";rkoddssb max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "rkoddssb ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "rkoddssb max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-krksin 440.0 0.5))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (krksin gen)))))))
-    (if (not (sound? snd)) (snd-display ";krksin ~A" snd)))
+    (if (not (sound? snd)) (snd-display "krksin ~A" snd)))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-abcos 100.0 0.5 0.25))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (abcos gen)))))))
-    (if (not (sound? snd)) (snd-display ";abcos ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";abcos max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "abcos ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "abcos max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f :statistics #t)
 			   (do ((gen (make-absin 100.0 0.5 0.25))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (absin gen)))))))
-    (if (not (sound? snd)) (snd-display ";absin ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";absin max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "absin ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "absin max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-r2k2cos 100.0 1.0))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (r2k2cos gen)))))))
-    (if (not (sound? snd)) (snd-display ";r2k2cos ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";r2k2cos max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "r2k2cos ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "r2k2cos max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-jjcos 100.0 :a 1.0 :r 1.0 :k 1))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (jjcos gen)))))))
-    (if (not (sound? snd)) (snd-display ";jjcos ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";jjcos max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "jjcos ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "jjcos max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-j0evencos 100.0 1.0))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (j0evencos gen)))))))
-    (if (not (sound? snd)) (snd-display ";j0evencos ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";j0evencos max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "j0evencos ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "j0evencos max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-rksin 100.0 :r 0.5))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (rksin gen)))))))
-    (if (not (sound? snd)) (snd-display ";rksin ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";rksin max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "rksin ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "rksin max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-rkssb 1000.0 0.1 :r 0.5))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (rkssb gen)))))))
-    (if (not (sound? snd)) (snd-display ";rkssb ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";rkssb max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "rkssb ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "rkssb max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-rk!ssb 1000.0 0.1 :r 0.5))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (rk!ssb gen)))))))
-    (if (not (sound? snd)) (snd-display ";rk!ssb ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";rk!ssb max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "rk!ssb ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "rk!ssb max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-jpcos 100.0 :a 1.0 :r 0.99 :k 1))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (jpcos gen)))))))
-    (if (not (sound? snd)) (snd-display ";jpcos ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";jpcos max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "jpcos ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "jpcos max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-j2cos 100.0 :r 1.0 :n 0))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (j2cos gen)))))))
-    (if (not (sound? snd)) (snd-display ";j2cos ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";j2cos max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "j2cos ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "j2cos max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-nxysin 300 1/3 3))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (nxysin gen)))))))
-    (if (not (sound? snd)) (snd-display ";nxysin ~A" snd)))
+    (if (not (sound? snd)) (snd-display "nxysin ~A" snd)))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-nxycos 300 1/3 3))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (nxycos gen)))))))
-    (if (not (sound? snd)) (snd-display ";nxycos ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";nxycos max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "nxycos ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "nxycos max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-nxy1cos 300 1/3 3))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (nxy1cos gen)))))))
-    (if (not (sound? snd)) (snd-display ";nxy1cos ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";nxy1cos max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "nxy1cos ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "nxy1cos max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-nxy1sin 300 1/3 3))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (nxy1sin gen)))))))
-    (if (not (sound? snd)) (snd-display ";nxy1sin ~A" snd))
-    (if (fneq (maxamp snd) 0.951) (snd-display ";nxy1sin max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "nxy1sin ~A" snd))
+    (if (fneq (maxamp snd) 0.951) (snd-display "nxy1sin max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f :statistics #t)
 			   (do ((gen (make-nrxysin 1000 0.1 5 0.5))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (nrxysin gen)))))))
-    (if (not (sound? snd)) (snd-display ";nrxysin ~A" snd))
-    (if (fneq (maxamp snd) 0.985) (snd-display ";nrxysin max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "nrxysin ~A" snd))
+    (if (fneq (maxamp snd) 0.985) (snd-display "nrxysin max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-nrxycos 1000 0.1 5 0.5))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (nrxycos gen)))))))
-    (if (not (sound? snd)) (snd-display ";nrxycos ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";nrxycos max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "nrxycos ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "nrxycos max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-nrxycos 1000 0.1 15 0.5))
@@ -40850,64 +40850,64 @@ EDITS: 1
 			       ((= i base-length))
 			     (set! (mus-scaler gen) (env indr)) 
 			     (outa i (nrxycos gen)))))))
-    (if (not (sound? snd)) (snd-display ";nrxycos with scaler ~A" snd))
-    (if (fneq (maxamp snd) 0.992) (snd-display ";nrxycos with scaler max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "nrxycos with scaler ~A" snd))
+    (if (fneq (maxamp snd) 0.992) (snd-display "nrxycos with scaler max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((black4 (make-blackman 440.0))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (blackman black4 0.0)))))))
-    (if (not (sound? snd)) (snd-display ";blackman ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";blackman max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "blackman ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "blackman max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((black4 (make-sinc-train 440.0 10))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (sinc-train black4 0.0)))))))
-    (if (not (sound? snd)) (snd-display ";sinc-train ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";sinc-train max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "sinc-train ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "sinc-train max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-k3sin 100.0))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (k3sin gen)))))))
-    (if (not (sound? snd)) (snd-display ";k3sin ~A" snd))
-    (if (ffneq (maxamp snd) 1.0) (snd-display ";k3sin max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "k3sin ~A" snd))
+    (if (ffneq (maxamp snd) 1.0) (snd-display "k3sin max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f :statistics #t)
 			   (do ((gen (make-izcos 100.0 1.0))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (izcos gen)))))))
-    (if (not (sound? snd)) (snd-display ";izcos ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";izcos max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "izcos ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "izcos max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-rxysin 1000 0.1 0.5))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (* .5 (rxysin gen))))))))
-    (if (not (sound? snd)) (snd-display ";rxysin ~A" snd))
-    (if (> (maxamp snd) 1.0) (snd-display ";rxysin max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "rxysin ~A" snd))
+    (if (> (maxamp snd) 1.0) (snd-display "rxysin max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-rxycos 1000 0.1 0.5))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (rxycos gen)))))))
-    (if (not (sound? snd)) (snd-display ";rxycos ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";rxycos max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "rxycos ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "rxycos max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f :srate 44100)
 			   (do ((gen (make-safe-rxycos 1000 0.1 0.5))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (safe-rxycos gen)))))))
-    (if (not (sound? snd)) (snd-display ";safe-rxycos ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";safe-rxycos max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "safe-rxycos ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "safe-rxycos max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f :channels 2 :srate 44100)
 		(let ((gen1 (make-safe-rxycos 1000 1 0.99))
@@ -40920,7 +40920,7 @@ EDITS: 1
 			(set-freq gen2 (+ 1000 (radians->hz fm)))
 			(outa i (safe-rxycos gen1 fm)))
 		      (outb i (safe-rxycos gen2 0.0)))))))))
-    (if (not (sound? snd)) (snd-display ";safe-rxycos 1 ~A" snd)))
+    (if (not (sound? snd)) (snd-display "safe-rxycos 1 ~A" snd)))
   
   (let* ((base-r 0.0)
 	 (snd (find-sound (with-sound (:clipped #f :channels 2 :srate 44100)
@@ -40935,65 +40935,65 @@ EDITS: 1
 			(set-freq gen2 (+ 1000 (radians->hz fm)))
 			(outa i (safe-rxycos gen1 fm)))
 		      (outb i (safe-rxycos gen2 0.0)))))))))
-    (if (not (sound? snd)) (snd-display ";safe-rxycos 2 ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";safe-rxycos 2 max: ~A" (maxamp snd)))
-    (if (fneq base-r .951) (snd-display ";safe-rxycos-r 2 base: ~A" base-r)))
+    (if (not (sound? snd)) (snd-display "safe-rxycos 2 ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "safe-rxycos 2 max: ~A" (maxamp snd)))
+    (if (fneq base-r .951) (snd-display "safe-rxycos-r 2 base: ~A" base-r)))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-rxyk!sin 1000 0.1 0.5))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (rxyk!sin gen)))))))
-    (if (not (sound? snd)) (snd-display ";rxyk!sin ~A" snd))
-    (if (fneq (maxamp snd) 0.992) (snd-display ";rxyk!sin max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "rxyk!sin ~A" snd))
+    (if (fneq (maxamp snd) 0.992) (snd-display "rxyk!sin max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-rxyk!cos 1000 0.1 0.5))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (rxyk!cos gen)))))))
-    (if (not (sound? snd)) (snd-display ";rxyk!cos ~A" snd))
-    (if (ffneq (maxamp snd) 1.0) (snd-display ";rxyk!cos max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "rxyk!cos ~A" snd))
+    (if (ffneq (maxamp snd) 1.0) (snd-display "rxyk!cos max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f :statistics #t :play #f)
 			   (do ((gen (make-nsincos 100.0 3))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (nsincos gen)))))))
-    (if (not (sound? snd)) (snd-display ";nsincos ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";nsincos max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "nsincos ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "nsincos max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f :play #f)
 			   (do ((gen (make-nchoosekcos 2000.0 0.05 10))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (nchoosekcos gen)))))))
-    (if (not (sound? snd)) (snd-display ";nchoosekcos ~A" snd))
-    (if (ffneq (maxamp snd) 1.0) (snd-display ";nchoosekcos max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "nchoosekcos ~A" snd))
+    (if (ffneq (maxamp snd) 1.0) (snd-display "nchoosekcos max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound ()
 			   (do ((gen (make-adjustable-square-wave 100 .2 .5))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (adjustable-square-wave gen)))))))
-    (if (not (sound? snd)) (snd-display ";adj sq ~A" snd))
-    (if (fneq (maxamp snd) 0.5) (snd-display ";adj sq max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "adj sq ~A" snd))
+    (if (fneq (maxamp snd) 0.5) (snd-display "adj sq max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound ()
 			   (do ((gen (make-adjustable-triangle-wave 100 .2 .5))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (adjustable-triangle-wave gen)))))))
-    (if (not (sound? snd)) (snd-display ";adj tri ~A" snd))
-    (if (ffneq (maxamp snd) 0.5) (snd-display ";adj tri max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "adj tri ~A" snd))
+    (if (ffneq (maxamp snd) 0.5) (snd-display "adj tri max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound ()
 			   (do ((gen (make-adjustable-sawtooth-wave 100 .2 .5))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (adjustable-sawtooth-wave gen)))))))
-    (if (not (sound? snd)) (snd-display ";adj saw ~A" snd))
-    (if (ffneq (maxamp snd) 0.5) (snd-display ";adj saw max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "adj saw ~A" snd))
+    (if (ffneq (maxamp snd) 0.5) (snd-display "adj saw max: ~A" (maxamp snd))))
   
   (with-sound (:clipped #f) ; at least run the thing -- not sure how to test this automatically
     (let ((gen (make-pink-noise 12)))
@@ -41006,48 +41006,48 @@ EDITS: 1
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (brown-noise gen)))))))
-    (if (not (sound? snd)) (snd-display ";brown-noise ~A" snd))
-    (if (< (maxamp snd) 0.01) (snd-display ";brown-noise max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "brown-noise ~A" snd))
+    (if (< (maxamp snd) 0.01) (snd-display "brown-noise max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-green-noise 100.0))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (green-noise gen)))))))
-    (if (not (sound? snd)) (snd-display ";green-noise ~A" snd))
-    (if (not (<= 0.01 (maxamp snd) 1.0)) (snd-display ";green-noise max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "green-noise ~A" snd))
+    (if (not (<= 0.01 (maxamp snd) 1.0)) (snd-display "green-noise max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-green-noise 100.0 0.1 -0.1 0.5))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (green-noise gen)))))))
-    (if (not (sound? snd)) (snd-display ";green-noise .5 ~A" snd))
-    (if (not (<= 0.01 (maxamp snd) 0.5)) (snd-display ";green-noise .5 max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "green-noise .5 ~A" snd))
+    (if (not (<= 0.01 (maxamp snd) 0.5)) (snd-display "green-noise .5 max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-green-noise-interp 100.0))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (green-noise-interp gen)))))))
-    (if (not (sound? snd)) (snd-display ";green-noise-interp ~A" snd))
-    (if (not (<= 0.01 (maxamp snd) 1.0))  (snd-display ";green-noise-interp max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "green-noise-interp ~A" snd))
+    (if (not (<= 0.01 (maxamp snd) 1.0))  (snd-display "green-noise-interp max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-green-noise-interp 100.0 0.1 -0.1 0.5))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (green-noise-interp gen)))))))
-    (if (not (sound? snd)) (snd-display ";green-noise-interp .5 ~A" snd))
-    (if (not (<= 0.01 (maxamp snd) 0.5))  (snd-display ";green-noise-interp .5 max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "green-noise-interp .5 ~A" snd))
+    (if (not (<= 0.01 (maxamp snd) 0.5))  (snd-display "green-noise-interp .5 max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen (make-tanhsin 440.0 2.0))
 				(i 0 (+ i 1)))
 			       ((= i base-length))
 			     (outa i (tanhsin gen)))))))
-    (if (not (sound? snd)) (snd-display ";tanhsin ~A" snd))
-    (if (> (abs (- 1.0 (maxamp snd))) 0.1) (snd-display ";tanhsin max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "tanhsin ~A" snd))
+    (if (> (abs (- 1.0 (maxamp snd))) 0.1) (snd-display "tanhsin max: ~A" (maxamp snd))))
   
   (if (not (provided? 'snd-nogui))
       (let* ((snd (new-sound))
@@ -41068,14 +41068,14 @@ EDITS: 1
     (let-temporarily ((*clm-srate* cur-srate))
       (let ((pitch (moving-pitch (make-moving-pitch rd))))
 	(if (not (>= 443.0 pitch 439.0))
-	    (snd-display ";moving-pitch 1a: ~A" pitch)))))
+	    (snd-display "moving-pitch 1a: ~A" pitch)))))
   
   (let ((val (make-vector 3)))
     (set! (val 0) (make-nrcos 100))  
     (set! (val 1) (make-nrcos 200))  
     (set! (val 2) (make-nrcos 300))
     (let ((frq (mus-frequency (vector-ref val 1))))
-      (if (fneq frq 200.0) (snd-display ";defgen vect freq: ~A" frq))))
+      (if (fneq frq 200.0) (snd-display "defgen vect freq: ~A" frq))))
   
   (let ((val (make-vector 3)))
     (set! (val 0) (make-nrcos 100))  
@@ -41084,7 +41084,7 @@ EDITS: 1
     (let ((frq (+ (mus-frequency (vector-ref val 0))
 		  (mus-frequency (vector-ref val 1))
 		  (mus-frequency (vector-ref val 2)))))
-      (if (fneq frq 600.0) (snd-display ";defgen vect freq 1: ~A" frq))))
+      (if (fneq frq 600.0) (snd-display "defgen vect freq 1: ~A" frq))))
   
   (let ((val (make-vector 3)))
     (set! (val 0) (make-nrcos 100))  
@@ -41092,7 +41092,7 @@ EDITS: 1
     (set! (val 2) (make-nrcos 300))
     (set! (mus-frequency (vector-ref val 1)) 500.0)
     (let ((frq (mus-frequency (vector-ref val 1))))
-      (if (fneq frq 500.0) (snd-display ";defgen set freq: ~A ~A" frq (mus-frequency (vector-ref val 1))))))
+      (if (fneq frq 500.0) (snd-display "defgen set freq: ~A ~A" frq (mus-frequency (vector-ref val 1))))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (let ((v (make-vector 2 #f)))
@@ -41101,8 +41101,8 @@ EDITS: 1
 			     (do ((i 0 (+ i 1)))
 				 ((= i base-length))
 			       (outa i (nrcos (vector-ref v 0) 0.0))))))))
-    (if (not (sound? snd)) (snd-display ";vect nrcos ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";vect nrcos max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "vect nrcos ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "vect nrcos max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (let ((val (make-vector 2)))
@@ -41112,8 +41112,8 @@ EDITS: 1
 				 ((= i base-length))
 			       (outa i (* .5 (+ (nrcos (vector-ref val 0) 0.0)
 						(nrcos (vector-ref val 1) 0.0))))))))))
-    (if (not (sound? snd)) (snd-display ";vect 2 nrcos ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";vect 2 nrcos max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "vect 2 nrcos ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "vect 2 nrcos max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (do ((gen1 (make-nrcos 100 1 .1))
@@ -41122,8 +41122,8 @@ EDITS: 1
 			       ((= i base-length))
 			     (outa i (* .5 (+ (nrcos gen1 0.0)
 					      (nrcos gen2 0.0)))))))))
-    (if (not (sound? snd)) (snd-display ";no vect 2 nrcos ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";no vect 2 nrcos max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "no vect 2 nrcos ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "no vect 2 nrcos max: ~A" (maxamp snd))))
   
   (let ((snd (find-sound (with-sound (:clipped #f)
 			   (let ((v (make-vector 2 #f)))
@@ -41133,8 +41133,8 @@ EDITS: 1
 				 ((= i base-length))
 			       (let ((gen (vector-ref v 0)))
 				 (outa i (nrcos gen)))))))))
-    (if (not (sound? snd)) (snd-display ";vect let nrcos ~A" snd))
-    (if (fneq (maxamp snd) 1.0) (snd-display ";vect let nrcos max: ~A" (maxamp snd))))
+    (if (not (sound? snd)) (snd-display "vect let nrcos ~A" snd))
+    (if (fneq (maxamp snd) 1.0) (snd-display "vect let nrcos max: ~A" (maxamp snd))))
   
   (with-sound (:play #t)
     (define ifunc 
@@ -41247,7 +41247,7 @@ EDITS: 1
 	   (val1 (oscil gen1 0.0 pm))
 	   (val2 (run-with-fm-and-pm gen2 0.0 pm))) ; generators.scm
       (if (fneq val1 val2)
-	  (snd-display ";run-with-fm-and-pm: ~A ~A" val1 val2))))
+	  (snd-display "run-with-fm-and-pm: ~A ~A" val1 val2))))
   
   (do ((gen1 (make-oscil 440.0))
        (gen2 (make-oscil 440.0))
@@ -41256,7 +41256,7 @@ EDITS: 1
       ((or (not happy)
 	   (= i 1000))
        (if (not happy)
-	   (snd-display ";run-with-fm-and-pm unhappy")))
+	   (snd-display "run-with-fm-and-pm unhappy")))
     (let* ((pm (mus-random 1.0))
 	   (val1 (oscil gen1 0.0 pm))
 	   (val2 (run-with-fm-and-pm gen2 0.0 pm)))
@@ -41349,130 +41349,130 @@ EDITS: 1
       (let ((hgt (cadr (XtVaGetValues (cadr (main-widgets)) (list XmNheight 0))))
 	    (wid (cadr (XtVaGetValues (cadr (main-widgets)) (list XmNwidth 0)))))
 	(if (or (<= wid 0) (<= hgt 0) (> wid 65535) (> hgt 65535))
-	    (snd-display ";Dimension miscast: ~A ~A" wid hgt)))
+	    (snd-display "Dimension miscast: ~A ~A" wid hgt)))
       
       ;; ---------------- X tests ----------------
       (let ((scr (current-screen))
 	    (dpy (XtDisplay (cadr (main-widgets)))))
 	(if (not (member (.height scr) '(1200 1600) =))
-	    (snd-display ";screen height: ~A" (.height scr)))
+	    (snd-display "screen height: ~A" (.height scr)))
 	(if (not (member (.width scr) '(1600 2560) =))
-	    (snd-display ";screen width: ~A" (.width scr)))
+	    (snd-display "screen width: ~A" (.width scr)))
 	(if (not (= (.ndepths scr) 7))
-	    (snd-display ";screen ndepths: ~A" (.ndepths scr)))
+	    (snd-display "screen ndepths: ~A" (.ndepths scr)))
 	(let* ((dps (.depths scr))
 	       (cdp (car dps)))
 	  (if (not (and (= (length dps) (.ndepths scr))
 			(Depth? cdp)))
-	      (snd-display ";depths: ~A" (.depths scr)))
-	  (if (not (= (.depth cdp) 24)) (snd-display ";.depths val: ~A" (map .depth dps)))
+	      (snd-display "depths: ~A" (.depths scr)))
+	  (if (not (= (.depth cdp) 24)) (snd-display ".depths val: ~A" (map .depth dps)))
 	  (if (pair? (.visuals cdp))
 	      (if (not (Visual? (car (.visuals cdp)))) 
-		  (snd-display ";visuals: ~A" (map .visuals dps))
+		  (snd-display "visuals: ~A" (map .visuals dps))
 		  (if (not (= (.bits_per_rgb (car (.visuals cdp))) 8))
-		      (snd-display ";bits/visuals: ~A" (map .bits_per_rgb (.visuals cdp)))))
+		      (snd-display "bits/visuals: ~A" (map .bits_per_rgb (.visuals cdp)))))
 	      (if (and (cadr dps)
 		       (pair? (.visuals (cadr dps))))
 		  (if (not (Visual? (car (.visuals (cadr dps))))) 
-		      (snd-display ";visuals: ~A" (map .visuals dps))
+		      (snd-display "visuals: ~A" (map .visuals dps))
 		      (if (not (= (.bits_per_rgb (car (.visuals (cadr dps)))) 8))
-			  (snd-display ";bits/visuals: ~A" (map .bits_per_rgb (.visuals (cadr dps)))))))))
+			  (snd-display "bits/visuals: ~A" (map .bits_per_rgb (.visuals (cadr dps)))))))))
 	(if (not (= (cadr (.white_pixel scr)) 16777215))
-	    (snd-display ";screen white_pixel: ~A" (.white_pixel scr)))
+	    (snd-display "screen white_pixel: ~A" (.white_pixel scr)))
 	(if (not (= (cadr (.black_pixel scr)) 0))
-	    (snd-display ";screen black_pixel: ~A" (.black_pixel scr)))
+	    (snd-display "screen black_pixel: ~A" (.black_pixel scr)))
 	(if (.backing_store scr)
-	    (snd-display ";screen backing_store: ~A" (.backing_store scr)))
+	    (snd-display "screen backing_store: ~A" (.backing_store scr)))
 	(if (not (= (.min_maps scr) 1))
-	    (snd-display ";screen min_maps: ~A" (.min_maps scr)))
+	    (snd-display "screen min_maps: ~A" (.min_maps scr)))
 	(if (not (= (.max_maps scr) 1))
-	    (snd-display ";screen max_maps: ~A" (.max_maps scr)))
+	    (snd-display "screen max_maps: ~A" (.max_maps scr)))
 	(if (.save_unders scr)
-	    (snd-display ";screen save_unders: ~A" (.save_unders scr)))
+	    (snd-display "screen save_unders: ~A" (.save_unders scr)))
 	(if (not (GC? (.default_gc scr)))
-	    (snd-display ";screen default_gc: ~A" (.default_gc scr)))
+	    (snd-display "screen default_gc: ~A" (.default_gc scr)))
 	(if (not (Window? (.root scr)))
-	    (snd-display ";screen root: ~A" (.root scr)))
+	    (snd-display "screen root: ~A" (.root scr)))
 	(if (not (Colormap? (.cmap scr)))
-	    (snd-display ";screen colormap: ~A" (.cmap scr)))
+	    (snd-display "screen colormap: ~A" (.cmap scr)))
 	
 	(if (not (equal? (DisplayOfScreen scr) (.display scr))) 
-	    (snd-display ";DisplayOfScreen: ~A ~A" (DisplayOfScreen scr) (.display scr)))
+	    (snd-display "DisplayOfScreen: ~A ~A" (DisplayOfScreen scr) (.display scr)))
 	(if (not (equal? (RootWindowOfScreen scr) (.root scr))) 
-	    (snd-display ";RootWindowOfScreen: ~A ~A" (RootWindowOfScreen scr) (.root scr)))
+	    (snd-display "RootWindowOfScreen: ~A ~A" (RootWindowOfScreen scr) (.root scr)))
 	(if (not (equal? (BlackPixelOfScreen scr) (.black_pixel scr))) 
-	    (snd-display ";BlackPixelOfScreen: ~A ~A" (BlackPixelOfScreen scr) (.black_pixel scr)))
+	    (snd-display "BlackPixelOfScreen: ~A ~A" (BlackPixelOfScreen scr) (.black_pixel scr)))
 	(if (not (equal? (WhitePixelOfScreen scr) (.white_pixel scr))) 
-	    (snd-display ";WhitePixelOfScreen: ~A ~A" (WhitePixelOfScreen scr) (.white_pixel scr)))
+	    (snd-display "WhitePixelOfScreen: ~A ~A" (WhitePixelOfScreen scr) (.white_pixel scr)))
 	(if (not (equal? (DefaultColormapOfScreen scr) (.cmap scr))) 
-	    (snd-display ";DefaultColormapOfScreen: ~A ~A" (DefaultColormapOfScreen scr) (.cmap scr)))
+	    (snd-display "DefaultColormapOfScreen: ~A ~A" (DefaultColormapOfScreen scr) (.cmap scr)))
 	(if (not (equal? (DefaultDepthOfScreen scr) (.root_depth scr))) 
-	    (snd-display ";DefaultDepthOfScreen: ~A ~A" (DefaultDepthOfScreen scr) (.root_depth scr)))
+	    (snd-display "DefaultDepthOfScreen: ~A ~A" (DefaultDepthOfScreen scr) (.root_depth scr)))
 	(if (not (equal? (DefaultGCOfScreen scr) (.default_gc scr))) 
-	    (snd-display ";DefaultGCOfScreen: ~A ~A" (DefaultGCOfScreen scr) (.default_gc scr)))
+	    (snd-display "DefaultGCOfScreen: ~A ~A" (DefaultGCOfScreen scr) (.default_gc scr)))
 	(if (not (equal? (DefaultVisualOfScreen scr) (.root_visual scr))) 
-	    (snd-display ";DefaultVisualOfScreen: ~A ~A" (DefaultVisualOfScreen scr) (.root_visual scr)))
+	    (snd-display "DefaultVisualOfScreen: ~A ~A" (DefaultVisualOfScreen scr) (.root_visual scr)))
 	(if (not (equal? (WidthOfScreen scr) (.width scr))) 
-	    (snd-display ";WidthOfScreen: ~A ~A" (WidthOfScreen scr) (.width scr)))
+	    (snd-display "WidthOfScreen: ~A ~A" (WidthOfScreen scr) (.width scr)))
 	(if (not (equal? (HeightOfScreen scr) (.height scr))) 
-	    (snd-display ";HeightOfScreen: ~A ~A" (HeightOfScreen scr) (.height scr)))
+	    (snd-display "HeightOfScreen: ~A ~A" (HeightOfScreen scr) (.height scr)))
 	(if (not (equal? (WidthMMOfScreen scr) (.mwidth scr))) 
-	    (snd-display ";WidthMMOfScreen: ~A ~A" (WidthMMOfScreen scr) (.mwidth scr)))
+	    (snd-display "WidthMMOfScreen: ~A ~A" (WidthMMOfScreen scr) (.mwidth scr)))
 	(if (not (equal? (HeightMMOfScreen scr) (.mheight scr))) 
-	    (snd-display ";HeightMMOfScreen: ~A ~A" (HeightMMOfScreen scr) (.mheight scr)))
+	    (snd-display "HeightMMOfScreen: ~A ~A" (HeightMMOfScreen scr) (.mheight scr)))
 	(if (not (equal? (PlanesOfScreen scr) (.root_depth scr))) 
-	    (snd-display ";PlanesOfScreen: ~A ~A" (PlanesOfScreen scr) (.root_depth scr)))
+	    (snd-display "PlanesOfScreen: ~A ~A" (PlanesOfScreen scr) (.root_depth scr)))
 	(if (not (equal? (MinCmapsOfScreen scr) (.min_maps scr))) 
-	    (snd-display ";MinCmapsOfScreen: ~A ~A" (MinCmapsOfScreen scr) (.min_maps scr)))
+	    (snd-display "MinCmapsOfScreen: ~A ~A" (MinCmapsOfScreen scr) (.min_maps scr)))
 	(if (not (equal? (MaxCmapsOfScreen scr) (.max_maps scr))) 
-	    (snd-display ";MaxCmapsOfScreen: ~A ~A" (MaxCmapsOfScreen scr) (.max_maps scr)))
+	    (snd-display "MaxCmapsOfScreen: ~A ~A" (MaxCmapsOfScreen scr) (.max_maps scr)))
 	(if (not (equal? (DoesSaveUnders scr) (.save_unders scr))) 
-	    (snd-display ";DoesSaveUnders: ~A ~A" (DoesSaveUnders scr) (.save_unders scr)))
+	    (snd-display "DoesSaveUnders: ~A ~A" (DoesSaveUnders scr) (.save_unders scr)))
 	(if (not (equal? (DoesBackingStore scr) (.backing_store scr))) 
-	    (snd-display ";DoesBackingStore: ~A ~A" (DoesBackingStore scr) (.backing_store scr)))
+	    (snd-display "DoesBackingStore: ~A ~A" (DoesBackingStore scr) (.backing_store scr)))
 	(if (not (equal? (EventMaskOfScreen scr) (.root_input_mask scr))) 
-	    (snd-display ";EventMaskOfScreen: ~A ~A" (EventMaskOfScreen scr) (.root_input_mask scr)))
+	    (snd-display "EventMaskOfScreen: ~A ~A" (EventMaskOfScreen scr) (.root_input_mask scr)))
 	
 	(if (not (equal? (XDisplayOfScreen scr) (.display scr))) 
-	    (snd-display ";XDisplayOfScreen: ~A ~A" (XDisplayOfScreen scr) (.display scr)))
+	    (snd-display "XDisplayOfScreen: ~A ~A" (XDisplayOfScreen scr) (.display scr)))
 	(if (not (equal? (XDisplayOfScreen (XScreenOfDisplay dpy 0)) dpy))
-	    (snd-display ";XScreenOfDisplay ~A ~A" (XDisplayOfScreen (XScreenOfDisplay dpy 0)) dpy))
+	    (snd-display "XScreenOfDisplay ~A ~A" (XDisplayOfScreen (XScreenOfDisplay dpy 0)) dpy))
 	(if (not (equal? (XDefaultScreenOfDisplay dpy) scr))
-	    (snd-display ";XDefaultScreenOfDisplay ~A ~A" (XDefaultScreenOfDisplay dpy) scr))
+	    (snd-display "XDefaultScreenOfDisplay ~A ~A" (XDefaultScreenOfDisplay dpy) scr))
 	(if (not (equal? (XRootWindowOfScreen scr) (.root scr))) 
-	    (snd-display ";XRootWindowOfScreen: ~A ~A" (XRootWindowOfScreen scr) (.root scr)))
+	    (snd-display "XRootWindowOfScreen: ~A ~A" (XRootWindowOfScreen scr) (.root scr)))
 	(if (not (equal? (XBlackPixelOfScreen scr) (.black_pixel scr))) 
-	    (snd-display ";XBlackPixelOfScreen: ~A ~A" (XBlackPixelOfScreen scr) (.black_pixel scr)))
+	    (snd-display "XBlackPixelOfScreen: ~A ~A" (XBlackPixelOfScreen scr) (.black_pixel scr)))
 	(if (not (equal? (XWhitePixelOfScreen scr) (.white_pixel scr))) 
-	    (snd-display ";XWhitePixelOfScreen: ~A ~A" (XWhitePixelOfScreen scr) (.white_pixel scr)))
+	    (snd-display "XWhitePixelOfScreen: ~A ~A" (XWhitePixelOfScreen scr) (.white_pixel scr)))
 	(if (not (equal? (XDefaultColormapOfScreen scr) (.cmap scr))) 
-	    (snd-display ";XDefaultColormapOfScreen: ~A ~A" (XDefaultColormapOfScreen scr) (.cmap scr)))
+	    (snd-display "XDefaultColormapOfScreen: ~A ~A" (XDefaultColormapOfScreen scr) (.cmap scr)))
 	(if (not (equal? (XDefaultDepthOfScreen scr) (.root_depth scr))) 
-	    (snd-display ";XDefaultDepthOfScreen: ~A ~A" (XDefaultDepthOfScreen scr) (.root_depth scr)))
+	    (snd-display "XDefaultDepthOfScreen: ~A ~A" (XDefaultDepthOfScreen scr) (.root_depth scr)))
 	(if (not (equal? (XDefaultGCOfScreen scr) (.default_gc scr)))
-	    (snd-display ";XDefaultGCOfScreen: ~A ~A" (XDefaultGCOfScreen scr) (.default_gc scr)))
+	    (snd-display "XDefaultGCOfScreen: ~A ~A" (XDefaultGCOfScreen scr) (.default_gc scr)))
 	(if (not (equal? (XDefaultVisualOfScreen scr) (.root_visual scr)))
-	    (snd-display ";XDefaultVisualOfScreen: ~A ~A" (XDefaultVisualOfScreen scr) (.root_visual scr)))
+	    (snd-display "XDefaultVisualOfScreen: ~A ~A" (XDefaultVisualOfScreen scr) (.root_visual scr)))
 	(if (not (equal? (XWidthOfScreen scr) (.width scr)))
-	    (snd-display ";XWidthOfScreen: ~A ~A" (XWidthOfScreen scr) (.width scr)))
+	    (snd-display "XWidthOfScreen: ~A ~A" (XWidthOfScreen scr) (.width scr)))
 	(if (not (equal? (XHeightOfScreen scr) (.height scr)))
-	    (snd-display ";XHeightOfScreen: ~A ~A" (XHeightOfScreen scr) (.height scr)))
+	    (snd-display "XHeightOfScreen: ~A ~A" (XHeightOfScreen scr) (.height scr)))
 	(if (not (equal? (XWidthMMOfScreen scr) (.mwidth scr))) 
-	    (snd-display ";XWidthMMOfScreen: ~A ~A" (XWidthMMOfScreen scr) (.mwidth scr)))
+	    (snd-display "XWidthMMOfScreen: ~A ~A" (XWidthMMOfScreen scr) (.mwidth scr)))
 	(if (not (equal? (XHeightMMOfScreen scr) (.mheight scr))) 
-	    (snd-display ";XHeightMMOfScreen: ~A ~A" (XHeightMMOfScreen scr) (.mheight scr)))
+	    (snd-display "XHeightMMOfScreen: ~A ~A" (XHeightMMOfScreen scr) (.mheight scr)))
 	(if (not (equal? (XPlanesOfScreen scr) (.root_depth scr))) 
-	    (snd-display ";XPlanesOfScreen: ~A ~A" (XPlanesOfScreen scr) (.root_depth scr)))
+	    (snd-display "XPlanesOfScreen: ~A ~A" (XPlanesOfScreen scr) (.root_depth scr)))
 	(if (not (equal? (XMinCmapsOfScreen scr) (.min_maps scr)))
-	    (snd-display ";XMinCmapsOfScreen: ~A ~A" (XMinCmapsOfScreen scr) (.min_maps scr)))
+	    (snd-display "XMinCmapsOfScreen: ~A ~A" (XMinCmapsOfScreen scr) (.min_maps scr)))
 	(if (not (equal? (XMaxCmapsOfScreen scr) (.max_maps scr)))
-	    (snd-display ";XMaxCmapsOfScreen: ~A ~A" (XMaxCmapsOfScreen scr) (.max_maps scr)))
+	    (snd-display "XMaxCmapsOfScreen: ~A ~A" (XMaxCmapsOfScreen scr) (.max_maps scr)))
 	(if (not (equal? (XDoesSaveUnders scr) (.save_unders scr)))
-	    (snd-display ";XDoesSaveUnders: ~A ~A" (XDoesSaveUnders scr) (.save_unders scr)))
+	    (snd-display "XDoesSaveUnders: ~A ~A" (XDoesSaveUnders scr) (.save_unders scr)))
 	(if (not (equal? (XDoesBackingStore scr) (.backing_store scr))) 
-	    (snd-display ";XDoesBackingStore: ~A ~A" (XDoesBackingStore scr) (.backing_store scr)))
+	    (snd-display "XDoesBackingStore: ~A ~A" (XDoesBackingStore scr) (.backing_store scr)))
 	(if (not (equal? (XEventMaskOfScreen scr) (.root_input_mask scr)))
-	    (snd-display ";XEventMaskOfScreen: ~A ~A" (XEventMaskOfScreen scr) (.root_input_mask scr)))
+	    (snd-display "XEventMaskOfScreen: ~A ~A" (XEventMaskOfScreen scr) (.root_input_mask scr)))
 	)
       
       (let* ((scr (current-screen))
@@ -41482,172 +41482,172 @@ EDITS: 1
 	     (win (XtWindow (cadr (main-widgets)))))
 	
 	(if (not (equal? (RootWindow dpy scrn) (.root scr)))
-	    (snd-display ";RootWindow: ~A ~A" (RootWindow dpy scrn) (.root scr)))
+	    (snd-display "RootWindow: ~A ~A" (RootWindow dpy scrn) (.root scr)))
 	(if (not (equal? (DefaultRootWindow dpy) (.root (ScreenOfDisplay dpy (DefaultScreen dpy)))))
-	    (snd-display ";DefaultRootWindow: ~A ~A" (DefaultRootWindow dpy) (.root (ScreenOfDisplay dpy (DefaultScreen dpy)))))
+	    (snd-display "DefaultRootWindow: ~A ~A" (DefaultRootWindow dpy) (.root (ScreenOfDisplay dpy (DefaultScreen dpy)))))
 	(if (not (equal? (DefaultVisual dpy scrn) (.root_visual scr)))
-	    (snd-display ";DefaultVisual: ~A ~A" (DefaultVisual dpy scrn) (.root_visual scr)))
+	    (snd-display "DefaultVisual: ~A ~A" (DefaultVisual dpy scrn) (.root_visual scr)))
 	(if (not (equal? (DefaultGC dpy scrn) (.default_gc scr)))
-	    (snd-display ";DefaultGC: ~A ~A" (DefaultGC dpy scrn) (.default_gc scr)))
+	    (snd-display "DefaultGC: ~A ~A" (DefaultGC dpy scrn) (.default_gc scr)))
 	(if (not (equal? (BlackPixel dpy scrn) (.black_pixel scr)))
-	    (snd-display ";BlackPixel: ~A ~A" (BlackPixel dpy scrn) (.black_pixel scr)))
+	    (snd-display "BlackPixel: ~A ~A" (BlackPixel dpy scrn) (.black_pixel scr)))
 	(if (not (equal? (WhitePixel dpy scrn) (.white_pixel scr)))
-	    (snd-display ";WhitePixel ~A ~A" (WhitePixel dpy scrn) (.white_pixel scr)))
+	    (snd-display "WhitePixel ~A ~A" (WhitePixel dpy scrn) (.white_pixel scr)))
 	(if (not (equal? (DisplayWidth dpy scrn) (.width scr)))
-	    (snd-display ";DisplayWidth: ~A ~A" (DisplayWidth dpy scrn) (.width scr)))
+	    (snd-display "DisplayWidth: ~A ~A" (DisplayWidth dpy scrn) (.width scr)))
 	(if (not (equal? (DisplayHeight dpy scrn) (.height scr)))
-	    (snd-display ";DisplayHeight: ~A ~A" (DisplayHeight dpy scrn) (.height scr)))
+	    (snd-display "DisplayHeight: ~A ~A" (DisplayHeight dpy scrn) (.height scr)))
 	(if (not (equal? (DisplayWidthMM dpy scrn) (.mwidth scr)))
-	    (snd-display ";DisplayWidthMM: ~A ~A" (DisplayWidthMM dpy scrn) (.mwidth scr)))
+	    (snd-display "DisplayWidthMM: ~A ~A" (DisplayWidthMM dpy scrn) (.mwidth scr)))
 	(if (not (equal? (DisplayHeightMM dpy scrn) (.mheight scr)))
-	    (snd-display ";DisplayHeightMM: ~A ~A" (DisplayHeightMM dpy scrn) (.mheight scr)))
+	    (snd-display "DisplayHeightMM: ~A ~A" (DisplayHeightMM dpy scrn) (.mheight scr)))
 	(if (not (equal? (DisplayPlanes dpy scrn) (.root_depth scr)))
-	    (snd-display ";DisplayPlanes: ~A ~A" (DisplayPlanes dpy scrn) (.root_depth scr)))
+	    (snd-display "DisplayPlanes: ~A ~A" (DisplayPlanes dpy scrn) (.root_depth scr)))
 	(if (not (equal? (DefaultDepth dpy scrn) (.root_depth scr)))
-	    (snd-display ";DefaultDepth: ~A ~A" (DefaultDepth dpy scrn) (.root_depth scr)))
+	    (snd-display "DefaultDepth: ~A ~A" (DefaultDepth dpy scrn) (.root_depth scr)))
 	(if (not (equal? (DefaultColormap dpy scrn) (.cmap scr)))
-	    (snd-display ";DefaultColormap: ~A ~A" (DefaultColormap dpy scrn) (.cmap scr)))
+	    (snd-display "DefaultColormap: ~A ~A" (DefaultColormap dpy scrn) (.cmap scr)))
 	
 	(if (not (equal? (XRootWindow dpy scrn) (.root scr)))
-	    (snd-display ";XRootWindow: ~A ~A" (XRootWindow dpy scrn) (.root scr)))
+	    (snd-display "XRootWindow: ~A ~A" (XRootWindow dpy scrn) (.root scr)))
 	(if (not (equal? (XDefaultRootWindow dpy) (.root (ScreenOfDisplay dpy (DefaultScreen dpy)))))
-	    (snd-display ";XDefaultRootWindow: ~A ~A" (XDefaultRootWindow dpy) (.root (ScreenOfDisplay dpy (DefaultScreen dpy)))))
+	    (snd-display "XDefaultRootWindow: ~A ~A" (XDefaultRootWindow dpy) (.root (ScreenOfDisplay dpy (DefaultScreen dpy)))))
 	(if (not (equal? (XDefaultVisual dpy scrn) (.root_visual scr)))
-	    (snd-display ";XDefaultVisual: ~A ~A" (XDefaultVisual dpy scrn) (.root_visual scr)))
+	    (snd-display "XDefaultVisual: ~A ~A" (XDefaultVisual dpy scrn) (.root_visual scr)))
 	(if (not (equal? (XDefaultGC dpy scrn) (.default_gc scr)))
-	    (snd-display ";XDefaultGC: ~A ~A" (XDefaultGC dpy scrn) (.default_gc scr)))
+	    (snd-display "XDefaultGC: ~A ~A" (XDefaultGC dpy scrn) (.default_gc scr)))
 	(if (not (equal? (XBlackPixel dpy scrn) (.black_pixel scr)))
-	    (snd-display ";XBlackPixel: ~A ~A" (XBlackPixel dpy scrn) (.black_pixel scr)))
+	    (snd-display "XBlackPixel: ~A ~A" (XBlackPixel dpy scrn) (.black_pixel scr)))
 	(if (not (equal? (XWhitePixel dpy scrn) (.white_pixel scr)))
-	    (snd-display ";XWhitePixel ~A ~A" (XWhitePixel dpy scrn) (.white_pixel scr)))
+	    (snd-display "XWhitePixel ~A ~A" (XWhitePixel dpy scrn) (.white_pixel scr)))
 	(if (not (equal? (XDisplayWidth dpy scrn) (.width scr)))
-	    (snd-display ";XDisplayWidth: ~A ~A" (XDisplayWidth dpy scrn) (.width scr)))
+	    (snd-display "XDisplayWidth: ~A ~A" (XDisplayWidth dpy scrn) (.width scr)))
 	(if (not (equal? (XDisplayHeight dpy scrn) (.height scr)))
-	    (snd-display ";XDisplayHeight: ~A ~A" (XDisplayHeight dpy scrn) (.height scr)))
+	    (snd-display "XDisplayHeight: ~A ~A" (XDisplayHeight dpy scrn) (.height scr)))
 	(if (not (equal? (XDisplayWidthMM dpy scrn) (.mwidth scr)))
-	    (snd-display ";XDisplayWidthMM: ~A ~A" (XDisplayWidthMM dpy scrn) (.mwidth scr)))
+	    (snd-display "XDisplayWidthMM: ~A ~A" (XDisplayWidthMM dpy scrn) (.mwidth scr)))
 	(if (not (equal? (XDisplayHeightMM dpy scrn) (.mheight scr)))
-	    (snd-display ";XDisplayHeightMM: ~A ~A" (XDisplayHeightMM dpy scrn) (.mheight scr)))
+	    (snd-display "XDisplayHeightMM: ~A ~A" (XDisplayHeightMM dpy scrn) (.mheight scr)))
 	(if (not (equal? (XDisplayPlanes dpy scrn) (.root_depth scr)))
-	    (snd-display ";XDisplayPlanes: ~A ~A" (XDisplayPlanes dpy scrn) (.root_depth scr)))
+	    (snd-display "XDisplayPlanes: ~A ~A" (XDisplayPlanes dpy scrn) (.root_depth scr)))
 	(if (not (equal? (XDefaultDepth dpy scrn) (.root_depth scr)))
-	    (snd-display ";XDefaultDepth: ~A ~A" (XDefaultDepth dpy scrn) (.root_depth scr)))
+	    (snd-display "XDefaultDepth: ~A ~A" (XDefaultDepth dpy scrn) (.root_depth scr)))
 	(if (not (equal? (XDefaultColormap dpy scrn) (.cmap scr)))
-	    (snd-display ";XDefaultColormap: ~A ~A" (XDefaultColormap dpy scrn) (.cmap scr)))
+	    (snd-display "XDefaultColormap: ~A ~A" (XDefaultColormap dpy scrn) (.cmap scr)))
 	
 	(if (not (equal? (XDefaultVisual dpy scrn) vis))
-	    (snd-display ";XDefaultVisual: ~A ~A" (XDefaultVisual dpy scrn) vis))
+	    (snd-display "XDefaultVisual: ~A ~A" (XDefaultVisual dpy scrn) vis))
 	(if (not (equal? (DisplayCells dpy scrn) (.map_entries vis)))
-	    (snd-display ";DisplayCells: ~A ~A" (DisplayCells dpy scrn) (.map_entries vis)))
+	    (snd-display "DisplayCells: ~A ~A" (DisplayCells dpy scrn) (.map_entries vis)))
 	(if (not (equal? (CellsOfScreen scr) (.map_entries (DefaultVisualOfScreen scr))))
-	    (snd-display ";CellsOfScreen: ~A ~A" (CellsOfScreen scr) (.map_entries (DefaultVisualOfScreen scr))))
+	    (snd-display "CellsOfScreen: ~A ~A" (CellsOfScreen scr) (.map_entries (DefaultVisualOfScreen scr))))
 	(if (not (equal? (XDisplayCells dpy scrn) (.map_entries vis)))
-	    (snd-display ";XDisplayCells: ~A ~A" (XDisplayCells dpy scrn) (.map_entries vis)))
+	    (snd-display "XDisplayCells: ~A ~A" (XDisplayCells dpy scrn) (.map_entries vis)))
 	(if (not (equal? (XCellsOfScreen scr) (.map_entries (DefaultVisualOfScreen scr))))
-	    (snd-display ";XCellsOfScreen: ~A ~A" (XCellsOfScreen scr) (.map_entries (DefaultVisualOfScreen scr))))
+	    (snd-display "XCellsOfScreen: ~A ~A" (XCellsOfScreen scr) (.map_entries (DefaultVisualOfScreen scr))))
 	(if (< (XNextRequest dpy) (XLastKnownRequestProcessed dpy))
-	    (snd-display ";XRequests: ~A ~A" (XNextRequest dpy) (XLastKnownRequestProcessed dpy)))
+	    (snd-display "XRequests: ~A ~A" (XNextRequest dpy) (XLastKnownRequestProcessed dpy)))
 	(if (< (NextRequest dpy) (LastKnownRequestProcessed dpy))
-	    (snd-display ";Requests: ~A ~A" (NextRequest dpy) (LastKnownRequestProcessed dpy)))
+	    (snd-display "Requests: ~A ~A" (NextRequest dpy) (LastKnownRequestProcessed dpy)))
 	(if (not (= (XDisplayMotionBufferSize dpy) 256))
-	    (snd-display ";XDisplayMotionBufferSize: ~A" (XDisplayMotionBufferSize dpy)))
+	    (snd-display "XDisplayMotionBufferSize: ~A" (XDisplayMotionBufferSize dpy)))
 	(XGetMotionEvents dpy win (list 'Time 100) (list 'Time CurrentTime))
 	
 	(let ((lmapk (XNewModifiermap 2))
 	      (kcd (list 'KeyCode 50)))
 	  (if (not (XModifierKeymap? lmapk))
-	      (snd-display ";xNewModifiermap: ~A" lmapk)
+	      (snd-display "xNewModifiermap: ~A" lmapk)
 	      (set! lmapk (XDeleteModifiermapEntry (XInsertModifiermapEntry lmapk kcd ShiftMapIndex) kcd ShiftMapIndex))))
 	
 	(if (not (= (XExtendedMaxRequestSize dpy) 4194303))
-	    (snd-display ";XExtendedMaxRequestSize ~A" (XExtendedMaxRequestSize dpy)))
+	    (snd-display "XExtendedMaxRequestSize ~A" (XExtendedMaxRequestSize dpy)))
 	(if (not (= (XMaxRequestSize dpy) 65535))
-	    (snd-display ";XMaxRequestSize ~A" (XMaxRequestSize dpy)))
+	    (snd-display "XMaxRequestSize ~A" (XMaxRequestSize dpy)))
 	(if (not (member '(Atom 40) (XListProperties dpy win)))
-	    (snd-display ";XListProperties: ~A" (XListProperties dpy win)))
+	    (snd-display "XListProperties: ~A" (XListProperties dpy win)))
 	(if (not (member "SHAPE" (XListExtensions dpy)))
-	    (snd-display ";XListExtensions: ~A" (XListExtensions dpy)))
+	    (snd-display "XListExtensions: ~A" (XListExtensions dpy)))
 	(let ((val (XListInstalledColormaps dpy win)))
 	  (if (or (memq val '(#f ()))
 		  (not (Colormap? (car val))))
-	      (snd-display ";XListInstalledColormaps: ~A" (XListInstalledColormaps dpy win))))
+	      (snd-display "XListInstalledColormaps: ~A" (XListInstalledColormaps dpy win))))
 	(if (not (string=? (XKeysymToString (list 'KeySym 80)) "P"))
-	    (snd-display ";XKeysymToString: ~A" (XKeysymToString (list 'KeySym 80))))
+	    (snd-display "XKeysymToString: ~A" (XKeysymToString (list 'KeySym 80))))
 	(if (not (string=? (XGetAtomName dpy (list 'Atom 40)) "WM_NORMAL_HINTS"))
-	    (snd-display ";XGetAtomName: ~A" (XGetAtomName dpy (list 'Atom 40))))
-	
-	(if (not (= (.bits_per_rgb vis) 8)) (snd-display ";bits_per_rgb: ~A" (.bits_per_rgb vis)))
-	(if (not (= (.blue_mask vis) 255)) (snd-display ";blue_mask: ~A" (.blue_mask vis)))
-	(if (not (= (.green_mask vis) 65280)) (snd-display ";green_mask: ~A" (.green_mask vis)))
-	(if (not (= (.red_mask vis) 16711680)) (snd-display ";red_mask: ~A" (.red_mask vis)))
-	(if (not (= AllPlanes 4294967295)) (snd-display ";AllPlanes: ~A" AllPlanes))
-	
-	(if (< (QLength dpy) 0) (snd-display ";QLength: ~A" (QLength dpy)))
-	(if (not (= (ScreenCount dpy) 1)) (snd-display ";ScreenCount: ~A" (ScreenCount dpy)))
-	(if (not (string=? (ServerVendor dpy) "The X.Org Foundation")) (snd-display ";ServerVendor: ~A" (ServerVendor dpy)))
-	(if (not (= (ProtocolRevision dpy) 0)) (snd-display ";ProtocolRevision: ~A" (ProtocolRevision dpy)))
-	(if (not (= (ProtocolVersion dpy) 11)) (snd-display ";ProtocolVersion: ~A" (ProtocolVersion dpy)))
-	(if (not (number? (VendorRelease dpy))) (snd-display ";VendorRelease: ~A" (VendorRelease dpy)))
-	(if (not (string=? (DisplayString dpy) ":0.0")) (snd-display ";DisplayString: ~A" (DisplayString dpy)))
-	(if (not (= (BitmapUnit dpy) 32)) (snd-display ";BitmapUnit: ~A" (BitmapUnit dpy)))
-	(if (not (= (BitmapPad dpy) 32)) (snd-display ";BitmapPad: ~A" (BitmapPad dpy)))
-	(if (not (= (BitmapBitOrder dpy) 0)) (snd-display ";BitmapBitOrder: ~A" (BitmapBitOrder dpy)))
-	(if (not (= (ImageByteOrder dpy) 0)) (snd-display ";ImageByteOrder: ~A" (ImageByteOrder dpy)))
-	(if (not (= (DefaultScreen dpy) 0)) (snd-display ";DefaultScreen: ~A" (DefaultScreen dpy)))
+	    (snd-display "XGetAtomName: ~A" (XGetAtomName dpy (list 'Atom 40))))
+	
+	(if (not (= (.bits_per_rgb vis) 8)) (snd-display "bits_per_rgb: ~A" (.bits_per_rgb vis)))
+	(if (not (= (.blue_mask vis) 255)) (snd-display "blue_mask: ~A" (.blue_mask vis)))
+	(if (not (= (.green_mask vis) 65280)) (snd-display "green_mask: ~A" (.green_mask vis)))
+	(if (not (= (.red_mask vis) 16711680)) (snd-display "red_mask: ~A" (.red_mask vis)))
+	(if (not (= AllPlanes 4294967295)) (snd-display "AllPlanes: ~A" AllPlanes))
+	
+	(if (< (QLength dpy) 0) (snd-display "QLength: ~A" (QLength dpy)))
+	(if (not (= (ScreenCount dpy) 1)) (snd-display "ScreenCount: ~A" (ScreenCount dpy)))
+	(if (not (string=? (ServerVendor dpy) "The X.Org Foundation")) (snd-display "ServerVendor: ~A" (ServerVendor dpy)))
+	(if (not (= (ProtocolRevision dpy) 0)) (snd-display "ProtocolRevision: ~A" (ProtocolRevision dpy)))
+	(if (not (= (ProtocolVersion dpy) 11)) (snd-display "ProtocolVersion: ~A" (ProtocolVersion dpy)))
+	(if (not (number? (VendorRelease dpy))) (snd-display "VendorRelease: ~A" (VendorRelease dpy)))
+	(if (not (string=? (DisplayString dpy) ":0.0")) (snd-display "DisplayString: ~A" (DisplayString dpy)))
+	(if (not (= (BitmapUnit dpy) 32)) (snd-display "BitmapUnit: ~A" (BitmapUnit dpy)))
+	(if (not (= (BitmapPad dpy) 32)) (snd-display "BitmapPad: ~A" (BitmapPad dpy)))
+	(if (not (= (BitmapBitOrder dpy) 0)) (snd-display "BitmapBitOrder: ~A" (BitmapBitOrder dpy)))
+	(if (not (= (ImageByteOrder dpy) 0)) (snd-display "ImageByteOrder: ~A" (ImageByteOrder dpy)))
+	(if (not (= (DefaultScreen dpy) 0)) (snd-display "DefaultScreen: ~A" (DefaultScreen dpy)))
 	
 	(let* ((col (XColor))
 	       (col1 (XColor))
 	       (dpy (XtDisplay (cadr (main-widgets))))
 	       (cmap (DefaultColormap dpy (DefaultScreen dpy))))
-	  (if (= (XAllocNamedColor dpy cmap "blue" col col) 0) (snd-display ";XAllocNamedColor blue ~A?" col))
-	  (if (not (= (.red col) 0)) (snd-display ";XAllocNamedColor: ~A" (.red col)))
-	  (if (= (XAllocColor dpy cmap col) 0) (snd-display ";XAllocColor?"))
-	  (if (not (= (.red col) 0)) (snd-display ";XAllocColor: ~A" (.red col)))
-	  (if (= (XParseColor dpy cmap "blue" col) 0) (snd-display ";XParseColor?"))
-	  (if (not (= (.red col) 0)) (snd-display ";XParseColor: ~A" (.red col)))
-	  (if (= (XAllocNamedColor dpy cmap "green" col1 col1) 0) (snd-display ";XAllocNamedColor green ~A?" col1))
+	  (if (= (XAllocNamedColor dpy cmap "blue" col col) 0) (snd-display "XAllocNamedColor blue ~A?" col))
+	  (if (not (= (.red col) 0)) (snd-display "XAllocNamedColor: ~A" (.red col)))
+	  (if (= (XAllocColor dpy cmap col) 0) (snd-display "XAllocColor?"))
+	  (if (not (= (.red col) 0)) (snd-display "XAllocColor: ~A" (.red col)))
+	  (if (= (XParseColor dpy cmap "blue" col) 0) (snd-display "XParseColor?"))
+	  (if (not (= (.red col) 0)) (snd-display "XParseColor: ~A" (.red col)))
+	  (if (= (XAllocNamedColor dpy cmap "green" col1 col1) 0) (snd-display "XAllocNamedColor green ~A?" col1))
 	  (XQueryColor dpy cmap col)
 	  (XQueryColors dpy cmap (list col col1)))
 	
 	(XSetAfterFunction dpy (lambda (n) 0))
 	(XSetAfterFunction dpy #f)
 	(if (not (equal? (XDisplayKeycodes dpy) '(1 8 255)))
-	    (snd-display ";XDisplayKeycodes: ~A" (XDisplayKeycodes dpy)))
+	    (snd-display "XDisplayKeycodes: ~A" (XDisplayKeycodes dpy)))
 	(let ((str (XFetchName dpy win)))
 	  (if (not (string=? (substring str 0 3) "snd"))
-	      (snd-display ";XFetchName: ~A" str)))
+	      (snd-display "XFetchName: ~A" str)))
 	(XStoreName dpy win "hiho")
 	(let ((str (XFetchName dpy win)))
 	  (if (not (string=? str "hiho"))
-	      (snd-display ";XStoreName: ~A" str)))
+	      (snd-display "XStoreName: ~A" str)))
 	(XStoreName dpy win "snd")
 	(let ((str (XGetIconName dpy win)))
 	  (if (not (string=? str "snd"))
-	      (snd-display ";XGetIconName: ~A" str)))
+	      (snd-display "XGetIconName: ~A" str)))
 	(XSetIconName dpy win "hiho")
 	(let ((str (XGetIconName dpy win)))
 	  (if (not (string=? str "hiho"))
-	      (snd-display ";XSetIconName: ~A" str)))
+	      (snd-display "XSetIconName: ~A" str)))
 	(let ((geo (XGetGeometry dpy win)))
 	  (if (not (and (= (window-width) (geo 4))
 			(= (window-height) (geo 5))))
-	      (snd-display ";XGetGeometry: ~A (~A ~A)" geo (window-width) (window-height))))
+	      (snd-display "XGetGeometry: ~A (~A ~A)" geo (window-width) (window-height))))
 	(let ((focus (XGetInputFocus dpy)))
 	  (if (not (and (= (car focus) 1)
 			(Window? (cadr focus))))
-	      (snd-display ";XGetInputFocus: ~A" focus)))
+	      (snd-display "XGetInputFocus: ~A" focus)))
 	(let ((vals (XGetPointerControl dpy)))
-	  (if (not (equal? vals '(1 2 1 4))) (snd-display ";pointer state: ~A" vals))
+	  (if (not (equal? vals '(1 2 1 4))) (snd-display "pointer state: ~A" vals))
 	  (XChangePointerControl dpy #f #t 2 1 8)
 	  (set! vals (XGetPointerControl dpy))
-	  (if (not (equal? vals '(1 2 1 8))) (snd-display ";set pointer state: ~A" vals))
+	  (if (not (equal? vals '(1 2 1 8))) (snd-display "set pointer state: ~A" vals))
 	  (XChangePointerControl dpy #f #t 2 1 4))
 	(XAutoRepeatOff dpy)
-	(if (not (= ((XGetKeyboardControl dpy) 5) 0)) (snd-display ";AutoRepeatOff?"))
+	(if (not (= ((XGetKeyboardControl dpy) 5) 0)) (snd-display "AutoRepeatOff?"))
 	(XAutoRepeatOn dpy)
-	(if (not (= ((XGetKeyboardControl dpy) 5) 1)) (snd-display ";AutoRepeatOn?"))
+	(if (not (= ((XGetKeyboardControl dpy) 5) 1)) (snd-display "AutoRepeatOn?"))
 	(let ((vals (XGetPointerMapping dpy 0 3)))
-	  (if (not (equal? vals '(1 2 3))) (snd-display ";XGetPointerMapping: ~A" vals)))
+	  (if (not (equal? vals '(1 2 3))) (snd-display "XGetPointerMapping: ~A" vals)))
 	(XGetScreenSaver dpy)
 	(XMoveWindow dpy win 100 10)
 	(XSync dpy #f)
@@ -41656,73 +41656,73 @@ EDITS: 1
 	(XMoveResizeWindow dpy win 120 20 500 500)
 	(XSync dpy #f)
 	(let ((attr (XGetWindowAttributes dpy win)))
-	  (if (> (abs (- (.x attr) 120)) 200) (snd-display ";XMoveWindow x etc: ~A" (.x attr)))
-	  (if (> (abs (- (.y attr) 20)) 200) (snd-display ";XMoveWindow y etc: ~A" (.y attr)))
-	  (if (> (abs (- (.width attr) 500)) 20) (snd-display ";XMoveWindow width etc: ~A" (.width attr)))
-	  (if (> (abs (- (.height attr) 500)) 20) (snd-display ";XMoveWindow height etc: ~A" (.height attr)))
-	  (if (not (= (.border_width attr) 0)) (snd-display ";XGetWindowAttributes border_width: ~A" (.border_width attr)))
-	  (if (not (= (.depth attr) 24)) (snd-display ";XGetWindowAttributes depth: ~A" (.depth attr)))
-	  (if (not (= (.bit_gravity attr) 0)) (snd-display ";XGetWindowAttributes bit_gravity: ~A" (.bit_gravity attr)))
-	  (if (not (= (.win_gravity attr) 1)) (snd-display ";XGetWindowAttributes win_gravity: ~A" (.win_gravity attr)))
-	  (if (.backing_store attr) (snd-display ";XGetWindowAttributes backing_store: ~A" (.backing_store attr)))
-	  (if (.override_redirect attr) (snd-display ";XGetWindowAttributes override_redirect: ~A" (.override_redirect attr)))
-	  (if (.save_under attr) (snd-display ";XGetWindowAttributes save_under: ~A" (.save_under attr)))
-	  (if (not (equal? (.backing_pixel attr) '(Pixel 0))) (snd-display ";XGetWindowAttributes backing_pixel: ~A" (.backing_pixel attr)))
-	  (if (not (= (.map_state attr) 2)) (snd-display ";XGetWindowAttributes map_state: ~A" (.map_state attr)))
-	  (if (not (= (.your_event_mask attr) #x628033)) (snd-display ";your_event_mask: ~X" (.your_event_mask attr)))
+	  (if (> (abs (- (.x attr) 120)) 200) (snd-display "XMoveWindow x etc: ~A" (.x attr)))
+	  (if (> (abs (- (.y attr) 20)) 200) (snd-display "XMoveWindow y etc: ~A" (.y attr)))
+	  (if (> (abs (- (.width attr) 500)) 20) (snd-display "XMoveWindow width etc: ~A" (.width attr)))
+	  (if (> (abs (- (.height attr) 500)) 20) (snd-display "XMoveWindow height etc: ~A" (.height attr)))
+	  (if (not (= (.border_width attr) 0)) (snd-display "XGetWindowAttributes border_width: ~A" (.border_width attr)))
+	  (if (not (= (.depth attr) 24)) (snd-display "XGetWindowAttributes depth: ~A" (.depth attr)))
+	  (if (not (= (.bit_gravity attr) 0)) (snd-display "XGetWindowAttributes bit_gravity: ~A" (.bit_gravity attr)))
+	  (if (not (= (.win_gravity attr) 1)) (snd-display "XGetWindowAttributes win_gravity: ~A" (.win_gravity attr)))
+	  (if (.backing_store attr) (snd-display "XGetWindowAttributes backing_store: ~A" (.backing_store attr)))
+	  (if (.override_redirect attr) (snd-display "XGetWindowAttributes override_redirect: ~A" (.override_redirect attr)))
+	  (if (.save_under attr) (snd-display "XGetWindowAttributes save_under: ~A" (.save_under attr)))
+	  (if (not (equal? (.backing_pixel attr) '(Pixel 0))) (snd-display "XGetWindowAttributes backing_pixel: ~A" (.backing_pixel attr)))
+	  (if (not (= (.map_state attr) 2)) (snd-display "XGetWindowAttributes map_state: ~A" (.map_state attr)))
+	  (if (not (= (.your_event_mask attr) #x628033)) (snd-display "your_event_mask: ~X" (.your_event_mask attr)))
 	  (if (not (member (.all_event_masks attr) '(#x628033 #xe28033 #xea8033) =))
-	      (snd-display ";all_event_masks: ~X" (.all_event_masks attr)))
-	  (if (not (Screen? (.screen attr))) (snd-display ";XGetWindowAttributes screen: ~A" (.screen attr)))
+	      (snd-display "all_event_masks: ~X" (.all_event_masks attr)))
+	  (if (not (Screen? (.screen attr))) (snd-display "XGetWindowAttributes screen: ~A" (.screen attr)))
 	  (if (not (member (.do_not_propagate_mask attr) '(0 8204) =))
-	      (snd-display ";XGetWindowAttributes do_not_propagate_mask: ~A" (.do_not_propagate_mask attr)))
-	  (if (not (= (.backing_planes attr) AllPlanes)) (snd-display ";XGetWindowAttributes backing_planes: ~A" (.backing_planes attr)))
-	  (if (not (= (.win_gravity attr) 1)) (snd-display ";XGetWindowAttributes win_gravity: ~A" (.win_gravity attr)))
-	  (if (not (= (.bit_gravity attr) 0)) (snd-display ";XGetWindowAttributes bit_gravity: ~A" (.bit_gravity attr)))
+	      (snd-display "XGetWindowAttributes do_not_propagate_mask: ~A" (.do_not_propagate_mask attr)))
+	  (if (not (= (.backing_planes attr) AllPlanes)) (snd-display "XGetWindowAttributes backing_planes: ~A" (.backing_planes attr)))
+	  (if (not (= (.win_gravity attr) 1)) (snd-display "XGetWindowAttributes win_gravity: ~A" (.win_gravity attr)))
+	  (if (not (= (.bit_gravity attr) 0)) (snd-display "XGetWindowAttributes bit_gravity: ~A" (.bit_gravity attr)))
 					;(segfault)	(XFree (cadr attr))
 	  )
 	(XResetScreenSaver dpy)
-	(if (< (XPending dpy) 0) (snd-display ";XPending: ~A" (XPending dpy)))
+	(if (< (XPending dpy) 0) (snd-display "XPending: ~A" (XPending dpy)))
 	(XNoOp dpy)
 	(XQueryBestStipple dpy win 100 100)
 	(XQueryBestTile dpy win 100 100)
 	(XQueryBestSize dpy 0 win 100 100)
 	(let ((ext (XQueryExtension dpy "SHAPE")))
 	  (if (not (eq? (car ext) #t))
-	      (snd-display ";XQueryExtension: ~A" ext)))
+	      (snd-display "XQueryExtension: ~A" ext)))
 	(XQueryKeymap dpy)
 	(let ((tree (XQueryTree dpy win)))
 	  (if (not (and (= (car tree) 1)
 			(equal? (XRootWindow dpy 0) (cadr tree))))
-	      (snd-display ";XQueryTree: ~A (~A)" tree (XRootWindow dpy 0))))
-	
-	(if (< (XQLength dpy) 0) (snd-display ";XQLength: ~A" (XQLength dpy)))
-	(if (not (= (XScreenCount dpy) 1)) (snd-display ";XScreenCount: ~A" (XScreenCount dpy)))
-	(if (not (string=? (XServerVendor dpy) "The X.Org Foundation")) (snd-display ";XServerVendor: ~A" (XServerVendor dpy)))
-	(if (not (= (XProtocolRevision dpy) 0)) (snd-display ";XProtocolRevision: ~A" (XProtocolRevision dpy)))
-	(if (not (= (XProtocolVersion dpy) 11)) (snd-display ";XProtocolVersion: ~A" (XProtocolVersion dpy)))
-	(if (not (number? (XVendorRelease dpy))) (snd-display ";XVendorRelease: ~A" (XVendorRelease dpy)))
-	(if (not (string=? (XDisplayString dpy) ":0.0")) (snd-display ";XDisplayString: ~A" (XDisplayString dpy)))
-	(if (not (= (XBitmapUnit dpy) 32)) (snd-display ";XBitmapUnit: ~A" (XBitmapUnit dpy)))
-	(if (not (= (XBitmapPad dpy) 32)) (snd-display ";XBitmapPad: ~A" (XBitmapPad dpy)))
-	(if (not (= (XBitmapBitOrder dpy) 0)) (snd-display ";XBitmapBitOrder: ~A" (XBitmapBitOrder dpy)))
-	(if (not (= (XImageByteOrder dpy) 0)) (snd-display ";XImageByteOrder: ~A" (XImageByteOrder dpy)))
-	(if (not (= (XDefaultScreen dpy) 0)) (snd-display ";XDefaultScreen: ~A" (XDefaultScreen dpy)))
-	(if (XGetIconSizes dpy win) (snd-display ";XGetIconSizes: ~A" (XGetIconSizes dpy win)))
+	      (snd-display "XQueryTree: ~A (~A)" tree (XRootWindow dpy 0))))
+	
+	(if (< (XQLength dpy) 0) (snd-display "XQLength: ~A" (XQLength dpy)))
+	(if (not (= (XScreenCount dpy) 1)) (snd-display "XScreenCount: ~A" (XScreenCount dpy)))
+	(if (not (string=? (XServerVendor dpy) "The X.Org Foundation")) (snd-display "XServerVendor: ~A" (XServerVendor dpy)))
+	(if (not (= (XProtocolRevision dpy) 0)) (snd-display "XProtocolRevision: ~A" (XProtocolRevision dpy)))
+	(if (not (= (XProtocolVersion dpy) 11)) (snd-display "XProtocolVersion: ~A" (XProtocolVersion dpy)))
+	(if (not (number? (XVendorRelease dpy))) (snd-display "XVendorRelease: ~A" (XVendorRelease dpy)))
+	(if (not (string=? (XDisplayString dpy) ":0.0")) (snd-display "XDisplayString: ~A" (XDisplayString dpy)))
+	(if (not (= (XBitmapUnit dpy) 32)) (snd-display "XBitmapUnit: ~A" (XBitmapUnit dpy)))
+	(if (not (= (XBitmapPad dpy) 32)) (snd-display "XBitmapPad: ~A" (XBitmapPad dpy)))
+	(if (not (= (XBitmapBitOrder dpy) 0)) (snd-display "XBitmapBitOrder: ~A" (XBitmapBitOrder dpy)))
+	(if (not (= (XImageByteOrder dpy) 0)) (snd-display "XImageByteOrder: ~A" (XImageByteOrder dpy)))
+	(if (not (= (XDefaultScreen dpy) 0)) (snd-display "XDefaultScreen: ~A" (XDefaultScreen dpy)))
+	(if (XGetIconSizes dpy win) (snd-display "XGetIconSizes: ~A" (XGetIconSizes dpy win)))
 	(if (XGetRGBColormaps dpy win XA_RGB_DEFAULT_MAP)
-	    (snd-display ";XGetRGBColormaps: ~A!" (XGetRGBColormaps dpy win XA_RGB_DEFAULT_MAP)))
+	    (snd-display "XGetRGBColormaps: ~A!" (XGetRGBColormaps dpy win XA_RGB_DEFAULT_MAP)))
 	(let ((cmap (XAllocStandardColormap)))
 	  (for-each 
 	   (lambda (func name)
-	     (if (not (= (func cmap) 0)) (snd-display ";standardcolormap ~A: ~A" name (func cmap))))
+	     (if (not (= (func cmap) 0)) (snd-display "standardcolormap ~A: ~A" name (func cmap))))
 	   (list .visualid .red_max .red_mult .green_max .green_mult .blue_max .blue_mult)
 	   '(visualid red_max red_mult green_max green_mult blue_max blue_mult))
-	  (if (.colormap cmap) (snd-display ";colormap: ~A" (.colormap cmap)))
+	  (if (.colormap cmap) (snd-display "colormap: ~A" (.colormap cmap)))
 	  (XtFree (cadr cmap))
 	  )
 	(let ((icon (XAllocIconSize)))
 	  (for-each
 	   (lambda (func name)
-	     (if (not (= (func icon) 0)) (snd-display ";iconsize ~A: ~A" name (func icon))))
+	     (if (not (= (func icon) 0)) (snd-display "iconsize ~A: ~A" name (func icon))))
 	   (list .min_width .min_height .max_width .max_height .width_inc .height_inc)
 	   '(min_width min_height max_width max_height width_inc height_inc))
 	  (XFree icon))
@@ -41730,56 +41730,56 @@ EDITS: 1
 	(let ((fs (XCreateFontSet dpy "*-*-*-*-Normal-*-*-*-*-*-*")))
 	  (if (or (not (XFontSet? fs))
 		  (= (cadr fs) 0))
-	      (snd-display ";XCreateFontSet: ~A" fs)
+	      (snd-display "XCreateFontSet: ~A" fs)
 	      (let* ((fnts (XFontsOfFontSet fs))
 		     (fnt (caar fnts)))
 		(if (not (XFontStruct? fnt))
-		    (snd-display ";XFontsOfFontSet: ~A" fnts))
+		    (snd-display "XFontsOfFontSet: ~A" fnts))
 		(if (XContextualDrawing fs)
-		    (snd-display ";XContextualDrawing: ~A" (XContextualDrawing fs)))
+		    (snd-display "XContextualDrawing: ~A" (XContextualDrawing fs)))
 		(if (XContextDependentDrawing fs)
-		    (snd-display ";XContextDependentDrawing: ~A" (XContextDependentDrawing fs)))
+		    (snd-display "XContextDependentDrawing: ~A" (XContextDependentDrawing fs)))
 		(if (XDirectionalDependentDrawing fs)
-		    (snd-display ";XDirectionalDependentDrawing: ~A" (XDirectionalDependentDrawing fs)))
+		    (snd-display "XDirectionalDependentDrawing: ~A" (XDirectionalDependentDrawing fs)))
 		(if (not (string=? (XLocaleOfFontSet fs) "en_US"))
-		    (snd-display ";XLocaleOfFontSet: ~A" (XLocaleOfFontSet fs)))
+		    (snd-display "XLocaleOfFontSet: ~A" (XLocaleOfFontSet fs)))
 		(if (not (string=? (XBaseFontNameListOfFontSet fs) "*-*-*-*-Normal-*-*-*-*-*-*"))
-		    (snd-display ";XBaseFontNameListOfFontSet: ~A" (XBaseFontNameListOfFontSet fs)))
+		    (snd-display "XBaseFontNameListOfFontSet: ~A" (XBaseFontNameListOfFontSet fs)))
 		(when fnt
 		  (let ((wgt (XGetFontProperty fnt XA_WEIGHT))
 			(siz (XGetFontProperty fnt XA_POINT_SIZE)))
 		    (if (not (and (= (cadr wgt) 10)
 				  (= (cadr siz) 120)))
-			(snd-display ";XGetFontProperty: ~A ~A" wgt siz)))
-		  (if (not (= (.descent fnt) 2)) (snd-display ";descent: ~A" (.descent fnt)))
-		  (if (not (= (.ascent fnt) 11)) (snd-display ";ascent: ~A" (.ascent fnt)))
-		  (if (not (XCharStruct? (.per_char fnt))) (snd-display ";per_char: ~A" (.per_char fnt)))
-		  (if (not (XCharStruct? (.max_bounds fnt))) (snd-display ";max_bounds: ~A" (.max_bounds fnt)))
-		  (if (not (XCharStruct? (.min_bounds fnt))) (snd-display ";min_bounds: ~A" (.min_bounds fnt)))
-		  (if (not (XFontProp? (car (.properties fnt)))) (snd-display ";properties ~A" (.properties fnt)))
-		  (if (not (= (.card32 (car (.properties fnt))) 7)) (snd-display ";card32: ~A" (.card32 (car (.properties fnt))))))
+			(snd-display "XGetFontProperty: ~A ~A" wgt siz)))
+		  (if (not (= (.descent fnt) 2)) (snd-display "descent: ~A" (.descent fnt)))
+		  (if (not (= (.ascent fnt) 11)) (snd-display "ascent: ~A" (.ascent fnt)))
+		  (if (not (XCharStruct? (.per_char fnt))) (snd-display "per_char: ~A" (.per_char fnt)))
+		  (if (not (XCharStruct? (.max_bounds fnt))) (snd-display "max_bounds: ~A" (.max_bounds fnt)))
+		  (if (not (XCharStruct? (.min_bounds fnt))) (snd-display "min_bounds: ~A" (.min_bounds fnt)))
+		  (if (not (XFontProp? (car (.properties fnt)))) (snd-display "properties ~A" (.properties fnt)))
+		  (if (not (= (.card32 (car (.properties fnt))) 7)) (snd-display "card32: ~A" (.card32 (car (.properties fnt))))))
 		(XFreeFontSet dpy fs))))
 	(XBell dpy 10)
 	(let ((cmd (XGetCommand dpy win)))
 	  (if (or (null? cmd)
 		  (not (string=? (substring (car cmd) (- (length (car cmd)) 3)) "snd")))
-	      (snd-display ";XGetCommand: ~A" cmd)))
+	      (snd-display "XGetCommand: ~A" cmd)))
 	(XSetCommand dpy win (list "hiho" "away") 2)
 	(if (not (equal? (XGetCommand dpy win) '("hiho" "away"))) 
-	    (snd-display ";XSetCommand: ~A" (XGetCommand dpy win)))
+	    (snd-display "XSetCommand: ~A" (XGetCommand dpy win)))
 	(let ((wmp (map (lambda (w) (XGetAtomName dpy w)) (XGetWMProtocols dpy win))))
 	  (if (not (equal? wmp '("_MOTIF_WM_MESSAGES" "WM_DELETE_WINDOW")))
-	      (snd-display ";XGetWMProtocols: ~A" wmp)))
+	      (snd-display "XGetWMProtocols: ~A" wmp)))
 	(if (not (equal? (XListDepths dpy 0) '(24 1 4 8 15 16 32)))
-	    (snd-display ";XListDepths: ~A" (XListDepths dpy 0)))
+	    (snd-display "XListDepths: ~A" (XListDepths dpy 0)))
 	(if (not (equal? (XListPixmapFormats dpy) '((1 1 32) (4 8 32) (8 8 32) (15 16 32) (16 16 32) (24 32 32) (32 32 32))))
-	    (snd-display ";XListPixmapFormats: ~A" (XListPixmapFormats dpy)))
+	    (snd-display "XListPixmapFormats: ~A" (XListPixmapFormats dpy)))
 	
 	(XWarpPointer dpy (list 'Window None) (list 'Window None) 0 0 10 10 100 100)
 	(let ((cs (XQueryBestCursor dpy win 10 10)))
-	  (if (not (equal? cs '(1 10 10))) (snd-display ";XQueryBestCursor: ~A" cs)))
+	  (if (not (equal? cs '(1 10 10))) (snd-display "XQueryBestCursor: ~A" cs)))
 	(let ((pt (XQueryPointer dpy win)))
-	  (if (not (Window? (cadr pt))) (snd-display ";XQueryPointer: ~A" pt)))
+	  (if (not (Window? (cadr pt))) (snd-display "XQueryPointer: ~A" pt)))
 	(XRaiseWindow dpy win)
 	(XRotateBuffers dpy 1)
 	(XSetWindowBorderWidth dpy win 10)
@@ -41792,32 +41792,32 @@ EDITS: 1
 	(XSetWindowBackgroundPixmap dpy win ParentRelative)
 
 	(let ((hints (XGetWMHints dpy win)))
-	  (if (not (and hints (XWMHints? hints))) (snd-display ";XGetWMHints?"))
-	  (if (not (= (.flags hints) 7)) (snd-display ";flags wmhints: ~A" (.flags hints)))
-	  (if (not (= (.initial_state hints) 1)) (snd-display ";initial_state wmhints: ~A" (.initial_state hints)))
-	  (if (not (.input hints)) (snd-display ";input wmhints: ~A" (.input hints)))
-	  (if (not (Pixmap? (.icon_pixmap hints))) (snd-display ";icon_pixmap wmhints: ~A" (.icon_pixmap hints)))
-	  (if (.icon_window hints) (snd-display ";icon_window: ~A" (.icon_window hints)))
-	  (if (not (equal? (.icon_mask hints) '(Pixmap 0))) (snd-display ";icon_mask: ~A" (.icon_mask hints)))
-	  (if (not (number? (.window_group hints))) (snd-display ";window_group: ~A" (.window_group hints)))
+	  (if (not (and hints (XWMHints? hints))) (snd-display "XGetWMHints?"))
+	  (if (not (= (.flags hints) 7)) (snd-display "flags wmhints: ~A" (.flags hints)))
+	  (if (not (= (.initial_state hints) 1)) (snd-display "initial_state wmhints: ~A" (.initial_state hints)))
+	  (if (not (.input hints)) (snd-display "input wmhints: ~A" (.input hints)))
+	  (if (not (Pixmap? (.icon_pixmap hints))) (snd-display "icon_pixmap wmhints: ~A" (.icon_pixmap hints)))
+	  (if (.icon_window hints) (snd-display "icon_window: ~A" (.icon_window hints)))
+	  (if (not (equal? (.icon_mask hints) '(Pixmap 0))) (snd-display "icon_mask: ~A" (.icon_mask hints)))
+	  (if (not (number? (.window_group hints))) (snd-display "window_group: ~A" (.window_group hints)))
 	  (XtFree (cadr hints))
 	  (let ((st (XAllocWMHints)))
-	    (if (not (XWMHints? st)) (snd-display ";XAllocWMHints: ~A" st))
+	    (if (not (XWMHints? st)) (snd-display "XAllocWMHints: ~A" st))
 	    (XFree st))))
       
-      (if (not (IsKeypadKey (list 'KeySym XK_KP_Space))) (snd-display ";IsKeypadKey kp-space"))
-      (if (IsKeypadKey (list 'KeySym XK_A)) (snd-display ";IsKeypadKey A"))
-      (if (IsPrivateKeypadKey (list 'KeySym XK_A)) (snd-display ";IsPrivateKeypadKey A"))
-      (if (not (IsCursorKey (list 'KeySym XK_Home))) (snd-display ";IsCursorKey Home"))
-      (if (IsCursorKey (list 'KeySym XK_S)) (snd-display ";IsCursorKey S"))
-      (if (not (IsPFKey (list 'KeySym XK_KP_F1))) (snd-display ";IsPFKey F1"))
-      (if (IsPFKey (list 'KeySym XK_S)) (snd-display ";IsPFKey S"))
-      (if (not (IsFunctionKey (list 'KeySym XK_F1))) (snd-display ";IsFunctionKey F1"))
-      (if (IsFunctionKey (list 'KeySym XK_S)) (snd-display ";IsFunctionKey S"))
-      (if (not (IsMiscFunctionKey (list 'KeySym XK_Select))) (snd-display ";IsMiscFunctionKey Select"))
-      (if (IsMiscFunctionKey (list 'KeySym XK_S)) (snd-display ";IsMiscFunctionKey S"))
-      (if (not (IsModifierKey (list 'KeySym XK_Shift_L))) (snd-display ";IsModifierKey Shift"))
-      (if (IsModifierKey (list 'KeySym XK_S)) (snd-display ";IsModifierKey S"))
+      (if (not (IsKeypadKey (list 'KeySym XK_KP_Space))) (snd-display "IsKeypadKey kp-space"))
+      (if (IsKeypadKey (list 'KeySym XK_A)) (snd-display "IsKeypadKey A"))
+      (if (IsPrivateKeypadKey (list 'KeySym XK_A)) (snd-display "IsPrivateKeypadKey A"))
+      (if (not (IsCursorKey (list 'KeySym XK_Home))) (snd-display "IsCursorKey Home"))
+      (if (IsCursorKey (list 'KeySym XK_S)) (snd-display "IsCursorKey S"))
+      (if (not (IsPFKey (list 'KeySym XK_KP_F1))) (snd-display "IsPFKey F1"))
+      (if (IsPFKey (list 'KeySym XK_S)) (snd-display "IsPFKey S"))
+      (if (not (IsFunctionKey (list 'KeySym XK_F1))) (snd-display "IsFunctionKey F1"))
+      (if (IsFunctionKey (list 'KeySym XK_S)) (snd-display "IsFunctionKey S"))
+      (if (not (IsMiscFunctionKey (list 'KeySym XK_Select))) (snd-display "IsMiscFunctionKey Select"))
+      (if (IsMiscFunctionKey (list 'KeySym XK_S)) (snd-display "IsMiscFunctionKey S"))
+      (if (not (IsModifierKey (list 'KeySym XK_Shift_L))) (snd-display "IsModifierKey Shift"))
+      (if (IsModifierKey (list 'KeySym XK_S)) (snd-display "IsModifierKey S"))
       
       (let (;(scr (current-screen))
 	    (dpy (XtDisplay (cadr (main-widgets))))
@@ -41825,60 +41825,60 @@ EDITS: 1
 	    (wn (XtWindow (cadr (main-widgets)))))
 	(set! (.function val) GXclear)
 	(if (not (equal? (.function val) GXclear))
-	    (snd-display ";function: ~A ~A" (.function val) GXclear))
+	    (snd-display "function: ~A ~A" (.function val) GXclear))
 	(set! (.line_width val) 10)
 	(if (not (eqv? (.line_width val) 10)) 
-	    (snd-display ";line_width: ~A ~A" (.line_width val) 10))
+	    (snd-display "line_width: ~A ~A" (.line_width val) 10))
 	(set! (.line_style val) LineSolid)
 	(if (not (equal? (.line_style val) LineSolid)) 
-	    (snd-display ";line_style: ~A ~A" (.line_style val) LineSolid))
+	    (snd-display "line_style: ~A ~A" (.line_style val) LineSolid))
 	(set! (.background val) (WhitePixelOfScreen (current-screen)))
 	(if (not (equal? (.background val) (WhitePixelOfScreen (current-screen)))) 
-	    (snd-display ";background: ~A ~A" (.background val) (WhitePixelOfScreen (current-screen))))
+	    (snd-display "background: ~A ~A" (.background val) (WhitePixelOfScreen (current-screen))))
 	(set! (.foreground val) (BlackPixelOfScreen (current-screen)))
 	(if (not (equal? (.foreground val) (BlackPixelOfScreen (current-screen)))) 
-	    (snd-display ";foreground: ~A ~A" (.foreground val) (BlackPixelOfScreen (current-screen))))
+	    (snd-display "foreground: ~A ~A" (.foreground val) (BlackPixelOfScreen (current-screen))))
 	;; plane_mask?
 	(set! (.cap_style val) CapRound)
 	(if (not (equal? (.cap_style val) CapRound)) 
-	    (snd-display ";cap_style: ~A ~A" (.cap_style val) CapRound))
+	    (snd-display "cap_style: ~A ~A" (.cap_style val) CapRound))
 	(set! (.join_style val) JoinMiter)
 	(if (not (equal? (.join_style val) JoinMiter)) 
-	    (snd-display ";join_style: ~A ~A" (.join_style val) JoinMiter))
+	    (snd-display "join_style: ~A ~A" (.join_style val) JoinMiter))
 	(set! (.fill_style val) FillSolid)
 	(if (not (equal? (.fill_style val) FillSolid)) 
-	    (snd-display ";fill_style: ~A ~A" (.fill_style val) FillSolid))
+	    (snd-display "fill_style: ~A ~A" (.fill_style val) FillSolid))
 	(set! (.fill_rule val) EvenOddRule)
 	(if (not (equal? (.fill_rule val) EvenOddRule)) 
-	    (snd-display ";fill_rule: ~A ~A" (.fill_rule val) EvenOddRule))
+	    (snd-display "fill_rule: ~A ~A" (.fill_rule val) EvenOddRule))
 	(set! (.arc_mode val) ArcChord)
 	(if (not (equal? (.arc_mode val) ArcChord))
-	    (snd-display ";arc_mode: ~A ~A" (.arc_mode val) ArcChord))
+	    (snd-display "arc_mode: ~A ~A" (.arc_mode val) ArcChord))
 	;; tile stipple clip_mask are Pixmaps
 	(set! (.ts_x_origin val) 1)
 	(if (not (eqv? (.ts_x_origin val) 1)) 
-	    (snd-display ";ts_x_origin: ~A ~A" (.ts_x_origin val) 1))
+	    (snd-display "ts_x_origin: ~A ~A" (.ts_x_origin val) 1))
 	(set! (.ts_y_origin val) 1)
 	(if (not (eqv? (.ts_y_origin val) 1)) 
-	    (snd-display ";ts_y_origin: ~A ~A" (.ts_y_origin val) 1))
+	    (snd-display "ts_y_origin: ~A ~A" (.ts_y_origin val) 1))
 	;; font is Font
 	(set! (.subwindow_mode val) ClipByChildren)
 	(if (not (equal? (.subwindow_mode val) ClipByChildren)) 
-	    (snd-display ";subwindow_mode: ~A ~A" (.subwindow_mode val) ClipByChildren))
+	    (snd-display "subwindow_mode: ~A ~A" (.subwindow_mode val) ClipByChildren))
 	(set! (.graphics_exposures val) #f)
 	(if (.graphics_exposures val)
-	    (snd-display ";graphics_exposures: ~A ~A" (.graphics_exposures val) #f))
+	    (snd-display "graphics_exposures: ~A ~A" (.graphics_exposures val) #f))
 	(set! (.clip_x_origin val) 0)
 	(if (not (eqv? (.clip_x_origin val) 0)) 
-	    (snd-display ";clip_x_origin: ~A ~A" (.clip_x_origin val) 0))
+	    (snd-display "clip_x_origin: ~A ~A" (.clip_x_origin val) 0))
 	(set! (.clip_y_origin val) 0)
 	(if (not (eqv? (.clip_y_origin val) 0)) 
-	    (snd-display ";clip_y_origin: ~A ~A" (.clip_y_origin val) 0))
+	    (snd-display "clip_y_origin: ~A ~A" (.clip_y_origin val) 0))
 	(set! (.dash_offset val) 1)
 	(if (not (eqv? (.dash_offset val) 1))
-	    (snd-display ";dash_offset: ~A ~A" (.dash_offset val) 1))
+	    (snd-display "dash_offset: ~A ~A" (.dash_offset val) 1))
 	(if (not (number? (XConnectionNumber dpy)))
-	    (snd-display ";XConnectionNumber: ~A" (XConnectionNumber dpy)))
+	    (snd-display "XConnectionNumber: ~A" (XConnectionNumber dpy)))
 	
 	(let ((sgc (XCreateGC dpy wn (+ GCFunction GCForeground GCBackground GCLineWidth GCLineStyle 
 					GCCapStyle GCJoinStyle GCFillStyle GCFillRule GCTileStipXOrigin
@@ -41886,7 +41886,7 @@ EDITS: 1
 					GCClipYOrigin GCDashOffset GCArcMode)
 			      val)))
 	  
-	  (if (not (GC? sgc)) (snd-display ";XCreateGC returned ~A" sgc))
+	  (if (not (GC? sgc)) (snd-display "XCreateGC returned ~A" sgc))
 	  (XSetArcMode dpy sgc ArcPieSlice)
 	  (XSetFunction dpy sgc GXcopy)
 	  (XSetLineAttributes dpy sgc 3 LineDoubleDash CapButt JoinMiter)
@@ -41900,24 +41900,24 @@ EDITS: 1
 	  (XSetSubwindowMode dpy sgc IncludeInferiors)
 	  (let ((owner (XGetSelectionOwner dpy XA_PRIMARY)))
 	    (if (and owner (not (Window? owner)))
-		(snd-display ";XGetSelectionOwner: ~A" owner)))
+		(snd-display "XGetSelectionOwner: ~A" owner)))
 	  (let ((mods (XGetModifierMapping dpy)))
 	    (if (not (XModifierKeymap? mods))
-		(snd-display ";XGetModifierMapping: ~A" mods)))
+		(snd-display "XGetModifierMapping: ~A" mods)))
 	  (let* ((vis (XGetVisualInfo dpy 0 (list 'XVisualInfo 0)))
 		 (vi (car vis)))
 	    (if (not (and vis (XVisualInfo? vi)))
-		(snd-display ";XGetVisualInfo: ~A" vis))
-	    (if (not (= (.depth vi) 24)) (snd-display ";depth vis: ~A" (.depth vi)))
-	    (if (not (= (.screen vi) 0)) (snd-display ";screen vis: ~A" (.screen vi)))
+		(snd-display "XGetVisualInfo: ~A" vis))
+	    (if (not (= (.depth vi) 24)) (snd-display "depth vis: ~A" (.depth vi)))
+	    (if (not (= (.screen vi) 0)) (snd-display "screen vis: ~A" (.screen vi)))
 	    (catch #t ; in c++ no class field
 	      (lambda ()
-		(if (not (= (.class vi) TrueColor)) (snd-display ";class vis: ~A (~A)" (.class vi) TrueColor)))
+		(if (not (= (.class vi) TrueColor)) (snd-display "class vis: ~A (~A)" (.class vi) TrueColor)))
 	      (lambda args args))
-	    (if (not (= (.colormap_size vi) 256)) (snd-display ";colormap_size vis: ~A" (.colormap_size vi)))
+	    (if (not (= (.colormap_size vi) 256)) (snd-display "colormap_size vis: ~A" (.colormap_size vi)))
 	    (if (not (or (XVisualInfo? (XMatchVisualInfo dpy 0 24 TrueColor))
 			 (XVisualInfo? (XMatchVisualInfo dpy 0 16 TrueColor))))
-		(snd-display ";XMatchVisualInfo: ~A" (XMatchVisualInfo dpy 0 24 TrueColor))))
+		(snd-display "XMatchVisualInfo: ~A" (XMatchVisualInfo dpy 0 24 TrueColor))))
 	  (XCheckMaskEvent dpy KeyPressMask)
 	  
 	  (let* ((vals (XGetGCValues dpy sgc (+ GCFunction GCForeground GCBackground GCLineWidth GCLineStyle 
@@ -41926,52 +41926,52 @@ EDITS: 1
 						GCClipYOrigin GCDashOffset GCArcMode)))
 		 (val1 (cadr vals)))
 	    (if (= (car vals) 0)
-		(snd-display ";XGetGCValues failed"))
+		(snd-display "XGetGCValues failed"))
 	    
 	    (if (not (equal? (.function val1) GXcopy))
-		(snd-display ";function: ~A ~A" (.function val1) GXcopy))
+		(snd-display "function: ~A ~A" (.function val1) GXcopy))
 	    (if (not (eqv? (.line_width val1) 3)) 
-		(snd-display ";line_width: ~A ~A" (.line_width val1) 3))
+		(snd-display "line_width: ~A ~A" (.line_width val1) 3))
 	    (if (not (equal? (.line_style val1) LineDoubleDash)) 
-		(snd-display ";line_style: ~A ~A" (.line_style val1) LineDoubleDash))
+		(snd-display "line_style: ~A ~A" (.line_style val1) LineDoubleDash))
 	    (if (not (equal? (.background val1) (BlackPixelOfScreen (current-screen)))) 
-		(snd-display ";background: ~A ~A" (.background val1) (BlackPixelOfScreen (current-screen))))
+		(snd-display "background: ~A ~A" (.background val1) (BlackPixelOfScreen (current-screen))))
 	    (if (not (equal? (.foreground val1) (WhitePixelOfScreen (current-screen)))) 
-		(snd-display ";foreground: ~A ~A" (.foreground val1) (WhitePixelOfScreen (current-screen))))
+		(snd-display "foreground: ~A ~A" (.foreground val1) (WhitePixelOfScreen (current-screen))))
 	    (if (not (equal? (.cap_style val1) CapButt)) 
-		(snd-display ";cap_style: ~A ~A" (.cap_style val1) CapButt))
+		(snd-display "cap_style: ~A ~A" (.cap_style val1) CapButt))
 	    (if (not (equal? (.join_style val1) JoinMiter)) 
-		(snd-display ";join_style: ~A ~A" (.join_style val1) JoinMiter))
+		(snd-display "join_style: ~A ~A" (.join_style val1) JoinMiter))
 	    (if (not (equal? (.fill_style val1) FillStippled)) 
-		(snd-display ";fill_style: ~A ~A" (.fill_style val1) FillStippled))
+		(snd-display "fill_style: ~A ~A" (.fill_style val1) FillStippled))
 	    (if (not (equal? (.fill_rule val1) WindingRule)) 
-		(snd-display ";fill_rule: ~A ~A" (.fill_rule val1) WindingRule))
+		(snd-display "fill_rule: ~A ~A" (.fill_rule val1) WindingRule))
 	    (if (not (equal? (.arc_mode val1) ArcPieSlice))
-		(snd-display ";arc_mode: ~A ~A" (.arc_mode val1) ArcPieSlice))
+		(snd-display "arc_mode: ~A ~A" (.arc_mode val1) ArcPieSlice))
 	    (if (not (eqv? (.ts_x_origin val1) 0)) 
-		(snd-display ";ts_x_origin: ~A ~A" (.ts_x_origin val1) 0))
+		(snd-display "ts_x_origin: ~A ~A" (.ts_x_origin val1) 0))
 	    (if (not (eqv? (.ts_y_origin val1) 0)) 
-		(snd-display ";ts_y_origin: ~A ~A" (.ts_y_origin val1) 0))
+		(snd-display "ts_y_origin: ~A ~A" (.ts_y_origin val1) 0))
 	    (if (not (equal? (.subwindow_mode val1) IncludeInferiors)) 
-		(snd-display ";subwindow_mode: ~A ~A" (.subwindow_mode val1) IncludeInferiors))
+		(snd-display "subwindow_mode: ~A ~A" (.subwindow_mode val1) IncludeInferiors))
 	    (if (not (.graphics_exposures val1))
-		(snd-display ";graphics_exposures: ~A ~A" (.graphics_exposures val1) #t))
+		(snd-display "graphics_exposures: ~A ~A" (.graphics_exposures val1) #t))
 	    (if (not (eqv? (.clip_x_origin val1) 1)) 
-		(snd-display ";clip_x_origin: ~A ~A" (.clip_x_origin val1) 1))
+		(snd-display "clip_x_origin: ~A ~A" (.clip_x_origin val1) 1))
 	    (if (not (eqv? (.clip_y_origin val1) 1)) 
-		(snd-display ";clip_y_origin: ~A ~A" (.clip_y_origin val1) 1))
+		(snd-display "clip_y_origin: ~A ~A" (.clip_y_origin val1) 1))
 	    (if (not (eqv? (.dash_offset val1) 1))
-		(snd-display ";dash_offset: ~A ~A" (.dash_offset val1) 1))
+		(snd-display "dash_offset: ~A ~A" (.dash_offset val1) 1))
 	    
 	    (set! (.plane_mask val) 0)
 	    (if (not (eqv? (.plane_mask val) 0)) 
-		(snd-display ";plane_mask: ~A ~A" (.plane_mask val) 0))
+		(snd-display "plane_mask: ~A ~A" (.plane_mask val) 0))
 	    (set! (.tile val) (list 'Pixmap 0))
 	    (if (not (equal? (.tile val) '(Pixmap 0)))
-		(snd-display ";tile: ~A" (.tile val)))
+		(snd-display "tile: ~A" (.tile val)))
 	    (set! (.stipple val) (list 'Pixmap 0))
 	    (if (not (equal? (.stipple val) '(Pixmap 0)))
-		(snd-display ";stipple: ~A" (.stipple val)))
+		(snd-display "stipple: ~A" (.stipple val)))
 	    
 	    (let* ((dpy (XtDisplay (cadr (main-widgets))))
 		   (win (XtWindow (cadr (main-widgets))))
@@ -41980,18 +41980,18 @@ EDITS: 1
 					  CopyFromParent InputOutput (list 'Visual CopyFromParent)
 					  (logior CWBackPixel CWBorderPixel)
 					  attr)))
-	      (if (not (= (.do_not_propagate_mask attr) 0)) (snd-display ";do_not_propagate_mask: ~A" (.do_not_propagate_mask attr)))
-	      (if (not (= (.event_mask attr) 0)) (snd-display ";event_mask: ~A" (.event_mask attr)))
-	      (if (not (Pixel? (.backing_pixel attr))) (snd-display ";backing_pixel: ~A" (.backing_pixel attr)))
-	      (if (not (Pixel? (.border_pixel attr))) (snd-display ";border_pixel: ~A" (.border_pixel attr)))
-	      (if (not (= (cadr (.border_pixmap attr)) 0)) (snd-display ";border_pixmap: ~A" (.border_pixmap attr)))
-	      (if (not (Pixel? (.background_pixel attr))) (snd-display ";background_pixel: ~A" (.background_pixel attr)))
-	      (if (not (= (cadr (.background_pixmap attr)) 0)) (snd-display ";background_pixmap: ~A" (.background_pixmap attr)))
-	      (if (not (= (.backing_planes attr) 0)) (snd-display ";backing_planes: ~A" (.backing_planes attr)))
-	      (if (.save_under attr) (snd-display ";save_under: ~A" (.save_under attr)))
-	      (if (not (= (cadr (.cursor attr)) 0)) (snd-display ";cursor: ~A" (.cursor attr)))
-	      (if (not (Window? newwin)) (snd-display ";XCreateWindow: ~A" newwin))
-	      (if (not (= (.bit_gravity attr) 0)) (snd-display ";bit_gravity: ~A" (.bit_gravity attr)))
+	      (if (not (= (.do_not_propagate_mask attr) 0)) (snd-display "do_not_propagate_mask: ~A" (.do_not_propagate_mask attr)))
+	      (if (not (= (.event_mask attr) 0)) (snd-display "event_mask: ~A" (.event_mask attr)))
+	      (if (not (Pixel? (.backing_pixel attr))) (snd-display "backing_pixel: ~A" (.backing_pixel attr)))
+	      (if (not (Pixel? (.border_pixel attr))) (snd-display "border_pixel: ~A" (.border_pixel attr)))
+	      (if (not (= (cadr (.border_pixmap attr)) 0)) (snd-display "border_pixmap: ~A" (.border_pixmap attr)))
+	      (if (not (Pixel? (.background_pixel attr))) (snd-display "background_pixel: ~A" (.background_pixel attr)))
+	      (if (not (= (cadr (.background_pixmap attr)) 0)) (snd-display "background_pixmap: ~A" (.background_pixmap attr)))
+	      (if (not (= (.backing_planes attr) 0)) (snd-display "backing_planes: ~A" (.backing_planes attr)))
+	      (if (.save_under attr) (snd-display "save_under: ~A" (.save_under attr)))
+	      (if (not (= (cadr (.cursor attr)) 0)) (snd-display "cursor: ~A" (.cursor attr)))
+	      (if (not (Window? newwin)) (snd-display "XCreateWindow: ~A" newwin))
+	      (if (not (= (.bit_gravity attr) 0)) (snd-display "bit_gravity: ~A" (.bit_gravity attr)))
 	      (XChangeWindowAttributes dpy newwin CWBackPixel (XSetWindowAttributes #f *basic-color*))
 	      (XDestroyWindow dpy newwin)
 	      (set! newwin (XCreateSimpleWindow dpy win 10 10 100 100 3 *basic-color* *highlight-color*))
@@ -42000,7 +42000,7 @@ EDITS: 1
 	    (XSetRegion dpy sgc (XPolygonRegion (list (XPoint 0 0) (XPoint 10 0) (XPoint 10 10) (XPoint 0 10)) 4 WindingRule))
 	    (let ((pix (make-pixmap (cadr (main-widgets)) arrow-strs)))
 	      (if (not (Pixmap? pix))
-		  (snd-display ";make-pixmap?")
+		  (snd-display "make-pixmap?")
 		  (begin
 		    (XSetTile dpy sgc pix)
 		    (XSetStipple dpy sgc (XCreateBitmapFromData dpy wn right-arrow 16 12))
@@ -42010,11 +42010,11 @@ EDITS: 1
 		    (XSetDashes dpy sgc 0 '(3 4 3 1))
 		    (XSetClipRectangles dpy sgc 0 0 (list (XRectangle 0 0 10 10) (XRectangle 10 10 100 100)) 2 Unsorted)
 		    (let ((err (XWriteBitmapFile dpy "testx.data" pix 16 12 -1 -1)))
-		      (if (not (= BitmapSuccess err)) (snd-display ";XWriteBitmapFile: ~A" err)))
+		      (if (not (= BitmapSuccess err)) (snd-display "XWriteBitmapFile: ~A" err)))
 					;(let ((vals (XReadBitmapFile dpy (XtWindow (cadr (main-widgets))) "testx.data")))
-					;  (if (not (= (car vals BitmapSuccess))) (snd-display ";XReadBitmapFile: ~A" vals)))
+					;  (if (not (= (car vals BitmapSuccess))) (snd-display "XReadBitmapFile: ~A" vals)))
 					;(let ((vals (XReadBitmapFileData "testx.data")))
-					;  (if (not (= (car vals BitmapSuccess))) (snd-display ";XReadBitmapFileData: ~A" vals)))
+					;  (if (not (= (car vals BitmapSuccess))) (snd-display "XReadBitmapFileData: ~A" vals)))
 		    
 		    (let ((fid (XLoadFont dpy "cursor"))
 			  (col (XColor))
@@ -42023,9 +42023,9 @@ EDITS: 1
 		      (XAllocNamedColor dpy cmap "blue" col col)
 		      (XAllocNamedColor dpy cmap "green" col1 col1)
 		      (let ((vals (XCreateGlyphCursor dpy fid None XC_dot 0 col col1)))
-			(if (not (Cursor? vals)) (snd-display ";XCreateGlyphCursor: ~A" vals)))
+			(if (not (Cursor? vals)) (snd-display "XCreateGlyphCursor: ~A" vals)))
 		      (let ((vals (XCreatePixmapCursor dpy pix None col col1 5 5)))
-			(if (not (Cursor? vals)) (snd-display ";XCreatePixmapCursor: ~A" vals))
+			(if (not (Cursor? vals)) (snd-display "XCreatePixmapCursor: ~A" vals))
 			(XRecolorCursor dpy vals col1 col))
 		      (XAllocColorPlanes dpy cmap #f 2 1 1 1)
 		      (XAllocColorCells dpy cmap #f 1 1)))))
@@ -42035,20 +42035,20 @@ EDITS: 1
 		   (chs (XQueryTextExtents dpy fid "hiho"))
 		   (struct (chs 4)))
 	      (let ((fnt1 (XQueryFont dpy fid)))
-		(if (not (Font? fid)) (snd-display ";XLoadFont: ~A" fid))
-		(if (not (XFontStruct? fnt)) (snd-display ";XLoadQueryFont: ~A" fnt))
-		(if (not (XFontStruct? fnt1)) (snd-display ";XQueryFont: ~A" fnt1)))
-	      (if (not (XCharStruct? struct)) (snd-display ";XQueryTextExtents: ~A" chs))
-	      (if (not (= (chs 2) 12)) (snd-display ";XQueryTextExtents max ascent: ~A" (chs 2)))
-	      (if (not (= (chs 3) 3)) (snd-display ";XQueryTextExtents max descent: ~A" (chs 3)))
-	      (if (not (= (.lbearing struct) 0)) (snd-display ";lbearing: ~A" (.lbearing struct)))
-	      (if (not (= (.rbearing struct) 23)) (snd-display ";rbearing: ~A" (.rbearing struct)))
-	      (if (not (= (.width struct) 24)) (snd-display ";width: ~A" (.width struct)))
-	      (if (not (= (.ascent struct) 10)) (snd-display ";ascent: ~A" (.ascent struct)))
-	      (if (not (= (.descent struct) 0)) (snd-display ";descent: ~A" (.descent struct)))
-	      (if (not (= (.attributes struct) 0)) (snd-display ";attributes: ~A" (.attributes struct)))
+		(if (not (Font? fid)) (snd-display "XLoadFont: ~A" fid))
+		(if (not (XFontStruct? fnt)) (snd-display "XLoadQueryFont: ~A" fnt))
+		(if (not (XFontStruct? fnt1)) (snd-display "XQueryFont: ~A" fnt1)))
+	      (if (not (XCharStruct? struct)) (snd-display "XQueryTextExtents: ~A" chs))
+	      (if (not (= (chs 2) 12)) (snd-display "XQueryTextExtents max ascent: ~A" (chs 2)))
+	      (if (not (= (chs 3) 3)) (snd-display "XQueryTextExtents max descent: ~A" (chs 3)))
+	      (if (not (= (.lbearing struct) 0)) (snd-display "lbearing: ~A" (.lbearing struct)))
+	      (if (not (= (.rbearing struct) 23)) (snd-display "rbearing: ~A" (.rbearing struct)))
+	      (if (not (= (.width struct) 24)) (snd-display "width: ~A" (.width struct)))
+	      (if (not (= (.ascent struct) 10)) (snd-display "ascent: ~A" (.ascent struct)))
+	      (if (not (= (.descent struct) 0)) (snd-display "descent: ~A" (.descent struct)))
+	      (if (not (= (.attributes struct) 0)) (snd-display "attributes: ~A" (.attributes struct)))
 	      (let ((fid (load-font "-*-helvetica-bold-r-*-*-14-*-*-*-*-*-*-*")))
-		(if (not (Font? fid)) (snd-display ";load-font -> ~A" fid)))
+		(if (not (Font? fid)) (snd-display "load-font -> ~A" fid)))
 	      )
 	    (XFreeGC (XtDisplay (cadr (main-widgets))) sgc)
 	    )))
@@ -42078,222 +42078,222 @@ EDITS: 1
 	(for-each
 	 (lambda (n name)
 	   (if (not (Atom? n))
-	       (snd-display ";Atom: ~A -> ~A" name (Atom? n))))
+	       (snd-display "Atom: ~A -> ~A" name (Atom? n))))
 	 atoms
 	 atom-names))
       
       (let ((r (XRectangle 10 20 100 110)))
 	(if (not (= (.width r) 100))
-	    (snd-display ";XRectangle width: ~A" (.width r)))
+	    (snd-display "XRectangle width: ~A" (.width r)))
 	(if (not (= (.height r) 110))
-	    (snd-display ";XRectangle height: ~A" (.height r)))
+	    (snd-display "XRectangle height: ~A" (.height r)))
 	(if (not (= (.x r) 10))
-	    (snd-display ";XRectangle x: ~A" (.x r)))
+	    (snd-display "XRectangle x: ~A" (.x r)))
 	(if (not (= (.y r) 20))
-	    (snd-display ";XRectangle y: ~A" (.y r)))
+	    (snd-display "XRectangle y: ~A" (.y r)))
 	(set! (.width r) 10)
 	(if (not (= (.width r) 10))
-	    (snd-display ";set XRectangle width: ~A" (.width r)))
+	    (snd-display "set XRectangle width: ~A" (.width r)))
 	(set! (.height r) 11)
 	(if (not (= (.height r) 11))
-	    (snd-display ";set XRectangle height: ~A" (.height r)))
+	    (snd-display "set XRectangle height: ~A" (.height r)))
 	(set! (.x r) 1)
 	(if (not (= (.x r) 1))
-	    (snd-display ";set XRectangle x: ~A" (.x r)))
+	    (snd-display "set XRectangle x: ~A" (.x r)))
 	(set! (.y r) 2)
 	(if (not (= (.y r) 2))
-	    (snd-display ";XRectangle y: ~A" (.y r))))
+	    (snd-display "XRectangle y: ~A" (.y r))))
       
       (let ((r (XArc 10 20 100 110 0 235)))
 	(if (not (= (.width r) 100))
-	    (snd-display ";XArc width: ~A" (.width r)))
+	    (snd-display "XArc width: ~A" (.width r)))
 	(if (not (= (.height r) 110))
-	    (snd-display ";XArc height: ~A" (.height r)))
+	    (snd-display "XArc height: ~A" (.height r)))
 	(if (not (= (.x r) 10))
-	    (snd-display ";XArc x: ~A" (.x r)))
+	    (snd-display "XArc x: ~A" (.x r)))
 	(if (not (= (.y r) 20))
-	    (snd-display ";XArc y: ~A" (.y r)))
+	    (snd-display "XArc y: ~A" (.y r)))
 	(if (not (= (.angle1 r) 0))
-	    (snd-display ";XArc angle1: ~A" (.angle1 r)))
+	    (snd-display "XArc angle1: ~A" (.angle1 r)))
 	(if (not (= (.angle2 r) 235))
-	    (snd-display ";XArc angle2: ~A" (.angle2 r)))
+	    (snd-display "XArc angle2: ~A" (.angle2 r)))
 	(set! (.width r) 10)
 	(if (not (= (.width r) 10))
-	    (snd-display ";set XArc width: ~A" (.width r)))
+	    (snd-display "set XArc width: ~A" (.width r)))
 	(set! (.height r) 11)
 	(if (not (= (.height r) 11))
-	    (snd-display ";set XArc height: ~A" (.height r)))
+	    (snd-display "set XArc height: ~A" (.height r)))
 	(set! (.x r) 1)
 	(if (not (= (.x r) 1))
-	    (snd-display ";set XArc x: ~A" (.x r)))
+	    (snd-display "set XArc x: ~A" (.x r)))
 	(set! (.y r) 2)
 	(if (not (= (.y r) 2))
-	    (snd-display ";set XArc y: ~A" (.y r)))
+	    (snd-display "set XArc y: ~A" (.y r)))
 	(set! (.angle1 r) 123)
 	(if (not (= (.angle1 r) 123))
-	    (snd-display ";set XArc angle1: ~A" (.angle1 r)))
+	    (snd-display "set XArc angle1: ~A" (.angle1 r)))
 	(set! (.angle2 r) 321)
 	(if (not (= (.angle2 r) 321))
-	    (snd-display ";set XArc angle2: ~A" (.angle2 r))))
+	    (snd-display "set XArc angle2: ~A" (.angle2 r))))
       
       (let ((r (XPoint 10 20)))
 	(if (not (= (.x r) 10))
-	    (snd-display ";XPoint x: ~A" (.x r)))
+	    (snd-display "XPoint x: ~A" (.x r)))
 	(if (not (= (.y r) 20))
-	    (snd-display ";XPoint y: ~A" (.y r)))
+	    (snd-display "XPoint y: ~A" (.y r)))
 	(set! (.x r) 1)
 	(if (not (= (.x r) 1))
-	    (snd-display ";set XPoint x: ~A" (.x r)))
+	    (snd-display "set XPoint x: ~A" (.x r)))
 	(set! (.y r) 2)
 	(if (not (= (.y r) 2))
-	    (snd-display ";set XPoint y: ~A" (.y r))))
+	    (snd-display "set XPoint y: ~A" (.y r))))
       
       (let ((r (XSegment 10 20 100 110)))
 	(if (not (= (.x1 r) 10))
-	    (snd-display ";XSegment x1: ~A" (.x1 r)))
+	    (snd-display "XSegment x1: ~A" (.x1 r)))
 	(if (not (= (.y1 r) 20))
-	    (snd-display ";XSegment y1: ~A" (.y1 r)))
+	    (snd-display "XSegment y1: ~A" (.y1 r)))
 	(if (not (= (.x2 r) 100))
-	    (snd-display ";XSegment x2: ~A" (.x2 r)))
+	    (snd-display "XSegment x2: ~A" (.x2 r)))
 	(if (not (= (.y2 r) 110))
-	    (snd-display ";XSegment y2: ~A" (.y2 r)))
+	    (snd-display "XSegment y2: ~A" (.y2 r)))
 	(set! (.x1 r) 1)
 	(if (not (= (.x1 r) 1))
-	    (snd-display ";set XSegment x1: ~A" (.x1 r)))
+	    (snd-display "set XSegment x1: ~A" (.x1 r)))
 	(set! (.y1 r) 2)
 	(if (not (= (.y1 r) 2))
-	    (snd-display ";set XSegment y1: ~A" (.y1 r)))
+	    (snd-display "set XSegment y1: ~A" (.y1 r)))
 	(set! (.x2 r) 10)
 	(if (not (= (.x2 r) 10))
-	    (snd-display ";set XSegment x2: ~A" (.x2 r)))
+	    (snd-display "set XSegment x2: ~A" (.x2 r)))
 	(set! (.y2 r) 11)
 	(if (not (= (.y2 r) 11))
-	    (snd-display ";set XSegment y2: ~A" (.y2 r))))
+	    (snd-display "set XSegment y2: ~A" (.y2 r))))
       
       (let ((c (XColor)))
 	(set! (.red c) 1)
-	(if (not (= (.red c) 1)) (snd-display ";Xcolor red: ~A" (.red c)))
+	(if (not (= (.red c) 1)) (snd-display "Xcolor red: ~A" (.red c)))
 	(set! (.green c) 1)
-	(if (not (= (.green c) 1)) (snd-display ";Xcolor green: ~A" (.green c)))
+	(if (not (= (.green c) 1)) (snd-display "Xcolor green: ~A" (.green c)))
 	(set! (.blue c) 1)
-	(if (not (= (.blue c) 1)) (snd-display ";Xcolor blue: ~A" (.blue c)))
+	(if (not (= (.blue c) 1)) (snd-display "Xcolor blue: ~A" (.blue c)))
 	(set! (.flags c) DoRed)
-	(if (not (= (.flags c) DoRed)) (snd-display ";Xcolor flags: ~A" (.flags c)))
-	(if (not (= (.pad c) 0)) (snd-display ";pad: ~A" (.pad c)))
+	(if (not (= (.flags c) DoRed)) (snd-display "Xcolor flags: ~A" (.flags c)))
+	(if (not (= (.pad c) 0)) (snd-display "pad: ~A" (.pad c)))
 	(set! (.pixel c) *basic-color*)
-	(if (not (equal? (.pixel c) *basic-color*)) (snd-display ";Xcolor pixel: ~A" (.pixel c))))
+	(if (not (equal? (.pixel c) *basic-color*)) (snd-display "Xcolor pixel: ~A" (.pixel c))))
       
       (let ((obj (XTextItem "hiho" 4 3 (list 'Font 1))))
-	(if (not (XTextItem? obj)) (snd-display ";XTextItem -> ~A" obj))
-	(if (not (equal? (.font obj) '(Font 1))) (snd-display ";font ~A" (.font obj)))
+	(if (not (XTextItem? obj)) (snd-display "XTextItem -> ~A" obj))
+	(if (not (equal? (.font obj) '(Font 1))) (snd-display "font ~A" (.font obj)))
 	(set! (.font obj) (list 'Font 2))
-	(if (not (equal? (.font obj) '(Font 2))) (snd-display ";set font ~A" (.font obj)))
-	(if (not (string=? (.chars obj) "hiho")) (snd-display ";chars: ~A" (.chars obj)))
-	(if (not (= (.nchars obj) 4)) (snd-display ";chars: ~A" (.nchars obj)))
+	(if (not (equal? (.font obj) '(Font 2))) (snd-display "set font ~A" (.font obj)))
+	(if (not (string=? (.chars obj) "hiho")) (snd-display "chars: ~A" (.chars obj)))
+	(if (not (= (.nchars obj) 4)) (snd-display "chars: ~A" (.nchars obj)))
 	(set! (.chars obj) "away!")
 	(set! (.nchars obj) 5)
-	(if (not (string=? (.chars obj) "away!")) (snd-display ";set chars: ~A" (.chars obj)))
-	(if (not (= (.nchars obj) 5)) (snd-display ";set chars: ~A" (.nchars obj)))
-	(if (not (= (.delta obj) 3)) (snd-display ";delta ~A" (.delta obj)))
+	(if (not (string=? (.chars obj) "away!")) (snd-display "set chars: ~A" (.chars obj)))
+	(if (not (= (.nchars obj) 5)) (snd-display "set chars: ~A" (.nchars obj)))
+	(if (not (= (.delta obj) 3)) (snd-display "delta ~A" (.delta obj)))
 	(set! (.delta obj) 4)
-	(if (not (= (.delta obj) 4)) (snd-display ";set delta ~A" (.delta obj)))
+	(if (not (= (.delta obj) 4)) (snd-display "set delta ~A" (.delta obj)))
 	)
       
       (let ((reg (XPolygonRegion (list (XPoint 0 0) (XPoint 10 0) (XPoint 10 10) (XPoint 0 10)) 4 WindingRule)))
-	(if (not (XPointInRegion reg 4 4)) (snd-display ";XPointInRegion"))
+	(if (not (XPointInRegion reg 4 4)) (snd-display "XPointInRegion"))
 	(XShrinkRegion reg 1 2)
-	(if (not (XPointInRegion reg 4 7)) (snd-display ";t XShrinkRegion"))
-	(if (XPointInRegion reg 4 9) (snd-display ";f XShrinkRegion"))
+	(if (not (XPointInRegion reg 4 7)) (snd-display "t XShrinkRegion"))
+	(if (XPointInRegion reg 4 9) (snd-display "f XShrinkRegion"))
 	(XOffsetRegion reg 1 2)
-	(if (not (XPointInRegion reg 4 9)) (snd-display ";t XOffsetRegion"))
-	(if (XPointInRegion reg 1 9) (snd-display ";f XOffsetRegion"))
+	(if (not (XPointInRegion reg 4 9)) (snd-display "t XOffsetRegion"))
+	(if (XPointInRegion reg 1 9) (snd-display "f XOffsetRegion"))
 	(let ((reg2 (XCreateRegion))
 	      (reg1 (XPolygonRegion (list (XPoint 2 2) (XPoint 10 2) (XPoint 10 10) (XPoint 2 10)) 4 WindingRule)))
-	  (if (XEqualRegion reg reg1) (snd-display ";f XEqualRegion"))
-	  (if (XEmptyRegion reg) (snd-display ";f XEmptyRegion"))
+	  (if (XEqualRegion reg reg1) (snd-display "f XEqualRegion"))
+	  (if (XEmptyRegion reg) (snd-display "f XEmptyRegion"))
 	  (XXorRegion reg reg1 reg2)
 	  (let ((box (cadr (XClipBox reg2))))
 	    (if (not (and (= (.x box) 2)
 			  (= (.y box) 2)
 			  (= (.width box) 8)
 			  (= (.height box) 2)))
-		(snd-display ";XXorRegion: ~A ~A ~A ~A" (.x box) (.y box) (.width box) (.height box))))
+		(snd-display "XXorRegion: ~A ~A ~A ~A" (.x box) (.y box) (.width box) (.height box))))
 	  (XUnionRegion reg reg1 reg2)
 	  (let ((box (cadr (XClipBox reg2))))
 	    (if (not (and (= (.x box) 2)
 			  (= (.y box) 2)
 			  (= (.width box) 8)
 			  (= (.height box) 8)))
-		(snd-display ";XUnionRegion: ~A ~A ~A ~A" (.x box) (.y box) (.width box) (.height box))))
+		(snd-display "XUnionRegion: ~A ~A ~A ~A" (.x box) (.y box) (.width box) (.height box))))
 	  (XSubtractRegion reg reg1 reg2)
 	  (let ((box (cadr (XClipBox reg2))))
 	    (if (not (and (= (.x box) 0)
 			  (= (.y box) 0)
 			  (= (.width box) 0)
 			  (= (.height box) 0)))
-		(snd-display ";XSubtractRegion: ~A ~A ~A ~A" (.x box) (.y box) (.width box) (.height box))))
+		(snd-display "XSubtractRegion: ~A ~A ~A ~A" (.x box) (.y box) (.width box) (.height box))))
 	  (XIntersectRegion reg reg1 reg2)
 	  (let ((box (cadr (XClipBox reg2))))
 	    (if (not (and (= (.x box) 2)
 			  (= (.y box) 4)
 			  (= (.width box) 8)
 			  (= (.height box) 6)))
-		(snd-display ";XIntersectRegion: ~A ~A ~A ~A" (.x box) (.y box) (.width box) (.height box))))
+		(snd-display "XIntersectRegion: ~A ~A ~A ~A" (.x box) (.y box) (.width box) (.height box))))
 	  (XUnionRectWithRegion (XRectangle 1 3 100 100) reg1 reg2)
 	  (let ((box (cadr (XClipBox reg2))))
 	    (if (not (and (= (.x box) 1)
 			  (= (.y box) 2)
 			  (= (.width box) 100)
 			  (= (.height box) 101)))
-		(snd-display ";XUnionRectWithRegion: ~A ~A ~A ~A" (.x box) (.y box) (.width box) (.height box))))
+		(snd-display "XUnionRectWithRegion: ~A ~A ~A ~A" (.x box) (.y box) (.width box) (.height box))))
 	  (XRectInRegion reg 0 0 100 100)
 	  (let ((box (cadr (XClipBox reg1))))
 	    (if (not (and (= (.x box) 2)
 			  (= (.y box) 2)
 			  (= (.width box) 8)
 			  (= (.height box) 8)))
-		(snd-display ";XClipBox: ~A ~A ~A ~A" (.x box) (.y box) (.width box) (.height box))))
+		(snd-display "XClipBox: ~A ~A ~A ~A" (.x box) (.y box) (.width box) (.height box))))
 	  (XDestroyRegion reg1)
 	  ))
       
       (let ((xid (XUniqueContext))
 	    (dpy (XtDisplay (cadr (main-widgets)))))
 	(if (not (eq? (car xid) 'XContext))
-	    (snd-display ";XUniqueContext: ~A" xid))
+	    (snd-display "XUniqueContext: ~A" xid))
 	(XSaveContext dpy  123 xid "hiho")
 	(let ((val (XFindContext dpy 123 xid)))
 	  (if (not (and (= 0 (car val))
 			(string=? (cadr val) "hiho")))
-	      (snd-display ";XFindContext: ~A" val)))
+	      (snd-display "XFindContext: ~A" val)))
 	(XDeleteContext dpy 123 xid)
 	(XStoreBytes dpy "hiho" 4)
-	(if (not (string=? (XFetchBytes dpy) "hiho")) (snd-display ";XStoreBytes: ~A" (XFetchBytes dpy)))
+	(if (not (string=? (XFetchBytes dpy) "hiho")) (snd-display "XStoreBytes: ~A" (XFetchBytes dpy)))
 	(XStoreBuffer dpy "hiho" 4 1)
-	(if (not (string=? (XFetchBuffer dpy 1) "hiho")) (snd-display ";XStoreBuffer: ~A" (XFetchBuffer dpy 1)))
+	(if (not (string=? (XFetchBuffer dpy 1) "hiho")) (snd-display "XStoreBuffer: ~A" (XFetchBuffer dpy 1)))
 	)
       
       
       ;; ---------------- Xt tests ----------------
       (let ((name (XtGetApplicationNameAndClass (XtDisplay (cadr (main-widgets))))))
 	(if (not (equal? name '("snd" "Snd")))
-	    (snd-display ";XtGetApplicationNameAndClass: ~A?" name)))
+	    (snd-display "XtGetApplicationNameAndClass: ~A?" name)))
       (let ((dpys (XtGetDisplays (car (main-widgets)))))
 	(if (not (Display? (car dpys)))
-	    (snd-display ";XtGetDisplays: ~A?" dpys)))
+	    (snd-display "XtGetDisplays: ~A?" dpys)))
       (let ((app (XtDisplayToApplicationContext (XtDisplay (cadr (main-widgets)))))
 	    (orig (car (main-widgets)))
 	    (wid (XtWidgetToApplicationContext (cadr (main-widgets)))))
 	(if (not (equal? app orig))
-	    (snd-display ";XtDisplayToApplicationContext: ~A ~A?" app orig))
+	    (snd-display "XtDisplayToApplicationContext: ~A ~A?" app orig))
 	(if (not (equal? app wid))
-	    (snd-display ";XtWidgetToApplicationContext: ~A ~A?" app wid)))
+	    (snd-display "XtWidgetToApplicationContext: ~A ~A?" app wid)))
       (if (not (string=? (XtName (caddr (main-widgets))) "mainpane"))
-	  (snd-display ";XtName main pane: ~A" (XtName (caddr (main-widgets)))))
+	  (snd-display "XtName main pane: ~A" (XtName (caddr (main-widgets)))))
       (if (not (= (XtGetMultiClickTime (XtDisplay (cadr (main-widgets)))) 200))
-	  (snd-display ";XtGetMultiClickTime: ~A" (XtGetMultiClickTime (XtDisplay (cadr (main-widgets))))))
+	  (snd-display "XtGetMultiClickTime: ~A" (XtGetMultiClickTime (XtDisplay (cadr (main-widgets))))))
       (XtSetMultiClickTime (XtDisplay (cadr (main-widgets))) 250)
       (if (not (= (XtGetMultiClickTime (XtDisplay (cadr (main-widgets)))) 250))
-	  (snd-display ";XtSetMultiClickTime: ~A" (XtGetMultiClickTime (XtDisplay (cadr (main-widgets))))))
+	  (snd-display "XtSetMultiClickTime: ~A" (XtGetMultiClickTime (XtDisplay (cadr (main-widgets))))))
       (XtGetResourceList xmListWidgetClass) 
       (XtDestroyWidget (XtCreateWidget "wid1" xmPushButtonWidgetClass (cadr (main-widgets)) ()))
       (XtRemoveActionHook (XtAppAddActionHook 
@@ -42306,33 +42306,33 @@ EDITS: 1
 	     (wid (XtCreateWidget "wid" xmFormWidgetClass shell ()))
 	     (wid1 (XtCreateWidget "wid1" xmPushButtonWidgetClass wid ()))
 	     (wid2 (XtVaCreateWidget "wid" xmFormWidgetClass shell ())))
-	(if (XtIsApplicationShell wid) (snd-display ";XtIsApplicationShell"))
-	(if (not (XtIsApplicationShell shell)) (snd-display ";XtIsApplicationShell of appshell"))
-	(if (not (XtIsComposite wid)) (snd-display ";XtIsComposite"))
-	(if (not (XtIsConstraint wid)) (snd-display ";XtIsConstraint"))
-	(if (XtIsManaged wid) (snd-display ";XtIsManaged"))
-	(if (not (XtIsObject wid)) (snd-display ";XtIsObject"))
-	(if (XtIsOverrideShell wid) (snd-display ";XtIsOverrideShell"))
-	(if (XtIsRealized wid) (snd-display ";XtIsRealized"))
-	(if (not (XtIsRealized shell)) (snd-display ";XtIsRealized main shell"))
-	(if (not (XtIsRectObj wid)) (snd-display ";XtIsRectObj"))
-	(if (not (XtIsSensitive wid)) (snd-display ";XtIsSensitive"))
-	(if (not (XtIsSensitive shell)) (snd-display ";XtIsSensitive of main shell"))
+	(if (XtIsApplicationShell wid) (snd-display "XtIsApplicationShell"))
+	(if (not (XtIsApplicationShell shell)) (snd-display "XtIsApplicationShell of appshell"))
+	(if (not (XtIsComposite wid)) (snd-display "XtIsComposite"))
+	(if (not (XtIsConstraint wid)) (snd-display "XtIsConstraint"))
+	(if (XtIsManaged wid) (snd-display "XtIsManaged"))
+	(if (not (XtIsObject wid)) (snd-display "XtIsObject"))
+	(if (XtIsOverrideShell wid) (snd-display "XtIsOverrideShell"))
+	(if (XtIsRealized wid) (snd-display "XtIsRealized"))
+	(if (not (XtIsRealized shell)) (snd-display "XtIsRealized main shell"))
+	(if (not (XtIsRectObj wid)) (snd-display "XtIsRectObj"))
+	(if (not (XtIsSensitive wid)) (snd-display "XtIsSensitive"))
+	(if (not (XtIsSensitive shell)) (snd-display "XtIsSensitive of main shell"))
 	(XtSetSensitive wid1 #t)
-	(if (not (XtIsSensitive wid1)) (snd-display ";XtIsSensitive of button"))
-	(if (XtIsSessionShell wid) (snd-display ";XtIsSessionShell"))
-	(if (XtIsShell wid) (snd-display ";XtIsShell"))
-	(if (not (XtIsShell shell)) (snd-display ";XtIsShell of main shell"))
-	(if (XtIsTopLevelShell wid) (snd-display ";XtIsTopLevelShell"))
-	(if (not (XtIsTopLevelShell shell)) (snd-display ";XtIsTopLevelShell of main shell"))
-	(if (XtIsTransientShell wid) (snd-display ";XtIsTransientShell"))
-	(if (XtIsVendorShell wid) (snd-display ";XtIsVendorShell"))
-	(if (not (XtIsVendorShell shell)) (snd-display ";XtIsVendorShell of main shell"))
-	(if (XtIsWMShell wid) (snd-display ";XtIsWMShell"))
-	(if (not (XtIsWidget wid)) (snd-display ";XtIsWidget"))
-	(if (not (XtIsWidget wid2)) (snd-display ";XtIsWidget 2"))
+	(if (not (XtIsSensitive wid1)) (snd-display "XtIsSensitive of button"))
+	(if (XtIsSessionShell wid) (snd-display "XtIsSessionShell"))
+	(if (XtIsShell wid) (snd-display "XtIsShell"))
+	(if (not (XtIsShell shell)) (snd-display "XtIsShell of main shell"))
+	(if (XtIsTopLevelShell wid) (snd-display "XtIsTopLevelShell"))
+	(if (not (XtIsTopLevelShell shell)) (snd-display "XtIsTopLevelShell of main shell"))
+	(if (XtIsTransientShell wid) (snd-display "XtIsTransientShell"))
+	(if (XtIsVendorShell wid) (snd-display "XtIsVendorShell"))
+	(if (not (XtIsVendorShell shell)) (snd-display "XtIsVendorShell of main shell"))
+	(if (XtIsWMShell wid) (snd-display "XtIsWMShell"))
+	(if (not (XtIsWidget wid)) (snd-display "XtIsWidget"))
+	(if (not (XtIsWidget wid2)) (snd-display "XtIsWidget 2"))
 	(XtRealizeWidget wid)
-	(if (not (XtIsRealized wid)) (snd-display ";XtRealizeWidget?"))
+	(if (not (XtIsRealized wid)) (snd-display "XtRealizeWidget?"))
 	(XtAddGrab shell #f #f)
 	(XtRemoveGrab shell)
 	(XtMakeResizeRequest wid 200 200)
@@ -42345,7 +42345,7 @@ EDITS: 1
       (XtSetLanguageProc 
        (car (main-widgets)) 
        (lambda (dpy str data)
-	 (snd-display ";YOW: language proc: got ~A ~A" str data))
+	 (snd-display "YOW: language proc: got ~A ~A" str data))
        "who called us?")
       (XtSetLanguageProc (car (main-widgets)) #f "oops")
       (XtSetLanguageProc #f #f "oops")
@@ -42354,21 +42354,21 @@ EDITS: 1
       (let* ((shell (cadr (main-widgets)))
 	     (dpy (XtDisplay shell)))
 	(if (not (equal? (XtClass shell) applicationShellWidgetClass))
-	    (snd-display ";XtClass shell: ~A" (XtClass shell)))
+	    (snd-display "XtClass shell: ~A" (XtClass shell)))
 	(if (not (equal? (XtSuperclass shell) topLevelShellWidgetClass))
-	    (snd-display ";XtSuperclass shell: ~A" (XtClass shell)))
+	    (snd-display "XtSuperclass shell: ~A" (XtClass shell)))
 	(if (not (string=? (XtName shell) "snd"))
-	    (snd-display ";XtName: ~A" (XtName shell)))
+	    (snd-display "XtName: ~A" (XtName shell)))
 	(if (not (equal? (XtWindow shell) (XtWindowOfObject shell)))
-	    (snd-display ";XtWindow: ~A ~A" (XtWindow shell) (XtWindowOfObject shell)))
+	    (snd-display "XtWindow: ~A ~A" (XtWindow shell) (XtWindowOfObject shell)))
 	(if (not (equal? (XtScreen shell) (XtScreenOfObject shell)))
-	    (snd-display ";XtScreen: ~A ~A" (XtScreen shell) (XtScreenOfObject shell)))
+	    (snd-display "XtScreen: ~A ~A" (XtScreen shell) (XtScreenOfObject shell)))
 	(if (not (equal? (XtDisplay shell) (XtDisplayOfObject shell)))
-	    (snd-display ";XtDisplay: ~A ~A" (XtDisplay shell) (XtDisplayOfObject shell)))
+	    (snd-display "XtDisplay: ~A ~A" (XtDisplay shell) (XtDisplayOfObject shell)))
 	(if (not (Time? (XtLastTimestampProcessed dpy)))
-	    (snd-display ";XtLastTimestampProcessed: ~A" (XtLastTimestampProcessed dpy)))
+	    (snd-display "XtLastTimestampProcessed: ~A" (XtLastTimestampProcessed dpy)))
 	(if (not (XEvent? (XtLastEventProcessed dpy)))
-	    (snd-display ";XtLastEventProcessed: ~A" (XtLastEventProcessed dpy)))
+	    (snd-display "XtLastEventProcessed: ~A" (XtLastEventProcessed dpy)))
 	(XtBuildEventMask shell)
 	(let ((val 0))
 	  (XtRegisterCaseConverter 
@@ -42380,38 +42380,38 @@ EDITS: 1
 	   (list 'KeySym 65)
 	   (list 'KeySym 65))
 	  (XtConvertCase dpy (list 'KeySym 65))
-	  (if (not (= val 123)) (snd-display ";XtRegisterCaseConverter: ~A" val)))
+	  (if (not (= val 123)) (snd-display "XtRegisterCaseConverter: ~A" val)))
 	(XtRegisterGrabAction (lambda (a b c) #f) #f ColormapChangeMask GrabModeSync GrabModeAsync)
 	(let ((vals (XtTranslateKeycode dpy (list 'KeyCode XK_B) 0)))
 	  (if (not (and (= (car vals) 0) 
 			(KeySym? (cadr vals))))
-	      (snd-display ";XtTranslateKeycode: ~A" vals))
+	      (snd-display "XtTranslateKeycode: ~A" vals))
 	  (if (not (equal? vals (XtTranslateKey dpy (list 'KeyCode XK_B) 0)))
-	      (snd-display ";XtTranslateKey: ~A ~A" vals (XtTranslateKey dpy (list 'KeyCode XK_B) 0)))
+	      (snd-display "XtTranslateKey: ~A ~A" vals (XtTranslateKey dpy (list 'KeyCode XK_B) 0)))
 	  (XtSetKeyTranslator dpy #f)
 	  (if (not (equal? vals (XtTranslateKeycode dpy (list 'KeyCode XK_B) 0)))
-	      (snd-display ";XtSetKeyTranslator #f: ~A ~A" vals (XtTranslateKeycode dpy (list 'KeyCode XK_B) 0)))
+	      (snd-display "XtSetKeyTranslator #f: ~A ~A" vals (XtTranslateKeycode dpy (list 'KeyCode XK_B) 0)))
 	  (XtSetKeyTranslator dpy (lambda (d k m)
-				    (if (not (equal? d dpy)) (snd-display ";d in keyproc: ~A ~A" d dpy))
+				    (if (not (equal? d dpy)) (snd-display "d in keyproc: ~A ~A" d dpy))
 				    (XtTranslateKey d k m)))
 	  (let ((newvals (XtTranslateKeycode dpy (list 'KeyCode XK_B) 0)))
-	    (if (not (equal? vals newvals)) (snd-display ";XtSetKeyTranslator: ~A ~A" vals newvals)))
+	    (if (not (equal? vals newvals)) (snd-display "XtSetKeyTranslator: ~A ~A" vals newvals)))
 	  (XtSetKeyTranslator dpy #f))
 	(if (not (KeySym? (cadr (XmTranslateKey dpy (list 'KeyCode XK_B) 0))))
-	    (snd-display ";XmTranslateKey: ~A" (XmTranslateKey dpy XK_B 0)))
+	    (snd-display "XmTranslateKey: ~A" (XmTranslateKey dpy XK_B 0)))
 	(let ((kv (XtKeysymToKeycodeList dpy (list 'KeySym 65509))))
 	  (if (not (equal? (car kv) '(KeyCode 66))) 
-	      (snd-display ";XtKeysymToKeycodeList: ~A ~A" kv (XtKeysymToKeycodeList dpy (list 'KeySym 65509)))))
+	      (snd-display "XtKeysymToKeycodeList: ~A ~A" kv (XtKeysymToKeycodeList dpy (list 'KeySym 65509)))))
 	(XtInstallAllAccelerators (cadr (main-widgets)) (caddr (main-widgets)))
 	(XtInstallAccelerators (cadr (main-widgets)) (caddr (main-widgets)))
-	(if (not (equal? '(0 1 2) (XtSetArg 0 1 2))) (snd-display ";XtSetArg: ~A" (XtSetArg 0 1 2)))
+	(if (not (equal? '(0 1 2) (XtSetArg 0 1 2))) (snd-display "XtSetArg: ~A" (XtSetArg 0 1 2)))
 	(if (not (Widget? (XtGetKeyboardFocusWidget (cadr (main-widgets)))))
-	    (snd-display ";XtGetKeyboardFocusWidget: ~A" (XtGetKeyboardFocusWidget (cadr (main-widgets)))))
+	    (snd-display "XtGetKeyboardFocusWidget: ~A" (XtGetKeyboardFocusWidget (cadr (main-widgets)))))
 	(XtRemoveInput (XtAppAddInput (car (main-widgets)) 1 XtInputReadMask (lambda (a b c) #f) #f))
 	
 	(XtRemoveWorkProc (XtAppAddWorkProc (car (main-widgets)) (lambda (me) #f) #f))
 	(if (not (equal? (caddr (main-widgets)) (XtNameToWidget (cadr (main-widgets)) "mainpane")))
-	    (snd-display ";XtNameToWidget: ~A ~A" (caddr (main-widgets)) (XtNameToWidget (cadr (main-widgets)) "mainpane")))
+	    (snd-display "XtNameToWidget: ~A ~A" (caddr (main-widgets)) (XtNameToWidget (cadr (main-widgets)) "mainpane")))
 	(XtVaCreatePopupShell "hiho" vendorShellWidgetClass (cadr (main-widgets)) ())
 	(XtResolvePathname (XtDisplay (cadr (main-widgets))) "app-defaults" #f #f #f #f 0 #f)
 	(XtFindFile ".snd" #f 0 #f)
@@ -42421,7 +42421,7 @@ EDITS: 1
 	(let ((acts (XtGetActionList xmLabelWidgetClass)))
 	  (if (not (and (= (length acts) 4) 
 			(string=? (caar acts) "Enter")))
-	      (snd-display ";XtGetActionList: ~A" acts)))
+	      (snd-display "XtGetActionList: ~A" acts)))
 	)
       
       (let ((pop (XtCreatePopupShell "hiho" xmGrabShellWidgetClass (cadr (main-widgets))
@@ -42431,10 +42431,10 @@ EDITS: 1
       (XtAppSetWarningHandler (car (main-widgets))
 			      (lambda (n) 
 				(if (not (string=? n "hiho"))
-				    (snd-display ";XtWarning: ~A" n))))
+				    (snd-display "XtWarning: ~A" n))))
       (XtAppSetWarningMsgHandler (car (main-widgets)) 
 				 (lambda (name type klass def pars num)
-				   (snd-display ";ignore: ~A ~A ~A~%" name def pars)))
+				   (snd-display "ignore: ~A ~A ~A~%" name def pars)))
       
       (let ((listener ((main-widgets) 4)))
 	(for-each (lambda (arg)
@@ -42459,7 +42459,7 @@ EDITS: 1
 	  (let ((tag (catch #t (lambda () (XtVaGetValues (car (sound-widgets)) (list "XmNpaneMaximum" 0)))
 			    (lambda args (car args)))))
 	    (if (not (eq? tag 'no-such-resource))
-		(snd-display ";XtVaGetValues of incorrectly quoted resource name: ~A" tag)))
+		(snd-display "XtVaGetValues of incorrectly quoted resource name: ~A" tag)))
 	  )
 	
 	(close-sound ind))
@@ -42473,9 +42473,9 @@ EDITS: 1
 				     (cadr (XmRenditionRetrieve (car renditions) (list XmNfontName 0)))))
 	     (default-font-info (and (pair? renditions)
 				     (XmRenditionRetrieve (car renditions) (list XmNfont 0 XmNfontType 0)))))
-	(if (not (string=? default-font-name "fixed")) (snd-display ";XmRenderTableGetRenditions name: ~A" default-font-name))
-	(if (not (XFontStruct? (default-font-info 1))) (snd-display ";XmRenderTableGetRenditions font struct: ~A" default-font-info))
-	(if (not (= (default-font-info 3) XmFONT_IS_FONT)) (snd-display ";XmRenderTableGetRenditions font type: ~A" default-font-info)))
+	(if (not (string=? default-font-name "fixed")) (snd-display "XmRenderTableGetRenditions name: ~A" default-font-name))
+	(if (not (XFontStruct? (default-font-info 1))) (snd-display "XmRenderTableGetRenditions font struct: ~A" default-font-info))
+	(if (not (= (default-font-info 3) XmFONT_IS_FONT)) (snd-display "XmRenderTableGetRenditions font type: ~A" default-font-info)))
       
       
       (let ((default-font-info 
@@ -42505,7 +42505,7 @@ EDITS: 1
 			      (XInternAtom dpy "XA_FOUNDRY" #f) 
 			      XA_CAP_HEIGHT)
 			'(#f #t #t #t #t #t #t #f))
-	      (if (not (string=? "Fixed" (cadr (data 1)))) (snd-display ";XmRenderTableGetRendition: ~A" data)))))
+	      (if (not (string=? "Fixed" (cadr (data 1)))) (snd-display "XmRenderTableGetRendition: ~A" data)))))
       
       (let* ((tabs (let ((ctr 0))
 		     (map
@@ -42515,18 +42515,18 @@ EDITS: 1
 		      '(1.5 1.5 1.5 1.5))))
 	     (tablist (XmTabListInsertTabs #f tabs (length tabs) 0)))
 	(if (not (= (XmTabListTabCount tablist) (length tabs))) 
-	    (snd-display ";tablist len: ~A ~A~%" (XmTabListTabCount tablist) (length tabs)))
+	    (snd-display "tablist len: ~A ~A~%" (XmTabListTabCount tablist) (length tabs)))
 	(if (not (equal? (XmTabGetValues (XmTabListGetTab tablist 0)) '(1.5 5 0 0 ".")))
-	    (snd-display ";XmTabs 0: ~A" (XmTabGetValues (XmTabListGetTab tablist 0))))
+	    (snd-display "XmTabs 0: ~A" (XmTabGetValues (XmTabListGetTab tablist 0))))
 	(if (not (equal? (XmTabGetValues (XmTabListGetTab tablist 2)) '(1.5 5 1 0 ".")))
-	    (snd-display ";XmTabs 2: ~A" (XmTabGetValues (XmTabListGetTab tablist 2))))
+	    (snd-display "XmTabs 2: ~A" (XmTabGetValues (XmTabListGetTab tablist 2))))
 	(let ((copytab (XmTabListCopy tablist 0 0)))
 	  (if (not (equal? (XmTabGetValues (XmTabListGetTab copytab 0)) '(1.5 5 0 0 ".")))
-	      (snd-display ";XmTabListCopy 0: ~A" (XmTabGetValues (XmTabListGetTab copytab 0))))
+	      (snd-display "XmTabListCopy 0: ~A" (XmTabGetValues (XmTabListGetTab copytab 0))))
 	  (let ((another (XmTabListRemoveTabs copytab (list 0 1)))
 		(atab (XmTabCreate 3.0 XmINCHES XmABSOLUTE XmALIGNMENT_BEGINNING ".")))
 	    (if (not (equal? (XmTabGetValues (XmTabListGetTab another 0)) '(1.5 5 1 0 ".")))
-		(snd-display ";XmTabListRemoveTabs: ~A" (XmTabGetValues (XmTabListGetTab another 0))))
+		(snd-display "XmTabListRemoveTabs: ~A" (XmTabGetValues (XmTabListGetTab another 0))))
 	    (XmTabListReplacePositions (XmTabListCopy tablist 0 0) (list 1) (list atab))
 	    ;; this (replacepositions) is very prone to segfaults -- *very* poorly implemented! 
 	    (XmTabSetValue atab 6.0)
@@ -42537,16 +42537,16 @@ EDITS: 1
 		       (cadr (main-widgets))
 		       1.0
 		       XmABSOLUTE)))
-	    (if (not (XmTabList? tabl)) (snd-display ";XmStringTableProposeTabList: ~A" tabl))
+	    (if (not (XmTabList? tabl)) (snd-display "XmStringTableProposeTabList: ~A" tabl))
 	    (XmTabListFree tabl)))
 	
 	(let ((hname (host-name))) ; from snd-motif.scm
 	  (if (not (equal? hname (getenv "HOSTNAME")))
-	      (snd-display ";host name appears to be ~A or maybe ~A" hname (getenv "HOSTNAME"))))
+	      (snd-display "host name appears to be ~A or maybe ~A" hname (getenv "HOSTNAME"))))
 	(let ((blu (x->snd-color "blue")))
-	  (if (not (Pixel? blu)) (snd-display ";x->snd-color can't find blue! ~A" blu))
+	  (if (not (Pixel? blu)) (snd-display "x->snd-color can't find blue! ~A" blu))
 	  (if (not (equal? (color->list blu) '(0.0 0.0 1.0)))
-	      (snd-display ";x->snd-color blue: ~A" (color->list blu))))
+	      (snd-display "x->snd-color blue: ~A" (color->list blu))))
 	
 	(let* ((tmp (XmStringCreateLocalized "h"))
 	       (pm (XmParseMappingCreate (list XmNincludeStatus XmINSERT
@@ -42564,7 +42564,7 @@ EDITS: 1
 								      (lambda (txt end type tag entry pattern)
 									#f)))))
 			    (lambda args (car args)))))
-	    (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XmNinvokeParseProc wrong arity: ~A" tag))))
+	    (if (not (eq? tag 'wrong-type-arg)) (snd-display "XmNinvokeParseProc wrong arity: ~A" tag))))
 	
 	(let* ((tags (list "one" "two" "three" "four"))
 	       (pixels
@@ -42575,12 +42575,12 @@ EDITS: 1
 		    (if (not (and (= (.red col) 0) 
 				  (= (.green col) 0) 
 				  (= (.blue col) 65535)))
-			(snd-display ";XParseColor: ~A ~A ~A ~A" col (.red col) (.blue col) (.green col)))
+			(snd-display "XParseColor: ~A ~A ~A ~A" col (.red col) (.blue col) (.green col)))
 		    (XLookupColor dpy cmap "red" col (XColor))
 		    (if (not (and (= (.red col) 65535) 
 				  (= (.green col) 0) 
 				  (= (.blue col) 0)))
-			(snd-display ";XLookupColor: ~A ~A ~A ~A" col (.red col) (.blue col) (.green col))))
+			(snd-display "XLookupColor: ~A ~A ~A ~A" col (.red col) (.blue col) (.green col))))
 		  (map
 		   (lambda (color)
 		     (let ((col (XColor)))
@@ -42611,22 +42611,22 @@ EDITS: 1
 	  (let* ((dpy (XtDisplay (cadr (main-widgets))))
 		 (scr (DefaultScreenOfDisplay dpy))
 		 (p1 (XmGetPixmap scr "hiho" (car pixels) (cadr pixels))))
-	    (if (not (Pixmap? p1)) (snd-display ";XmGetPixmap: ~A" p1))
+	    (if (not (Pixmap? p1)) (snd-display "XmGetPixmap: ~A" p1))
 	    (set! p1 (XmGetPixmapByDepth scr "hoho" (car pixels) (cadr pixels) (XDefaultDepth dpy (XScreenNumberOfScreen scr))))
-	    (if (not (Pixmap? p1)) (snd-display ";XmGetPixmapByDepth: ~A" p1))
+	    (if (not (Pixmap? p1)) (snd-display "XmGetPixmapByDepth: ~A" p1))
 	    (XmDestroyPixmap scr p1))
 	  
 	  (let ((tabl (XmStringTableParseStringArray (list "hi" "ho") 2 "hiho" XmCHARSET_TEXT #f 0 #f)))
-	    (if (not (XmString? (car tabl))) (snd-display ";XmStringTableParseStringArray: ~A" tabl))
+	    (if (not (XmString? (car tabl))) (snd-display "XmStringTableParseStringArray: ~A" tabl))
 	    (let ((strs (XmStringTableUnparse tabl 2 "hiho" XmCHARSET_TEXT XmCHARSET_TEXT #f 0 XmOUTPUT_ALL)))
-	      (if (not (equal? strs '("hi" "ho"))) (snd-display ";XmStringTableUnparse: ~A" strs)))
+	      (if (not (equal? strs '("hi" "ho"))) (snd-display "XmStringTableUnparse: ~A" strs)))
 	    (let ((str (XmStringTableToXmString tabl 2 #f)))
-	      (if (not (XmString? str)) (snd-display ";XmStringTableToXmString: ~A" str))
+	      (if (not (XmString? str)) (snd-display "XmStringTableToXmString: ~A" str))
 	      (XmStringToXmStringTable str #f)
 	      (let ((val (XmStringUnparse str "hiho" XmCHARSET_TEXT XmCHARSET_TEXT #f 0 XmOUTPUT_ALL)))
-		(if (not (string=? val "hiho")) (snd-display ";XmStringUnparse: ~A" val))
+		(if (not (string=? val "hiho")) (snd-display "XmStringUnparse: ~A" val))
 		(set! val (XmStringUnparse (XmStringCreateLocalized "hi") #f XmCHARSET_TEXT XmCHARSET_TEXT #f 0 XmOUTPUT_ALL))
-		(if (not (string=? val "hi")) (snd-display ";XmStringUnparse null tag: ~A" val)))
+		(if (not (string=? val "hi")) (snd-display "XmStringUnparse null tag: ~A" val)))
 	      ;; XmCvtXmStringToByteStream test deleted because it seems to be buggy in memory handling
 	      (let* ((ind (open-sound "oboe.snd"))
 		     (grf1 (car (channel-widgets)))
@@ -42634,19 +42634,19 @@ EDITS: 1
 		     (win (XtWindow grf1))
 		     (scrn (XScreenNumberOfScreen (DefaultScreenOfDisplay dpy)))
 		     (gv (XGCValues)))
-		(if (not (Font? (current-font ind))) (snd-display ";current-font: ~A" (current-font ind)))
+		(if (not (Font? (current-font ind))) (snd-display "current-font: ~A" (current-font ind)))
 		(let ((old-font (current-font))
 		      (a-font (load-font "6x12")))
 		  (set! (current-font) a-font)
 		  (if (not (equal? a-font (current-font)))
-		      (snd-display ";set current-font: ~A ~A" a-font (current-font)))
+		      (snd-display "set current-font: ~A ~A" a-font (current-font)))
 		  (set! (current-font ind) old-font)
 		  (if (not (equal? old-font (current-font ind)))
-		      (snd-display ";set current-font with ind: ~A ~A" old-font (current-font ind)))
+		      (snd-display "set current-font with ind: ~A ~A" old-font (current-font ind)))
 		  (set! (current-font) a-font)
 		  (set! (current-font ind 0) old-font)
 		  (if (not (equal? old-font (current-font ind 0)))
-		      (snd-display ";set current-font with ind/0: ~A ~A" old-font (current-font ind 0)))
+		      (snd-display "set current-font with ind/0: ~A ~A" old-font (current-font ind 0)))
 		  (set! (current-font) old-font))
 		
 		(set! (.foreground gv) *data-color*)
@@ -42672,12 +42672,12 @@ EDITS: 1
 		  (XtReleaseGC grf1 sgc))
 		(close-sound ind))
 	      (let ((lc (XmStringLineCount (XmStringCreateLocalized "hiho"))))
-		(if (not (= lc 1)) (snd-display ";XmStringLineCount: ~A" lc)))
-	      (if (not (XmStringHasSubstring str (XmStringCreateLocalized "hi"))) (snd-display ";XmStringHasSubstring?"))))
+		(if (not (= lc 1)) (snd-display "XmStringLineCount: ~A" lc)))
+	      (if (not (XmStringHasSubstring str (XmStringCreateLocalized "hi"))) (snd-display "XmStringHasSubstring?"))))
 	  
 	  
 	  (if (not (equal? (XmRenderTableGetTags rendertable) '("one" "two" "three" "four")))
-	      (snd-display ";tags: ~A~%" (XmRenderTableGetTags rendertable)))
+	      (snd-display "tags: ~A~%" (XmRenderTableGetTags rendertable)))
 	  (let* ((rend (XmRenderTableGetRendition rendertable "one"))
 		 (r (and rend (XmRenditionRetrieve rend
 						   (list XmNrenditionForeground 0
@@ -42688,15 +42688,15 @@ EDITS: 1
 		(begin
 		  (if (not (and (string=? (r 7) "one") 
 				(string=? (r 3) "fixed")))
-		      (snd-display ";rendertable: ~A" r))
+		      (snd-display "rendertable: ~A" r))
 		  (XmRenditionUpdate rend (list XmNstrikethruType XmSINGLE_LINE))
 		  (if (not (= (cadr (XmRenditionRetrieve rend (list XmNstrikethruType 0))) XmSINGLE_LINE))
-		      (snd-display ";XmRenditionUpdate: ~A ~A" (cadr (XtGetValues rend (list XmNstrikethruType 0))) XmSINGLE_LINE)))
-		(snd-display ";r and rend: ~A ~A~%" r rend)))
+		      (snd-display "XmRenditionUpdate: ~A ~A" (cadr (XtGetValues rend (list XmNstrikethruType 0))) XmSINGLE_LINE)))
+		(snd-display "r and rend: ~A ~A~%" r rend)))
 	  (XmRenditionFree (XmRenditionCreate (cadr (main-widgets)) "r1" (list XmNfontName "fixed")))
 	  
 	  (if (not (equal? (XmDropSiteQueryStackingOrder ((main-widgets) 4)) '(#f)))
-	      (snd-display ";XmDropSiteQueryStackingOrder: ~A" (XmDropSiteQueryStackingOrder ((main-widgets) 4))))
+	      (snd-display "XmDropSiteQueryStackingOrder: ~A" (XmDropSiteQueryStackingOrder ((main-widgets) 4))))
 	  (let ((tab (XmStringComponentCreate XmSTRING_COMPONENT_TAB 0 #f))
 		(row #f)
 		(table ())
@@ -42707,8 +42707,8 @@ EDITS: 1
 					      #f
 					      XmCHARSET_TEXT
 					      (car our-tags))))
-		 (if (XmStringIsVoid entry) (snd-display ";~A is void?" entry))
-		 (if (XmStringEmpty entry) (snd-display ";~A is empty?" entry))
+		 (if (XmStringIsVoid entry) (snd-display "~A is void?" entry))
+		 (if (XmStringEmpty entry) (snd-display "~A is empty?" entry))
 		 
 		 (if row
 		     (let ((tmp (XmStringConcat row tab)))
@@ -42731,7 +42731,7 @@ EDITS: 1
 		      (if (not (and (= (cadr type) ((list 0 0 2 0 0 0 4 0 0 0 3 0 0 0 4) i))
 				    (string=? (caddr type)
 					      ((list "o" "o" "go" "o" "o" "o" "well" "o" "o" "o" "and" "o" "o" "o" "then") i))))
-			  (snd-display ";component ~A -> ~A" i (cdr type)))
+			  (snd-display "component ~A -> ~A" i (cdr type)))
 		      (if (and (not (= (car type) XmSTRING_COMPONENT_TAB))
 			       (= (car type) XmSTRING_COMPONENT_END))
 			  (set! happy #f)))))
@@ -42739,15 +42739,15 @@ EDITS: 1
       
       (XtAppAddActions (car (main-widgets))
 		       (list (list "try1" (lambda (w e strs)	
-					    (snd-display ";try1: ~A~%" strs)))
+					    (snd-display "try1: ~A~%" strs)))
 			     (list "try2" (lambda (w e strs)
-					    (snd-display ";try2: ~A~%" strs)))))
+					    (snd-display "try2: ~A~%" strs)))))
       (XtOverrideTranslations (add-main-pane "hiho" xmTextWidgetClass ())
 			      (XtParseTranslationTable 
 			       (format #f "Ctrl <Key>osfLeft:  try1()~%Ctrl <Key>osfRight: try2()~%Ctrl <Key>osfUp:  try1(hiho)~%Ctrl <Key>osfDown: try2(down, up)~%")))
       
       (let ((XmNhiho (add-resource "hiho" 0)))
-	(if (not (string=? XmNhiho "hiho")) (snd-display ";add-resource XmNhiho: ~A" XmNhiho)))
+	(if (not (string=? XmNhiho "hiho")) (snd-display "add-resource XmNhiho: ~A" XmNhiho)))
       
       (open-sound "cardinal.snd")
       (let ((mouse_width 32)
@@ -42783,35 +42783,35 @@ EDITS: 1
 							 (XTextItem "ho" 2 3 '(Font 0))))
 	  (XFreeColormap dpy (XCopyColormapAndFree dpy (XCreateColormap dpy win vis AllocNone)))
 	  (if (XCheckTypedWindowEvent dpy win ExposureMask) 
-	      (snd-display ";XCheckTypedWindowEvent: ~A" (XCheckTypedWindowEvent dpy win ExposureMask)))
+	      (snd-display "XCheckTypedWindowEvent: ~A" (XCheckTypedWindowEvent dpy win ExposureMask)))
 	  (if (XCheckTypedEvent dpy ExposureMask) 
-	      (snd-display ";XCheckTypedEvent: ~A" (XCheckTypedEvent dpy ExposureMask)))
+	      (snd-display "XCheckTypedEvent: ~A" (XCheckTypedEvent dpy ExposureMask)))
 	  (XCheckWindowEvent dpy win ExposureMask)
 	  (XCirculateSubwindows dpy win RaiseLowest)
 	  (XCirculateSubwindowsUp dpy win)
 	  (XCirculateSubwindowsDown dpy win)
 	  (let ((wc (XWindowChanges 10 10 100 100 10 win 0)))
-	    (if (not (= (.stack_mode wc) 0)) (snd-display ";stack_mode wc: ~A" (.stack_mode wc)))
-	    (if (not (equal? (.sibling wc) win)) (snd-display ";sibling wc: ~A" (.sibling wc)))
-	    (if (not (= (.x wc) 10)) (snd-display ";x wc: ~A" (.x wc)))
-	    (if (not (= (.y wc) 10)) (snd-display ";y wc: ~A" (.y wc)))
-	    (if (not (= (.width wc) 100)) (snd-display ";width wc: ~A" (.width wc)))
-	    (if (not (= (.height wc) 100)) (snd-display ";height wc: ~A" (.height wc)))
-	    (if (not (= (.border_width wc) 10)) (snd-display ";border_width wc: ~A" (.border_width wc))))
+	    (if (not (= (.stack_mode wc) 0)) (snd-display "stack_mode wc: ~A" (.stack_mode wc)))
+	    (if (not (equal? (.sibling wc) win)) (snd-display "sibling wc: ~A" (.sibling wc)))
+	    (if (not (= (.x wc) 10)) (snd-display "x wc: ~A" (.x wc)))
+	    (if (not (= (.y wc) 10)) (snd-display "y wc: ~A" (.y wc)))
+	    (if (not (= (.width wc) 100)) (snd-display "width wc: ~A" (.width wc)))
+	    (if (not (= (.height wc) 100)) (snd-display "height wc: ~A" (.height wc)))
+	    (if (not (= (.border_width wc) 10)) (snd-display "border_width wc: ~A" (.border_width wc))))
 	  (if (defined? 'XpmImage)
 	      (let ((xp (XpmImage 10 10 0 1 0)))
-		(if (not (= (.cpp xp) 0)) (snd-display ";cpp xp: ~A" (.cpp xp)))
-		(if (not (= (.ncolors xp) 1)) (snd-display ";ncolors xp: ~A" (.ncolors xp)))))
+		(if (not (= (.cpp xp) 0)) (snd-display "cpp xp: ~A" (.cpp xp)))
+		(if (not (= (.ncolors xp) 1)) (snd-display "ncolors xp: ~A" (.ncolors xp)))))
 	  
 	  (XmObjectAtPoint shell 100 100)
-	  (if (not (string=? (XmGetAtomName dpy XA_STRING) "STRING")) (snd-display ";XmGetAtomName: ~A" (XmGetAtomName dpy XA_STRING)))
-	  (if (not (XmTargetsAreCompatible dpy (list XA_STRING) 1 (list XA_STRING) 1)) (snd-display ";XmTargetsAreCompatible"))
+	  (if (not (string=? (XmGetAtomName dpy XA_STRING) "STRING")) (snd-display "XmGetAtomName: ~A" (XmGetAtomName dpy XA_STRING)))
+	  (if (not (XmTargetsAreCompatible dpy (list XA_STRING) 1 (list XA_STRING) 1)) (snd-display "XmTargetsAreCompatible"))
 	  (XmUpdateDisplay grf1)
 	  (let ((lines (XmWidgetGetBaselines ((main-widgets) 4))))
-	    (if (not lines) (snd-display ";XmWidgetGetBaselines?"))
-	    (if (< (length lines) 4) (snd-display ";no listener text?? ~A" lines)))
+	    (if (not lines) (snd-display "XmWidgetGetBaselines?"))
+	    (if (< (length lines) 4) (snd-display "no listener text?? ~A" lines)))
 	  (let ((r (XmWidgetGetDisplayRect ((sound-widgets) 8))))
-	    (if (not (XRectangle? r)) (snd-display ";XmWidgetGetDisplayRect: ~A" r)))
+	    (if (not (XRectangle? r)) (snd-display "XmWidgetGetDisplayRect: ~A" r)))
 	  
 	  (let ((depth (cadr (XtGetValues grf1 (list XmNdepth 0)))))
 	    (let ((pix (XCreatePixmap dpy win 10 10 depth)))
@@ -42819,18 +42819,18 @@ EDITS: 1
 	      (let ((before (XCreateImage dpy vis depth XYPixmap 0 (XtCalloc (* 121 depth) 1) 10 10 8 0)))
 		(let ((newimage (XGetSubImage dpy (list 'Window (cadr pix)) 0 0 10 10 AllPlanes XYPixmap before 0 0)))
 		  (XSubImage newimage 0 0 3 3)
-		  (if (not (= (.bytes_per_line newimage) 2)) (snd-display ";bytes_per_line: ~A" (.bytes_per_line newimage)))
-		  (if (not (= (.byte_order newimage) 0)) (snd-display ";byte_order: ~A" (.byte_order newimage)))
-		  (if (not (= (.bitmap_pad newimage) 8)) (snd-display ";bitmap_pad: ~A" (.bitmap_pad newimage)))
-		  (if (not (= (.bitmap_bit_order newimage) 0)) (snd-display ";bitmap_bit_order: ~A" (.bitmap_bit_order newimage)))
-		  (if (not (= (.bitmap_unit newimage) 32)) (snd-display ";bitmap_unit: ~A" (.bitmap_unit newimage)))
-		  (if (not (= (.xoffset newimage) 0)) (snd-display ";xoffset: ~A" (.xoffset newimage))))
+		  (if (not (= (.bytes_per_line newimage) 2)) (snd-display "bytes_per_line: ~A" (.bytes_per_line newimage)))
+		  (if (not (= (.byte_order newimage) 0)) (snd-display "byte_order: ~A" (.byte_order newimage)))
+		  (if (not (= (.bitmap_pad newimage) 8)) (snd-display "bitmap_pad: ~A" (.bitmap_pad newimage)))
+		  (if (not (= (.bitmap_bit_order newimage) 0)) (snd-display "bitmap_bit_order: ~A" (.bitmap_bit_order newimage)))
+		  (if (not (= (.bitmap_unit newimage) 32)) (snd-display "bitmap_unit: ~A" (.bitmap_unit newimage)))
+		  (if (not (= (.xoffset newimage) 0)) (snd-display "xoffset: ~A" (.xoffset newimage))))
 		(XPutPixel before 1 1 *basic-color*)
 		(XGetPixel before 1 1)
 		(let ((rotpix (XCreatePixmap dpy win 10 10 depth)))
 		  (XPutImage dpy (list 'Window (cadr rotpix)) (car (snd-gcs)) before 0 0 0 0 10 10))
 		(XAddPixel before 1)
-		(if (> (.bits_per_pixel before) 123) (snd-display ";bits_per_pixel: ~A" (.bits_per_pixel before)))
+		(if (> (.bits_per_pixel before) 123) (snd-display "bits_per_pixel: ~A" (.bits_per_pixel before)))
 		(XmInstallImage before "before_image")
 		(XmUninstallImage before)
 		(XDestroyImage before))
@@ -42839,26 +42839,26 @@ EDITS: 1
 		      (attr (XpmAttributes))
 		      (vals (XtGetValues (cadr (main-widgets)) (list XmNcolormap 0 XmNdepth 0))))
 		  (let ((sym (XpmColorSymbol "basiccolor" #f *basic-color*)))
-		    (if (not (string=? (.name sym) "basiccolor")) (snd-display ";.name colorsymbol: ~A" (.name sym)))
+		    (if (not (string=? (.name sym) "basiccolor")) (snd-display ".name colorsymbol: ~A" (.name sym)))
 		    (set! (.name sym) "hiho")
-		    (if (not (string=? (.name sym) "hiho")) (snd-display ";set .name colorsymbol: ~A" (.name sym)))
+		    (if (not (string=? (.name sym) "hiho")) (snd-display "set .name colorsymbol: ~A" (.name sym)))
 		    (set! (.visual attr) vis)
-		    (if (not (equal? vis (.visual attr))) (snd-display ";visual xpm attr: ~A" (.visual attr)))
-		    (if (not (list? (.colorsymbols attr))) (snd-display ";.colorsymbols attr: ~A" (.colorsymbols attr)))
+		    (if (not (equal? vis (.visual attr))) (snd-display "visual xpm attr: ~A" (.visual attr)))
+		    (if (not (list? (.colorsymbols attr))) (snd-display ".colorsymbols attr: ~A" (.colorsymbols attr)))
 		    (set! (.colorsymbols attr) (list sym))
 		    (set! (.pixel sym) *basic-color*))
 		  (set! (.numsymbols attr) 1)
-		  (if (not (eqv? 1 (.numsymbols attr))) (snd-display ";numsymbols xpm attr: ~A" (.numsymbols attr)))
+		  (if (not (eqv? 1 (.numsymbols attr))) (snd-display "numsymbols xpm attr: ~A" (.numsymbols attr)))
 		  (set! (.depth attr) (vals 3))
-		  (if (not (equal? (vals 3) (.depth attr))) (snd-display ";depth xpm attr: ~A" (.depth attr)))
+		  (if (not (equal? (vals 3) (.depth attr))) (snd-display "depth xpm attr: ~A" (.depth attr)))
 		  (set! (.colormap attr) (vals 1))
-		  (if (not (equal? (vals 1) (.colormap attr))) (snd-display ";colormap xpm attr: ~A" (.colormap attr)))
+		  (if (not (equal? (vals 1) (.colormap attr))) (snd-display "colormap xpm attr: ~A" (.colormap attr)))
 		  (set! (.valuemask attr) (logior XpmColorSymbols XpmDepth XpmColormap XpmVisual))
 		  (if (not (= (.valuemask attr) (logior XpmColorSymbols XpmDepth XpmColormap XpmVisual)))
-		      (snd-display ";valuemask: ~A" (.valuemask attr)))
-		  (if (not (= (.x_hotspot attr) 0)) (snd-display ";x_hotspot: ~A" (.x_hotspot attr)))
-		  (if (not (= (.y_hotspot attr) 0)) (snd-display ";y_hotspot: ~A" (.y_hotspot attr)))
-		  (if (not (= (.npixels attr) 0)) (snd-display ";npixels: ~A" (.npixels attr)))
+		      (snd-display "valuemask: ~A" (.valuemask attr)))
+		  (if (not (= (.x_hotspot attr) 0)) (snd-display "x_hotspot: ~A" (.x_hotspot attr)))
+		  (if (not (= (.y_hotspot attr) 0)) (snd-display "y_hotspot: ~A" (.y_hotspot attr)))
+		  (if (not (= (.npixels attr) 0)) (snd-display "npixels: ~A" (.npixels attr)))
 		  (let ((err (XpmCreatePixmapFromData dpy win 
 						      (list "16 14 6 1"
 							    " 	c None s None"
@@ -42884,7 +42884,7 @@ EDITS: 1
 						      attr)))
 		    (if (not (and (= (car err) XpmSuccess) 
 				  (Pixmap? (cadr err))))
-			(snd-display ";XpmCreatePixmapFromData: ~A" err)))
+			(snd-display "XpmCreatePixmapFromData: ~A" err)))
 		  
 		  (let* ((shell (cadr (main-widgets)))
 			 (dpy (XtDisplay shell))
@@ -42894,9 +42894,9 @@ EDITS: 1
 			  (pixmap (cadr status-and-whatnot))
 			  (pixmap1 (caddr status-and-whatnot)))
 		      (if (not (string=? (XpmGetErrorString XpmSuccess) "XpmSuccess")) 
-			  (snd-display ";XpmGetErrorString: ~A" (XpmGetErrorString XpmSuccess)))
+			  (snd-display "XpmGetErrorString: ~A" (XpmGetErrorString XpmSuccess)))
 		      (if (not (= status XpmSuccess))
-			  (snd-display "; XpmError ReadFileToPixmap: ~A" (XpmGetErrorString status)))
+			  (snd-display " XpmError ReadFileToPixmap: ~A" (XpmGetErrorString status)))
 		      (XtVaSetValues button (list XmNlabelType XmPIXMAP
 						  XmNlabelPixmap pixmap))
 		      (XpmWriteFileFromPixmap dpy "test.xpm" pixmap pixmap1 #f)
@@ -42905,14 +42905,14 @@ EDITS: 1
 			    (attr (XpmAttributes)))
 			(let ((symb (XpmColorSymbol "Foreground" "green" *basic-color*)))
 			  (if (not (XpmImage? status))
-			      (snd-display "; XpmError ReadFileToXpmImage: ~A ~A" symb (XpmGetErrorString status))))
+			      (snd-display " XpmError ReadFileToXpmImage: ~A ~A" symb (XpmGetErrorString status))))
 			(set! (.valuemask attr) XpmColorSymbols)
 			(XpmCreatePixmapFromXpmImage dpy (XRootWindowOfScreen (XtScreen shell)) status attr)
 			(XpmCreateXpmImageFromPixmap dpy pixmap pixmap1 attr)
 			(for-each
 			 (lambda (func val name)
 			   (set! (func attr) val)
-			   (if (not (equal? (func attr) val)) (snd-display ";attr ~A ~A" name (func attr))))
+			   (if (not (equal? (func attr) val)) (snd-display "attr ~A ~A" name (func attr))))
 			 (list .valuemask .depth .width .x_hotspot .y_hotspot .cpp .npixels .ncolors)
 			 '(0 0 0 0 0 0 0 0)
 			 '(valuemask depth width x_hotspot y_hotspot cpp npixels ncolors))))
@@ -42942,40 +42942,40 @@ EDITS: 1
 	    (win (XtWindow (car (channel-widgets)))))
 	(let ((wid (XtWindowToWidget dpy win)))
 	  (if (not (equal? wid (car (channel-widgets))))
-	      (snd-display ";XtWindowToWidget: ~A ~A" (car (channel-widgets)) win)))
+	      (snd-display "XtWindowToWidget: ~A ~A" (car (channel-widgets)) win)))
 					; these are causing: X Error of failed request:  BadAccess (attempt to access private resource denied)
 					;	       (if (not (equal? (XGetTransientForHint dpy win) (list 0 #f)))
-					;		   (snd-display ";XGetTransientForHint: ~A" (XGetTransientForHint dpy win)))
+					;		   (snd-display "XGetTransientForHint: ~A" (XGetTransientForHint dpy win)))
 	(if (not (equal? (XGetErrorText dpy BadColor #f 9) '(0 "BadColor")))
-	    (snd-display ";XGetErrorText: ~A" (XGetErrorText dpy BadColor #f 9)))
+	    (snd-display "XGetErrorText: ~A" (XGetErrorText dpy BadColor #f 9)))
 	(if (not (equal? (XGeometry dpy 0 "500x400" "500x400+10+10" 4 7 14 2 2) '(12 10 10 500 400)))
-	    (snd-display ";XGeometry: ~A" (XGeometry dpy 0 "500x400" "500x400+10+10" 4 7 14 2 2)))
+	    (snd-display "XGeometry: ~A" (XGeometry dpy 0 "500x400" "500x400+10+10" 4 7 14 2 2)))
 	(if (< (XEventsQueued dpy QueuedAlready) 0)
-	    (snd-display ";XEventsQueued: ~A" (XEventsQueued dpy QueuedAlready)))
+	    (snd-display "XEventsQueued: ~A" (XEventsQueued dpy QueuedAlready)))
 
 	(let ((shl (cadr (main-widgets))))
 	  (let ((coords (XtTranslateCoords shl 10 10)))
 	    (if (not (number? (car coords)))
-		(snd-display ";XtTranslateCoords: ~A" coords)))
-	  (if (not (XmIsVendorShell shl)) (snd-display ";XmIsVendorShell?"))
-	  (if (XmIsPrimitive shl) (snd-display ";XmIsPrimitive?"))
-	  (if (XmIsManager shl) (snd-display ";XmIsManager?"))
-	  (if (XmIsIconGadget shl) (snd-display ";XmIsIconGadget?"))
-	  (if (XmIsGadget shl) (snd-display ";XmIsGadget?"))
-	  (if (XmIsIconHeader shl) (snd-display ";XmIsHeader?"))
-	  (if (XmIsDropTransfer shl) (snd-display ";XmIsDropTransfer?"))
-	  (if (XmIsDropSiteManager shl) (snd-display ";XmIsDropSiteManager?"))
-	  (if (XmIsDragContext shl) (snd-display ";XmIsDragContext?"))
-	  (if (XmIsDragIconObjectClass shl) (snd-display ";XmIsDragIconObjectClass?"))
-	  (if (XmIsMessageBox shl) (snd-display ";XmIsMessageBox?"))
-	  (if (XmIsScreen shl) (snd-display ";XmIsScreen?"))
-	  (if (XmIsDisplay shl) (snd-display ";XmIsDisplay?")))
+		(snd-display "XtTranslateCoords: ~A" coords)))
+	  (if (not (XmIsVendorShell shl)) (snd-display "XmIsVendorShell?"))
+	  (if (XmIsPrimitive shl) (snd-display "XmIsPrimitive?"))
+	  (if (XmIsManager shl) (snd-display "XmIsManager?"))
+	  (if (XmIsIconGadget shl) (snd-display "XmIsIconGadget?"))
+	  (if (XmIsGadget shl) (snd-display "XmIsGadget?"))
+	  (if (XmIsIconHeader shl) (snd-display "XmIsHeader?"))
+	  (if (XmIsDropTransfer shl) (snd-display "XmIsDropTransfer?"))
+	  (if (XmIsDropSiteManager shl) (snd-display "XmIsDropSiteManager?"))
+	  (if (XmIsDragContext shl) (snd-display "XmIsDragContext?"))
+	  (if (XmIsDragIconObjectClass shl) (snd-display "XmIsDragIconObjectClass?"))
+	  (if (XmIsMessageBox shl) (snd-display "XmIsMessageBox?"))
+	  (if (XmIsScreen shl) (snd-display "XmIsScreen?"))
+	  (if (XmIsDisplay shl) (snd-display "XmIsDisplay?")))
 	
 	(let ((val 0))
 	  (XSetErrorHandler (lambda (dpy e)
 			      (set! val (.error_code e))))
 	  (XGetAtomName dpy '(Atom 0))
-	  (if (not (= val 5)) (snd-display ";XSetErrorHandler: ~A" val)))
+	  (if (not (= val 5)) (snd-display "XSetErrorHandler: ~A" val)))
 	
 	(let ((sgc (car (snd-gcs))))
 	  (XDrawImageString dpy win sgc 10 10 "hiho" 4)
@@ -43007,11 +43007,11 @@ EDITS: 1
 	(let ((descr (XtAddCallback button XmNactivateCallback call1 #f)))
 	  (XtCallCallbacks button XmNactivateCallback #f)
 	  (if (not (= val1 1))
-	      (snd-display ";XtCallCallbacks val1: ~A" val1))
+	      (snd-display "XtCallCallbacks val1: ~A" val1))
 	  (XtRemoveCallback button XmNactivateCallback descr)
 	  (let ((calls (XtHasCallbacks button XmNactivateCallback)))
 	    (if (not (= calls XtCallbackHasNone))
-		(snd-display ";XtRemoveCallbacks: ~A" calls))))
+		(snd-display "XtRemoveCallbacks: ~A" calls))))
 	(XtUnmanageChild button))
       
       (let ((button (XtCreateManagedWidget "button" xmPushButtonWidgetClass (cadr (main-widgets)) () 0))
@@ -43025,11 +43025,11 @@ EDITS: 1
 	      (descr2 (XtAddCallback button XmNactivateCallback call2 #f)))
 	  (XtCallCallbacks button XmNactivateCallback #f)
 	  (if (not (or (= val1 1) (= val2 1)))
-	      (snd-display ";XtCallCallbacks val12: ~A ~A" val1 val2))
+	      (snd-display "XtCallCallbacks val12: ~A ~A" val1 val2))
 	  (XtRemoveCallbacks button XmNactivateCallback (list descr1 descr2))
 	  (let ((calls (XtHasCallbacks button XmNactivateCallback)))
 	    (if (not (= calls XtCallbackHasNone))
-		(snd-display ";XtRemoveCallbacks: ~A" calls))))
+		(snd-display "XtRemoveCallbacks: ~A" calls))))
 	(XtUnmanageChild button))
       
       (let ((button (XtCreateManagedWidget "button" xmPushButtonWidgetClass (cadr (main-widgets)) () 0))
@@ -43042,11 +43042,11 @@ EDITS: 1
 	(let ((descrs (XtAddCallbacks button XmNactivateCallback (list (list call1 #f) (list call2 #f)))))
 	  (XtCallCallbacks button XmNactivateCallback #f)
 	  (if (not (or (= val1 1) (= val2 1)))
-	      (snd-display ";XtCallCallbacks add val12: ~A ~A" val1 val2))
+	      (snd-display "XtCallCallbacks add val12: ~A ~A" val1 val2))
 	  (XtRemoveCallbacks button XmNactivateCallback descrs)
 	  (let ((calls (XtHasCallbacks button XmNactivateCallback)))
 	    (if (not (= calls XtCallbackHasNone))
-		(snd-display ";XtRemoveCallbacks (add): ~A" calls))))
+		(snd-display "XtRemoveCallbacks (add): ~A" calls))))
 	(XtUnmanageChild button))
       
       (let* ((frm (add-main-pane "hi" xmFormWidgetClass (list XmNpaneMinimum 120)))
@@ -43079,62 +43079,62 @@ EDITS: 1
 					 XmNlistMarginWidth 0 XmNlistSizePolicy 0 XmNlistSpacing 0 XmNmatchBehavior 0
 					 XmNprimaryOwnership 0  XmNscrollBarDisplayPolicy 0 XmNselectColor 0 XmNselectionMode 0
 					 XmNselectionPolicy 0 XmNhorizontalScrollBar 0 XmNselectedItemCount 0 XmNtopItemPosition 0))))
-	  (if (not (= (vals 1) XmNO_AUTO_SELECT)) (snd-display ";XmNautomaticSelection: ~A" (vals 1)))
-	  (if (not (= (vals 3) 100)) (snd-display ";XmNdoubleClickInterval: ~A" (vals 3)))
-	  (if (not (= (vals 5) 3)) (snd-display ";XmNitemCount: ~A" (vals 5)))
-	  (if (or (null? (vals 7)) (not (XmString? (car (vals 7))))) (snd-display ";XmNitems: ~A" (vals 7)))
-	  (if (not (= (vals 9) 4)) (snd-display ";XmNlistMarginHeight: ~A" (vals 9)))
-	  (if (not (= (vals 11) 1)) (snd-display ";XmNlistMarginWidth: ~A" (vals 11)))
-	  (if (not (= (vals 13) XmVARIABLE)) (snd-display ";XmNlistSizePolicy: ~A" (vals 13)))
-	  (if (not (= (vals 15) 2)) (snd-display ";XmNlistSpacing: ~A" (vals 15)))
-	  (if (not (= (vals 17) XmQUICK_NAVIGATE)) (snd-display ";XmNmatchBehavior: ~A" (vals 17)))
-	  (if (not (= (vals 19) XmOWN_NEVER)) (snd-display ";XmNprimaryOwnership : ~A" (vals 19)))
-	  (if (not (= (vals 21) XmAS_NEEDED)) (snd-display ";XmNscrollBarDisplayPolicy: ~A" (vals 21)))
-	  (if (not (Pixel? (vals 23))) (snd-display ";XmNselectColor: ~A" (vals 23)))
-	  (if (not (= (vals 25) XmNORMAL_MODE)) (snd-display ";XmNselectionMode: ~A" (vals 25)))
-	  (if (not (= (vals 27) XmBROWSE_SELECT)) (snd-display ";XmNselectionPolicy: ~A" (vals 27)))
-	  (if (vals 29) (snd-display ";XmNhorizontalScrollBar: ~A" (vals 29)))
-	  (if (not (= (vals 31) 0)) (snd-display ";XmNselectedItemCount : ~A" (vals 31)))
-	  (if (not (= (vals 33) 1)) (snd-display ";XmNtopItemPosition: ~A" (vals 33)))
+	  (if (not (= (vals 1) XmNO_AUTO_SELECT)) (snd-display "XmNautomaticSelection: ~A" (vals 1)))
+	  (if (not (= (vals 3) 100)) (snd-display "XmNdoubleClickInterval: ~A" (vals 3)))
+	  (if (not (= (vals 5) 3)) (snd-display "XmNitemCount: ~A" (vals 5)))
+	  (if (or (null? (vals 7)) (not (XmString? (car (vals 7))))) (snd-display "XmNitems: ~A" (vals 7)))
+	  (if (not (= (vals 9) 4)) (snd-display "XmNlistMarginHeight: ~A" (vals 9)))
+	  (if (not (= (vals 11) 1)) (snd-display "XmNlistMarginWidth: ~A" (vals 11)))
+	  (if (not (= (vals 13) XmVARIABLE)) (snd-display "XmNlistSizePolicy: ~A" (vals 13)))
+	  (if (not (= (vals 15) 2)) (snd-display "XmNlistSpacing: ~A" (vals 15)))
+	  (if (not (= (vals 17) XmQUICK_NAVIGATE)) (snd-display "XmNmatchBehavior: ~A" (vals 17)))
+	  (if (not (= (vals 19) XmOWN_NEVER)) (snd-display "XmNprimaryOwnership : ~A" (vals 19)))
+	  (if (not (= (vals 21) XmAS_NEEDED)) (snd-display "XmNscrollBarDisplayPolicy: ~A" (vals 21)))
+	  (if (not (Pixel? (vals 23))) (snd-display "XmNselectColor: ~A" (vals 23)))
+	  (if (not (= (vals 25) XmNORMAL_MODE)) (snd-display "XmNselectionMode: ~A" (vals 25)))
+	  (if (not (= (vals 27) XmBROWSE_SELECT)) (snd-display "XmNselectionPolicy: ~A" (vals 27)))
+	  (if (vals 29) (snd-display "XmNhorizontalScrollBar: ~A" (vals 29)))
+	  (if (not (= (vals 31) 0)) (snd-display "XmNselectedItemCount : ~A" (vals 31)))
+	  (if (not (= (vals 33) 1)) (snd-display "XmNtopItemPosition: ~A" (vals 33)))
 	  
 	  (let ((tag (catch #t
 		       (lambda ()
 			 (XmListAddItem frm (XmStringCreate "four" XmFONTLIST_DEFAULT_TAG) 0))
 		       (lambda args (car args)))))
 	    (if (not (eq? tag 'wrong-type-arg))
-		(snd-display ";list type check: ~A" tag)))
+		(snd-display "list type check: ~A" tag)))
 	  
 	  (XmListAddItem lst (XmStringCreate "four" XmFONTLIST_DEFAULT_TAG) 0) ; 0 -> last position
 	  (set! vals (XtGetValues lst (list XmNitemCount 0 XmNitems 0)))
-	  (if (not (= (vals 1) 4)) (snd-display ";XmAddItem len: ~A" (vals 1)))
+	  (if (not (= (vals 1) 4)) (snd-display "XmAddItem len: ~A" (vals 1)))
 	  (XmListAddItems lst (list (XmStringCreateLocalized "five") (XmStringCreateLocalized "six")) 2 0)
 	  (let ((tag (catch #t
 		       (lambda () (XmListAddItems lst (list (XmStringCreateLocalized "seven") 123) 2 0))
 		       (lambda args (car args)))))
 	    (if (not (eq? tag 'wrong-type-arg))
-		(snd-display ";xstrings->list add: ~A" tag)))
+		(snd-display "xstrings->list add: ~A" tag)))
 	  (set! vals (XtGetValues lst (list XmNitemCount 0 XmNitems 0)))
-	  (if (not (= (vals 1) 6)) (snd-display ";XmAddItems len: ~A" (vals 1)))
+	  (if (not (= (vals 1) 6)) (snd-display "XmAddItems len: ~A" (vals 1)))
 	  
 	  (XmListDeletePos lst 1)
 	  (set! vals (XtGetValues lst (list XmNitemCount 0 XmNitems 0)))
-	  (if (not (= (vals 1) 5)) (snd-display ";XmListDeletePos len: ~A" (vals 1)))
+	  (if (not (= (vals 1) 5)) (snd-display "XmListDeletePos len: ~A" (vals 1)))
 	  (XmListDeletePositions lst (list 2 4))
 	  (set! vals (XtGetValues lst (list XmNitemCount 0 XmNitems 0)))
-	  (if (not (= (vals 1) 3)) (snd-display ";XmListDeletePositions len: ~A" (vals 1)))
+	  (if (not (= (vals 1) 3)) (snd-display "XmListDeletePositions len: ~A" (vals 1)))
 	  
 	  (XmListAddItemUnselected lst (XmStringCreate "seven" XmFONTLIST_DEFAULT_TAG) 0) ; 0 -> last position
 	  (set! vals (XtGetValues lst (list XmNitemCount 0 XmNitems 0)))
-	  (if (not (= (vals 1) 4)) (snd-display ";XmListAddItemUnselected len: ~A" (vals 1)))
+	  (if (not (= (vals 1) 4)) (snd-display "XmListAddItemUnselected len: ~A" (vals 1)))
 	  (XmListAddItemsUnselected lst (list (XmStringCreateLocalized "eight") (XmStringCreateLocalized "nine")) 2 0)
 	  (set! vals (XtGetValues lst (list XmNitemCount 0 XmNitems 0)))
-	  (if (not (= (vals 1) 6)) (snd-display ";XmListAddItemsUnselected len: ~A" (vals 1)))
+	  (if (not (= (vals 1) 6)) (snd-display "XmListAddItemsUnselected len: ~A" (vals 1)))
 	  
 	  (XmListDeleteAllItems lst)
 	  (set! vals (XtGetValues lst (list XmNitemCount 0 XmNitems 0)))
-	  (if (not (= (vals 1) 0)) (snd-display ";XmListDeleteAllItems len: ~A" (vals 1)))
+	  (if (not (= (vals 1) 0)) (snd-display "XmListDeleteAllItems len: ~A" (vals 1)))
 	  (if (pair? (vals 3))
-	      (snd-display ";deleted all items: ~A" (vals 3)))
+	      (snd-display "deleted all items: ~A" (vals 3)))
 	  
 	  (let ((item1 (XmStringCreate "one" XmFONTLIST_DEFAULT_TAG))
 		(item2 (XmStringCreate "two" XmFONTLIST_DEFAULT_TAG))
@@ -43145,45 +43145,45 @@ EDITS: 1
 			   (list XmNitemCount 5
 				 XmNitems (list item1 item2 item3 item4 item5))) 
 	    (set! vals (XtGetValues lst (list XmNitemCount 0 XmNitems 0)))
-	    (if (not (= (vals 1) 5)) (snd-display ";Xt set items len: ~A" (vals 1)))
+	    (if (not (= (vals 1) 5)) (snd-display "Xt set items len: ~A" (vals 1)))
 	    
 	    (XmListSelectItem lst item3 #t)
-	    (if (not (= browsed 123)) (snd-display ";XmListSelectItem callback: ~A" browsed))
-	    (if (XmListPosSelected lst 1) (snd-display ";XmList selected pos 1?"))
-	    (if (not (XmListPosSelected lst 3)) (snd-display ";XmList didn't select pos 3?"))
+	    (if (not (= browsed 123)) (snd-display "XmListSelectItem callback: ~A" browsed))
+	    (if (XmListPosSelected lst 1) (snd-display "XmList selected pos 1?"))
+	    (if (not (XmListPosSelected lst 3)) (snd-display "XmList didn't select pos 3?"))
 	    (set! vals (XtVaGetValues lst (list XmNselectedItemCount 0 XmNselectedItems 0)))
-	    (if (not (= (vals 1) 1)) (snd-display ";selected count: ~A" (vals 1)))
+	    (if (not (= (vals 1) 1)) (snd-display "selected count: ~A" (vals 1)))
 	    (set! vals (XmListGetSelectedPos lst))
 	    (if (not (and (pair? vals) (null? (cdr vals))))
-		(snd-display ";XmListGetSelectedPos: ~A" vals))
-	    (if (not (= (car vals) 3)) (snd-display ";XmListGetSelectedPos: ~A" vals))
+		(snd-display "XmListGetSelectedPos: ~A" vals))
+	    (if (not (= (car vals) 3)) (snd-display "XmListGetSelectedPos: ~A" vals))
 	    (set! browsed 0)
 	    (XmListSelectPos lst 1 #f)
-	    (if (not (= browsed 0)) (snd-display ";XmListSelectPos callback: ~A" browsed))
-	    (if (not (XmListPosSelected lst 1)) (snd-display ";XmList select pos?"))
-	    (if (not (= (XmListItemPos lst item3) 3)) (snd-display ";XmListItemPos: ~A" (XmListItemPos lst item3)))
-	    (if (not (= (car (XmListGetMatchPos lst item3)) 3)) (snd-display ";XmListGetMatchPos: ~A" (XmListGetMatchPos lst item3)))
-	    (if (not (XmListItemExists lst item3)) (snd-display ";XmListItemExists?"))
+	    (if (not (= browsed 0)) (snd-display "XmListSelectPos callback: ~A" browsed))
+	    (if (not (XmListPosSelected lst 1)) (snd-display "XmList select pos?"))
+	    (if (not (= (XmListItemPos lst item3) 3)) (snd-display "XmListItemPos: ~A" (XmListItemPos lst item3)))
+	    (if (not (= (car (XmListGetMatchPos lst item3)) 3)) (snd-display "XmListGetMatchPos: ~A" (XmListGetMatchPos lst item3)))
+	    (if (not (XmListItemExists lst item3)) (snd-display "XmListItemExists?"))
 	    
-	    (if (not (= (XmListYToPos lst 40) 2)) (snd-display ";XmListYToPos: ~A" (XmListYToPos lst 40)))
+	    (if (not (= (XmListYToPos lst 40) 2)) (snd-display "XmListYToPos: ~A" (XmListYToPos lst 40)))
 	    (let ((box (XmListPosToBounds lst 2)))
 	      (if (not (memv (cadr box) '(3 2)))
-		  (snd-display ";XmListPosToBounds: ~A" box)))
+		  (snd-display "XmListPosToBounds: ~A" box)))
 	    (XmListDeselectPos lst 1)
-	    (if (XmListPosSelected lst 1) (snd-display ";XmList deselected pos?"))
+	    (if (XmListPosSelected lst 1) (snd-display "XmList deselected pos?"))
 	    (XmListSelectItem lst item3 #t)
 	    (XmListDeselectAllItems lst)
-	    (if (XmListPosSelected lst 3) (snd-display ";XmList deselect all pos?"))
+	    (if (XmListPosSelected lst 3) (snd-display "XmList deselect all pos?"))
 	    (XmListSelectItem lst item3 #f)
 	    (XmListDeselectItem lst item3)
-	    (if (XmListPosSelected lst 3) (snd-display ";XmList deselect item?"))
+	    (if (XmListPosSelected lst 3) (snd-display "XmList deselect item?"))
 	    
 	    (XmListDeleteItem lst item2)
 	    (set! vals (XtGetValues lst (list XmNitemCount 0 XmNitems 0)))
-	    (if (not (= (vals 1) 4)) (snd-display ";XmDeleteItem len: ~A" (vals 1)))
+	    (if (not (= (vals 1) 4)) (snd-display "XmDeleteItem len: ~A" (vals 1)))
 	    (XmListDeleteItems lst (list item1 item4))
 	    (set! vals (XtGetValues lst (list XmNitemCount 0 XmNitems 0)))
-	    (if (not (= (vals 1) 2)) (snd-display ";XmDeleteItems len: ~A" (vals 1)))
+	    (if (not (= (vals 1) 2)) (snd-display "XmDeleteItems len: ~A" (vals 1)))
 	    (XmListDeleteAllItems lst)
 	    (XtVaSetValues lst 
 			   (list XmNitemCount 5
@@ -43203,7 +43203,7 @@ EDITS: 1
 					       XmNdestinationCallback 
 					       (list (lambda (w c i) 
 						       (set! (calls c) "dest")
-						       (if (< (.location_data i) 0) (snd-display ";location_data: ~A" (.location_data i))))
+						       (if (< (.location_data i) 0) (snd-display "location_data: ~A" (.location_data i))))
 						     1)
 					       XmNactivateCallback (list (lambda (w c i) (set! (calls c) "act")) 2)
 					       XmNfocusCallback (list (lambda (w c i) (set! (calls c) "focus")) 3)
@@ -43213,11 +43213,11 @@ EDITS: 1
 					       XmNmodifyVerifyCallback 
 					       (list (lambda (w c i) 
 						       (set! (calls c) "modify")
-						       (if (< (.currInsert i) 0) (snd-display ";currInsert: ~A" (.currInsert i)))
-						       (if (< (.newInsert i) 0) (snd-display ";newInsert: ~A" (.newInsert i)))
-						       (if (string? (.doit i)) (snd-display ";doit: ~A" (.doit i)))
-						       (if (< (.startPos i) 0) (snd-display ";startPos: ~A" (.startPos i)))
-						       (if (< (.endPos i) 0) (snd-display ";endPos: ~A" (.endPos i))))
+						       (if (< (.currInsert i) 0) (snd-display "currInsert: ~A" (.currInsert i)))
+						       (if (< (.newInsert i) 0) (snd-display "newInsert: ~A" (.newInsert i)))
+						       (if (string? (.doit i)) (snd-display "doit: ~A" (.doit i)))
+						       (if (< (.startPos i) 0) (snd-display "startPos: ~A" (.startPos i)))
+						       (if (< (.endPos i) 0) (snd-display "endPos: ~A" (.endPos i))))
 						     7)
 					       XmNmotionVerifyCallback (list (lambda (w c i) (set! (calls c) "motion")) 8)
 					       XmNvalueChangedCallback (list (lambda (w c i) (set! (calls c) "value")) 9)))))
@@ -43253,14 +43253,14 @@ EDITS: 1
 						      XmNbottomAttachment    XmATTACH_FORM))))
 	  
 	  (let ((vals (XtVaGetValues txt (list XmNrenderTable 0 XmNselectionArray 0))))
-	    (if (not (XmRenderTable? (vals 1))) (snd-display ";XmNrenderTable: ~A" (vals 1)))
-	    (if (not (pair? (vals 3))) (snd-display ";XmNselectionArray: ~A" (vals 3))))
-	  (if (not (XmTextGetEditable txt)) (snd-display ";XmTextGetEditable?"))
-	  (if (not (XmTextFieldGetEditable txtf)) (snd-display ";XmTextFieldGetEditable?"))
+	    (if (not (XmRenderTable? (vals 1))) (snd-display "XmNrenderTable: ~A" (vals 1)))
+	    (if (not (pair? (vals 3))) (snd-display "XmNselectionArray: ~A" (vals 3))))
+	  (if (not (XmTextGetEditable txt)) (snd-display "XmTextGetEditable?"))
+	  (if (not (XmTextFieldGetEditable txtf)) (snd-display "XmTextFieldGetEditable?"))
 	  (XmTextSetEditable txt #f)
 	  (XmTextFieldSetEditable txtf #f)
-	  (if (XmTextGetEditable txt) (snd-display ";XmTextSetEditable?"))
-	  (if (XmTextFieldGetEditable txtf) (snd-display ";XmTextFieldSetEditable?"))
+	  (if (XmTextGetEditable txt) (snd-display "XmTextSetEditable?"))
+	  (if (XmTextFieldGetEditable txtf) (snd-display "XmTextFieldSetEditable?"))
 	  (XmTextSetEditable txt #t)
 	  (XmTextFieldSetEditable txtf #t)
 	  (XmTextSetString txt "0123456789")
@@ -43270,162 +43270,162 @@ EDITS: 1
 		(valf (XmTextFieldGetString txtf))
 		(val1 (cadr (XtVaGetValues txt (list XmNvalue 0))))
 		(val1f (cadr (XtVaGetValues txtf (list XmNvalue 0)))))
-	    (if (not (string=? val "0123456789")) (snd-display ";XmTextSetString: ~A" val))
-	    (if (not (string=? valf "0123456789")) (snd-display ";XmTextFieldSetString: ~A" valf))
-	    (if (not (string=? val1 "0123456789")) (snd-display ";text value: ~A" val1))
-	    (if (not (string=? val1f "0123456789")) (snd-display ";text field value: ~A" val)))
+	    (if (not (string=? val "0123456789")) (snd-display "XmTextSetString: ~A" val))
+	    (if (not (string=? valf "0123456789")) (snd-display "XmTextFieldSetString: ~A" valf))
+	    (if (not (string=? val1 "0123456789")) (snd-display "text value: ~A" val1))
+	    (if (not (string=? val1f "0123456789")) (snd-display "text field value: ~A" val)))
 	  (let ((untext (XtCreateWidget "untext" xmTextWidgetClass frm ())))
 	    (let ((source (XmTextGetSource txt)))
 	      (XmTextSetSource untext source 0 3)
 	      (if (not (XmTextSource? source))
-		  (snd-display ";XmTextSource? ~A" source))
+		  (snd-display "XmTextSource? ~A" source))
 	      (if (not (equal? (XmTextGetSource untext) source))
-		  (snd-display ";XmTextSetSource: ~A ~A" source (XmTextGetSource untext))))
+		  (snd-display "XmTextSetSource: ~A ~A" source (XmTextGetSource untext))))
 	    (if (XtIsSubclass untext xmFormWidgetClass)
-		(snd-display ";XtIsSubclass thinks untext is a form?"))
+		(snd-display "XtIsSubclass thinks untext is a form?"))
 	    (if (not (XtIsSubclass untext coreWidgetClass))
-		(snd-display ";XtIsSubclass thinks untext is not a core widget"))
+		(snd-display "XtIsSubclass thinks untext is not a core widget"))
 	    (XmTextCopyLink untext (list 'Time CurrentTime))
 	    (XmTextPasteLink untext))
 	  (let ((val (XmTextGetSubstring txt 2 3))
 		(valf (XmTextFieldGetSubstring txtf 2 3)))
-	    (if (not (equal? val "234")) (snd-display ";XmTextGetSubstring: ~A" val))
-	    (if (not (equal? valf "234")) (snd-display ";XmTextFieldGetSubstring: ~A" valf)))
+	    (if (not (equal? val "234")) (snd-display "XmTextGetSubstring: ~A" val))
+	    (if (not (equal? valf "234")) (snd-display "XmTextFieldGetSubstring: ~A" valf)))
 	  (XmTextSetSelection txt 2 5 current-time)
 	  (let ((val (XmTextGetSelection txt)))
-	    (if (not (equal? val "234")) (snd-display ";XmTextGetSelection: ~A" val)))
+	    (if (not (equal? val "234")) (snd-display "XmTextGetSelection: ~A" val)))
 	  (XmTextClearSelection txt current-time)
 	  (let ((val (XmTextGetSelection txt)))
-	    (if val (snd-display ";XmTextClearSelection: ~A" val)))
+	    (if val (snd-display "XmTextClearSelection: ~A" val)))
 	  (XmTextFieldSetSelection txtf 2 5 current-time)
 	  (let ((tag (catch #t
 		       (lambda ()
 			 (XmTextFieldSetSelection txt 2 3 current-time))
 		       (lambda args (car args)))))
 	    (if (not (eq? tag 'wrong-type-arg))
-		(snd-display ";text field type check: ~A" tag)))
+		(snd-display "text field type check: ~A" tag)))
 	  (let ((tag (catch #t
 		       (lambda ()
 			 (XmTextSetSelection frm 2 3 current-time))
 		       (lambda args (car args)))))
 	    (if (not (eq? tag 'wrong-type-arg))
-		(snd-display ";text type check: ~A" tag)))
+		(snd-display "text type check: ~A" tag)))
 	  (let ((dpy (XtDisplay (cadr (main-widgets))))
 		(win (XtWindow (cadr (main-widgets)))))
 	    (let ((tag (catch #t (lambda () (XtDisplayInitialize (car (main-widgets)) dpy "hi" "ho" 1 1)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XtDisplayInitialize type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XtDisplayInitialize type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XmTransferSetParameters 123 123 123 123 "hiho")) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XmTransferSetParameters type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XmTransferSetParameters type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XmDropSiteConfigureStackingOrder txtf txtf "hiho")) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XmDropSiteConfigureStackingOrder type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XmDropSiteConfigureStackingOrder type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XmScrollVisible txtf txtf 5 "hiho")) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XmScrollVisible type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XmScrollVisible type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XmDragStart txtf (XEvent KeyPress) (list 0 1) "hiho")) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XmDragStart type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XmDragStart type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XmClipboardStartRetrieve dpy win 1)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XmClipboardStartRetrieve type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XmClipboardStartRetrieve type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XmClipboardCopyByName dpy win 1 "hi" "hi" 1)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XmClipboardCopyByName type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XmClipboardCopyByName type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XmClipboardBeginCopy dpy win "hi" txtf #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XmClipboardBeginCopy type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XmClipboardBeginCopy type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XmRemoveProtocolCallback txtf XA_STRING XA_STRING #f 1)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XmRemoveProtocolCallback type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XmRemoveProtocolCallback type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XSetRGBColormaps dpy win (list 'XStandardColormap 0) 1 #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XSetRGBColormap type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XSetRGBColormap type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XSetWMHints dpy win 1)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XSetWMHints type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XSetWMHints type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XWindowEvent dpy win #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XWindowEvent type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XWindowEvent type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XStoreNamedColor dpy (list 'Colormap 0) "hi" 0 #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XStoreNamedColor type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XStoreNamedColor type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XStoreColors dpy (list 'Colormap 0) (list 1 2) #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XStoreColors type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XStoreColors type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XStoreColor dpy (list 'Colormap 0) (list 1 2))) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XStoreColor type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XStoreColor type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XtOwnSelectionIncremental txtf '(Atom 0) '(Time 0) #f #f #f #f #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XtOwnSelectionIncremental type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XtOwnSelectionIncremental type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XtOwnSelection txtf '(Atom 0) '(Time 0) #f #f #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XtOwnSelection type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XtOwnSelection type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XtGetSelectionValue txtf '(Atom 0) '(Atom 0) #f #f #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XtGetSelectionValue type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XtGetSelectionValue type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XtGetSelectionValues txtf '(Atom 0) (list (list 'Atom 0)) #f #f #f #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XtGetSelectionValues type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XtGetSelectionValues type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XtDisownSelection txtf '(Atom 0) #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XtDisownSelection type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XtDisownSelection type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XtGetSelectionRequest txtf '(Atom 0) #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XtGetSelectionRequest type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XtGetSelectionRequest type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XtGetSelectionValueIncremental txtf '(Atom 0) (list (list 'Atom 0)) 1 #f #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XtGetSelectionValueIncremental type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XtGetSelectionValueIncremental type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XtGetSelectionValuesIncremental txtf '(Atom 0) '(Atom 0) 1 #f #f #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XtGetSelectionValuesIncremental type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XtGetSelectionValuesIncremental type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XtSendSelectionRequest txtf '(Atom 0) #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XtSendSelectionRequest type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XtSendSelectionRequest type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XReconfigureWMWindow dpy win 1 1 #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XReconfigureWMWindow type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XReconfigureWMWindow type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XSetWMProtocols dpy win 1 1)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XSetWMProtocols type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XSetWMProtocols type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XIconifyWindow dpy win #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XIconifyWindow type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XIconifyWindow type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XWithdrawWindow dpy win #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XWithdrawWindow type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XWithdrawWindow type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XSetWMColormapWindows dpy win #f 1)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XSetWMColormapWindows type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XSetWMColormapWindows type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XSetTransientForHint dpy win #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XSetTransientForHint type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XSetTransientForHint type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XAllowEvents dpy 1 #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XAllowEvents type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XAllowEvents type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XChangeActivePointerGrab dpy 1 '(Cursor 0) #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XChangeActivePointerGrab type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XChangeActivePointerGrab type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XChangeGC dpy '(GC 0) 1 #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XChangeGC type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XChangeGC type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XChangeKeyboardMapping dpy 1 1 (list 1 1) #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XChangeKeyboardMapping type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XChangeKeyboardMapping type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XConfigureWindow dpy win 1 #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XConfigureWindow type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XConfigureWindow type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XConvertSelection dpy '(Atom 0) '(Atom 0) '(Atom 0) win #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XConvertSelection type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XConvertSelection type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XReparentWindow dpy win win 1 #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XReparentWindow type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XReparentWindow type check: ~A" tag)))
 	    
 	    (let ((tag (catch #t (lambda () (XFreeColors dpy '(Colormap 0) (list 0) 1 #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XFreeColors type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XFreeColors type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XReadBitmapFile dpy win #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XReadBitmapFile type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XReadBitmapFile type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XRebindKeysym dpy '(KeySym 0) (list 0) 1 "hi" #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XRebindKeysym type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XRebindKeysym type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XRestackWindows dpy (list 0) #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XRestackWindows type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XRestackWindows type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XRotateWindowProperties dpy win (list 0) 1 #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XRotateWindowProperties type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XRotateWindowProperties type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XSelectInput dpy win #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XSelectInput type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XSelectInput type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XSetFontPath dpy (list 0) #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XSetFontPath type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XSetFontPath type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XSetInputFocus dpy win 1 #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XSetInputFocus type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XSetInputFocus type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XSetSelectionOwner dpy '(Atom 0) win #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XSetSelectionOwner type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XSetSelectionOwner type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XSetWindowColormap dpy win #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XSetWindowColormap type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XSetWindowColormap type check: ~A" tag)))
 	    (let ((tag (catch #t (lambda () (XmClipboardCancelCopy dpy win #f)) (lambda args (car args)))))
-	      (if (not (eq? tag 'wrong-type-arg)) (snd-display ";XmClipboardCancelCopy type check: ~A" tag)))
+	      (if (not (eq? tag 'wrong-type-arg)) (snd-display "XmClipboardCancelCopy type check: ~A" tag)))
 	    
 	    )
 	  
 	  (let ((valf (XmTextFieldGetSelection txtf)))
-	    (if (not (string=? valf "234")) (snd-display ";XmTextFieldGetSelection: ~A" valf)))
+	    (if (not (string=? valf "234")) (snd-display "XmTextFieldGetSelection: ~A" valf)))
 	  (XmTextFieldClearSelection txtf current-time)
 	  (let ((valf (XmTextFieldGetSelection txtf)))
-	    (if valf (snd-display ";XmTextFieldClearSelection: ~A" valf)))
+	    (if valf (snd-display "XmTextFieldClearSelection: ~A" valf)))
 	  (let ((val (XmTextGetInsertionPosition txt))
 		(valf (XmTextFieldGetInsertionPosition txtf)))
-	    (if (not (= val 5)) (snd-display ";XmTextGetInsertionPosition: ~A" val))
-	    (if (not (= valf 5)) (snd-display ";XmTextFieldGetInsertionPosition: ~A" val)))
+	    (if (not (= val 5)) (snd-display "XmTextGetInsertionPosition: ~A" val))
+	    (if (not (= valf 5)) (snd-display "XmTextFieldGetInsertionPosition: ~A" val)))
 	  
 	  (XmTextScroll txt 1)
 	  (XmTextScroll txt -1)
 	  (let ((pos (XmTextGetTopCharacter txt)))
-	    (if (not (= pos 0)) (snd-display ";XmTextGetTopCharacter after scroll: ~A" pos)))
+	    (if (not (= pos 0)) (snd-display "XmTextGetTopCharacter after scroll: ~A" pos)))
 	  (XmTextShowPosition txt 0)
 	  (XmTextFieldShowPosition txtf 0)
 	  (XmTextSetTopCharacter txt 0)
@@ -43436,14 +43436,14 @@ EDITS: 1
 	  (XmTextFieldSetHighlight txtf 3 6 XmHIGHLIGHT_SELECTED)
 	  (XmTextFieldGetBaseline txtf)
 	  (XmTextSetAddMode txt #t)
-	  (if (not (XmTextGetAddMode txt)) (snd-display ";XmTextSetAddMode?"))
+	  (if (not (XmTextGetAddMode txt)) (snd-display "XmTextSetAddMode?"))
 	  (XmTextFieldSetAddMode txtf #t)
-	  (if (not (XmTextFieldGetAddMode txtf)) (snd-display ";XmTextFieldSetAddMode?"))
+	  (if (not (XmTextFieldGetAddMode txtf)) (snd-display "XmTextFieldSetAddMode?"))
 	  
-	  (if (not (string=? (vector-ref calls 5) "gain")) (snd-display ";gain callback: ~A" (vector-ref calls 5)))
-	  (if (not (string=? (vector-ref calls 7) "modify")) (snd-display ";modify callback: ~A" (vector-ref calls 7)))
-	  (if (not (string=? (vector-ref calls 8) "motion")) (snd-display ";motion callback: ~A" (vector-ref calls 8)))
-	  (if (not (string=? (vector-ref calls 9) "value")) (snd-display ";value callback: ~A" (vector-ref calls 9)))
+	  (if (not (string=? (vector-ref calls 5) "gain")) (snd-display "gain callback: ~A" (vector-ref calls 5)))
+	  (if (not (string=? (vector-ref calls 7) "modify")) (snd-display "modify callback: ~A" (vector-ref calls 7)))
+	  (if (not (string=? (vector-ref calls 8) "motion")) (snd-display "motion callback: ~A" (vector-ref calls 8)))
+	  (if (not (string=? (vector-ref calls 9) "value")) (snd-display "value callback: ~A" (vector-ref calls 9)))
 	  
 	  (let ((txtf1 (XtVaCreateManagedWidget "textfield" xmTextFieldWidgetClass frm
 						(list XmNeditable #t
@@ -43465,10 +43465,10 @@ EDITS: 1
 	    (focus-widget txtf1)
 	    (XmTextFieldPaste txtf1)
 	    (XmTextFieldPasteLink txtf1)
-	    (if (not (Widget? (XmGetTabGroup txtf1))) (snd-display ";XmGetTabGroup: ~A " (XmGetTabGroup txtf1)))
+	    (if (not (Widget? (XmGetTabGroup txtf1))) (snd-display "XmGetTabGroup: ~A " (XmGetTabGroup txtf1)))
 	    (let ((fw (XmGetFocusWidget (cadr (main-widgets)))))
 	      (if (not (equal? fw txtf1))
-		  (snd-display ";XmGetFocusWidget: ~A" fw)))
+		  (snd-display "XmGetFocusWidget: ~A" fw)))
 	    (let ((callback (lambda (w context ev flag)
 			      (XtSetValues w (list XmNbackground (white-pixel))))))
 	      (XtAddEventHandler txtf1 EnterWindowMask #f callback #f)
@@ -43491,7 +43491,7 @@ EDITS: 1
 	     (win (XtWindow shell))
 	     (err (XmClipboardRegisterFormat dpy "SND_DATA" 8)))
 	(if (not (= err ClipboardSuccess)) 
-	    (snd-display ";XmClipboardRegisterFormat: ~A" err)
+	    (snd-display "XmClipboardRegisterFormat: ~A" err)
 	    (let ((vals (XmClipboardStartCopy dpy win
 					      (XmStringCreateLocalized "SND_DATA") 
 					      (list 'Time CurrentTime) 
@@ -43499,22 +43499,22 @@ EDITS: 1
 					      (lambda (w id pid reason)
 						(XmClipboardCopyByName dpy win id "copy this" 10 123)))))
 	      (if (not (= (car vals) ClipboardSuccess))
-		  (snd-display ";XmClipboardStartCopy: ~A" vals)
+		  (snd-display "XmClipboardStartCopy: ~A" vals)
 		  (let ((data-id (cadr vals)))
 		    (set! err (XmClipboardCopy dpy win data-id "SND_DATA" "copy this" 10 0))
-		    (if (not (= (car err) ClipboardSuccess)) (snd-display ";XmClipboardCopy: ~A" err))
+		    (if (not (= (car err) ClipboardSuccess)) (snd-display "XmClipboardCopy: ~A" err))
 		    (let ((item-id (cadr err)))
 		      (set! err (XmClipboardEndCopy dpy win data-id))
-		      (if (not (= err ClipboardSuccess)) (snd-display ";copy ~A" err))
+		      (if (not (= err ClipboardSuccess)) (snd-display "copy ~A" err))
 		      (if (not (= (cadr (XmClipboardInquireLength dpy win "SND_DATA")) 10))
-			  (snd-display ";clip len: ~A" (XmClipboardInquireLength dpy win "SND_DATA")))
+			  (snd-display "clip len: ~A" (XmClipboardInquireLength dpy win "SND_DATA")))
 		      (let ((pend (XmClipboardInquirePendingItems dpy win "SND_DATA")))
-			(if (not (= (car pend) ClipboardSuccess)) (snd-display ";XmClipboardInquirePendingItems: ~A" pend)))
+			(if (not (= (car pend) ClipboardSuccess)) (snd-display "XmClipboardInquirePendingItems: ~A" pend)))
 		      (let ((formats1 (XmClipboardInquireCount dpy win)))
-			(if (= (cadr formats1) 0) (snd-display ";XmClipboardInquireCount: ~A" formats1))
+			(if (= (cadr formats1) 0) (snd-display "XmClipboardInquireCount: ~A" formats1))
 			(XmClipboardInquireFormat dpy win 1 10)
 			(let ((clip (XmClipboardRetrieve dpy win "SND_DATA" 10)))
-			  (if (not (string=? (cadr clip) "copy this")) (snd-display ";XmClipboardRetrieve: ~A" clip))
+			  (if (not (string=? (cadr clip) "copy this")) (snd-display "XmClipboardRetrieve: ~A" clip))
 			  (XmClipboardWithdrawFormat dpy win item-id))))))))
 	(let ((val (XmClipboardLock dpy win)))
 	  (if (not (= val ClipboardLocked))
@@ -43570,11 +43570,11 @@ EDITS: 1
 	(XtCreateManagedWidget "one" xmPushButtonWidgetClass notes ())
 	(XtCreateManagedWidget "two" xmPushButtonWidgetClass notes ())
 	(let ((info (cadr (XmNotebookGetPageInfo notes 1))))
-	  (if (not (= (.page_number info) 1)) (snd-display ";page_number: ~A" (.page_number info)))
-	  (if (.page_widget info) (snd-display ";page_widget: ~A" (.page_widget info)))
-	  (if (.status_area_widget info) (snd-display ";status_area_widget: ~A" (.status_area_widget info)))
-	  (if (not (Widget? (.major_tab_widget info))) (snd-display ";major_tab_widget: ~A" (.major_tab_widget info)))
-	  (if (.minor_tab_widget info) (snd-display ";minor_tab_widget: ~A" (.minor_tab_widget info))))
+	  (if (not (= (.page_number info) 1)) (snd-display "page_number: ~A" (.page_number info)))
+	  (if (.page_widget info) (snd-display "page_widget: ~A" (.page_widget info)))
+	  (if (.status_area_widget info) (snd-display "status_area_widget: ~A" (.status_area_widget info)))
+	  (if (not (Widget? (.major_tab_widget info))) (snd-display "major_tab_widget: ~A" (.major_tab_widget info)))
+	  (if (.minor_tab_widget info) (snd-display "minor_tab_widget: ~A" (.minor_tab_widget info))))
 	
 	(XmSimpleSpinBoxAddItem spn (XmStringCreateLocalized "hiho") 0)
 	(XmSimpleSpinBoxAddItem spn (XmStringCreateLocalized "away") 0)
@@ -43582,24 +43582,24 @@ EDITS: 1
 	(XmSimpleSpinBoxSetItem spn (caadr (XtVaGetValues spn (list XmNvalues 0))))
 	(XmSimpleSpinBoxAddItem spn (XmStringCreateLocalized "another") 0)
 	(let ((vals (XtGetValues spn (list XmNeditable 0 XmNtextField 0))))
-	  (if (not (vals 1)) (snd-display ";XmNeditable spin box"))
-	  (if (not (Widget? (vals 3))) (snd-display ";XmNtextField: ~A" (vals 3))))
+	  (if (not (vals 1)) (snd-display "XmNeditable spin box"))
+	  (if (not (Widget? (vals 3))) (snd-display "XmNtextField: ~A" (vals 3))))
 	
 	(XtAddCallback tgl XmNvalueChangedCallback (lambda (w c i) (set! toggled 123)) #f)
 	(XmToggleButtonSetState tgl #f #f)
 	(XmToggleButtonGadgetSetState tgg #f #f)
-	(if (not (= toggled 0)) (snd-display ";toggle calledback: ~A?" toggled))
-	(if (XmToggleButtonGetState tgl) (snd-display ";XmToggleButtonSetState #f"))
-	(if (XmToggleButtonGadgetGetState tgg) (snd-display ";XmToggleButtonGadgetSetState #f"))
+	(if (not (= toggled 0)) (snd-display "toggle calledback: ~A?" toggled))
+	(if (XmToggleButtonGetState tgl) (snd-display "XmToggleButtonSetState #f"))
+	(if (XmToggleButtonGadgetGetState tgg) (snd-display "XmToggleButtonGadgetSetState #f"))
 	(XtVaSetValues tgl (list XmNtoggleMode XmTOGGLE_INDETERMINATE))
 	(XmToggleButtonSetValue tgl XmINDETERMINATE #t)
 	(XmToggleButtonGadgetSetValue tgg XmINDETERMINATE #t)
-	(if (not (= toggled 123)) (snd-display ";toggle not calledback: ~A?" toggled))
+	(if (not (= toggled 123)) (snd-display "toggle not calledback: ~A?" toggled))
 	
 	(XmCommandAppendValue cmd (XmStringCreateLocalized "hiho"))
 	(XmCommandError cmd (XmStringCreateLocalized "hiho"))
 	(if (not (Widget? (XmCommandGetChild cmd XmDIALOG_COMMAND_TEXT)))
-	    (snd-display ";XmCommandGetChild: ~A" (XmCommandGetChild cmd XmDIALOG_COMMAND_TEXT)))
+	    (snd-display "XmCommandGetChild: ~A" (XmCommandGetChild cmd XmDIALOG_COMMAND_TEXT)))
 	(XmCommandSetValue cmd (XmStringCreateLocalized "hiho"))
 	(XmComboBoxAddItem cmb (XmStringCreateLocalized "one") 0 #f)
 	(let ((two1 (XmStringCreateLocalized "two"))
@@ -43611,7 +43611,7 @@ EDITS: 1
 	  (XmComboBoxSetItem cmb three1) ; hunh??
 	  (XmComboBoxUpdate cmb)
 	  (let ((vals (cadr (XtGetValues cmb (list XmNitems 0)))))
-	    (if (not (equal? vals (list two1 three1))) (snd-display ";XmComboBox: ~A" vals))))
+	    (if (not (equal? vals (list two1 three1))) (snd-display "XmComboBox: ~A" vals))))
 	
 	(XmContainerCut box current-time)
 	(XmContainerCopy box current-time)
@@ -43625,12 +43625,12 @@ EDITS: 1
 		  (null? (cdddr vals))
 		  (not (real? (cadddr vals)))
 		  (fneq (cadddr vals) 0.0))
-	      (snd-display ";xm-float resource vals: ~A" vals)))
+	      (snd-display "xm-float resource vals: ~A" vals)))
 	
 	(XtAddCallback scl XmNvalueChangedCallback (lambda (w c i) #f))
 	(XmScaleSetValue scl 25)
-	(if (not (= (XmScaleGetValue scl) 25)) (snd-display ";XmScaleSetValue: ~A" (XmScaleGetValue scl)))
-	(if (XmGetTearOffControl (car (menu-widgets))) (snd-display ";XmGetTearOffControl: ~A" (XmGetTearOffControl (car (menu-widgets)))))
+	(if (not (= (XmScaleGetValue scl) 25)) (snd-display "XmScaleSetValue: ~A" (XmScaleGetValue scl)))
+	(if (XmGetTearOffControl (car (menu-widgets))) (snd-display "XmGetTearOffControl: ~A" (XmGetTearOffControl (car (menu-widgets)))))
 	(let ((children (cadr (XtGetValues scl (list XmNchildren 0)))))
 	  (for-each 
 	   (lambda (w)
@@ -43649,45 +43649,45 @@ EDITS: 1
 					;(old-h (cadr (XtVaGetValues scr (list XmNhorizontalFontUnit 0))))
 					;(old-v (cadr (XtVaGetValues scr (list XmNverticalFontUnit 0))))
 	     )
-	(if (not (XmIsScreen scr)) (snd-display ";XmIsScreen: ~A" scr))
+	(if (not (XmIsScreen scr)) (snd-display "XmIsScreen: ~A" scr))
 	(let ((colors (XmGetColors screen cmap *basic-color*)))
 	  (if (not (Pixel? (car colors)))
-	      (snd-display ";colors: ~A " colors))
+	      (snd-display "colors: ~A " colors))
 	  (let ((color-proc (lambda (bg)
 			      (list (white-pixel) (black-pixel) (white-pixel) (black-pixel)))))
 	    (XmSetColorCalculation color-proc)
 	    (if (not (equal? (XmGetColorCalculation) color-proc))
-		(snd-display ";XmSetColorcalulcation ~A" (XmGetColorCalculation)))))
+		(snd-display "XmSetColorcalulcation ~A" (XmGetColorCalculation)))))
 	(let ((vals (XtVaGetValues scr 
 				   (list XmNbitmapConversionModel 0 XmNdarkThreshold 0 XmNfont 0 XmNunpostBehavior 0))))
-	  (if (not (= (vals 1) XmMATCH_DEPTH)) (snd-display ";XmNbitmapConversionModel: ~A" (vals 1)))
-	  (if (not (= (vals 3) 0)) (snd-display ";XmNdarkThreshold: ~A" (vals 3)))
-	  (if (not (XFontStruct? (vals 5))) (snd-display ";XmNfont: ~A" (vals 5)))
-	  (if (not (= (vals 7) XmUNPOST_AND_REPLAY)) (snd-display ";XmNunpostBehavior: ~A" (vals 7)))
+	  (if (not (= (vals 1) XmMATCH_DEPTH)) (snd-display "XmNbitmapConversionModel: ~A" (vals 1)))
+	  (if (not (= (vals 3) 0)) (snd-display "XmNdarkThreshold: ~A" (vals 3)))
+	  (if (not (XFontStruct? (vals 5))) (snd-display "XmNfont: ~A" (vals 5)))
+	  (if (not (= (vals 7) XmUNPOST_AND_REPLAY)) (snd-display "XmNunpostBehavior: ~A" (vals 7)))
 	  (XSetScreenSaver dpy -1 5 DefaultBlanking DefaultExposures)
 	  ))
       (let ((dpy (XtDisplay (cadr (main-widgets)))))
 	(let* ((dp (XmGetXmDisplay dpy))
 	       (vals (XtVaGetValues dp
 				    (list XmNdragInitiatorProtocolStyle 0 XmNenableThinThickness 0 XmNmotifVersion 0))))
-	  (if (not (XmIsDisplay dp)) (snd-display ";XmIsDisplay: ~A" dp))
-	  (if (not (= (vals 1) XmDRAG_PREFER_RECEIVER)) (snd-display ";XmNdragInitiatorProtocolStyle: ~A" (vals 1)))
-	  (if (not (vals 3)) (snd-display ";XmNenableThinThickness?"))
-	  (if (not (= (vals 5) 2002)) (snd-display ";XmGetXmDisplay motif version: ~A" (vals 5)))
+	  (if (not (XmIsDisplay dp)) (snd-display "XmIsDisplay: ~A" dp))
+	  (if (not (= (vals 1) XmDRAG_PREFER_RECEIVER)) (snd-display "XmNdragInitiatorProtocolStyle: ~A" (vals 1)))
+	  (if (not (vals 3)) (snd-display "XmNenableThinThickness?"))
+	  (if (not (= (vals 5) 2002)) (snd-display "XmGetXmDisplay motif version: ~A" (vals 5)))
 	  (XtAddCallback dp XmNdragStartCallback (lambda (w c i) #f)))
 	
 	(if (not (string=? (XmCvtXmStringToCT (XmStringCreateLocalized "hiho")) "hiho"))
-	    (snd-display ";XmCvtXmStringToCT: ~A" (XmCvtXmStringToCT (XmStringCreateLocalized "hiho"))))
+	    (snd-display "XmCvtXmStringToCT: ~A" (XmCvtXmStringToCT (XmStringCreateLocalized "hiho"))))
 	(let ((val (XmConvertStringToUnits (XDefaultScreenOfDisplay dpy) "3.14 in" XmHORIZONTAL XmINCHES)))
-	  (if (not (= val 3)) (snd-display ";XmConvertStringToUnits in->in ~A" val)))
+	  (if (not (= val 3)) (snd-display "XmConvertStringToUnits in->in ~A" val)))
 	(let ((val (XmConvertStringToUnits (XDefaultScreenOfDisplay dpy) "3.14 in" XmHORIZONTAL XmPOINTS)))
-	  (if (not (= val 225)) (snd-display ";XmConvertStringToUnits in->pts ~A" val)))
+	  (if (not (= val 225)) (snd-display "XmConvertStringToUnits in->pts ~A" val)))
 	(let ((val (XmConvertStringToUnits (XDefaultScreenOfDisplay dpy) "3.14 in" XmHORIZONTAL XmCENTIMETERS)))
-	  (if (not (= val 7)) (snd-display ";XmConvertStringToUnits in->cm ~A" val)))
+	  (if (not (= val 7)) (snd-display "XmConvertStringToUnits in->cm ~A" val)))
 	(let ((val (XmConvertUnits (cadr (main-widgets)) XmHORIZONTAL XmCENTIMETERS 7 XmMILLIMETERS)))
-	  (if (not (= val 70)) (snd-display ";XmConvertUnits cm->mm ~A" val))))
+	  (if (not (= val 70)) (snd-display "XmConvertUnits cm->mm ~A" val))))
       (let ((val (XmConvertUnits (cadr (main-widgets)) XmHORIZONTAL XmCENTIMETERS 7 XmPIXELS)))
-	(if (not (memv val '(278 273))) (snd-display ";XmConvertUnits cm->pix ~A" val)))
+	(if (not (memv val '(278 273))) (snd-display "XmConvertUnits cm->pix ~A" val)))
       (XmVaCreateSimpleRadioBox (caddr (main-widgets)) "hiho" 0 (lambda (w c i) #f) ())
       (XmVaCreateSimpleCheckBox (caddr (main-widgets)) "hiho" (lambda (w c i) #f) ())
       (XmVaCreateSimplePulldownMenu (caddr (main-widgets)) "hiho" 0 (lambda (w c i) #f) ())
@@ -43705,14 +43705,14 @@ EDITS: 1
 	(set-channel-drop (lambda (file s c) (snd-print file)) ind 0)
 	(let ((drop-site (find-child (XtParent (XtParent ((channel-widgets ind 0) 7))) "drop here")))
 	  (if (not drop-site)
-	      (snd-display ";no drop site?")
+	      (snd-display "no drop site?")
 	      (begin
 		(XtVaGetValues drop-site (list XmNdropRectangles 0))
 		(let ((val (XmDropSiteRetrieve drop-site (list XmNnumImportTargets 0))))
-		  (if (not (= (cadr val) 1)) (snd-display ";XmDropSiteRetrieve num: ~A" val)))
+		  (if (not (= (cadr val) 1)) (snd-display "XmDropSiteRetrieve num: ~A" val)))
 		(XmDropSiteRetrieve drop-site (list XmNimportTargets 0))
 		(if (not (XmDropSiteRegistered drop-site))
-		    (snd-display ";XmDropSiteRegistered?"))
+		    (snd-display "XmDropSiteRegistered?"))
 		(XmDropSiteUnregister drop-site)))))
       
       (add-mark 123)
@@ -43730,8 +43730,8 @@ EDITS: 1
 	(let ((vals (XtVaGetValues container 
 				   (list XmNlargeCellHeight 0 XmNcollapsedStatePixmap 0 XmNdetailOrder 0 XmNdetailTabList 0
 					 XmNselectedObjects 0 XmNconvertCallback 0 XmNdestinationCallback 0 XmNselectionCallback 0))))
-	  (if (not (= (vals 1) 0)) (snd-display ";XmNlargeCellHeight: ~A" (vals 1)))
-	  (if (not (Pixmap? (vals 3))) (snd-display ";XmNcollapsedStatePixmap: ~A" (vals 3))))
+	  (if (not (= (vals 1) 0)) (snd-display "XmNlargeCellHeight: ~A" (vals 1)))
+	  (if (not (Pixmap? (vals 3))) (snd-display "XmNcollapsedStatePixmap: ~A" (vals 3))))
 	(let ((children ()))
 	  (for-each-child container
 			  (lambda (w)
@@ -43741,7 +43741,7 @@ EDITS: 1
 	(let ((func (lambda (w) 0)))
 	  (XtSetValues container (list XmNinsertPosition func))
 	  (let ((func1 (cadr (XtGetValues container (list XmNinsertPosition 0)))))
-	    (if (not (equal? func func1)) (snd-display ";XmNinsertPosition: ~A ~A" func func1)))))
+	    (if (not (equal? func func1)) (snd-display "XmNinsertPosition: ~A ~A" func func1)))))
       (close-sound)
       
       ;; qualify proc is causing a segfault somehow
@@ -43863,12 +43863,12 @@ EDITS: 1
 			(if (not (and (XmIsColumn w1) 
 				      (XmIsColumn w2) 
 				      (XmColumn? w1)))
-			    (snd-display ";XmIsColumn: ~A ~A" w1 w2)))
+			    (snd-display "XmIsColumn: ~A ~A" w1 w2)))
 		      (if (defined? 'XmColumnGetChildLabel)
 			  (let ((child (XmColumnGetChildLabel w1)))
 			    (if (not (and (child) 
 					  (equal? child w1-child)))
-				(snd-display ";XmColumn child: ~A ~A" child w1-child))))
+				(snd-display "XmColumn child: ~A ~A" child w1-child))))
 		      (XtManageChild w1)
 		      w1)))
 	       (fntt
@@ -43876,7 +43876,7 @@ EDITS: 1
 		    (let ((w1 (XmCreateButtonBox mainform "box" (list XmNfillOption XmFillMajor))))
 		      (if (not (and (XmIsButtonBox w1) 
 				    (XmButtonBox? w1)))
-			  (snd-display ";XmIsButtonBox: ~A ~A ~A" w1 (XmIsButtonBox w1) (XmButtonBox? w1)))
+			  (snd-display "XmIsButtonBox: ~A ~A ~A" w1 (XmIsButtonBox w1) (XmButtonBox? w1)))
 		      (XtManageChild w1)
 		      w1)))
 	       (fntd 
@@ -43884,24 +43884,24 @@ EDITS: 1
 		    (let ((w1 (XmCreateDropDown mainform "drop" ())))
 		      (if (not (and (XmIsDropDown w1) 
 				    (XmDropDown? w1)))
-			  (snd-display ";XmIsDropDown: ~A ~A ~A" w1 (XmIsDropDown w1) (XmDropDown? w1)))
+			  (snd-display "XmIsDropDown: ~A ~A ~A" w1 (XmIsDropDown w1) (XmDropDown? w1)))
 		      (XtManageChild w1)
 		      (XmDropDownGetValue w1)
 		      (let ((text (XmDropDownGetText w1)))
-			(if (not (XmTextField? text)) (snd-display ";dropdown text: ~A" text)))
+			(if (not (XmTextField? text)) (snd-display "dropdown text: ~A" text)))
 		      (let ((label (XmDropDownGetLabel w1)))
-			(if (not (XmLabel? label)) (snd-display ";dropdown label: ~A" label)))
+			(if (not (XmLabel? label)) (snd-display "dropdown label: ~A" label)))
 		      (let ((arrow (XmDropDownGetArrow w1)))
-			(if (not (XmArrowButton? arrow)) (snd-display ";dropdown arrow: ~A" arrow)))
+			(if (not (XmArrowButton? arrow)) (snd-display "dropdown arrow: ~A" arrow)))
 		      (let ((lst (XmDropDownGetList w1)))
-			(if (not (XmList? lst)) (snd-display ";dropdown lst: ~A" text)))
+			(if (not (XmList? lst)) (snd-display "dropdown lst: ~A" text)))
 		      w1)))
 	       (fntda
 		(and (defined? 'XmIsDataField)
 		    (let ((w1 (XmCreateDataField mainform "data" ())))
 		      (if (not (and (XmIsDataField w1) 
 				    (XmDataField? w1)))
-			  (snd-display ";XmIsDataField: ~A ~A ~A" w1 (XmIsDataField w1) (XmDataField? w1)))
+			  (snd-display "XmIsDataField: ~A ~A ~A" w1 (XmIsDataField w1) (XmDataField? w1)))
 		      (XmDataFieldGetString w1)
 		      (XmDataFieldGetSelection w1)
 		      (XmDataFieldSetString w1 "hiho")
@@ -43920,7 +43920,7 @@ EDITS: 1
 		    (let ((w1 (XmCreateTabStack mainform "hi" ())))
 		      (if (not (and (XmIsTabStack w1) 
 				    (XmTabStack? w1)))
-			  (snd-display ";XmIsTabStack: ~A ~A ~A" w1 (XmIsTabStack w1) (XmTabStack? w1)))
+			  (snd-display "XmIsTabStack: ~A ~A ~A" w1 (XmIsTabStack w1) (XmTabStack? w1)))
 		      (XmTabStackGetSelectedTab w1)
 		      (XmTabStackSelectTab w1 #f)
 		      w1))))
@@ -43935,7 +43935,7 @@ EDITS: 1
 						       XmNtoolTipEnable #t
 						       XmNanimate #f)))))
 		(if (not (Widget? tip)) 
-		    (snd-display ";tooltip label: ~A ~A ~A ~A ~A ~A" tip fnttab fntda fntd fntt fnts))))
+		    (snd-display "tooltip label: ~A ~A ~A ~A ~A ~A" tip fnttab fntda fntd fntt fnts))))
 	  
 	  (XtManageChild new-dialog)
 	  (XtUnmanageChild new-dialog)))
@@ -43946,17 +43946,17 @@ EDITS: 1
 	     (proto1 (XmInternAtom dpy "TEST1" #f))
 	     (proto2 (XmInternAtom dpy "TEST2" #f))
 	     (val 0))
-	(if (not (Atom? prop)) (snd-display ";XmInternAtom: ~A" prop))
-	(if (not (string=? (XmGetAtomName dpy prop) "TESTING")) (snd-display ";XmGetAtomName: ~A" (XmGetAtomName dpy prop)))
+	(if (not (Atom? prop)) (snd-display "XmInternAtom: ~A" prop))
+	(if (not (string=? (XmGetAtomName dpy prop) "TESTING")) (snd-display "XmGetAtomName: ~A" (XmGetAtomName dpy prop)))
 	(XmAddProtocols shell prop (list proto1 proto2))
 	(XmSetProtocolHooks shell
 			    (XmInternAtom dpy "WM_PROTOCOLS" #f)
 			    prop
 			    (lambda (w c i)
-			      (snd-display ";prehook: ~A ~A ~A" w c i))
+			      (snd-display "prehook: ~A ~A ~A" w c i))
 			    12345
 			    (lambda (w c i)
-			      (snd-display ";posthook: ~A ~A ~A" w c i))
+			      (snd-display "posthook: ~A ~A ~A" w c i))
 			    54321)
 	(XmDeactivateProtocol shell prop proto2)
 	(XmRemoveProtocols shell prop (list proto2))
@@ -44092,7 +44092,7 @@ EDITS: 1
 	     (set! (.event struct) (XEvent))
 	     (for-each
 	      (lambda (field)
-		(if (not (pair? field)) (snd-display ";~A: ~A" struct field))
+		(if (not (pair? field)) (snd-display "~A: ~A" struct field))
 		(set! val ((car field) struct))
 		(if (< (length field) 4)
 		    (case (cadr field)
@@ -44308,34 +44308,34 @@ EDITS: 1
 	
 	(for-each
 	 (lambda (n)
-	   (if (not (string? (car n))) (snd-display ";resource ~A is not a string?" (car n)))
+	   (if (not (string? (car n))) (snd-display "resource ~A is not a string?" (car n)))
 	   (XtVaGetValues shell (list (car n) 0)))
 	 resource-list)
 	)
       
       (if (not (XEvent? (XEvent)))
-	  (snd-display ";xevent type trouble! ~A -> ~A" (XEvent) (XEvent? (XEvent))))
+	  (snd-display "xevent type trouble! ~A -> ~A" (XEvent) (XEvent? (XEvent))))
       (if (not (XGCValues? (XGCValues)))
-	  (snd-display ";xgcvalues type trouble! ~A -> ~A" (XGCValues) (XGCValues? (XGCValues))))
+	  (snd-display "xgcvalues type trouble! ~A -> ~A" (XGCValues) (XGCValues? (XGCValues))))
       (if (not (= (.direction (XmTraverseObscuredCallbackStruct)) 0))
-	  (snd-display ";.direction: ~A" (.direction (XmTraverseObscuredCallbackStruct))))
+	  (snd-display ".direction: ~A" (.direction (XmTraverseObscuredCallbackStruct))))
       (if (.ptr (XmTextBlock))
-	  (snd-display ";.ptr block: ~A" (.ptr (XmTextBlock))))
+	  (snd-display ".ptr block: ~A" (.ptr (XmTextBlock))))
       (let ((hi (XmTextBlock)))
 	(set! (.ptr hi) "hi")
 	(if (not (string=? (.ptr hi) "hi"))
-	    (snd-display ";.ptr set block: ~A" (.ptr hi)))
-	(if (not (= (.length hi) 0)) (snd-display ";.length block: ~A" (.length hi)))
+	    (snd-display ".ptr set block: ~A" (.ptr hi)))
+	(if (not (= (.length hi) 0)) (snd-display ".length block: ~A" (.length hi)))
 	(set! (.length hi) 3)
-	(if (not (= (.length hi) 3)) (snd-display ";set .length block: ~A" (.length hi))))
-      (if (not (= (.dashes (XGCValues)) 0)) (snd-display ";dashes: ~A" (.dashes (XGCValues))))
+	(if (not (= (.length hi) 3)) (snd-display "set .length block: ~A" (.length hi))))
+      (if (not (= (.dashes (XGCValues)) 0)) (snd-display "dashes: ~A" (.dashes (XGCValues))))
       (set! (.dashes (XGCValues)) 1)
       (set! (.clip_mask (XGCValues)) (list 'Pixmap 0))
       (set! (.resourceid (XEvent -1)) 0)
       (set! (.error_code (XEvent -1)) 0)
       (set! (.request_code (XEvent -1)) 0)
-      (if (not (= (.resourceid (XEvent -1)) 0)) (snd-display ";error resourceid: ~A" (.resourceid (XEvent -1))))
-      (if (not (= (.request_code (XEvent -1)) 0)) (snd-display ";error request_code: ~A" (.request_code (XEvent -1))))
+      (if (not (= (.resourceid (XEvent -1)) 0)) (snd-display "error resourceid: ~A" (.resourceid (XEvent -1))))
+      (if (not (= (.request_code (XEvent -1)) 0)) (snd-display "error request_code: ~A" (.request_code (XEvent -1))))
       (set! (.pad (XColor)) 1)
       ;;)
       
@@ -44344,16 +44344,16 @@ EDITS: 1
 	       (win (XtWindow (cadr (main-widgets))))
 	       (vals (XShapeQueryExtents dpy win)))
 	  (if (not (= (car vals) 1))
-	      (snd-display ";XShapeQueryExtents: ~A" vals))
+	      (snd-display "XShapeQueryExtents: ~A" vals))
 	  (set! vals (XShapeGetRectangles dpy win 0))
-	  (if (not (list? vals)) (snd-display ";XShapeGetRectangles: ~A" vals))
+	  (if (not (list? vals)) (snd-display "XShapeGetRectangles: ~A" vals))
 					;(segfault)	  (XtFree (cadr vals)) 
 	  (set! vals (XShapeQueryExtension dpy))
-	  (if (not (equal? vals '(#t 64 0))) (snd-display ";XShapeQueryExtension: ~A" vals))
+	  (if (not (equal? vals '(#t 64 0))) (snd-display "XShapeQueryExtension: ~A" vals))
 	  (set! vals (XShapeQueryVersion dpy))
 	  (if (not (member vals '((#t 1 0) (#t 1 1))))
-	      (snd-display ";XShapeQueryVersion: ~A" vals))
-	  (if (XShapeOffsetShape dpy win 0 0 0) (snd-display ";XShapeOffsetShape?"))
+	      (snd-display "XShapeQueryVersion: ~A" vals))
+	  (if (XShapeOffsetShape dpy win 0 0 0) (snd-display "XShapeOffsetShape?"))
 	  
 	  (let* ((attr (XSetWindowAttributes #f *basic-color* #f *highlight-color*))
 		 (newwin (XCreateWindow dpy win 10 10 100 100 3 
@@ -44395,7 +44395,7 @@ EDITS: 1
       
       (let ((key (XStringToKeysym "Cancel")))
 	(if (not (= (cadr key) XK_Cancel))
-	    (snd-display ";XStringToKeysym ~A ~A" key XK_Cancel)))
+	    (snd-display "XStringToKeysym ~A ~A" key XK_Cancel)))
       
       (let* ((win (XtWindow (cadr (main-widgets))))
 	     (xm-procs 
@@ -44793,7 +44793,7 @@ EDITS: 1
 		      n
 		      (lambda args (car args)))))
 	       (if (not (memq tag '(wrong-type-arg wrong-number-of-args)))
-		   (snd-display ";(~A) -> ~A" name tag)))
+		   (snd-display "(~A) -> ~A" name tag)))
 	     (if (dilambda? n)
 		 (let ((tag
 			(catch #t
@@ -44801,7 +44801,7 @@ EDITS: 1
 			    (set! (n) 0))
 			  (lambda args (car args)))))
 		   (if (not (eq? tag 'wrong-number-of-args))
-		       (snd-display ";(~A) -> ~A" name tag)))))
+		       (snd-display "(~A) -> ~A" name tag)))))
 	   struct-accessors
 	   struct-accessor-names)
 	  
@@ -44815,20 +44815,20 @@ EDITS: 1
 			 (lambda () (n arg))
 			 (lambda args (car args)))))
 		  (if (not (eq? tag 'wrong-type-arg))
-		      (snd-display ";(~A ~A) -> ~A" name arg tag)))
+		      (snd-display "(~A ~A) -> ~A" name arg tag)))
 		(when (dilambda? n)
 		  (let ((tag 
 			 (catch #t
 			   (lambda () (set! (n arg) 0))
 			   (lambda args (car args)))))
 		    (if (not (eq? tag 'wrong-type-arg))
-			(snd-display ";(~A ~A) -> ~A" name arg tag)))
+			(snd-display "(~A ~A) -> ~A" name arg tag)))
 		  (let ((tag 
 			 (catch #t
 			   (lambda () (set! (n 0) arg))
 			   (lambda args (car args)))))
 		    (if (not (eq? tag 'wrong-type-arg))
-			(snd-display ";(set ~A ~A) -> ~A" name arg tag)))))
+			(snd-display "(set ~A ~A) -> ~A" name arg tag)))))
 	      struct-accessors
 	      struct-accessor-names))
 	   (list dpy win '(Atom 0) '(Colormap 0) 1.5 "/hiho" 1234 #f #\c '(Time 0) '(Font 0) #() '(Cursor 1))))
@@ -44971,7 +44971,7 @@ EDITS: 1
 		  (lambda args args))))
       (if (not (and (pair? tag) 
 		    (eq? (car tag) expected-tag)))
-	  (snd-display ";check-error-tag ~A from ~A: ~A" 
+	  (snd-display "check-error-tag ~A from ~A: ~A" 
 		       expected-tag (procedure-source thunk) tag))))
   
   (set! *with-background-processes* #t)
@@ -45272,7 +45272,7 @@ EDITS: 1
 			       (n (integer->sound 123)))
 			     (lambda args (car args)))))
 		      (if (not (memq tag '(wrong-type-arg no-such-sound)))
-			  (snd-display ";snd no-such-sound ~A: ~A" n tag))))
+			  (snd-display "snd no-such-sound ~A: ~A" n tag))))
 		  (list amp-control apply-controls channels chans comment contrast-control 
 			amp-control-bounds speed-control-bounds expand-control-bounds contrast-control-bounds
 			reverb-control-length-bounds reverb-control-scale-bounds
@@ -45293,7 +45293,7 @@ EDITS: 1
 					   (n arg))
 					 (lambda args (car args)))))
 				  (if (not (memq tag '(wrong-type-arg mus-error)))
-				      (snd-display ";snd wrong-type-arg ~A: ~A ~A" n tag arg))))
+				      (snd-display "snd wrong-type-arg ~A: ~A ~A" n tag arg))))
 			      (list amp-control apply-controls close-sound comment contrast-control 
 				    amp-control-bounds speed-control-bounds expand-control-bounds contrast-control-bounds
 				    reverb-control-length-bounds reverb-control-scale-bounds
@@ -45315,7 +45315,7 @@ EDITS: 1
 					   (set! (n arg) 0))
 					 (lambda args (car args)))))
 				  (if (not (memq tag '(wrong-type-arg syntax-error error)))
-				      (snd-display ";snd set wrong-type-arg: ~A: ~A ~A" n tag arg))))
+				      (snd-display "snd set wrong-type-arg: ~A: ~A ~A" n tag arg))))
 			      (list amp-control channels chans comment contrast-control contrast-control-amp 
 				    amp-control-bounds speed-control-bounds expand-control-bounds contrast-control-bounds
 				    reverb-control-length-bounds reverb-control-scale-bounds
@@ -45336,7 +45336,7 @@ EDITS: 1
 					     (set! (n index) arg))
 					   (lambda args (car args)))))
 				    (if (not (eq? tag 'wrong-type-arg))
-					(snd-display ";snd safe set wrong-type-arg: ~A ~A ~A" n tag arg))))
+					(snd-display "snd safe set wrong-type-arg: ~A ~A ~A" n tag arg))))
 				(list amp-control contrast-control contrast-control-amp contrast-control? expand-control 
 				      amp-control-bounds speed-control-bounds expand-control-bounds contrast-control-bounds
 				      reverb-control-length-bounds reverb-control-scale-bounds
@@ -45356,7 +45356,7 @@ EDITS: 1
 					   (n arg))
 					 (lambda args (car args)))))
 				  (if (not (eq? tag 'wrong-type-arg))
-				      (snd-display ";float-vector 0 wrong-type-arg ~A: ~A ~A" n tag arg))))
+				      (snd-display "float-vector 0 wrong-type-arg ~A: ~A ~A" n tag arg))))
 			      (list make-float-vector float-vector-peak float-vector-max float-vector-min)))
 		  (list (make-vector 1) "hiho" 0+i 1.5 #(0 1) delay-32))
 	
@@ -45369,7 +45369,7 @@ EDITS: 1
 						       (n arg1 arg2))
 						     (lambda args (car args)))))
 					      (if (not (memq tag '(wrong-type-arg wrong-number-of-args mus-error)))
-						  (snd-display ";float-vector 1 wrong-whatever ~A: ~A ~A ~A" n tag arg1 arg2))))
+						  (snd-display "float-vector 1 wrong-whatever ~A: ~A ~A ~A" n tag arg1 arg2))))
 					  (list float-vector-add! float-vector-subtract! float-vector-multiply! float-vector-ref float-vector-scale!)))
 			      (list float-vector-5 "hiho" 0+i 1.5 (list 1 0) #(0 1) delay-32)))
 		  (list (make-vector 1) "hiho" 0+i 1.5 (list 1 0) #(0 1) delay-32))
@@ -45382,7 +45382,7 @@ EDITS: 1
 					   (n float-vector-3 arg))
 					 (lambda args (car args)))))
 				  (if (not (eq? tag 'wrong-type-arg))
-				      (snd-display ";float-vector arg 2 (scaler) wrong-type-arg ~A: ~A ~A" n arg tag))))
+				      (snd-display "float-vector arg 2 (scaler) wrong-type-arg ~A: ~A ~A" n arg tag))))
 			      (list float-vector-add! float-vector-subtract! float-vector-multiply! float-vector-ref float-vector-scale!)))
 		  (list (make-vector 1) "hiho" 0+i (list 1 0) #(0 1) delay-32))
 	
@@ -45391,7 +45391,7 @@ EDITS: 1
 		       (float-vector-3 12))
 		     (lambda args (car args)))))
 	    (if (not (eq? tag 'out-of-range))
-		(snd-display ";float-vector[12]: ~A" tag)))
+		(snd-display "float-vector[12]: ~A" tag)))
 	
 	(for-each (lambda (arg)
 		    (for-each (lambda (n)
@@ -45401,7 +45401,7 @@ EDITS: 1
 					   (n arg))
 					 (lambda args (car args)))))
 				  (if tag
-				      (snd-display ";?proc ~A: ~A" n tag))))
+				      (snd-display "?proc ~A: ~A" n tag))))
 			      (list all-pass? asymmetric-fm? comb? filtered-comb? convolve? delay? env? file->frample? file->sample? snd->sample?
 				    filter? fir-filter? formant? formant-bank? firmant? frample->file? granulate? iir-filter? locsig? move-sound? mus-input? 
 				    mus-output? notch? one-pole? one-pole-all-pass? one-zero? oscil? phase-vocoder? pulse-train? rand-interp? rand? readin? 
@@ -45419,7 +45419,7 @@ EDITS: 1
 			       (n (make-oscil 440)))
 			     (lambda args (car args)))))
 		      (if tag
-			  (snd-display ";oscil?proc ~A: ~A" n tag))))
+			  (snd-display "oscil?proc ~A: ~A" n tag))))
 		  (list all-pass? asymmetric-fm? comb? filtered-comb? convolve? delay? env? file->frample? file->sample? snd->sample?
 			filter? fir-filter? formant? formant-bank? firmant? frample->file? granulate? iir-filter? locsig? move-sound? mus-input? 
 			mus-output? notch? one-pole? one-pole-all-pass? one-zero? phase-vocoder? pulse-train? rand-interp? rand? readin? 
@@ -45434,7 +45434,7 @@ EDITS: 1
 			     n
 			     (lambda args (car args)))))
 		      (if (not (eq? tag 'no-active-selection))
-			  (snd-display ";selection ~A: ~A" n tag))))
+			  (snd-display "selection ~A: ~A" n tag))))
 		  (list reverse-selection selection-position selection-framples smooth-selection
 			scale-selection-to insert-selection delete-selection delete-selection-and-smooth mix-selection))
 	
@@ -45445,7 +45445,7 @@ EDITS: 1
 			       (n 0.0))
 			     (lambda args (car args)))))
 		      (if (not (eq? tag 'no-active-selection))
-			  (snd-display ";selection ~A: ~A" n tag))))
+			  (snd-display "selection ~A: ~A" n tag))))
 		  (list src-selection filter-selection env-selection))
 	
 	(for-each (lambda (arg)
@@ -45456,7 +45456,7 @@ EDITS: 1
 					   (n arg))
 					 (lambda args (car args)))))
 				  (if (not (memq tag '(wrong-type-arg no-data no-such-method bad-type error arg-error)))
-				      (snd-display ";clm ~A: tag: ~A arg: ~A" n tag arg))))
+				      (snd-display "clm ~A: tag: ~A arg: ~A" n tag arg))))
 			      (list all-pass asymmetric-fm comb filtered-comb convolve db->linear moving-average moving-max moving-norm
 				    degrees->radians delay env formant firmant granulate hz->radians linear->db even-weight odd-weight
 				    make-all-pass make-asymmetric-fm make-comb make-filtered-comb make-convolve make-delay make-env
@@ -45487,7 +45487,7 @@ EDITS: 1
 			       )
 			     (lambda args (car args)))))
 		      (if (not (memq tag '(wrong-type-arg bad-arity error mus-error)))
-			  (snd-display ";clm-1 ~A: ~A" n tag))))
+			  (snd-display "clm-1 ~A: ~A" n tag))))
 		  (list all-pass array-interp asymmetric-fm comb filtered-comb contrast-enhancement convolution convolve moving-average moving-max moving-norm
 			convolve-files delay dot-product env-interp file->sample snd->sample filter fir-filter formant firmant
 			formant-bank granulate iir-filter ina
@@ -45510,7 +45510,7 @@ EDITS: 1
 			       (set! (n (make-oscil)) vector-0))
 			     (lambda args (car args)))))
 		      (if (not (memq tag '(wrong-type-arg syntax-error error)))
-			  (snd-display ";mus-gen ~A: ~A" n tag))))
+			  (snd-display "mus-gen ~A: ~A" n tag))))
 		  (list mus-channel mus-channels mus-data
 			mus-feedback mus-feedforward mus-frequency mus-hop mus-increment mus-length
 			mus-location mus-file-mix mus-name mus-order mus-phase mus-ramp mus-random mus-run mus-scaler mus-xcoeffs
@@ -45524,7 +45524,7 @@ EDITS: 1
 			       (n float-vector-5))
 			     (lambda args (car args)))))
 		      (if (not (eq? tag 'wrong-type-arg))
-			  (snd-display ";mus-sound ~A: ~A" n tag))))
+			  (snd-display "mus-sound ~A: ~A" n tag))))
 		  (list mus-sound-samples mus-sound-framples mus-sound-duration mus-sound-datum-size
 			mus-sound-data-location mus-sound-chans mus-sound-srate mus-sound-header-type mus-sound-sample-type
 			mus-sound-length mus-sound-type-specifier mus-header-type-name mus-sample-type-name mus-sound-comment
@@ -45538,7 +45538,7 @@ EDITS: 1
 			       (n "/bad/baddy"))
 			     (lambda args (car args)))))
 		      (if (not (eq? tag 'mus-error))
-			  (snd-display ";bad file mus-sound ~A: ~A" n tag))))
+			  (snd-display "bad file mus-sound ~A: ~A" n tag))))
 		  (list mus-sound-samples mus-sound-framples mus-sound-duration mus-sound-datum-size
 			mus-sound-data-location mus-sound-chans mus-sound-srate mus-sound-header-type mus-sound-sample-type
 			mus-sound-length mus-sound-type-specifier mus-sound-comment mus-sound-write-date mus-sound-maxamp
@@ -45552,7 +45552,7 @@ EDITS: 1
 			       (n float-vector-5))
 			     (lambda args (car args)))))
 		      (if (not (memq tag '(wrong-type-arg error no-such-sound)))
-			  (snd-display "; chn (no snd) procs ~A: ~A" n tag))))
+			  (snd-display " chn (no snd) procs ~A: ~A" n tag))))
 		  (list channel-widgets cursor channel-properties channel-property 
 			cursor-position cursor-size cursor-style tracking-cursor-style delete-sample display-edits dot-size
 			draw-dots draw-lines edit-fragment edit-position edit-tree edits fft-window-alpha fft-window-beta fft-log-frequency
@@ -45577,7 +45577,7 @@ EDITS: 1
 			       (n 0 float-vector-5))
 			     (lambda args (car args)))))
 		      (if (not (eq? tag 'wrong-type-arg))
-			  (snd-display "; chn (no chn) procs ~A: ~A" n tag))))
+			  (snd-display " chn (no chn) procs ~A: ~A" n tag))))
 		  (list channel-widgets cursor channel-properties channel-property combined-data-color
 			cursor-position cursor-size cursor-style tracking-cursor-style delete-sample display-edits dot-size draw-dots draw-lines
 			edit-fragment edit-position edit-tree edits fft-window-alpha fft-window-beta fft-log-frequency fft-log-magnitude fft-with-phases
@@ -45602,7 +45602,7 @@ EDITS: 1
 			       (n (integer->sound 1234)))
 			     (lambda args (car args)))))
 		      (if (not (eq? tag 'no-such-sound))
-			  (snd-display "; chn procs ~A: ~A" n tag))))
+			  (snd-display " chn procs ~A: ~A" n tag))))
 		  (list channel-widgets cursor channel-properties
 			cursor-position cursor-size cursor-style tracking-cursor-style 
 			(lambda (snd) (delete-sample 0 snd)) display-edits dot-size 
@@ -45640,7 +45640,7 @@ EDITS: 1
 			       (n 0 1234))
 			     (lambda args (car args)))))
 		      (if (not (eq? tag 'no-such-sound))
-			  (snd-display "; snd(1) chn procs ~A: ~A" n tag))))
+			  (snd-display " snd(1) chn procs ~A: ~A" n tag))))
 		  (list delete-sample edit-fragment graph-data graph-style play position->x position->y redo
 			time-graph-style lisp-graph-style transform-graph-style
 			scale-by scale-to undo x->position y->position x-axis-label))
@@ -45653,12 +45653,12 @@ EDITS: 1
 				 (n 0 index 1234))
 			       (lambda args (car args)))))
 			(if (not (eq? tag 'no-such-channel))
-			    (snd-display "; snd(1 1234) chn procs ~A: ~A" n tag))))
+			    (snd-display " snd(1 1234) chn procs ~A: ~A" n tag))))
 		    (list delete-sample edit-fragment graph-data position->x position->y redo scale-by
 			  scale-to undo x->position y->position))
 	  (close-sound index))
 	(if (sound? (find-sound "oboe.snd"))
-	    (snd-display ";oboe.snd is still open?"))
+	    (snd-display "oboe.snd is still open?"))
 	
 	(let ((index (open-sound "oboe.snd")))
 	  (for-each (lambda (n)
@@ -45668,7 +45668,7 @@ EDITS: 1
 				 (n index 1234))
 			       (lambda args (car args)))))
 			(if (not (memq tag '(no-such-channel no-such-sound)))
-			    (snd-display "; chn procs ~A: ~A" n tag))))
+			    (snd-display " chn procs ~A: ~A" n tag))))
 		    (list channel-widgets cursor cursor-position cursor-size cursor-style tracking-cursor-style display-edits
 			  dot-size edit-position edit-tree edits fft-window-alpha fft-window-beta fft-log-frequency fft-log-magnitude fft-with-phases
 			  transform-size transform-graph-type fft-window transform-graph? graph-style lisp-graph? left-sample
@@ -45683,7 +45683,7 @@ EDITS: 1
 			  x-zoom-slider y-bounds y-position-slider y-zoom-slider zero-pad channel-properties channel-property ))
 	  (close-sound index))
 	(if (sound? (find-sound "oboe.snd"))
-	    (snd-display ";oboe.snd is still open?"))
+	    (snd-display "oboe.snd is still open?"))
 	
 	(let ((index (open-sound "oboe.snd")))
 	  (for-each (lambda (n)
@@ -45693,7 +45693,7 @@ EDITS: 1
 				 (set! (n index 0) float-vector-5))
 			       (lambda args (car args)))))
 			(if (not (memq tag '(wrong-type-arg syntax-error error)))
-			    (snd-display "; set chn procs ~A: ~A" n tag))))
+			    (snd-display " set chn procs ~A: ~A" n tag))))
 		    (list channel-widgets cursor cursor-position display-edits dot-size edit-tree edits
 			  fft-window-alpha fft-window-beta fft-log-frequency fft-log-magnitude fft-with-phases transform-size transform-graph-type fft-window
 			  transform-graph? graph-style lisp-graph? left-sample make-graph-data max-transform-peaks maxamp maxamp-position
@@ -45709,7 +45709,7 @@ EDITS: 1
 	  
 	  (close-sound index))
 	(if (sound? (find-sound "oboe.snd"))
-	    (snd-display ";oboe.snd is still open?"))
+	    (snd-display "oboe.snd is still open?"))
 	
 	(for-each (lambda (n b)
 		    (let ((tag
@@ -45718,7 +45718,7 @@ EDITS: 1
 			       (n float-vector-5))
 			     (lambda args (car args)))))
 		      (if (not (memq tag '(error wrong-type-arg syntax-error)))
-			  (snd-display ";[0]: mix procs ~A: ~A (~A)" b tag float-vector-5))))
+			  (snd-display "[0]: mix procs ~A: ~A (~A)" b tag float-vector-5))))
 		  (list mix-amp mix-amp-env mix-length mix-name mix-position mix-home mix-speed mix-tag-y)
 		  '(mix-amp mix-amp-env mix-length mix-name mix-position mix-home mix-speed mix-tag-y))
 	
@@ -45729,7 +45729,7 @@ EDITS: 1
 			       (set! (n (integer->mix 1234)) float-vector-5))
 			     (lambda args (car args)))))
 		      (if (not (memq tag '(error wrong-type-arg syntax-error no-such-mix)))
-			  (snd-display ";[2]: mix procs ~A: ~A" n tag))))
+			  (snd-display "[2]: mix procs ~A: ~A" n tag))))
 		  (list mix-name mix-position mix-home mix-speed mix-tag-y))
 	
 	(let ((index (open-sound "oboe.snd"))
@@ -45741,12 +45741,12 @@ EDITS: 1
 				 (set! (n id) float-vector-5))
 			       (lambda args (car args)))))
 			(if (not (memq tag '(error wrong-type-arg syntax-error)))
-			    (snd-display ";[3]: mix procs ~A: ~A (~A)" b tag float-vector-5))))
+			    (snd-display "[3]: mix procs ~A: ~A (~A)" b tag float-vector-5))))
 		    (list  mix-name mix-position mix-home mix-speed mix-tag-y)
 		    '(mix-name mix-position mix-home mix-speed mix-tag-y))
 	  (close-sound index)
 	  (if (sound? (find-sound "oboe.snd"))
-	      (snd-display ";oboe.snd is still open? ~A ~A ~A" index (find-sound "oboe.snd") (sounds))))
+	      (snd-display "oboe.snd is still open? ~A ~A ~A" index (find-sound "oboe.snd") (sounds))))
 	
 	(for-each (lambda (n)
 		    (let ((tag
@@ -45755,7 +45755,7 @@ EDITS: 1
 			       (n float-vector-5))
 			     (lambda args (car args)))))
 		      (if (not (eq? tag 'wrong-type-arg))
-			  (snd-display "; mark procs ~A: ~A" n tag))))
+			  (snd-display " mark procs ~A: ~A" n tag))))
 		  (list add-mark mark-name mark-sample mark-sync mark-home delete-mark delete-marks find-mark))
 	
 	(let* ((index (open-sound "oboe.snd"))
@@ -45767,11 +45767,11 @@ EDITS: 1
 				 (set! (n id) float-vector-5))
 			       (lambda args (car args)))))
 			(if (not (eq? tag 'wrong-type-arg))
-			    (snd-display "; set mark procs ~A: ~A" n tag))))
+			    (snd-display " set mark procs ~A: ~A" n tag))))
 		    (list mark-name mark-sample mark-sync))
 	  (close-sound index))
 	(if (sound? (find-sound "oboe.snd"))
-	    (snd-display ";oboe.snd is still open?"))
+	    (snd-display "oboe.snd is still open?"))
 	
 	(for-each (lambda (arg)
 		    (for-each (lambda (n)
@@ -45781,7 +45781,7 @@ EDITS: 1
 					   (n arg))
 					 (lambda args (car args)))))
 				  (if (not (memq tag '(wrong-type-arg wrong-number-of-args)))
-				      (snd-display "; region procs ~A: ~A ~A" n tag arg))))
+				      (snd-display " region procs ~A: ~A ~A" n tag arg))))
 			      (list region-chans region-home region-framples 
 				    region-position region-maxamp region-maxamp-position region-sample 
 				    region->float-vector region-srate forget-region)))
@@ -45794,7 +45794,7 @@ EDITS: 1
 			       (set! (n) float-vector-5))
 			     (lambda args (car args)))))
 		      (if (not (memq tag '(error wrong-type-arg syntax-error)))
-			  (snd-display "; misc procs ~A: ~A" n tag))))
+			  (snd-display " misc procs ~A: ~A" n tag))))
 		  (list axis-color enved-filter-order enved-filter filter-control-waveform-color ask-before-overwrite ask-about-unsaved-edits
 			auto-resize auto-update axis-label-font axis-numbers-font basic-color bind-key show-full-duration show-full-range initial-beg initial-dur
 			channel-style color-cutoff color-orientation-dialog color-inverted color-scale
@@ -46146,24 +46146,24 @@ EDITS: 1
 	  (lambda args
 	    (let ((str (apply format #f (cadr args))))
 	      (if (not (string=? str "set! x-zoom-slider: no such sound: -1"))
-		  (snd-display ";x-zoom-slider error: ~S~%" str)))))
+		  (snd-display "x-zoom-slider error: ~S~%" str)))))
 	(catch #t 
 	  (lambda ()
 	    (set! (y-zoom-slider -1) 123))
 	  (lambda args
 	    (let ((str (apply format #f (cadr args))))
 	      (if (not (string=? str "set! y-zoom-slider: no such sound: -1"))
-		  (snd-display ";y-zoom-slider error: ~S~%" str)))))
+		  (snd-display "y-zoom-slider error: ~S~%" str)))))
 	(catch #t 
 	  (lambda ()
 	    (set! (beats-per-measure -1) 123))
 	  (lambda args
 	    (let ((str (apply format #f (cadr args))))
 	      (if (not (string=? str "set! beats-per-measure: no such sound: -1"))
-		  (snd-display ";beats-per-measure error: ~S~%" str)))))
+		  (snd-display "beats-per-measure error: ~S~%" str)))))
 	
 	(if (pair? (sounds))
-	    (snd-display ";sounds after error checks: ~A~%" (map short-file-name (sounds))))
+	    (snd-display "sounds after error checks: ~A~%" (map short-file-name (sounds))))
 	
 	(if (provided? 'snd-motif)
 	    (for-each
@@ -46172,7 +46172,7 @@ EDITS: 1
 			    (lambda () (n (list 'Widget 0)))
 			    (lambda args (car args)))))
 		 (if (not (eq? tag 'no-such-widget))
-		     (snd-display ";~A of null widget -> ~A" name tag))))
+		     (snd-display "~A of null widget -> ~A" name tag))))
 	     (list widget-position widget-size widget-text hide-widget show-widget focus-widget)
 	     '(widget-position widget-size widget-text hide-widget show-widget focus-widget)))
 	
@@ -46233,7 +46233,7 @@ EDITS: 1
 			n
 			(lambda args (car args)))))
 	     (if (eq? err 'wrong-number-of-args)
-		 (snd-display ";procs0: ~A ~A" err (procedure-documentation n)))))
+		 (snd-display "procs0: ~A ~A" err (procedure-documentation n)))))
 	 procs0)
 	(dismiss-all-dialogs)
 	(for-each close-sound (sounds))
@@ -46262,7 +46262,7 @@ EDITS: 1
 		  (lambda () (n arg))
 		  (lambda args 
 		    (if (eq? (car args) 'wrong-number-of-args)
-			(snd-display ";procs1 wna: ~A" (procedure-documentation n))))))
+			(snd-display "procs1 wna: ~A" (procedure-documentation n))))))
 	      procs1))
 	   main-args)
 	  (for-each close-sound (sounds))
@@ -46278,7 +46278,7 @@ EDITS: 1
 		     (lambda () (n arg1 arg2))
 		     (lambda args 
 		       (if (eq? (car args) 'wrong-number-of-args)
-			   (snd-display ";procs2: ~A" (procedure-documentation n))))))
+			   (snd-display "procs2: ~A" (procedure-documentation n))))))
 		 procs2))
 	      main-args))
 	   main-args)
@@ -46293,7 +46293,7 @@ EDITS: 1
 		  (lambda () (set! (n) arg))
 		  (lambda args 
 		    (if (eq? (car args) 'wrong-number-of-args)
-			(snd-display ";set-procs0: ~A" (procedure-documentation n))))))
+			(snd-display "set-procs0: ~A" (procedure-documentation n))))))
 	      set-procs0))
 	   main-args)
 	  (for-each close-sound (sounds))
@@ -46309,7 +46309,7 @@ EDITS: 1
 		     (lambda () (set! (n arg1) arg2))
 		     (lambda args 
 		       (if (eq? (car args) 'wrong-number-of-args)
-			   (snd-display ";set-procs1: ~A" (procedure-documentation n))))))
+			   (snd-display "set-procs1: ~A" (procedure-documentation n))))))
 		 set-procs1))
 	      main-args))
 	   main-args)
@@ -46329,7 +46329,7 @@ EDITS: 1
 			(lambda () (set! (n arg1 arg2) arg3))
 			(lambda args 
 			  (if (eq? (car args) 'wrong-number-of-args)
-			      (snd-display ";set-procs2: ~A" (procedure-documentation n))))))
+			      (snd-display "set-procs2: ~A" (procedure-documentation n))))))
 		    set-procs2))
 		 less-args))
 	      less-args))
@@ -46677,100 +46677,66 @@ callgrind_annotate --auto=yes callgrind.out.<pid> > hi
 14,486,041,393  snd-sig.c:direct_filter [/home/bil/snd-11/snd]
 10,836,543,187  run.c:eval_ptree [/home/bil/snd-11/snd]
 
-10-Dec-10 (64-bit)
-224,005,122,781 
-32,349,320,555  s7.c:eval [/home/bil/snd-11/snd]
-24,560,182,751  s7.c:eval'2 [/home/bil/snd-11/snd]
-19,534,468,570  ???:sin [/lib64/libm-2.12.so]
-16,408,681,106  io.c:mus_read_any_1 [/home/bil/snd-11/snd]
-11,540,583,151  snd-edits.c:channel_local_maxamp [/home/bil/snd-11/snd]
-11,175,405,494  s7.c:gc [/home/bil/snd-11/snd]
- 8,937,855,502  run.c:eval_ptree [/home/bil/snd-11/snd]
- 8,913,093,185  snd-sig.c:direct_filter [/home/bil/snd-11/snd]
-
 14-Dec-11:
 153,472,402,051
 15,964,352,672  ???:sin [/lib64/libm-2.12.so]
-15,349,566,001  io.c:mus_read_any_1 [/home/bil/snd-16/snd]
- 9,724,315,504  s7.c:eval [/home/bil/snd-16/snd]
- 9,340,050,109  snd-edits.c:channel_local_maxamp [/home/bil/snd-16/snd]
- 8,904,652,480  snd-sig.c:direct_filter [/home/bil/snd-16/snd]
- 8,727,766,020  run.c:eval_ptree [/home/bil/snd-16/snd]
- 7,219,826,287  io.c:mus_write_1 [/home/bil/snd-16/snd]
- 5,925,019,812  s7.c:eval'2 [/home/bil/snd-16/snd]
- 2,960,895,840  clm.c:mus_fir_filter [/home/bil/snd-16/snd]
- 2,765,667,308  clm.c:mus_out_any_to_file [/home/bil/snd-16/snd]
+15,349,566,001  io.c:mus_read_any_1 [/home/bil/snd-17/snd]
+ 9,724,315,504  s7.c:eval [/home/bil/snd-17/snd]
+ 9,340,050,109  snd-edits.c:channel_local_maxamp [/home/bil/snd-17/snd]
+ 8,904,652,480  snd-sig.c:direct_filter [/home/bil/snd-17/snd]
+ 8,727,766,020  run.c:eval_ptree [/home/bil/snd-17/snd]
+ 7,219,826,287  io.c:mus_write_1 [/home/bil/snd-17/snd]
+ 5,925,019,812  s7.c:eval'2 [/home/bil/snd-17/snd]
+ 2,960,895,840  clm.c:mus_fir_filter [/home/bil/snd-17/snd]
+ 2,765,667,308  clm.c:mus_out_any_to_file [/home/bil/snd-17/snd]
  2,732,722,538  ???:cos [/lib64/libm-2.12.so]
- 2,654,002,973  clm.c:mus_src [/home/bil/snd-16/snd]
- 2,216,029,830  s7.c:find_symbol_or_bust [/home/bil/snd-16/snd]
- 2,051,926,172  s7.c:gc [/home/bil/snd-16/snd]
-
-2-Jul-12:
-152,015,041,884
-15,958,491,763  ???:sin [/lib64/libm-2.12.so]
-14,742,080,012  io.c:mus_read_any_1 [/home/bil/snd-16/snd]
-10,457,919,006  s7.c:eval [/home/bil/snd-16/snd]
- 9,312,647,839  snd-edits.c:channel_local_maxamp [/home/bil/snd-16/snd]
- 8,913,093,185  snd-sig.c:direct_filter [/home/bil/snd-16/snd]
- 8,725,479,212  run.c:eval_ptree [/home/bil/snd-16/snd]
- 7,219,930,929  io.c:mus_write_1 [/home/bil/snd-16/snd]
- 4,366,174,949  s7.c:eval'2 [/home/bil/snd-16/snd]
- 3,042,551,502  clm.c:mus_src [/home/bil/snd-16/snd]
- 2,960,895,840  clm.c:mus_fir_filter [/home/bil/snd-16/snd]
- 2,762,641,235  clm.c:mus_out_any_to_file [/home/bil/snd-16/snd]
- 2,745,046,475  ???:cos [/lib64/libm-2.12.so]
- 2,227,836,598  s7.c:find_symbol_or_bust [/home/bil/snd-16/snd]
- 1,839,006,887  s7.c:gc [/home/bil/snd-16/snd]
- 1,306,950,910  run.c:eval_ptree'2 [/home/bil/snd-16/snd]
- 1,273,733,564  ???:t2_32 [/home/bil/snd-16/snd]
- 1,259,047,832  clm.c:mus_formant_bank [/home/bil/snd-16/snd]
- 1,204,213,789  snd-edits.c:next_sample_value [/home/bil/snd-16/snd]
- 1,129,624,275  clm.c:mus_ssb_am_unmodulated [/home/bil/snd-16/snd]
- 1,116,765,922  clm.c:mus_phase_vocoder_with_editors [/home/bil/snd-16/snd]
+ 2,654,002,973  clm.c:mus_src [/home/bil/snd-17/snd]
+ 2,216,029,830  s7.c:find_symbol_or_bust [/home/bil/snd-17/snd]
+ 2,051,926,172  s7.c:gc [/home/bil/snd-17/snd]
 
 6-Jul-12:
 314,557,435,854
-96,266,822,080  s7.c:eval [/home/bil/snd-16/snd]
-20,140,459,790  s7.c:find_symbol_or_bust [/home/bil/snd-16/snd]
+96,266,822,080  s7.c:eval [/home/bil/snd-17/snd]
+20,140,459,790  s7.c:find_symbol_or_bust [/home/bil/snd-17/snd]
 15,094,536,285  ???:sin [/lib64/libm-2.12.so]
-14,561,228,879  io.c:mus_read_any_1 [/home/bil/snd-16/snd]
-13,267,844,138  s7.c:gc [/home/bil/snd-16/snd]
-10,735,806,413  s7.c:s7_make_real [/home/bil/snd-16/snd]
- 9,597,104,099  snd-edits.c:channel_local_maxamp [/home/bil/snd-16/snd]
- 8,903,732,430  snd-sig.c:direct_filter [/home/bil/snd-16/snd]
- 8,756,184,253  s7.c:eval'2 [/home/bil/snd-16/snd]
- 6,939,439,659  io.c:mus_write_1 [/home/bil/snd-16/snd]
- 4,221,129,319  s7.c:g_add [/home/bil/snd-16/snd]
- 3,790,496,511  s7.c:g_multiply_2 [/home/bil/snd-16/snd]
- 2,960,895,524  clm.c:mus_fir_filter [/home/bil/snd-16/snd]
- 2,866,346,964  s7.c:g_equal_2 [/home/bil/snd-16/snd]
- 2,647,149,349  clm.c:mus_src [/home/bil/snd-16/snd]
- 2,373,255,704  s7.c:g_add_2 [/home/bil/snd-16/snd]
- 2,365,017,452  s7.c:g_add_1s [/home/bil/snd-16/snd]
+14,561,228,879  io.c:mus_read_any_1 [/home/bil/snd-17/snd]
+13,267,844,138  s7.c:gc [/home/bil/snd-17/snd]
+10,735,806,413  s7.c:s7_make_real [/home/bil/snd-17/snd]
+ 9,597,104,099  snd-edits.c:channel_local_maxamp [/home/bil/snd-17/snd]
+ 8,903,732,430  snd-sig.c:direct_filter [/home/bil/snd-17/snd]
+ 8,756,184,253  s7.c:eval'2 [/home/bil/snd-17/snd]
+ 6,939,439,659  io.c:mus_write_1 [/home/bil/snd-17/snd]
+ 4,221,129,319  s7.c:g_add [/home/bil/snd-17/snd]
+ 3,790,496,511  s7.c:g_multiply_2 [/home/bil/snd-17/snd]
+ 2,960,895,524  clm.c:mus_fir_filter [/home/bil/snd-17/snd]
+ 2,866,346,964  s7.c:g_equal_2 [/home/bil/snd-17/snd]
+ 2,647,149,349  clm.c:mus_src [/home/bil/snd-17/snd]
+ 2,373,255,704  s7.c:g_add_2 [/home/bil/snd-17/snd]
+ 2,365,017,452  s7.c:g_add_1s [/home/bil/snd-17/snd]
  2,014,711,657  ???:cos [/lib64/libm-2.12.so]
 
 23-Apr-13:
 52,886,592,302
-6,697,050,795  s7.c:eval [/home/bil/snd-16/snd]
+6,697,050,795  s7.c:eval [/home/bil/snd-17/snd]
 6,228,616,918  ???:sin [/lib64/libm-2.12.so]
-2,546,631,823  clm.c:mus_src [/home/bil/snd-16/snd]
+2,546,631,823  clm.c:mus_src [/home/bil/snd-17/snd]
 2,496,647,180  ???:cos [/lib64/libm-2.12.so]
-2,176,750,987  s7.c:find_symbol_or_bust [/home/bil/snd-16/snd]
-1,263,726,083  s7.c:eval'2 [/home/bil/snd-16/snd]
-1,248,608,065  s7.c:gc [/home/bil/snd-16/snd]
-1,021,282,278  io.c:mus_read_any_1 [/home/bil/snd-16/snd]
-1,003,986,022  clm.c:mus_phase_vocoder_with_editors [/home/bil/snd-16/snd]
-  933,290,098  clm.c:mus_formant_bank [/home/bil/snd-16/snd]
-  911,248,552  clm.c:fir_8 [/home/bil/snd-16/snd]
-  885,305,356  ???:t2_32 [/home/bil/snd-16/snd]
-  796,412,317  snd-edits.c:channel_local_maxamp [/home/bil/snd-16/snd]
-  785,981,295  ???:t2_64 [/home/bil/snd-16/snd]
-  693,360,038  clm.c:run_hilbert [/home/bil/snd-16/snd]
-  507,150,000  clm.c:mus_formant_bank_with_inputs [/home/bil/snd-16/snd]
-  459,853,855  clm.c:mus_src_20 [/home/bil/snd-16/snd]
-  449,476,048  ???:n1_64 [/home/bil/snd-16/snd]
-  444,970,752  io.c:mus_write_1 [/home/bil/snd-16/snd]
-  428,928,818  float-vector.c:g_float-vector_add [/home/bil/snd-16/snd]
+2,176,750,987  s7.c:find_symbol_or_bust [/home/bil/snd-17/snd]
+1,263,726,083  s7.c:eval'2 [/home/bil/snd-17/snd]
+1,248,608,065  s7.c:gc [/home/bil/snd-17/snd]
+1,021,282,278  io.c:mus_read_any_1 [/home/bil/snd-17/snd]
+1,003,986,022  clm.c:mus_phase_vocoder_with_editors [/home/bil/snd-17/snd]
+  933,290,098  clm.c:mus_formant_bank [/home/bil/snd-17/snd]
+  911,248,552  clm.c:fir_8 [/home/bil/snd-17/snd]
+  885,305,356  ???:t2_32 [/home/bil/snd-17/snd]
+  796,412,317  snd-edits.c:channel_local_maxamp [/home/bil/snd-17/snd]
+  785,981,295  ???:t2_64 [/home/bil/snd-17/snd]
+  693,360,038  clm.c:run_hilbert [/home/bil/snd-17/snd]
+  507,150,000  clm.c:mus_formant_bank_with_inputs [/home/bil/snd-17/snd]
+  459,853,855  clm.c:mus_src_20 [/home/bil/snd-17/snd]
+  449,476,048  ???:n1_64 [/home/bil/snd-17/snd]
+  444,970,752  io.c:mus_write_1 [/home/bil/snd-17/snd]
+  428,928,818  float-vector.c:g_float-vector_add [/home/bil/snd-17/snd]
 
 27-Apr-14:
 35,390,341,125
@@ -46794,28 +46760,6 @@ callgrind_annotate --auto=yes callgrind.out.<pid> > hi
   338,359,320  clm.c:run_hilbert [/home/bil/gtk-snd/snd]
   327,141,926  clm.c:fb_many_with_amps_c1_c2 [/home/bil/gtk-snd/snd]
 
-14-Aug-14:
-35,133,061,231
-5,365,681,646  s7.c:eval [/home/bil/gtk-snd/snd]
-2,256,581,832  ???:sin [/lib64/libm-2.12.so]
-2,050,537,059  ???:cos [/lib64/libm-2.12.so]
-1,266,976,906  clm.c:fir_ge_20 [/home/bil/gtk-snd/snd]
-1,095,141,759  clm.c:mus_src [/home/bil/gtk-snd/snd]
-  901,140,028  ???:t2_32 [/home/bil/gtk-snd/snd]
-  795,199,572  s7.c:gc [/home/bil/gtk-snd/snd]
-  720,395,914  ???:t2_64 [/home/bil/gtk-snd/snd]
-  648,414,838  clm.c:mus_phase_vocoder_with_editors [/home/bil/gtk-snd/snd]
-  592,801,688  clm.c:fb_one_with_amps_c1_c2 [/home/bil/gtk-snd/snd]
-  573,460,056  snd-edits.c:channel_local_maxamp [/home/bil/gtk-snd/snd]
-  557,892,664  io.c:mus_read_any_1 [/home/bil/gtk-snd/snd]
-  452,423,080  s7.c:eval'2 [/home/bil/gtk-snd/snd]
-  435,066,604  ???:n1_64 [/home/bil/gtk-snd/snd]
-  414,027,948  vct.c:g_vct_add [/home/bil/gtk-snd/snd]
-  405,194,494  clm.c:mus_src_to_buffer [/home/bil/gtk-snd/snd]
-  379,588,776  clm.c:mus_env_linear [/home/bil/gtk-snd/snd]
-  338,359,320  clm.c:run_hilbert [/home/bil/gtk-snd/snd]
-  327,141,926  clm.c:fb_many_with_amps_c1_c2 [/home/bil/gtk-snd/snd]
-
 15-Feb-15:
 33,895,270,323
 5,048,563,075  s7.c:eval [/home/bil/motif-snd/snd]
diff --git a/snd.h b/snd.h
index 2d4bcd2..5f4a0d3 100644
--- a/snd.h
+++ b/snd.h
@@ -53,11 +53,11 @@
 
 #include "snd-strings.h"
 
-#define SND_DATE "24-Oct-16"
+#define SND_DATE "31-Oct-16"
 #ifndef SND_VERSION
-#define SND_VERSION "16.9"
+#define SND_VERSION "17.0"
 #endif
-#define SND_MAJOR_VERSION "16"
-#define SND_MINOR_VERSION "9"
+#define SND_MAJOR_VERSION "17"
+#define SND_MINOR_VERSION "0"
 
 #endif
diff --git a/snd.html b/snd.html
index 1f4f3bd..cdf04d6 100644
--- a/snd.html
+++ b/snd.html
@@ -125,7 +125,7 @@ using either <a href="s7.html">s7</a> (included in the Snd sources),
 <a href="http://www.ruby-lang.org">Ruby</a>, or
 <a href="http://www.sourceforge.net/projects/fth">Forth</a>.
 Snd is free; the code is available via anonymous ftp as 
-<a href="ftp://ccrma-ftp.stanford.edu/pub/Lisp/snd-16.tar.gz">snd-16.tar.gz</a>.
+<a href="ftp://ccrma-ftp.stanford.edu/pub/Lisp/snd-17.tar.gz">snd-17.tar.gz</a>.
 Snd has a <a href="http://ccrma.stanford.edu/software/snd/">home page</a>
 and a CVS <a href="http://snd.cvs.sourceforge.net/snd/cvs-snd">repository</a>, and
 is included in <a href="http://ccrma.stanford.edu/planetccrma/software/">PlanetCCRMA</a>.
diff --git a/sndclm.html b/sndclm.html
index 3bb7ff7..90c8559 100644
--- a/sndclm.html
+++ b/sndclm.html
@@ -2859,9 +2859,9 @@ lambda: ( -- )
 (<a class=quiet href="sndscm.html#wsdoc">with-sound</a> ()
   (let* ((duty-factor .25) ; ratio of pulse duration to pulse period
 	 (p-on (<em class=red>make-pulse-train</em> 100 0.5))
-	 (p-off (<em class=red>make-pulse-train</em> 100 -0.5 (* 2 pi (- 1.0 duty-factor))))
-	 (sum 0.0))
-    (do ((i 0 (+ i 1)))
+	 (p-off (<em class=red>make-pulse-train</em> 100 -0.5 (* 2 pi (- 1.0 duty-factor)))))
+    (do ((sum 0.0)
+         (i 0 (+ i 1)))
 	((= i 44100))
       (set! sum (+ sum (<em class=red>pulse-train</em> p-on) (<em class=red>pulse-train</em> p-off)))
       (<a class=quiet href="#outa">outa</a> i sum))))
@@ -4360,11 +4360,9 @@ lambda: ( -- )
 	      (csin (<a class=quiet href="#oscil">oscil</a> sin-car))
 	      (yh (<a class=quiet href="sndscm.html#hilberttransform">hilbert-transform</a> hlb y))
   	      (yd (<a class=quiet href="#delay">delay</a> dly y)))
-          (if (> freq 0.0)
-	      (- (* ccos yd) ; shift up
-	         (* csin yh))
-	      (+ (* ccos yd) ; shift down
-	         (* csin yh))))))))
+          (if ((> freq 0.0) - +)
+	       (* ccos yd)
+               (* csin yh)))))))
 
 (<a class=quiet href="sndscm.html#definstrument">definstrument</a> (shift-pitch beg dur file freq (order 40))
   (let* ((st (<a class=quiet href="#secondstosamples">seconds->samples</a> beg))
@@ -5079,12 +5077,17 @@ Another instrument based on similar ideas is:</p>
 <pre class="indented">
 (<a class=quiet href="sndscm.html#definstrument">definstrument</a> (attract beg dur amp c) ; c from 1 to 10 or so
   ;; by James McCartney, from CMJ vol 21 no 3 p 6
-  (let* ((st (<a class=quiet href="#secondstosamples">seconds->samples</a> beg))
-	 (nd (+ st (<a class=quiet href="#secondstosamples">seconds->samples</a> dur)))
-	 (a .2) (b .2) (dt .04)
-	 (scale (/ (* .5 amp) c))
-	 (x1 0.0) (x -1.0) (y 0.0) (z 0.0))
-    (do ((i st (+ i 1)))
+  (let ((st (<a class=quiet href="#secondstosamples">seconds->samples</a> beg)))
+    (do ((nd (+ st (<a class=quiet href="#secondstosamples">seconds->samples</a> dur)))
+         (a .2) 
+         (b .2) 
+         (dt .04)
+         (scale (/ (* .5 amp) c))
+         (x1 0.0) 
+         (x -1.0) 
+         (y 0.0) 
+         (z 0.0)
+         (i st (+ i 1)))
         ((= i nd))
      (set! x1 (- x (* dt (+ y z))))
      (set! y (+ y (* dt (+ x (* a y)))))
@@ -5729,9 +5732,9 @@ The Hilbert transform can be implemented with an fir-filter:
 <pre class="indented">
 (define* (make-hilbert-transform (len 30))
   (let* ((arrlen (+ 1 (* 2 len)))
-         (arr (make-float-vector arrlen))
-         (lim (if (even? len) len (+ 1 len))))
-    (do ((i (- len) (+ i 1)))
+         (arr (make-float-vector arrlen)))
+    (do ((lim (if (even? len) len (+ 1 len)))
+         (i (- len) (+ i 1)))
         ((= i lim))
       (let ((k (+ i len))
             (denom (* pi i))
@@ -6301,18 +6304,18 @@ old analog tapes — the reverb slightly precedes the direct signal:
 
 <pre class="indented">
 (define (later file dly rev)
-  (let* ((allpass1 (<em class=red>make-all-pass</em> -0.700 0.700 1051))
-         (allpass2 (<em class=red>make-all-pass</em> -0.700 0.700  337))
-         (allpass3 (<em class=red>make-all-pass</em> -0.700 0.700  113))
-         (comb1 (make-comb 0.742 4799))
-         (comb2 (make-comb 0.733 4999))
-         (comb3 (make-comb 0.715 5399))
-         (comb4 (make-comb 0.697 5801))
-         (len (floor (+ *clm-srate* (mus-sound-framples file))))
-         (rd (make-readin file)) ; the direct signal (via sound-let below)
-         (d (make-delay dly))    ; this delays the direct signal
-         (backup (min 4799 dly)))
-    (do ((i 0 (+ i 1)))
+  (let ((allpass1 (<em class=red>make-all-pass</em> -0.700 0.700 1051))
+        (allpass2 (<em class=red>make-all-pass</em> -0.700 0.700  337))
+        (allpass3 (<em class=red>make-all-pass</em> -0.700 0.700  113))
+        (comb1 (make-comb 0.742 4799))
+        (comb2 (make-comb 0.733 4999))
+        (comb3 (make-comb 0.715 5399))
+        (comb4 (make-comb 0.697 5801))
+        (len (floor (+ *clm-srate* (mus-sound-framples file))))
+        (rd (make-readin file))  ; the direct signal (via sound-let below)
+        (d (make-delay dly)))    ; this delays the direct signal
+    (do ((backup (min 4799 dly))
+         (i 0 (+ i 1)))
         ((= i len))
       (let* ((inval (readin rd))
              (allpass-sum (<em class=red>all-pass</em> allpass3 
@@ -7575,9 +7578,9 @@ Here is one that uses file->sample to mix in a sound file (there are a zillio
 (define (simple-f2s beg dur amp file)
   (let* ((start (<a class=quiet href="#secondstosamples">seconds->samples</a> beg))
          (end (+ start (<a class=quiet href="#secondstosamples">seconds->samples</a> dur)))
-         (fil (<em class=red>make-file->sample</em> file))
-         (ctr 0))
-    (do ((i start (+ i 1))) ((= i end))
+         (fil (<em class=red>make-file->sample</em> file)))
+    (do ((ctr 0) 
+         (i start (+ i 1))) ((= i end))
       (<a class=quiet href="#out-any">out-any</a> i (* amp (<em class=red>file->sample</em> fil ctr 0)) 0)
       (set! ctr (+ 1 ctr)))))
 </pre>
diff --git a/sndins/samples/agn.scm b/sndins/samples/agn.scm
old mode 100644
new mode 100755
diff --git a/sndins/samples/fmviolin.scm b/sndins/samples/fmviolin.scm
old mode 100644
new mode 100755
diff --git a/sndlib.html b/sndlib.html
index c35b2a1..048ab0d 100644
--- a/sndlib.html
+++ b/sndlib.html
@@ -316,9 +316,9 @@ requested by mus_audio_open_output with channels interleaved.</p>
 music V implementation, and clm2xen.c ties these into the languages supported by the
 xen package (currently s7, Ruby, and Forth).  The
 primary clm documentation (which describes both the Scheme and Common Lisp implementations)
-is clm.html found in clm-5.tar.gz or sndclm.html in snd-16.tar.gz alongside sndlib at ccrma-ftp.
+is clm.html found in clm-5.tar.gz or sndclm.html in snd-17.tar.gz alongside sndlib at ccrma-ftp.
 The simplest way to try these out is to load them into Snd; see extsnd.html,
-<a href="sndscm.html#exampdoc">examp.scm</a>, and <a href="sndscm.html#sndtestdoc">snd-test.scm</a> in snd-16.tar.gz for more details.
+<a href="sndscm.html#exampdoc">examp.scm</a>, and <a href="sndscm.html#sndtestdoc">snd-test.scm</a> in snd-17.tar.gz for more details.
 The following briefly describes the C calls (see clm.h).
 </p>
 
diff --git a/sndscm.html b/sndscm.html
index 4fe44bc..e501480 100644
--- a/sndscm.html
+++ b/sndscm.html
@@ -8026,15 +8026,15 @@ If this worked in general, we could use it to speed up our search by following a
 
 <pre class="indented">
 ;; this starts at the current min and marches to an n+1 min
-(let ((n 3)
-      (phases (vector 0.0 0.0 1.0)))
-  (do ((x 0.1 (+ x .1)))
-      ((>= x 1.0))
-    (let ((p (fpsap x 0 n 1000 0.1 50 #f #t phases))) ; args may change without warning.
-      (format () ";~A: ~A~%" x p)
-      (do ((k 0 (+ k 1)))
-	  ((= k n))
-	(set! (phases k) (modulo (p k) 2.0))))))
+(do ((n 3)
+     (phases (vector 0.0 0.0 1.0)))
+     (x 0.1 (+ x .1)))
+    ((>= x 1.0))
+  (let ((p (fpsap x 0 n 1000 0.1 50 #f #t phases))) ; args may change without warning.
+    (format () ";~A: ~A~%" x p)
+    (do ((k 0 (+ k 1)))
+        ((= k n))
+      (set! (phases k) (modulo (p k) 2.0)))))
 </pre>
 
 <p>
@@ -11677,20 +11677,20 @@ by calling the oscils and whatnot directly in the with-sound body:
 	((= i 12))
       (set! (oscs i) (<a class=quiet href="sndclm.html#make-oscil">make-oscil</a> :frequency 0.0)))
     (<a class=quiet href="#wsdoc">with-sound</a> (:srate 44100)
-     (do ((samp 0 (+ 1 samp)))
+     (do ((samp 0 (+ 1 samp))
+          (sum 0.0 0.0))
          ((= samp 300000))
-       (let ((sum 0.0))
-	 (do ((i 0 (+ i 1)))
-	     ((= i 12))
-	   (let ((loc (+ x (/ i 12.0))))  ; location of current oscil in overall trajectory
-	     (if (> loc 1.0) (set! loc (- loc 1.0)))
-	     (set! sum (+ sum (* (let ((y (- 4.0 (* 8.0 loc))))
-	                           (exp (* -0.5 y y)))  ; Gaussian normal curve as amplitude envelope
-			         (<a class=quiet href="sndclm.html#oscil">oscil</a> (oscs i) 
-			                (<a class=quiet href="sndclm.html#hztoradians">hz->radians</a> (expt 2.0 (+ 2 (* loc 12.0))))))))))
-                                        ;; (- 1.0 loc) to go down
-	 (set! x (+ x incr))
-	 (<a class=quiet href="sndclm.html#outa">outa</a> samp (* .1 sum)))))))
+       (do ((i 0 (+ i 1)))
+           ((= i 12))
+         (let ((loc (+ x (/ i 12.0))))  ; location of current oscil in overall trajectory
+           (if (> loc 1.0) (set! loc (- loc 1.0)))
+           (set! sum (+ sum (* (let ((y (- 4.0 (* 8.0 loc))))
+                                 (exp (* -0.5 y y)))  ; Gaussian normal curve as amplitude envelope
+                               (<a class=quiet href="sndclm.html#oscil">oscil</a> (oscs i) 
+                                      (<a class=quiet href="sndclm.html#hztoradians">hz->radians</a> (expt 2.0 (+ 2 (* loc 12.0))))))))))
+                                      ;; (- 1.0 loc) to go down
+       (set! x (+ x incr))
+       (<a class=quiet href="sndclm.html#outa">outa</a> samp (* .1 sum))))))
 </pre>
 
 <img class="indented" src="pix/shepard.png" alt="shepard tone spectrum" >
diff --git a/stuff.scm b/stuff.scm
index 0ebfb6a..c006453 100644
--- a/stuff.scm
+++ b/stuff.scm
@@ -95,16 +95,16 @@
 
 
 ;;; ----------------
-(define (first obj)  (if (sequence? obj) (obj 0) (error "first argument, ~S, is not a sequence" obj)))
-(define (second obj) (if (sequence? obj) (obj 1) (error "second argument, ~S, is not a sequence" obj)))
-(define (third obj)  (if (sequence? obj) (obj 2) (error "third argument, ~S, is not a sequence" obj)))
-(define (fourth obj) (if (sequence? obj) (obj 3) (error "fourth argument, ~S, is not a sequence" obj)))
-(define (fifth obj)  (if (sequence? obj) (obj 4) (error "fifth argument, ~S, is not a sequence" obj)))
-(define (sixth obj)  (if (sequence? obj) (obj 5) (error "sixth argument, ~S, is not a sequence" obj)))
-(define (seventh obj)(if (sequence? obj) (obj 6) (error "seventh argument, ~S, is not a sequence" obj)))
-(define (eighth obj) (if (sequence? obj) (obj 7) (error "eighthment, ~S, is not a sequence" obj)))
-(define (ninth obj)  (if (sequence? obj) (obj 8) (error "ninth argument, ~S, is not a sequence" obj)))
-(define (tenth obj)  (if (sequence? obj) (obj 9) (error "tenth argument, ~S, is not a sequence" obj)))
+(define (first obj)  (if (sequence? obj) (obj 0) (error 'wrong-type-arg "first argument, ~S, is not a sequence" obj)))
+(define (second obj) (if (sequence? obj) (obj 1) (error 'wrong-type-arg "second argument, ~S, is not a sequence" obj)))
+(define (third obj)  (if (sequence? obj) (obj 2) (error 'wrong-type-arg "third argument, ~S, is not a sequence" obj)))
+(define (fourth obj) (if (sequence? obj) (obj 3) (error 'wrong-type-arg "fourth argument, ~S, is not a sequence" obj)))
+(define (fifth obj)  (if (sequence? obj) (obj 4) (error 'wrong-type-arg "fifth argument, ~S, is not a sequence" obj)))
+(define (sixth obj)  (if (sequence? obj) (obj 5) (error 'wrong-type-arg "sixth argument, ~S, is not a sequence" obj)))
+(define (seventh obj)(if (sequence? obj) (obj 6) (error 'wrong-type-arg "seventh argument, ~S, is not a sequence" obj)))
+(define (eighth obj) (if (sequence? obj) (obj 7) (error 'wrong-type-arg "eighthment, ~S, is not a sequence" obj)))
+(define (ninth obj)  (if (sequence? obj) (obj 8) (error 'wrong-type-arg "ninth argument, ~S, is not a sequence" obj)))
+(define (tenth obj)  (if (sequence? obj) (obj 9) (error 'wrong-type-arg "tenth argument, ~S, is not a sequence" obj)))
 
 
 (define iota 
@@ -203,7 +203,7 @@
 	  ,expr))
       (if (and (null? vars) (null? expr))
 	  (cons 'begin body)
-	  (error "multiple-value-set! vars/exprs messed up"))))
+	  (error 'syntax-error "multiple-value-set! vars/exprs messed up"))))
 
 
 
@@ -356,7 +356,7 @@
   `(case (symbol ,selector)             ; case with string constant keys
      ,@(map (lambda (clause)
 	      (if (pair? (car clause))
-		  `(,(map symbol (car clause)) ,@(cdr clause))
+		  (cons (map symbol (car clause)) (cdr clause))
 		  clause))
 	    clauses)))
 
@@ -379,7 +379,7 @@
     (lambda (table)
       (if (hash-table? table)
 	  (map values table)
-	  (error "hash-table->alist argument, ~A, is not a hash-table" table)))))
+	  (error 'wrong-type-arg "hash-table->alist argument, ~A, is not a hash-table" table)))))
 
 (define merge-hash-tables 
   (let ((documentation "(merge-hash-tables . tables) returns a new hash-table with the contents of all the tables"))
@@ -514,8 +514,8 @@ If func approves of one, index-if returns the index that gives that element's po
 			  (if (sequence? x) (full-find-if-1 x))))
 		    seq))
 		 #f))
-	      (error "full-find-if second argument, ~A, is not a sequence" sequence))
-	  (error "full-find-if first argument, ~A, is not a procedure of one argument" f)))))
+	      (error 'wrong-type-arg "full-find-if second argument, ~A, is not a sequence" sequence))
+	  (error 'wrong-type-arg "full-find-if first argument, ~A, is not a procedure of one argument" f)))))
 
 (define full-count-if 
   (let ((documentation "(full-count-if func sequence) searches sequence, and recursively any sequences it contains, returning the number of elements that satisfy func"))
@@ -639,8 +639,8 @@ Unlike full-find-if, safe-find-if can handle any circularity in the sequences.")
 	  (let ((count 0))
 	    (safe-find-if (lambda (x) (if (f x) (set! count (+ count 1))) #f) sequence)
 	    count)
-	  (error "safe-count-if first argument, ~A, should be a function" f))
-      (error "safe-count-if second argument, ~A, should be a sequence" sequence)))
+	  (error 'wrong-type-arg "safe-count-if first argument, ~A, should be a function" f))
+      (error 'wrong-type-arg "safe-count-if second argument, ~A, should be a sequence" sequence)))
 
 
 
@@ -675,7 +675,7 @@ Unlike full-find-if, safe-find-if can handle any circularity in the sequences.")
 					    (set! lst (cons obj lst))))
 				      (car sequences)))
 			(reverse lst)))
-	  (error "intersection arguments should be sequences: ~A" sequences)))))
+	  (error 'wrong-type-arg "intersection arguments should be sequences: ~A" sequences)))))
   
 (define union 
   (let ((documentation "(union type . sequences) returns via type the union of the sequences:\n\
@@ -770,7 +770,7 @@ Unlike full-find-if, safe-find-if can handle any circularity in the sequences.")
 	       (aritable? p 1))
 	  (let ((e (funclet ->predicate)))
 	    (set! (e 'predicates) (cons p (e 'predicates))))
-	  (error "add-predicate argument, ~A, is not a procedure of one argument" p)))))
+	  (error 'wrong-type-arg "add-predicate argument, ~A, is not a procedure of one argument" p)))))
 
 (define typeq? 
   (let ((documentation "(typeq? . objs) returns #t if all objs have the same type (as determined by ->predicate)"))
@@ -788,7 +788,7 @@ Unlike full-find-if, safe-find-if can handle any circularity in the sequences.")
 			  (if (= (length (car clause)) 1)
 			      `((,(caar clause) ,obj) ,@(cdr clause))
 			      `((or ,@(map (lambda (type)
-					     `(,type ,obj))
+					     (list type obj))
 					   (car clause)))
 				,@(cdr clause)))))
 		    clauses)))))
@@ -826,9 +826,9 @@ Unlike full-find-if, safe-find-if can handle any circularity in the sequences.")
 
 (define (log-n-of n . ints)   ; return the bits on in exactly n of ints
   (if (not (integer? n))
-      (error "log-n-of first argument, ~A, should be an integer" n)
+      (error 'wrong-type-arg "log-n-of first argument, ~A, should be an integer" n)
       (if (not (every? integer? ints))
-	  (error "log-n-of ints arguments, ~A, should all be integers" ints)
+	  (error 'wrong-type-arg "log-n-of ints arguments, ~A, should all be integers" ints)
 	  (let ((len (length ints)))
 	    (cond ((= len 0) (if (= n 0) -1 0))
 		  ((= n 0)   (lognot (apply logior ints)))
@@ -980,7 +980,7 @@ Unlike full-find-if, safe-find-if can handle any circularity in the sequences.")
        (let ((gf ((car args) ',name))) ; get local definition
 	 (if (not (eq? gf ,name))      ; avoid infinite recursion
              (apply gf args)
-	     (error "attempt to call generic function wrapper recursively"))))))
+	     (error 'syntax-error "attempt to call generic function wrapper recursively"))))))
 
 (define-macro (define-slot-accessor name slot)
   `(define ,name (dilambda 
@@ -1034,7 +1034,7 @@ Unlike full-find-if, safe-find-if can handle any circularity in the sequences.")
 		 (set! methods (cons next-method methods)))))
 	 (obj 'inherited))
 	(reverse methods))
-      (error "all-methods 'method argument should be a symbol: ~A" method)))
+      (error 'wrong-type-arg "all-methods 'method argument should be a symbol: ~A" method)))
 
 
 
@@ -1085,9 +1085,9 @@ Unlike full-find-if, safe-find-if can handle any circularity in the sequences.")
   (let ((documentation "(n-choose-k n k) returns the binomial coefficient C(N,K)"))
     (lambda (n k)
       (if (not (integer? n))
-	  (error "n-choose-k 'n argument, ~A, should be an integer" n)
+	  (error 'wrong-type-arg "n-choose-k 'n argument, ~A, should be an integer" n)
 	  (if (not (integer? k))
-	      (error "n-choose-k 'k argument, ~A, should be an integer" k)
+	      (error 'wrong-type-arg "n-choose-k 'k argument, ~A, should be an integer" k)
 	      (let ((mn (min k (- n k))))
 		(if (or (negative? mn)
 			(negative? n))
@@ -1121,7 +1121,7 @@ Unlike full-find-if, safe-find-if can handle any circularity in the sequences.")
 	(proc (openlet
 	       (inlet 'read (lambda (p)
 			      (v (set! i (+ i 1))))))))
-      (error "call-with-input-vector first argument, ~A, should be a vector" v)))
+      (error 'wrong-type-arg "call-with-input-vector first argument, ~A, should be a vector" v)))
 
 (define (call-with-output-vector proc)
   (let* ((size 1)
@@ -1150,7 +1150,7 @@ Unlike full-find-if, safe-find-if can handle any circularity in the sequences.")
 
 (define* (flatten-let e (n -1))
   (if (not (let? e))
-      (error "flatten-let argument, ~A, is not a let" e)
+      (error 'wrong-type-arg "flatten-let argument, ~A, is not a let" e)
       (do ((slots ())
 	   (pe e (outlet pe))
 	   (i 0 (+ i 1)))
@@ -1197,7 +1197,7 @@ Unlike full-find-if, safe-find-if can handle any circularity in the sequences.")
     (for-each (lambda (var)
 		(format *stderr* "~S: ~S~%" (car var) (cdr var)))
 	      e)
-    `(begin , at body)))
+    (cons 'begin body)))
 
 ;; now (let ((a 1) (b 2)) (list (set! a 3) (reflective-probe b))) -> '(3 2)
 ;; and (let ((a 1) (b 2)) (list (set! a 3) (reflective-probe) b)) -> '(3 () 2)
@@ -1454,7 +1454,7 @@ Unlike full-find-if, safe-find-if can handle any circularity in the sequences.")
     (if (pair? v)
 	`(reactive-let ((,(caar v) ,(cadar v)))
 	   ,(add-let (cdr v)))
-	`(begin , at body))))
+	(cons 'begin body))))
 
 ;; reactive-letrec is not useful: lambdas already react and anything else is an error (use of #<undefined>)
 
@@ -2057,12 +2057,12 @@ Unlike full-find-if, safe-find-if can handle any circularity in the sequences.")
 
 (define* (make-directory-iterator name (recursive #t))
   (if (not (string? name))
-      (error "directory name should be a string: ~S" name)
+      (error 'wrong-type-arg "directory name should be a string: ~S" name)
       (make-iterator
        (with-let (sublet *libc* :name name :recursive recursive)
 	 (let ((dir (opendir name)))
 	   (if (equal? dir NULL)
-	       (error "can't open ~S: ~S" name (strerror (errno)))
+	       (error 'io-error "can't open ~S: ~S" name (strerror (errno)))
 	       (let ((iterator? #t))
 		 (define reader
 		   (let ((dirs ())
diff --git a/tankrev.scm b/tankrev.scm
index 6476ecb..6a3e35b 100644
--- a/tankrev.scm
+++ b/tankrev.scm
@@ -34,33 +34,34 @@
 (define (make-mod-all-pass siz diffusion)
   (make-all-pass diffusion (* -1 diffusion) siz :max-size (* 2 siz)))
 
-;; To enter taps and sizes as prescribed in Dattorros article directly:
-
 (define (smpls->samples smpl)
   (let ((FS 29761))			;orig. srate
     (round (* (/ *clm-srate* FS) smpl))))
 
+;; To enter taps and sizes as prescribed in Dattorros article directly:
+
 (define* (tank-reverb (predelay 0.0) (decay 0.5) (bandwidth 0.9995) (damping 0.005) (reverb-decay-time 1.0))
   "(tank-reverb (predelay 0.0) (decay 0.5) (bandwidth 0.9995) (damping 0.005) (reverb-decay-time 1.0))"
 
   ;; try setting 'decay = 1.0 for a nice 'freeze' effect
-
+  
   (let ((decay-diffusion-1 0.70)
 	(decay-diffusion-2 0.50)
 	(input-diffusion-1 0.750)
 	(input-diffusion-2 0.625)
 	(excursion (smpls->samples 16)))
+    
     (let ((len (+ (framples *reverb*) (seconds->samples reverb-decay-time)))
 	  (predly (make-delay (seconds->samples predelay)))
 	  (lp1 (make-one-pole bandwidth (* -1 (- 1 bandwidth))))
-
+	  
 	  ;; input diffusers = series of 4 all-pass-filters (mono input):
 	  (input-diffusers (make-all-pass-bank
-	  		    (vector (make-diffuser (smpls->samples 142) input-diffusion-1)
-	  			    (make-diffuser (smpls->samples 107) input-diffusion-1)
-	  			    (make-diffuser (smpls->samples 379) input-diffusion-2)
-	  			    (make-diffuser (smpls->samples 277) input-diffusion-2))))
-
+			    (vector (make-diffuser (smpls->samples 142) input-diffusion-1)
+				    (make-diffuser (smpls->samples 107) input-diffusion-1)
+				    (make-diffuser (smpls->samples 379) input-diffusion-2)
+				    (make-diffuser (smpls->samples 277) input-diffusion-2))))
+	  
 	  ;; tank, fig-of-eight in Dattorro's figure p. 662:
 	  (excursion_24 (make-oscil 1.0)) ;max 'Excursion' = 16 samples (FS=29761)
 	  (excursion_48 (make-oscil 0.707))
@@ -76,8 +77,26 @@
 	  (delay_59_63 (make-delay (smpls->samples 3163)))
 	  (dc-block-1 (make-filter 2 (float-vector 1 -1) (float-vector 0 -0.99)))
 	  (dc-block-2 (make-filter 2 (float-vector 1 -1) (float-vector 0 -0.99)))
-	  (tank_1 0.0) (tank_2 0.0))
-
+	  (tank_1 0.0) (tank_2 0.0)
+	  
+	  (smpl-266 (smpls->samples 266))
+	  (smpl-2974 (smpls->samples 2974))
+	  (smpl-1913 (smpls->samples 1913))
+	  (smpl-1996 (smpls->samples 1996))
+	  (smpl-1990 (smpls->samples 1990))
+	  (smpl-187 (smpls->samples 187))
+	  (smpl-1066 (smpls->samples 1066))
+	  
+	  (smpl-353 (smpls->samples 353))
+	  (smpl-3627 (smpls->samples 3627))
+	  (smpl-1228 (smpls->samples 1228))
+	  (smpl-2673 (smpls->samples 2673))
+	  (smpl-2111 (smpls->samples 2111))
+	  (smpl-335 (smpls->samples 335))
+	  (smpl-121 (smpls->samples 121))
+	  
+	  (smpl-8 (smpls->samples 8)))
+      
       (do ((i 0 (+ i 1)))
 	  ((= i len))
 	(let ((sig (all-pass-bank input-diffusers
@@ -86,40 +105,40 @@
 						   (ina i *reverb*))))))
 	  
 	  ;; add incoming signal to rotated tank:
-
+	  
 	  (set! tank_1 (delay delay_33_39
 			      (all-pass diffuser_31_33
 					(one-pole damper_30
 						  (delay delay_24_30
 							 (all-pass modallpass_23
 								   (filter dc-block-1 (+ sig (* decay tank_2)))
-								   (+ (smpls->samples 8)
-								      (* (smpls->samples 8) (oscil excursion_24)))))))))
+								   (+ smpl-8
+								      (* smpl-8 (oscil excursion_24)))))))))
 	  (set! tank_2 (delay delay_59_63
 			      (all-pass diffuser_55_59
 					(one-pole damper_54
 						  (delay delay_48_54
 							 (all-pass modallpass_46
 								   (filter dc-block-2 (+ sig (* decay tank_1)))
-								   (+ (smpls->samples 8)
-								      (* (smpls->samples 8) (oscil excursion_48)))))))))
+								   (+ smpl-8
+								      (* smpl-8 (oscil excursion_48)))))))))
 	  ;; tap reflections and output:
 	  (outa i 
-		(+ (* +0.6 (tap delay_48_54 (- (smpls->samples 266))))
-		   (* +0.6 (tap delay_48_54 (- (smpls->samples 2974))))
-		   (* -0.6 (tap diffuser_55_59 (- (smpls->samples 1913))))
-		   (* +0.6 (tap delay_59_63 (- (smpls->samples 1996))))
-		   (* -0.6 (tap delay_24_30 (- (smpls->samples 1990))))
-		   (* -0.6 (tap diffuser_31_33 (- (smpls->samples 187))))
-		   (* -0.6 (tap delay_33_39 (- (smpls->samples 1066))))))
+		(+ (* +0.6 (tap delay_48_54 smpl-266))
+		   (* +0.6 (tap delay_48_54 smpl-2974))
+		   (* -0.6 (tap diffuser_55_59 smpl-1913))
+		   (* +0.6 (tap delay_59_63 smpl-1996))
+		   (* -0.6 (tap delay_24_30 smpl-1990))
+		   (* -0.6 (tap diffuser_31_33 smpl-187))
+		   (* -0.6 (tap delay_33_39 smpl-1066))))
 	  (outb i 
-		(+ (* +0.6 (tap delay_24_30 (- (smpls->samples 353))))
-		   (* +0.6 (tap delay_24_30 (- (smpls->samples 3627))))
-		   (* -0.6 (tap diffuser_31_33 (- (smpls->samples 1228))))
-		   (* +0.6 (tap delay_33_39 (- (smpls->samples 2673))))
-		   (* -0.6 (tap delay_48_54 (- (smpls->samples 2111))))
-		   (* -0.6 (tap diffuser_55_59 (- (smpls->samples 335))))
-		   (* -0.6 (tap delay_59_63 (- (smpls->samples 121))))))
+		(+ (* +0.6 (tap delay_24_30 smpl-353))
+		   (* +0.6 (tap delay_24_30 smpl-3627))
+		   (* -0.6 (tap diffuser_31_33 smpl-1228))
+		   (* +0.6 (tap delay_33_39 smpl-2673))
+		   (* -0.6 (tap delay_48_54 smpl-2111))
+		   (* -0.6 (tap diffuser_55_59 smpl-335))
+		   (* -0.6 (tap delay_59_63 smpl-121))))
 	  )))))
 
 
@@ -160,3 +179,5 @@
 		  (outa i (* 0.3 sig) *reverb*)))))
 
 |#
+
+;(set! smpls->samples #f)
diff --git a/tools/gtk-header-diffs b/tools/gtk-header-diffs
index a52199d..7a91d8b 100755
--- a/tools/gtk-header-diffs
+++ b/tools/gtk-header-diffs
@@ -1,13 +1,13 @@
 #!/bin/csh -f
 
-set gtkolddir = /home/bil/test/gtk+-3.22.0
-set gtknewdir = /home/bil/test/gtk+-3.22.1
+set gtkolddir = /home/bil/test/gtk+-3.21.3
+set gtknewdir = /home/bil/test/gtk+-3.21.4
 set pangoolddir = /home/bil/test/pango-1.36.8
-set pangonewdir = /home/bil/test/pango-1.40.2
+set pangonewdir = /home/bil/test/pango-1.36.8
 set glibolddir = /home/bil/test/glib-2.39.3
-set glibnewdir = /home/bil/test/glib-2.49.6
+set glibnewdir = /home/bil/test/glib-2.39.3
 set cairoolddir = /home/bil/test/cairo-1.14.0
-set caironewdir = /home/bil/test/cairo-1.14.6
+set caironewdir = /home/bil/test/cairo-1.14.0
 
 set curdir = $cwd
 
diff --git a/tools/makegl.scm b/tools/makegl.scm
old mode 100755
new mode 100644
diff --git a/tools/makexg.scm b/tools/makexg.scm
old mode 100755
new mode 100644
index ab043ad..5d0214a
--- a/tools/makexg.scm
+++ b/tools/makexg.scm
@@ -21,7 +21,7 @@
 (define all-types ())
 
 ;;; preset some types that are getting confused
-(set! types (list "GdkEventMotion*" "gdouble*" "GdkEventAny*" "GdkEvent*" "gboolean*" "GdkWindow*"
+(set! types (list "GdkEventMotion*" "gdouble*" "GdkEventAny*" "GdkEvent*" "GdkWindow*"
 		  "cairo_t*" "cairo_font_options_t*" "PangoFontDescription*"))
 (set! all-types (list "GdkEventMotion*" "gdouble*" "GdkEventAny*" "GdkEvent*" "GdkWindow*"
 		      "cairo_t*" "cairo_font_options_t*" "PangoFontDescription*"))
@@ -141,7 +141,7 @@
 					;"GdkOverlapType" 
 	"GdkScrollDirection" "GdkSettingAction" ;"GdkVisibilityState"
 	"GdkWindowState" "GdkWindowType"
-	"GtkImageType" "GtkTreeModelFlags" "gint8" "gshort" "guint8" "lambda" "gboolean*"
+	"GtkImageType" "GtkTreeModelFlags" "gint8" "gshort" "guint8" "lambda"
 	
 	"time_t" ;"GtkWindowGroup*" 
 	;"GtkSettings*" ;"GdkDevice*" 
@@ -164,7 +164,7 @@
 					;"GdkOverlapType" 
 	"GdkScrollDirection" "GdkSettingAction" ;"GdkVisibilityState" 
 	"GdkWindowState" "GdkWindowType"
-	"GtkImageType" "GtkTreeModelFlags" "etc" "gshort"  "gboolean*"
+	"GtkImageType" "GtkTreeModelFlags" "etc" "gshort"
 	
 					;"GtkWindowGroup*" 
 	"time_t" ;"GtkSettings*" ;"GdkDevice*" 
@@ -823,26 +823,26 @@
 	 "event_func"
 	 (parse-args "GdkEvent* event lambda_data func_info" 'callback)
 	 'permanent)
-					;			(list 'GdkSpanFunc
-					;			      "void"
-					;			      "span_func"
-					;			      (parse-args "GdkSpan* span lambda_data func_info" 'callback)
-					;			      'temporary)
-					;			(list 'GtkFunction
-					;			      "gboolean"
-					;			      "func1"
-					;			      (parse-args "lambda_data func_info" 'callback)
-					;			      'semi-permanent)
-					;			(list 'GtkKeySnoopFunc
-					;			      "gint"
-					;			      "snoop_func"
-					;			      (parse-args "GtkWidget* widget GdkEventKey* event lambda_data func_info" 'callback)
-					;			      'semi-permanent)
-   (list 'GtkMenuPositionFunc
-	 "void"
-	 "menu_position_func"
-	 (parse-args "GtkMenu* menu gint* [x] gint* [y] gboolean* [push] lambda_data func_info" 'callback)
-	 'permanent)
+					;	(list 'GdkSpanFunc
+					;	      "void"
+					;	      "span_func"
+					;	      (parse-args "GdkSpan* span lambda_data func_info" 'callback)
+					;	      'temporary)
+					;	(list 'GtkFunction
+					;	      "gboolean"
+					;	      "func1"
+					;	      (parse-args "lambda_data func_info" 'callback)
+					;	      'semi-permanent)
+					;	(list 'GtkKeySnoopFunc
+					;	      "gint"
+					;	      "snoop_func"
+					;	      (parse-args "GtkWidget* widget GdkEventKey* event lambda_data func_info" 'callback)
+					;	      'semi-permanent)
+					;   (list 'GtkMenuPositionFunc
+					;	 "void"
+					;	 "menu_position_func"
+					;	 (parse-args "GtkMenu* menu gint* [x] gint* [y] gboolean* [push] lambda_data func_info" 'callback)
+					;	 'permanent)
    (list 'GtkTextTagTableForeach
 	 "void"
 	 "text_tag_table_foreach"
diff --git a/tools/t101.scm b/tools/t101.scm
deleted file mode 100644
index 58c1288..0000000
--- a/tools/t101.scm
+++ /dev/null
@@ -1,119 +0,0 @@
-;;; try each s7test test macro (using repl, not snd)
-
-(system "make-repl")
-
-(for-each
- (lambda (test-case)
-   (call-with-output-file "t101-aux.scm"
-     (lambda (p)
-       (format p "(define-macro (test tst expected) ~A)~%(load \"s7test.scm\")~%(exit)~%" test-case)))
-   (format *stderr* "test: ~S~%" test-case)
-   (system "./repl t101-aux.scm"))
- (list 
-   "`(ok? ',tst (lambda () (eval ',tst)) ,expected)"
-   "`(ok? ',tst (lambda () ,tst) ,expected)"
-   "`(ok? ',tst (let () (define (_s7_) ,tst)) ,expected)"
-   "`(ok? ',tst (lambda () (let ((_s7_ #f)) (set! _s7_ ,tst))) ,expected)"
-   "`(ok? ',tst (lambda () (let ((_s7_ ,tst)) _s7_)) ,expected)"
-   "`(ok? ',tst (catch #t (lambda () (lambda* ((_a_ ,tst)) _a_)) (lambda any (lambda () 'error))) ,expected)"
-   "`(ok? ',tst (lambda () (do ((_a_ ,tst)) (#t _a_))) ,expected)"
-   "`(ok? ',tst (lambda () (do ((__i__ 0 (+ __i__ 1))) ((= __i__ 1) ,expected) ,tst)) ,expected)"
-   "`(ok? ',tst (lambda () (define ($f$) (let (($v$ (vector #f))) (do (($i$ 0 (+ $i$ 1))) ((= $i$ 1) ($v$ 0)) (vector-set! $v$ 0 ,tst)))) ($f$)) ,expected)"
-   "`(ok? ',tst (lambda () (define ($f$) (let (($v$ #f)) (do (($i$ 0 (+ $i$ 1))) ((= $i$ 1) $v$) (set! $v$ ,tst)))) ($f$)) ,expected)"
-   "`(ok? ',tst (lambda () (define ($f$) (let ((x (map (lambda (a) ,tst) '(0)))) (car x))) ($f$)) ,expected)"
-   "`(ok? ',tst (lambda () (call-with-exit (lambda (_a_) (_a_ ,tst)))) ,expected)"
-   "`(ok? ',tst (lambda () (call/cc (lambda (_a_) (_a_ ,tst)))) ,expected)"
-   "`(ok? ',tst (lambda () (values ,tst)) ,expected)"
-   "`(ok? ',tst (lambda () ((lambda (a b) b) (values #f ,tst))) ,expected)"
-   "`(ok? ',tst (lambda () (define (_s7_ _a_) _a_) (_s7_ ,tst)) ,expected)"
-   "`(ok? ',tst (lambda () (let ((___x #f)) (set! ___x ,tst))) ,expected)"
-   "`(ok? ',tst (lambda () (let ((___x #(#f))) (set! (___x 0) ,tst))) ,expected)"
-   "`(ok? ',tst (lambda () (let ((___x #(#f))) (vector-set! ___x 0 ,tst))) ,expected)"
-   "`(ok? ',tst (lambda () (define* (_s7_ (_a_ #f)) (or _a_)) (_s7_ ,tst)) ,expected)"
-   "`(ok? ',tst (lambda () (dynamic-wind (lambda () #f) (lambda () ,tst) (lambda () #f))) ,expected)"
-   "`(ok? ',tst (lambda () (caadr (catch 'receive (lambda () (throw 'receive ,tst)) (lambda any any)))) ,expected))"
-   "({list} 'ok? ({list} quote tst) ({list} lambda () tst) expected)"
-   ))
-
-(format *stderr* "~NC ffitest ~NC~%" 20 #\- 20 #\-)
-(if (provided? 'linux)
-    (begin
-      (system "gcc -o ffitest ffitest.c -g -Wall s7.o -lm -I. -ldl")
-      (system "ffitest"))
-    (if (provided? 'freebsd)
-	(begin
-	  (system "cc -o ffitest ffitest.c -g -Wall s7.o -lm -I. -ldl")
-	  (system "ffitest"))
-	(if (provided? 'osx)
-	    (begin
-	      (system "gcc -o ffitest ffitest.c -g -Wall s7.o -lm -I.")
-	      (system "ffitest"))
-	    )))
-    
-
-(format *stderr* "~%~NC lint ~NC~%" 20 #\- 20 #\-)
-(catch #t (lambda () (lint "s7test.scm" #f)) (lambda args #f))
-
-;; lint clobbers reader-cond
-(define-expansion (reader-cond . clauses)
-  (call-with-exit
-   (lambda (return)
-     (for-each
-      (lambda (clause)
-	(let ((val (eval (car clause))))
-	  (if val
-	      (if (null? (cdr clause)) (return val)
-		  (if (null? (cddr clause)) (return (cadr clause))
-		      (return (apply values (map quote (cdr clause)))))))))
-      clauses)
-     (values))))
-
-(format *stderr* "~%~NC local s7test ~NC~%" 20 #\- 20 #\-)
-(system "./snd -e '(let () (catch #t (lambda () (load \"s7test.scm\" (curlet))) (lambda args #f)) (exit))'")
-
-(format *stderr* "~NC tcopy ~NC~%" 20 #\- 20 #\-)
-(system "./repl tcopy.scm")
-
-(format *stderr* "~NC tmap ~NC~%" 20 #\- 20 #\-)
-(system "./repl tmap.scm")
-
-(format *stderr* "~NC teq ~NC~%" 20 #\- 20 #\-)
-(system "./repl teq.scm")
-
-(format *stderr* "~NC titer ~NC~%" 20 #\- 20 #\-)
-(system "./repl titer.scm")
-
-(format *stderr* "~%~NC tform ~NC~%" 20 #\- 20 #\-)
-(system "./repl tform.scm")
-
-(format *stderr* "~%~NC thash ~NC~%" 20 #\- 20 #\-)
-(system "./repl thash.scm")
-
-(format *stderr* "~NC tauto ~NC~%" 20 #\- 20 #\-)
-(system "./repl tauto.scm")
-
-(format *stderr* "~NC index ~NC~%" 20 #\- 20 #\-)
-(system "./snd make-index.scm")
-
-(format *stderr* "~NC makexg ~NC~%" 20 #\- 20 #\-)
-(system "./snd makexg.scm")
-
-(format *stderr* "~NC makegl ~NC~%" 20 #\- 20 #\-)
-(system "./snd makegl.scm")
-
-(format *stderr* "~NC lg ~NC~%" 20 #\- 20 #\-)
-(system "./repl lg.scm")
-
-(format *stderr* "~NC tgen ~NC~%" 20 #\- 20 #\-)
-(system "./snd tgen.scm")
-
-(format *stderr* "~NC tall ~NC~%" 20 #\- 20 #\-)
-(system "./snd tall.scm")
-
-(format *stderr* "~NC snd-test ~NC~%" 20 #\- 20 #\-)
-(system "./snd -l snd-test.scm")
-
-(format *stderr* "~NC bench ~NC~%" 20 #\- 20 #\-)
-(system "(cd /home/bil/test/bench/src ; /home/bil/cl/snd test-all.scm)")
-
-(exit)
diff --git a/tools/tall.scm b/tools/tall.scm
new file mode 100644
index 0000000..094ff15
--- /dev/null
+++ b/tools/tall.scm
@@ -0,0 +1,267 @@
+(define (safe-divide a b)
+  "divide but check for 0 denom"
+  (if (zero? b)
+      a
+      (/ a b)))
+
+(define (real-time) 
+  (* 1.0 (/ (get-internal-real-time) internal-time-units-per-second)))
+
+(define (hundred n) 
+  (round (* 1000 n)))
+
+(define-macro (time-it a) 
+  `(let ((start (real-time))) 
+     ,a 
+     (- (real-time) start)))
+
+(define size 1000000)
+
+(define (test-do)
+  (do ((i 0 (+ i 1)))
+      ((= i size))
+    i))
+
+(let ((do1 (time-it (test-do))))
+  (format *stderr* "~15T~A" (hundred do1)))
+
+(define (test-*1)
+  (let ((x 1.0))
+    (do ((i 0 (+ i 1)))
+	((= i size))
+      (set! x (+ x (* i 2.0))))))
+
+(let ((do1 (time-it (test-*1))))
+  (format *stderr* "~5T~A" (hundred do1)))
+
+
+(define (test-osc)
+  (let ((vals (make-float-vector size))
+	(osc (make-oscil :frequency 440))
+	(e1 (make-env '(0 0 1 1 2 0) :length size)))
+    (set! *output* vals)
+    (do ((i 0 (+ i 1)))
+	((= i size))
+      (outa i (* (env e1) (oscil osc))))
+    (set! *output* #f)))
+
+(let ((do1 (time-it (test-osc))))
+  (format *stderr* "~5T~A" (hundred do1)))
+
+
+(load "ws.scm")
+;;; from chk.scm
+;(set! *clm-file-buffer-size* (* 8 1024 1024))
+(set! *to-snd* #f)
+
+;(set! *clm-file-name* "/dev/null")
+
+(define calls ())
+(define last-caller #f)
+;(set! *clm-notehook* (lambda args (set! calls (cons (list (report_env_1) last-caller) calls)) (set! last-caller (car args))))
+
+(load "v.scm")
+
+(define (test-fmv)
+  (with-sound (:channels 1 :statistics #f :to-snd #f :play #f :sample-type mus-ldouble)
+    (fm-violin 0 20 440 .1)))
+
+(let ((do1 (time-it (test-fmv))))
+  (format *stderr* "~4T~A" (hundred do1)))
+
+
+(define (test-fm2)
+  (with-sound (:channels 2 :statistics #f :to-snd #f :play #f :sample-type mus-ldouble) 
+    (fm-violin 0 20 440 .1 :degree 45)))
+
+(let ((do1 (time-it (test-fm2))))
+  (format *stderr* "~4T~A" (hundred do1)))
+
+
+(define (test-fm1000)
+  (with-sound (:statistics #f :to-snd #f :play #f :sample-type mus-ldouble) 
+    (do ((i 0 (+ i 1))) ((= i 10000)) (fm-violin (* i .001) .01 440 .001))))
+
+(let ((do1 (time-it (test-fm1000))))
+  (format *stderr* "~4T~A" (hundred do1)))
+
+
+(load "jcrev.scm")
+
+(define (test-fmj)
+  (with-sound (:channels 1 :statistics #f :to-snd #f :play #f :sample-type mus-ldouble :reverb jc-reverb) 
+    (fm-violin 0 20 440 .1)))
+
+(let ((do1 (time-it (test-fmj))))
+  (format *stderr* "~4T~A" (hundred do1)))
+
+
+(load "nrev.scm")
+
+(define (test-fmn)
+  (with-sound (:channels 1 :statistics #f :to-snd #f :play #f :sample-type mus-ldouble :reverb nrev) 
+    (fm-violin 0 20 440 .1)))
+
+(let ((do1 (time-it (test-fmn))))
+  (format *stderr* "~4T~A" (hundred do1)))
+
+
+(load "expandn.scm")
+(if (not (file-exists? "oboe.snd"))
+    (system "cp ~/cl/oboe.snd ."))
+
+(define (test-exp)
+  (with-sound (:channels 1 :statistics #f :to-snd #f :play #f :sample-type mus-ldouble) 
+    (expandn 0 10 "oboe.snd" 1 :expand 4)))
+
+(let ((do1 (time-it (test-exp))))
+  (format *stderr* "~5T~A" (hundred do1)))
+
+
+
+(load "singer.scm")
+
+(define (test-sing)
+  (with-sound (:channels 1 :statistics #f :to-snd #f :play #f :sample-type mus-ldouble) 
+    (singer 0 .1 
+	    (list (list .4 ehh.shp test.glt 523.0 .8 0.0 .01) 
+		  (list .6 oo.shp test.glt 523.0 .7 .1 .01)))))
+
+(let ((do1 (time-it (test-sing))))
+  (format *stderr* "~4T ~A" (hundred do1)))
+
+
+
+(load "grani.scm")
+
+(define (test-gran)
+  (with-sound (:channels 2 :statistics #f :to-snd #f :play #f :sample-type mus-ldouble) 
+    (let ((file "oboe.snd")) 
+      (grani 0 1 .5 "oboe.snd" 
+	     :grain-envelope '(0 0 0.2 0.2 0.5 1 0.8 0.2 1 0)))))
+
+(let ((do1 (time-it (test-gran))))
+  (format *stderr* "~5T~A" (hundred do1)))
+
+
+(load "fullmix.scm")
+(if (not (file-exists? "pistol.snd"))
+    (system "cp ~/cl/pistol.snd ."))
+(if (not (file-exists? "2.snd"))
+    (system "cp ~/cl/2.snd ."))
+
+(define (test-full)
+  (with-sound (:channels 2 :statistics #f :to-snd #f :play #f :sample-type mus-ldouble) 
+    (fullmix "pistol.snd" 0 2 0 #f .5)  
+    (fullmix "oboe.snd" 1 2 0 (list (list .1 (make-env '(0 0 1 1) :duration 2 :scaler .5))))))
+
+(let ((do1 (time-it (test-full))))
+  (format *stderr* "~4T~A" (hundred do1)))
+
+
+(define (test-fuller)
+  (with-sound (:channels 2 :statistics #f :to-snd #f :play #f :sample-type mus-ldouble) 
+    (fullmix "pistol.snd")
+    (fullmix "2.snd" .5 1)
+    (fullmix "2.snd" 1.5 1 0 #f 2.0)
+    (fullmix "oboe.snd" 1 2 0 (list (list .1 (make-env '(0 0 1 1) :duration 2 :scaler .5))))
+    (fullmix "pistol.snd" 2 1 0 #f .5)
+    (fullmix "2.snd" 0 2 0 (list (list .1 .2) (list .3 .4)) 2.0)
+    (fullmix "oboe.snd" 3 2 0 (list (list .1 (make-env '(0 0 1 1) :duration 2 :scaler .5))) .25)
+    (let ((e0->0 (make-env '(0 0 1 1) :duration 2))
+	  (e0->1 (make-env '(0 1 1 0) :duration 2))
+	  (e1->0 (make-env '(0 1 1 0) :duration 2))
+	  (e1->1 (make-env '(0 0 1 1) :duration 2)))
+      (fullmix "2.snd" 4 2 0 (list (list e0->0 e0->1) (list e1->0 e1->1))))
+    (let ((e0->0 (make-env '(0 0 1 1) :duration 2))
+	  (e0->1 (make-env '(0 1 1 0) :duration 2))
+	  (e1->0 (make-env '(0 1 1 0) :duration 2))
+	  (e1->1 (make-env '(0 0 1 1) :duration 2)))
+      (fullmix "2.snd" 6 2 0 (list (list e0->0 e0->1) (list e1->0 e1->1)) 2.0))))
+
+(let ((do1 (time-it (test-fuller))))
+  (format *stderr* "~4T ~A" (hundred do1)))
+
+
+
+(load "clm-ins.scm")
+
+(define (test-pins)
+  (with-sound (:channels 1 :statistics #f :to-snd #f :play #f :sample-type mus-ldouble) 
+    (pins 0 3 "oboe.snd" 1.0 :max-peaks 8)))
+
+(let ((do1 (time-it (test-pins))))
+  (format *stderr* "~5T ~A" (hundred do1)))
+
+
+
+(if (not (file-exists? "popi.scm"))
+    (system "cp ~/cl/popi.scm ."))
+
+(define (test-popi)
+  (load "popi.scm"))
+
+(let ((do1 (time-it (test-popi))))
+  (format *stderr* "~5T~A" (hundred do1)))
+
+
+
+;(set! *clm-file-buffer-size* (* 64 1024 1024))
+
+(load "piano.scm")
+
+(define (test-piano)
+  (with-sound (:channels 1 :statistics #f :to-snd #f :play #f :sample-type mus-ldouble) 
+    (p 0 3)))
+
+(let ((do1 (time-it (test-piano))))
+  (format *stderr* "~5T~A" (hundred do1)))
+
+
+(set! *clm-sample-type* mus-ldouble)
+(load "animals.scm") 
+
+(define (test-bird)
+  (calling-all-animals))  
+
+(let ((do1 (time-it (test-bird))))
+  (format *stderr* "~4T~A~%" (hundred do1)))
+
+
+;(for-each
+; (lambda (n)
+;   (format #t "~A~%" n))
+; (sort! calls (lambda (a b) (< (car a) (car b)))))
+
+
+(s7-version)
+(exit)
+
+
+#|
+/home/bil/snd-12/ ./snd --version
+This is Snd version 12.13 of 6-July-12:
+
+/home/bil/snd-12/ ./snd t502.scm
+times are in milliseconds
+do:        15
+float-vector-set:   38
+float-vector ind:   59
+vset:      41
+*1:        52
+osc:       116
+fmv:       145, C: 107
+fm2:       159
+fm1000:    834
+fmj:       388
+fmn:       398
+expand:    588
+sing:      1853
+gran:      57
+full:      53
+fuller:    477
+pins:      1279
+popi:      1727
+piano:     10315
+bird:      8928
+|#
diff --git a/tools/valcall.scm b/tools/valcall.scm
deleted file mode 100644
index 0e8a11d..0000000
--- a/tools/valcall.scm
+++ /dev/null
@@ -1,67 +0,0 @@
-(define file-names '(("teq.scm" . "v-eq")
-		     ("titer.scm" . "v-iter")
-		     ("tmap.scm" . "v-map")
-		     ("tform.scm" . "v-form")
-		     ("thash.scm" . "v-hash")
-		     ("tcopy.scm" . "v-cop")
-		     ("lg.scm" . "v-lg")
-		     ("tgen.scm" . "v-gen")
-		     ("tauto.scm" . "v-auto")
-		     ("make-index.scm" . "v-index")
-		     ("snd-test.scm" . "v-call")
-		     ("tall.scm" . "v-all")
-		     ("s7test.scm" . "v-test")
-		     ))
-
-(define (last-callg)
-  (let ((name (system "ls callg*" #t)))
-    (let ((len (length name)))
-      (do ((i 0 (+ i 1)))
-	  ((or (= i len)
-	       (char-whitespace? (name i)))
-	   (substring name 0 i))))))
-
-(define (next-file f)
-  (let ((name (system (format #f "ls -t ~A*" f) #t)))
-    (let ((len (length name)))
-      (do ((i 0 (+ i 1)))
-	  ((or (= i len)
-	       (and (char-numeric? (name i))
-		    (char-numeric? (name (+ i 1)))))
-	   (+ 1 (string->number (substring name i (+ i 2)))))))))
-
-(define (call-valgrind)
-  (for-each
-   (lambda (caller+file)
-     (system "rm callg*")
-     (format *stderr* "~%~NC~%~NC ~A ~NC~%~NC~%" 40 #\- 16 #\- (cadr caller+file) 16 #\- 40 #\-)
-     (system (format #f "valgrind --tool=callgrind ./~A ~A" (car caller+file) (cadr caller+file)))
-     (let ((outfile (cdr (assoc (cadr caller+file) file-names))))
-       (let ((next (next-file outfile)))
-	 (system (format #f "callgrind_annotate --auto=yes --threshold=100 ~A > ~A~D" (last-callg) outfile next))
-	 (format *stderr* "~NC ~A~D -> ~A~D: ~NC~%" 8 #\space outfile (- next 1) outfile next 8 #\space)
-	 (system (format #f "./snd compare-calls.scm -e '(compare-calls \"~A~D\" \"~A~D\")'" outfile (- next 1) outfile next)))))
-   (list (list "repl" "teq.scm")
-	 (list "repl" "s7test.scm")
-	 (list "snd -noinit" "make-index.scm")
-	 (list "repl" "tmap.scm")
-	 (list "repl" "tform.scm")
-	 (list "repl" "tcopy.scm")
-	 (list "repl" "tauto.scm")
-	 (list "repl" "titer.scm")
-	 (list "repl" "lg.scm")
-	 (list "repl" "thash.scm")
-	 (list "snd -noinit" "tgen.scm")    ; repl here + cload sndlib was slower
-	 (list "snd -noinit" "tall.scm")
-	 (list "snd -l" "snd-test.scm")
-	 )))
-	 
-
-(call-valgrind)
-
-(when (file-exists? "test.table")
-  (system "mv test.table old-test.table"))
-(load "compare-calls.scm")
-(combine-latest)
-
-(exit)
\ No newline at end of file
diff --git a/tools/xgdata.scm b/tools/xgdata.scm
index 98c6186..6bc4a5d 100644
--- a/tools/xgdata.scm
+++ b/tools/xgdata.scm
@@ -555,10 +555,10 @@
 ;;; 2.99.0 (CFNC "GdkGrabStatus gdk_keyboard_grab GdkWindow* window gboolean owner_events guint32 time")
 ;;; 2.99.0 (CFNC "void gdk_keyboard_ungrab guint32 time")
 ;;; 2.99.0 (CFNC "gboolean gdk_pointer_is_grabbed void")
-(CFNC "gint gdk_screen_width void")
-(CFNC "gint gdk_screen_height void")
-(CFNC "gint gdk_screen_width_mm void")
-(CFNC "gint gdk_screen_height_mm void")
+;;; 3.22.2 (CFNC "gint gdk_screen_width void")
+;;; 3.22.2 (CFNC "gint gdk_screen_height void")
+;;; 3.22.2 (CFNC "gint gdk_screen_width_mm void")
+;;; 3.22.2 (CFNC "gint gdk_screen_height_mm void")
 (CFNC "void gdk_flush void")
 (CFNC "void gdk_beep void")
 (CFNC "void gdk_set_double_click_time guint msec")
@@ -1417,7 +1417,7 @@
 (CFNC "void gdk_window_thaw_updates GdkWindow* window")
 (CFNC "void gdk_window_process_all_updates void")
 (CFNC "void gdk_window_process_updates GdkWindow* window gboolean update_children")
-(CFNC "void gdk_window_set_debug_updates gboolean setting")
+;;; 3.22.2 (CFNC "void gdk_window_set_debug_updates gboolean setting")
 (CFNC "void gdk_window_constrain_size GdkGeometry* geometry GdkWindowHints flags gint width gint height gint* [new_width] gint* [new_height]")
 ;;; (CFNC-gtk2 "void gdk_window_get_internal_paint_info GdkWindow* window GdkDrawable** [real_drawable] gint* [x_offset] gint* [y_offset]")
 (CFNC "void gdk_window_set_type_hint GdkWindow* window GdkWindowTypeHint hint")
@@ -2479,7 +2479,7 @@
 (CCHK "GTK_IS_MENU(obj)" "GtkMenu*")
 ;;;;(CFNC "GType gtk_menu_get_type void")
 (CFNC "GtkWidget* gtk_menu_new void")
-(CFNC "void gtk_menu_popup GtkMenu* menu GtkWidget* @parent_menu_shell GtkWidget* @parent_menu_item GtkMenuPositionFunc func lambda_data func_info guint button guint32 activate_time")
+;;; 3.22.2 (CFNC "void gtk_menu_popup GtkMenu* menu GtkWidget* @parent_menu_shell GtkWidget* @parent_menu_item GtkMenuPositionFunc func lambda_data func_info guint button guint32 activate_time")
 (CFNC "void gtk_menu_reposition GtkMenu* menu")
 (CFNC "void gtk_menu_popdown GtkMenu* menu")
 (CFNC "GtkWidget* gtk_menu_get_active GtkMenu* menu")
@@ -3893,7 +3893,7 @@
 (CFNC "void gtk_window_set_title GtkWindow* window gchar* title")
 (CFNC "void gtk_window_set_auto_startup_notification gboolean setting")
 (CFNC "gchar* gtk_window_get_title GtkWindow* window")
-(CFNC "void gtk_window_set_wmclass GtkWindow* window gchar* wmclass_name gchar* wmclass_class")
+;;; 3.22.2 (CFNC "void gtk_window_set_wmclass GtkWindow* window gchar* wmclass_name gchar* wmclass_class")
 (CFNC "void gtk_window_set_role GtkWindow* window gchar* role")
 (CFNC "gchar* gtk_window_get_role GtkWindow* window")
 (CFNC "void gtk_window_add_accel_group GtkWindow* window GtkAccelGroup* accel_group")
@@ -4522,18 +4522,18 @@
 ;;; 2.90.6 (CFNC "GdkVisual* gdk_screen_get_rgb_visual GdkScreen* screen")
 (CFNC "GdkWindow* gdk_screen_get_root_window GdkScreen* screen")
 (CFNC "GdkDisplay* gdk_screen_get_display GdkScreen* screen")
-(CFNC "int gdk_screen_get_number GdkScreen* screen")
-(CFNC "int gdk_screen_get_width GdkScreen* screen")
-(CFNC "int gdk_screen_get_height GdkScreen* screen")
-(CFNC "int gdk_screen_get_width_mm GdkScreen* screen")
-(CFNC "int gdk_screen_get_height_mm GdkScreen* screen")
+;;; 3.22.2 (CFNC "int gdk_screen_get_number GdkScreen* screen")
+;;; 3.22.2 (CFNC "int gdk_screen_get_width GdkScreen* screen")
+;;; 3.22.2 (CFNC "int gdk_screen_get_height GdkScreen* screen")
+;;; 3.22.2 (CFNC "int gdk_screen_get_width_mm GdkScreen* screen")
+;;; 3.22.2 (CFNC "int gdk_screen_get_height_mm GdkScreen* screen")
 (CFNC "GList* gdk_screen_list_visuals GdkScreen* screen")
 (CFNC "GList* gdk_screen_get_toplevel_windows GdkScreen* screen")
-(CFNC "gchar* gdk_screen_make_display_name GdkScreen* screen" 'free)
-(CFNC "int gdk_screen_get_n_monitors GdkScreen* screen")
-(CFNC "void gdk_screen_get_monitor_geometry GdkScreen* screen int monitor_num GdkRectangle* dest")
-(CFNC "int gdk_screen_get_monitor_at_point GdkScreen* screen int x int y")
-(CFNC "int gdk_screen_get_monitor_at_window GdkScreen* screen GdkWindow* window")
+;;; 3.22.2 (CFNC "gchar* gdk_screen_make_display_name GdkScreen* screen" 'free)
+;;; 3.22.2 (CFNC "int gdk_screen_get_n_monitors GdkScreen* screen")
+;;; 3.22.2 (CFNC "void gdk_screen_get_monitor_geometry GdkScreen* screen int monitor_num GdkRectangle* dest")
+;;; 3.22.2 (CFNC "int gdk_screen_get_monitor_at_point GdkScreen* screen int x int y")
+;;; 3.22.2 (CFNC "int gdk_screen_get_monitor_at_window GdkScreen* screen GdkWindow* window")
 ;;; 2.99.3 (CFNC "void gdk_screen_broadcast_client_message GdkScreen* screen GdkEvent* event")
 (CFNC "GdkScreen* gdk_screen_get_default void")
 ;(CFNC "gboolean gdk_screen_get_setting GdkScreen* screen gchar* name GValue* value")
@@ -5800,7 +5800,7 @@
 (CFNC "gboolean gdk_screen_is_composited GdkScreen* screen")
 (CFNC "void gdk_screen_set_resolution GdkScreen* screen gdouble dpi")
 (CFNC "gdouble gdk_screen_get_resolution GdkScreen* screen")
-(CFNC "GdkWindow* gdk_screen_get_active_window GdkScreen* screen")
+;;; 3.22.2 (CFNC "GdkWindow* gdk_screen_get_active_window GdkScreen* screen")
 (CFNC "GList* gdk_screen_get_window_stack GdkScreen* screen")
 (CFNC "GdkWindowTypeHint gdk_window_get_type_hint GdkWindow* window")
 (CFNC "void gtk_clipboard_request_rich_text GtkClipboard* clipboard GtkTextBuffer* buffer GtkClipboardRichTextReceivedFunc func lambda_data #func_info")
@@ -6854,9 +6854,9 @@
 (CFNC-2.14 "void gtk_calendar_set_detail_height_rows GtkCalendar* calendar gint rows")
 (CFNC-2.14 "gint gtk_calendar_get_detail_width_chars GtkCalendar* calendar")
 (CFNC-2.14 "gint gtk_calendar_get_detail_height_rows GtkCalendar* calendar")
-(CFNC-2.14 "gint gdk_screen_get_monitor_width_mm GdkScreen* screen gint monitor_num")
-(CFNC-2.14 "gint gdk_screen_get_monitor_height_mm GdkScreen* screen gint monitor_num")
-(CFNC-2.14 "gchar* gdk_screen_get_monitor_plug_name GdkScreen* screen gint monitor_num")
+;;; 3.22.2 (CFNC-2.14 "gint gdk_screen_get_monitor_width_mm GdkScreen* screen gint monitor_num")
+;;; 3.22.2 (CFNC-2.14 "gint gdk_screen_get_monitor_height_mm GdkScreen* screen gint monitor_num")
+;;; 3.22.2 (CFNC-2.14 "gchar* gdk_screen_get_monitor_plug_name GdkScreen* screen gint monitor_num")
 ;;; (CFNC-2.14 "void gtk_tooltip_set_icon_from_icon_name GtkTooltip* tooltip gchar* icon_name GtkIconSize size" 'const)
 
 ;(CFNC-2.14 "void gtk_test_init int* argcp char*** argvp ...")
@@ -7291,7 +7291,7 @@
 ;;; 2.19.2
 ;; (CFNC-2.20 "gboolean gdk_keymap_map_virtual_modifiers GdkKeymap* keymap GdkModifierType *state")
 ;;  there is no code for this!
-(CFNC-2.20 "gint gdk_screen_get_primary_monitor GdkScreen* screen")
+;;; 3.22.2 (CFNC-2.20 "gint gdk_screen_get_primary_monitor GdkScreen* screen")
 (CFNC-2.20 "void gtk_window_set_mnemonics_visible GtkWindow* window gboolean setting")
 (CFNC-2.20 "gboolean gtk_window_get_mnemonics_visible GtkWindow* window")
 
@@ -7434,7 +7434,7 @@
 (CFNC-3.0 "gboolean gdk_window_has_native GdkWindow* window")
 (CFNC-3.0 "GdkCursorType gdk_cursor_get_cursor_type GdkCursor* cursor")
 (CFNC-3.0 "gboolean gdk_display_is_closed GdkDisplay* display")
-(CFNC-3.0 "cairo_pattern_t* gdk_window_get_background_pattern GdkWindow* window")
+;;; 3.22.2 (CFNC-3.0 "cairo_pattern_t* gdk_window_get_background_pattern GdkWindow* window")
 (CFNC-3.0 "cairo_surface_t* gdk_window_create_similar_surface GdkWindow* window cairo_content_t content int width int height")
 (CFNC-3.0 "void gtk_expander_set_label_fill GtkExpander* expander gboolean label_fill")
 (CFNC-3.0 "gboolean gtk_expander_get_label_fill GtkExpander* expander")
@@ -7729,7 +7729,7 @@
 (CCAST-3.0 "GDK_RGBA(object)" "GdkRGBA*")
 
 (CFNC-3.0 "void gdk_cairo_set_source_rgba cairo_t* cr GdkRGBA* rgba" 'const) 
-(CFNC-3.0 "void gdk_window_set_background_rgba GdkWindow* window GdkRGBA* rgba") 
+;;; 3.22.2 (CFNC-3.0 "void gdk_window_set_background_rgba GdkWindow* window GdkRGBA* rgba") 
 (CFNC-3.0 "void gtk_cell_view_set_background_rgba GtkCellView* cell_view GdkRGBA* rgba" 'const) 
 ;;; 3.3.16 (CFNC-3.0 "GtkWidget* gtk_color_button_new_with_rgba GdkRGBA* rgba" 'const) 
 ;;; 3.3.16 (CFNC-3.0 "void gtk_color_button_set_rgba GtkColorButton* color_button GdkRGBA* rgba" 'const) 
@@ -8296,7 +8296,7 @@
 (CFNC-3.4 "void gtk_accelerator_parse_with_keycode gchar* accelerator guint* accelerator_key guint** accelerator_codes GdkModifierType* accelerator_mods" 'const)
 (CFNC-3.4 "gchar* gtk_accelerator_name_with_keycode GdkDisplay* display guint accelerator_key guint keycode GdkModifierType accelerator_mods")
 (CFNC-3.4 "gchar* gtk_accelerator_get_label_with_keycode GdkDisplay* display guint accelerator_key guint keycode GdkModifierType accelerator_mods")
-(CFNC-3.4 "void gdk_screen_get_monitor_workarea GdkScreen* screen gint monitor_num GdkRectangle* dest")
+;;; 3.22.2 (CFNC-3.4 "void gdk_screen_get_monitor_workarea GdkScreen* screen gint monitor_num GdkRectangle* dest")
 (CFNC-3.4 "GMenuModel* gtk_application_get_app_menu GtkApplication* application")
 (CFNC-3.4 "void gtk_application_set_app_menu GtkApplication* application GMenuModel* model")
 (CFNC-3.4 "GMenuModel* gtk_application_get_menubar GtkApplication* application")
@@ -8698,7 +8698,7 @@
 (CFNC-3.10 "cairo_surface_t* gdk_cairo_surface_create_from_pixbuf GdkPixbuf* pixbuf int scale GdkWindow* for_window")
 (CFNC-3.10 "void gdk_device_get_position_double GdkDevice* device GdkScreen** [screen] gdouble* [x] gdouble* [y]")
 (CFNC-3.10 "GdkWindow* gdk_device_get_window_at_position_double GdkDevice* device gdouble* [win_x] gdouble* [win_y]")
-(CFNC-3.10 "gint gdk_screen_get_monitor_scale_factor GdkScreen* screen gint monitor_num")
+;;; 3.22.2 (CFNC-3.10 "gint gdk_screen_get_monitor_scale_factor GdkScreen* screen gint monitor_num")
 (CFNC-3.10 "gint gdk_window_get_scale_factor GdkWindow* window")
 (CFNC-3.10 "GdkWindow* gdk_window_get_device_position_double GdkWindow* window GdkDevice* device gdouble* [x] gdouble* [y] GdkModifierType* [mask]")
 (CFNC-3.10 "cairo_surface_t* gdk_window_create_similar_image_surface GdkWindow* window cairo_format_t format int width int height int scale")
@@ -9377,7 +9377,7 @@
 (CFNC-3.22 "GdkDeviceTool* gdk_event_get_device_tool GdkEvent* event")
 (CFNC-3.22 "void gdk_event_set_device_tool GdkEvent* event GdkDeviceTool* tool")
 (CFNC-3.22 "int gdk_event_get_scancode GdkEvent* event")
-(CFNC-3.22 "void gdk_gl_context_set_use_es GdkGLContext* context gboolean use_es")
+(CFNC-3.22 "void gdk_gl_context_set_use_es GdkGLContext* context int use_es")
 (CFNC-3.22 "gboolean gdk_gl_context_get_use_es GdkGLContext* context")
 (CFNC-3.22 "PangoContext* gdk_pango_context_get_for_display GdkDisplay* display")
 (CFNC-3.22 "GdkAtom gtk_clipboard_get_selection GtkClipboard* clipboard")
@@ -9515,4 +9515,6 @@
 
 
 ;;; 3.22.0: no changes
-;;; 3.22.1: no changes
\ No newline at end of file
+;;; 3.22.1: no changes
+;;; 3.22.2: nothing new (many deprecations)
+
diff --git a/write.scm b/write.scm
index 4de1c0a..43d6f0d 100644
--- a/write.scm
+++ b/write.scm
@@ -16,449 +16,502 @@
 
       (define pretty-print-1 
 	(let ((newlines 0))
-	  (lambda (obj port column)
-	    
-	    (define (spaces n) 
-	      (set! newlines (+ newlines 1))
-	      (format port "~%~NC" (+ n *pretty-print-left-margin*) #\space))
-	    
-	    (define (stacked-list lst col)
-	      (do ((p lst (cdr p))
-		   (added 0 0))
-		  ((not (pair? p)))
-		(if (not (eq? p lst)) (spaces col))
-		(let ((len (length (object->string (car p)))))
-		  (if (and (keyword? (car p))
-			   (pair? (cdr p)))
-		      (begin
-			(write (car p) port)
-			(write-char #\space port)
-			(set! added (+ 1 len))
-			(set! p (cdr p))))
-		  (if (not (pair? p))
-		      (format port " . ~S" p)
-		      (if (and (pair? (car p))
-			       (pair? (cdar p))
-			       (null? (cddar p))
-			       (> len (/ *pretty-print-length* 2)))
-			  (begin
-			    (if (eq? (caar p) 'quote)
-				(write-char #\' port)
-				(begin
-				  (write-char #\( port)
-				  (pretty-print-1 (caar p) port col)
-				  (spaces (+ col 1))))
-			    (pretty-print-1 (cadar p) port (+ col 1))
-			    (if (not (eq? (caar p) 'quote))
-				(write-char #\) port)))
-			  (pretty-print-1 (car p) port (+ col added)))))))
-	    
-	    (define (stacked-split-list lst col)
-	      (if (not (pair? lst))
-		  (write lst port)
-		  (do ((p lst (cdr p)))
-		      ((not (pair? p)))
-		    (if (not (eq? p lst)) (spaces col))
-		    (write-char #\( port)
-		    (if (pair? (car p))
+
+	  (define (spaces port n) 
+	    (set! newlines (+ newlines 1))
+	    (format port "~%~NC" (+ n *pretty-print-left-margin*) #\space))
+	  
+	  (define (stacked-list port lst col)
+	    (do ((p lst (cdr p))
+		 (added 0 0))
+		((not (pair? p)))
+	      (if (not (eq? p lst)) (spaces port col))
+	      (let ((len (length (object->string (car p)))))
+		(if (and (keyword? (car p))
+			 (pair? (cdr p)))
+		    (begin
+		      (write (car p) port)
+		      (write-char #\space port)
+		      (set! added (+ 1 len))
+		      (set! p (cdr p))))
+		(if (not (pair? p))
+		    (format port " . ~S" p)
+		    (if (and (pair? (car p))
+			     (pair? (cdar p))
+			     (null? (cddar p))
+			     (> len (/ *pretty-print-length* 2)))
 			(begin
-			  (write (caar p) port)
-			  (write-char #\space port)
-			  (if (and (pair? (cdar p))
-				   (symbol? (caar p)))
-			      (pretty-print-1 (cadar p) port (+ col (length (symbol->string (caar p))) 2))
-			      (write (cdar p) port)))
-			(write (car p) port))
-		    (write-char #\) port))))
-	    
-	    (define (messy-number z)
-	      (if (real? z)
-		  (if (or (nan? z)
-			  (infinite? z))
-		      (object->string z)
-		      (if (= z pi)
-			  (copy "pi")
-			  (format #f *pretty-print-float-format* z)))
-		  (format #f "~A~A~Ai" 
-			  (messy-number (real-part z))
-			  (if (negative? (imag-part z)) "-" "+")
-			  (messy-number (abs (imag-part z))))))
-	    
-	    (define (any-keyword? lst)
-	      (and (pair? lst)
-		   (or (keyword? (car lst))
-		       (any-keyword? (cdr lst)))))
-	    
-	    (cond ((number? obj)
-		   (if (rational? obj)
-		       (write obj port)
-		       (display (messy-number obj) port)))
-		  
-		  ((pair? obj)
-		   (case (car obj)
-		     
-		     ((lambda lambda* define* define-macro define-macro* define-bacro define-bacro* with-let
-			      call-with-input-string call-with-input-file call-with-output-file
-			      with-input-from-file with-input-from-string with-output-to-file)
-		      (if (not (and (pair? (cdr obj))
-				    (pair? (cddr obj))))
-			  (write obj port)
-			  (begin
-			    (format port "(~A ~A" (car obj) (cadr obj))
-			    (spaces (+ column *pretty-print-spacing*))
-			    (stacked-list (cddr obj) (+ column *pretty-print-spacing*))
-			    (write-char #\) port))))
-		     
-		     ((defmacro defmacro*)
-		      (if (not (and (pair? (cdr obj))
-				    (pair? (cddr obj))))
-			  (write obj port)
-			  (begin
-			    (format port "(~A ~A ~A" (car obj) (cadr obj) (caddr obj))
-			    (spaces (+ column *pretty-print-spacing*))
-			    (stacked-list (cdddr obj) (+ column *pretty-print-spacing*))
-			    (write-char #\) port))))
-		     
-		     ((define)
-		      (if (not (pair? (cdr obj)))
-			  (write obj port)
-			  (begin
-			    (format port "(~A ~A " (car obj) (cadr obj))
-			    (if (pair? (cadr obj))
-				(begin
-				  (spaces (+ column *pretty-print-spacing*))
-				  (stacked-list (cddr obj) (+ column *pretty-print-spacing*)))
-				(if (pair? (cddr obj))
-				    (let ((str (object->string (caddr obj))))
-				      (if (> (length str) 60)
-					  (begin
-					    (spaces (+ column *pretty-print-spacing*))
-					    (pretty-print-1 (caddr obj) port (+ column *pretty-print-spacing*)))
-					  (write (caddr obj) port)))
-				    (write (cddr obj) port)))
-			    (write-char #\) port))))
-		     
-		     ((do)
-		      (if (not (pair? (cdr obj)))
-			  (write obj port)
-			  (begin
-			    (format port "(do ")
-			    (if (list? (cadr obj))
-				(write-char #\( port)
-				(display (cadr obj) port))
-			    (if (pair? (cadr obj))
-				(stacked-list (cadr obj) (+ column 5)))
-			    (if (list? (cadr obj))
-				(write-char #\) port))
-			    (when (pair? (cddr obj))
-			      (spaces (+ column 4))
-			      (let ((end (caddr obj)))
-				(if (< (length (object->string end)) (- *pretty-print-length* column))
-				    (write end port)
-				    (begin
-				      (write-char #\( port)
-				      (pretty-print-1 (car end) port (+ column 4))
-				      (spaces (+ column 5))
-				      (stacked-list (cdr end) (+ column 5))
-				      (write-char #\) port))))
-			      (when (pair? (cdddr obj))
-				(spaces (+ column *pretty-print-spacing*))
-				(stacked-list (cdddr obj) (+ column *pretty-print-spacing*))))
-			    (write-char #\) port))))
-		     
-		     ((cond)
-		      (format port "(cond ")
-		      (do ((lst (cdr obj) (cdr lst)))
-			  ((not (pair? lst)))
-			(if (not (eq? lst (cdr obj)))
-			    (spaces (+ column 6)))
-			(if (not (pair? (car lst)))
-			    (write (car lst) port)
-			    (let ((has=> (and (pair? (cdar lst))
-					      (eq? (cadar lst) '=>))))
-			      (let ((extras (and (pair? (cdar lst))
-						 (pair? (cddar lst))
-						 (or (not has=>)
-						     (pair? (cdddar lst)))))
-				    (too-long (> (length (object->string (cdar lst))) 50)))
+			  (if (eq? (caar p) 'quote)
+			      (write-char #\' port)
+			      (begin
 				(write-char #\( port)
-				(let ((oldlines newlines))
-				  (pretty-print-1 (caar lst) port (+ column 7))
-				  (if (or extras 
-					  (not (= oldlines newlines))
-					  too-long)
-				      (spaces (+ column 7))
-				      (if (and (pair? (cdar lst))
-					       (or (not has=>)
-						   (= oldlines newlines)))
-					  (write-char #\space port)))
-				  (if (and (pair? (cdar lst))
-					   (not extras)
-					   (not too-long))
-				      (begin
-					(write (cadar lst) port)
-					(when (and has=>
-						   (pair? (cddar lst)))
-					  (write-char #\space port)
-					  (write (caddar lst) port)))
-				      (if (not (null? (cdar lst)))
-					  (stacked-list (cdar lst) (+ column 7)))))
-			      (write-char #\) port)))))
-		      (write-char #\) port))
-		     
-		     ((or and)
-		      (if (> (length (object->string obj)) 40)
-			  (begin
-			    (format port "(~A " (car obj))
-			    (stacked-list (cdr obj) (+ column *pretty-print-spacing* (length (symbol->string (car obj)))))
-			    (write-char #\) port))
-			  (write obj port)))
-		     
-		     ((case)
-		      (if (or (not (pair? (cdr obj)))
-			      (not (pair? (cddr obj))))
-			  (write obj port)
-			  (begin
-			    (format port "(case ~A" (cadr obj)) ; send out the selector
-			    (for-each 
-			     (lambda (lst)
-			       (spaces (+ column *pretty-print-spacing*))
-			       (if (not (pair? lst))
-				   (write lst port)
+				(pretty-print-1 (caar p) port col)
+				(spaces port (+ col 1))))
+			  (pretty-print-1 (cadar p) port (+ col 1))
+			  (if (not (eq? (caar p) 'quote))
+			      (write-char #\) port)))
+			(pretty-print-1 (car p) port (+ col added)))))))
+	  
+	  (define (stacked-split-list port lst col)
+	    (if (not (pair? lst))
+		(write lst port)
+		(do ((p lst (cdr p)))
+		    ((not (pair? p)))
+		  (if (not (eq? p lst)) (spaces port col))
+		  (write-char #\( port)
+		  (if (pair? (car p))
+		      (begin
+			(write (caar p) port)
+			(write-char #\space port)
+			(if (and (pair? (cdar p))
+				 (symbol? (caar p)))
+			    (pretty-print-1 (cadar p) port (+ col (length (symbol->string (caar p))) 2))
+			    (write (cdar p) port)))
+		      (write (car p) port))
+		  (write-char #\) port))))
+	  
+	  (define (messy-number z)
+	    (if (real? z)
+		(if (or (nan? z)
+			(infinite? z))
+		    (object->string z)
+		    (if (= z pi)
+			(copy "pi")
+			(format #f *pretty-print-float-format* z)))
+		(format #f "~A~A~Ai" 
+			(messy-number (real-part z))
+			(if (negative? (imag-part z)) "-" "+")
+			(messy-number (abs (imag-part z))))))
+	  
+	  (define (any-keyword? lst)
+	    (and (pair? lst)
+		 (or (keyword? (car lst))
+		     (any-keyword? (cdr lst)))))
+	  
+	  (let ((writers (let ((h (make-hash-table)))
+			   
+			   ;; -------- quote
+			   (define (w-quote obj port column)
+			     (if (not (pair? (cdr obj))) ; (quote) or (quote . 1)
+				 (write obj port)
+				 (begin
+				   (write-char #\' port)
+				   (pretty-print-1 (cadr obj) port column))))
+			   (hash-table-set! h 'quote w-quote)
+			   
+			   ;; -------- define
+			   (define (w-define obj port column)
+			     (if (not (pair? (cdr obj)))
+				 (write obj port)
+				 (begin
+				   (format port "(~A ~A " (car obj) (cadr obj))
+				   (if (pair? (cadr obj))
+				       (begin
+					 (spaces port (+ column *pretty-print-spacing*))
+					 (stacked-list port (cddr obj) (+ column *pretty-print-spacing*)))
+				       (if (pair? (cddr obj))
+					   (let ((str (object->string (caddr obj))))
+					     (if (> (length str) 60)
+						 (begin
+						   (spaces port (+ column *pretty-print-spacing*))
+						   (pretty-print-1 (caddr obj) port (+ column *pretty-print-spacing*)))
+						 (write (caddr obj) port)))
+					   (write (cddr obj) port)))
+				   (write-char #\) port))))
+			   (hash-table-set! h 'define w-define)
+			   
+			   ;; -------- if
+			   (define (w-if obj port column)
+			     (let ((objstr (object->string obj))
+				   (ifcol (+ column 4)))
+			       (if (< (length objstr) 40)
+				   (display objstr port)
 				   (begin
-				     (write-char #\( port)
-				     (if (not (pair? (car lst)))
-					 (write (car lst) port)
-					 (let ((len (length (car lst))))
-					   (if (< len 6)
-					       (write (car lst) port)
-					       (let ((p (car lst)))
-						 (write-char #\( port)
-						 (do ((i 0 (+ i 6)))
-						     ((>= i len))
-						   (do ((j 0 (+ j 1)))
-						       ((or (= j 6) (null? p)) (if (pair? p) (spaces (+ column 4))))
-						     (write (car p) port)
-						     (set! p (cdr p))
-						     (if (pair? p)
-							 (write-char #\space port))))
-						 (write-char #\) port)))))
-				     (if (not (null? (cdr lst)))
-					 (if (and (pair? (cdr lst))
-						  (null? (cddr lst))
-						  (< (length (object->string (cadr lst))) 60))
+				     (format port "(if ")
+				     (pretty-print-1 (cadr obj) port ifcol)
+				     (when (pair? (cddr obj)) ; might be a messed-up if
+				       (spaces port ifcol)
+				       (pretty-print-1 (caddr obj) port ifcol)
+				       (when (pair? (cdddr obj))
+					 (spaces port ifcol)
+					 (pretty-print-1 (cadddr obj) port ifcol)))
+				     (write-char #\) port)))))
+			   (hash-table-set! h 'if w-if)
+			   
+			   ;; -------- when unless
+			   (define (w-when obj port column)
+			     (let ((objstr (object->string obj)))
+			       (if (< (length objstr) 40)
+				   (display objstr port)
+				   (begin
+				     (format port "(~A " (car obj))
+				     (pretty-print-1 (cadr obj) port (+ column (if (eq? (car obj) 'when) 6 8)))
+				     (spaces port (+ column *pretty-print-spacing*))
+				     (when (pair? (cddr obj))
+				       (stacked-list port (cddr obj) (+ column *pretty-print-spacing*)))
+				     (write-char #\) port)))))
+			   (hash-table-set! h 'when w-when)
+			   (hash-table-set! h 'unless w-when)
+			   
+			   ;; -------- let let* letrec letrec*
+			   (define (w-let obj port column)
+			     (if (not (and (pair? (cdr obj))
+					   (pair? (cddr obj))))
+				 (write obj port)
+				 (begin
+				   (let ((head-len (length (symbol->string (car obj)))))
+				     (if (symbol? (cadr obj))
+					 (begin
+					   (format port "(~A ~A (" (car obj) (cadr obj))
+					   (if (pair? (cddr obj))
+					       (if (pair? (caddr obj)) ; (let x () ...)
+						   (stacked-split-list port (caddr obj) (+ column head-len (length (symbol->string (cadr obj))) 4))
+						   (if (not (null? (caddr obj)))
+						       (write (caddr obj) port))) ; () is already being written
+					       (if (not (null? (cddr obj)))
+						   (format port " . ~S" (cddr obj)))))
+					 (begin
+					   (format port "(~A (" (car obj))
+					   (if (pair? (cadr obj))
+					       (stacked-split-list port (cadr obj) (+ column head-len 3))))))
+				   (write-char #\) port)
+				   (spaces port (+ column *pretty-print-spacing*))
+				   (if (pair? ((if (symbol? (cadr obj)) cdddr cddr) obj))
+				       (stacked-list port ((if (symbol? (cadr obj)) cdddr cddr) obj) (+ column *pretty-print-spacing*)))
+				   (write-char #\) port))))
+			   (for-each
+			    (lambda (f)
+			      (hash-table-set! h f w-let))
+			    '(let let* letrec letrec*))
+			   
+			   ;; -------- set!
+			   (define (w-set obj port column)
+			     (let ((str (object->string obj)))
+			       (if (<= (length str) 60)
+				   (display str port)
+				   (let ((settee (object->string (cadr obj))))
+				     (format port "(set! ~A" settee)
+				     (if (pair? (cddr obj))
+					 (if (> (length settee) 20)
+					     (begin
+					       (spaces port (+ column 6))
+					       (pretty-print-1 (caddr obj) port (+ column 6)))
 					     (begin
 					       (write-char #\space port)
-					       (write (cadr lst) port))
+					       (pretty-print-1 (caddr obj) port (+ column 7 (length settee))))))
+				     (write-char #\) port)))))
+			   (hash-table-set! h 'set! w-set)
+			   
+			   ;; -------- cond
+			   (define (w-cond obj port column)
+			     (format port "(cond ")
+			     (do ((lst (cdr obj) (cdr lst)))
+				 ((not (pair? lst)))
+			       (if (not (eq? lst (cdr obj)))
+				   (spaces port (+ column 6)))
+			       (if (not (pair? (car lst)))
+				   (write (car lst) port)
+				   (let ((has=> (and (pair? (cdar lst))
+						     (eq? (cadar lst) '=>))))
+				     (let ((extras (and (pair? (cdar lst))
+							(pair? (cddar lst))
+							(or (not has=>)
+							    (pair? (cdddar lst)))))
+					   (too-long (> (length (object->string (cdar lst))) 50)))
+				       (write-char #\( port)
+				       (let ((oldlines newlines))
+					 (pretty-print-1 (caar lst) port (+ column 7))
+					 (if (or extras 
+						 (not (= oldlines newlines))
+						 too-long)
+					     (spaces port (+ column 7))
+					     (if (and (pair? (cdar lst))
+						      (or (not has=>)
+							  (= oldlines newlines)))
+						 (write-char #\space port)))
+					 (if (and (pair? (cdar lst))
+						  (not extras)
+						  (not too-long))
 					     (begin
-					       (spaces (+ column 3))
-					       (stacked-list (cdr lst) (+ column 3)))))
-				     (write-char #\) port))))
-			     (cddr obj))
-			    (write-char #\) port))))
-		     
-		     ((begin call-with-exit call/cc call-with-current-continuation with-baffle with-output-to-string call-with-output-string)
-		      (format port "(~A" (car obj))
-		      (if (pair? (cdr obj))
-			  (begin
-			    (spaces (+ column *pretty-print-spacing*))
-			    (stacked-list (cdr obj) (+ column *pretty-print-spacing*))))
-		      (write-char #\) port))
-		     
-		     ((map for-each)
-		      (let* ((objstr (object->string obj))
-			     (strlen (length objstr)))
-			(if (< (+ column strlen) *pretty-print-length*)
-			    (display objstr port)
-			    (begin
-			      (format port "(~A" (car obj))
-			      (if (pair? (cdr obj))
-				  (begin
-				    (write-char #\space port)
-				    (stacked-list (cdr obj) (+ column *pretty-print-spacing*))))
-			      (write-char #\) port)))))
-		     
-		     ((dynamic-wind call-with-values)
-		      (format port "(~A" (car obj))
-		      (spaces (+ column *pretty-print-spacing*))
-		      (stacked-list (cdr obj) (+ column *pretty-print-spacing*))
-		      (write-char #\) port))
-		     
-		     ((if)
-		      (let ((objstr (object->string obj))
-			    (ifcol (+ column 4)))
-			(if (< (length objstr) 40)
-			    (display objstr port)
-			    (begin
-			      (format port "(if ")
-			      (pretty-print-1 (cadr obj) port ifcol)
-			      (when (pair? (cddr obj)) ; might be a messed-up if
-				(spaces ifcol)
-				(pretty-print-1 (caddr obj) port ifcol)
-				(when (pair? (cdddr obj))
-				  (spaces ifcol)
-				  (pretty-print-1 (cadddr obj) port ifcol)))
-			      (write-char #\) port)))))
-		     
-		     ((when unless)
-		      (let ((objstr (object->string obj)))
-			(if (< (length objstr) 40)
-			    (display objstr port)
-			    (begin
-			      (format port "(~A " (car obj))
-			      (pretty-print-1 (cadr obj) port (+ column (if (eq? (car obj) 'when) 6 8)))
-			      (spaces (+ column *pretty-print-spacing*))
-			      (when (pair? (cddr obj))
-				(stacked-list (cddr obj) (+ column *pretty-print-spacing*)))
-			      (write-char #\) port)))))
-		     
-		     ((let let* letrec letrec*)
-		      (if (not (and (pair? (cdr obj))
-				    (pair? (cddr obj))))
-			  (write obj port)
-			  (begin
-			    (let ((head-len (length (symbol->string (car obj)))))
-			      (if (symbol? (cadr obj))
-				  (begin
-				    (format port "(~A ~A (" (car obj) (cadr obj))
-				    (if (pair? (cddr obj))
-					(if (pair? (caddr obj)) ; (let x () ...)
-					    (stacked-split-list (caddr obj) (+ column head-len (length (symbol->string (cadr obj))) 4))
-					    (if (not (null? (caddr obj)))
-						(write (caddr obj) port))) ; () is already being written
-					(if (not (null? (cddr obj)))
-					    (format port " . ~S" (cddr obj)))))
-				  (begin
-				    (format port "(~A (" (car obj))
-				    (if (pair? (cadr obj))
-					(stacked-split-list (cadr obj) (+ column head-len 3))))))
-			    (write-char #\) port)
-			    (spaces (+ column *pretty-print-spacing*))
-			    (if (pair? ((if (symbol? (cadr obj)) cdddr cddr) obj))
-				(stacked-list ((if (symbol? (cadr obj)) cdddr cddr) obj) (+ column *pretty-print-spacing*)))
-			    (write-char #\) port))))
-		     
-		     ((inlet)
-		      (format port "(inlet ")
-		      (if (pair? (cdr obj))
-			  (do ((lst (cdr obj) (cddr lst)))
-			      ((not (and (pair? lst)
-					 (pair? (cdr lst)))))
-			    (if (not (eq? lst (cdr obj)))
-				(spaces (+ column *pretty-print-spacing*)))
-			    (if (pair? (cdr lst))
-				(begin
-				  (write (car lst) port)
-				  (write-char #\space port)
-				  (pretty-print-1 (cadr lst) port (+ column *pretty-print-spacing* (length (object->string (car lst))))))
-				(write lst port))))
-		      (write-char #\) port))
-		     
-		     ((set!)
-		      (let ((str (object->string obj)))
-			(if (<= (length str) 60)
-			    (display str port)
-			    (let ((settee (object->string (cadr obj))))
-			      (format port "(set! ~A" settee)
-			      (if (pair? (cddr obj))
-				  (if (> (length settee) 20)
-				      (begin
-					(spaces (+ column 6))
-					(pretty-print-1 (caddr obj) port (+ column 6)))
-				      (begin
-					(write-char #\space port)
-					(pretty-print-1 (caddr obj) port (+ column 7 (length settee))))))
-			      (write-char #\) port)))))
-		     
-		     ((quote)
-		      (if (not (pair? (cdr obj))) ; (quote) or (quote . 1)
-			  (write obj port)
-			  (begin
-			    (write-char #\' port)
-			    (pretty-print-1 (cadr obj) port column))))
-		     
-		     ((catch)
-		      (if (not (pair? (cdr obj))) ; (catch) or (catch . 1)
-			  (write obj port)
-			  (begin
-			    (format port "(~A ~S" catch (cadr obj))
-			    (spaces (+ column *pretty-print-spacing*))
-			    (stacked-list (cddr obj) (+ column *pretty-print-spacing*))
-			    (write-char #\) port))))
-		     
-		     (else
-		      (let* ((objstr (object->string obj))
-			     (strlen (length objstr)))
-			(if (< (+ column strlen) *pretty-print-length*)
-			    (display objstr port)
-			    (let ((lstlen (length obj)))
-			      (if (or (infinite? lstlen)
-				      (< lstlen 2))
-				  (display objstr port)
-				  (if (and (pair? (car obj))
-					   (memq (caar obj) '(lambda lambda* let let* letrec letrec* cond if case)))
-				      (begin
-					(write-char #\( port)
-					(pretty-print-1 (car obj) port column)
-					(spaces (+ column 1))
-					(if (and (memq (caar obj) '(cond if case))
-						 (do ((p (cdr obj) (cdr p)))
-						     ((or (null? p)
-							  (pair? (car p)))
-						      (null? p))))
-					    (do ((p (cdr obj) (cdr p)))
-						((null? p))
-					      (display (car p) port)
-					      (if (pair? (cdr p))
-						  (write-char #\space port)))
-					    (stacked-list (cdr obj) (+ column 1)))
-					(write-char #\) port))
-				      (let* ((carstr (object->string (car obj)))
-					     (carstrlen (length carstr)))
-					(if (eq? (car obj) 'quote)
-					    (write-char #\' port)
-					    (format port "(~A" carstr))
-					(if (any-keyword? (cdr obj))
-					    (begin
-					      (spaces (+ column *pretty-print-spacing*))
-					      (stacked-list (cdr obj) (+ column *pretty-print-spacing*)))
-					    (let ((line-start (+ column *pretty-print-spacing*
-								 (if (or (> carstrlen 16)
-									 (pair? (cadr obj)))
-								     0 
-								     carstrlen))))
-					      (if (= lstlen 2)
-						  (begin
-						    (write-char #\space port)
-						    (pretty-print-1 (cadr obj) port line-start))
-						  (if (< lstlen 4)
-						      (begin
-							(write-char #\space port)
-							(stacked-list (cdr obj) line-start))
-						      (do ((obj-start line-start)
-							   (lst (cdr obj) (cdr lst)))
-							  ((null? lst))
-							(let* ((str (object->string (car lst)))
-							       (strlen1 (length str)))
-							  (if (and (> strlen1 (- *pretty-print-length* obj-start))
-								   (not (eq? lst (cdr obj))))
-							      (begin
-								(set! obj-start (+ line-start 1 strlen1))
-								(spaces line-start)
-								(pretty-print-1 (car lst) port line-start))
-							      (begin
-								(set! obj-start (+ obj-start 1 strlen1))
-								(if (> strlen1 40)
-								    (begin
-								      (spaces line-start)
-								      (pretty-print-1 (car lst) port line-start))
-								    (begin
-								      (write-char #\space port)
-								      (display str port)))))))))))
-					(if (not (eq? (car obj) 'quote))
-					    (write-char #\) port)))))))))))
-		  (else
-		   (write obj port))))))
+					       (write (cadar lst) port)
+					       (when (and has=>
+							  (pair? (cddar lst)))
+						 (write-char #\space port)
+						 (write (caddar lst) port)))
+					     (if (not (null? (cdar lst)))
+						 (stacked-list port (cdar lst) (+ column 7)))))
+				       (write-char #\) port)))))
+			     (write-char #\) port))
+			   (hash-table-set! h 'cond w-cond)
+			   
+			   ;; -------- and or
+			   (define (w-and obj port column)
+			     (if (> (length (object->string obj)) 40)
+				 (begin
+				   (format port "(~A " (car obj))
+				   (stacked-list port (cdr obj) (+ column *pretty-print-spacing* (length (symbol->string (car obj)))))
+				   (write-char #\) port))
+				 (write obj port)))
+			   (hash-table-set! h 'and w-and)
+			   (hash-table-set! h 'or w-and)
+			   
+			   ;; -------- case
+			   (define (w-case obj port column)
+			     (if (not (and (pair? (cdr obj))
+					   (pair? (cddr obj))))
+				 (write obj port)
+				 (begin
+				   (format port "(case ~A" (cadr obj)) ; send out the selector
+				   (for-each 
+				    (lambda (lst)
+				      (spaces port (+ column *pretty-print-spacing*))
+				      (if (not (pair? lst))
+					  (write lst port)
+					  (begin
+					    (write-char #\( port)
+					    (if (not (pair? (car lst)))
+						(write (car lst) port)
+						(let ((len (length (car lst))))
+						  (if (< len 6)
+						      (write (car lst) port)
+						      (let ((p (car lst)))
+							(write-char #\( port)
+							(do ((i 0 (+ i 6)))
+							    ((>= i len))
+							  (do ((j 0 (+ j 1)))
+							      ((or (= j 6) (null? p)) (if (pair? p) (spaces port (+ column 4))))
+							    (write (car p) port)
+							    (set! p (cdr p))
+							    (if (pair? p)
+								(write-char #\space port))))
+							(write-char #\) port)))))
+					    (if (not (null? (cdr lst)))
+						(if (and (pair? (cdr lst))
+							 (null? (cddr lst))
+							 (< (length (object->string (cadr lst))) 60))
+						    (begin
+						      (write-char #\space port)
+						      (write (cadr lst) port))
+						    (begin
+						      (spaces port (+ column 3))
+						      (stacked-list port (cdr lst) (+ column 3)))))
+					    (write-char #\) port))))
+				    (cddr obj))
+				   (write-char #\) port))))
+			   (hash-table-set! h 'case w-case)
+			   
+			   ;; -------- map for-each
+			   (define (w-map obj port column)
+			     (let* ((objstr (object->string obj))
+				    (strlen (length objstr)))
+			       (if (< (+ column strlen) *pretty-print-length*)
+				   (display objstr port)
+				   (begin
+				     (format port "(~A" (car obj))
+				     (if (pair? (cdr obj))
+					 (begin
+					   (write-char #\space port)
+					   (stacked-list port (cdr obj) (+ column *pretty-print-spacing*))))
+				     (write-char #\) port)))))
+			   (hash-table-set! h 'map w-map)
+			   (hash-table-set! h 'for-each w-map)
+			   
+			   ;; -------- do
+			   (define (w-do obj port column)
+			     (if (not (pair? (cdr obj)))
+				 (write obj port)
+				 (begin
+				   (format port "(do ")
+				   (if (list? (cadr obj))
+				       (write-char #\( port)
+				       (display (cadr obj) port))
+				   (if (pair? (cadr obj))
+				       (stacked-list port (cadr obj) (+ column 5)))
+				   (if (list? (cadr obj))
+				       (write-char #\) port))
+				   (when (pair? (cddr obj))
+				     (spaces port (+ column 4))
+				     (let ((end (caddr obj)))
+				       (if (< (length (object->string end)) (- *pretty-print-length* column))
+					   (write end port)
+					   (begin
+					     (write-char #\( port)
+					     (pretty-print-1 (car end) port (+ column 4))
+					     (spaces port (+ column 5))
+					     (stacked-list port (cdr end) (+ column 5))
+					     (write-char #\) port))))
+				     (when (pair? (cdddr obj))
+				       (spaces port (+ column *pretty-print-spacing*))
+				       (stacked-list port (cdddr obj) (+ column *pretty-print-spacing*))))
+				   (write-char #\) port))))
+			   (hash-table-set! h 'do w-do)
+			   
+			   ;; -------- begin etc
+			   (define (w-begin obj port column)
+			     (format port "(~A" (car obj))
+			     (if (pair? (cdr obj))
+				 (begin
+				   (spaces port (+ column *pretty-print-spacing*))
+				   (stacked-list port (cdr obj) (+ column *pretty-print-spacing*))))
+			     (write-char #\) port))
+			   (for-each
+			    (lambda (f)
+			      (hash-table-set! h f w-begin))
+			    '(begin call-with-exit call/cc call-with-current-continuation with-baffle with-output-to-string call-with-output-string))
+			   
+			   ;; -------- dynamic-wind call-with-values
+			   (define (w-dynwind obj port column)
+			     (format port "(~A" (car obj))
+			     (spaces port (+ column *pretty-print-spacing*))
+			     (stacked-list port (cdr obj) (+ column *pretty-print-spacing*))
+			     (write-char #\) port))
+			   (hash-table-set! h 'dynamic-wind w-dynwind)
+			   (hash-table-set! h 'call-with-values w-dynwind)
+			   
+			   ;; -------- lambda etc
+			   (define (w-lambda obj port column)
+			     (if (not (and (pair? (cdr obj))
+					   (pair? (cddr obj))))
+				 (write obj port)
+				 (begin
+				   (format port "(~A ~A" (car obj) (cadr obj))
+				   (spaces port (+ column *pretty-print-spacing*))
+				   (stacked-list port (cddr obj) (+ column *pretty-print-spacing*))
+				   (write-char #\) port))))
+			   (for-each
+			    (lambda (f)
+			      (hash-table-set! h f w-lambda))
+			    '(lambda lambda* define* define-macro define-macro* define-bacro define-bacro* with-let
+				     call-with-input-string call-with-input-file call-with-output-file
+				     with-input-from-file with-input-from-string with-output-to-file))
+			   
+			   ;; -------- defmacro defmacro*
+			   (define (w-defmacro obj port column)
+			     (if (not (and (pair? (cdr obj))
+					   (pair? (cddr obj))))
+				 (write obj port)
+				 (begin
+				   (format port "(~A ~A ~A" (car obj) (cadr obj) (caddr obj))
+				   (spaces port (+ column *pretty-print-spacing*))
+				   (stacked-list port (cdddr obj) (+ column *pretty-print-spacing*))
+				   (write-char #\) port))))
+			   (hash-table-set! h 'defmacro w-defmacro)
+			   (hash-table-set! h 'defmacro* w-defmacro)
+			   
+			   ;; -------- catch
+			   (define (w-catch obj port column)
+			     (if (not (pair? (cdr obj))) ; (catch) or (catch . 1)
+				 (write obj port)
+				 (begin
+				   (format port "(~A ~S" catch (cadr obj))
+				   (spaces port (+ column *pretty-print-spacing*))
+				   (stacked-list port (cddr obj) (+ column *pretty-print-spacing*))
+				   (write-char #\) port))))
+			   (hash-table-set! h 'catch w-catch)
+			   
+			   ;; -------- inlet
+			   (define (w-inlet obj port column)
+			     (format port "(inlet ")
+			     (if (pair? (cdr obj))
+				 (do ((lst (cdr obj) (cddr lst)))
+				     ((not (and (pair? lst)
+						(pair? (cdr lst)))))
+				   (if (not (eq? lst (cdr obj)))
+				       (spaces port (+ column *pretty-print-spacing*)))
+				   (if (pair? (cdr lst))
+				       (begin
+					 (write (car lst) port)
+					 (write-char #\space port)
+					 (pretty-print-1 (cadr lst) port (+ column *pretty-print-spacing* (length (object->string (car lst))))))
+				       (write lst port))))
+			     (write-char #\) port))
+			   (hash-table-set! h 'inlet w-inlet)
+
+			   h)))
+	
+	    (lambda (obj port column) ; pretty-print-1
+	    
+	      (cond ((number? obj)
+		     (if (rational? obj)
+			 (write obj port)
+			 (display (messy-number obj) port)))
+		    
+		    ((not (pair? obj))
+		     (write obj port))
+
+		    ((hash-table-ref writers (car obj)) => (lambda (f) (f obj port column)))
+
+		    (else
+		     (let* ((objstr (object->string obj))
+			    (strlen (length objstr)))
+		       (if (< (+ column strlen) *pretty-print-length*)
+			   (display objstr port)
+			   (let ((lstlen (length obj)))
+			     (if (or (infinite? lstlen)
+				     (< lstlen 2))
+				 (display objstr port)
+				 (if (and (pair? (car obj))
+					  (memq (caar obj) '(lambda lambda* let let* letrec letrec* cond if case)))
+				     (begin
+				       (write-char #\( port)
+				       (pretty-print-1 (car obj) port column)
+				       (spaces port (+ column 1))
+				       (if (and (memq (caar obj) '(cond if case))
+						(do ((p (cdr obj) (cdr p)))
+						    ((or (null? p)
+							 (pair? (car p)))
+						     (null? p))))
+					   (do ((p (cdr obj) (cdr p)))
+					       ((null? p))
+					     (display (car p) port)
+					     (if (pair? (cdr p))
+						 (write-char #\space port)))
+					   (stacked-list port (cdr obj) (+ column 1)))
+				       (write-char #\) port))
+				     (let* ((carstr (object->string (car obj)))
+					    (carstrlen (length carstr)))
+				       (if (eq? (car obj) 'quote)
+					   (write-char #\' port)
+					   (format port "(~A" carstr))
+				       (if (any-keyword? (cdr obj))
+					   (begin
+					     (spaces port (+ column *pretty-print-spacing*))
+					     (stacked-list port (cdr obj) (+ column *pretty-print-spacing*)))
+					   (let ((line-start (+ column *pretty-print-spacing*
+								(if (or (> carstrlen 16)
+									(pair? (cadr obj)))
+								    0 
+								    carstrlen))))
+					     (if (= lstlen 2)
+						 (begin
+						   (write-char #\space port)
+						   (pretty-print-1 (cadr obj) port line-start))
+						 (if (< lstlen 4)
+						     (begin
+						       (write-char #\space port)
+						       (stacked-list port (cdr obj) line-start))
+						     (do ((obj-start line-start)
+							  (lst (cdr obj) (cdr lst)))
+							 ((null? lst))
+						       (let* ((str (object->string (car lst)))
+							      (strlen1 (length str)))
+							 (if (and (> strlen1 (- *pretty-print-length* obj-start))
+								  (not (eq? lst (cdr obj))))
+							     (begin
+							       (set! obj-start (+ line-start 1 strlen1))
+							       (spaces port line-start)
+							       (pretty-print-1 (car lst) port line-start))
+							     (begin
+							       (set! obj-start (+ obj-start 1 strlen1))
+							       (if (> strlen1 40)
+								   (begin
+								     (spaces port line-start)
+								     (pretty-print-1 (car lst) port line-start))
+								   (begin
+								     (write-char #\space port)
+								     (display str port)))))))))))
+				       (if (not (eq? (car obj) 'quote))
+					   (write-char #\) port))))))))))))))
       
       (let ((old-port port))
 	(if (boolean? old-port)
diff --git a/xg.c b/xg.c
index dc8f183..c739e77 100644
--- a/xg.c
+++ b/xg.c
@@ -200,7 +200,7 @@ static void define_xm_obj(void)
   #define Xg_field_pre "F"
 #endif
 
-static Xen xg_GtkShortcutLabel__symbol, xg_GtkPadActionType_symbol, xg_GtkPadActionEntry__symbol, xg_GActionGroup__symbol, xg_GtkPadController__symbol, xg_GdkDevicePadFeature_symbol, xg_GdkDevicePad__symbol, xg_GdkDrawingContext__symbol, xg_GdkSubpixelLayout_symbol, xg_GdkMonitor__symbol, xg_GdkDeviceTool__symbol, xg_GdkAxisFlags_symbol, xg_GdkSeatGrabPrepareFunc_symbol, xg_GdkSeatCapabilities_symbol, xg_GdkGrabStatus_symbol, xg_GtkPopoverConstraint_symbol, xg_GtkShortcutsWindow__symbol, xg_GtkStackSidebar__symbol, xg_GtkSearchEntry__symbol, xg_GtkPopoverMenu__symbol, xg_GtkStyleContext__symbol, xg_GdkGLContext__symbol, xg_GtkGLArea__symbol, xg_GtkPropagationPhase_symbol, xg_GtkEventController__symbol, xg_GtkGestureZoom__symbol, xg_GtkGestureSwipe__symbol, xg_GtkGestureSingle__symbol, xg_GtkGestureRotate__symbol, xg_GtkGestureMultiPress__symbol, xg_GtkGesturePan__symbol, xg_GtkGestureDrag__symbol, xg_GdkEventSequence__symbol, xg_GtkEventSequenceState_symbol, xg_GtkGesture__symbol, xg_GtkPopover__symbol, xg_GtkActionBar__symbol, xg_GtkFlowBox__symbol, xg_GtkFlowBoxChild__symbol, xg_GdkEventType_symbol, xg_GtkSearchBar__symbol, xg_GtkListBox__symbol, xg_GtkListBoxRow__symbol, xg_GtkHeaderBar__symbol, xg_GtkRevealerTransitionType_symbol, xg_GtkRevealer__symbol, xg_GtkStackTransitionType_symbol, xg_GtkStack__symbol, xg_GtkStackSwitcher__symbol, xg_GtkPlacesSidebar__symbol, xg_GtkPlacesOpenFlags_symbol, xg_GtkBaselinePosition_symbol, xg_GdkFullscreenMode_symbol, xg_GtkInputHints_symbol, xg_GtkInputPurpose_symbol, xg_GtkLevelBarMode_symbol, xg_GtkLevelBar__symbol, xg_GtkMenuButton__symbol, xg_GtkColorChooser__symbol, xg_GtkApplicationWindow__symbol, xg_GtkApplication__symbol, xg_GMenuModel__symbol, xg_guint___symbol, xg_GdkModifierIntent_symbol, xg_GtkFontChooser__symbol, xg_GdkScrollDirection_symbol, xg_GtkOverlay__symbol, xg_GtkWidgetPath__symbol, xg_GtkStateFlags_symbol, xg_GdkScreen___symbol, xg_GtkToolShell__symbol, xg_GtkWindowGroup__symbol, xg_GtkInvisible__symbol, xg_GtkOrientable__symbol, xg_GtkCellArea__symbol, xg_GtkBorder__symbol, xg_GtkSwitch__symbol, xg_GtkScrollablePolicy_symbol, xg_GtkScrollable__symbol, xg_GtkGrid__symbol, xg_GdkRGBA__symbol, xg_GtkComboBoxText__symbol, xg_GtkAlign_symbol, xg_GtkContainerClass__symbol, xg_GtkSizeRequestMode_symbol, xg_cairo_region_overlap_t_symbol, xg_cairo_rectangle_int_t__symbol, xg_double__symbol, xg_cairo_rectangle_t__symbol, xg_cairo_device_t__symbol, xg_cairo_bool_t_symbol, xg_cairo_text_cluster_flags_t__symbol, xg_cairo_text_cluster_t___symbol, xg_cairo_glyph_t___symbol, xg_cairo_text_cluster_flags_t_symbol, xg_cairo_text_cluster_t__symbol, xg_cairo_region_t__symbol, xg_GtkMessageDialog__symbol, xg_GdkDevice__symbol, xg_GtkAccessible__symbol, xg_GdkModifierType__symbol, xg_GtkToolPaletteDragTargets_symbol, xg_GtkToolItemGroup__symbol, xg_GtkToolPalette__symbol, xg_GtkSpinner__symbol, xg_GtkEntryBuffer__symbol, xg_GtkMessageType_symbol, xg_GtkInfoBar__symbol, xg_GIcon__symbol, xg_GtkEntryIconPosition_symbol, xg_GFile__symbol, xg_GtkScaleButton__symbol, xg_GtkCalendarDetailFunc_symbol, xg_GtkTooltip__symbol, xg_cairo_rectangle_list_t__symbol, xg_void__symbol, xg_cairo_filter_t_symbol, xg_cairo_extend_t_symbol, xg_cairo_format_t_symbol, xg_cairo_path_t__symbol, xg_cairo_destroy_func_t_symbol, xg_cairo_user_data_key_t__symbol, xg_cairo_text_extents_t__symbol, xg_cairo_font_extents_t__symbol, xg_cairo_font_face_t__symbol, xg_cairo_glyph_t__symbol, xg_cairo_scaled_font_t__symbol, xg_cairo_font_weight_t_symbol, xg_cairo_font_slant_t_symbol, xg_cairo_hint_metrics_t_symbol, xg_cairo_hint_style_t_symbol, xg_cairo_subpixel_order_t_symbol, xg_cairo_status_t_symbol, xg_bool_symbol, xg_cairo_matrix_t__symbol, xg_cairo_line_join_t_symbol, xg_cairo_line_cap_t_symbol, xg_cairo_fill_rule_t_symbol, xg_cairo_antialias_t_symbol, xg_cairo_operator_t_symbol, xg_cairo_pattern_t__symbol, xg_cairo_content_t_symbol, xg_GtkPageSet_symbol, xg_GtkPageRange__symbol, xg_GtkPrintPages_symbol, xg_GtkPrintQuality_symbol, xg_GtkPrintDuplex_symbol, xg_GtkPaperSize__symbol, xg_GtkPageOrientation_symbol, xg_GtkPrintSettingsFunc_symbol, xg_GtkPrintOperationPreview__symbol, xg_GtkPageSetupDoneFunc_symbol, xg_GtkPrintStatus_symbol, xg_GtkPrintOperationAction_symbol, xg_GtkPrintOperationResult_symbol, xg_GtkUnit_symbol, xg_GtkPrintSettings__symbol, xg_GtkPrintOperation__symbol, xg_GtkPageSetup__symbol, xg_GtkPrintContext__symbol, xg_cairo_surface_t__symbol, xg_GtkTreeViewGridLines_symbol, xg_GtkRecentData__symbol, xg_GtkTextBufferDeserializeFunc_symbol, xg_GtkTextBufferSerializeFunc_symbol, xg_time_t_symbol, xg_GtkRecentChooserMenu__symbol, xg_GtkRecentManager__symbol, xg_GtkRecentFilter__symbol, xg_GtkRecentSortFunc_symbol, xg_GtkRecentSortType_symbol, xg_GtkRecentChooser__symbol, xg_GtkLinkButton__symbol, xg_GtkAssistantPageType_symbol, xg_GtkAssistantPageFunc_symbol, xg_GtkAssistant__symbol, xg_GDestroyNotify_symbol, xg_GtkTreeViewSearchPositionFunc_symbol, xg_GtkSensitivityType_symbol, xg_GtkClipboardRichTextReceivedFunc_symbol, xg_GtkMenuBar__symbol, xg_GtkPackDirection_symbol, xg_GtkIconViewDropPosition_symbol, xg_GValue__symbol, xg_GLogFunc_symbol, xg_PangoMatrix__symbol, xg_PangoRenderPart_symbol, xg_PangoRenderer__symbol, xg_GtkClipboardImageReceivedFunc_symbol, xg_GtkMenuToolButton__symbol, xg_GtkFileChooserButton__symbol, xg_PangoScriptIter__symbol, xg_PangoScript_symbol, xg_PangoAttrFilterFunc_symbol, xg_PangoEllipsizeMode_symbol, xg_GtkIconViewForeachFunc_symbol, xg_GtkAboutDialog__symbol, xg_GtkTreeViewRowSeparatorFunc_symbol, xg_GtkCellView__symbol, xg_GtkAccelMap__symbol, xg_GtkClipboardTargetsReceivedFunc_symbol, xg_GtkOrientation_symbol, xg_GtkToolButton__symbol, xg_GtkIconLookupFlags_symbol, xg_GtkIconInfo__symbol, xg_GtkIconTheme__symbol, xg_GtkFileChooser__symbol, xg_GtkCellLayoutDataFunc_symbol, xg_GtkCellLayout__symbol, xg_GtkFileFilterFunc_symbol, xg_GtkFileFilterFlags_symbol, xg_GtkFileFilter__symbol, xg_GSourceFunc_symbol, xg_GtkToggleToolButton__symbol, xg_GtkSeparatorToolItem__symbol, xg_GtkRadioToolButton__symbol, xg_GtkEntryCompletionMatchFunc_symbol, xg_GtkFontButton__symbol, xg_GtkExpander__symbol, xg_GtkComboBox__symbol, xg_GtkTreeModelFilter__symbol, xg_GtkFileChooserAction_symbol, xg_GtkToolItem__symbol, xg_GtkEventBox__symbol, xg_GtkCalendarDisplayOptions_symbol, xg_GdkScreen__symbol, xg_PangoLayoutRun__symbol, xg_PangoLayoutIter__symbol, xg_PangoLayoutLine__symbol, xg_int__symbol, xg_PangoAlignment_symbol, xg_PangoWrapMode_symbol, xg_PangoItem__symbol, xg_PangoGlyphString__symbol, xg_PangoFontMap__symbol, xg_PangoGlyph_symbol, xg_PangoFontFace__symbol, xg_PangoFontFace___symbol, xg_PangoFontFamily__symbol, xg_PangoFontMask_symbol, xg_PangoFontDescription___symbol, xg_PangoCoverageLevel_symbol, xg_PangoCoverage__symbol, xg_PangoFontMetrics__symbol, xg_PangoFontset__symbol, xg_PangoFont__symbol, xg_PangoFontFamily___symbol, xg_PangoLogAttr__symbol, xg_PangoAnalysis__symbol, xg_PangoAttrList___symbol, xg_PangoAttrIterator__symbol, xg_PangoRectangle__symbol, xg_PangoUnderline_symbol, xg_PangoStretch_symbol, xg_PangoVariant_symbol, xg_PangoWeight_symbol, xg_PangoStyle_symbol, xg_guint16_symbol, xg_PangoAttribute__symbol, xg_PangoAttrType_symbol, xg_PangoColor__symbol, xg_GdkGravity_symbol, xg_GtkWindowPosition_symbol, xg_GtkWindowType_symbol, xg_GtkWindow__symbol, xg_GtkTextDirection_symbol, xg_AtkObject__symbol, xg_GtkDirectionType_symbol, xg_GtkAllocation__symbol, xg_GtkViewport__symbol, xg_GtkTreeViewSearchEqualFunc_symbol, xg_GtkTreeViewDropPosition_symbol, xg_GtkTreeViewMappingFunc_symbol, xg_GtkTreeViewColumnDropFunc_symbol, xg_GtkTreeViewColumnSizing_symbol, xg_GtkTreeCellDataFunc_symbol, xg_GtkTreeStore__symbol, xg_GtkTreeIterCompareFunc_symbol, xg_GtkSortType_symbol, xg_GtkTreeSortable__symbol, xg_GtkTreeSelectionForeachFunc_symbol, xg_GtkTreeModel___symbol, xg_GtkTreeSelectionFunc_symbol, xg_GtkSelectionMode_symbol, xg_GtkTreeModelSort__symbol, xg_GtkTreeModelForeachFunc_symbol, xg_GtkTreeModelFlags_symbol, xg_GtkTreeRowReference__symbol, xg_GtkTreeDragDest__symbol, xg_GtkTreeDragSource__symbol, xg_GtkToolbarStyle_symbol, xg_GtkToolbar__symbol, xg_GtkToggleButton__symbol, xg_PangoTabArray__symbol, xg_GtkWrapMode_symbol, xg_GtkTextWindowType_symbol, xg_GtkTextView__symbol, xg_GtkTextTagTableForeach_symbol, xg_GtkTextSearchFlags_symbol, xg_GtkTextCharPredicate_symbol, xg_GtkTextAttributes__symbol, xg_GtkTextMark__symbol, xg_GtkTextChildAnchor__symbol, xg_GtkTextIter__symbol, xg_GtkTextTagTable__symbol, xg_GtkTextBuffer__symbol, xg_GtkStatusbar__symbol, xg_GtkSpinType_symbol, xg_GtkSpinButtonUpdatePolicy_symbol, xg_GtkSpinButton__symbol, xg_GtkSizeGroupMode_symbol, xg_GtkSizeGroup__symbol, xg_GtkSettings__symbol, xg_GtkCornerType_symbol, xg_GtkPolicyType_symbol, xg_GtkScrolledWindow__symbol, xg_GtkScale__symbol, xg_GtkRange__symbol, xg_GtkRadioMenuItem__symbol, xg_GtkRadioButton__symbol, xg_GtkProgressBar__symbol, xg_GtkPaned__symbol, xg_GtkPositionType_symbol, xg_GtkNotebook__symbol, xg_GtkMenuShell__symbol, xg_GtkMenuItem__symbol, xg_GtkMenuPositionFunc_symbol, xg_PangoLanguage__symbol, xg_GtkListStore__symbol, xg_GtkLayout__symbol, xg_GtkJustification_symbol, xg_GtkLabel__symbol, xg_guint16__symbol, xg_GtkIMContextSimple__symbol, xg_GdkEventKey__symbol, xg_PangoAttrList__symbol, xg_GtkIMContext__symbol, xg_GtkImageType_symbol, xg_GtkImage__symbol, xg_GtkShadowType_symbol, xg_GtkFrame__symbol, xg_GtkFixed__symbol, xg_PangoLayout__symbol, xg_GtkEntry__symbol, xg_GtkEditable__symbol, xg_GtkTargetList__symbol, xg_GtkDestDefaults_symbol, xg_etc_symbol, xg_GtkDialog__symbol, xg_GtkCallback_symbol, xg_GtkContainer__symbol, xg_GtkClipboardTextReceivedFunc_symbol, xg_GtkClipboardReceivedFunc_symbol, xg_GtkClipboardClearFunc_symbol, xg_GtkClipboardGetFunc_symbol, xg_GtkTargetEntry__symbol, xg_GtkCheckMenuItem__symbol, xg_GtkCellRendererToggle__symbol, xg_GtkCellRendererText__symbol, xg_GtkCellRendererState_symbol, xg_GtkCellEditable__symbol, xg_GtkCalendar__symbol, xg_GtkReliefStyle_symbol, xg_GtkButton__symbol, xg_GtkPackType_symbol, xg_GtkBox__symbol, xg_GtkBin__symbol, xg_GtkBindingSet__symbol, xg_GtkButtonBox__symbol, xg_GtkButtonBoxStyle_symbol, xg_GtkAspectFrame__symbol, xg_GtkAdjustment__symbol, xg_GtkAccelMapForeach_symbol, xg_GtkAccelLabel__symbol, xg_GtkAccelGroupEntry__symbol, xg_lambda3_symbol, xg_GSList__symbol, xg_GObject__symbol, xg_GtkAccelFlags_symbol, xg_GtkAccelGroup__symbol, xg_GTimeVal__symbol, xg_GdkPixbufAnimationIter__symbol, xg_GdkPixbufAnimation__symbol, xg_GdkInterpType_symbol, xg_double_symbol, xg_gfloat_symbol, xg_guchar_symbol, xg_char___symbol, xg_GdkPixbufDestroyNotify_symbol, xg_GError__symbol, xg_int_symbol, xg_GdkColorspace_symbol, xg_GdkWindowTypeHint_symbol, xg_GdkWindowHints_symbol, xg_GdkGeometry__symbol, xg_GdkWindowEdge_symbol, xg_GdkWMFunction_symbol, xg_GdkWMDecoration_symbol, xg_GdkEventMask_symbol, xg_GdkWindowState_symbol, xg_GdkFilterFunc_symbol, xg_GdkWindowType_symbol, xg_GdkWindowAttr__symbol, xg_GdkVisualType__symbol, xg_gint__symbol, xg_GdkVisualType_symbol, xg_GdkPropMode_symbol, xg_guchar__symbol, xg_PangoContext__symbol, xg_PangoDirection_symbol, xg_GdkKeymapKey__symbol, xg_GdkKeymap__symbol, xg_GdkRectangle__symbol, xg_char__symbol, xg_gchar___symbol, xg_GdkEventFunc_symbol, xg_gdouble_symbol, xg_GList__symbol, xg_guint32_symbol, xg_GdkDragAction_symbol, xg_GdkDragContext__symbol, xg_GdkCursorType_symbol, xg_GdkDisplay__symbol, xg_GdkCursor__symbol, xg_GdkVisual__symbol, xg_GSignalMatchType_symbol, xg_GConnectFlags_symbol, xg_GtkDestroyNotify_symbol, xg_GSignalEmissionHook_symbol, xg_gulong_symbol, xg_GSignalInvocationHint__symbol, xg_GQuark_symbol, xg_guint__symbol, xg_GSignalQuery__symbol, xg_GType__symbol, xg_GSignalCMarshaller_symbol, xg_gpointer_symbol, xg_GSignalAccumulator_symbol, xg_GSignalFlags_symbol, xg_GType_symbol, xg_GClosureNotify_symbol, xg_GCallback_symbol, xg_GNormalizeMode_symbol, xg_glong_symbol, xg_gssize_symbol, xg_gunichar__symbol, xg_void_symbol, xg_GdkSeat__symbol, xg_GtkRecentInfo__symbol, xg_gsize_symbol, xg_guint8__symbol, xg_GdkAtom_symbol, xg_GLogLevelFlags_symbol, xg_GdkPixbuf__symbol, xg_GtkIconView__symbol, xg_GtkEntryCompletion__symbol, xg_GtkFileFilterInfo__symbol, xg_GtkTreeSelection__symbol, xg_GtkCellRenderer__symbol, xg_GtkTreeViewColumn__symbol, xg_GtkTreeView__symbol, xg_gunichar_symbol, xg_GdkAtom__symbol, xg_GtkSelectionData__symbol, xg_GtkClipboard__symbol, xg_GtkTreeIter__symbol, xg_GtkTreePath__symbol, xg_GtkTreeModel__symbol, xg_GdkModifierType_symbol, xg_guint_symbol, xg_gchar__symbol, xg_GtkTextTag__symbol, xg_gboolean_symbol, xg_gint_symbol, xg_GtkMenu__symbol, xg_GdkXEvent__symbol, xg_GtkWidget__symbol, xg_lambda_data_symbol, xg_GClosure__symbol, xg_GtkAccelKey__symbol, xg_GdkEventMotion__symbol, xg_gdouble__symbol, xg_GdkEventAny__symbol, xg_GdkEvent__symbol, xg_GdkWindow__symbol, xg_cairo_t__symbol, xg_cairo_font_options_t__symbol, xg_PangoFontDescription__symbol, xg_idler_symbol, xg_GtkCellRendererPixbuf__symbol, xg_GtkCheckButton__symbol, xg_GtkDrawingArea__symbol, xg_GtkScrollbar__symbol, xg_GtkSeparator__symbol, xg_GtkSeparatorMenuItem__symbol, xg_GdkEventExpose__symbol, xg_GdkEventNoExpose__symbol, xg_GdkEventVisibility__symbol, xg_GdkEventButton__symbol, xg_GdkEventScroll__symbol, xg_GdkEventCrossing__symbol, xg_GdkEventFocus__symbol, xg_GdkEventConfigure__symbol, xg_GdkEventProperty__symbol, xg_GdkEventSelection__symbol, xg_GdkEventProximity__symbol, xg_GdkEventSetting__symbol, xg_GdkEventWindowState__symbol, xg_GdkEventDND__symbol, xg_GtkFileChooserDialog__symbol, xg_GtkFileChooserWidget__symbol, xg_GtkColorButton__symbol, xg_GtkAccelMap_symbol, xg_GtkCellRendererCombo__symbol, xg_GtkCellRendererProgress__symbol, xg_GtkCellRendererAccel__symbol, xg_GtkCellRendererSpin__symbol, xg_GtkRecentChooserDialog__symbol, xg_GtkRecentChooserWidget__symbol, xg_GtkCellRendererSpinner__symbol, xg_gboolean__symbol, xg_GtkFontChooserDialog__symbol, xg_GtkFontChooserWidget__symbol, xg_GtkColorChooserDialog__symbol, xg_GtkColorChooserWidget__symbol, xg_GtkColorWidget__symbol, xg_GtkGestureLongPress__symbol;
+static Xen xg_GtkShortcutLabel__symbol, xg_GtkPadActionType_symbol, xg_GtkPadActionEntry__symbol, xg_GActionGroup__symbol, xg_GtkPadController__symbol, xg_GdkDevicePadFeature_symbol, xg_GdkDevicePad__symbol, xg_GdkDrawingContext__symbol, xg_GdkSubpixelLayout_symbol, xg_GdkMonitor__symbol, xg_GdkDeviceTool__symbol, xg_GdkAxisFlags_symbol, xg_GdkSeatGrabPrepareFunc_symbol, xg_GdkSeatCapabilities_symbol, xg_GdkGrabStatus_symbol, xg_GtkPopoverConstraint_symbol, xg_GtkShortcutsWindow__symbol, xg_GtkStackSidebar__symbol, xg_GtkSearchEntry__symbol, xg_GtkPopoverMenu__symbol, xg_GtkStyleContext__symbol, xg_GdkGLContext__symbol, xg_GtkGLArea__symbol, xg_GtkPropagationPhase_symbol, xg_GtkEventController__symbol, xg_GtkGestureZoom__symbol, xg_GtkGestureSwipe__symbol, xg_GtkGestureSingle__symbol, xg_GtkGestureRotate__symbol, xg_GtkGestureMultiPress__symbol, xg_GtkGesturePan__symbol, xg_GtkGestureDrag__symbol, xg_GdkEventSequence__symbol, xg_GtkEventSequenceState_symbol, xg_GtkGesture__symbol, xg_GtkPopover__symbol, xg_GtkActionBar__symbol, xg_GtkFlowBox__symbol, xg_GtkFlowBoxChild__symbol, xg_GdkEventType_symbol, xg_GtkSearchBar__symbol, xg_GtkListBox__symbol, xg_GtkListBoxRow__symbol, xg_GtkHeaderBar__symbol, xg_GtkRevealerTransitionType_symbol, xg_GtkRevealer__symbol, xg_GtkStackTransitionType_symbol, xg_GtkStack__symbol, xg_GtkStackSwitcher__symbol, xg_GtkPlacesSidebar__symbol, xg_GtkPlacesOpenFlags_symbol, xg_GtkBaselinePosition_symbol, xg_GdkFullscreenMode_symbol, xg_GtkInputHints_symbol, xg_GtkInputPurpose_symbol, xg_GtkLevelBarMode_symbol, xg_GtkLevelBar__symbol, xg_GtkMenuButton__symbol, xg_GtkColorChooser__symbol, xg_GtkApplicationWindow__symbol, xg_GtkApplication__symbol, xg_GMenuModel__symbol, xg_guint___symbol, xg_GdkModifierIntent_symbol, xg_GtkFontChooser__symbol, xg_GdkScrollDirection_symbol, xg_GtkOverlay__symbol, xg_GtkWidgetPath__symbol, xg_GtkStateFlags_symbol, xg_GdkScreen___symbol, xg_GtkToolShell__symbol, xg_GtkWindowGroup__symbol, xg_GtkInvisible__symbol, xg_GtkOrientable__symbol, xg_GtkCellArea__symbol, xg_GtkBorder__symbol, xg_GtkSwitch__symbol, xg_GtkScrollablePolicy_symbol, xg_GtkScrollable__symbol, xg_GtkGrid__symbol, xg_GdkRGBA__symbol, xg_GtkComboBoxText__symbol, xg_GtkAlign_symbol, xg_GtkContainerClass__symbol, xg_GtkSizeRequestMode_symbol, xg_cairo_region_overlap_t_symbol, xg_cairo_rectangle_int_t__symbol, xg_double__symbol, xg_cairo_rectangle_t__symbol, xg_cairo_device_t__symbol, xg_cairo_bool_t_symbol, xg_cairo_text_cluster_flags_t__symbol, xg_cairo_text_cluster_t___symbol, xg_cairo_glyph_t___symbol, xg_cairo_text_cluster_flags_t_symbol, xg_cairo_text_cluster_t__symbol, xg_cairo_region_t__symbol, xg_GtkMessageDialog__symbol, xg_GdkDevice__symbol, xg_GtkAccessible__symbol, xg_GdkModifierType__symbol, xg_GtkToolPaletteDragTargets_symbol, xg_GtkToolItemGroup__symbol, xg_GtkToolPalette__symbol, xg_GtkSpinner__symbol, xg_GtkEntryBuffer__symbol, xg_GtkMessageType_symbol, xg_GtkInfoBar__symbol, xg_GIcon__symbol, xg_GtkEntryIconPosition_symbol, xg_GFile__symbol, xg_GtkScaleButton__symbol, xg_GtkCalendarDetailFunc_symbol, xg_GtkTooltip__symbol, xg_cairo_rectangle_list_t__symbol, xg_void__symbol, xg_cairo_filter_t_symbol, xg_cairo_extend_t_symbol, xg_cairo_format_t_symbol, xg_cairo_path_t__symbol, xg_cairo_destroy_func_t_symbol, xg_cairo_user_data_key_t__symbol, xg_cairo_text_extents_t__symbol, xg_cairo_font_extents_t__symbol, xg_cairo_font_face_t__symbol, xg_cairo_glyph_t__symbol, xg_cairo_scaled_font_t__symbol, xg_cairo_font_weight_t_symbol, xg_cairo_font_slant_t_symbol, xg_cairo_hint_metrics_t_symbol, xg_cairo_hint_style_t_symbol, xg_cairo_subpixel_order_t_symbol, xg_cairo_status_t_symbol, xg_bool_symbol, xg_cairo_matrix_t__symbol, xg_cairo_line_join_t_symbol, xg_cairo_line_cap_t_symbol, xg_cairo_fill_rule_t_symbol, xg_cairo_antialias_t_symbol, xg_cairo_operator_t_symbol, xg_cairo_pattern_t__symbol, xg_cairo_content_t_symbol, xg_GtkPageSet_symbol, xg_GtkPageRange__symbol, xg_GtkPrintPages_symbol, xg_GtkPrintQuality_symbol, xg_GtkPrintDuplex_symbol, xg_GtkPaperSize__symbol, xg_GtkPageOrientation_symbol, xg_GtkPrintSettingsFunc_symbol, xg_GtkPrintOperationPreview__symbol, xg_GtkPageSetupDoneFunc_symbol, xg_GtkPrintStatus_symbol, xg_GtkPrintOperationAction_symbol, xg_GtkPrintOperationResult_symbol, xg_GtkUnit_symbol, xg_GtkPrintSettings__symbol, xg_GtkPrintOperation__symbol, xg_GtkPageSetup__symbol, xg_GtkPrintContext__symbol, xg_cairo_surface_t__symbol, xg_GtkTreeViewGridLines_symbol, xg_GtkRecentData__symbol, xg_GtkTextBufferDeserializeFunc_symbol, xg_GtkTextBufferSerializeFunc_symbol, xg_time_t_symbol, xg_GtkRecentChooserMenu__symbol, xg_GtkRecentManager__symbol, xg_GtkRecentFilter__symbol, xg_GtkRecentSortFunc_symbol, xg_GtkRecentSortType_symbol, xg_GtkRecentChooser__symbol, xg_GtkLinkButton__symbol, xg_GtkAssistantPageType_symbol, xg_GtkAssistantPageFunc_symbol, xg_GtkAssistant__symbol, xg_GDestroyNotify_symbol, xg_GtkTreeViewSearchPositionFunc_symbol, xg_GtkSensitivityType_symbol, xg_GtkClipboardRichTextReceivedFunc_symbol, xg_GtkMenuBar__symbol, xg_GtkPackDirection_symbol, xg_GtkIconViewDropPosition_symbol, xg_GValue__symbol, xg_GLogFunc_symbol, xg_PangoMatrix__symbol, xg_PangoRenderPart_symbol, xg_PangoRenderer__symbol, xg_GtkClipboardImageReceivedFunc_symbol, xg_GtkMenuToolButton__symbol, xg_GtkFileChooserButton__symbol, xg_PangoScriptIter__symbol, xg_PangoScript_symbol, xg_PangoAttrFilterFunc_symbol, xg_PangoEllipsizeMode_symbol, xg_GtkIconViewForeachFunc_symbol, xg_GtkAboutDialog__symbol, xg_GtkTreeViewRowSeparatorFunc_symbol, xg_GtkCellView__symbol, xg_GtkAccelMap__symbol, xg_GtkClipboardTargetsReceivedFunc_symbol, xg_GtkOrientation_symbol, xg_GtkToolButton__symbol, xg_GtkIconLookupFlags_symbol, xg_GtkIconInfo__symbol, xg_GtkIconTheme__symbol, xg_GtkFileChooser__symbol, xg_GtkCellLayoutDataFunc_symbol, xg_GtkCellLayout__symbol, xg_GtkFileFilterFunc_symbol, xg_GtkFileFilterFlags_symbol, xg_GtkFileFilter__symbol, xg_GSourceFunc_symbol, xg_GtkToggleToolButton__symbol, xg_GtkSeparatorToolItem__symbol, xg_GtkRadioToolButton__symbol, xg_GtkEntryCompletionMatchFunc_symbol, xg_GtkFontButton__symbol, xg_GtkExpander__symbol, xg_GtkComboBox__symbol, xg_GtkTreeModelFilter__symbol, xg_GtkFileChooserAction_symbol, xg_GtkToolItem__symbol, xg_GtkEventBox__symbol, xg_GtkCalendarDisplayOptions_symbol, xg_GdkScreen__symbol, xg_PangoLayoutRun__symbol, xg_PangoLayoutIter__symbol, xg_PangoLayoutLine__symbol, xg_int__symbol, xg_PangoAlignment_symbol, xg_PangoWrapMode_symbol, xg_PangoItem__symbol, xg_PangoGlyphString__symbol, xg_PangoFontMap__symbol, xg_PangoGlyph_symbol, xg_PangoFontFace__symbol, xg_PangoFontFace___symbol, xg_PangoFontFamily__symbol, xg_PangoFontMask_symbol, xg_PangoFontDescription___symbol, xg_PangoCoverageLevel_symbol, xg_PangoCoverage__symbol, xg_PangoFontMetrics__symbol, xg_PangoFontset__symbol, xg_PangoFont__symbol, xg_PangoFontFamily___symbol, xg_PangoLogAttr__symbol, xg_PangoAnalysis__symbol, xg_PangoAttrList___symbol, xg_PangoAttrIterator__symbol, xg_PangoRectangle__symbol, xg_PangoUnderline_symbol, xg_PangoStretch_symbol, xg_PangoVariant_symbol, xg_PangoWeight_symbol, xg_PangoStyle_symbol, xg_guint16_symbol, xg_PangoAttribute__symbol, xg_PangoAttrType_symbol, xg_PangoColor__symbol, xg_GdkGravity_symbol, xg_GtkWindowPosition_symbol, xg_GtkWindowType_symbol, xg_GtkWindow__symbol, xg_GtkTextDirection_symbol, xg_AtkObject__symbol, xg_GtkDirectionType_symbol, xg_GtkAllocation__symbol, xg_GtkViewport__symbol, xg_GtkTreeViewSearchEqualFunc_symbol, xg_GtkTreeViewDropPosition_symbol, xg_GtkTreeViewMappingFunc_symbol, xg_GtkTreeViewColumnDropFunc_symbol, xg_GtkTreeViewColumnSizing_symbol, xg_GtkTreeCellDataFunc_symbol, xg_GtkTreeStore__symbol, xg_GtkTreeIterCompareFunc_symbol, xg_GtkSortType_symbol, xg_GtkTreeSortable__symbol, xg_GtkTreeSelectionForeachFunc_symbol, xg_GtkTreeModel___symbol, xg_GtkTreeSelectionFunc_symbol, xg_GtkSelectionMode_symbol, xg_GtkTreeModelSort__symbol, xg_GtkTreeModelForeachFunc_symbol, xg_GtkTreeModelFlags_symbol, xg_GtkTreeRowReference__symbol, xg_GtkTreeDragDest__symbol, xg_GtkTreeDragSource__symbol, xg_GtkToolbarStyle_symbol, xg_GtkToolbar__symbol, xg_GtkToggleButton__symbol, xg_PangoTabArray__symbol, xg_GtkWrapMode_symbol, xg_GtkTextWindowType_symbol, xg_GtkTextView__symbol, xg_GtkTextTagTableForeach_symbol, xg_GtkTextSearchFlags_symbol, xg_GtkTextCharPredicate_symbol, xg_GtkTextAttributes__symbol, xg_GtkTextMark__symbol, xg_GtkTextChildAnchor__symbol, xg_GtkTextIter__symbol, xg_GtkTextTagTable__symbol, xg_GtkTextBuffer__symbol, xg_GtkStatusbar__symbol, xg_GtkSpinType_symbol, xg_GtkSpinButtonUpdatePolicy_symbol, xg_GtkSpinButton__symbol, xg_GtkSizeGroupMode_symbol, xg_GtkSizeGroup__symbol, xg_GtkSettings__symbol, xg_GtkCornerType_symbol, xg_GtkPolicyType_symbol, xg_GtkScrolledWindow__symbol, xg_GtkScale__symbol, xg_GtkRange__symbol, xg_GtkRadioMenuItem__symbol, xg_GtkRadioButton__symbol, xg_GtkProgressBar__symbol, xg_GtkPaned__symbol, xg_GtkPositionType_symbol, xg_GtkNotebook__symbol, xg_GtkMenuShell__symbol, xg_GtkMenuItem__symbol, xg_GtkMenu__symbol, xg_PangoLanguage__symbol, xg_GtkListStore__symbol, xg_GtkLayout__symbol, xg_GtkJustification_symbol, xg_GtkLabel__symbol, xg_guint16__symbol, xg_GtkIMContextSimple__symbol, xg_GdkEventKey__symbol, xg_PangoAttrList__symbol, xg_GtkIMContext__symbol, xg_GtkImageType_symbol, xg_GtkImage__symbol, xg_GtkShadowType_symbol, xg_GtkFrame__symbol, xg_GtkFixed__symbol, xg_PangoLayout__symbol, xg_GtkEntry__symbol, xg_GtkEditable__symbol, xg_GtkTargetList__symbol, xg_GtkDestDefaults_symbol, xg_etc_symbol, xg_GtkDialog__symbol, xg_GtkCallback_symbol, xg_GtkContainer__symbol, xg_GtkClipboardTextReceivedFunc_symbol, xg_GtkClipboardReceivedFunc_symbol, xg_GtkClipboardClearFunc_symbol, xg_GtkClipboardGetFunc_symbol, xg_GtkTargetEntry__symbol, xg_GtkCheckMenuItem__symbol, xg_GtkCellRendererToggle__symbol, xg_GtkCellRendererText__symbol, xg_GtkCellRendererState_symbol, xg_GtkCellEditable__symbol, xg_GtkCalendar__symbol, xg_GtkReliefStyle_symbol, xg_GtkButton__symbol, xg_GtkPackType_symbol, xg_GtkBox__symbol, xg_GtkBin__symbol, xg_GtkBindingSet__symbol, xg_GtkButtonBox__symbol, xg_GtkButtonBoxStyle_symbol, xg_GtkAspectFrame__symbol, xg_GtkAdjustment__symbol, xg_GtkAccelMapForeach_symbol, xg_GtkAccelLabel__symbol, xg_GtkAccelGroupEntry__symbol, xg_lambda3_symbol, xg_GSList__symbol, xg_GObject__symbol, xg_GtkAccelFlags_symbol, xg_GtkAccelGroup__symbol, xg_GTimeVal__symbol, xg_GdkPixbufAnimationIter__symbol, xg_GdkPixbufAnimation__symbol, xg_GdkInterpType_symbol, xg_double_symbol, xg_gfloat_symbol, xg_guchar_symbol, xg_char___symbol, xg_GdkPixbufDestroyNotify_symbol, xg_GError__symbol, xg_int_symbol, xg_GdkColorspace_symbol, xg_GdkWindowTypeHint_symbol, xg_GdkWindowHints_symbol, xg_GdkGeometry__symbol, xg_GdkWindowEdge_symbol, xg_GdkWMFunction_symbol, xg_GdkWMDecoration_symbol, xg_GdkEventMask_symbol, xg_GdkWindowState_symbol, xg_GdkFilterFunc_symbol, xg_GdkWindowType_symbol, xg_GdkWindowAttr__symbol, xg_GdkVisualType__symbol, xg_gint__symbol, xg_GdkVisualType_symbol, xg_GdkPropMode_symbol, xg_guchar__symbol, xg_PangoContext__symbol, xg_PangoDirection_symbol, xg_GdkKeymapKey__symbol, xg_GdkKeymap__symbol, xg_GdkRectangle__symbol, xg_char__symbol, xg_gchar___symbol, xg_GdkEventFunc_symbol, xg_gdouble_symbol, xg_GList__symbol, xg_guint32_symbol, xg_GdkDragAction_symbol, xg_GdkDragContext__symbol, xg_GdkCursorType_symbol, xg_GdkDisplay__symbol, xg_GdkCursor__symbol, xg_GdkVisual__symbol, xg_GSignalMatchType_symbol, xg_GConnectFlags_symbol, xg_GtkDestroyNotify_symbol, xg_GSignalEmissionHook_symbol, xg_gulong_symbol, xg_GSignalInvocationHint__symbol, xg_GQuark_symbol, xg_guint__symbol, xg_GSignalQuery__symbol, xg_GType__symbol, xg_GSignalCMarshaller_symbol, xg_gpointer_symbol, xg_GSignalAccumulator_symbol, xg_GSignalFlags_symbol, xg_GType_symbol, xg_GClosureNotify_symbol, xg_GCallback_symbol, xg_GNormalizeMode_symbol, xg_glong_symbol, xg_gssize_symbol, xg_gunichar__symbol, xg_void_symbol, xg_GdkSeat__symbol, xg_GtkRecentInfo__symbol, xg_gsize_symbol, xg_guint8__symbol, xg_GdkAtom_symbol, xg_GLogLevelFlags_symbol, xg_GdkPixbuf__symbol, xg_GtkIconView__symbol, xg_GtkEntryCompletion__symbol, xg_GtkFileFilterInfo__symbol, xg_GtkTreeSelection__symbol, xg_GtkCellRenderer__symbol, xg_GtkTreeViewColumn__symbol, xg_GtkTreeView__symbol, xg_gunichar_symbol, xg_gint_symbol, xg_GdkAtom__symbol, xg_GtkSelectionData__symbol, xg_GtkClipboard__symbol, xg_GtkTreeIter__symbol, xg_GtkTreePath__symbol, xg_GtkTreeModel__symbol, xg_gboolean_symbol, xg_GdkModifierType_symbol, xg_guint_symbol, xg_gchar__symbol, xg_GtkTextTag__symbol, xg_GdkXEvent__symbol, xg_GtkWidget__symbol, xg_lambda_data_symbol, xg_GClosure__symbol, xg_GtkAccelKey__symbol, xg_GdkEventMotion__symbol, xg_gdouble__symbol, xg_GdkEventAny__symbol, xg_GdkEvent__symbol, xg_GdkWindow__symbol, xg_cairo_t__symbol, xg_cairo_font_options_t__symbol, xg_PangoFontDescription__symbol, xg_idler_symbol, xg_GtkCellRendererPixbuf__symbol, xg_GtkCheckButton__symbol, xg_GtkDrawingArea__symbol, xg_GtkScrollbar__symbol, xg_GtkSeparator__symbol, xg_GtkSeparatorMenuItem__symbol, xg_GdkEventExpose__symbol, xg_GdkEventNoExpose__symbol, xg_GdkEventVisibility__symbol, xg_GdkEventButton__symbol, xg_GdkEventScroll__symbol, xg_GdkEventCrossing__symbol, xg_GdkEventFocus__symbol, xg_GdkEventConfigure__symbol, xg_GdkEventProperty__symbol, xg_GdkEventSelection__symbol, xg_GdkEventProximity__symbol, xg_GdkEventSetting__symbol, xg_GdkEventWindowState__symbol, xg_GdkEventDND__symbol, xg_GtkFileChooserDialog__symbol, xg_GtkFileChooserWidget__symbol, xg_GtkColorButton__symbol, xg_GtkAccelMap_symbol, xg_GtkCellRendererCombo__symbol, xg_GtkCellRendererProgress__symbol, xg_GtkCellRendererAccel__symbol, xg_GtkCellRendererSpin__symbol, xg_GtkRecentChooserDialog__symbol, xg_GtkRecentChooserWidget__symbol, xg_GtkCellRendererSpinner__symbol, xg_gboolean__symbol, xg_GtkFontChooserDialog__symbol, xg_GtkFontChooserWidget__symbol, xg_GtkColorChooserDialog__symbol, xg_GtkColorChooserWidget__symbol, xg_GtkColorWidget__symbol, xg_GtkGestureLongPress__symbol;
 
 #define wrap_for_Xen(Name, Value) Xen_list_2(xg_ ## Name ## _symbol, Xen_wrap_C_pointer(Value))
 #define is_wrapped(Name, Value) (Xen_is_pair(Value) && (Xen_car(Value) == xg_ ## Name ## _symbol))
@@ -241,7 +241,6 @@ static Xen xg_GtkShortcutLabel__symbol, xg_GtkPadActionType_symbol, xg_GtkPadAct
 #define Xen_is_GtkDestroyNotify(Arg)  Xen_is_false(Arg) || (Xen_is_procedure(Arg) && (Xen_is_aritable(Arg, 1)))
 #define Xen_is_GdkFilterFunc(Arg)  Xen_is_false(Arg) || (Xen_is_procedure(Arg) && (Xen_is_aritable(Arg, 3)))
 #define Xen_is_GdkEventFunc(Arg)  Xen_is_false(Arg) || (Xen_is_procedure(Arg) && (Xen_is_aritable(Arg, 2)))
-#define Xen_is_GtkMenuPositionFunc(Arg)  Xen_is_false(Arg) || (Xen_is_procedure(Arg) && (Xen_is_aritable(Arg, 5)))
 #define Xen_is_GtkTextTagTableForeach(Arg)  Xen_is_false(Arg) || (Xen_is_procedure(Arg) && (Xen_is_aritable(Arg, 2)))
 #define Xen_is_GtkAccelMapForeach(Arg)  Xen_is_false(Arg) || (Xen_is_procedure(Arg) && (Xen_is_aritable(Arg, 5)))
 #define Xen_is_GtkTreeModelForeachFunc(Arg)  Xen_is_false(Arg) || (Xen_is_procedure(Arg) && (Xen_is_aritable(Arg, 4)))
@@ -276,7 +275,6 @@ static Xen xg_GtkShortcutLabel__symbol, xg_GtkPadActionType_symbol, xg_GtkPadAct
 #define Xen_to_C_GtkDestroyNotify(Arg) Xen_is_false(Arg) ? NULL : gxg_destroy_func
 #define Xen_to_C_GdkFilterFunc(Arg) Xen_is_false(Arg) ? NULL : gxg_filter_func
 #define Xen_to_C_GdkEventFunc(Arg) Xen_is_false(Arg) ? NULL : gxg_event_func
-#define Xen_to_C_GtkMenuPositionFunc(Arg) Xen_is_false(Arg) ? NULL : gxg_menu_position_func
 #define Xen_to_C_GtkTextTagTableForeach(Arg) Xen_is_false(Arg) ? NULL : gxg_text_tag_table_foreach
 #define Xen_to_C_GtkAccelMapForeach(Arg) Xen_is_false(Arg) ? NULL : gxg_accel_map_foreach
 #define Xen_to_C_GtkTreeModelForeachFunc(Arg) Xen_is_false(Arg) ? NULL : gxg_model_func
@@ -330,7 +328,6 @@ Xm_type_Ptr(PangoFontDescription_, PangoFontDescription*)
 Xm_type_Ptr(cairo_font_options_t_, cairo_font_options_t*)
 Xm_type_Ptr(cairo_t_, cairo_t*)
 Xm_type_Ptr(GdkWindow_, GdkWindow*)
-Xm_type_Ptr_2(gboolean_, gboolean*)
 Xm_type_Ptr(GdkEvent_, GdkEvent*)
 Xm_type_Ptr_2(GdkEventAny_, GdkEventAny*)
 Xm_type_Ptr_1(gdouble_, gdouble*)
@@ -339,13 +336,6 @@ Xm_type_Ptr(GtkAccelKey_, GtkAccelKey*)
 Xm_type_Ptr(GClosure_, GClosure*)
 Xm_type_Ptr(GtkWidget_, GtkWidget*)
 Xm_type_Ptr_2(GdkXEvent_, GdkXEvent*)
-Xm_type_Ptr(GtkMenu_, GtkMenu*)
-#define C_to_Xen_gint(Arg) C_int_to_Xen_integer(Arg)
-#define Xen_to_C_gint(Arg) (gint)(Xen_integer_to_C_int(Arg))
-#define Xen_is_gint(Arg) Xen_is_integer(Arg)
-#define C_to_Xen_gboolean(Arg) C_bool_to_Xen_boolean(Arg)
-#define Xen_to_C_gboolean(Arg) (gboolean)(Xen_boolean_to_C_bool(Arg))
-#define Xen_is_gboolean(Arg) Xen_is_boolean(Arg)
 Xm_type_Ptr(GtkTextTag_, GtkTextTag*)
 #define C_to_Xen_gchar_(Arg) C_string_to_Xen_string(Arg)
 #define Xen_to_C_gchar_(Arg) (gchar*)(Xen_string_to_C_string(Arg))
@@ -356,12 +346,18 @@ Xm_type_Ptr(GtkTextTag_, GtkTextTag*)
 #define C_to_Xen_GdkModifierType(Arg) C_int_to_Xen_integer(Arg)
 #define Xen_to_C_GdkModifierType(Arg) (GdkModifierType)(Xen_integer_to_C_int(Arg))
 #define Xen_is_GdkModifierType(Arg) Xen_is_integer(Arg)
+#define C_to_Xen_gboolean(Arg) C_bool_to_Xen_boolean(Arg)
+#define Xen_to_C_gboolean(Arg) (gboolean)(Xen_boolean_to_C_bool(Arg))
+#define Xen_is_gboolean(Arg) Xen_is_boolean(Arg)
 Xm_type_Ptr(GtkTreeModel_, GtkTreeModel*)
 Xm_type_Ptr(GtkTreePath_, GtkTreePath*)
 Xm_type_Ptr(GtkTreeIter_, GtkTreeIter*)
 Xm_type_Ptr(GtkClipboard_, GtkClipboard*)
 Xm_type_Ptr(GtkSelectionData_, GtkSelectionData*)
 Xm_type_Ptr(GdkAtom_, GdkAtom*)
+#define C_to_Xen_gint(Arg) C_int_to_Xen_integer(Arg)
+#define Xen_to_C_gint(Arg) (gint)(Xen_integer_to_C_int(Arg))
+#define Xen_is_gint(Arg) Xen_is_integer(Arg)
 #define C_to_Xen_gunichar(Arg) C_ulong_to_Xen_ulong(Arg)
 #define Xen_to_C_gunichar(Arg) (gunichar)(Xen_ulong_to_C_ulong(Arg))
 #define Xen_is_gunichar(Arg) Xen_is_ulong(Arg)
@@ -549,6 +545,7 @@ Xm_type_Ptr_1(GtkLabel_, GtkLabel*)
 Xm_type_Ptr_1(GtkLayout_, GtkLayout*)
 Xm_type_Ptr(GtkListStore_, GtkListStore*)
 Xm_type_Ptr(PangoLanguage_, PangoLanguage*)
+Xm_type_Ptr(GtkMenu_, GtkMenu*)
 Xm_type_Ptr_1(GtkMenuItem_, GtkMenuItem*)
 Xm_type_Ptr_1(GtkMenuShell_, GtkMenuShell*)
 Xm_type_Ptr_1(GtkNotebook_, GtkNotebook*)
@@ -1164,18 +1161,6 @@ static void gxg_event_func(GdkEvent* event, gpointer func_info)
              __func__);
 }
 
-static void gxg_menu_position_func(GtkMenu* menu, gint* x, gint* y, gboolean* push, gpointer func_info)
-{
-  if (!Xen_is_list((Xen)func_info)) return;
-  Xen_call_with_5_args(Xen_car((Xen)func_info),
-             C_to_Xen_GtkMenu_(menu),
-             C_to_Xen_gint_(x),
-             C_to_Xen_gint_(y),
-             C_to_Xen_gboolean_(push),
-             Xen_cadr((Xen)func_info),
-             __func__);
-}
-
 static void gxg_text_tag_table_foreach(GtkTextTag* tag, gpointer func_info)
 {
   if (!Xen_is_list((Xen)func_info)) return;
@@ -2421,30 +2406,6 @@ static Xen gxg_gdk_notify_startup_complete(void)
   return(Xen_false);
 }
 
-static Xen gxg_gdk_screen_width(void)
-{
-  #define H_gdk_screen_width "gint gdk_screen_width( void)"
-  return(C_to_Xen_gint(gdk_screen_width()));
-}
-
-static Xen gxg_gdk_screen_height(void)
-{
-  #define H_gdk_screen_height "gint gdk_screen_height( void)"
-  return(C_to_Xen_gint(gdk_screen_height()));
-}
-
-static Xen gxg_gdk_screen_width_mm(void)
-{
-  #define H_gdk_screen_width_mm "gint gdk_screen_width_mm( void)"
-  return(C_to_Xen_gint(gdk_screen_width_mm()));
-}
-
-static Xen gxg_gdk_screen_height_mm(void)
-{
-  #define H_gdk_screen_height_mm "gint gdk_screen_height_mm( void)"
-  return(C_to_Xen_gint(gdk_screen_height_mm()));
-}
-
 static Xen gxg_gdk_flush(void)
 {
   #define H_gdk_flush "void gdk_flush( void)"
@@ -3295,14 +3256,6 @@ static Xen gxg_gdk_window_process_updates(Xen window, Xen update_children)
   return(Xen_false);
 }
 
-static Xen gxg_gdk_window_set_debug_updates(Xen setting)
-{
-  #define H_gdk_window_set_debug_updates "void gdk_window_set_debug_updates(gboolean setting)"
-  Xen_check_type(Xen_is_gboolean(setting), setting, 1, "gdk_window_set_debug_updates", "gboolean");
-  gdk_window_set_debug_updates(Xen_to_C_gboolean(setting));
-  return(Xen_false);
-}
-
 static Xen gxg_gdk_window_constrain_size(Xen geometry, Xen flags, Xen width, Xen height, Xen ignore_new_width, Xen ignore_new_height)
 {
   #define H_gdk_window_constrain_size "void gdk_window_constrain_size(GdkGeometry* geometry, GdkWindowHints flags, \
@@ -6412,26 +6365,6 @@ static Xen gxg_gtk_menu_new(void)
   return(C_to_Xen_GtkWidget_(gtk_menu_new()));
 }
 
-static Xen gxg_gtk_menu_popup(Xen menu, Xen parent_menu_shell, Xen parent_menu_item, Xen func, Xen func_info, Xen button, Xen activate_time)
-{
-  #define H_gtk_menu_popup "void gtk_menu_popup(GtkMenu* menu, GtkWidget* parent_menu_shell, GtkWidget* parent_menu_item, \
-GtkMenuPositionFunc func, lambda_data func_info, guint button, guint32 activate_time)"
-  Xen_check_type(Xen_is_GtkMenu_(menu), menu, 1, "gtk_menu_popup", "GtkMenu*");
-  Xen_check_type(Xen_is_GtkWidget_(parent_menu_shell) || Xen_is_false(parent_menu_shell), parent_menu_shell, 2, "gtk_menu_popup", "GtkWidget*");
-  Xen_check_type(Xen_is_GtkWidget_(parent_menu_item) || Xen_is_false(parent_menu_item), parent_menu_item, 3, "gtk_menu_popup", "GtkWidget*");
-  Xen_check_type(Xen_is_GtkMenuPositionFunc(func), func, 4, "gtk_menu_popup", "GtkMenuPositionFunc");
-  Xen_check_type(Xen_is_lambda_data(func_info), func_info, 5, "gtk_menu_popup", "lambda_data");
-  Xen_check_type(Xen_is_guint(button), button, 6, "gtk_menu_popup", "guint");
-  Xen_check_type(Xen_is_guint32(activate_time), activate_time, 7, "gtk_menu_popup", "guint32");
-  {
-    Xen gxg_ptr = Xen_list_5(func, func_info, Xen_false, Xen_false, Xen_false);
-    xm_protect(gxg_ptr);
-    gtk_menu_popup(Xen_to_C_GtkMenu_(menu), Xen_to_C_GtkWidget_(parent_menu_shell), Xen_to_C_GtkWidget_(parent_menu_item), Xen_to_C_GtkMenuPositionFunc(func), 
-               Xen_to_C_lambda_data(func_info), Xen_to_C_guint(button), Xen_to_C_guint32(activate_time));
-    return(Xen_false);
-   }
-}
-
 static Xen gxg_gtk_menu_reposition(Xen menu)
 {
   #define H_gtk_menu_reposition "void gtk_menu_reposition(GtkMenu* menu)"
@@ -12667,17 +12600,6 @@ static Xen gxg_gtk_window_get_title(Xen window)
   return(C_to_Xen_gchar_(gtk_window_get_title(Xen_to_C_GtkWindow_(window))));
 }
 
-static Xen gxg_gtk_window_set_wmclass(Xen window, Xen wmclass_name, Xen wmclass_class)
-{
-  #define H_gtk_window_set_wmclass "void gtk_window_set_wmclass(GtkWindow* window, gchar* wmclass_name, \
-gchar* wmclass_class)"
-  Xen_check_type(Xen_is_GtkWindow_(window), window, 1, "gtk_window_set_wmclass", "GtkWindow*");
-  Xen_check_type(Xen_is_gchar_(wmclass_name), wmclass_name, 2, "gtk_window_set_wmclass", "gchar*");
-  Xen_check_type(Xen_is_gchar_(wmclass_class), wmclass_class, 3, "gtk_window_set_wmclass", "gchar*");
-  gtk_window_set_wmclass(Xen_to_C_GtkWindow_(window), Xen_to_C_gchar_(wmclass_name), Xen_to_C_gchar_(wmclass_class));
-  return(Xen_false);
-}
-
 static Xen gxg_gtk_window_set_role(Xen window, Xen role)
 {
   #define H_gtk_window_set_role "void gtk_window_set_role(GtkWindow* window, gchar* role)"
@@ -15036,41 +14958,6 @@ static Xen gxg_gdk_screen_get_display(Xen screen)
   return(C_to_Xen_GdkDisplay_(gdk_screen_get_display(Xen_to_C_GdkScreen_(screen))));
 }
 
-static Xen gxg_gdk_screen_get_number(Xen screen)
-{
-  #define H_gdk_screen_get_number "int gdk_screen_get_number(GdkScreen* screen)"
-  Xen_check_type(Xen_is_GdkScreen_(screen), screen, 1, "gdk_screen_get_number", "GdkScreen*");
-  return(C_to_Xen_int(gdk_screen_get_number(Xen_to_C_GdkScreen_(screen))));
-}
-
-static Xen gxg_gdk_screen_get_width(Xen screen)
-{
-  #define H_gdk_screen_get_width "int gdk_screen_get_width(GdkScreen* screen)"
-  Xen_check_type(Xen_is_GdkScreen_(screen), screen, 1, "gdk_screen_get_width", "GdkScreen*");
-  return(C_to_Xen_int(gdk_screen_get_width(Xen_to_C_GdkScreen_(screen))));
-}
-
-static Xen gxg_gdk_screen_get_height(Xen screen)
-{
-  #define H_gdk_screen_get_height "int gdk_screen_get_height(GdkScreen* screen)"
-  Xen_check_type(Xen_is_GdkScreen_(screen), screen, 1, "gdk_screen_get_height", "GdkScreen*");
-  return(C_to_Xen_int(gdk_screen_get_height(Xen_to_C_GdkScreen_(screen))));
-}
-
-static Xen gxg_gdk_screen_get_width_mm(Xen screen)
-{
-  #define H_gdk_screen_get_width_mm "int gdk_screen_get_width_mm(GdkScreen* screen)"
-  Xen_check_type(Xen_is_GdkScreen_(screen), screen, 1, "gdk_screen_get_width_mm", "GdkScreen*");
-  return(C_to_Xen_int(gdk_screen_get_width_mm(Xen_to_C_GdkScreen_(screen))));
-}
-
-static Xen gxg_gdk_screen_get_height_mm(Xen screen)
-{
-  #define H_gdk_screen_get_height_mm "int gdk_screen_get_height_mm(GdkScreen* screen)"
-  Xen_check_type(Xen_is_GdkScreen_(screen), screen, 1, "gdk_screen_get_height_mm", "GdkScreen*");
-  return(C_to_Xen_int(gdk_screen_get_height_mm(Xen_to_C_GdkScreen_(screen))));
-}
-
 static Xen gxg_gdk_screen_list_visuals(Xen screen)
 {
   #define H_gdk_screen_list_visuals "GList* gdk_screen_list_visuals(GdkScreen* screen)"
@@ -15085,57 +14972,6 @@ static Xen gxg_gdk_screen_get_toplevel_windows(Xen screen)
   return(C_to_Xen_GList_(gdk_screen_get_toplevel_windows(Xen_to_C_GdkScreen_(screen))));
 }
 
-static Xen gxg_gdk_screen_make_display_name(Xen screen)
-{
-  #define H_gdk_screen_make_display_name "gchar* gdk_screen_make_display_name(GdkScreen* screen)"
-  Xen_check_type(Xen_is_GdkScreen_(screen), screen, 1, "gdk_screen_make_display_name", "GdkScreen*");
-  {
-   gchar* result;
-   Xen rtn;
-   result = gdk_screen_make_display_name(Xen_to_C_GdkScreen_(screen));
-   rtn = C_to_Xen_gchar_(result);
-   g_free(result);
-   return(rtn);
-  }
-}
-
-static Xen gxg_gdk_screen_get_n_monitors(Xen screen)
-{
-  #define H_gdk_screen_get_n_monitors "int gdk_screen_get_n_monitors(GdkScreen* screen)"
-  Xen_check_type(Xen_is_GdkScreen_(screen), screen, 1, "gdk_screen_get_n_monitors", "GdkScreen*");
-  return(C_to_Xen_int(gdk_screen_get_n_monitors(Xen_to_C_GdkScreen_(screen))));
-}
-
-static Xen gxg_gdk_screen_get_monitor_geometry(Xen screen, Xen monitor_num, Xen dest)
-{
-  #define H_gdk_screen_get_monitor_geometry "void gdk_screen_get_monitor_geometry(GdkScreen* screen, \
-int monitor_num, GdkRectangle* dest)"
-  Xen_check_type(Xen_is_GdkScreen_(screen), screen, 1, "gdk_screen_get_monitor_geometry", "GdkScreen*");
-  Xen_check_type(Xen_is_int(monitor_num), monitor_num, 2, "gdk_screen_get_monitor_geometry", "int");
-  Xen_check_type(Xen_is_GdkRectangle_(dest), dest, 3, "gdk_screen_get_monitor_geometry", "GdkRectangle*");
-  gdk_screen_get_monitor_geometry(Xen_to_C_GdkScreen_(screen), Xen_to_C_int(monitor_num), Xen_to_C_GdkRectangle_(dest));
-  return(Xen_false);
-}
-
-static Xen gxg_gdk_screen_get_monitor_at_point(Xen screen, Xen x, Xen y)
-{
-  #define H_gdk_screen_get_monitor_at_point "int gdk_screen_get_monitor_at_point(GdkScreen* screen, int x, \
-int y)"
-  Xen_check_type(Xen_is_GdkScreen_(screen), screen, 1, "gdk_screen_get_monitor_at_point", "GdkScreen*");
-  Xen_check_type(Xen_is_int(x), x, 2, "gdk_screen_get_monitor_at_point", "int");
-  Xen_check_type(Xen_is_int(y), y, 3, "gdk_screen_get_monitor_at_point", "int");
-  return(C_to_Xen_int(gdk_screen_get_monitor_at_point(Xen_to_C_GdkScreen_(screen), Xen_to_C_int(x), Xen_to_C_int(y))));
-}
-
-static Xen gxg_gdk_screen_get_monitor_at_window(Xen screen, Xen window)
-{
-  #define H_gdk_screen_get_monitor_at_window "int gdk_screen_get_monitor_at_window(GdkScreen* screen, \
-GdkWindow* window)"
-  Xen_check_type(Xen_is_GdkScreen_(screen), screen, 1, "gdk_screen_get_monitor_at_window", "GdkScreen*");
-  Xen_check_type(Xen_is_GdkWindow_(window), window, 2, "gdk_screen_get_monitor_at_window", "GdkWindow*");
-  return(C_to_Xen_int(gdk_screen_get_monitor_at_window(Xen_to_C_GdkScreen_(screen), Xen_to_C_GdkWindow_(window))));
-}
-
 static Xen gxg_gdk_screen_get_default(void)
 {
   #define H_gdk_screen_get_default "GdkScreen* gdk_screen_get_default( void)"
@@ -19791,13 +19627,6 @@ static Xen gxg_gdk_screen_get_resolution(Xen screen)
   return(C_to_Xen_gdouble(gdk_screen_get_resolution(Xen_to_C_GdkScreen_(screen))));
 }
 
-static Xen gxg_gdk_screen_get_active_window(Xen screen)
-{
-  #define H_gdk_screen_get_active_window "GdkWindow* gdk_screen_get_active_window(GdkScreen* screen)"
-  Xen_check_type(Xen_is_GdkScreen_(screen), screen, 1, "gdk_screen_get_active_window", "GdkScreen*");
-  return(C_to_Xen_GdkWindow_(gdk_screen_get_active_window(Xen_to_C_GdkScreen_(screen))));
-}
-
 static Xen gxg_gdk_screen_get_window_stack(Xen screen)
 {
   #define H_gdk_screen_get_window_stack "GList* gdk_screen_get_window_stack(GdkScreen* screen)"
@@ -23055,33 +22884,6 @@ static Xen gxg_gtk_calendar_get_detail_height_rows(Xen calendar)
   return(C_to_Xen_gint(gtk_calendar_get_detail_height_rows(Xen_to_C_GtkCalendar_(calendar))));
 }
 
-static Xen gxg_gdk_screen_get_monitor_width_mm(Xen screen, Xen monitor_num)
-{
-  #define H_gdk_screen_get_monitor_width_mm "gint gdk_screen_get_monitor_width_mm(GdkScreen* screen, \
-gint monitor_num)"
-  Xen_check_type(Xen_is_GdkScreen_(screen), screen, 1, "gdk_screen_get_monitor_width_mm", "GdkScreen*");
-  Xen_check_type(Xen_is_gint(monitor_num), monitor_num, 2, "gdk_screen_get_monitor_width_mm", "gint");
-  return(C_to_Xen_gint(gdk_screen_get_monitor_width_mm(Xen_to_C_GdkScreen_(screen), Xen_to_C_gint(monitor_num))));
-}
-
-static Xen gxg_gdk_screen_get_monitor_height_mm(Xen screen, Xen monitor_num)
-{
-  #define H_gdk_screen_get_monitor_height_mm "gint gdk_screen_get_monitor_height_mm(GdkScreen* screen, \
-gint monitor_num)"
-  Xen_check_type(Xen_is_GdkScreen_(screen), screen, 1, "gdk_screen_get_monitor_height_mm", "GdkScreen*");
-  Xen_check_type(Xen_is_gint(monitor_num), monitor_num, 2, "gdk_screen_get_monitor_height_mm", "gint");
-  return(C_to_Xen_gint(gdk_screen_get_monitor_height_mm(Xen_to_C_GdkScreen_(screen), Xen_to_C_gint(monitor_num))));
-}
-
-static Xen gxg_gdk_screen_get_monitor_plug_name(Xen screen, Xen monitor_num)
-{
-  #define H_gdk_screen_get_monitor_plug_name "gchar* gdk_screen_get_monitor_plug_name(GdkScreen* screen, \
-gint monitor_num)"
-  Xen_check_type(Xen_is_GdkScreen_(screen), screen, 1, "gdk_screen_get_monitor_plug_name", "GdkScreen*");
-  Xen_check_type(Xen_is_gint(monitor_num), monitor_num, 2, "gdk_screen_get_monitor_plug_name", "gint");
-  return(C_to_Xen_gchar_(gdk_screen_get_monitor_plug_name(Xen_to_C_GdkScreen_(screen), Xen_to_C_gint(monitor_num))));
-}
-
 static Xen gxg_gtk_accel_group_get_is_locked(Xen accel_group)
 {
   #define H_gtk_accel_group_get_is_locked "gboolean gtk_accel_group_get_is_locked(GtkAccelGroup* accel_group)"
@@ -24809,13 +24611,6 @@ gint x, gint y)"
   return(C_to_Xen_GtkToolItem_(gtk_tool_item_group_get_drop_item(Xen_to_C_GtkToolItemGroup_(group), Xen_to_C_gint(x), Xen_to_C_gint(y))));
 }
 
-static Xen gxg_gdk_screen_get_primary_monitor(Xen screen)
-{
-  #define H_gdk_screen_get_primary_monitor "gint gdk_screen_get_primary_monitor(GdkScreen* screen)"
-  Xen_check_type(Xen_is_GdkScreen_(screen), screen, 1, "gdk_screen_get_primary_monitor", "GdkScreen*");
-  return(C_to_Xen_gint(gdk_screen_get_primary_monitor(Xen_to_C_GdkScreen_(screen))));
-}
-
 static Xen gxg_gtk_window_set_mnemonics_visible(Xen window, Xen setting)
 {
   #define H_gtk_window_set_mnemonics_visible "void gtk_window_set_mnemonics_visible(GtkWindow* window, \
@@ -25502,13 +25297,6 @@ static Xen gxg_gdk_display_is_closed(Xen display)
   return(C_to_Xen_gboolean(gdk_display_is_closed(Xen_to_C_GdkDisplay_(display))));
 }
 
-static Xen gxg_gdk_window_get_background_pattern(Xen window)
-{
-  #define H_gdk_window_get_background_pattern "cairo_pattern_t* gdk_window_get_background_pattern(GdkWindow* window)"
-  Xen_check_type(Xen_is_GdkWindow_(window), window, 1, "gdk_window_get_background_pattern", "GdkWindow*");
-  return(C_to_Xen_cairo_pattern_t_(gdk_window_get_background_pattern(Xen_to_C_GdkWindow_(window))));
-}
-
 static Xen gxg_gdk_window_create_similar_surface(Xen window, Xen content, Xen width, Xen height)
 {
   #define H_gdk_window_create_similar_surface "cairo_surface_t* gdk_window_create_similar_surface(GdkWindow* window, \
@@ -26159,15 +25947,6 @@ static Xen gxg_gdk_cairo_set_source_rgba(Xen cr, Xen rgba)
   return(Xen_false);
 }
 
-static Xen gxg_gdk_window_set_background_rgba(Xen window, Xen rgba)
-{
-  #define H_gdk_window_set_background_rgba "void gdk_window_set_background_rgba(GdkWindow* window, GdkRGBA* rgba)"
-  Xen_check_type(Xen_is_GdkWindow_(window), window, 1, "gdk_window_set_background_rgba", "GdkWindow*");
-  Xen_check_type(Xen_is_GdkRGBA_(rgba), rgba, 2, "gdk_window_set_background_rgba", "GdkRGBA*");
-  gdk_window_set_background_rgba(Xen_to_C_GdkWindow_(window), Xen_to_C_GdkRGBA_(rgba));
-  return(Xen_false);
-}
-
 static Xen gxg_gtk_cell_view_set_background_rgba(Xen cell_view, Xen rgba)
 {
   #define H_gtk_cell_view_set_background_rgba "void gtk_cell_view_set_background_rgba(GtkCellView* cell_view, \
@@ -27927,17 +27706,6 @@ guint accelerator_key, guint keycode, GdkModifierType accelerator_mods)"
                                                                 Xen_to_C_guint(keycode), Xen_to_C_GdkModifierType(accelerator_mods))));
 }
 
-static Xen gxg_gdk_screen_get_monitor_workarea(Xen screen, Xen monitor_num, Xen dest)
-{
-  #define H_gdk_screen_get_monitor_workarea "void gdk_screen_get_monitor_workarea(GdkScreen* screen, \
-gint monitor_num, GdkRectangle* dest)"
-  Xen_check_type(Xen_is_GdkScreen_(screen), screen, 1, "gdk_screen_get_monitor_workarea", "GdkScreen*");
-  Xen_check_type(Xen_is_gint(monitor_num), monitor_num, 2, "gdk_screen_get_monitor_workarea", "gint");
-  Xen_check_type(Xen_is_GdkRectangle_(dest), dest, 3, "gdk_screen_get_monitor_workarea", "GdkRectangle*");
-  gdk_screen_get_monitor_workarea(Xen_to_C_GdkScreen_(screen), Xen_to_C_gint(monitor_num), Xen_to_C_GdkRectangle_(dest));
-  return(Xen_false);
-}
-
 static Xen gxg_gtk_application_get_app_menu(Xen application)
 {
   #define H_gtk_application_get_app_menu "GMenuModel* gtk_application_get_app_menu(GtkApplication* application)"
@@ -29401,15 +29169,6 @@ gdouble* [win_x], gdouble* [win_y])"
    }
 }
 
-static Xen gxg_gdk_screen_get_monitor_scale_factor(Xen screen, Xen monitor_num)
-{
-  #define H_gdk_screen_get_monitor_scale_factor "gint gdk_screen_get_monitor_scale_factor(GdkScreen* screen, \
-gint monitor_num)"
-  Xen_check_type(Xen_is_GdkScreen_(screen), screen, 1, "gdk_screen_get_monitor_scale_factor", "GdkScreen*");
-  Xen_check_type(Xen_is_gint(monitor_num), monitor_num, 2, "gdk_screen_get_monitor_scale_factor", "gint");
-  return(C_to_Xen_gint(gdk_screen_get_monitor_scale_factor(Xen_to_C_GdkScreen_(screen), Xen_to_C_gint(monitor_num))));
-}
-
 static Xen gxg_gdk_window_get_scale_factor(Xen window)
 {
   #define H_gdk_window_get_scale_factor "gint gdk_window_get_scale_factor(GdkWindow* window)"
@@ -32192,10 +31951,10 @@ static Xen gxg_gdk_event_get_scancode(Xen event)
 
 static Xen gxg_gdk_gl_context_set_use_es(Xen context, Xen use_es)
 {
-  #define H_gdk_gl_context_set_use_es "void gdk_gl_context_set_use_es(GdkGLContext* context, gboolean use_es)"
+  #define H_gdk_gl_context_set_use_es "void gdk_gl_context_set_use_es(GdkGLContext* context, int use_es)"
   Xen_check_type(Xen_is_GdkGLContext_(context), context, 1, "gdk_gl_context_set_use_es", "GdkGLContext*");
-  Xen_check_type(Xen_is_gboolean(use_es), use_es, 2, "gdk_gl_context_set_use_es", "gboolean");
-  gdk_gl_context_set_use_es(Xen_to_C_GdkGLContext_(context), Xen_to_C_gboolean(use_es));
+  Xen_check_type(Xen_is_int(use_es), use_es, 2, "gdk_gl_context_set_use_es", "int");
+  gdk_gl_context_set_use_es(Xen_to_C_GdkGLContext_(context), Xen_to_C_int(use_es));
   return(Xen_false);
 }
 
@@ -35731,12 +35490,6 @@ static Xen c_array_to_xen_list(Xen val_1, Xen clen)
   if (!(Xen_is_list(val_1))) return(Xen_false); /* type:location cons */
   val = Xen_copy_arg(val_1); /* protect Ruby arg */
   ctype = Xen_car(val);
-  if (ctype == xg_gboolean__symbol)
-    {
-      gboolean* arr; arr = (gboolean*)Xen_unwrap_C_pointer(Xen_cadr(val)); 
-      if (len == -1) {for (i = 0; arr[i]; i++) {}; len = i;}
-      for (i = len - 1; i >= 0; i--) result = Xen_cons(C_to_Xen_gboolean(arr[i]), result);
-    }
   if (ctype == xg_gdouble__symbol)
     {
       gdouble* arr; arr = (gdouble*)Xen_unwrap_C_pointer(Xen_cadr(val)); 
@@ -35880,12 +35633,6 @@ static Xen xen_list_to_c_array(Xen val, Xen type)
 {
   int i, len;
   len = Xen_list_length(val);
-  if (type == xg_gboolean__symbol)
-    {
-      gboolean* arr; arr = (gboolean*)calloc(len + 1, sizeof(gboolean));
-      for (i = 0; i < len; i++, val = Xen_cdr(val)) arr[i] = Xen_to_C_gboolean(Xen_car(val));
-      return(Xen_list_3(xg_gboolean__symbol, Xen_wrap_C_pointer(arr), make_xm_obj(arr)));
-    }
   if (type == xg_gdouble__symbol)
     {
       gdouble* arr; arr = (gdouble*)calloc(len + 1, sizeof(gdouble));
@@ -36189,10 +35936,6 @@ Xen_wrap_no_args(gxg_gdk_error_trap_push_w, gxg_gdk_error_trap_push)
 Xen_wrap_no_args(gxg_gdk_error_trap_pop_w, gxg_gdk_error_trap_pop)
 Xen_wrap_no_args(gxg_gdk_get_display_arg_name_w, gxg_gdk_get_display_arg_name)
 Xen_wrap_no_args(gxg_gdk_notify_startup_complete_w, gxg_gdk_notify_startup_complete)
-Xen_wrap_no_args(gxg_gdk_screen_width_w, gxg_gdk_screen_width)
-Xen_wrap_no_args(gxg_gdk_screen_height_w, gxg_gdk_screen_height)
-Xen_wrap_no_args(gxg_gdk_screen_width_mm_w, gxg_gdk_screen_width_mm)
-Xen_wrap_no_args(gxg_gdk_screen_height_mm_w, gxg_gdk_screen_height_mm)
 Xen_wrap_no_args(gxg_gdk_flush_w, gxg_gdk_flush)
 Xen_wrap_no_args(gxg_gdk_beep_w, gxg_gdk_beep)
 Xen_wrap_1_arg(gxg_gdk_set_double_click_time_w, gxg_gdk_set_double_click_time)
@@ -36284,7 +36027,6 @@ Xen_wrap_1_arg(gxg_gdk_window_freeze_updates_w, gxg_gdk_window_freeze_updates)
 Xen_wrap_1_arg(gxg_gdk_window_thaw_updates_w, gxg_gdk_window_thaw_updates)
 Xen_wrap_no_args(gxg_gdk_window_process_all_updates_w, gxg_gdk_window_process_all_updates)
 Xen_wrap_2_args(gxg_gdk_window_process_updates_w, gxg_gdk_window_process_updates)
-Xen_wrap_1_arg(gxg_gdk_window_set_debug_updates_w, gxg_gdk_window_set_debug_updates)
 Xen_wrap_6_optional_args(gxg_gdk_window_constrain_size_w, gxg_gdk_window_constrain_size)
 Xen_wrap_2_args(gxg_gdk_window_set_type_hint_w, gxg_gdk_window_set_type_hint)
 Xen_wrap_2_args(gxg_gdk_window_set_modal_hint_w, gxg_gdk_window_set_modal_hint)
@@ -36604,7 +36346,6 @@ Xen_wrap_1_arg(gxg_gtk_get_event_widget_w, gxg_gtk_get_event_widget)
 Xen_wrap_2_args(gxg_gtk_propagate_event_w, gxg_gtk_propagate_event)
 Xen_wrap_no_args(gxg_gtk_menu_bar_new_w, gxg_gtk_menu_bar_new)
 Xen_wrap_no_args(gxg_gtk_menu_new_w, gxg_gtk_menu_new)
-Xen_wrap_7_args(gxg_gtk_menu_popup_w, gxg_gtk_menu_popup)
 Xen_wrap_1_arg(gxg_gtk_menu_reposition_w, gxg_gtk_menu_reposition)
 Xen_wrap_1_arg(gxg_gtk_menu_popdown_w, gxg_gtk_menu_popdown)
 Xen_wrap_1_arg(gxg_gtk_menu_get_active_w, gxg_gtk_menu_get_active)
@@ -37259,7 +37000,6 @@ Xen_wrap_1_arg(gxg_gtk_window_new_w, gxg_gtk_window_new)
 Xen_wrap_2_args(gxg_gtk_window_set_title_w, gxg_gtk_window_set_title)
 Xen_wrap_1_arg(gxg_gtk_window_set_auto_startup_notification_w, gxg_gtk_window_set_auto_startup_notification)
 Xen_wrap_1_arg(gxg_gtk_window_get_title_w, gxg_gtk_window_get_title)
-Xen_wrap_3_args(gxg_gtk_window_set_wmclass_w, gxg_gtk_window_set_wmclass)
 Xen_wrap_2_args(gxg_gtk_window_set_role_w, gxg_gtk_window_set_role)
 Xen_wrap_1_arg(gxg_gtk_window_get_role_w, gxg_gtk_window_get_role)
 Xen_wrap_2_args(gxg_gtk_window_add_accel_group_w, gxg_gtk_window_add_accel_group)
@@ -37524,18 +37264,8 @@ Xen_wrap_no_args(gxg_gdk_display_get_default_w, gxg_gdk_display_get_default)
 Xen_wrap_1_arg(gxg_gdk_screen_get_system_visual_w, gxg_gdk_screen_get_system_visual)
 Xen_wrap_1_arg(gxg_gdk_screen_get_root_window_w, gxg_gdk_screen_get_root_window)
 Xen_wrap_1_arg(gxg_gdk_screen_get_display_w, gxg_gdk_screen_get_display)
-Xen_wrap_1_arg(gxg_gdk_screen_get_number_w, gxg_gdk_screen_get_number)
-Xen_wrap_1_arg(gxg_gdk_screen_get_width_w, gxg_gdk_screen_get_width)
-Xen_wrap_1_arg(gxg_gdk_screen_get_height_w, gxg_gdk_screen_get_height)
-Xen_wrap_1_arg(gxg_gdk_screen_get_width_mm_w, gxg_gdk_screen_get_width_mm)
-Xen_wrap_1_arg(gxg_gdk_screen_get_height_mm_w, gxg_gdk_screen_get_height_mm)
 Xen_wrap_1_arg(gxg_gdk_screen_list_visuals_w, gxg_gdk_screen_list_visuals)
 Xen_wrap_1_arg(gxg_gdk_screen_get_toplevel_windows_w, gxg_gdk_screen_get_toplevel_windows)
-Xen_wrap_1_arg(gxg_gdk_screen_make_display_name_w, gxg_gdk_screen_make_display_name)
-Xen_wrap_1_arg(gxg_gdk_screen_get_n_monitors_w, gxg_gdk_screen_get_n_monitors)
-Xen_wrap_3_args(gxg_gdk_screen_get_monitor_geometry_w, gxg_gdk_screen_get_monitor_geometry)
-Xen_wrap_3_args(gxg_gdk_screen_get_monitor_at_point_w, gxg_gdk_screen_get_monitor_at_point)
-Xen_wrap_2_args(gxg_gdk_screen_get_monitor_at_window_w, gxg_gdk_screen_get_monitor_at_window)
 Xen_wrap_no_args(gxg_gdk_screen_get_default_w, gxg_gdk_screen_get_default)
 Xen_wrap_2_args(gxg_gtk_clipboard_get_for_display_w, gxg_gtk_clipboard_get_for_display)
 Xen_wrap_1_arg(gxg_gtk_clipboard_get_display_w, gxg_gtk_clipboard_get_display)
@@ -38051,7 +37781,6 @@ Xen_wrap_1_arg(gxg_gdk_display_supports_input_shapes_w, gxg_gdk_display_supports
 Xen_wrap_1_arg(gxg_gdk_screen_is_composited_w, gxg_gdk_screen_is_composited)
 Xen_wrap_2_args(gxg_gdk_screen_set_resolution_w, gxg_gdk_screen_set_resolution)
 Xen_wrap_1_arg(gxg_gdk_screen_get_resolution_w, gxg_gdk_screen_get_resolution)
-Xen_wrap_1_arg(gxg_gdk_screen_get_active_window_w, gxg_gdk_screen_get_active_window)
 Xen_wrap_1_arg(gxg_gdk_screen_get_window_stack_w, gxg_gdk_screen_get_window_stack)
 Xen_wrap_1_arg(gxg_gdk_window_get_type_hint_w, gxg_gdk_window_get_type_hint)
 Xen_wrap_4_optional_args(gxg_gtk_clipboard_request_rich_text_w, gxg_gtk_clipboard_request_rich_text)
@@ -38400,9 +38129,6 @@ Xen_wrap_2_args(gxg_gtk_calendar_set_detail_width_chars_w, gxg_gtk_calendar_set_
 Xen_wrap_2_args(gxg_gtk_calendar_set_detail_height_rows_w, gxg_gtk_calendar_set_detail_height_rows)
 Xen_wrap_1_arg(gxg_gtk_calendar_get_detail_width_chars_w, gxg_gtk_calendar_get_detail_width_chars)
 Xen_wrap_1_arg(gxg_gtk_calendar_get_detail_height_rows_w, gxg_gtk_calendar_get_detail_height_rows)
-Xen_wrap_2_args(gxg_gdk_screen_get_monitor_width_mm_w, gxg_gdk_screen_get_monitor_width_mm)
-Xen_wrap_2_args(gxg_gdk_screen_get_monitor_height_mm_w, gxg_gdk_screen_get_monitor_height_mm)
-Xen_wrap_2_args(gxg_gdk_screen_get_monitor_plug_name_w, gxg_gdk_screen_get_monitor_plug_name)
 Xen_wrap_1_arg(gxg_gtk_accel_group_get_is_locked_w, gxg_gtk_accel_group_get_is_locked)
 Xen_wrap_1_arg(gxg_gtk_container_get_focus_child_w, gxg_gtk_container_get_focus_child)
 Xen_wrap_1_arg(gxg_gtk_dialog_get_content_area_w, gxg_gtk_dialog_get_content_area)
@@ -38610,7 +38336,6 @@ Xen_wrap_2_args(gxg_gtk_tool_item_group_get_item_position_w, gxg_gtk_tool_item_g
 Xen_wrap_1_arg(gxg_gtk_tool_item_group_get_n_items_w, gxg_gtk_tool_item_group_get_n_items)
 Xen_wrap_2_args(gxg_gtk_tool_item_group_get_nth_item_w, gxg_gtk_tool_item_group_get_nth_item)
 Xen_wrap_3_args(gxg_gtk_tool_item_group_get_drop_item_w, gxg_gtk_tool_item_group_get_drop_item)
-Xen_wrap_1_arg(gxg_gdk_screen_get_primary_monitor_w, gxg_gdk_screen_get_primary_monitor)
 Xen_wrap_2_args(gxg_gtk_window_set_mnemonics_visible_w, gxg_gtk_window_set_mnemonics_visible)
 Xen_wrap_1_arg(gxg_gtk_window_get_mnemonics_visible_w, gxg_gtk_window_get_mnemonics_visible)
 Xen_wrap_2_args(gxg_gtk_range_set_slider_size_fixed_w, gxg_gtk_range_set_slider_size_fixed)
@@ -38689,7 +38414,6 @@ Xen_wrap_1_arg(gxg_gdk_keymap_get_num_lock_state_w, gxg_gdk_keymap_get_num_lock_
 Xen_wrap_1_arg(gxg_gdk_window_has_native_w, gxg_gdk_window_has_native)
 Xen_wrap_1_arg(gxg_gdk_cursor_get_cursor_type_w, gxg_gdk_cursor_get_cursor_type)
 Xen_wrap_1_arg(gxg_gdk_display_is_closed_w, gxg_gdk_display_is_closed)
-Xen_wrap_1_arg(gxg_gdk_window_get_background_pattern_w, gxg_gdk_window_get_background_pattern)
 Xen_wrap_4_args(gxg_gdk_window_create_similar_surface_w, gxg_gdk_window_create_similar_surface)
 Xen_wrap_2_args(gxg_gtk_expander_set_label_fill_w, gxg_gtk_expander_set_label_fill)
 Xen_wrap_1_arg(gxg_gtk_expander_get_label_fill_w, gxg_gtk_expander_get_label_fill)
@@ -38764,7 +38488,6 @@ Xen_wrap_2_args(gxg_gtk_combo_box_text_prepend_text_w, gxg_gtk_combo_box_text_pr
 Xen_wrap_2_args(gxg_gtk_combo_box_text_remove_w, gxg_gtk_combo_box_text_remove)
 Xen_wrap_1_arg(gxg_gtk_combo_box_text_get_active_text_w, gxg_gtk_combo_box_text_get_active_text)
 Xen_wrap_2_args(gxg_gdk_cairo_set_source_rgba_w, gxg_gdk_cairo_set_source_rgba)
-Xen_wrap_2_args(gxg_gdk_window_set_background_rgba_w, gxg_gdk_window_set_background_rgba)
 Xen_wrap_2_args(gxg_gtk_cell_view_set_background_rgba_w, gxg_gtk_cell_view_set_background_rgba)
 Xen_wrap_1_arg(gxg_gtk_combo_box_text_remove_all_w, gxg_gtk_combo_box_text_remove_all)
 Xen_wrap_2_args(gxg_gtk_combo_box_set_popup_fixed_width_w, gxg_gtk_combo_box_set_popup_fixed_width)
@@ -38970,7 +38693,6 @@ Xen_wrap_6_args(gxg_gdk_window_begin_move_drag_for_device_w, gxg_gdk_window_begi
 Xen_wrap_4_args(gxg_gtk_accelerator_parse_with_keycode_w, gxg_gtk_accelerator_parse_with_keycode)
 Xen_wrap_4_args(gxg_gtk_accelerator_name_with_keycode_w, gxg_gtk_accelerator_name_with_keycode)
 Xen_wrap_4_args(gxg_gtk_accelerator_get_label_with_keycode_w, gxg_gtk_accelerator_get_label_with_keycode)
-Xen_wrap_3_args(gxg_gdk_screen_get_monitor_workarea_w, gxg_gdk_screen_get_monitor_workarea)
 Xen_wrap_1_arg(gxg_gtk_application_get_app_menu_w, gxg_gtk_application_get_app_menu)
 Xen_wrap_2_args(gxg_gtk_application_set_app_menu_w, gxg_gtk_application_set_app_menu)
 Xen_wrap_1_arg(gxg_gtk_application_get_menubar_w, gxg_gtk_application_get_menubar)
@@ -39150,7 +38872,6 @@ Xen_wrap_1_arg(gxg_gtk_file_chooser_get_current_name_w, gxg_gtk_file_chooser_get
 Xen_wrap_3_args(gxg_gdk_cairo_surface_create_from_pixbuf_w, gxg_gdk_cairo_surface_create_from_pixbuf)
 Xen_wrap_4_optional_args(gxg_gdk_device_get_position_double_w, gxg_gdk_device_get_position_double)
 Xen_wrap_3_optional_args(gxg_gdk_device_get_window_at_position_double_w, gxg_gdk_device_get_window_at_position_double)
-Xen_wrap_2_args(gxg_gdk_screen_get_monitor_scale_factor_w, gxg_gdk_screen_get_monitor_scale_factor)
 Xen_wrap_1_arg(gxg_gdk_window_get_scale_factor_w, gxg_gdk_window_get_scale_factor)
 Xen_wrap_5_optional_args(gxg_gdk_window_get_device_position_double_w, gxg_gdk_window_get_device_position_double)
 Xen_wrap_5_args(gxg_gdk_window_create_similar_image_surface_w, gxg_gdk_window_create_similar_image_surface)
@@ -40273,7 +39994,7 @@ Xen_wrap_1_arg(gxg_GTK_IS_SHORTCUT_LABEL_w, gxg_GTK_IS_SHORTCUT_LABEL)
 
 #if HAVE_SCHEME
 static s7_pointer s_boolean, s_integer, s_real, s_string, s_any, s_pair, s_float, s_gtk_enum_t, s_pair_false;
-static s7_pointer pl_isigutttiiu, pl_isi, pl_isgt, pl_sig, pl_si, pl_is, pl_t, pl_tts, pl_tti, pl_iur, pl_iugi, pl_iuisi, pl_pig, pl_iuuui, pl_iuuuui, pl_iuis, pl_iug, pl_ius, pl_iusi, pl_iu, pl_iuui, pl_pi, pl_iui, pl_iuisut, pl_piu, pl_pit, pl_s, pl_igi, pl_gi, pl_dust, pl_dut, pl_du, pl_dusr, pl_dus, pl_pr, pl_tsb, pl_st, pl_tsu, pl_tsig, pl_ts, pl_tsi, pl_tsiu, pl_tsiiuui, pl_tsiuui, pl_p, pl_tusiuiuit, pl_tussu, pl_tuuuggu, pl_tuuggu, pl_tugiis, pl_tubu, pl_tuurru, pl_tuurrrrgr, pl_tuurrrrg, pl_tuuur, pl_tusg, pl_tuuuui, pl_tuusb, pl_tugui, pl_turru, pl_tuuugi, pl_tuuuub, pl_tuttti, pl_tuuttti, pl_tuisi, pl_tugb, pl_tugs, pl_tugug, pl_turgs, pl_tubi, pl_tuttigsi, pl_tuiiiiui, pl_tuurb, pl_tuuiiiirrrrg, pl_tuuiiiirrrrgi, pl_tuiggu, pl_turrrb, pl_tuubbi, pl_tuubbig, pl_pt, pl_tuuti, pl_tubbi, pl_tusiu, pl_tuuutti, pl_tuti, pl_tutti, pl_tutui, pl_tutisi, pl_tuuri, pl_tuusit, pl_tuurbr, pl_tuuiu, pl_tugiiu, pl_tuugi, pl_tuit, pl_tusr, pl_tusrt, pl_tusi, pl_turt, pl_tuui, pl_tut, pl_tuur, pl_tuig, pl_tur, pl_tub, pl_tui, pl_tu, pl_tus, pl_tuiiu, pl_tusb, pl_tuuut, pl_tug, pl_tutb, pl_tust, pl_tuub, pl_tuus, pl_tuug, pl_tuibu, pl_tuut, pl_tuuig, pl_tuguig, pl_tuubr, pl_tuuub, pl_tuuiuui, pl_tugu, pl_tuuir, pl_tugr, pl_tugi, pl_tuuui, pl_tuib, pl_tusu, pl_tuusi, pl_tugt, pl_tuis, pl_tuiu, pl_tubiiiu, pl_tusiis, pl_tusiuiu, pl_tusiuibu, pl_tusiiu, pl_tuuug, pl_tusuig, pl_tuuubr, pl_ssig, pl_ssi, pl_g, pl_tg, pl_psgi, pl_suiig, pl_sug, pl_psgbiiiit, pl_psrrrb, pl_sui, pl_suuub, pl_psu, pl_psb, pl_su, pl_sus, pl_ps, pl_psg, pl_psi, pl_psugt, pl_psut, pl_sg, pl_gs, pl_pur, pl_puuui, pl_puiu, pl_pusiig, pl_pusiigu, pl_pusiiugu, pl_puuiig, pl_puur, pl_puiiui, pl_pugi, pl_puuig, pl_pubi, pl_puiig, pl_puiigi, pl_puigu, pl_puuusuug, pl_pusi, pl_puri, pl_pusub, pl_pust, pl_pub, pl_pu, pl_puutu, pl_pui, pl_pusu, pl_pus, pl_pug, pl_put, pl_pusigu, pl_pusig, pl_puui, pl_pusiiu, pl_gussitu, pl_gurrsiu, pl_gus, pl_guut, pl_guuut, pl_guiu, pl_guugbuut, pl_pgr, pl_pgu, pl_pgi, pl_gug, pl_pgbi, pl_gu, pl_gugu, pl_pg, pl_gui, pl_big, pl_bi, pl_b, pl_btiib, pl_bti, pl_bt, pl_tb, pl_bsiu, pl_bsiuub, pl_bsu, pl_bsigb, pl_bsiiuusu, pl_bur, pl_buug, pl_buut, pl_buigu, pl_busiu, pl_buuti, pl_buttiiiu, pl_butib, pl_buiuig, pl_buuusuug, pl_buuit, pl_butu, pl_buti, pl_butti, pl_busi, pl_buusib, pl_busib, pl_buuuub, pl_buuub, pl_buttu, pl_busgu, pl_buurbr, pl_buui, pl_buus, pl_buuui, pl_busu, pl_bug, pl_bu, pl_buuubu, pl_bus, pl_bui, pl_buutuuiu, pl_but, pl_bussu, pl_buib, pl_buiu, pl_buiiu, pl_bub, pl_buub, pl_pb, pl_buig, pl_buuiiu, pl_buuig, pl_iiit, pl_iit, pl_i, pl_itiiub, pl_itsub, pl_itstttg, pl_itgiiut, pl_tiu, pl_ti, pl_it, pl_trrru, pl_bpt;
+static s7_pointer pl_isigutttiiu, pl_isi, pl_isgt, pl_sig, pl_si, pl_is, pl_t, pl_tts, pl_tti, pl_iur, pl_iugi, pl_iuisi, pl_pig, pl_iuuui, pl_iuuuui, pl_iuis, pl_iug, pl_ius, pl_iusi, pl_iu, pl_iuui, pl_pi, pl_iui, pl_iuisut, pl_piu, pl_pit, pl_s, pl_igi, pl_gi, pl_dust, pl_dut, pl_du, pl_dusr, pl_dus, pl_pr, pl_tsb, pl_st, pl_tsu, pl_tsig, pl_ts, pl_tsi, pl_tsiu, pl_tsiiuui, pl_tsiuui, pl_p, pl_tusiuiuit, pl_tussu, pl_tuuuggu, pl_tuuggu, pl_tugiis, pl_tubu, pl_tuurru, pl_tuurrrrgr, pl_tuurrrrg, pl_tuuur, pl_tusg, pl_tuuuui, pl_tuusb, pl_tugui, pl_turru, pl_tuuugi, pl_tuuuub, pl_tuttti, pl_tuuttti, pl_tuisi, pl_tugb, pl_tugs, pl_tugug, pl_turgs, pl_tubi, pl_tuttigsi, pl_tuiiiiui, pl_tuurb, pl_tuuiiiirrrrg, pl_tuuiiiirrrrgi, pl_tuiggu, pl_turrrb, pl_tuubbi, pl_tuubbig, pl_pt, pl_tuuti, pl_tubbi, pl_tusiu, pl_tuti, pl_tutti, pl_tutui, pl_tutisi, pl_tuuri, pl_tuusit, pl_tuurbr, pl_tuuiu, pl_tugiiu, pl_tuugi, pl_tuit, pl_tusr, pl_tusrt, pl_tusi, pl_turt, pl_tuui, pl_tut, pl_tuur, pl_tuig, pl_tur, pl_tub, pl_tui, pl_tu, pl_tus, pl_tuiiu, pl_tusb, pl_tuuut, pl_tug, pl_tutb, pl_tust, pl_tuub, pl_tuus, pl_tuug, pl_tuibu, pl_tuut, pl_tuuig, pl_tuguig, pl_tuubr, pl_tuuub, pl_tuuiuui, pl_tugu, pl_tuuir, pl_tugr, pl_tugi, pl_tuuui, pl_tuib, pl_tusu, pl_tuusi, pl_tugt, pl_tuis, pl_tubiiiu, pl_tuiu, pl_tusiis, pl_tusiuiu, pl_tusiuibu, pl_tusiiu, pl_tuuug, pl_tusuig, pl_tuuubr, pl_g, pl_ssig, pl_ssi, pl_tg, pl_psgi, pl_suiig, pl_sug, pl_psgbiiiit, pl_psrrrb, pl_sui, pl_suuub, pl_psu, pl_psb, pl_su, pl_sus, pl_ps, pl_psg, pl_psi, pl_psugt, pl_psut, pl_sg, pl_gs, pl_pur, pl_puuui, pl_puiu, pl_pusiig, pl_pusiigu, pl_pusiiugu, pl_puuiig, pl_puur, pl_puiiui, pl_pugi, pl_puuig, pl_pubi, pl_puiig, pl_puiigi, pl_puigu, pl_puuusuug, pl_pusi, pl_puri, pl_pusub, pl_pust, pl_pub, pl_pu, pl_puutu, pl_pui, pl_pusu, pl_pus, pl_pug, pl_put, pl_pusigu, pl_pusig, pl_puui, pl_pusiiu, pl_gussitu, pl_gurrsiu, pl_gus, pl_guut, pl_guuut, pl_guiu, pl_guugbuut, pl_pgr, pl_pgu, pl_pgi, pl_gug, pl_pgbi, pl_gu, pl_gugu, pl_pg, pl_gui, pl_big, pl_bi, pl_b, pl_btiib, pl_bti, pl_bt, pl_tb, pl_bsiu, pl_bsiuub, pl_bsu, pl_bsigb, pl_bsiiuusu, pl_bur, pl_buug, pl_buut, pl_buigu, pl_busiu, pl_buuti, pl_buttiiiu, pl_butib, pl_buiuig, pl_buuusuug, pl_buuit, pl_butu, pl_buti, pl_butti, pl_busi, pl_buusib, pl_busib, pl_buuuub, pl_buuub, pl_buttu, pl_busgu, pl_buurbr, pl_buui, pl_buus, pl_buuui, pl_busu, pl_bug, pl_bu, pl_buuubu, pl_bus, pl_bui, pl_buutuuiu, pl_but, pl_bussu, pl_buib, pl_buiu, pl_buiiu, pl_bub, pl_buub, pl_pb, pl_buig, pl_buuiiu, pl_buuig, pl_iiit, pl_iit, pl_i, pl_itiiub, pl_itsub, pl_itstttg, pl_itgiiut, pl_tiu, pl_ti, pl_it, pl_trrru, pl_bpt;
 #endif
 
 static void define_functions(void)
@@ -40378,7 +40099,6 @@ static void define_functions(void)
   pl_tuuti = s7_make_circular_signature(s7, 4, 5, s_any, s_pair_false, s_pair_false, s_any, s_integer);
   pl_tubbi = s7_make_circular_signature(s7, 4, 5, s_any, s_pair_false, s_boolean, s_boolean, s_integer);
   pl_tusiu = s7_make_circular_signature(s7, 4, 5, s_any, s_pair_false, s_string, s_integer, s_pair_false);
-  pl_tuuutti = s7_make_circular_signature(s7, 6, 7, s_any, s_pair_false, s_pair_false, s_pair_false, s_any, s_any, s_integer);
   pl_tuti = s7_make_circular_signature(s7, 3, 4, s_any, s_pair_false, s_any, s_integer);
   pl_tutti = s7_make_circular_signature(s7, 4, 5, s_any, s_pair_false, s_any, s_any, s_integer);
   pl_tutui = s7_make_circular_signature(s7, 4, 5, s_any, s_pair_false, s_any, s_pair_false, s_integer);
@@ -40429,8 +40149,8 @@ static void define_functions(void)
   pl_tuusi = s7_make_circular_signature(s7, 4, 5, s_any, s_pair_false, s_pair_false, s_string, s_integer);
   pl_tugt = s7_make_circular_signature(s7, 3, 4, s_any, s_pair_false, s_gtk_enum_t, s_any);
   pl_tuis = s7_make_circular_signature(s7, 3, 4, s_any, s_pair_false, s_integer, s_string);
-  pl_tuiu = s7_make_circular_signature(s7, 3, 4, s_any, s_pair_false, s_integer, s_pair_false);
   pl_tubiiiu = s7_make_circular_signature(s7, 6, 7, s_any, s_pair_false, s_boolean, s_integer, s_integer, s_integer, s_pair_false);
+  pl_tuiu = s7_make_circular_signature(s7, 3, 4, s_any, s_pair_false, s_integer, s_pair_false);
   pl_tusiis = s7_make_circular_signature(s7, 5, 6, s_any, s_pair_false, s_string, s_integer, s_integer, s_string);
   pl_tusiuiu = s7_make_circular_signature(s7, 6, 7, s_any, s_pair_false, s_string, s_integer, s_pair_false, s_integer, s_pair_false);
   pl_tusiuibu = s7_make_circular_signature(s7, 7, 8, s_any, s_pair_false, s_string, s_integer, s_pair_false, s_integer, s_boolean, s_pair_false);
@@ -40438,9 +40158,9 @@ static void define_functions(void)
   pl_tuuug = s7_make_circular_signature(s7, 4, 5, s_any, s_pair_false, s_pair_false, s_pair_false, s_gtk_enum_t);
   pl_tusuig = s7_make_circular_signature(s7, 5, 6, s_any, s_pair_false, s_string, s_pair_false, s_integer, s_gtk_enum_t);
   pl_tuuubr = s7_make_circular_signature(s7, 5, 6, s_any, s_pair_false, s_pair_false, s_pair_false, s_boolean, s_real);
+  pl_g = s7_make_circular_signature(s7, 0, 1, s_gtk_enum_t);
   pl_ssig = s7_make_circular_signature(s7, 3, 4, s_string, s_string, s_integer, s_gtk_enum_t);
   pl_ssi = s7_make_circular_signature(s7, 2, 3, s_string, s_string, s_integer);
-  pl_g = s7_make_circular_signature(s7, 0, 1, s_gtk_enum_t);
   pl_tg = s7_make_circular_signature(s7, 1, 2, s_any, s_gtk_enum_t);
   pl_psgi = s7_make_circular_signature(s7, 3, 4, s_pair, s_string, s_gtk_enum_t, s_integer);
   pl_suiig = s7_make_circular_signature(s7, 4, 5, s_string, s_pair_false, s_integer, s_integer, s_gtk_enum_t);
@@ -40677,10 +40397,6 @@ static void define_functions(void)
   Xg_define_procedure(gdk_error_trap_pop, gxg_gdk_error_trap_pop_w, 0, 0, 0, H_gdk_error_trap_pop, pl_i);
   Xg_define_procedure(gdk_get_display_arg_name, gxg_gdk_get_display_arg_name_w, 0, 0, 0, H_gdk_get_display_arg_name, pl_s);
   Xg_define_procedure(gdk_notify_startup_complete, gxg_gdk_notify_startup_complete_w, 0, 0, 0, H_gdk_notify_startup_complete, pl_t);
-  Xg_define_procedure(gdk_screen_width, gxg_gdk_screen_width_w, 0, 0, 0, H_gdk_screen_width, pl_i);
-  Xg_define_procedure(gdk_screen_height, gxg_gdk_screen_height_w, 0, 0, 0, H_gdk_screen_height, pl_i);
-  Xg_define_procedure(gdk_screen_width_mm, gxg_gdk_screen_width_mm_w, 0, 0, 0, H_gdk_screen_width_mm, pl_i);
-  Xg_define_procedure(gdk_screen_height_mm, gxg_gdk_screen_height_mm_w, 0, 0, 0, H_gdk_screen_height_mm, pl_i);
   Xg_define_procedure(gdk_flush, gxg_gdk_flush_w, 0, 0, 0, H_gdk_flush, pl_t);
   Xg_define_procedure(gdk_beep, gxg_gdk_beep_w, 0, 0, 0, H_gdk_beep, pl_t);
   Xg_define_procedure(gdk_set_double_click_time, gxg_gdk_set_double_click_time_w, 1, 0, 0, H_gdk_set_double_click_time, pl_ti);
@@ -40772,7 +40488,6 @@ static void define_functions(void)
   Xg_define_procedure(gdk_window_thaw_updates, gxg_gdk_window_thaw_updates_w, 1, 0, 0, H_gdk_window_thaw_updates, pl_tu);
   Xg_define_procedure(gdk_window_process_all_updates, gxg_gdk_window_process_all_updates_w, 0, 0, 0, H_gdk_window_process_all_updates, pl_t);
   Xg_define_procedure(gdk_window_process_updates, gxg_gdk_window_process_updates_w, 2, 0, 0, H_gdk_window_process_updates, pl_tub);
-  Xg_define_procedure(gdk_window_set_debug_updates, gxg_gdk_window_set_debug_updates_w, 1, 0, 0, H_gdk_window_set_debug_updates, pl_tb);
   Xg_define_procedure(gdk_window_constrain_size, gxg_gdk_window_constrain_size_w, 4, 2, 0, H_gdk_window_constrain_size, pl_tugiiu);
   Xg_define_procedure(gdk_window_set_type_hint, gxg_gdk_window_set_type_hint_w, 2, 0, 0, H_gdk_window_set_type_hint, pl_tug);
   Xg_define_procedure(gdk_window_set_modal_hint, gxg_gdk_window_set_modal_hint_w, 2, 0, 0, H_gdk_window_set_modal_hint, pl_tub);
@@ -41092,7 +40807,6 @@ static void define_functions(void)
   Xg_define_procedure(gtk_propagate_event, gxg_gtk_propagate_event_w, 2, 0, 0, H_gtk_propagate_event, pl_tu);
   Xg_define_procedure(gtk_menu_bar_new, gxg_gtk_menu_bar_new_w, 0, 0, 0, H_gtk_menu_bar_new, pl_p);
   Xg_define_procedure(gtk_menu_new, gxg_gtk_menu_new_w, 0, 0, 0, H_gtk_menu_new, pl_p);
-  Xg_define_procedure(gtk_menu_popup, gxg_gtk_menu_popup_w, 7, 0, 0, H_gtk_menu_popup, pl_tuuutti);
   Xg_define_procedure(gtk_menu_reposition, gxg_gtk_menu_reposition_w, 1, 0, 0, H_gtk_menu_reposition, pl_tu);
   Xg_define_procedure(gtk_menu_popdown, gxg_gtk_menu_popdown_w, 1, 0, 0, H_gtk_menu_popdown, pl_tu);
   Xg_define_procedure(gtk_menu_get_active, gxg_gtk_menu_get_active_w, 1, 0, 0, H_gtk_menu_get_active, pl_pu);
@@ -41747,7 +41461,6 @@ static void define_functions(void)
   Xg_define_procedure(gtk_window_set_title, gxg_gtk_window_set_title_w, 2, 0, 0, H_gtk_window_set_title, pl_tus);
   Xg_define_procedure(gtk_window_set_auto_startup_notification, gxg_gtk_window_set_auto_startup_notification_w, 1, 0, 0, H_gtk_window_set_auto_startup_notification, pl_tb);
   Xg_define_procedure(gtk_window_get_title, gxg_gtk_window_get_title_w, 1, 0, 0, H_gtk_window_get_title, pl_su);
-  Xg_define_procedure(gtk_window_set_wmclass, gxg_gtk_window_set_wmclass_w, 3, 0, 0, H_gtk_window_set_wmclass, pl_tus);
   Xg_define_procedure(gtk_window_set_role, gxg_gtk_window_set_role_w, 2, 0, 0, H_gtk_window_set_role, pl_tus);
   Xg_define_procedure(gtk_window_get_role, gxg_gtk_window_get_role_w, 1, 0, 0, H_gtk_window_get_role, pl_su);
   Xg_define_procedure(gtk_window_add_accel_group, gxg_gtk_window_add_accel_group_w, 2, 0, 0, H_gtk_window_add_accel_group, pl_tu);
@@ -42012,18 +41725,8 @@ static void define_functions(void)
   Xg_define_procedure(gdk_screen_get_system_visual, gxg_gdk_screen_get_system_visual_w, 1, 0, 0, H_gdk_screen_get_system_visual, pl_pu);
   Xg_define_procedure(gdk_screen_get_root_window, gxg_gdk_screen_get_root_window_w, 1, 0, 0, H_gdk_screen_get_root_window, pl_pu);
   Xg_define_procedure(gdk_screen_get_display, gxg_gdk_screen_get_display_w, 1, 0, 0, H_gdk_screen_get_display, pl_pu);
-  Xg_define_procedure(gdk_screen_get_number, gxg_gdk_screen_get_number_w, 1, 0, 0, H_gdk_screen_get_number, pl_iu);
-  Xg_define_procedure(gdk_screen_get_width, gxg_gdk_screen_get_width_w, 1, 0, 0, H_gdk_screen_get_width, pl_iu);
-  Xg_define_procedure(gdk_screen_get_height, gxg_gdk_screen_get_height_w, 1, 0, 0, H_gdk_screen_get_height, pl_iu);
-  Xg_define_procedure(gdk_screen_get_width_mm, gxg_gdk_screen_get_width_mm_w, 1, 0, 0, H_gdk_screen_get_width_mm, pl_iu);
-  Xg_define_procedure(gdk_screen_get_height_mm, gxg_gdk_screen_get_height_mm_w, 1, 0, 0, H_gdk_screen_get_height_mm, pl_iu);
   Xg_define_procedure(gdk_screen_list_visuals, gxg_gdk_screen_list_visuals_w, 1, 0, 0, H_gdk_screen_list_visuals, pl_pu);
   Xg_define_procedure(gdk_screen_get_toplevel_windows, gxg_gdk_screen_get_toplevel_windows_w, 1, 0, 0, H_gdk_screen_get_toplevel_windows, pl_pu);
-  Xg_define_procedure(gdk_screen_make_display_name, gxg_gdk_screen_make_display_name_w, 1, 0, 0, H_gdk_screen_make_display_name, pl_su);
-  Xg_define_procedure(gdk_screen_get_n_monitors, gxg_gdk_screen_get_n_monitors_w, 1, 0, 0, H_gdk_screen_get_n_monitors, pl_iu);
-  Xg_define_procedure(gdk_screen_get_monitor_geometry, gxg_gdk_screen_get_monitor_geometry_w, 3, 0, 0, H_gdk_screen_get_monitor_geometry, pl_tuiu);
-  Xg_define_procedure(gdk_screen_get_monitor_at_point, gxg_gdk_screen_get_monitor_at_point_w, 3, 0, 0, H_gdk_screen_get_monitor_at_point, pl_iui);
-  Xg_define_procedure(gdk_screen_get_monitor_at_window, gxg_gdk_screen_get_monitor_at_window_w, 2, 0, 0, H_gdk_screen_get_monitor_at_window, pl_iu);
   Xg_define_procedure(gdk_screen_get_default, gxg_gdk_screen_get_default_w, 0, 0, 0, H_gdk_screen_get_default, pl_p);
   Xg_define_procedure(gtk_clipboard_get_for_display, gxg_gtk_clipboard_get_for_display_w, 2, 0, 0, H_gtk_clipboard_get_for_display, pl_put);
   Xg_define_procedure(gtk_clipboard_get_display, gxg_gtk_clipboard_get_display_w, 1, 0, 0, H_gtk_clipboard_get_display, pl_pu);
@@ -42539,7 +42242,6 @@ static void define_functions(void)
   Xg_define_procedure(gdk_screen_is_composited, gxg_gdk_screen_is_composited_w, 1, 0, 0, H_gdk_screen_is_composited, pl_bu);
   Xg_define_procedure(gdk_screen_set_resolution, gxg_gdk_screen_set_resolution_w, 2, 0, 0, H_gdk_screen_set_resolution, pl_tur);
   Xg_define_procedure(gdk_screen_get_resolution, gxg_gdk_screen_get_resolution_w, 1, 0, 0, H_gdk_screen_get_resolution, pl_du);
-  Xg_define_procedure(gdk_screen_get_active_window, gxg_gdk_screen_get_active_window_w, 1, 0, 0, H_gdk_screen_get_active_window, pl_pu);
   Xg_define_procedure(gdk_screen_get_window_stack, gxg_gdk_screen_get_window_stack_w, 1, 0, 0, H_gdk_screen_get_window_stack, pl_pu);
   Xg_define_procedure(gdk_window_get_type_hint, gxg_gdk_window_get_type_hint_w, 1, 0, 0, H_gdk_window_get_type_hint, pl_gu);
   Xg_define_procedure(gtk_clipboard_request_rich_text, gxg_gtk_clipboard_request_rich_text_w, 3, 1, 0, H_gtk_clipboard_request_rich_text, pl_tuut);
@@ -42888,9 +42590,6 @@ static void define_functions(void)
   Xg_define_procedure(gtk_calendar_set_detail_height_rows, gxg_gtk_calendar_set_detail_height_rows_w, 2, 0, 0, H_gtk_calendar_set_detail_height_rows, pl_tui);
   Xg_define_procedure(gtk_calendar_get_detail_width_chars, gxg_gtk_calendar_get_detail_width_chars_w, 1, 0, 0, H_gtk_calendar_get_detail_width_chars, pl_iu);
   Xg_define_procedure(gtk_calendar_get_detail_height_rows, gxg_gtk_calendar_get_detail_height_rows_w, 1, 0, 0, H_gtk_calendar_get_detail_height_rows, pl_iu);
-  Xg_define_procedure(gdk_screen_get_monitor_width_mm, gxg_gdk_screen_get_monitor_width_mm_w, 2, 0, 0, H_gdk_screen_get_monitor_width_mm, pl_iui);
-  Xg_define_procedure(gdk_screen_get_monitor_height_mm, gxg_gdk_screen_get_monitor_height_mm_w, 2, 0, 0, H_gdk_screen_get_monitor_height_mm, pl_iui);
-  Xg_define_procedure(gdk_screen_get_monitor_plug_name, gxg_gdk_screen_get_monitor_plug_name_w, 2, 0, 0, H_gdk_screen_get_monitor_plug_name, pl_sui);
   Xg_define_procedure(gtk_accel_group_get_is_locked, gxg_gtk_accel_group_get_is_locked_w, 1, 0, 0, H_gtk_accel_group_get_is_locked, pl_bu);
   Xg_define_procedure(gtk_container_get_focus_child, gxg_gtk_container_get_focus_child_w, 1, 0, 0, H_gtk_container_get_focus_child, pl_pu);
   Xg_define_procedure(gtk_dialog_get_content_area, gxg_gtk_dialog_get_content_area_w, 1, 0, 0, H_gtk_dialog_get_content_area, pl_pu);
@@ -43098,7 +42797,6 @@ static void define_functions(void)
   Xg_define_procedure(gtk_tool_item_group_get_n_items, gxg_gtk_tool_item_group_get_n_items_w, 1, 0, 0, H_gtk_tool_item_group_get_n_items, pl_iu);
   Xg_define_procedure(gtk_tool_item_group_get_nth_item, gxg_gtk_tool_item_group_get_nth_item_w, 2, 0, 0, H_gtk_tool_item_group_get_nth_item, pl_pui);
   Xg_define_procedure(gtk_tool_item_group_get_drop_item, gxg_gtk_tool_item_group_get_drop_item_w, 3, 0, 0, H_gtk_tool_item_group_get_drop_item, pl_pui);
-  Xg_define_procedure(gdk_screen_get_primary_monitor, gxg_gdk_screen_get_primary_monitor_w, 1, 0, 0, H_gdk_screen_get_primary_monitor, pl_iu);
   Xg_define_procedure(gtk_window_set_mnemonics_visible, gxg_gtk_window_set_mnemonics_visible_w, 2, 0, 0, H_gtk_window_set_mnemonics_visible, pl_tub);
   Xg_define_procedure(gtk_window_get_mnemonics_visible, gxg_gtk_window_get_mnemonics_visible_w, 1, 0, 0, H_gtk_window_get_mnemonics_visible, pl_bu);
   Xg_define_procedure(gtk_range_set_slider_size_fixed, gxg_gtk_range_set_slider_size_fixed_w, 2, 0, 0, H_gtk_range_set_slider_size_fixed, pl_tub);
@@ -43177,7 +42875,6 @@ static void define_functions(void)
   Xg_define_procedure(gdk_window_has_native, gxg_gdk_window_has_native_w, 1, 0, 0, H_gdk_window_has_native, pl_bu);
   Xg_define_procedure(gdk_cursor_get_cursor_type, gxg_gdk_cursor_get_cursor_type_w, 1, 0, 0, H_gdk_cursor_get_cursor_type, pl_gu);
   Xg_define_procedure(gdk_display_is_closed, gxg_gdk_display_is_closed_w, 1, 0, 0, H_gdk_display_is_closed, pl_bu);
-  Xg_define_procedure(gdk_window_get_background_pattern, gxg_gdk_window_get_background_pattern_w, 1, 0, 0, H_gdk_window_get_background_pattern, pl_pu);
   Xg_define_procedure(gdk_window_create_similar_surface, gxg_gdk_window_create_similar_surface_w, 4, 0, 0, H_gdk_window_create_similar_surface, pl_pugi);
   Xg_define_procedure(gtk_expander_set_label_fill, gxg_gtk_expander_set_label_fill_w, 2, 0, 0, H_gtk_expander_set_label_fill, pl_tub);
   Xg_define_procedure(gtk_expander_get_label_fill, gxg_gtk_expander_get_label_fill_w, 1, 0, 0, H_gtk_expander_get_label_fill, pl_bu);
@@ -43252,7 +42949,6 @@ static void define_functions(void)
   Xg_define_procedure(gtk_combo_box_text_remove, gxg_gtk_combo_box_text_remove_w, 2, 0, 0, H_gtk_combo_box_text_remove, pl_tui);
   Xg_define_procedure(gtk_combo_box_text_get_active_text, gxg_gtk_combo_box_text_get_active_text_w, 1, 0, 0, H_gtk_combo_box_text_get_active_text, pl_su);
   Xg_define_procedure(gdk_cairo_set_source_rgba, gxg_gdk_cairo_set_source_rgba_w, 2, 0, 0, H_gdk_cairo_set_source_rgba, pl_tu);
-  Xg_define_procedure(gdk_window_set_background_rgba, gxg_gdk_window_set_background_rgba_w, 2, 0, 0, H_gdk_window_set_background_rgba, pl_tu);
   Xg_define_procedure(gtk_cell_view_set_background_rgba, gxg_gtk_cell_view_set_background_rgba_w, 2, 0, 0, H_gtk_cell_view_set_background_rgba, pl_tu);
   Xg_define_procedure(gtk_combo_box_text_remove_all, gxg_gtk_combo_box_text_remove_all_w, 1, 0, 0, H_gtk_combo_box_text_remove_all, pl_tu);
   Xg_define_procedure(gtk_combo_box_set_popup_fixed_width, gxg_gtk_combo_box_set_popup_fixed_width_w, 2, 0, 0, H_gtk_combo_box_set_popup_fixed_width, pl_tub);
@@ -43458,7 +43154,6 @@ static void define_functions(void)
   Xg_define_procedure(gtk_accelerator_parse_with_keycode, gxg_gtk_accelerator_parse_with_keycode_w, 4, 0, 0, H_gtk_accelerator_parse_with_keycode, pl_tsu);
   Xg_define_procedure(gtk_accelerator_name_with_keycode, gxg_gtk_accelerator_name_with_keycode_w, 4, 0, 0, H_gtk_accelerator_name_with_keycode, pl_suiig);
   Xg_define_procedure(gtk_accelerator_get_label_with_keycode, gxg_gtk_accelerator_get_label_with_keycode_w, 4, 0, 0, H_gtk_accelerator_get_label_with_keycode, pl_suiig);
-  Xg_define_procedure(gdk_screen_get_monitor_workarea, gxg_gdk_screen_get_monitor_workarea_w, 3, 0, 0, H_gdk_screen_get_monitor_workarea, pl_tuiu);
   Xg_define_procedure(gtk_application_get_app_menu, gxg_gtk_application_get_app_menu_w, 1, 0, 0, H_gtk_application_get_app_menu, pl_pu);
   Xg_define_procedure(gtk_application_set_app_menu, gxg_gtk_application_set_app_menu_w, 2, 0, 0, H_gtk_application_set_app_menu, pl_tu);
   Xg_define_procedure(gtk_application_get_menubar, gxg_gtk_application_get_menubar_w, 1, 0, 0, H_gtk_application_get_menubar, pl_pu);
@@ -43638,7 +43333,6 @@ static void define_functions(void)
   Xg_define_procedure(gdk_cairo_surface_create_from_pixbuf, gxg_gdk_cairo_surface_create_from_pixbuf_w, 3, 0, 0, H_gdk_cairo_surface_create_from_pixbuf, pl_puiu);
   Xg_define_procedure(gdk_device_get_position_double, gxg_gdk_device_get_position_double_w, 1, 3, 0, H_gdk_device_get_position_double, pl_tu);
   Xg_define_procedure(gdk_device_get_window_at_position_double, gxg_gdk_device_get_window_at_position_double_w, 1, 2, 0, H_gdk_device_get_window_at_position_double, pl_pu);
-  Xg_define_procedure(gdk_screen_get_monitor_scale_factor, gxg_gdk_screen_get_monitor_scale_factor_w, 2, 0, 0, H_gdk_screen_get_monitor_scale_factor, pl_iui);
   Xg_define_procedure(gdk_window_get_scale_factor, gxg_gdk_window_get_scale_factor_w, 1, 0, 0, H_gdk_window_get_scale_factor, pl_iu);
   Xg_define_procedure(gdk_window_get_device_position_double, gxg_gdk_window_get_device_position_double_w, 2, 3, 0, H_gdk_window_get_device_position_double, pl_pu);
   Xg_define_procedure(gdk_window_create_similar_image_surface, gxg_gdk_window_create_similar_image_surface_w, 5, 0, 0, H_gdk_window_create_similar_image_surface, pl_pugi);
@@ -43960,7 +43654,7 @@ static void define_functions(void)
   Xg_define_procedure(gdk_event_get_device_tool, gxg_gdk_event_get_device_tool_w, 1, 0, 0, H_gdk_event_get_device_tool, pl_pu);
   Xg_define_procedure(gdk_event_set_device_tool, gxg_gdk_event_set_device_tool_w, 2, 0, 0, H_gdk_event_set_device_tool, pl_tu);
   Xg_define_procedure(gdk_event_get_scancode, gxg_gdk_event_get_scancode_w, 1, 0, 0, H_gdk_event_get_scancode, pl_iu);
-  Xg_define_procedure(gdk_gl_context_set_use_es, gxg_gdk_gl_context_set_use_es_w, 2, 0, 0, H_gdk_gl_context_set_use_es, pl_tub);
+  Xg_define_procedure(gdk_gl_context_set_use_es, gxg_gdk_gl_context_set_use_es_w, 2, 0, 0, H_gdk_gl_context_set_use_es, pl_tui);
   Xg_define_procedure(gdk_gl_context_get_use_es, gxg_gdk_gl_context_get_use_es_w, 1, 0, 0, H_gdk_gl_context_get_use_es, pl_bu);
   Xg_define_procedure(gdk_pango_context_get_for_display, gxg_gdk_pango_context_get_for_display_w, 1, 0, 0, H_gdk_pango_context_get_for_display, pl_pu);
   Xg_define_procedure(gtk_clipboard_get_selection, gxg_gtk_clipboard_get_selection_w, 1, 0, 0, H_gtk_clipboard_get_selection, pl_tu);
@@ -46715,7 +46409,7 @@ static void define_symbols(void)
   xg_GtkNotebook__symbol = C_string_to_Xen_symbol("GtkNotebook_");
   xg_GtkMenuShell__symbol = C_string_to_Xen_symbol("GtkMenuShell_");
   xg_GtkMenuItem__symbol = C_string_to_Xen_symbol("GtkMenuItem_");
-  xg_GtkMenuPositionFunc_symbol = C_string_to_Xen_symbol("GtkMenuPositionFunc");
+  xg_GtkMenu__symbol = C_string_to_Xen_symbol("GtkMenu_");
   xg_PangoLanguage__symbol = C_string_to_Xen_symbol("PangoLanguage_");
   xg_GtkListStore__symbol = C_string_to_Xen_symbol("GtkListStore_");
   xg_GtkLayout__symbol = C_string_to_Xen_symbol("GtkLayout_");
@@ -46851,19 +46545,18 @@ static void define_symbols(void)
   xg_GtkTreeViewColumn__symbol = C_string_to_Xen_symbol("GtkTreeViewColumn_");
   xg_GtkTreeView__symbol = C_string_to_Xen_symbol("GtkTreeView_");
   xg_gunichar_symbol = C_string_to_Xen_symbol("gunichar");
+  xg_gint_symbol = C_string_to_Xen_symbol("gint");
   xg_GdkAtom__symbol = C_string_to_Xen_symbol("GdkAtom_");
   xg_GtkSelectionData__symbol = C_string_to_Xen_symbol("GtkSelectionData_");
   xg_GtkClipboard__symbol = C_string_to_Xen_symbol("GtkClipboard_");
   xg_GtkTreeIter__symbol = C_string_to_Xen_symbol("GtkTreeIter_");
   xg_GtkTreePath__symbol = C_string_to_Xen_symbol("GtkTreePath_");
   xg_GtkTreeModel__symbol = C_string_to_Xen_symbol("GtkTreeModel_");
+  xg_gboolean_symbol = C_string_to_Xen_symbol("gboolean");
   xg_GdkModifierType_symbol = C_string_to_Xen_symbol("GdkModifierType");
   xg_guint_symbol = C_string_to_Xen_symbol("guint");
   xg_gchar__symbol = C_string_to_Xen_symbol("gchar_");
   xg_GtkTextTag__symbol = C_string_to_Xen_symbol("GtkTextTag_");
-  xg_gboolean_symbol = C_string_to_Xen_symbol("gboolean");
-  xg_gint_symbol = C_string_to_Xen_symbol("gint");
-  xg_GtkMenu__symbol = C_string_to_Xen_symbol("GtkMenu_");
   xg_GdkXEvent__symbol = C_string_to_Xen_symbol("GdkXEvent_");
   xg_GtkWidget__symbol = C_string_to_Xen_symbol("GtkWidget_");
   xg_lambda_data_symbol = C_string_to_Xen_symbol("lambda_data");
@@ -48190,7 +47883,7 @@ void Init_libxg(void)
       #else
         Xen_provide_feature("gtk2");
       #endif
-      Xen_define("xg-version", C_string_to_Xen_string("23-Oct-16"));
+      Xen_define("xg-version", C_string_to_Xen_string("24-Oct-16"));
       xg_already_inited = true;
 #if HAVE_SCHEME
 #if USE_SND

-- 
snd packaging



More information about the pkg-multimedia-commits mailing list