SRFI 253: Data (Type-)Checking

by Artyom Bologov

status: final (2024-11-15)

keywords: Type Checking

See also SRFI 143: Fixnums, SRFI 144: Flonums, SRFI 145: Assumptions, and SRFI 187: ALAMBDA and ADEFINE.

Abstract

Data validation and type checking (supposedly) make for more correct code. And faster code too, sometimes. And, in rare cases, code that's easier to follow than un-checked code. Unfortunately, Scheme does not have many (type-)checking primitives out of the box. This SRFI provides some, with the aim of allowing more performant and correct code with minimum effort on the user side. Both (manual) argument checking/validation (check-arg) and return value(s) (values-checked) checking/coercion are provided. Syntax sugar like define-checked and define-record-type-checked is added on top.