pure-unsafe.rkt (799B)
1 #lang racket 2 3 (require racket/promise 4 racket/private/promise 5 (for-syntax racket/base)) 6 7 (provide (rename-out [promise/pure/stateful? promise/pure/maybe-stateful?]) 8 promise/pure/stateless? 9 make-promise/pure/stateful 10 make-promise/pure/stateless 11 (struct-out declared-stateful-pure-function) 12 (struct-out declared-stateless-pure-function)) 13 14 (define-struct (promise/pure/stateful promise) () 15 #:property prop:force (λ(p) ((pref p)))) 16 17 (define-struct (promise/pure/stateless promise/pure/stateful) () 18 #:property prop:force (λ(p) ((pref p)))) 19 20 (define-struct declared-stateful-pure-function (f) 21 #:property prop:procedure (struct-field-index f)) 22 23 (define-struct 24 (declared-stateless-pure-function declared-stateful-pure-function) 25 ())