12.13 Phase and Space Utilities
| (require racket/phase+space) | package: base | 
The racket/phase+space library provides functions for manipulating combined representations of phase levels and binding spaces, particularly as used for require transformers and provide transformers.
When identifier-binding (and related functions, like identifier-transformer-binding), syntax-local-module-exports, syntax-local-module-required-identifiers, module-compiled-exports, or module->exports produces a phase–space combination (or phase–space shift combination), then two such values that are equal? will be eqv?.
Added in version 8.2.0.3 of package base.
procedure
(phase+space? v) → boolean?
v : any/c 
- a phase (in the sense of phase?) by itself, which represents that phase plus the default binding space 
- a pair whose car is a phase and whose cdr is a non-#f space (in the sense of space?) 
procedure
(phase+space phase space) → phase+space?
phase : phase? space : space? 
procedure
(phase+space-phase p+s) → phase?
p+s : phase+space? 
procedure
(phase+space-space p+s) → phase?
p+s : phase+space? 
procedure
(phase+space-shift? v) → boolean?
v : any/c 
- exact integer — - represents an amount to shift a phase level and no change to the binding space 
- #f — - represents a shift to the label phase level and no change to the binding space 
- a pair whose car is an exact integer or #f, and whose cdr is a space (in the sense of space?) — - represents a phase level shift in the car and a change to the binding space that is in the cdr 
procedure
(phase+space+ p+s shift) → phase+space?
p+s : phase+space? shift : phase+space-shift? 
procedure
(phase+space-shift+ shift additional-shift) → phase+space-shift?
shift : phase+space? additional-shift : phase+space-shift?