(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))))))