;;;; type-checks-structured.scm -*- Scheme -*- ;;;; Kon Lovett, Jul '18 (declare (bound-to-procedure ##sys#structure?)) (module type-checks-structured (;export check-procedure check-closure check-input-port check-output-port check-list check-alist check-plist check-pair check-blob check-vector check-structure check-record check-record-type check-string) (import scheme) (import (chicken base)) ; for `include' (import (chicken type)) (import (only (chicken blob) blob?)) (import type-errors-structured type-checks-basic) (: check-structure (* 'a * #!optional * -> 'a)) (: check-record (* 'a * #!optional * -> 'a)) (: check-record-type (* 'a * #!optional * -> 'a)) (: check-string (* * #!optional * -> string)) (: check-procedure (* * #!optional * -> procedure)) (: check-closure (* * #!optional * -> procedure)) (: check-input-port (* * #!optional * -> input-port)) (: check-output-port (* * #!optional * -> output-port)) (: check-list (* * #!optional * -> list)) (: check-plist (* 'a #!optional * -> 'a)) (: check-alist (* 'a #!optional * -> 'a)) (: check-pair (* * #!optional * -> pair)) (: check-blob (* * #!optional * -> blob)) (: check-vector (* * #!optional * -> vector)) (include "type-checks-structured.impl.scm") ) ;module type-checks-structured