1#lang racket/base
2
3(require "private/arrow-common.rkt"
4         "private/case-arrow.rkt"
5         "private/arr-i.rkt"
6         "private/arr-d.rkt"
7         "private/unconstrained-domain-arrow.rkt"
8         "private/base.rkt"
9         "private/box.rkt"
10         "private/hash.rkt"
11         "private/vector.rkt"
12         "private/struct-dc.rkt"
13         "private/struct-prop.rkt"
14         "private/misc.rkt"
15         "private/provide.rkt"
16         "private/guts.rkt"
17         "private/opters.rkt"       ;; required for effect to install the opters
18         "private/basic-opters.rkt" ;; required for effect to install the opters
19         "private/opt.rkt"
20         "private/out.rkt"
21         "private/arrow-val-first.rkt"
22         "private/orc.rkt"
23         "private/list.rkt"
24         "private/and.rkt"
25         "private/property.rkt")
26
27(provide
28 base->?
29 ->d
30 (rename-out [base->-rngs base->-rngs/c] [base->-doms base->-doms/c])
31 unconstrained-domain->
32 the-unsupplied-arg
33 unsupplied-arg?
34 matches-arity-exactly?
35 keywords-match
36 bad-number-of-results
37 (for-syntax check-tail-contract)
38 tail-marks-match?
39 values/drop
40 arity-checking-wrapper
41 unspecified-dom
42 blame-add-range-context
43 blame-add-nth-arg-context
44
45 -> ->*
46 dynamic->*
47 predicate/c
48
49 ->i
50 box-immutable/c
51 box/c
52 hash/c
53 hash/dc
54 vectorof
55 vector/c
56 vector-immutable/c
57 vector-immutableof
58 struct/dc
59 struct/c
60 struct-type-property/c
61
62 contract
63 recursive-contract
64 invariant-assertion
65
66 flat-murec-contract
67 and/c
68 not/c
69 =/c >=/c <=/c </c >/c between/c
70 integer-in
71 char-in
72 real-in
73 natural-number/c
74 string-len/c
75 false/c
76 printable/c
77 listof list*of non-empty-listof cons/c list/c cons/dc
78 *list/c
79 promise/c
80 syntax/c
81
82 parameter/c
83 procedure-arity-includes/c
84
85 any/c
86 any
87 none/c
88 make-none/c
89
90 prompt-tag/c
91 continuation-mark-key/c
92
93 channel/c
94 evt/c
95
96 flat-contract
97 flat-contract-predicate
98 flat-named-contract
99 flat-contract-with-explanation
100
101 blame-add-car-context
102 blame-add-cdr-context
103 raise-not-cons-blame-error
104
105 rename-contract
106 if/c
107
108 symbols or/c first-or/c one-of/c
109 flat-rec-contract
110 provide/contract
111 ;(for-syntax make-provide/contract-transformer) ;; not documented!
112 contract-out
113 recontract-out
114 define-module-boundary-contract
115
116 ;; from private/opt.rkt:
117 opt/c define-opt/c
118
119 ;; from private/guts.rkt
120 has-contract?
121 value-contract
122 has-blame?
123 value-blame
124 contract-continuation-mark-key
125 list-contract?
126
127 ;; from private/case-arrow.rkt
128 case->
129
130 ;; from here (needs `->`, so can't be deeper)
131 failure-result/c
132
133 contract?
134 chaperone-contract?
135 impersonator-contract?
136 flat-contract?
137
138 contract-late-neg-projection
139 contract-name
140 contract-projection
141 contract-val-first-projection
142 get/build-late-neg-projection
143 get/build-val-first-projection
144
145 property/c
146 suggest/c
147 struct-guard/c
148
149 ;; not documented.... (ie unintentional export)
150 n->th)
151
152
153;; failure-result/c : contract
154;; Describes the optional failure argument passed to hash-ref, for example.
155;; If the argument is a procedure, it must be a thunk, and it is applied. Otherwise
156;; the argument is simply the value to return.
157(define failure-result/c
158  (if/c procedure? (-> any) any/c))
159
160