#lang racket (provide cons empty define ref-comp? #%module-begin #%datum #%top #%top-interaction) (struct computation ()) (struct computation/value computation (value)) (struct computation/promise computation (body)) (struct ref-comp (comp) #:mutable #:transparent) ;;;;;;;;;;;;;;;;;;;DO NOT EDIT ABOVE THIS LINE;;;;;;;;;;;;;;;;;;; (provide (rename-out [lazy-app #%app])) (define-syntax (lazy-app fun arg ...) #| Fill |#) (define (! rcomp) #| Fill |#) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Let (provide (rename-out [lazy-let let])) (define lazy-let #| Fill |#) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; if, and, & or (provide (rename-out [lazy-if if] [lazy-and and] [lazy-or or])) (define lazy-and #| Fill |#) (define lazy-or #| Fill |#) (define lazy-if #| Fill |#) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Additional strictness points (provide (rename-out [first! first] [rest! rest])) (define first! #| Fill |#) (define rest! #| Fill |#)