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