contract.ss
(module contract mzscheme
  
  (require
   (lib "contract.ss")
   (file "base.ss")
   )
  
  (provide
   (all-defined)
   )
  
  (define (symbol-or-false? value)
    (or (symbol? value)
        (eq? value #f)))

  (define (string-or-false? value)
    (or (string? value)
        (eq? value #f)))

  (define (number-or-false? value)
    (or (number? value)
        (eq? value #f)))
  
  (define (integer-or-false? value)
    (or (integer? value)
        (eq? value #f)))
  
  (define (arity/c num-args)
    (lambda (proc)
      (and (procedure? proc)
           (procedure-arity-includes? proc num-args))))
  
  )