diff --git a/lib/srfi/253.sld b/lib/srfi/253.sld index 0d6280e0..5b758000 100644 --- a/lib/srfi/253.sld +++ b/lib/srfi/253.sld @@ -2,8 +2,10 @@ (import (scheme base) (scheme case-lambda) (scheme list) - (chibi assert)) - (export check-arg values-checked + (chibi assert) + (chibi ast)) + (export check-impl? + check-arg values-checked check-case lambda-checked define-checked case-lambda-checked diff --git a/lib/srfi/253/impl.scm b/lib/srfi/253/impl.scm index ec89e833..d589ef06 100644 --- a/lib/srfi/253/impl.scm +++ b/lib/srfi/253/impl.scm @@ -22,6 +22,10 @@ ;;; FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR ;;; OTHER DEALINGS IN THE SOFTWARE. +(define (check-impl? type) + (lambda (x) + (eq? type (type-of x)))) + (define-syntax check-arg (syntax-rules () ((_ pred val caller)