On this page:
module-expansion-step
syntax-expansion-step
step
misstep
remarkstep
state
bigframe

3.4 Debugging Macros with mischief/stepper🔗ℹ

 (require mischief/stepper) package: mischief

procedure

(module-expansion-step mod)

  (vectorof (or/c step? misstep? remarkstep?))
  mod : module-path?
Produces the steps in the expansion of the module that mod refers to.

procedure

(syntax-expansion-step stx)

  (vectorof (or/c step? misstep? remarkstep?))
  stx : syntax?
Produces the steps in the expansion of stx.

struct

(struct step (type s1 s2)
    #:prefab)
  type : symbol?
  s1 : state?
  s2 : state?

struct

(struct misstep (type s1 exn)
    #:prefab)
  type : symbol?
  s1 : state?
  exn : exn?

struct

(struct remarkstep (type s1 contents)
    #:prefab)
  type : symbol?
  s1 : state?
  contents : (listof (or/c string? syntax? 'arrow))

struct

(struct state (e foci ctx lctx binders uses frontier seq)
    #:prefab)
  e : syntax?
  foci : (listof syntax?)
  ctx : syntax?
  lctx : (listof bigframe?)
  binders : (listof identifier?)
  uses : (listof identifier?)
  frontier : (listof syntax?)
  seq : (or/c exact-nonnegative-integer? #false)

struct

(struct bigframe (ctx foci e)
    #:prefab)
  ctx : syntax?
  foci : (listof syntax?)
  e : syntax?
Datatypes representing sequences of expansion steps parsed by the macro stepper.