;;;; type-checks-numbers.integer.scm -*- Scheme -*- ;;;; Kon Lovett, Jun '18 (module (type-checks-numbers integer) (;export check-integer check-positive-integer check-non-negative-integer check-natural-integer check-negative-integer check-non-positive-integer) (import scheme) (import (chicken base)) (import (chicken module)) (import (chicken type)) (import type-checks-basic) (import (type-errors-numbers integer)) (: check-integer (* * #!optional * -> integer)) (: check-positive-integer (* * #!optional * -> integer)) (: check-non-negative-integer (* * #!optional * -> integer )) (: check-natural-integer (* * #!optional * -> integer)) (: check-negative-integer (* * #!optional * -> integer)) (: check-non-positive-integer (* * #!optional * -> integer)) (define (positive-integer? x) (and (integer? x) (positive? x))) (define (non-negative-integer? x) (and (integer? x) (or (zero? x) (positive? x)))) (define (negative-integer? x) (and (integer? x) (negative? x))) (define (non-positive-integer? x) (and (integer? x) (or (zero? x) (negative? x)))) (define-check-type integer) (define-check-type positive-integer) (define-check-type non-negative-integer) (define check-natural-integer check-non-negative-integer) (define-check-type negative-integer) (define-check-type non-positive-integer) ) ;module (type-checks-numbers integer)