This library is unstable;
compatibility will not be maintained.
See Unstable: May Change Without Warning for more information.
Returns #t if x is a string and is not empty;
returns #f otherwise.
The subsequent bindings were added by Ryan Culpepper.
Produces a contract that, when applied to a value, first tests the
value with predicate; if predicate returns true, the
then-contract is applied; otherwise, the
else-contract is applied. The resulting contract is a flat
contract if both then-contract and else-contract are
For example, the following contract enforces that if a value is a
procedure, it is a thunk; otherwise it can be any (non-procedure)
Note that the following contract is not equivalent:
The last contract is the same as any/c
tries flat contracts before higher-order contracts.
A contract that describes the failure result arguments of procedures
such as hash-ref
Equivalent to (if/c procedure? (-> any) any/c).
Produces a contract that acts like contract but with the name
The resulting contract is a flat contract if contract is a
The subsequent bindings were added by Asumu Takikawa.
Creates a contract that acts like contract but will also
accept #f. Intended to describe situations where a failure
or default value may be used.
The subsequent bindings were added by Carl Eastlund <email@example.com>.
This contract recognizes Scheme truth values, i.e., any value, but with a more
informative name and description. Use it in negative positions for arguments
that accept arbitrary truth values that may not be booleans.
Wraps a sequence
obligating it to produce as many values as there are elem/c
and obligating each value to satisfy the corresponding elem/c
result is not guaranteed to be the same kind of sequence as the original value;
for instance, a wrapped list is not guaranteed to satisfy list?
|> (for ([P predicates])|
| (printf "~s\n" (P "cat")))|
predicates: self-contract violation, expected: boolean?,
contract from: (definition predicates), blaming:
(sequence/c (-> any/c boolean?))
|> (for ([(N S) numbers&strings])|
| (printf "~s: ~a\n" N S))|
numbers&strings: self-contract violation, expected:
string?, given: 'three
contract from: (definition numbers&strings), blaming:
contract: (sequence/c number? string?)