The `or' and `and' functions already worked correctly; this
fix is for `or' and `and' as applied directly to arguments, which
expands to the `racket/base' `or' and `and' forms.
in lazy/lazy.rkt
- add 'lazy-op stepper-syntax-property to op in lazy #%app
in stepper/private/annotate.rkt
- in varref-abstraction, check for 'lazy-op operator for toplevel vars, and use
varref-break-wrap if property = #t
- in recon-inner, in called app case
- add other force fns to force case (!!, !list, !!list)
- add other list fns
(list?, length, list-ref, etc)
in stepper/private/lazy-highlighting.rkt
- add various list fns (list?, length, list-ref, etc)
in stepper/private/macro-unwind.rkt
- in unwind-cond, disable check of user-source and user-position
in tests/stepper/
- add test for various list fns
- modify cond for stepper
- add support for multiple values in stepper
- add inspector to multiple-values struct
- hide split-values call in ~define-values
in tests/stepper/
- add tests for cond
in stepper/private/annotate.rkt
- in annotate/top-level, allow arbitrary top-level terms
(no error in else case), otherwise exprs like let throws error
in stepper/private/
reconstruct.rkt
lazy-highlighting.rkt
- add support for eq? eqv? equal? lazy fns
in stepper/private/model.rkt
- add debugging outputs
- reformat code
in stepper/private/macro-unwind.rkt:
- in fall-through
- add case for lazy racket app
- add case for procedure-extract-target
- in unwind, change recur procedure for fn hints to unwind
(was recur-on-pieces)
in racket/private/promise.rkt
- add unwind fn as stepper-hint syntax property
in stepper/private/reconstruct.rkt
- add constructor application case back
- in recon-inner
- in app called case, dont show ellipses for force
- initialize partially-eval-promise table
- reformat answer code
- add caching of running promises
- in recon-value, add reconstructing of partially evaluated promises
in stepper-private/annotate.rkt
- in annotate/module-top-level, add lazy racket top level case - to hide top
level forcer
in lazy/lazy.rkt
- use hidden-~ and hidden-! instead of ~ and !
- in !*app:
- add stepper-skipto property to skip (if lazy-proc? ...)
- for lazy-proc, extract proc from lazy-proc struct before applying
- redefine ~define to use inferred name, so stepper can recon properly
Note that this is usually delayed so it's not too useful. Note that it
*doesn't* force the list -- see the explanation in the comment.
(Related to PR 11458.)