chibi-scheme/lib/srfi/145.sld
2017-08-21 23:16:55 +09:00

30 lines
769 B
Scheme

(define-library (srfi 145)
(export assume)
(import (scheme base))
(cond-expand
(elide-assumptions
(begin
(define-syntax assume
(syntax-rules ()
((assume expression objs ...)
expression)
((assume)
(syntax-error "assume requires an expression"))))))
(else
(begin
(define-syntax assume
(syntax-rules ()
((assume expression objs ...)
(or expression
(fatal-error "invalid assumption" 'expression objs ...)))
((assume)
(syntax-error "assume requires an expression")))))))
(cond-expand
(debug
(begin
(define fatal-error error)))
(else
(begin
(define (fatal-error message . objs)
(car 0))))))