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