#lang scheme/base
(require "base.ss"
"convert.ss")
(define (number+false? item)
(or (number? item) (not item)))
(define (integer+false? item)
(or (integer? item) (not item)))
(define (natural? num)
(and (integer? num)
(>= num 0)))
(define (natural+false? item)
(or (natural? item) (not item)))
(provide symbol+false->number+false
number+false->symbol+false
string+false->number+false
number+false->string+false)
(provide/contract
[number+false? procedure?]
[integer+false? procedure?]
[natural? procedure?]
[natural+false? procedure?])