From: Chris Hanson <org/chris-hanson/cph>
Date: Mon, 29 Feb 2016 04:33:50 +0000 (-0800)
Subject: Define guarantee-boolean and parameter-converter.
X-Git-Tag: mit-scheme-pucked-9.2.12~261^2~91
X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=89b2c291ad0329204183c47ccbbbc9512822ca31;p=mit-scheme.git

Define guarantee-boolean and parameter-converter.
---

diff --git a/src/runtime/boole.scm b/src/runtime/boole.scm
index 3e8cd50b3..921c6a212 100644
--- a/src/runtime/boole.scm
+++ b/src/runtime/boole.scm
@@ -39,6 +39,8 @@ USA.
   (or (eq? object #f)
       (eq? object #t)))
 
+(define-guarantee boolean "boolean")
+
 (define (boolean=? x y)
   (if x y (not y)))
 
diff --git a/src/runtime/dynamic.scm b/src/runtime/dynamic.scm
index c14f225c8..b6846347e 100644
--- a/src/runtime/dynamic.scm
+++ b/src/runtime/dynamic.scm
@@ -70,9 +70,7 @@ USA.
 
 (define (default-parameter-converter value) value)
 (define (default-parameter-getter value) value)
-
-(define (default-parameter-setter set-param value)
-  (set-param value))
+(define (default-parameter-setter set-param value) (set-param value))
 
 (define (make-general-parameter initial-value converter getter setter)
   (guarantee-procedure converter 'make-general-parameter)
@@ -106,4 +104,7 @@ USA.
 	   (lambda ()
 	     (set! bindings (set! temp (set! bindings)))
 	     unspecific)))
-      (shallow-fluid-bind swap! thunk swap!))))
\ No newline at end of file
+      (shallow-fluid-bind swap! thunk swap!))))
+
+(define (parameter-converter parameter)
+  (car (parameter-metadata parameter)))
\ No newline at end of file
diff --git a/src/runtime/runtime.pkg b/src/runtime/runtime.pkg
index ff2e2b08a..5bd42903f 100644
--- a/src/runtime/runtime.pkg
+++ b/src/runtime/runtime.pkg
@@ -129,6 +129,7 @@ USA.
 	  boolean?
 	  false
 	  for-all?
+	  guarantee-boolean
 	  not
 	  there-exists?
 	  true))
@@ -4611,6 +4612,7 @@ USA.
 	  default-parameter-converter
 	  default-parameter-getter
 	  default-parameter-setter
+	  parameter-converter
 	  parameter?
 	  make-general-parameter
 	  make-settable-parameter